uilint-react 0.2.96 → 0.2.98

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/devtools.js CHANGED
@@ -253,7 +253,7 @@ You might need to use a local HTTP server (instead of file://): https://react.de
253
253
  .mobile-category-tabs::-webkit-scrollbar {
254
254
  display: none;
255
255
  }
256
- `}),p.map(m=>{const y=m.id==="all"?o===null:o===m.id;return _.jsxs(ze.button,{onClick:()=>u(m.id==="all"?null:m.id),whileTap:{scale:.95},style:{flexShrink:0,padding:"8px 14px",borderRadius:8,border:"none",background:y?"var(--uilint-accent)":"var(--uilint-surface-elevated)",color:y?"var(--uilint-accent-foreground)":"var(--uilint-text-secondary)",fontSize:13,fontWeight:500,cursor:"pointer",minHeight:44,display:"flex",alignItems:"center",gap:6,transition:"background 0.15s ease, color 0.15s ease"},children:[m.label,m.count!==void 0&&m.count>0&&_.jsx("span",{style:{opacity:.7,fontSize:11,background:y?"rgba(255,255,255,0.2)":"var(--uilint-surface)",padding:"2px 6px",borderRadius:4},children:m.count})]},m.id)})]})}function g6({issue:l,isSelected:o,onClick:u}){const c=kt(x=>x.mobile.isMobile),p=l.severity==="error"?gv:l.severity==="warning"?yv:TS,m=l.severity==="error"?"var(--uilint-error)":l.severity==="warning"?"var(--uilint-warning)":"var(--uilint-info)",y=l.severity==="error"?"error":l.severity==="warning"?"warning":"info",S=l.filePath.split("/").pop()||l.filePath;return _.jsxs("div",{onClick:u,style:{display:"flex",alignItems:"flex-start",padding:c?"12px 16px":"10px 16px",cursor:"pointer",gap:10,borderBottom:"1px solid var(--uilint-border)",background:o?"var(--uilint-surface-elevated)":"transparent",transition:"background 0.1s ease"},children:[_.jsx(p,{size:16,color:m,style:{flexShrink:0,marginTop:2}}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontSize:c?15:14,lineHeight:1.4,color:"var(--uilint-text-primary)",wordBreak:"break-word"},children:l.message}),_.jsxs("div",{style:{fontSize:12,color:"var(--uilint-text-muted)",marginTop:4,display:"flex",alignItems:"center",flexWrap:"wrap",gap:8},children:[_.jsxs("span",{style:{display:"flex",alignItems:"center",gap:4},children:[S,":",l.line]}),_.jsx(Bv,{variant:y,size:"sm",disableAnimation:!0,children:l.ruleId})]})]})]})}function y6({value:l,onChange:o,onClick:u}){const c=[{value:"error",label:"E",activeColor:"#ef4444"},{value:"warning",label:"W",activeColor:"#f59e0b"},{value:"off",label:"Off",activeColor:"#6b7280"}];return _.jsx("div",{style:{display:"flex",gap:2},onClick:u,children:c.map(p=>_.jsx("button",{onClick:m=>{m.stopPropagation(),o(p.value)},style:{padding:"2px 6px",fontSize:10,fontWeight:500,border:"none",borderRadius:4,cursor:"pointer",background:l===p.value?p.activeColor:"transparent",color:l===p.value?"white":"var(--uilint-text-disabled)"},children:p.label},p.value))})}function v6({rule:l,issueCount:o,isSelected:u,onSeverityChange:c,onClick:p}){const m=kt(T=>T.mobile.isMobile),y=q.useCallback(T=>{c(l.id,T)},[l.id,c]),S=q.useCallback(T=>{T.stopPropagation()},[]),x=l.severity==="error"?"#ef4444":l.severity==="warning"?"#f59e0b":"var(--uilint-text-disabled)";return _.jsxs("div",{onClick:p,style:{padding:m?"12px 16px":"10px 16px",cursor:"pointer",borderBottom:"1px solid var(--uilint-border)",display:"flex",alignItems:"center",gap:10,background:u?"var(--uilint-surface-elevated)":"transparent"},children:[_.jsx("div",{style:{width:8,height:8,borderRadius:"50%",background:x,flexShrink:0}}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontSize:m?15:13,fontWeight:500,marginBottom:2,lineHeight:1.3,color:l.severity==="off"?"var(--uilint-text-disabled)":"var(--uilint-text-primary)"},children:l.name}),_.jsx("div",{style:{fontSize:11,color:"var(--uilint-text-muted)"},children:l.id})]}),o>0&&_.jsx("span",{style:{fontSize:10,fontWeight:600,background:"rgba(239, 68, 68, 0.1)",color:"#dc2626",padding:"2px 6px",borderRadius:10,minWidth:20,textAlign:"center",flexShrink:0},children:o}),_.jsx(y6,{value:l.severity,onChange:y,onClick:S})]})}function b6({fileName:l,directory:o,count:u}){return _.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 bg-surface-elevated border-b border-border",children:[_.jsx(Gz,{size:14,className:"text-muted-foreground shrink-0"}),_.jsx("span",{className:"text-xs font-medium text-foreground",children:l}),o&&_.jsx("span",{className:"text-xs text-muted-foreground overflow-hidden text-ellipsis whitespace-nowrap flex-1",children:o}),_.jsx("span",{className:"text-xs font-medium text-muted-foreground bg-hover px-1.5 py-0.5 rounded-full",children:u})]})}const JC=q.createContext(null);function S6(l){const o=q.useRef(new Map);return q.useLayoutEffect(()=>{o.current.get(l)?.scrollIntoView?.({block:"nearest"})},[l]),{register:q.useCallback((c,p)=>{p?o.current.set(c,p):o.current.delete(c)},[])}}function Ix(l){const o=q.useContext(JC);return q.useCallback(c=>{o?.register(l,c)},[o,l])}function x6({issues:l,isSelected:o,resultIndex:u,onClick:c}){const p=kt(T=>T.mobile.isMobile),m=Ix(u??-1),y=Ln.useMemo(()=>l.reduce((T,E)=>(E.severity==="error"?T.errors++:E.severity==="warning"?T.warnings++:T.info++,T),{errors:0,warnings:0,info:0}),[l]),S=Ln.useMemo(()=>new Set(l.map(T=>T.filePath)).size,[l]);if(l.length===0)return null;const x=_.jsxs("div",{ref:u!=null?m:void 0,onClick:c,style:{margin:p?"8px 16px":"8px 12px",padding:p?"16px":"14px 16px",borderRadius:"var(--uilint-card-radius, 12px)",cursor:"pointer",background:o?"var(--uilint-info-bg)":"var(--uilint-surface-elevated)",border:o?"1px solid var(--uilint-info)":"1px solid var(--uilint-border)",boxShadow:o?"0 0 0 3px var(--uilint-info-bg), var(--uilint-card-shadow)":"var(--uilint-card-shadow)",transition:"all 0.1s ease"},children:[_.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:12},children:_.jsxs("div",{children:[_.jsx("div",{style:{fontSize:p?15:13,fontWeight:600,color:"var(--uilint-text-primary)"},children:"All Issues"}),_.jsx("div",{style:{fontSize:p?13:11,color:"var(--uilint-text-muted)",marginTop:2},children:"Type to search across all issues"})]})}),_.jsxs("div",{style:{display:"flex",flexWrap:"wrap",gap:8},children:[_.jsx(Yv,{label:"Total",value:l.length,variant:"info",size:"sm",disableAnimation:!0}),y.errors>0&&_.jsx(Yv,{label:"Errors",value:y.errors,variant:"error",size:"sm",disableAnimation:!0}),y.warnings>0&&_.jsx(Yv,{label:"Warnings",value:y.warnings,variant:"warning",size:"sm",disableAnimation:!0}),_.jsx(Yv,{label:"Files",value:S,variant:"success",size:"sm",disableAnimation:!0})]})]});return p?x:_.jsx(ze.div,{initial:{opacity:0,y:4},animate:{opacity:1,y:0},transition:{duration:.12,ease:[.32,.72,0,1]},children:x})}function w6({issues:l,onSelectIssue:o,startIndex:u,selectedIndex:c}){const p=Ln.useMemo(()=>l.filter(m=>m.severity==="error"||m.severity==="warning").slice(0,3),[l]);return p.length===0?null:_.jsxs("div",{style:{marginBottom:4},children:[_.jsx("div",{style:{padding:"8px 16px 4px",fontSize:10,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em",color:"var(--uilint-text-disabled)"},children:"Top Issues"}),p.map((m,y)=>_.jsx(T6,{issue:m,isSelected:u+y===c,resultIndex:u+y,onClick:()=>o(m),index:y},m.id))]})}function T6({issue:l,isSelected:o,resultIndex:u,onClick:c,index:p}){const m=kt(A=>A.mobile.isMobile),y=Ix(u),S=l.severity==="error"?gv:yv,x=l.severity==="error"?"var(--uilint-error)":"var(--uilint-warning)",T=l.filePath.split("/").pop()||l.filePath,E=_.jsxs("div",{ref:y,onClick:c,style:{display:"flex",alignItems:"flex-start",gap:10,padding:m?"12px 16px":"8px 16px",cursor:"pointer",background:o?"var(--uilint-info-bg)":"transparent",borderLeft:o?"2px solid var(--uilint-accent)":"2px solid transparent",transition:"all 0.1s ease"},children:[_.jsx(S,{size:14,color:x,style:{flexShrink:0,marginTop:2}}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontSize:m?14:12,lineHeight:1.4,color:"var(--uilint-text-secondary)"},children:l.message}),_.jsxs("div",{style:{fontSize:m?12:10,color:"var(--uilint-text-disabled)",marginTop:2},children:[T,":",l.line]})]})]});return m?E:_.jsx(ze.div,{initial:{opacity:0,x:-6},animate:{opacity:1,x:0},transition:{duration:.1,delay:p*.02,ease:[.32,.72,0,1]},children:E})}const Fx=[.32,.72,0,1];function gh({children:l,index:o,layoutId:u,maxDelay:c=.12,staggerDelay:p=.02}){if(kt(S=>S.mobile.isMobile))return _.jsx("div",{children:l});const y=Math.min(o*p,c);return _.jsx(ze.div,{layoutId:u,initial:{opacity:0,y:6},animate:{opacity:1,y:0},exit:{opacity:0,y:-4},transition:{duration:.12,ease:Fx,delay:y},children:l})}function E6({children:l,delay:o=0}){return kt(c=>c.mobile.isMobile)?_.jsx("div",{children:l}):_.jsx(ze.div,{initial:{opacity:0,x:-8},animate:{opacity:1,x:0},transition:{duration:.12,delay:o,ease:Fx},children:l})}function dg({isSelected:l,children:o,variant:u="default",resultIndex:c}){const p=kt(x=>x.mobile.isMobile),m=Ix(c??-1),S={default:{selected:"linear-gradient(90deg, rgba(59, 130, 246, 0.08) 0%, rgba(59, 130, 246, 0.04) 100%)",unselected:"transparent"},command:{selected:"linear-gradient(90deg, rgba(59, 130, 246, 0.1) 0%, rgba(147, 51, 234, 0.06) 100%)",unselected:"transparent"},issue:{selected:"linear-gradient(90deg, rgba(239, 68, 68, 0.06) 0%, transparent 100%)",unselected:"transparent"}}[u];return p?_.jsx("div",{ref:c!=null?m:void 0,style:{borderLeft:l?"2px solid #3b82f6":"2px solid transparent",background:l?S.selected:S.unselected,position:"relative"},children:o}):_.jsxs(ze.div,{ref:c!=null?m:void 0,animate:{background:l?S.selected:S.unselected,borderLeftColor:l?"#3b82f6":"transparent"},transition:{duration:.1,ease:Fx},style:{borderLeft:"2px solid transparent",position:"relative"},children:[o,l&&_.jsx(ze.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.1},style:{position:"absolute",inset:0,background:"radial-gradient(ellipse at left center, rgba(59, 130, 246, 0.08) 0%, transparent 70%)",pointerEvents:"none"}})]})}const A6=kl("shrink-0 py-2 border-r overflow-y-auto overflow-x-hidden",{variants:{size:{default:"w-28",compact:"w-24"}},defaultVariants:{size:"default"}}),PC=kl("flex items-center justify-between mx-1.5 px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors cursor-pointer select-none",{variants:{state:{default:"text-muted-foreground hover:text-foreground hover:bg-muted/50",selected:"bg-muted text-foreground",loading:"text-muted-foreground/50"}},defaultVariants:{state:"default"}}),C6=kl("mx-1.5 px-2.5 py-1 text-[10px] font-semibold uppercase tracking-wider",{variants:{state:{default:"text-muted-foreground/50",expanded:"text-muted-foreground/70"}},defaultVariants:{state:"default"}}),R6={initial:{opacity:0,x:-4},animate:{opacity:1,x:0},exit:{opacity:0,x:-4}},M6={initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.8}},IC=[.32,.72,0,1];function z6({count:l,isLoading:o}){return o?_.jsx(ze.div,{animate:{opacity:[.3,.5,.3]},transition:{duration:1,repeat:1/0},style:{width:16,height:10,borderRadius:4,background:"var(--uilint-text-muted)",opacity:.15}}):l===void 0?null:_.jsx(ze.span,{variants:M6,initial:"initial",animate:"animate",exit:"exit",transition:{duration:.15,ease:IC},className:"text-[10px] tabular-nums text-muted-foreground/60",children:l})}function FC({category:l,isSelected:o,onClick:u,index:c}){const p=l.isLoading?"loading":o?"selected":"default";return _.jsx(ze.div,{variants:R6,initial:"initial",animate:"animate",exit:"exit",transition:{duration:.1,delay:c*.02,ease:IC},children:_.jsxs("div",{className:nn(PC({state:p})),onClick:u,role:"button",tabIndex:0,onKeyDown:m=>{(m.key==="Enter"||m.key===" ")&&(m.preventDefault(),u())},style:{borderLeft:o?"2px solid var(--uilint-accent)":"2px solid transparent",paddingLeft:o?8:10},children:[_.jsx("span",{className:"truncate",children:l.label}),_.jsx(z6,{count:l.count,isLoading:l.isLoading})]})})}function D6({label:l,children:o,selectedId:u,onSelect:c,startIndex:p}){const m=o.reduce((S,x)=>S+(x.count??0),0),y=o.some(S=>S.isLoading);return _.jsxs("div",{className:"mb-1",children:[_.jsxs("div",{className:nn(C6({state:"default"})),children:[_.jsx("span",{className:"truncate",children:l}),!y&&m>0&&_.jsxs("span",{className:"ml-1 opacity-50",children:["(",m,")"]})]}),_.jsx(es,{mode:"popLayout",children:o.map((S,x)=>_.jsx(FC,{category:S,isSelected:u===S.id,onClick:()=>c(S.id),index:p+x},S.id))})]})}function O6({isSelected:l,onClick:o,totalCount:u}){return _.jsx(ze.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.1},children:_.jsxs("div",{className:nn(PC({state:l?"selected":"default"})),onClick:o,role:"button",tabIndex:0,onKeyDown:c=>{(c.key==="Enter"||c.key===" ")&&(c.preventDefault(),o())},style:{borderLeft:l?"2px solid var(--uilint-accent)":"2px solid transparent",paddingLeft:l?8:10,fontWeight:500},children:[_.jsx("span",{children:"All"}),u>0&&_.jsx("span",{className:"text-[10px] tabular-nums text-muted-foreground/60",children:u})]})})}function _6(){return _.jsx("div",{className:"mx-3 my-1.5",style:{height:1,background:"var(--uilint-border)",opacity:.3}})}function k6({categories:l,selectedId:o,onSelect:u,isFocused:c=!1,size:p,className:m}){const y=q.useMemo(()=>{let E=0;for(const A of l)A.children?E+=A.children.reduce((R,j)=>R+(j.count??0),0):E+=A.count??0;return E},[l]),{topLevel:S,groups:x}=q.useMemo(()=>{const E=[],A=[];for(const R of l)R.children&&R.children.length>0?A.push(R):R.parentId||E.push(R);return{topLevel:E,groups:A}},[l]);let T=1;return _.jsxs("div",{className:nn(A6({size:p}),m),style:{borderColor:"var(--uilint-border)",opacity:c?1:.85,transition:"opacity 0.15s ease"},role:"navigation","aria-label":"Category navigation",children:[_.jsx(O6,{isSelected:o===null,onClick:()=>u(null),totalCount:y}),(S.length>0||x.length>0)&&_.jsx(_6,{}),_.jsx(es,{mode:"popLayout",children:S.map(E=>{const A=T++;return _.jsx(FC,{category:E,isSelected:o===E.id,onClick:()=>u(E.id),index:A},E.id)})}),x.map(E=>{const A=T;return T+=E.children?.length??0,_.jsx(D6,{label:E.label,children:E.children??[],selectedId:o,onSelect:u,startIndex:A},E.id)}),l.length===0&&_.jsx("div",{className:"px-3 py-4 text-center",children:_.jsx("div",{className:"text-[10px] text-muted-foreground/50",children:"No categories"})})]})}const j6={duration:.12,ease:[.32,.72,0,1]};function U6({command:l,isSelected:o,onClick:u,index:c}){const p=kt(x=>x.mobile.isMobile),y=l.id.includes("start")?{bg:"#22c55e",icon:_.jsx(Zz,{size:14})}:l.id.includes("stop")?{bg:"#ef4444",icon:_.jsx($z,{size:14})}:l.id.includes("clear")?{bg:"#f59e0b",icon:_.jsx(Kz,{size:14})}:null,S=_.jsxs("div",{onClick:u,style:{padding:p?"14px 16px":"10px 16px",cursor:"pointer",display:"flex",alignItems:"center",gap:10},children:[y&&_.jsx("div",{style:{width:28,height:28,borderRadius:6,background:y.bg,color:"white",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:y.icon}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontWeight:500,fontSize:p?16:13,color:"var(--uilint-text-primary)",marginBottom:l.subtitle?2:0},children:l.title}),l.subtitle&&_.jsx("div",{style:{fontSize:p?13:11,color:"var(--uilint-text-muted)",lineHeight:1.3},children:l.subtitle})]}),!p&&o&&_.jsx(cg,{children:"↵"})]});return p?_.jsx(gh,{index:c,children:_.jsx(dg,{isSelected:o,variant:"command",resultIndex:c,children:S})}):_.jsx(gh,{index:c,children:_.jsx(dg,{isSelected:o,variant:"command",resultIndex:c,children:_.jsx(ze.div,{whileHover:{x:2},whileTap:{scale:.99},children:S})})})}function L6({item:l,isSelected:o,onClick:u,index:c}){const p=kt(y=>y.mobile.isMobile),m=_.jsxs("div",{onClick:u,style:{padding:p?"14px 16px":"10px 16px",cursor:"pointer",display:"flex",alignItems:"center",gap:10},children:[_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontWeight:500,fontSize:p?16:13,color:"var(--uilint-text-primary)",marginBottom:l.subtitle?2:0},children:l.title}),l.subtitle&&_.jsx("div",{style:{fontSize:p?13:11,color:"var(--uilint-text-muted)",lineHeight:1.3},children:l.subtitle})]}),!p&&l.shortcut&&_.jsx(cg,{animate:!1,children:l.shortcut}),!p&&o&&!l.shortcut&&_.jsx(cg,{children:"↵"})]});return p?_.jsx(gh,{index:c,children:_.jsx(dg,{isSelected:o,variant:"issue",resultIndex:c,children:m})}):_.jsx(gh,{index:c,children:_.jsx(dg,{isSelected:o,variant:"issue",resultIndex:c,children:_.jsx(ze.div,{whileHover:{x:2},whileTap:{scale:.99},children:m})})})}function Zv({children:l,count:o}){return _.jsx(E6,{delay:.02,children:_.jsxs("div",{style:{padding:"10px 16px 6px",fontSize:10,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.08em",color:"var(--uilint-text-disabled)",display:"flex",alignItems:"center",gap:8},children:[_.jsx("span",{children:l}),o!==void 0&&o>0&&_.jsx("span",{style:{fontSize:9,fontWeight:500,background:"var(--uilint-surface-elevated)",padding:"2px 6px",borderRadius:10},children:o})]})})}function N6(){const l=kt(z=>z.commandPalette.open),o=kt(z=>z.commandPalette.query),u=kt(z=>z.commandPalette.selectedIndex),c=kt(z=>z.commandPalette.selectedCategoryId),p=kt(z=>z.commandPalette.sidebarFocused),m=kt(z=>z.closeCommandPalette),y=kt(z=>z.setCommandPaletteQuery),S=kt(z=>z.setCommandPaletteSelectedIndex),x=kt(z=>z.setSelectedCategory),T=kt(z=>z.setSidebarFocused),E=kt(z=>z.openInspector),A=kt(z=>z.mobile.isMobile),R=kt(z=>z.mobile.isSmallScreen),j=S6(u),{allIssues:Z}=KC(),{categoryTree:P}=r6(),K=s6(c),at=kt(z=>z),yt=q.useMemo(()=>ai.getAllCommands().filter(B=>B.isAvailable?B.isAvailable(at):!0),[at]),ft=q.useMemo(()=>{if(o.trim()){const z=o.toLowerCase();return yt.filter(B=>B.title.toLowerCase().includes(z)||B.keywords.some(rt=>rt.toLowerCase().includes(z))||B.category.toLowerCase().includes(z)||B.subtitle&&B.subtitle.toLowerCase().includes(z))}return yt.filter(z=>!z.hideFromAllCategory)},[yt,o]),xt=o.trim().length>0,vt=q.useMemo(()=>{if(!xt)return[];const z=o.toLowerCase();return Z.filter(B=>B.message.toLowerCase().includes(z)||B.ruleId.toLowerCase().includes(z)||B.filePath.toLowerCase().includes(z)).slice(0,30)},[Z,o,xt]),Lt=kt(z=>z.plugins),St=q.useMemo(()=>ai.getAllRules(),[Lt]),lt=q.useMemo(()=>{if(!xt)return[];const z=o.toLowerCase();return St.filter(B=>B.name.toLowerCase().includes(z)||B.id.toLowerCase().includes(z)||B.description.toLowerCase().includes(z)||B.category.toLowerCase().includes(z))},[St,o,xt]),Ut=q.useMemo(()=>{const z=new Map;for(const B of Z){const rt=z.get(B.ruleId)||0;z.set(B.ruleId,rt+1)}return z},[Z]),wt=q.useMemo(()=>{const z=[],B=new Map;for(const rt of vt){const st=B.get(rt.filePath)||[];B.set(rt.filePath,[...st,rt])}for(const[rt,st]of B){const Ot=rt.split("/"),te=Ot.pop()||rt,Dt=Ot.join("/");z.push({filePath:rt,fileName:te,directory:Dt,issues:st})}return z},[vt]),It=q.useMemo(()=>{if(c&&!xt)return K.map(st=>({kind:"category-item",item:st}));const z=ft.map(st=>({kind:"command",command:st}));if(!xt&&Z.length>0){const st=Z.filter(Ot=>Ot.severity==="error"||Ot.severity==="warning").slice(0,3);return[...z,{kind:"summary"},...st.map(Ot=>({kind:"issue",issue:Ot}))]}const B=vt.map(st=>({kind:"issue",issue:st})),rt=lt.map(st=>({kind:"rule",rule:st}));return[...z,...B,...rt]},[ft,vt,lt,Z,xt,c,K]),Tt=q.useCallback(z=>{E("issue",{issue:z}),m()},[E,m]),Qt=q.useCallback(async z=>{const B=of();if(!B){console.error("[CommandPalette] Plugin services not available");return}try{await z.execute(B)}catch(rt){console.error(`[CommandPalette] Error executing command "${z.id}":`,rt)}},[]),tt=q.useCallback(async z=>{if(!z.execute)return;const B=of();if(!B){console.error("[CommandPalette] Plugin services not available");return}try{await z.execute(B),m()}catch(rt){console.error(`[CommandPalette] Error executing category item "${z.id}":`,rt)}},[m]),Mt=q.useCallback((z,B)=>{ai.setRuleSeverity(z,B)},[]),U=q.useCallback(z=>{const B=`${z.pluginId}-rule`;E(B,{ruleId:z.id}),m()},[E,m]),I=q.useCallback(z=>{z.kind==="command"?Qt(z.command):z.kind==="issue"?Tt(z.issue):z.kind==="rule"?U(z.rule):z.kind==="category-item"?tt(z.item):z.kind==="summary"&&y("")},[Qt,Tt,U,tt]),F=q.useCallback(z=>{if(z.key==="Tab"){z.preventDefault(),T(!p);return}if(z.key==="ArrowLeft"&&!p){z.preventDefault(),T(!0);return}if(z.key==="ArrowRight"&&p){z.preventDefault(),T(!1);return}z.key==="ArrowDown"?(z.preventDefault(),S(Math.min(u+1,It.length-1))):z.key==="ArrowUp"?(z.preventDefault(),S(Math.max(u-1,0))):z.key==="Enter"&&It[u]&&(z.preventDefault(),I(It[u]))},[It,u,I,p,T]),Ct=document.getElementById("uilint-portal")||document.body,jt=ft.length;return Qm.createPortal(_.jsx(es,{children:l&&_.jsx(ze.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.12},style:{position:"fixed",inset:0,background:A?"var(--uilint-surface)":"rgba(0, 0, 0, 0.35)",backdropFilter:A?"none":"blur(8px)",WebkitBackdropFilter:A?"none":"blur(8px)",display:"flex",alignItems:A?"stretch":"flex-start",justifyContent:"center",paddingTop:A?0:80,zIndex:99998,pointerEvents:"auto"},onClick:z=>{z.target===z.currentTarget&&m()},onKeyDown:F,children:_.jsx(ze.div,{initial:A?{opacity:0}:{opacity:0,scale:.96,y:-20},animate:A?{opacity:1}:{opacity:1,scale:1,y:0},exit:A?{opacity:0}:{opacity:0,scale:.98,y:-10},transition:A?{duration:.15}:j6,style:A?{display:"flex",flexDirection:"column",width:"100%",height:"100%"}:void 0,children:_.jsxs(qC,{blur:A?"light":"heavy",shadow:A?void 0:"lg",animate:!1,style:{width:"100%",maxWidth:A?"100%":680,height:A?"100%":"auto",borderRadius:A?0:16,overflow:"hidden",display:A?"flex":"block",flexDirection:A?"column":void 0,paddingTop:A?"env(safe-area-inset-top, 0px)":void 0,paddingBottom:A?"env(safe-area-inset-bottom, 0px)":void 0},children:[A&&_.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 16px 8px",borderBottom:"1px solid var(--uilint-border)"},children:[_.jsx("span",{style:{fontSize:15,fontWeight:600,color:"var(--uilint-text-primary)"},children:"Search"}),_.jsx("button",{onClick:m,style:{padding:"8px 16px",fontSize:14,fontWeight:500,color:"var(--uilint-accent)",background:"transparent",border:"none",cursor:"pointer",borderRadius:8},children:"Done"})]}),_.jsx(p6,{value:o,onChange:y,size:A?"default":"large"}),_.jsxs("div",{style:{display:"flex",flexDirection:R?"column":"row",maxHeight:A?"none":420,flex:A?1:void 0,minHeight:0,overflow:"hidden"},children:[!R&&_.jsx(k6,{categories:P,selectedId:c,onSelect:x,isFocused:p}),R&&_.jsx(m6,{categories:P,selectedId:c,onSelect:x}),_.jsx("div",{style:{flex:1,overflowY:"auto",overflowX:"hidden",minHeight:0,WebkitOverflowScrolling:"touch"},children:_.jsx(es,{mode:A?"sync":"wait",children:It.length===0&&lt.length===0?_.jsxs(ze.div,{initial:A?!1:{opacity:0,y:6},animate:{opacity:1,y:0},exit:A?{opacity:0}:{opacity:0,y:-4},transition:{duration:A?.05:.1},style:{padding:"32px 24px",textAlign:"center",color:"var(--uilint-text-disabled)"},children:[_.jsx("div",{style:{fontSize:32,marginBottom:8},children:"🔍"}),_.jsx("div",{style:{fontSize:13,fontWeight:500},children:o?"No results found":"Start typing to search"}),_.jsx("div",{style:{fontSize:12,marginTop:4,color:"var(--uilint-text-muted)"},children:o?"Try different keywords":"Search issues, rules, and commands"})]},"empty"):_.jsx(JC.Provider,{value:j,children:_.jsxs(ze.div,{initial:A?!1:{opacity:0},animate:{opacity:1},exit:A?void 0:{opacity:0},transition:{duration:A?0:.1},children:[c&&!xt&&K.length>0&&_.jsx(_.Fragment,{children:K.map((z,B)=>_.jsx(L6,{item:z,isSelected:B===u,onClick:()=>tt(z),index:B},z.id))}),(!c||xt)&&ft.length>0&&_.jsxs(_.Fragment,{children:[_.jsx(Zv,{count:ft.length,children:"Commands"}),ft.map((z,B)=>_.jsx(U6,{command:z,isSelected:B===u,onClick:()=>Qt(z),index:B},z.id))]}),!xt&&!c&&Z.length>0&&_.jsxs(_.Fragment,{children:[_.jsx(Zv,{children:"Overview"}),_.jsx(x6,{issues:Z,isSelected:jt===u,resultIndex:jt,onClick:()=>{}}),_.jsx(w6,{issues:Z,onSelectIssue:Tt,startIndex:jt+1,selectedIndex:u})]}),xt&&wt.length>0&&_.jsxs(_.Fragment,{children:[_.jsx(Zv,{count:vt.length,children:"Issues"}),wt.map((z,B)=>{let rt=ft.length;for(let st=0;st<B;st++)rt+=wt[st].issues.length;return _.jsxs(gh,{index:ft.length+B,children:[_.jsx(b6,{fileName:z.fileName,directory:z.directory,count:z.issues.length}),z.issues.map((st,Ot)=>_.jsx(dg,{isSelected:rt+Ot===u,variant:"issue",resultIndex:rt+Ot,children:_.jsx(g6,{issue:st,isSelected:rt+Ot===u,onClick:()=>Tt(st)})},st.id))]},z.filePath)})]}),xt&&lt.length>0&&_.jsxs(_.Fragment,{children:[_.jsx(Zv,{count:lt.length,children:"Rules"}),lt.map((z,B)=>_.jsx(gh,{index:ft.length+vt.length+B,children:_.jsx(v6,{rule:z,issueCount:Ut.get(z.id)??0,isSelected:ft.length+vt.length+B===u,onSeverityChange:Mt,onClick:()=>U(z)})},z.id))]})]},"results")})})})]})]})})})}),Ct)}function V6(l){const o=l.match(/^[\t ]+/);return o?o[0]:""}function H6(l){if(!l.length)return{lines:l,removed:0};const o=l.filter(c=>c.trim().length>0);if(!o.length)return{lines:l,removed:0};let u=1/0;for(const c of o)if(u=Math.min(u,V6(c).length),u===0)break;return!Number.isFinite(u)||u<=0?{lines:l,removed:0}:{removed:u,lines:l.map(c=>c.length>=u?c.slice(u):"")}}function B6({filePath:l,line:o,column:u,contextLines:c=5,defaultExpanded:p=!0}){const[m,y]=q.useState(p),{context:S,isLoading:x,error:T}=o6({filePath:l,line:o,contextAbove:c,contextBelow:c,enabled:m}),E=S?H6(S.lines):null,A=S?S.startLine+S.lines.length-1:0,R=Math.max(3,String(A).length)*8+16;return _.jsxs("div",{style:{background:"var(--uilint-background)",borderRadius:8,overflow:"hidden",border:"1px solid var(--uilint-border)"},children:[_.jsxs("button",{onClick:()=>y(!m),style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"8px 12px",background:"var(--uilint-surface-elevated)",border:"none",borderBottom:m?"1px solid var(--uilint-border)":"none",cursor:"pointer",color:"var(--uilint-text-primary)",fontSize:12,fontFamily:"inherit"},children:[m?_.jsx(Yz,{size:14}):_.jsx(qz,{size:14}),_.jsx("span",{style:{fontWeight:500},children:"Source"}),_.jsxs("span",{style:{color:"var(--uilint-text-muted)",marginLeft:"auto",fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, monospace"},children:["L",o,u?`:${u}`:""]})]}),m&&_.jsxs("div",{style:{padding:0},children:[x&&_.jsx("div",{style:{padding:24,color:"var(--uilint-text-muted)",textAlign:"center",fontSize:12},children:"Loading..."}),T&&_.jsx("div",{style:{padding:24,color:"var(--uilint-error, #ef4444)",textAlign:"center",fontSize:12},children:T}),E&&S&&_.jsx("div",{style:{overflowX:"auto",fontSize:12,fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, monospace",lineHeight:1.6},children:E.lines.map((j,Z)=>{const P=S.startLine+Z,K=P===o;return _.jsxs("div",{style:{display:"flex",background:K?"rgba(251, 191, 36, 0.12)":"transparent",borderLeft:K?"3px solid #f59e0b":"3px solid transparent"},children:[_.jsx("span",{style:{width:R,minWidth:R,padding:"0 8px",textAlign:"right",color:K?"var(--uilint-text-primary)":"var(--uilint-text-disabled)",background:"var(--uilint-surface-elevated)",userSelect:"none",flexShrink:0,borderRight:"1px solid var(--uilint-border)"},children:P}),_.jsx("code",{style:{padding:"0 12px",color:K?"var(--uilint-text-primary)":"var(--uilint-text-secondary)",whiteSpace:"pre",flex:1},children:j||" "})]},P)})})]})]})}function Y6(l){const o=l.split("/");return o[o.length-1]||l}function q6({issue:l}){const o=l.severity==="error"?gv:l.severity==="warning"?yv:TS;return _.jsxs("div",{style:{padding:16,display:"flex",flexDirection:"column",gap:16},children:[_.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:10},children:[_.jsxs(Bv,{variant:l.severity==="error"?"error":l.severity==="warning"?"warning":"info",size:"sm",disableAnimation:!0,style:{flexShrink:0,marginTop:2},children:[_.jsx(o,{size:12,color:"currentColor",style:{marginRight:4}}),l.severity]}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontSize:14,fontWeight:500,color:"var(--uilint-text-primary)",lineHeight:1.4},children:l.message}),_.jsx(Bv,{variant:"outline",size:"sm",disableAnimation:!0,style:{marginTop:6,fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, monospace"},children:l.ruleId})]})]}),_.jsx(B6,{filePath:l.filePath,line:l.line,column:l.column,contextLines:5}),_.jsxs("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 12px",fontSize:11,color:"var(--uilint-text-muted)",fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, monospace"},children:[_.jsxs("span",{title:l.filePath,children:[Y6(l.filePath),":",l.line,l.column?`:${l.column}`:""]}),_.jsx("span",{style:{opacity:.5},children:"|"}),_.jsx("span",{children:l.pluginId})]})]})}function G6({dataLoc:l,onSelectIssue:o}){const{getIssuesForDataLoc:u}=KC(),c=u(l);return c.length===0?_.jsx("div",{style:{padding:16,textAlign:"center",color:"var(--uilint-text-muted)"},children:"No issues for this element"}):_.jsxs("div",{style:{padding:16},children:[_.jsxs("div",{style:{fontSize:14,fontWeight:600,color:"var(--uilint-text-primary)",marginBottom:12},children:[c.length," issue",c.length!==1?"s":""," at this location"]}),_.jsx(BC,{variant:"elevated",style:{overflow:"hidden"},children:c.map((p,m)=>{const y=p.severity==="error"?gv:p.severity==="warning"?yv:TS;return _.jsxs("div",{onClick:()=>o(p),style:{display:"flex",alignItems:"flex-start",gap:10,padding:12,cursor:"pointer",borderBottom:m<c.length-1?"1px solid var(--uilint-border)":void 0},children:[_.jsx(Bv,{variant:p.severity==="error"?"error":p.severity==="warning"?"warning":"info",size:"sm",disableAnimation:!0,style:{flexShrink:0},children:_.jsx(y,{size:12,color:"currentColor"})}),_.jsxs("div",{style:{flex:1},children:[_.jsx("div",{style:{fontSize:13,color:"var(--uilint-text-primary)"},children:p.message}),_.jsx("div",{style:{fontSize:11,color:"var(--uilint-text-muted)",marginTop:2},children:p.ruleId})]})]},p.id)})}),_.jsx("div",{style:{marginTop:12,fontSize:11,color:"var(--uilint-text-disabled)",wordBreak:"break-all"},children:l})]})}function WC({direction:l,onResize:o,onResizeEnd:u}){const c=q.useRef(!1),p=q.useRef({x:0,y:0}),m=q.useCallback(x=>{x.preventDefault(),x.stopPropagation(),c.current=!0,p.current={x:x.clientX,y:x.clientY}},[]);q.useEffect(()=>{const x=E=>{if(!c.current)return;const A=E.clientX-p.current.x,R=E.clientY-p.current.y;p.current={x:E.clientX,y:E.clientY},o(A,R)},T=()=>{c.current&&(c.current=!1,u?.())};return document.addEventListener("mousemove",x),document.addEventListener("mouseup",T),()=>{document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",T)}},[o,u]);const y={position:"absolute",zIndex:10},S={horizontal:{...y,top:0,left:0,width:4,height:"100%",cursor:"col-resize"},vertical:{...y,bottom:0,left:0,width:"100%",height:4,cursor:"row-resize"},corner:{...y,bottom:0,right:0,width:12,height:12,cursor:"nwse-resize"}};return _.jsx("div",{onMouseDown:m,style:{...S[l],background:"transparent"},onMouseEnter:x=>{x.target.style.background="rgba(59, 130, 246, 0.2)"},onMouseLeave:x=>{c.current||(x.target.style.background="transparent")}})}const tR=320,eR=800,Kv=450,nR=500;function X6(){const l=kt(tt=>tt.inspector.open),o=kt(tt=>tt.inspector.panelId),u=kt(tt=>tt.inspector.data),c=kt(tt=>tt.inspector.docked),p=kt(tt=>tt.inspector.width),m=kt(tt=>tt.inspector.floatingPosition),y=kt(tt=>tt.inspector.floatingSize),S=kt(tt=>tt.closeInspector),x=kt(tt=>tt.openInspector),T=kt(tt=>tt.toggleInspectorDocked),E=kt(tt=>tt.setInspectorWidth),A=kt(tt=>tt.setInspectorFloatingPosition),R=kt(tt=>tt.setInspectorFloatingSize),[j,Z]=q.useState(!1),P=kt(tt=>tt.mobile.isMobile),K=kt(tt=>tt.activeDrag),at=kt(tt=>tt.startDrag),yt=K?.type==="inspector-floating",ft=q.useMemo(()=>ai.getAllInspectorPanels(),[]),xt=q.useCallback(tt=>{x("issue",{issue:tt})},[x]),{content:vt,title:Lt}=q.useMemo(()=>{let tt=null,Mt="Inspector";const U=ft.find(I=>I.id===o);if(U){const I=of(),F=U.component,Ct=u??void 0;Mt=typeof U.title=="function"?U.title({data:Ct,services:I}):U.title,tt=I?_.jsx(F,{data:Ct,services:I}):_.jsx("div",{style:{padding:16,color:"var(--uilint-text-muted)",textAlign:"center"},children:"Loading..."})}else if(o==="issue"&&u?.issue){const I=u.issue,F=I.ruleId?ai.getRuleContribution(I.ruleId)||ai.getRuleContribution(I.ruleId.replace("uilint/","")):void 0;if(F?.inspectorPanel){const Ct=of(),jt=F.inspectorPanel;Mt="Issue Details",tt=Ct?_.jsx(jt,{data:u,services:Ct}):_.jsx("div",{style:{padding:16,color:"var(--uilint-text-muted)",textAlign:"center"},children:"Loading..."})}else Mt="Issue Details",tt=_.jsx(q6,{issue:I})}else o==="element"&&u?.dataLoc?(Mt="Element Issues",tt=_.jsx(G6,{dataLoc:u.dataLoc,onSelectIssue:xt})):tt=_.jsx("div",{style:{padding:16,color:"var(--uilint-text-muted)",textAlign:"center"},children:"Select an issue or element to inspect"});return{content:tt,title:Mt}},[o,u,ft,xt]);q.useEffect(()=>{Z(!0)},[]),q.useLayoutEffect(()=>{if(!j)return;const tt=document.documentElement;return l&&c?(tt.style.marginRight=`${p}px`,tt.style.transition="margin-right 0.2s ease-out"):(tt.style.marginRight="",tt.style.transition="margin-right 0.2s ease-out"),()=>{tt.style.marginRight="",tt.style.transition=""}},[j,l,c,p]),q.useLayoutEffect(()=>{if(!yt||!K||!K.elementStartPos)return;const{currentPos:tt,startPos:Mt,elementStartPos:U}=K,I=tt.x-Mt.x,F=tt.y-Mt.y;A({x:U.x+I,y:U.y+F})},[yt,K,A]);const St=q.useCallback(tt=>{const Mt=Math.min(eR,Math.max(tR,p-tt));E(Mt)},[p,E]),lt=q.useCallback((tt,Mt)=>{const U=y??{width:Kv,height:nR},I=Math.min(eR,Math.max(tR,U.width+tt)),F=Math.max(300,U.height+Mt);R({width:I,height:F})},[y,R]),Ut=q.useCallback(tt=>{if(!m||P)return;tt.preventDefault();const Mt={x:tt.clientX,y:tt.clientY};at("inspector-floating",Mt,{x:0,y:0},m)},[m,P,at]),wt=q.useCallback(tt=>{if(!m||P)return;const Mt=tt.touches[0],U={x:Mt.clientX,y:Mt.clientY};at("inspector-floating",U,{x:0,y:0},m)},[m,P,at]);q.useEffect(()=>{!c&&!m&&j&&A({x:window.innerWidth-Kv-20,y:80})},[c,m,A,j]);const It=document.getElementById("uilint-portal")||document.body,Tt=({isDraggable:tt=!1})=>_.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:P?"16px 16px":"12px 16px",paddingTop:P?"calc(16px + env(safe-area-inset-top, 0px))":"12px",borderBottom:"1px solid var(--uilint-border)",background:"var(--uilint-surface-elevated)",cursor:tt&&!P?"move":"default",userSelect:"none"},onMouseDown:tt&&!P?Ut:void 0,onTouchStart:tt&&!P?wt:void 0,children:[_.jsx("span",{style:{fontWeight:600,color:"var(--uilint-text-primary)"},children:Lt}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:P?8:4},children:[!P&&_.jsx(Gv,{variant:"ghost",size:"sm",onClick:T,title:c?"Undock to floating window":"Dock to side",children:c?_.jsx(Xz,{size:16}):_.jsx(Qz,{size:16})}),_.jsx(Gv,{variant:"ghost",size:P?"md":"sm",onClick:S,title:"Close",style:P?{minWidth:44,minHeight:44}:void 0,children:_.jsx(cT,{size:P?20:16})})]})]}),Qt=Zx("heavy","none",!1);return Qm.createPortal(_.jsxs(es,{children:[l&&c&&_.jsxs(ze.div,{initial:{x:p,opacity:0},animate:{x:0,opacity:1},exit:{x:p,opacity:0},transition:{duration:.15,ease:[.25,.1,.25,1]},style:{position:"fixed",top:0,right:0,bottom:0,width:p,...Qt,borderLeft:"1px solid var(--uilint-glass-border)",boxShadow:"var(--uilint-shadow)",zIndex:99997,display:"flex",flexDirection:"column",pointerEvents:"auto"},children:[_.jsx(WC,{direction:"horizontal",onResize:tt=>St(tt)}),_.jsx(Tt,{}),_.jsx("div",{style:{flex:1,overflowY:"auto"},children:vt})]},"docked"),l&&!c&&_.jsxs(ze.div,{initial:{opacity:0,scale:P?1:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:P?1:.95},transition:{duration:.15},style:P?{position:"fixed",inset:0,width:"100%",height:"100%",...Qt,border:"none",borderRadius:0,boxShadow:"none",zIndex:99997,display:"flex",flexDirection:"column",overflow:"hidden",pointerEvents:"auto"}:{position:"fixed",left:m?.x??window.innerWidth-Kv-20,top:m?.y??80,width:y?.width??Kv,height:y?.height??nR,...Qt,border:"1px solid var(--uilint-glass-border)",borderRadius:12,boxShadow:"var(--uilint-shadow)",zIndex:99997,display:"flex",flexDirection:"column",overflow:"hidden",pointerEvents:"auto"},children:[_.jsx(Tt,{isDraggable:!0}),_.jsx("div",{style:{flex:1,overflowY:"auto",minHeight:0,paddingBottom:P?"env(safe-area-inset-bottom, 0px)":void 0},children:vt}),!P&&_.jsx(WC,{direction:"corner",onResize:lt})]},"floating")]}),It)}const aR=10,Q6={isSelecting:!1,startPoint:null,currentPoint:null,mounted:!1};function Z6(l,o){switch(o.type){case"MOUNT":return{...l,mounted:!0};case"START_SELECTION":return{...l,isSelecting:!0,startPoint:o.point,currentPoint:o.point};case"UPDATE_SELECTION":return{...l,currentPoint:o.point};case"COMPLETE_SELECTION":return{...l,isSelecting:!1,startPoint:null,currentPoint:null};default:return l}}const zo={overlayBg:"rgba(0, 0, 0, 0.5)",selectionBorder:"var(--uilint-accent, #f59e0b)",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 K6({active:l,onRegionSelected:o,onCancel:u}){const[c,p]=q.useReducer(Z6,Q6),{isSelecting:m,startPoint:y,currentPoint:S,mounted:x}=c;q.useEffect(()=>{p({type:"MOUNT"})},[]);const T=q.useCallback(()=>{if(!y||!S)return null;const K=Math.min(y.x,S.x),at=Math.min(y.y,S.y),yt=Math.abs(S.x-y.x),ft=Math.abs(S.y-y.y);return{x:K,y:at,width:yt,height:ft}},[y,S]),E=q.useCallback(K=>{K.button===0&&p({type:"START_SELECTION",point:{x:K.clientX,y:K.clientY}})},[]),A=q.useCallback(K=>{!m||!y||p({type:"UPDATE_SELECTION",point:{x:K.clientX,y:K.clientY}})},[m,y]),R=q.useCallback(()=>{if(!m||!y)return;const K=T();K&&K.width>aR&&K.height>aR?o(K):u(),p({type:"COMPLETE_SELECTION"})},[m,y,T,o,u]);if(q.useEffect(()=>{if(!l)return;const K=at=>{at.key==="Escape"&&(at.preventDefault(),at.stopPropagation(),u())};return document.addEventListener("keydown",K,!0),()=>{document.removeEventListener("keydown",K,!0)}},[l,u]),q.useLayoutEffect(()=>{if(!l)return;const K=at=>{at.preventDefault()};return document.body.style.overflow="hidden",document.addEventListener("wheel",K,{passive:!1}),document.addEventListener("touchmove",K,{passive:!1}),()=>{document.body.style.overflow="",document.removeEventListener("wheel",K),document.removeEventListener("touchmove",K)}},[l]),!l||!x)return null;const j=T(),Z=typeof document<"u"?document.getElementById("uilint-portal")||document.body:null;if(!Z)return null;const P=_.jsxs("div",{"data-testid":"region-selector-overlay","data-ui-lint":!0,onMouseDown:E,onMouseMove:A,onMouseUp:R,style:{position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:999999,cursor:"crosshair",backgroundColor:zo.overlayBg,fontFamily:zo.fontFamily},children:[_.jsxs("div",{style:{position:"absolute",top:"20px",left:"50%",transform:"translateX(-50%)",padding:"12px 20px",borderRadius:"12px",backgroundColor:zo.textBg,color:zo.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"," ",_.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:zo.fontMono,marginLeft:"4px"},children:"Esc"})," ","to cancel"]}),j&&j.width>0&&j.height>0&&_.jsxs(_.Fragment,{children:[_.jsx("div",{"data-testid":"selection-rectangle",style:{position:"absolute",left:`${j.x}px`,top:`${j.y}px`,width:`${j.width}px`,height:`${j.height}px`,border:`2px solid ${zo.selectionBorder}`,backgroundColor:zo.selectionBg,pointerEvents:"none",boxShadow:`0 0 0 9999px ${zo.overlayBg}`}}),_.jsxs("div",{"data-testid":"dimensions-label",style:{position:"absolute",left:`${j.x}px`,top:`${j.y-32}px`,padding:"6px 10px",borderRadius:"6px",backgroundColor:zo.textBg,color:zo.textColor,fontSize:"12px",fontFamily:zo.fontMono,fontWeight:500,boxShadow:"0 2px 8px rgba(0, 0, 0, 0.3)",pointerEvents:"none",userSelect:"none",whiteSpace:"nowrap"},children:[Math.round(j.width)," x ",Math.round(j.height)]})]})]});return Qm.createPortal(P,Z)}let Wx=!1;function $6(){if(typeof document>"u")return;let l=document.getElementById("uilint-portal");return l||(l=document.createElement("div"),l.id="uilint-portal",l.style.cssText="position: fixed; top: 0; left: 0; z-index: 99990; pointer-events: none;",document.body.appendChild(l),Wx=!0),l}function J6(){if(!Wx)return;const l=document.getElementById("uilint-portal");l&&(l.remove(),Wx=!1)}function P6({enabled:l=!0}){const o=kt(x=>x.plugins?.vision),u=o?.regionSelectionActive??!1,c=o?.setSelectedRegion,p=o?.setRegionSelectionActive,m=o?.triggerVisionAnalysis,y=q.useCallback(x=>{c&&p&&m&&(c(x),p(!1),m())},[c,p,m]),S=q.useCallback(()=>{p&&p(!1)},[p]);return q.useEffect(()=>(l&&$6(),()=>{J6()}),[l]),l?_.jsxs(_.Fragment,{children:[_.jsx(Qk,{}),_.jsx(Ik,{}),_.jsx(N6,{}),_.jsx(X6,{}),_.jsx(K6,{active:u,onRegionSelected:y,onCancel:S})]}):null}const $v="data-loc",I6=100;function F6(l,o){return`loc:${l}#${o}`}function W6(l){if(!l)return null;let o=l;if(o.startsWith("loc:")){o=o.slice(4);const u=o.lastIndexOf("#");u!==-1&&(o=o.slice(0,u))}return o||null}function t8(l,o){return o&&l.includes("node_modules")}class e8{observer=null;reconcileTimeout=null;knownElements=new Map;addedHandlers=new Set;removedHandlers=new Set;isRunning=!1;hideNodeModules=!0;options;constructor(o={}){this.options=o}setHideNodeModules(o){this.hideNodeModules=o,this.isRunning&&this.reconcile()}start(){if(typeof window>"u"&&!this.options.root||this.isRunning)return;this.isRunning=!0;const o=this.options.MutationObserverImpl??(typeof window<"u"?window.MutationObserver:void 0),u=this.options.root??(typeof document<"u"?document.body:void 0);o&&u&&(this.observer=new o(this.handleMutations.bind(this)),this.observer.observe(u,{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(o){return this.addedHandlers.add(o),()=>{this.addedHandlers.delete(o)}}onElementsRemoved(o){return this.removedHandlers.add(o),()=>{this.removedHandlers.delete(o)}}getElements(){return this.scanElements()}handleMutations(o){let u=!1;for(const c of o){for(const p of c.addedNodes)if(this.hasDataLocElements(p)){u=!0;break}if(u)break;for(const p of c.removedNodes)if(this.hasDataLocElements(p)){u=!0;break}if(u)break}u&&this.debouncedReconcile()}hasDataLocElements(o){return o instanceof Element?!!(o.hasAttribute($v)||o.querySelector(`[${$v}]`)):!1}debouncedReconcile(){this.reconcileTimeout&&clearTimeout(this.reconcileTimeout),this.reconcileTimeout=setTimeout(()=>{this.reconcile(),this.reconcileTimeout=null},I6)}reconcile(){if(typeof window>"u")return;const o=this.scanElements(),u=new Map(o.map(S=>[S.id,S])),c=new Set(u.keys()),p=new Set(this.knownElements.keys()),m=[];for(const S of o)p.has(S.id)||m.push(S);const y=[];for(const S of p)c.has(S)||y.push(S);this.knownElements.clear();for(const S of o)this.knownElements.set(S.id,S.element);if(m.length>0)for(const S of this.addedHandlers)try{S(m)}catch(x){console.error("[DOMObserverService] Error in added handler:",x)}if(y.length>0)for(const S of this.removedHandlers)try{S(y)}catch(x){console.error("[DOMObserverService] Error in removed handler:",x)}}scanElements(){const o=this.options.querySelectorAll??(typeof document<"u"?document.querySelectorAll.bind(document):void 0);if(!o)return[];const u=[],c=new Map,p=o(`[${$v}]`);for(const m of p){if(this.isInsideUILintUI(m))continue;const y=m.getAttribute($v),S=W6(y??"");if(!S||t8(S,this.hideNodeModules))continue;const x=(c.get(S)??0)+1;c.set(S,x);const T=F6(S,x);u.push({id:T,dataLoc:S,element:m,tagName:m.tagName.toLowerCase(),rect:m.getBoundingClientRect()})}return u}isInsideUILintUI(o){return o.closest("[data-ui-lint]")!==null}}const hg=new e8,tw=[{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:l=>{const u=l.getState().plugins.eslint;if(!u){console.warn("[ESLint Command] ESLint plugin slice not found");return}u.scanStatus==="scanning"?u.stopScanning():u.startScanning(),l.closeCommandPalette()},isAvailable:l=>l.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:l=>{const u=l.getState().plugins.eslint;if(!u){console.warn("[ESLint Command] ESLint plugin slice not found");return}u.scanStatus!=="scanning"&&u.startScanning(),l.closeCommandPalette()},isAvailable:l=>{const o=l;return o.wsConnected===!0&&o.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:l=>{const u=l.getState().plugins.eslint;if(!u){console.warn("[ESLint Command] ESLint plugin slice not found");return}u.stopScanning(),l.closeCommandPalette()},isAvailable:l=>l.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:l=>{l.openInspector("fixes",{}),l.closeCommandPalette()},isAvailable:l=>{const u=l.plugins?.eslint;return u?.scanStatus!=="scanning"||!u?.issues?!1:u.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:l=>{const u=l.getState().plugins.eslint;if(!u){console.warn("[ESLint Command] ESLint plugin slice not found");return}u.clearIssues(),u.startScanning(),l.closeCommandPalette()},isAvailable:l=>l.wsConnected===!0}],n8={issues:new Map,scannedDataLocs:new Set,requestedFiles:new Set,scanStatus:"scanning",availableRules:[],disabledRules:new Set,workspaceRoot:null,ruleConfigs:new Map,ruleConfigUpdating:new Map,workspaceCapabilities:null};function a8(l){return{...n8}}function i8(l,o,u){return{startScanning:()=>{u({scanStatus:"scanning"})},stopScanning:()=>{u({scanStatus:"idle",issues:new Map,scannedDataLocs:new Set,requestedFiles:new Set})},setIssues:(c,p)=>{const m=o(),y=new Map(m.issues);p.length>0?y.set(c,p):y.delete(c),u({issues:y})},clearIssues:()=>{u({issues:new Map,scannedDataLocs:new Set,requestedFiles:new Set})},toggleRule:c=>{const p=o(),m=new Set(p.disabledRules);m.has(c)?m.delete(c):m.add(c),u({disabledRules:m})},setAvailableRules:c=>{u({availableRules:c})},setWorkspaceRoot:c=>{u({workspaceRoot:c})},markScanned:c=>{const p=o(),m=new Set(p.scannedDataLocs);m.add(c),u({scannedDataLocs:m})},markFileRequested:c=>{const p=o(),m=new Set(p.requestedFiles);m.add(c),u({requestedFiles:m})},setScanStatus:c=>{u({scanStatus:c})}}}function l8(l){if(!l)return null;const o=l.lastIndexOf(":");if(o===-1)return null;const u=l.lastIndexOf(":",o-1);if(u===-1)return null;const c=l.substring(0,u);return c||null}function o8(l){const o=new Set;for(const u of l){const c=l8(u);c&&o.add(c)}return o}function r8({value:l,onChange:o,disabled:u}){const c=[{value:"error",label:"E",color:"#ef4444"},{value:"warning",label:"W",color:"#f59e0b"},{value:"off",label:"Off",color:"#6b7280"}];return _.jsx("div",{style:{display:"flex",gap:4},children:c.map(p=>_.jsx("button",{onClick:()=>o(p.value),disabled:u,style:{padding:"4px 8px",fontSize:12,fontWeight:500,border:"none",borderRadius:4,cursor:u?"not-allowed":"pointer",background:l===p.value?p.color:"var(--uilint-surface-elevated)",color:l===p.value?"white":"var(--uilint-text-disabled)",opacity:u?.5:1},children:p.label},p.value))})}function s8({data:l}){const o=l?.ruleId,u=kt(x=>{const T=x.plugins?.eslint;return T?.availableRules?T.availableRules.find(E=>E.id===o):null}),c=kt(x=>{const T=x.plugins?.eslint;return T?.ruleConfigs?T.ruleConfigs.get(o||""):null}),p=kt(x=>{const T=x.plugins?.eslint;return T?.ruleConfigUpdating?T.ruleConfigUpdating.get(o||"")??!1:!1}),m=kt(x=>{const T=x.plugins?.eslint;if(!T?.issues)return 0;let E=0;return T.issues.forEach(A=>{E+=A.filter(R=>R.ruleId===o).length}),E}),y=q.useCallback(x=>{o&&ai.setRuleSeverity(o,x)},[o]);if(!o)return _.jsx("div",{style:{padding:16,color:"var(--uilint-text-muted)",textAlign:"center"},children:"No rule selected"});if(!u)return _.jsxs("div",{style:{padding:16,color:"var(--uilint-text-muted)",textAlign:"center"},children:["Rule not found: ",o]});const S=c?.severity?c.severity==="warn"?"warning":c.severity:u.currentSeverity==="warn"?"warning":u.currentSeverity??"off";return _.jsxs("div",{style:{padding:16},children:[_.jsxs("div",{style:{marginBottom:16},children:[_.jsx("div",{style:{fontSize:16,fontWeight:600,color:"var(--uilint-text-primary)",marginBottom:4},children:u.name}),_.jsx("div",{style:{fontSize:12,color:"var(--uilint-text-muted)",fontFamily:"monospace"},children:u.id})]}),_.jsx("div",{style:{fontSize:14,color:"var(--uilint-text-secondary)",marginBottom:16,lineHeight:1.5},children:u.description}),_.jsxs("div",{style:{display:"flex",gap:8,marginBottom:16},children:[_.jsx("span",{style:{fontSize:11,fontWeight:500,textTransform:"uppercase",background:u.category==="semantic"?"rgba(59, 130, 246, 0.1)":"var(--uilint-surface-elevated)",color:u.category==="semantic"?"var(--uilint-accent)":"var(--uilint-text-muted)",padding:"2px 6px",borderRadius:4},children:u.category}),m>0&&_.jsxs("span",{style:{fontSize:11,fontWeight:500,background:"rgba(239, 68, 68, 0.1)",color:"#dc2626",padding:"2px 6px",borderRadius:4},children:[m," issue",m!==1?"s":""]})]}),_.jsxs("div",{style:{marginBottom:16},children:[_.jsx("div",{style:{fontSize:12,fontWeight:500,color:"var(--uilint-text-muted)",marginBottom:8},children:"Severity"}),_.jsx(r8,{value:S,onChange:y,disabled:p}),p&&_.jsx("div",{style:{fontSize:11,color:"var(--uilint-text-muted)",marginTop:4},children:"Updating..."})]}),u.docs&&_.jsx("div",{style:{marginTop:16},children:_.jsx("a",{href:u.docs,target:"_blank",rel:"noopener noreferrer",style:{fontSize:12,color:"var(--uilint-accent)",textDecoration:"none"},children:"View documentation"})})]})}function u8(l){const{manifestUrl:o,retries:u=3,retryDelay:c=1e3,cacheTtl:p=0}=l;let m=null,y=null,S=null;function x(){return!m||y===null?!1:p===0?!0:Date.now()-y<p}function T(A){return new Promise(R=>setTimeout(R,A))}async function E(){let A=null;for(let R=0;R<=u;R++)try{R>0&&(console.log(`[ManifestFetcher] Retry attempt ${R}/${u}...`),await T(c*R));const j=await fetch(o);if(!j.ok)throw new Error(`Failed to fetch manifest: ${j.status} ${j.statusText}`);const Z=await j.json();if(Z.version!=="1.0")throw new Error(`Unsupported manifest version: ${Z.version}`);if(!Array.isArray(Z.files))throw new Error("Invalid manifest: missing files array");return Z}catch(j){A=j instanceof Error?j:new Error(String(j)),console.error(`[ManifestFetcher] Fetch failed (attempt ${R+1}):`,A.message)}throw A??new Error("Failed to fetch manifest")}return{async fetch(){return x()&&m?{manifest:m,cached:!0,fetchedAt:y}:S||(S=(async()=>{try{console.log(`[ManifestFetcher] Fetching manifest from ${o}...`);const A=await E();return m=A,y=Date.now(),console.log(`[ManifestFetcher] Loaded manifest: ${A.summary.totalIssues} issues in ${A.summary.filesWithIssues} files`),{manifest:A,cached:!1,fetchedAt:y}}finally{S=null}})(),S)},getCached(){return x()?m:null},invalidate(){m=null,y=null,console.log("[ManifestFetcher] Cache invalidated")},isFetching(){return S!==null},getManifestUrl(){return o}}}let iR=null;function c8(l){return iR=u8(l),iR}function f8(l,o){const{filePath:u}=QC(l.dataLoc),c=l.ruleId||"unknown",p=o.find(S=>`uilint/${S.id}`===c||S.id===c),y=(p?.currentSeverity??p?.defaultSeverity??"warn")==="error"?"error":"warning";return{id:ZC("eslint",c,l.dataLoc,l.line),message:l.message,severity:y,dataLoc:l.dataLoc,ruleId:c,pluginId:"eslint",filePath:u,line:l.line,column:l.column}}function d8(l){return{id:l.id,name:l.name,description:l.description,category:l.category,defaultSeverity:l.defaultSeverity,currentSeverity:l.currentSeverity,docs:l.docs}}function h8(l,o){console.log("[ESLint Plugin] Processing manifest:",o.summary.totalIssues,"issues in",o.summary.filesWithIssues,"files");const u=new Map;for(const m of o.files)for(const y of m.issues){const S=f8(y,o.rules),x=u.get(S.dataLoc)||[];u.set(S.dataLoc,[...x,S])}const c=o.rules.map(d8),p=new Map;for(const m of o.rules)p.set(m.id,{severity:m.currentSeverity??m.defaultSeverity});l.setState({issues:u,availableRules:c,ruleConfigs:p,workspaceRoot:o.workspaceRoot,scanStatus:"complete"}),console.log("[ESLint Plugin] Manifest processed:",u.size,"unique dataLocs with issues")}let hf=null;function p8(l){const o=c8({manifestUrl:l});hf={mode:"static",manifestUrl:l,fetcher:o,manifest:null},console.log("[ESLint Plugin] Configured for static mode:",l)}function m8(){return hf!==null}function g8(){hf=null}function y8(l){if(!hf)return console.error("[ESLint Plugin] Static mode not configured"),()=>{};const{fetcher:o}=hf;console.log("[ESLint Plugin] Initializing in static mode..."),l.setState({scanStatus:"scanning"}),o.fetch().then(({manifest:c})=>{hf.manifest=c,h8(l,c)}).catch(c=>{console.error("[ESLint Plugin] Failed to fetch manifest:",c),l.setState({scanStatus:"error"})});const u=l.domObserver.onElementsAdded(c=>{hf?.manifest&&console.log("[ESLint Plugin] Static mode: DOM elements detected:",c.length)});return()=>{u(),console.log("[ESLint Plugin] Static mode disposed")}}const lR=["lint:result","lint:progress","file:changed","workspace:info","workspace:capabilities","rules:metadata","rule:config:result","rule:config:changed"],v8={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:l=>{const o=a8();let u=o;const m=i8(l,()=>u,y=>{u={...u,...y},l.setState(y)});return{...o,...m}},commands:tw,categoryProviders:x8(),inspectorPanels:[{id:"eslint-rule",title:({data:l})=>l?.ruleId?`Rule: ${l.ruleId}`:"Rule Details",component:s8,priority:10}],handlesRules:l=>l.id.startsWith("uilint/")||l.category==="static"?!0:(l.id==="uilint/semantic-vision",!1),getIssues:l=>{const o=l,u=new Map;return o.issues.forEach((c,p)=>{const m=c.map(y=>({id:y.id,message:y.message,severity:y.severity,dataLoc:y.dataLoc,line:y.line,column:y.column,ruleId:y.ruleId}));m.length>0&&u.set(p,m)}),{pluginId:"eslint",issues:u}},getRules:l=>{const o=l.getState();if(!o?.availableRules)return[];const u=o.ruleConfigs??new Map;return o.availableRules.map(c=>{const m=u.get(c.id)?.severity??c.currentSeverity??c.defaultSeverity,y=m==="warn"?"warning":m;return{id:c.id,name:c.name,description:c.description,category:c.category,severity:y,fixable:!1,pluginId:"eslint",docs:c.docs}})},setRuleSeverity:(l,o,u)=>{const c=o==="warning"?"warn":o,p=u.getState(),m=new Map(p.ruleConfigUpdating??new Map);m.set(l,!0),u.setState({ruleConfigUpdating:m}),u.websocket.send({type:"rule:config:set",ruleId:l,severity:c,requestId:`rule-severity-${Date.now()}`}),console.log("[ESLint Plugin] Setting rule severity:",l,"->",c)},getRuleConfig:(l,o)=>(o.getState()?.ruleConfigs??new Map).get(l)?.options??{},setRuleConfig:(l,o,u)=>{const c=u.getState(),p=new Map(c.ruleConfigUpdating??new Map);p.set(l,!0),u.setState({ruleConfigUpdating:p}),u.websocket.send({type:"rule:config:set",ruleId:l,options:o,requestId:`rule-config-${Date.now()}`}),console.log("[ESLint Plugin] Setting rule config:",l,o)},initialize:l=>{if(console.log("[ESLint Plugin] Initializing..."),m8())return console.log("[ESLint Plugin] Running in STATIC mode (manifest-based)"),y8(l);console.log("[ESLint Plugin] Running in WEBSOCKET mode");const o=[];for(const c of lR){const p=l.websocket.on(c,m=>{S8(l,m)});o.push(p)}console.log("[ESLint Plugin] Subscribed to",lR.length,"message types");const u=l.domObserver.onElementsAdded(c=>{b8(l,c)});return o.push(u),console.log("[ESLint Plugin] Subscribed to DOM observer"),()=>{console.log("[ESLint Plugin] Disposing..."),o.forEach(c=>c())}},dispose:l=>{console.log("[ESLint Plugin] Disposed")}};function b8(l,o){const u=l.getState();if(console.log("[ESLint Plugin] handleElementsAdded called with",o.length,"elements"),console.log("[ESLint Plugin] State check - scanStatus:",u?.scanStatus,"wsConnected:",l.websocket.isConnected),u.scanStatus!=="scanning"){console.log("[ESLint Plugin] Scanning not active (status:",u.scanStatus,"), skipping lint requests");return}if(!l.websocket.isConnected){console.log("[ESLint Plugin] WebSocket not connected, skipping lint requests");return}const c=o.map(S=>S.dataLoc),p=o8(c);if(p.size===0){console.log("[ESLint Plugin] No file paths extracted from",o.length,"elements");return}console.log("[ESLint Plugin] Detected",o.length,"elements from",p.size,"unique files:",Array.from(p).slice(0,3));const m=u.requestedFiles??new Set,y=[];for(const S of p)if(!m.has(S)){y.push(S);const x=`lint-${Date.now()}-${S.replace(/[^a-zA-Z0-9]/g,"-")}`;l.websocket.send({type:"lint:file",filePath:S,requestId:x}),console.log("[ESLint Plugin] Sent lint:file request for",S)}if(y.length>0){const S=new Set(m);for(const x of y)S.add(x);l.setState({requestedFiles:S}),console.log("[ESLint Plugin] Updated requestedFiles with",y.length,"new files")}else console.log("[ESLint Plugin] All files already requested, skipping")}function S8(l,o){switch(o.type){case"lint:result":{const{filePath:u,issues:c}=o;console.log("[ESLint Plugin] Received lint result:",u,c.length,"issues");const p=c.map(x=>Jk({...x,dataLoc:x.dataLoc||`${u}:${x.line}:${x.column||0}`})).filter(x=>x!==null),m=new Map;for(const x of p){const T=m.get(x.dataLoc)||[];m.set(x.dataLoc,[...T,x])}const y=l.getState(),S=new Map(y.issues);for(const[x,T]of m)S.set(x,T);l.setState({issues:S});break}case"lint:progress":{const{filePath:u,phase:c}=o;console.log("[ESLint Plugin] Lint progress:",u,c);break}case"file:changed":{const{filePath:u}=o;console.log("[ESLint Plugin] File changed:",u);const c=l.getState(),p=new Map(c.issues);for(const[y]of p)y.startsWith(u+":")&&p.delete(y);const m=new Set(c.requestedFiles??new Set);m.delete(u),l.setState({issues:p,requestedFiles:m});break}case"workspace:info":{const{appRoot:u,workspaceRoot:c,serverCwd:p}=o;console.log("[ESLint Plugin] Workspace info:",{appRoot:u,workspaceRoot:c,serverCwd:p}),l.setState({appRoot:u,workspaceRoot:c,serverCwd:p});break}case"workspace:capabilities":{const{postToolUseHook:u}=o;console.log("[ESLint Plugin] Workspace capabilities:",{postToolUseHook:u}),l.setState({workspaceCapabilities:{postToolUseHook:u}});break}case"rules:metadata":{const{rules:u}=o;console.log("[ESLint Plugin] Received rules metadata:",u.length,"rules");const c=new Map;for(const p of u)c.set(p.id,{severity:p.currentSeverity??p.defaultSeverity,options:p.currentOptions??(p.defaultOptions&&p.defaultOptions.length>0?p.defaultOptions[0]:void 0)});l.setState({availableRules:u,ruleConfigs:c});break}case"rule:config:result":{const{ruleId:u,severity:c,options:p,success:m,error:y}=o,S=l.getState(),x=new Map(S.ruleConfigUpdating);if(x.delete(u),l.setState({ruleConfigUpdating:x}),m){const T=l.getState(),E=new Map(T.ruleConfigs);E.set(u,{severity:c,options:p}),l.setState({ruleConfigs:E}),console.log("[ESLint Plugin] Rule config updated:",u,"->",c)}else console.error("[ESLint Plugin] Failed to update rule config:",y);break}case"rule:config:changed":{const{ruleId:u,severity:c,options:p}=o,m=l.getState(),y=new Map(m.ruleConfigs);y.set(u,{severity:c,options:p}),l.setState({ruleConfigs:y}),console.log("[ESLint Plugin] Rule config changed (broadcast):",u,"->",c);break}}}function x8(){return[{id:"eslint:commands",label:"Commands",priority:1,parentId:"eslint",getItems:l=>{const o=l.getState();return tw.filter(u=>!u.isAvailable||u.isAvailable(o)).map(u=>({id:u.id,title:u.title,subtitle:u.subtitle,priority:1,metadata:{category:u.category,keywords:u.keywords},execute:c=>{u.execute(c)}}))},getItemCount:l=>{const o=l.getState();return tw.filter(u=>!u.isAvailable||u.isAvailable(o)).length},searchKeys:["title","subtitle"]},{id:"eslint:dynamic-rules",label:"Issues by Rule",priority:2,isDynamic:!0,parentId:"eslint",getSubCategories:l=>{const u=l.getState()?.plugins?.eslint;if(!u?.issues)return[];const c=new Map;for(const m of u.issues.values())for(const y of m){const S=c.get(y.ruleId)||[];c.set(y.ruleId,[...S,y])}const p=[];for(const[m,y]of c){const S=y.filter(E=>E.severity==="error").length,x=y.length,T=m.includes("/")?m.split("/").pop():m;p.push({id:`eslint:rule:${m}`,label:T,priority:S>0?0:1,parentId:"eslint",getItems:()=>y.map(E=>({id:`eslint:issue:${E.id}`,title:E.message,subtitle:`${E.filePath}:${E.line}`,priority:E.severity==="error"?0:1,metadata:{issueId:E.id,ruleId:E.ruleId,severity:E.severity,filePath:E.filePath,line:E.line},execute:A=>{A.openInspector("issue",{issue:E}),A.closeCommandPalette()}})),getItemCount:()=>x,searchKeys:["title","subtitle"]})}return p.sort((m,y)=>{if(m.priority!==y.priority)return m.priority-y.priority;const S=m.getItemCount?.(l)??0;return(y.getItemCount?.(l)??0)-S}),p},getItems:()=>[],getItemCount:()=>0}]}const ew=[{id:"vision:capture-full-page",title:"Capture Full Page",keywords:["vision","screenshot","capture","full","page","analyze"],category:"Vision",subtitle:"Capture and analyze the entire visible page",icon:"camera",hideFromAllCategory:!0,execute:async l=>{const o=l.getState();o.setCaptureMode("full"),o.setRegionSelectionActive(!1),o.setSelectedRegion(null),l.closeCommandPalette(),await o.triggerVisionAnalysis()}},{id:"vision:capture-region",title:"Capture Region",keywords:["vision","screenshot","capture","region","area","select","partial"],category:"Vision",subtitle:"Select a region of the page to capture and analyze",icon:"crop",hideFromAllCategory:!0,execute:l=>{const o=l.getState();o.setCaptureMode("region"),o.setRegionSelectionActive(!0),o.setSelectedRegion(null),l.closeCommandPalette()}},{id:"vision:clear-results",title:"Clear Vision Results",keywords:["vision","clear","reset","results","screenshots","history"],category:"Vision",subtitle:"Clear all vision analysis results and screenshot history",icon:"trash",hideFromAllCategory:!0,execute:l=>{l.getState().clearVisionResults(),l.closeCommandPalette()}},{id:"vision:toggle-results-panel",title:"Toggle Vision Results Panel",keywords:["vision","results","panel","toggle","show","hide"],category:"Vision",subtitle:"Show or hide the vision analysis results panel",icon:"panel",hideFromAllCategory:!0,execute:l=>{const o=l.getState();o.showResultsPanel?o.setShowResultsPanel(!1):(o.setShowResultsPanel(!0),o.setActiveResultsTab("vision")),l.closeCommandPalette()}},{id:"vision:show-screenshot-gallery",title:"Show Screenshot Gallery",keywords:["vision","screenshots","gallery","history","captures"],category:"Vision",subtitle:"View captured screenshots and their analysis results",icon:"image",hideFromAllCategory:!0,isAvailable:l=>{const o=l;return o.screenshotHistory&&o.screenshotHistory.size>0},execute:l=>{const o=l.getState();o.setShowResultsPanel(!0),o.setActiveResultsTab("vision"),l.closeCommandPalette()}},{id:"vision:enable-auto-analyze",title:"Enable Auto Vision Analysis",keywords:["vision","auto","analyze","automatic","route","change"],category:"Vision",subtitle:"Automatically analyze pages on route change",hideFromAllCategory:!0,isAvailable:l=>!l.autoScanSettings?.vision?.onRouteChange,execute:l=>{l.getState().updateAutoScanSettings({vision:{onRouteChange:!0}}),l.closeCommandPalette()}},{id:"vision:disable-auto-analyze",title:"Disable Auto Vision Analysis",keywords:["vision","auto","analyze","automatic","route","change","disable"],category:"Vision",subtitle:"Stop automatic analysis on route change",hideFromAllCategory:!0,isAvailable:l=>l.autoScanSettings?.vision?.onRouteChange===!0,execute:l=>{l.getState().updateAutoScanSettings({vision:{onRouteChange:!1}}),l.closeCommandPalette()}}],Jv={onRouteChange:!1,onInitialLoad:!1},nw="data-loc",w8=new Set(["SCRIPT","STYLE","SVG","PATH","CIRCLE","RECT","LINE","POLYGON","POLYLINE","ELLIPSE","NOSCRIPT","TEMPLATE","SLOT"]),T8=3,oR=100;function E8(l){const o=l.tagName.toUpperCase(),u=l.getAttribute("role");if(u)return u;switch(o){case"BUTTON":return"button";case"A":return"link";case"H1":case"H2":case"H3":case"H4":case"H5":case"H6":return"heading";case"INPUT":{const c=l.type;return c==="submit"||c==="button"?"button":c==="checkbox"?"checkbox":c==="radio"?"radio":"textbox"}case"TEXTAREA":return"textbox";case"SELECT":return"combobox";case"IMG":return"img";case"NAV":return"navigation";case"MAIN":return"main";case"HEADER":return"banner";case"FOOTER":return"contentinfo";case"ASIDE":return"complementary";case"ARTICLE":return"article";case"SECTION":return"region";case"FORM":return"form";case"TABLE":return"table";case"UL":case"OL":return"list";case"LI":return"listitem";default:return}}function A8(l){const o=l.innerText?.trim();if(o)return o.length>oR?o.slice(0,oR)+"…":o;const u=l.getAttribute("aria-label");if(u)return u;const c=l.getAttribute("title");if(c)return c;const p=l.getAttribute("placeholder");if(p)return p;const m=l.getAttribute("alt");return m||""}function C8(l){const o=l,u=window.getComputedStyle(o);if(u.display==="none"||u.visibility==="hidden"||u.opacity==="0")return!1;const c=l.getBoundingClientRect();return!(c.width===0&&c.height===0||c.bottom<-100||c.top>window.innerHeight+100||c.right<-100||c.left>window.innerWidth+100)}function R8(l,o){const u=l.left+l.width,c=l.top+l.height,p=o.x+o.width,m=o.y+o.height;return!(l.left>p||u<o.x||l.top>m||c<o.y)}function M8(l=document.body,o){const u=[],c=new Map,p=new Map,m=window.scrollX||window.pageXOffset||0,y=window.scrollY||window.pageYOffset||0,S=l.querySelectorAll(`[${nw}]`);for(const x of S){if(x.closest("[data-ui-lint]")||w8.has(x.tagName)||!C8(x))continue;const T=x.getBoundingClientRect();if(o&&!R8(T,o))continue;let E=x.getAttribute(nw);if(!E)continue;if(E.startsWith("loc:")){E=E.slice(4);const at=E.lastIndexOf("#");at!==-1&&(E=E.slice(0,at))}const A=c.get(E)||0;c.set(E,A+1);let R=p.get(E);if(R||(R=[],p.set(E,R)),R.length>=T8)continue;const j=A8(x),Z=x.getAttribute(nw)||`loc:${E}#${A}`;let P;o?P={x:T.x-o.x,y:T.y-o.y,width:T.width,height:T.height}:P={x:T.x+m,y:T.y+y,width:T.width,height:T.height};const K={id:Z,text:j,dataLoc:E,rect:P,tagName:x.tagName.toLowerCase(),role:E8(x)};R.push(K)}for(const[x,T]of p){const E=c.get(x)||T.length;T.forEach((A,R)=>{R===0&&E>T.length&&(A.instanceCount=E),u.push(A)})}return u}async function z8(){const l=await Promise.resolve().then(()=>kR).catch(()=>null);if(!l)throw new Error("Screenshot capture unavailable: `html-to-image` failed to load (check the uilint-react bundle/deps)");try{return await l.toPng(document.body,{pixelRatio:1,cacheBust:!0,filter:u=>!(u instanceof Element&&u.closest("[data-ui-lint]"))})}catch(o){const c=(o instanceof Error?o:new Error(String(o))).message||"Unknown error",p=/tainted|cross[- ]origin|CORS|security/i.test(c)?" Hint: this is often caused by cross-origin images/fonts; try removing external images or ensuring they allow CORS.":"";throw new Error(`Screenshot capture failed (html-to-image): ${c}.${p}`)}}async function D8(l){const o=await Promise.resolve().then(()=>kR).catch(()=>null);if(!o)throw new Error("Screenshot capture unavailable: `html-to-image` failed to load (check the uilint-react bundle/deps)");try{const u=await o.toPng(document.body,{pixelRatio:1,cacheBust:!0,filter:y=>!(y instanceof Element&&y.closest("[data-ui-lint]"))}),c=window.scrollX||window.pageXOffset||0,p=window.scrollY||window.pageYOffset||0,m={x:l.x+c,y:l.y+p,width:l.width,height:l.height};return await O8(u,m)}catch(u){const p=(u instanceof Error?u:new Error(String(u))).message||"Unknown error",m=/tainted|cross[- ]origin|CORS|security/i.test(p)?" Hint: this is often caused by cross-origin images/fonts; try removing external images or ensuring they allow CORS.":"";throw new Error(`Screenshot capture failed (html-to-image): ${p}.${m}`)}}async function O8(l,o){return new Promise((u,c)=>{const p=new Image;p.onload=()=>{try{const m=document.createElement("canvas");m.width=o.width,m.height=o.height;const y=m.getContext("2d");if(!y){c(new Error("Failed to get canvas context"));return}y.drawImage(p,o.x,o.y,o.width,o.height,0,0,o.width,o.height);const S=m.toDataURL("image/png");u(S)}catch(m){c(new Error(`Failed to crop image: ${m instanceof Error?m.message:String(m)}`))}},p.onerror=()=>{c(new Error("Failed to load image for cropping"))},p.src=l})}function _8(){return window.location.pathname.replace(/\/+$/,"")||"/"}const k8={visionAvailable:!1,visionAnalyzing:!1,visionProgressPhase:null,visionLastError:null,visionResult:null,visionIssuesCache:new Map,screenshotHistory:new Map,selectedScreenshotId:null,visionCurrentRoute:null,highlightedVisionElementId:null,captureMode:"full",regionSelectionActive:!1,selectedRegion:null,autoScanSettings:Jv,loadingPersistedScreenshots:!1,persistedScreenshotsFetched:!1},rR="uilint:visionAutoScanSettings";function j8(){if(typeof window>"u")return Jv;try{const l=localStorage.getItem(rR);if(l){const o=JSON.parse(l);return{...Jv,...o}}}catch(l){console.warn("[Vision Plugin] Failed to load auto-scan settings:",l)}return Jv}function U8(l){if(!(typeof window>"u"))try{localStorage.setItem(rR,JSON.stringify(l))}catch(o){console.warn("[Vision Plugin] Failed to save auto-scan settings:",o)}}function L8(l,o){return{...k8,autoScanSettings:j8(),setVisionAvailable:u=>l({visionAvailable:u}),triggerVisionAnalysis:async()=>{console.warn("[Vision Plugin] triggerVisionAnalysis called without integration")},clearVisionResults:()=>l({visionResult:null,visionIssuesCache:new Map,screenshotHistory:new Map,selectedScreenshotId:null,visionAnalyzing:!1,visionProgressPhase:null,highlightedVisionElementId:null,visionLastError:null}),clearVisionLastError:()=>l({visionLastError:null}),setHighlightedVisionElementId:u=>l({highlightedVisionElementId:u}),setCaptureMode:u=>l({captureMode:u}),setRegionSelectionActive:u=>l({regionSelectionActive:u}),setSelectedRegion:u=>l({selectedRegion:u}),setSelectedScreenshotId:u=>{const c=o();if(!u){l({selectedScreenshotId:null});return}const p=c.screenshotHistory.get(u);if(!p){l({selectedScreenshotId:u});return}if(p.issues&&p.issues.length>0){const m=new Map(c.visionIssuesCache);m.set(p.route,p.issues),l({selectedScreenshotId:u,visionIssuesCache:m})}else l({selectedScreenshotId:u})},fetchPersistedScreenshots:async()=>{const u=o();if(!(u.loadingPersistedScreenshots||u.persistedScreenshotsFetched)){l({loadingPersistedScreenshots:!0});try{const c=await fetch("/api/.uilint/screenshots?list=true");if(!c.ok){console.warn("[Vision Plugin] Failed to fetch screenshots:",c.statusText);return}const p=await c.json(),{screenshots:m}=p;if(!m||m.length===0)return;const y=[];for(const E of m){const{filename:A,metadata:R}=E,j=`capture_${A.replace(/\.[^.]+$/,"")}`,Z=R?.route||R?.analysisResult?.route||"/",P=R?.timestamp||Date.now(),K=R?.issues||R?.analysisResult?.issues||[],at={id:j,route:Z,filename:A,timestamp:P,type:"full",persisted:!0,issues:K.length>0?K:void 0};y.push(at)}const S=o(),x=new Map(S.screenshotHistory),T=new Map(S.visionIssuesCache);for(const E of y){const A=x.get(E.id);(!A||!A.dataUrl)&&x.set(E.id,E),E.issues&&E.issues.length>0&&!T.has(E.route)&&T.set(E.route,E.issues)}l({screenshotHistory:x,visionIssuesCache:T})}catch(c){console.warn("[Vision Plugin] Error fetching persisted screenshots:",c)}finally{l({loadingPersistedScreenshots:!1,persistedScreenshotsFetched:!0})}}},updateVisionAutoScanSettings:u=>{const p={...o().autoScanSettings,...u};U8(p),l({autoScanSettings:p})},setVisionAnalyzing:u=>l({visionAnalyzing:u}),setVisionProgressPhase:u=>l({visionProgressPhase:u}),setVisionLastError:u=>l({visionLastError:u}),setVisionResult:u=>l({visionResult:u}),updateVisionIssuesCache:(u,c)=>{const p=o(),m=new Map(p.visionIssuesCache);m.set(u,c),l({visionIssuesCache:m})},addScreenshotToHistory:u=>{const c=o(),p=new Map(c.screenshotHistory);p.set(u.id,u),l({screenshotHistory:p,selectedScreenshotId:u.id})},updateScreenshotInHistory:(u,c)=>{const p=o(),m=new Map(p.screenshotHistory),y=m.get(u);y&&(m.set(u,{...y,...c}),l({screenshotHistory:m}))},setVisionCurrentRoute:u=>l({visionCurrentRoute:u})}}const N8=1e4;function V8(l){return async()=>{const{websocket:o,getState:u}=l,c=u(),p=_8();try{c.setVisionAnalyzing(!0),c.setVisionProgressPhase("capturing"),c.setVisionCurrentRoute(p);const{captureMode:m,selectedRegion:y}=c,S=m==="region"&&y!==null;let x;S&&y?x=await D8(y):x=await z8();const T=M8(document.body,S&&y?y:void 0),E=Date.now(),A=`capture_${E}`;c.addScreenshotToHistory({id:A,route:p,dataUrl:x,timestamp:E,type:S?"region":"full",region:S&&y?y:void 0}),S&&(c.setRegionSelectionActive(!1),c.setSelectedRegion(null)),c.setVisionProgressPhase("saving");const R=await new Promise((j,Z)=>{const P=setTimeout(()=>{K(),Z(new Error("Timeout waiting for screenshot:saved response"))},N8),K=o.on("screenshot:saved",at=>{clearTimeout(P),K();const yt=at;yt.error?Z(new Error(yt.error)):yt.filename?j(yt.filename):Z(new Error("Invalid screenshot:saved response"))});o.send({type:"screenshot:save",dataUrl:x,route:p,timestamp:E})});c.setVisionProgressPhase("analyzing"),o.send({type:"vision:analyze",route:p,timestamp:E,screenshot:x,screenshotFile:R,manifest:T})}catch(m){const y=m instanceof Error?m.message:String(m),S=y.includes("Timeout")||y.includes("websocket")?"ws":(y.includes("capture")||y.includes("Screenshot capture"),"capture");c.setVisionLastError({stage:S,message:y,route:p,timestamp:Date.now()}),c.setVisionAnalyzing(!1),c.setVisionProgressPhase(null)}}}const sR=Ln.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},Ln.createElement("path",{d:"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"}),Ln.createElement("circle",{cx:"12",cy:"13",r:"4"})),H8=Ln.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},Ln.createElement("path",{d:"M6.13 1L6 16a2 2 0 0 0 2 2h15"}),Ln.createElement("path",{d:"M1 6.13L16 6a2 2 0 0 1 2 2v15"})),B8={id:"vision:capture-group",icon:sR,tooltip:"Vision Capture",priority:100,isVisible:l=>l.plugins?.vision?.visionAvailable===!0,actions:[{id:"vision:capture-full-page",icon:sR,tooltip:"Capture Full Page",shortcut:"⌘⇧C",priority:100,isVisible:l=>l.plugins?.vision?.visionAvailable===!0,onClick:async l=>{const u=l.getState().plugins.vision;u.setCaptureMode("full"),u.setRegionSelectionActive(!1),u.setSelectedRegion(null),await u.triggerVisionAnalysis()}},{id:"vision:capture-region",icon:H8,tooltip:"Capture Region",shortcut:"⌘⇧R",priority:90,isVisible:l=>l.plugins?.vision?.visionAvailable===!0,onClick:l=>{const u=l.getState().plugins.vision;u.setCaptureMode("region"),u.setRegionSelectionActive(!0),u.setSelectedRegion(null)}}]};function Y8(){return[{id:"vision:commands",label:"Commands",priority:1,parentId:"vision",getItems:l=>{const o=l.getState(),u={...o,screenshotHistory:o.plugins?.vision?.screenshotHistory??new Map,autoScanSettings:o.autoScanSettings??{vision:{onRouteChange:!1}}};return ew.filter(c=>!c.isAvailable||c.isAvailable(u)).map(c=>({id:c.id,title:c.title,subtitle:c.subtitle,priority:1,metadata:{category:c.category,keywords:c.keywords},execute:p=>{c.execute(p)}}))},getItemCount:l=>{const o=l.getState(),u={...o,screenshotHistory:o.plugins?.vision?.screenshotHistory??new Map,autoScanSettings:o.autoScanSettings??{vision:{onRouteChange:!1}}};return ew.filter(c=>!c.isAvailable||c.isAvailable(u)).length},searchKeys:["title","subtitle"]},{id:"vision:captures",label:"Captures",priority:2,parentId:"vision",getItems:l=>{const u=l.getState().plugins?.vision?.screenshotHistory;if(!u||u.size===0)return[];const c=Array.from(u.values());return c.sort((p,m)=>m.timestamp-p.timestamp),c.map(p=>{const m=p.issues?.length??0,y=m>0,S=y?`${p.route} • ${m} issue${m>1?"s":""}`:p.route;return{id:`vision:capture:${p.id}`,title:q8(p),subtitle:S,priority:y?0:1,metadata:{captureId:p.id,route:p.route,timestamp:p.timestamp,type:p.type,issueCount:m},execute:x=>{x.getState().plugins?.vision?.setSelectedScreenshotId(p.id),x.openInspector("capture",{capture:p}),x.closeCommandPalette()}}})},getItemCount:l=>l.getState().plugins?.vision?.screenshotHistory?.size??0,searchKeys:["title","subtitle"]}]}function q8(l){const u=new Date(l.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});return`${l.type==="region"?"Region":"Full Page"} • ${u}`}const G8={id:"vision",name:"Vision Analysis",version:"1.0.0",description:"AI-powered visual consistency analysis",meta:{id:"vision",name:"Vision Analysis",version:"1.0.0",description:"AI-powered visual consistency analysis",icon:"eye"},createSlice:l=>{let o;return o=L8(p=>{o={...o,...p},l.setState(p)},()=>o),o},commands:ew,categoryProviders:Y8(),toolbarActionGroups:[B8],inspectorPanels:[],ruleContributions:[{ruleId:"semantic-vision"}],handlesRules:l=>l.id==="semantic-vision"||l.id.includes("vision")||l.category==="vision",getIssues:l=>{const o=l,u=new Map;for(const[c,p]of o.visionIssuesCache)for(const m of p)if(m.dataLoc){const y=u.get(m.dataLoc)||[];y.push({id:`vision:${c}:${m.elementText}:${m.category}`,message:m.message,severity:m.severity,dataLoc:m.dataLoc,ruleId:"semantic-vision",metadata:{elementText:m.elementText,category:m.category,route:c}}),u.set(m.dataLoc,y)}return{pluginId:"vision",issues:u}},initialize:l=>{const{websocket:o}=l,u=V8(l);l.setState({triggerVisionAnalysis:u});const c=o.on("vision:result",S=>{const x=S,T=l.getState();T.updateVisionIssuesCache(x.route,x.issues),T.setVisionResult({route:x.route,timestamp:Date.now(),manifest:[],issues:x.issues,analysisTime:x.analysisTime,error:x.error}),T.selectedScreenshotId&&T.updateScreenshotInHistory(T.selectedScreenshotId,{issues:x.issues}),T.setVisionAnalyzing(!1),T.setVisionProgressPhase(null),x.error&&T.setVisionLastError({stage:"vision",message:x.error,route:x.route,timestamp:Date.now()})}),p=o.on("vision:progress",S=>{const x=S;l.getState().setVisionProgressPhase(x.phase)}),m=o.on("vision:status",S=>{const x=S;l.getState().setVisionAvailable(x.available)}),y=o.onConnectionChange(S=>{const x=l.getState();S?o.send({type:"vision:check"}):x.setVisionAvailable(!1)});return()=>{c(),p(),m(),y()}}};function X8(l){const o=new Map;for(const u of l){const c=u.filePath||"unknown",p=o.get(c)||[];p.push(u),o.set(c,p)}for(const[u,c]of o)o.set(u,c.sort((p,m)=>p.line-m.line));return o}function Q8(l,o,u){const c=Array.from(l.values()).reduce((y,S)=>y+S.length,0),p=l.size;if(c===0)return"No lint issues found on the current page.";const m=[];if(m.push("# Fix Lint Issues"),m.push(""),m.push(`There are **${c} lint issue${c===1?"":"s"}** across **${p} file${p===1?"":"s"}** that need to be fixed.`),m.push(""),m.push("## Instructions"),m.push(""),m.push("1. Fix ALL of the lint issues in the files listed below"),m.push("2. Do NOT ignore or suppress any issues with eslint-disable comments"),m.push("3. Do NOT skip any issues - each one must be properly addressed"),m.push("4. Run the linter after fixing to verify all issues are resolved"),m.push("5. If an issue cannot be fixed without breaking functionality, explain why and propose an alternative solution"),m.push(""),u){m.push("## Affected Files"),m.push(""),m.push("The following files have lint issues. When you edit each file, you will receive the specific lint errors automatically."),m.push("");for(const[y,S]of l){const x=o&&y.startsWith(o)?y.slice(o.length+1):y;m.push(`- \`${x}\` (${S.length} issue${S.length===1?"":"s"})`)}m.push(""),m.push("---"),m.push(""),m.push("Open each file above and fix all reported lint issues. The linter will provide specific error details when you edit each file.")}else{m.push("## Affected Files"),m.push("");for(const[y,S]of l){const x=o&&y.startsWith(o)?y.slice(o.length+1):y;m.push(`### ${x}`),m.push("");for(const T of S){const E=T.column?`Line ${T.line}, Column ${T.column}`:`Line ${T.line}`,A=T.severity==="error"?"ERROR":"WARNING",R=T.ruleId?` (${T.ruleId})`:"";m.push(`- **[${A}]** ${E}${R}`),m.push(` ${T.message}`)}m.push("")}m.push("---"),m.push(""),m.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 m.join(`
256
+ `}),p.map(m=>{const y=m.id==="all"?o===null:o===m.id;return _.jsxs(ze.button,{onClick:()=>u(m.id==="all"?null:m.id),whileTap:{scale:.95},style:{flexShrink:0,padding:"8px 14px",borderRadius:8,border:"none",background:y?"var(--uilint-accent)":"var(--uilint-surface-elevated)",color:y?"var(--uilint-accent-foreground)":"var(--uilint-text-secondary)",fontSize:13,fontWeight:500,cursor:"pointer",minHeight:44,display:"flex",alignItems:"center",gap:6,transition:"background 0.15s ease, color 0.15s ease"},children:[m.label,m.count!==void 0&&m.count>0&&_.jsx("span",{style:{opacity:.7,fontSize:11,background:y?"rgba(255,255,255,0.2)":"var(--uilint-surface)",padding:"2px 6px",borderRadius:4},children:m.count})]},m.id)})]})}function g6({issue:l,isSelected:o,onClick:u}){const c=kt(x=>x.mobile.isMobile),p=l.severity==="error"?gv:l.severity==="warning"?yv:TS,m=l.severity==="error"?"var(--uilint-error)":l.severity==="warning"?"var(--uilint-warning)":"var(--uilint-info)",y=l.severity==="error"?"error":l.severity==="warning"?"warning":"info",S=l.filePath.split("/").pop()||l.filePath;return _.jsxs("div",{onClick:u,style:{display:"flex",alignItems:"flex-start",padding:c?"12px 16px":"10px 16px",cursor:"pointer",gap:10,borderBottom:"1px solid var(--uilint-border)",background:o?"var(--uilint-surface-elevated)":"transparent",transition:"background 0.1s ease"},children:[_.jsx(p,{size:16,color:m,style:{flexShrink:0,marginTop:2}}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontSize:c?15:14,lineHeight:1.4,color:"var(--uilint-text-primary)",wordBreak:"break-word"},children:l.message}),_.jsxs("div",{style:{fontSize:12,color:"var(--uilint-text-muted)",marginTop:4,display:"flex",alignItems:"center",flexWrap:"wrap",gap:8},children:[_.jsxs("span",{style:{display:"flex",alignItems:"center",gap:4},children:[S,":",l.line]}),_.jsx(Bv,{variant:y,size:"sm",disableAnimation:!0,children:l.ruleId})]})]})]})}function y6({value:l,onChange:o,onClick:u}){const c=[{value:"error",label:"E",activeColor:"#ef4444"},{value:"warning",label:"W",activeColor:"#f59e0b"},{value:"off",label:"Off",activeColor:"#6b7280"}];return _.jsx("div",{style:{display:"flex",gap:2},onClick:u,children:c.map(p=>_.jsx("button",{onClick:m=>{m.stopPropagation(),o(p.value)},style:{padding:"2px 6px",fontSize:10,fontWeight:500,border:"none",borderRadius:4,cursor:"pointer",background:l===p.value?p.activeColor:"transparent",color:l===p.value?"white":"var(--uilint-text-disabled)"},children:p.label},p.value))})}function v6({rule:l,issueCount:o,isSelected:u,onSeverityChange:c,onClick:p}){const m=kt(T=>T.mobile.isMobile),y=q.useCallback(T=>{c(l.id,T)},[l.id,c]),S=q.useCallback(T=>{T.stopPropagation()},[]),x=l.severity==="error"?"#ef4444":l.severity==="warning"?"#f59e0b":"var(--uilint-text-disabled)";return _.jsxs("div",{onClick:p,style:{padding:m?"12px 16px":"10px 16px",cursor:"pointer",borderBottom:"1px solid var(--uilint-border)",display:"flex",alignItems:"center",gap:10,background:u?"var(--uilint-surface-elevated)":"transparent"},children:[_.jsx("div",{style:{width:8,height:8,borderRadius:"50%",background:x,flexShrink:0}}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontSize:m?15:13,fontWeight:500,marginBottom:2,lineHeight:1.3,color:l.severity==="off"?"var(--uilint-text-disabled)":"var(--uilint-text-primary)"},children:l.name}),_.jsx("div",{style:{fontSize:11,color:"var(--uilint-text-muted)"},children:l.id})]}),o>0&&_.jsx("span",{style:{fontSize:10,fontWeight:600,background:"rgba(239, 68, 68, 0.1)",color:"#dc2626",padding:"2px 6px",borderRadius:10,minWidth:20,textAlign:"center",flexShrink:0},children:o}),_.jsx(y6,{value:l.severity,onChange:y,onClick:S})]})}function b6({fileName:l,directory:o,count:u}){return _.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 bg-surface-elevated border-b border-border",children:[_.jsx(Gz,{size:14,className:"text-muted-foreground shrink-0"}),_.jsx("span",{className:"text-xs font-medium text-foreground",children:l}),o&&_.jsx("span",{className:"text-xs text-muted-foreground overflow-hidden text-ellipsis whitespace-nowrap flex-1",children:o}),_.jsx("span",{className:"text-xs font-medium text-muted-foreground bg-hover px-1.5 py-0.5 rounded-full",children:u})]})}const JC=q.createContext(null);function S6(l){const o=q.useRef(new Map);return q.useLayoutEffect(()=>{o.current.get(l)?.scrollIntoView?.({block:"nearest"})},[l]),{register:q.useCallback((c,p)=>{p?o.current.set(c,p):o.current.delete(c)},[])}}function Ix(l){const o=q.useContext(JC);return q.useCallback(c=>{o?.register(l,c)},[o,l])}function x6({issues:l,isSelected:o,resultIndex:u,onClick:c}){const p=kt(T=>T.mobile.isMobile),m=Ix(u??-1),y=Ln.useMemo(()=>l.reduce((T,E)=>(E.severity==="error"?T.errors++:E.severity==="warning"?T.warnings++:T.info++,T),{errors:0,warnings:0,info:0}),[l]),S=Ln.useMemo(()=>new Set(l.map(T=>T.filePath)).size,[l]);if(l.length===0)return null;const x=_.jsxs("div",{ref:u!=null?m:void 0,onClick:c,style:{margin:p?"8px 16px":"8px 12px",padding:p?"16px":"14px 16px",borderRadius:"var(--uilint-card-radius, 12px)",cursor:"pointer",background:o?"var(--uilint-info-bg)":"var(--uilint-surface-elevated)",border:o?"1px solid var(--uilint-info)":"1px solid var(--uilint-border)",boxShadow:o?"0 0 0 3px var(--uilint-info-bg), var(--uilint-card-shadow)":"var(--uilint-card-shadow)",transition:"all 0.1s ease"},children:[_.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:12},children:_.jsxs("div",{children:[_.jsx("div",{style:{fontSize:p?15:13,fontWeight:600,color:"var(--uilint-text-primary)"},children:"All Issues"}),_.jsx("div",{style:{fontSize:p?13:11,color:"var(--uilint-text-muted)",marginTop:2},children:"Type to search across all issues"})]})}),_.jsxs("div",{style:{display:"flex",flexWrap:"wrap",gap:8},children:[_.jsx(Yv,{label:"Total",value:l.length,variant:"info",size:"sm",disableAnimation:!0}),y.errors>0&&_.jsx(Yv,{label:"Errors",value:y.errors,variant:"error",size:"sm",disableAnimation:!0}),y.warnings>0&&_.jsx(Yv,{label:"Warnings",value:y.warnings,variant:"warning",size:"sm",disableAnimation:!0}),_.jsx(Yv,{label:"Files",value:S,variant:"success",size:"sm",disableAnimation:!0})]})]});return p?x:_.jsx(ze.div,{initial:{opacity:0,y:4},animate:{opacity:1,y:0},transition:{duration:.12,ease:[.32,.72,0,1]},children:x})}function w6({issues:l,onSelectIssue:o,startIndex:u,selectedIndex:c}){const p=Ln.useMemo(()=>l.filter(m=>m.severity==="error"||m.severity==="warning").slice(0,3),[l]);return p.length===0?null:_.jsxs("div",{style:{marginBottom:4},children:[_.jsx("div",{style:{padding:"8px 16px 4px",fontSize:10,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em",color:"var(--uilint-text-disabled)"},children:"Top Issues"}),p.map((m,y)=>_.jsx(T6,{issue:m,isSelected:u+y===c,resultIndex:u+y,onClick:()=>o(m),index:y},m.id))]})}function T6({issue:l,isSelected:o,resultIndex:u,onClick:c,index:p}){const m=kt(A=>A.mobile.isMobile),y=Ix(u),S=l.severity==="error"?gv:yv,x=l.severity==="error"?"var(--uilint-error)":"var(--uilint-warning)",T=l.filePath.split("/").pop()||l.filePath,E=_.jsxs("div",{ref:y,onClick:c,style:{display:"flex",alignItems:"flex-start",gap:10,padding:m?"12px 16px":"8px 16px",cursor:"pointer",background:o?"var(--uilint-info-bg)":"transparent",borderLeft:o?"2px solid var(--uilint-accent)":"2px solid transparent",transition:"all 0.1s ease"},children:[_.jsx(S,{size:14,color:x,style:{flexShrink:0,marginTop:2}}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontSize:m?14:12,lineHeight:1.4,color:"var(--uilint-text-secondary)"},children:l.message}),_.jsxs("div",{style:{fontSize:m?12:10,color:"var(--uilint-text-disabled)",marginTop:2},children:[T,":",l.line]})]})]});return m?E:_.jsx(ze.div,{initial:{opacity:0,x:-6},animate:{opacity:1,x:0},transition:{duration:.1,delay:p*.02,ease:[.32,.72,0,1]},children:E})}const Fx=[.32,.72,0,1];function gh({children:l,index:o,layoutId:u,maxDelay:c=.12,staggerDelay:p=.02}){if(kt(S=>S.mobile.isMobile))return _.jsx("div",{children:l});const y=Math.min(o*p,c);return _.jsx(ze.div,{layoutId:u,initial:{opacity:0,y:6},animate:{opacity:1,y:0},exit:{opacity:0,y:-4},transition:{duration:.12,ease:Fx,delay:y},children:l})}function E6({children:l,delay:o=0}){return kt(c=>c.mobile.isMobile)?_.jsx("div",{children:l}):_.jsx(ze.div,{initial:{opacity:0,x:-8},animate:{opacity:1,x:0},transition:{duration:.12,delay:o,ease:Fx},children:l})}function dg({isSelected:l,children:o,variant:u="default",resultIndex:c}){const p=kt(x=>x.mobile.isMobile),m=Ix(c??-1),S={default:{selected:"linear-gradient(90deg, rgba(59, 130, 246, 0.08) 0%, rgba(59, 130, 246, 0.04) 100%)",unselected:"transparent"},command:{selected:"linear-gradient(90deg, rgba(59, 130, 246, 0.1) 0%, rgba(147, 51, 234, 0.06) 100%)",unselected:"transparent"},issue:{selected:"linear-gradient(90deg, rgba(239, 68, 68, 0.06) 0%, transparent 100%)",unselected:"transparent"}}[u];return p?_.jsx("div",{ref:c!=null?m:void 0,style:{borderLeft:l?"2px solid #3b82f6":"2px solid transparent",background:l?S.selected:S.unselected,position:"relative"},children:o}):_.jsxs(ze.div,{ref:c!=null?m:void 0,animate:{background:l?S.selected:S.unselected,borderLeftColor:l?"#3b82f6":"transparent"},transition:{duration:.1,ease:Fx},style:{borderLeft:"2px solid transparent",position:"relative"},children:[o,l&&_.jsx(ze.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.1},style:{position:"absolute",inset:0,background:"radial-gradient(ellipse at left center, rgba(59, 130, 246, 0.08) 0%, transparent 70%)",pointerEvents:"none"}})]})}const A6=kl("shrink-0 py-2 border-r overflow-y-auto overflow-x-hidden",{variants:{size:{default:"w-28",compact:"w-24"}},defaultVariants:{size:"default"}}),PC=kl("flex items-center justify-between mx-1.5 px-2.5 py-1.5 rounded-md text-xs font-medium transition-colors cursor-pointer select-none",{variants:{state:{default:"text-muted-foreground hover:text-foreground hover:bg-muted/50",selected:"bg-muted text-foreground",loading:"text-muted-foreground/50"}},defaultVariants:{state:"default"}}),C6=kl("mx-1.5 px-2.5 py-1 text-[10px] font-semibold uppercase tracking-wider",{variants:{state:{default:"text-muted-foreground/50",expanded:"text-muted-foreground/70"}},defaultVariants:{state:"default"}}),R6={initial:{opacity:0,x:-4},animate:{opacity:1,x:0},exit:{opacity:0,x:-4}},M6={initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.8}},IC=[.32,.72,0,1];function z6({count:l,isLoading:o}){return o?_.jsx(ze.div,{animate:{opacity:[.3,.5,.3]},transition:{duration:1,repeat:1/0},style:{width:16,height:10,borderRadius:4,background:"var(--uilint-text-muted)",opacity:.15}}):l===void 0?null:_.jsx(ze.span,{variants:M6,initial:"initial",animate:"animate",exit:"exit",transition:{duration:.15,ease:IC},className:"text-[10px] tabular-nums text-muted-foreground/60",children:l})}function FC({category:l,isSelected:o,onClick:u,index:c}){const p=l.isLoading?"loading":o?"selected":"default";return _.jsx(ze.div,{variants:R6,initial:"initial",animate:"animate",exit:"exit",transition:{duration:.1,delay:c*.02,ease:IC},children:_.jsxs("div",{className:nn(PC({state:p})),onClick:u,role:"button",tabIndex:0,onKeyDown:m=>{(m.key==="Enter"||m.key===" ")&&(m.preventDefault(),u())},style:{borderLeft:o?"2px solid var(--uilint-accent)":"2px solid transparent",paddingLeft:o?8:10},children:[_.jsx("span",{className:"truncate",children:l.label}),_.jsx(z6,{count:l.count,isLoading:l.isLoading})]})})}function D6({label:l,children:o,selectedId:u,onSelect:c,startIndex:p}){const m=o.reduce((S,x)=>S+(x.count??0),0),y=o.some(S=>S.isLoading);return _.jsxs("div",{className:"mb-1",children:[_.jsxs("div",{className:nn(C6({state:"default"})),children:[_.jsx("span",{className:"truncate",children:l}),!y&&m>0&&_.jsxs("span",{className:"ml-1 opacity-50",children:["(",m,")"]})]}),_.jsx(es,{mode:"popLayout",children:o.map((S,x)=>_.jsx(FC,{category:S,isSelected:u===S.id,onClick:()=>c(S.id),index:p+x},S.id))})]})}function O6({isSelected:l,onClick:o,totalCount:u}){return _.jsx(ze.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.1},children:_.jsxs("div",{className:nn(PC({state:l?"selected":"default"})),onClick:o,role:"button",tabIndex:0,onKeyDown:c=>{(c.key==="Enter"||c.key===" ")&&(c.preventDefault(),o())},style:{borderLeft:l?"2px solid var(--uilint-accent)":"2px solid transparent",paddingLeft:l?8:10,fontWeight:500},children:[_.jsx("span",{children:"All"}),u>0&&_.jsx("span",{className:"text-[10px] tabular-nums text-muted-foreground/60",children:u})]})})}function _6(){return _.jsx("div",{className:"mx-3 my-1.5",style:{height:1,background:"var(--uilint-border)",opacity:.3}})}function k6({categories:l,selectedId:o,onSelect:u,isFocused:c=!1,size:p,className:m}){const y=q.useMemo(()=>{let E=0;for(const A of l)A.children?E+=A.children.reduce((R,j)=>R+(j.count??0),0):E+=A.count??0;return E},[l]),{topLevel:S,groups:x}=q.useMemo(()=>{const E=[],A=[];for(const R of l)R.children&&R.children.length>0?A.push(R):R.parentId||E.push(R);return{topLevel:E,groups:A}},[l]);let T=1;return _.jsxs("div",{className:nn(A6({size:p}),m),style:{borderColor:"var(--uilint-border)",opacity:c?1:.85,transition:"opacity 0.15s ease"},role:"navigation","aria-label":"Category navigation",children:[_.jsx(O6,{isSelected:o===null,onClick:()=>u(null),totalCount:y}),(S.length>0||x.length>0)&&_.jsx(_6,{}),_.jsx(es,{mode:"popLayout",children:S.map(E=>{const A=T++;return _.jsx(FC,{category:E,isSelected:o===E.id,onClick:()=>u(E.id),index:A},E.id)})}),x.map(E=>{const A=T;return T+=E.children?.length??0,_.jsx(D6,{label:E.label,children:E.children??[],selectedId:o,onSelect:u,startIndex:A},E.id)}),l.length===0&&_.jsx("div",{className:"px-3 py-4 text-center",children:_.jsx("div",{className:"text-[10px] text-muted-foreground/50",children:"No categories"})})]})}const j6={duration:.12,ease:[.32,.72,0,1]};function U6({command:l,isSelected:o,onClick:u,index:c}){const p=kt(x=>x.mobile.isMobile),y=l.id.includes("start")?{bg:"#22c55e",icon:_.jsx(Zz,{size:14})}:l.id.includes("stop")?{bg:"#ef4444",icon:_.jsx($z,{size:14})}:l.id.includes("clear")?{bg:"#f59e0b",icon:_.jsx(Kz,{size:14})}:null,S=_.jsxs("div",{onClick:u,style:{padding:p?"14px 16px":"10px 16px",cursor:"pointer",display:"flex",alignItems:"center",gap:10},children:[y&&_.jsx("div",{style:{width:28,height:28,borderRadius:6,background:y.bg,color:"white",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:y.icon}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontWeight:500,fontSize:p?16:13,color:"var(--uilint-text-primary)",marginBottom:l.subtitle?2:0},children:l.title}),l.subtitle&&_.jsx("div",{style:{fontSize:p?13:11,color:"var(--uilint-text-muted)",lineHeight:1.3},children:l.subtitle})]}),!p&&o&&_.jsx(cg,{children:"↵"})]});return p?_.jsx(gh,{index:c,children:_.jsx(dg,{isSelected:o,variant:"command",resultIndex:c,children:S})}):_.jsx(gh,{index:c,children:_.jsx(dg,{isSelected:o,variant:"command",resultIndex:c,children:_.jsx(ze.div,{whileHover:{x:2},whileTap:{scale:.99},children:S})})})}function L6({item:l,isSelected:o,onClick:u,index:c}){const p=kt(y=>y.mobile.isMobile),m=_.jsxs("div",{onClick:u,style:{padding:p?"14px 16px":"10px 16px",cursor:"pointer",display:"flex",alignItems:"center",gap:10},children:[_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontWeight:500,fontSize:p?16:13,color:"var(--uilint-text-primary)",marginBottom:l.subtitle?2:0},children:l.title}),l.subtitle&&_.jsx("div",{style:{fontSize:p?13:11,color:"var(--uilint-text-muted)",lineHeight:1.3},children:l.subtitle})]}),!p&&l.shortcut&&_.jsx(cg,{animate:!1,children:l.shortcut}),!p&&o&&!l.shortcut&&_.jsx(cg,{children:"↵"})]});return p?_.jsx(gh,{index:c,children:_.jsx(dg,{isSelected:o,variant:"issue",resultIndex:c,children:m})}):_.jsx(gh,{index:c,children:_.jsx(dg,{isSelected:o,variant:"issue",resultIndex:c,children:_.jsx(ze.div,{whileHover:{x:2},whileTap:{scale:.99},children:m})})})}function Zv({children:l,count:o}){return _.jsx(E6,{delay:.02,children:_.jsxs("div",{style:{padding:"10px 16px 6px",fontSize:10,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.08em",color:"var(--uilint-text-disabled)",display:"flex",alignItems:"center",gap:8},children:[_.jsx("span",{children:l}),o!==void 0&&o>0&&_.jsx("span",{style:{fontSize:9,fontWeight:500,background:"var(--uilint-surface-elevated)",padding:"2px 6px",borderRadius:10},children:o})]})})}function N6(){const l=kt(z=>z.commandPalette.open),o=kt(z=>z.commandPalette.query),u=kt(z=>z.commandPalette.selectedIndex),c=kt(z=>z.commandPalette.selectedCategoryId),p=kt(z=>z.commandPalette.sidebarFocused),m=kt(z=>z.closeCommandPalette),y=kt(z=>z.setCommandPaletteQuery),S=kt(z=>z.setCommandPaletteSelectedIndex),x=kt(z=>z.setSelectedCategory),T=kt(z=>z.setSidebarFocused),E=kt(z=>z.openInspector),A=kt(z=>z.mobile.isMobile),R=kt(z=>z.mobile.isSmallScreen),j=S6(u),{allIssues:Z}=KC(),{categoryTree:P}=r6(),K=s6(c),at=kt(z=>z),yt=q.useMemo(()=>ai.getAllCommands().filter(B=>B.isAvailable?B.isAvailable(at):!0),[at]),ft=q.useMemo(()=>{if(o.trim()){const z=o.toLowerCase();return yt.filter(B=>B.title.toLowerCase().includes(z)||B.keywords.some(rt=>rt.toLowerCase().includes(z))||B.category.toLowerCase().includes(z)||B.subtitle&&B.subtitle.toLowerCase().includes(z))}return yt.filter(z=>!z.hideFromAllCategory)},[yt,o]),xt=o.trim().length>0,vt=q.useMemo(()=>{if(!xt)return[];const z=o.toLowerCase();return Z.filter(B=>B.message.toLowerCase().includes(z)||B.ruleId.toLowerCase().includes(z)||B.filePath.toLowerCase().includes(z)).slice(0,30)},[Z,o,xt]),Lt=kt(z=>z.plugins),St=q.useMemo(()=>ai.getAllRules(),[Lt]),lt=q.useMemo(()=>{if(!xt)return[];const z=o.toLowerCase();return St.filter(B=>B.name.toLowerCase().includes(z)||B.id.toLowerCase().includes(z)||B.description.toLowerCase().includes(z)||B.category.toLowerCase().includes(z))},[St,o,xt]),Ut=q.useMemo(()=>{const z=new Map;for(const B of Z){const rt=z.get(B.ruleId)||0;z.set(B.ruleId,rt+1)}return z},[Z]),wt=q.useMemo(()=>{const z=[],B=new Map;for(const rt of vt){const st=B.get(rt.filePath)||[];B.set(rt.filePath,[...st,rt])}for(const[rt,st]of B){const Ot=rt.split("/"),te=Ot.pop()||rt,Dt=Ot.join("/");z.push({filePath:rt,fileName:te,directory:Dt,issues:st})}return z},[vt]),It=q.useMemo(()=>{if(c&&!xt)return K.map(st=>({kind:"category-item",item:st}));const z=ft.map(st=>({kind:"command",command:st}));if(!xt&&Z.length>0){const st=Z.filter(Ot=>Ot.severity==="error"||Ot.severity==="warning").slice(0,3);return[...z,{kind:"summary"},...st.map(Ot=>({kind:"issue",issue:Ot}))]}const B=vt.map(st=>({kind:"issue",issue:st})),rt=lt.map(st=>({kind:"rule",rule:st}));return[...z,...B,...rt]},[ft,vt,lt,Z,xt,c,K]),Tt=q.useCallback(z=>{E("issue",{issue:z}),m()},[E,m]),Qt=q.useCallback(async z=>{const B=of();if(!B){console.error("[CommandPalette] Plugin services not available");return}try{await z.execute(B)}catch(rt){console.error(`[CommandPalette] Error executing command "${z.id}":`,rt)}},[]),tt=q.useCallback(async z=>{if(!z.execute)return;const B=of();if(!B){console.error("[CommandPalette] Plugin services not available");return}try{await z.execute(B),m()}catch(rt){console.error(`[CommandPalette] Error executing category item "${z.id}":`,rt)}},[m]),Mt=q.useCallback((z,B)=>{ai.setRuleSeverity(z,B)},[]),U=q.useCallback(z=>{const B=`${z.pluginId}-rule`;E(B,{ruleId:z.id}),m()},[E,m]),I=q.useCallback(z=>{z.kind==="command"?Qt(z.command):z.kind==="issue"?Tt(z.issue):z.kind==="rule"?U(z.rule):z.kind==="category-item"?tt(z.item):z.kind==="summary"&&y("")},[Qt,Tt,U,tt]),F=q.useCallback(z=>{if(z.key==="Tab"){z.preventDefault(),T(!p);return}if(z.key==="ArrowLeft"&&!p){z.preventDefault(),T(!0);return}if(z.key==="ArrowRight"&&p){z.preventDefault(),T(!1);return}z.key==="ArrowDown"?(z.preventDefault(),S(Math.min(u+1,It.length-1))):z.key==="ArrowUp"?(z.preventDefault(),S(Math.max(u-1,0))):z.key==="Enter"&&It[u]&&(z.preventDefault(),I(It[u]))},[It,u,I,p,T]),Ct=document.getElementById("uilint-portal")||document.body,jt=ft.length;return Qm.createPortal(_.jsx(es,{children:l&&_.jsx(ze.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.12},style:{position:"fixed",inset:0,background:A?"var(--uilint-surface)":"rgba(0, 0, 0, 0.35)",backdropFilter:A?"none":"blur(8px)",WebkitBackdropFilter:A?"none":"blur(8px)",display:"flex",alignItems:A?"stretch":"flex-start",justifyContent:"center",paddingTop:A?0:80,zIndex:99998,pointerEvents:"auto"},onClick:z=>{z.target===z.currentTarget&&m()},onKeyDown:F,children:_.jsx(ze.div,{initial:A?{opacity:0}:{opacity:0,scale:.96,y:-20},animate:A?{opacity:1}:{opacity:1,scale:1,y:0},exit:A?{opacity:0}:{opacity:0,scale:.98,y:-10},transition:A?{duration:.15}:j6,style:A?{display:"flex",flexDirection:"column",width:"100%",height:"100%"}:void 0,children:_.jsxs(qC,{blur:A?"light":"heavy",shadow:A?void 0:"lg",animate:!1,style:{width:"100%",maxWidth:A?"100%":680,height:A?"100%":"auto",borderRadius:A?0:16,overflow:"hidden",display:A?"flex":"block",flexDirection:A?"column":void 0,paddingTop:A?"env(safe-area-inset-top, 0px)":void 0,paddingBottom:A?"env(safe-area-inset-bottom, 0px)":void 0},children:[A&&_.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 16px 8px",borderBottom:"1px solid var(--uilint-border)"},children:[_.jsx("span",{style:{fontSize:15,fontWeight:600,color:"var(--uilint-text-primary)"},children:"Search"}),_.jsx("button",{onClick:m,style:{padding:"8px 16px",fontSize:14,fontWeight:500,color:"var(--uilint-accent)",background:"transparent",border:"none",cursor:"pointer",borderRadius:8},children:"Done"})]}),_.jsx(p6,{value:o,onChange:y,size:A?"default":"large"}),_.jsxs("div",{style:{display:"flex",flexDirection:R?"column":"row",maxHeight:A?"none":420,flex:A?1:void 0,minHeight:0,overflow:"hidden"},children:[!R&&_.jsx(k6,{categories:P,selectedId:c,onSelect:x,isFocused:p}),R&&_.jsx(m6,{categories:P,selectedId:c,onSelect:x}),_.jsx("div",{style:{flex:1,overflowY:"auto",overflowX:"hidden",minHeight:0,WebkitOverflowScrolling:"touch"},children:_.jsx(es,{mode:A?"sync":"wait",children:It.length===0&&lt.length===0?_.jsxs(ze.div,{initial:A?!1:{opacity:0,y:6},animate:{opacity:1,y:0},exit:A?{opacity:0}:{opacity:0,y:-4},transition:{duration:A?.05:.1},style:{padding:"32px 24px",textAlign:"center",color:"var(--uilint-text-disabled)"},children:[_.jsx("div",{style:{fontSize:32,marginBottom:8},children:"🔍"}),_.jsx("div",{style:{fontSize:13,fontWeight:500},children:o?"No results found":"Start typing to search"}),_.jsx("div",{style:{fontSize:12,marginTop:4,color:"var(--uilint-text-muted)"},children:o?"Try different keywords":"Search issues, rules, and commands"})]},"empty"):_.jsx(JC.Provider,{value:j,children:_.jsxs(ze.div,{initial:A?!1:{opacity:0},animate:{opacity:1},exit:A?void 0:{opacity:0},transition:{duration:A?0:.1},children:[c&&!xt&&K.length>0&&_.jsx(_.Fragment,{children:K.map((z,B)=>_.jsx(L6,{item:z,isSelected:B===u,onClick:()=>tt(z),index:B},z.id))}),(!c||xt)&&ft.length>0&&_.jsxs(_.Fragment,{children:[_.jsx(Zv,{count:ft.length,children:"Commands"}),ft.map((z,B)=>_.jsx(U6,{command:z,isSelected:B===u,onClick:()=>Qt(z),index:B},z.id))]}),!xt&&!c&&Z.length>0&&_.jsxs(_.Fragment,{children:[_.jsx(Zv,{children:"Overview"}),_.jsx(x6,{issues:Z,isSelected:jt===u,resultIndex:jt,onClick:()=>{}}),_.jsx(w6,{issues:Z,onSelectIssue:Tt,startIndex:jt+1,selectedIndex:u})]}),xt&&wt.length>0&&_.jsxs(_.Fragment,{children:[_.jsx(Zv,{count:vt.length,children:"Issues"}),wt.map((z,B)=>{let rt=ft.length;for(let st=0;st<B;st++)rt+=wt[st].issues.length;return _.jsxs(gh,{index:ft.length+B,children:[_.jsx(b6,{fileName:z.fileName,directory:z.directory,count:z.issues.length}),z.issues.map((st,Ot)=>_.jsx(dg,{isSelected:rt+Ot===u,variant:"issue",resultIndex:rt+Ot,children:_.jsx(g6,{issue:st,isSelected:rt+Ot===u,onClick:()=>Tt(st)})},st.id))]},z.filePath)})]}),xt&&lt.length>0&&_.jsxs(_.Fragment,{children:[_.jsx(Zv,{count:lt.length,children:"Rules"}),lt.map((z,B)=>_.jsx(gh,{index:ft.length+vt.length+B,children:_.jsx(v6,{rule:z,issueCount:Ut.get(z.id)??0,isSelected:ft.length+vt.length+B===u,onSeverityChange:Mt,onClick:()=>U(z)})},z.id))]})]},"results")})})})]})]})})})}),Ct)}function V6(l){const o=l.match(/^[\t ]+/);return o?o[0]:""}function H6(l){if(!l.length)return{lines:l,removed:0};const o=l.filter(c=>c.trim().length>0);if(!o.length)return{lines:l,removed:0};let u=1/0;for(const c of o)if(u=Math.min(u,V6(c).length),u===0)break;return!Number.isFinite(u)||u<=0?{lines:l,removed:0}:{removed:u,lines:l.map(c=>c.length>=u?c.slice(u):"")}}function B6({filePath:l,line:o,column:u,contextLines:c=5,defaultExpanded:p=!0}){const[m,y]=q.useState(p),{context:S,isLoading:x,error:T}=o6({filePath:l,line:o,contextAbove:c,contextBelow:c,enabled:m}),E=S?H6(S.lines):null,A=S?S.startLine+S.lines.length-1:0,R=Math.max(3,String(A).length)*8+16;return _.jsxs("div",{style:{background:"var(--uilint-background)",borderRadius:8,overflow:"hidden",border:"1px solid var(--uilint-border)"},children:[_.jsxs("button",{onClick:()=>y(!m),style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"8px 12px",background:"var(--uilint-surface-elevated)",border:"none",borderBottom:m?"1px solid var(--uilint-border)":"none",cursor:"pointer",color:"var(--uilint-text-primary)",fontSize:12,fontFamily:"inherit"},children:[m?_.jsx(Yz,{size:14}):_.jsx(qz,{size:14}),_.jsx("span",{style:{fontWeight:500},children:"Source"}),_.jsxs("span",{style:{color:"var(--uilint-text-muted)",marginLeft:"auto",fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, monospace"},children:["L",o,u?`:${u}`:""]})]}),m&&_.jsxs("div",{style:{padding:0},children:[x&&_.jsx("div",{style:{padding:24,color:"var(--uilint-text-muted)",textAlign:"center",fontSize:12},children:"Loading..."}),T&&_.jsx("div",{style:{padding:24,color:"var(--uilint-error, #ef4444)",textAlign:"center",fontSize:12},children:T}),E&&S&&_.jsx("div",{style:{overflowX:"auto",fontSize:12,fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, monospace",lineHeight:1.6},children:E.lines.map((j,Z)=>{const P=S.startLine+Z,K=P===o;return _.jsxs("div",{style:{display:"flex",background:K?"rgba(251, 191, 36, 0.12)":"transparent",borderLeft:K?"3px solid #f59e0b":"3px solid transparent"},children:[_.jsx("span",{style:{width:R,minWidth:R,padding:"0 8px",textAlign:"right",color:K?"var(--uilint-text-primary)":"var(--uilint-text-disabled)",background:"var(--uilint-surface-elevated)",userSelect:"none",flexShrink:0,borderRight:"1px solid var(--uilint-border)"},children:P}),_.jsx("code",{style:{padding:"0 12px",color:K?"var(--uilint-text-primary)":"var(--uilint-text-secondary)",whiteSpace:"pre",flex:1},children:j||" "})]},P)})})]})]})}function Y6(l){const o=l.split("/");return o[o.length-1]||l}function q6({issue:l}){const o=l.severity==="error"?gv:l.severity==="warning"?yv:TS;return _.jsxs("div",{style:{padding:16,display:"flex",flexDirection:"column",gap:16},children:[_.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:10},children:[_.jsxs(Bv,{variant:l.severity==="error"?"error":l.severity==="warning"?"warning":"info",size:"sm",disableAnimation:!0,style:{flexShrink:0,marginTop:2},children:[_.jsx(o,{size:12,color:"currentColor",style:{marginRight:4}}),l.severity]}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontSize:14,fontWeight:500,color:"var(--uilint-text-primary)",lineHeight:1.4},children:l.message}),_.jsx(Bv,{variant:"outline",size:"sm",disableAnimation:!0,style:{marginTop:6,fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, monospace"},children:l.ruleId})]})]}),_.jsx(B6,{filePath:l.filePath,line:l.line,column:l.column,contextLines:5}),_.jsxs("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 12px",fontSize:11,color:"var(--uilint-text-muted)",fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, monospace"},children:[_.jsxs("span",{title:l.filePath,children:[Y6(l.filePath),":",l.line,l.column?`:${l.column}`:""]}),_.jsx("span",{style:{opacity:.5},children:"|"}),_.jsx("span",{children:l.pluginId})]})]})}function G6({dataLoc:l,onSelectIssue:o}){const{getIssuesForDataLoc:u}=KC(),c=u(l);return c.length===0?_.jsx("div",{style:{padding:16,textAlign:"center",color:"var(--uilint-text-muted)"},children:"No issues for this element"}):_.jsxs("div",{style:{padding:16},children:[_.jsxs("div",{style:{fontSize:14,fontWeight:600,color:"var(--uilint-text-primary)",marginBottom:12},children:[c.length," issue",c.length!==1?"s":""," at this location"]}),_.jsx(BC,{variant:"elevated",style:{overflow:"hidden"},children:c.map((p,m)=>{const y=p.severity==="error"?gv:p.severity==="warning"?yv:TS;return _.jsxs("div",{onClick:()=>o(p),style:{display:"flex",alignItems:"flex-start",gap:10,padding:12,cursor:"pointer",borderBottom:m<c.length-1?"1px solid var(--uilint-border)":void 0},children:[_.jsx(Bv,{variant:p.severity==="error"?"error":p.severity==="warning"?"warning":"info",size:"sm",disableAnimation:!0,style:{flexShrink:0},children:_.jsx(y,{size:12,color:"currentColor"})}),_.jsxs("div",{style:{flex:1},children:[_.jsx("div",{style:{fontSize:13,color:"var(--uilint-text-primary)"},children:p.message}),_.jsx("div",{style:{fontSize:11,color:"var(--uilint-text-muted)",marginTop:2},children:p.ruleId})]})]},p.id)})}),_.jsx("div",{style:{marginTop:12,fontSize:11,color:"var(--uilint-text-disabled)",wordBreak:"break-all"},children:l})]})}function WC({direction:l,onResize:o,onResizeEnd:u}){const c=q.useRef(!1),p=q.useRef({x:0,y:0}),m=q.useCallback(x=>{x.preventDefault(),x.stopPropagation(),c.current=!0,p.current={x:x.clientX,y:x.clientY}},[]);q.useEffect(()=>{const x=E=>{if(!c.current)return;const A=E.clientX-p.current.x,R=E.clientY-p.current.y;p.current={x:E.clientX,y:E.clientY},o(A,R)},T=()=>{c.current&&(c.current=!1,u?.())};return document.addEventListener("mousemove",x),document.addEventListener("mouseup",T),()=>{document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",T)}},[o,u]);const y={position:"absolute",zIndex:10},S={horizontal:{...y,top:0,left:0,width:4,height:"100%",cursor:"col-resize"},vertical:{...y,bottom:0,left:0,width:"100%",height:4,cursor:"row-resize"},corner:{...y,bottom:0,right:0,width:12,height:12,cursor:"nwse-resize"}};return _.jsx("div",{onMouseDown:m,style:{...S[l],background:"transparent"},onMouseEnter:x=>{x.target.style.background="rgba(59, 130, 246, 0.2)"},onMouseLeave:x=>{c.current||(x.target.style.background="transparent")}})}const tR=320,eR=800,Kv=450,nR=500;function X6(){const l=kt(tt=>tt.inspector.open),o=kt(tt=>tt.inspector.panelId),u=kt(tt=>tt.inspector.data),c=kt(tt=>tt.inspector.docked),p=kt(tt=>tt.inspector.width),m=kt(tt=>tt.inspector.floatingPosition),y=kt(tt=>tt.inspector.floatingSize),S=kt(tt=>tt.closeInspector),x=kt(tt=>tt.openInspector),T=kt(tt=>tt.toggleInspectorDocked),E=kt(tt=>tt.setInspectorWidth),A=kt(tt=>tt.setInspectorFloatingPosition),R=kt(tt=>tt.setInspectorFloatingSize),[j,Z]=q.useState(!1),P=kt(tt=>tt.mobile.isMobile),K=kt(tt=>tt.activeDrag),at=kt(tt=>tt.startDrag),yt=K?.type==="inspector-floating",ft=q.useMemo(()=>ai.getAllInspectorPanels(),[]),xt=q.useCallback(tt=>{x("issue",{issue:tt})},[x]),{content:vt,title:Lt}=q.useMemo(()=>{let tt=null,Mt="Inspector";const U=ft.find(I=>I.id===o);if(U){const I=of(),F=U.component,Ct=u??void 0;Mt=typeof U.title=="function"?U.title({data:Ct,services:I}):U.title,tt=I?_.jsx(F,{data:Ct,services:I}):_.jsx("div",{style:{padding:16,color:"var(--uilint-text-muted)",textAlign:"center"},children:"Loading..."})}else if(o==="issue"&&u?.issue){const I=u.issue,F=I.ruleId?ai.getRuleContribution(I.ruleId)||ai.getRuleContribution(I.ruleId.replace("uilint/","")):void 0;if(F?.inspectorPanel){const Ct=of(),jt=F.inspectorPanel;Mt="Issue Details",tt=Ct?_.jsx(jt,{data:u,services:Ct}):_.jsx("div",{style:{padding:16,color:"var(--uilint-text-muted)",textAlign:"center"},children:"Loading..."})}else Mt="Issue Details",tt=_.jsx(q6,{issue:I})}else o==="element"&&u?.dataLoc?(Mt="Element Issues",tt=_.jsx(G6,{dataLoc:u.dataLoc,onSelectIssue:xt})):tt=_.jsx("div",{style:{padding:16,color:"var(--uilint-text-muted)",textAlign:"center"},children:"Select an issue or element to inspect"});return{content:tt,title:Mt}},[o,u,ft,xt]);q.useEffect(()=>{Z(!0)},[]),q.useLayoutEffect(()=>{if(!j)return;const tt=document.documentElement;return l&&c?(tt.style.marginRight=`${p}px`,tt.style.transition="margin-right 0.2s ease-out"):(tt.style.marginRight="",tt.style.transition="margin-right 0.2s ease-out"),()=>{tt.style.marginRight="",tt.style.transition=""}},[j,l,c,p]),q.useLayoutEffect(()=>{if(!yt||!K||!K.elementStartPos)return;const{currentPos:tt,startPos:Mt,elementStartPos:U}=K,I=tt.x-Mt.x,F=tt.y-Mt.y;A({x:U.x+I,y:U.y+F})},[yt,K,A]);const St=q.useCallback(tt=>{const Mt=Math.min(eR,Math.max(tR,p-tt));E(Mt)},[p,E]),lt=q.useCallback((tt,Mt)=>{const U=y??{width:Kv,height:nR},I=Math.min(eR,Math.max(tR,U.width+tt)),F=Math.max(300,U.height+Mt);R({width:I,height:F})},[y,R]),Ut=q.useCallback(tt=>{if(!m||P)return;tt.preventDefault();const Mt={x:tt.clientX,y:tt.clientY};at("inspector-floating",Mt,{x:0,y:0},m)},[m,P,at]),wt=q.useCallback(tt=>{if(!m||P)return;const Mt=tt.touches[0],U={x:Mt.clientX,y:Mt.clientY};at("inspector-floating",U,{x:0,y:0},m)},[m,P,at]);q.useEffect(()=>{!c&&!m&&j&&A({x:window.innerWidth-Kv-20,y:80})},[c,m,A,j]);const It=document.getElementById("uilint-portal")||document.body,Tt=({isDraggable:tt=!1})=>_.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:P?"16px 16px":"12px 16px",paddingTop:P?"calc(16px + env(safe-area-inset-top, 0px))":"12px",borderBottom:"1px solid var(--uilint-border)",background:"var(--uilint-surface-elevated)",cursor:tt&&!P?"move":"default",userSelect:"none"},onMouseDown:tt&&!P?Ut:void 0,onTouchStart:tt&&!P?wt:void 0,children:[_.jsx("span",{style:{fontWeight:600,color:"var(--uilint-text-primary)"},children:Lt}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:P?8:4},children:[!P&&_.jsx(Gv,{variant:"ghost",size:"sm",onClick:T,title:c?"Undock to floating window":"Dock to side",children:c?_.jsx(Xz,{size:16}):_.jsx(Qz,{size:16})}),_.jsx(Gv,{variant:"ghost",size:P?"default":"sm",onClick:S,title:"Close",style:P?{minWidth:44,minHeight:44}:void 0,children:_.jsx(cT,{size:P?20:16})})]})]}),Qt=Zx("heavy","none",!1);return Qm.createPortal(_.jsxs(es,{children:[l&&c&&_.jsxs(ze.div,{initial:{x:p,opacity:0},animate:{x:0,opacity:1},exit:{x:p,opacity:0},transition:{duration:.15,ease:[.25,.1,.25,1]},style:{position:"fixed",top:0,right:0,bottom:0,width:p,...Qt,borderLeft:"1px solid var(--uilint-glass-border)",boxShadow:"var(--uilint-shadow)",zIndex:99997,display:"flex",flexDirection:"column",pointerEvents:"auto"},children:[_.jsx(WC,{direction:"horizontal",onResize:tt=>St(tt)}),_.jsx(Tt,{}),_.jsx("div",{style:{flex:1,overflowY:"auto"},children:vt})]},"docked"),l&&!c&&_.jsxs(ze.div,{initial:{opacity:0,scale:P?1:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:P?1:.95},transition:{duration:.15},style:P?{position:"fixed",inset:0,width:"100%",height:"100%",...Qt,border:"none",borderRadius:0,boxShadow:"none",zIndex:99997,display:"flex",flexDirection:"column",overflow:"hidden",pointerEvents:"auto"}:{position:"fixed",left:m?.x??window.innerWidth-Kv-20,top:m?.y??80,width:y?.width??Kv,height:y?.height??nR,...Qt,border:"1px solid var(--uilint-glass-border)",borderRadius:12,boxShadow:"var(--uilint-shadow)",zIndex:99997,display:"flex",flexDirection:"column",overflow:"hidden",pointerEvents:"auto"},children:[_.jsx(Tt,{isDraggable:!0}),_.jsx("div",{style:{flex:1,overflowY:"auto",minHeight:0,paddingBottom:P?"env(safe-area-inset-bottom, 0px)":void 0},children:vt}),!P&&_.jsx(WC,{direction:"corner",onResize:lt})]},"floating")]}),It)}const aR=10,Q6={isSelecting:!1,startPoint:null,currentPoint:null,mounted:!1};function Z6(l,o){switch(o.type){case"MOUNT":return{...l,mounted:!0};case"START_SELECTION":return{...l,isSelecting:!0,startPoint:o.point,currentPoint:o.point};case"UPDATE_SELECTION":return{...l,currentPoint:o.point};case"COMPLETE_SELECTION":return{...l,isSelecting:!1,startPoint:null,currentPoint:null};default:return l}}const zo={overlayBg:"rgba(0, 0, 0, 0.5)",selectionBorder:"var(--uilint-accent, #f59e0b)",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 K6({active:l,onRegionSelected:o,onCancel:u}){const[c,p]=q.useReducer(Z6,Q6),{isSelecting:m,startPoint:y,currentPoint:S,mounted:x}=c;q.useEffect(()=>{p({type:"MOUNT"})},[]);const T=q.useCallback(()=>{if(!y||!S)return null;const K=Math.min(y.x,S.x),at=Math.min(y.y,S.y),yt=Math.abs(S.x-y.x),ft=Math.abs(S.y-y.y);return{x:K,y:at,width:yt,height:ft}},[y,S]),E=q.useCallback(K=>{K.button===0&&p({type:"START_SELECTION",point:{x:K.clientX,y:K.clientY}})},[]),A=q.useCallback(K=>{!m||!y||p({type:"UPDATE_SELECTION",point:{x:K.clientX,y:K.clientY}})},[m,y]),R=q.useCallback(()=>{if(!m||!y)return;const K=T();K&&K.width>aR&&K.height>aR?o(K):u(),p({type:"COMPLETE_SELECTION"})},[m,y,T,o,u]);if(q.useEffect(()=>{if(!l)return;const K=at=>{at.key==="Escape"&&(at.preventDefault(),at.stopPropagation(),u())};return document.addEventListener("keydown",K,!0),()=>{document.removeEventListener("keydown",K,!0)}},[l,u]),q.useLayoutEffect(()=>{if(!l)return;const K=at=>{at.preventDefault()};return document.body.style.overflow="hidden",document.addEventListener("wheel",K,{passive:!1}),document.addEventListener("touchmove",K,{passive:!1}),()=>{document.body.style.overflow="",document.removeEventListener("wheel",K),document.removeEventListener("touchmove",K)}},[l]),!l||!x)return null;const j=T(),Z=typeof document<"u"?document.getElementById("uilint-portal")||document.body:null;if(!Z)return null;const P=_.jsxs("div",{"data-testid":"region-selector-overlay","data-ui-lint":!0,onMouseDown:E,onMouseMove:A,onMouseUp:R,style:{position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:999999,cursor:"crosshair",backgroundColor:zo.overlayBg,fontFamily:zo.fontFamily},children:[_.jsxs("div",{style:{position:"absolute",top:"20px",left:"50%",transform:"translateX(-50%)",padding:"12px 20px",borderRadius:"12px",backgroundColor:zo.textBg,color:zo.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"," ",_.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:zo.fontMono,marginLeft:"4px"},children:"Esc"})," ","to cancel"]}),j&&j.width>0&&j.height>0&&_.jsxs(_.Fragment,{children:[_.jsx("div",{"data-testid":"selection-rectangle",style:{position:"absolute",left:`${j.x}px`,top:`${j.y}px`,width:`${j.width}px`,height:`${j.height}px`,border:`2px solid ${zo.selectionBorder}`,backgroundColor:zo.selectionBg,pointerEvents:"none",boxShadow:`0 0 0 9999px ${zo.overlayBg}`}}),_.jsxs("div",{"data-testid":"dimensions-label",style:{position:"absolute",left:`${j.x}px`,top:`${j.y-32}px`,padding:"6px 10px",borderRadius:"6px",backgroundColor:zo.textBg,color:zo.textColor,fontSize:"12px",fontFamily:zo.fontMono,fontWeight:500,boxShadow:"0 2px 8px rgba(0, 0, 0, 0.3)",pointerEvents:"none",userSelect:"none",whiteSpace:"nowrap"},children:[Math.round(j.width)," x ",Math.round(j.height)]})]})]});return Qm.createPortal(P,Z)}let Wx=!1;function $6(){if(typeof document>"u")return;let l=document.getElementById("uilint-portal");return l||(l=document.createElement("div"),l.id="uilint-portal",l.style.cssText="position: fixed; top: 0; left: 0; z-index: 99990; pointer-events: none;",document.body.appendChild(l),Wx=!0),l}function J6(){if(!Wx)return;const l=document.getElementById("uilint-portal");l&&(l.remove(),Wx=!1)}function P6({enabled:l=!0}){const o=kt(x=>x.plugins?.vision),u=o?.regionSelectionActive??!1,c=o?.setSelectedRegion,p=o?.setRegionSelectionActive,m=o?.triggerVisionAnalysis,y=q.useCallback(x=>{c&&p&&m&&(c(x),p(!1),m())},[c,p,m]),S=q.useCallback(()=>{p&&p(!1)},[p]);return q.useEffect(()=>(l&&$6(),()=>{J6()}),[l]),l?_.jsxs(_.Fragment,{children:[_.jsx(Qk,{}),_.jsx(Ik,{}),_.jsx(N6,{}),_.jsx(X6,{}),_.jsx(K6,{active:u,onRegionSelected:y,onCancel:S})]}):null}const $v="data-loc",I6=100;function F6(l,o){return`loc:${l}#${o}`}function W6(l){if(!l)return null;let o=l;if(o.startsWith("loc:")){o=o.slice(4);const u=o.lastIndexOf("#");u!==-1&&(o=o.slice(0,u))}return o||null}function t8(l,o){return o&&l.includes("node_modules")}class e8{observer=null;reconcileTimeout=null;knownElements=new Map;addedHandlers=new Set;removedHandlers=new Set;isRunning=!1;hideNodeModules=!0;options;constructor(o={}){this.options=o}setHideNodeModules(o){this.hideNodeModules=o,this.isRunning&&this.reconcile()}start(){if(typeof window>"u"&&!this.options.root||this.isRunning)return;this.isRunning=!0;const o=this.options.MutationObserverImpl??(typeof window<"u"?window.MutationObserver:void 0),u=this.options.root??(typeof document<"u"?document.body:void 0);o&&u&&(this.observer=new o(this.handleMutations.bind(this)),this.observer.observe(u,{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(o){return this.addedHandlers.add(o),()=>{this.addedHandlers.delete(o)}}onElementsRemoved(o){return this.removedHandlers.add(o),()=>{this.removedHandlers.delete(o)}}getElements(){return this.scanElements()}handleMutations(o){let u=!1;for(const c of o){for(const p of c.addedNodes)if(this.hasDataLocElements(p)){u=!0;break}if(u)break;for(const p of c.removedNodes)if(this.hasDataLocElements(p)){u=!0;break}if(u)break}u&&this.debouncedReconcile()}hasDataLocElements(o){return o instanceof Element?!!(o.hasAttribute($v)||o.querySelector(`[${$v}]`)):!1}debouncedReconcile(){this.reconcileTimeout&&clearTimeout(this.reconcileTimeout),this.reconcileTimeout=setTimeout(()=>{this.reconcile(),this.reconcileTimeout=null},I6)}reconcile(){if(typeof window>"u")return;const o=this.scanElements(),u=new Map(o.map(S=>[S.id,S])),c=new Set(u.keys()),p=new Set(this.knownElements.keys()),m=[];for(const S of o)p.has(S.id)||m.push(S);const y=[];for(const S of p)c.has(S)||y.push(S);this.knownElements.clear();for(const S of o)this.knownElements.set(S.id,S.element);if(m.length>0)for(const S of this.addedHandlers)try{S(m)}catch(x){console.error("[DOMObserverService] Error in added handler:",x)}if(y.length>0)for(const S of this.removedHandlers)try{S(y)}catch(x){console.error("[DOMObserverService] Error in removed handler:",x)}}scanElements(){const o=this.options.querySelectorAll??(typeof document<"u"?document.querySelectorAll.bind(document):void 0);if(!o)return[];const u=[],c=new Map,p=o(`[${$v}]`);for(const m of p){if(this.isInsideUILintUI(m))continue;const y=m.getAttribute($v),S=W6(y??"");if(!S||t8(S,this.hideNodeModules))continue;const x=(c.get(S)??0)+1;c.set(S,x);const T=F6(S,x);u.push({id:T,dataLoc:S,element:m,tagName:m.tagName.toLowerCase(),rect:m.getBoundingClientRect()})}return u}isInsideUILintUI(o){return o.closest("[data-ui-lint]")!==null}}const hg=new e8,tw=[{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:l=>{const u=l.getState().plugins.eslint;if(!u){console.warn("[ESLint Command] ESLint plugin slice not found");return}u.scanStatus==="scanning"?u.stopScanning():u.startScanning(),l.closeCommandPalette()},isAvailable:l=>l.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:l=>{const u=l.getState().plugins.eslint;if(!u){console.warn("[ESLint Command] ESLint plugin slice not found");return}u.scanStatus!=="scanning"&&u.startScanning(),l.closeCommandPalette()},isAvailable:l=>{const o=l;return o.wsConnected===!0&&o.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:l=>{const u=l.getState().plugins.eslint;if(!u){console.warn("[ESLint Command] ESLint plugin slice not found");return}u.stopScanning(),l.closeCommandPalette()},isAvailable:l=>l.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:l=>{l.openInspector("fixes",{}),l.closeCommandPalette()},isAvailable:l=>{const u=l.plugins?.eslint;return u?.scanStatus!=="scanning"||!u?.issues?!1:u.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:l=>{const u=l.getState().plugins.eslint;if(!u){console.warn("[ESLint Command] ESLint plugin slice not found");return}u.clearIssues(),u.startScanning(),l.closeCommandPalette()},isAvailable:l=>l.wsConnected===!0}],n8={issues:new Map,scannedDataLocs:new Set,requestedFiles:new Set,scanStatus:"scanning",availableRules:[],disabledRules:new Set,workspaceRoot:null,ruleConfigs:new Map,ruleConfigUpdating:new Map,workspaceCapabilities:null};function a8(l){return{...n8}}function i8(l,o,u){return{startScanning:()=>{u({scanStatus:"scanning"})},stopScanning:()=>{u({scanStatus:"idle",issues:new Map,scannedDataLocs:new Set,requestedFiles:new Set})},setIssues:(c,p)=>{const m=o(),y=new Map(m.issues);p.length>0?y.set(c,p):y.delete(c),u({issues:y})},clearIssues:()=>{u({issues:new Map,scannedDataLocs:new Set,requestedFiles:new Set})},toggleRule:c=>{const p=o(),m=new Set(p.disabledRules);m.has(c)?m.delete(c):m.add(c),u({disabledRules:m})},setAvailableRules:c=>{u({availableRules:c})},setWorkspaceRoot:c=>{u({workspaceRoot:c})},markScanned:c=>{const p=o(),m=new Set(p.scannedDataLocs);m.add(c),u({scannedDataLocs:m})},markFileRequested:c=>{const p=o(),m=new Set(p.requestedFiles);m.add(c),u({requestedFiles:m})},setScanStatus:c=>{u({scanStatus:c})}}}function l8(l){if(!l)return null;const o=l.lastIndexOf(":");if(o===-1)return null;const u=l.lastIndexOf(":",o-1);if(u===-1)return null;const c=l.substring(0,u);return c||null}function o8(l){const o=new Set;for(const u of l){const c=l8(u);c&&o.add(c)}return o}function r8({value:l,onChange:o,disabled:u}){const c=[{value:"error",label:"E",color:"#ef4444"},{value:"warning",label:"W",color:"#f59e0b"},{value:"off",label:"Off",color:"#6b7280"}];return _.jsx("div",{style:{display:"flex",gap:4},children:c.map(p=>_.jsx("button",{onClick:()=>o(p.value),disabled:u,style:{padding:"4px 8px",fontSize:12,fontWeight:500,border:"none",borderRadius:4,cursor:u?"not-allowed":"pointer",background:l===p.value?p.color:"var(--uilint-surface-elevated)",color:l===p.value?"white":"var(--uilint-text-disabled)",opacity:u?.5:1},children:p.label},p.value))})}function s8({data:l}){const o=l?.ruleId,u=kt(x=>{const T=x.plugins?.eslint;return T?.availableRules?T.availableRules.find(E=>E.id===o):null}),c=kt(x=>{const T=x.plugins?.eslint;return T?.ruleConfigs?T.ruleConfigs.get(o||""):null}),p=kt(x=>{const T=x.plugins?.eslint;return T?.ruleConfigUpdating?T.ruleConfigUpdating.get(o||"")??!1:!1}),m=kt(x=>{const T=x.plugins?.eslint;if(!T?.issues)return 0;let E=0;return T.issues.forEach(A=>{E+=A.filter(R=>R.ruleId===o).length}),E}),y=q.useCallback(x=>{o&&ai.setRuleSeverity(o,x)},[o]);if(!o)return _.jsx("div",{style:{padding:16,color:"var(--uilint-text-muted)",textAlign:"center"},children:"No rule selected"});if(!u)return _.jsxs("div",{style:{padding:16,color:"var(--uilint-text-muted)",textAlign:"center"},children:["Rule not found: ",o]});const S=c?.severity?c.severity==="warn"?"warning":c.severity:u.currentSeverity==="warn"?"warning":u.currentSeverity??"off";return _.jsxs("div",{style:{padding:16},children:[_.jsxs("div",{style:{marginBottom:16},children:[_.jsx("div",{style:{fontSize:16,fontWeight:600,color:"var(--uilint-text-primary)",marginBottom:4},children:u.name}),_.jsx("div",{style:{fontSize:12,color:"var(--uilint-text-muted)",fontFamily:"monospace"},children:u.id})]}),_.jsx("div",{style:{fontSize:14,color:"var(--uilint-text-secondary)",marginBottom:16,lineHeight:1.5},children:u.description}),_.jsxs("div",{style:{display:"flex",gap:8,marginBottom:16},children:[_.jsx("span",{style:{fontSize:11,fontWeight:500,textTransform:"uppercase",background:u.category==="semantic"?"rgba(59, 130, 246, 0.1)":"var(--uilint-surface-elevated)",color:u.category==="semantic"?"var(--uilint-accent)":"var(--uilint-text-muted)",padding:"2px 6px",borderRadius:4},children:u.category}),m>0&&_.jsxs("span",{style:{fontSize:11,fontWeight:500,background:"rgba(239, 68, 68, 0.1)",color:"#dc2626",padding:"2px 6px",borderRadius:4},children:[m," issue",m!==1?"s":""]})]}),_.jsxs("div",{style:{marginBottom:16},children:[_.jsx("div",{style:{fontSize:12,fontWeight:500,color:"var(--uilint-text-muted)",marginBottom:8},children:"Severity"}),_.jsx(r8,{value:S,onChange:y,disabled:p}),p&&_.jsx("div",{style:{fontSize:11,color:"var(--uilint-text-muted)",marginTop:4},children:"Updating..."})]}),u.docs&&_.jsx("div",{style:{marginTop:16},children:_.jsx("a",{href:u.docs,target:"_blank",rel:"noopener noreferrer",style:{fontSize:12,color:"var(--uilint-accent)",textDecoration:"none"},children:"View documentation"})})]})}function u8(l){const{manifestUrl:o,retries:u=3,retryDelay:c=1e3,cacheTtl:p=0}=l;let m=null,y=null,S=null;function x(){return!m||y===null?!1:p===0?!0:Date.now()-y<p}function T(A){return new Promise(R=>setTimeout(R,A))}async function E(){let A=null;for(let R=0;R<=u;R++)try{R>0&&(console.log(`[ManifestFetcher] Retry attempt ${R}/${u}...`),await T(c*R));const j=await fetch(o);if(!j.ok)throw new Error(`Failed to fetch manifest: ${j.status} ${j.statusText}`);const Z=await j.json();if(Z.version!=="1.0")throw new Error(`Unsupported manifest version: ${Z.version}`);if(!Array.isArray(Z.files))throw new Error("Invalid manifest: missing files array");return Z}catch(j){A=j instanceof Error?j:new Error(String(j)),console.error(`[ManifestFetcher] Fetch failed (attempt ${R+1}):`,A.message)}throw A??new Error("Failed to fetch manifest")}return{async fetch(){return x()&&m?{manifest:m,cached:!0,fetchedAt:y}:S||(S=(async()=>{try{console.log(`[ManifestFetcher] Fetching manifest from ${o}...`);const A=await E();return m=A,y=Date.now(),console.log(`[ManifestFetcher] Loaded manifest: ${A.summary.totalIssues} issues in ${A.summary.filesWithIssues} files`),{manifest:A,cached:!1,fetchedAt:y}}finally{S=null}})(),S)},getCached(){return x()?m:null},invalidate(){m=null,y=null,console.log("[ManifestFetcher] Cache invalidated")},isFetching(){return S!==null},getManifestUrl(){return o}}}let iR=null;function c8(l){return iR=u8(l),iR}function f8(l,o){const{filePath:u}=QC(l.dataLoc),c=l.ruleId||"unknown",p=o.find(S=>`uilint/${S.id}`===c||S.id===c),y=(p?.currentSeverity??p?.defaultSeverity??"warn")==="error"?"error":"warning";return{id:ZC("eslint",c,l.dataLoc,l.line),message:l.message,severity:y,dataLoc:l.dataLoc,ruleId:c,pluginId:"eslint",filePath:u,line:l.line,column:l.column}}function d8(l){return{id:l.id,name:l.name,description:l.description,category:l.category,defaultSeverity:l.defaultSeverity,currentSeverity:l.currentSeverity,docs:l.docs}}function h8(l,o){console.log("[ESLint Plugin] Processing manifest:",o.summary.totalIssues,"issues in",o.summary.filesWithIssues,"files");const u=new Map;for(const m of o.files)for(const y of m.issues){const S=f8(y,o.rules),x=u.get(S.dataLoc)||[];u.set(S.dataLoc,[...x,S])}const c=o.rules.map(d8),p=new Map;for(const m of o.rules)p.set(m.id,{severity:m.currentSeverity??m.defaultSeverity});l.setState({issues:u,availableRules:c,ruleConfigs:p,workspaceRoot:o.workspaceRoot,scanStatus:"complete"}),console.log("[ESLint Plugin] Manifest processed:",u.size,"unique dataLocs with issues")}let hf=null;function p8(l){const o=c8({manifestUrl:l});hf={mode:"static",manifestUrl:l,fetcher:o,manifest:null},console.log("[ESLint Plugin] Configured for static mode:",l)}function m8(){return hf!==null}function g8(){hf=null}function y8(l){if(!hf)return console.error("[ESLint Plugin] Static mode not configured"),()=>{};const{fetcher:o}=hf;console.log("[ESLint Plugin] Initializing in static mode..."),l.setState({scanStatus:"scanning"}),o.fetch().then(({manifest:c})=>{hf.manifest=c,h8(l,c)}).catch(c=>{console.error("[ESLint Plugin] Failed to fetch manifest:",c),l.setState({scanStatus:"error"})});const u=l.domObserver.onElementsAdded(c=>{hf?.manifest&&console.log("[ESLint Plugin] Static mode: DOM elements detected:",c.length)});return()=>{u(),console.log("[ESLint Plugin] Static mode disposed")}}const lR=["lint:result","lint:progress","file:changed","workspace:info","workspace:capabilities","rules:metadata","rule:config:result","rule:config:changed"],v8={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:l=>{const o=a8();let u=o;const m=i8(l,()=>u,y=>{u={...u,...y},l.setState(y)});return{...o,...m}},commands:tw,categoryProviders:x8(),inspectorPanels:[{id:"eslint-rule",title:({data:l})=>l?.ruleId?`Rule: ${l.ruleId}`:"Rule Details",component:s8,priority:10}],handlesRules:l=>l.id.startsWith("uilint/")||l.category==="static"?!0:(l.id==="uilint/semantic-vision",!1),getIssues:l=>{const o=l,u=new Map;return o.issues.forEach((c,p)=>{const m=c.map(y=>({id:y.id,message:y.message,severity:y.severity,dataLoc:y.dataLoc,line:y.line,column:y.column,ruleId:y.ruleId}));m.length>0&&u.set(p,m)}),{pluginId:"eslint",issues:u}},getRules:l=>{const o=l.getState();if(!o?.availableRules)return[];const u=o.ruleConfigs??new Map;return o.availableRules.map(c=>{const m=u.get(c.id)?.severity??c.currentSeverity??c.defaultSeverity,y=m==="warn"?"warning":m;return{id:c.id,name:c.name,description:c.description,category:c.category,severity:y,fixable:!1,pluginId:"eslint",docs:c.docs}})},setRuleSeverity:(l,o,u)=>{const c=o==="warning"?"warn":o,p=u.getState(),m=new Map(p.ruleConfigUpdating??new Map);m.set(l,!0),u.setState({ruleConfigUpdating:m}),u.websocket.send({type:"rule:config:set",ruleId:l,severity:c,requestId:`rule-severity-${Date.now()}`}),console.log("[ESLint Plugin] Setting rule severity:",l,"->",c)},getRuleConfig:(l,o)=>(o.getState()?.ruleConfigs??new Map).get(l)?.options??{},setRuleConfig:(l,o,u)=>{const c=u.getState(),p=new Map(c.ruleConfigUpdating??new Map);p.set(l,!0),u.setState({ruleConfigUpdating:p}),u.websocket.send({type:"rule:config:set",ruleId:l,options:o,requestId:`rule-config-${Date.now()}`}),console.log("[ESLint Plugin] Setting rule config:",l,o)},initialize:l=>{if(console.log("[ESLint Plugin] Initializing..."),m8())return console.log("[ESLint Plugin] Running in STATIC mode (manifest-based)"),y8(l);console.log("[ESLint Plugin] Running in WEBSOCKET mode");const o=[];for(const c of lR){const p=l.websocket.on(c,m=>{S8(l,m)});o.push(p)}console.log("[ESLint Plugin] Subscribed to",lR.length,"message types");const u=l.domObserver.onElementsAdded(c=>{b8(l,c)});return o.push(u),console.log("[ESLint Plugin] Subscribed to DOM observer"),()=>{console.log("[ESLint Plugin] Disposing..."),o.forEach(c=>c())}},dispose:l=>{console.log("[ESLint Plugin] Disposed")}};function b8(l,o){const u=l.getState();if(console.log("[ESLint Plugin] handleElementsAdded called with",o.length,"elements"),console.log("[ESLint Plugin] State check - scanStatus:",u?.scanStatus,"wsConnected:",l.websocket.isConnected),u.scanStatus!=="scanning"){console.log("[ESLint Plugin] Scanning not active (status:",u.scanStatus,"), skipping lint requests");return}if(!l.websocket.isConnected){console.log("[ESLint Plugin] WebSocket not connected, skipping lint requests");return}const c=o.map(S=>S.dataLoc),p=o8(c);if(p.size===0){console.log("[ESLint Plugin] No file paths extracted from",o.length,"elements");return}console.log("[ESLint Plugin] Detected",o.length,"elements from",p.size,"unique files:",Array.from(p).slice(0,3));const m=u.requestedFiles??new Set,y=[];for(const S of p)if(!m.has(S)){y.push(S);const x=`lint-${Date.now()}-${S.replace(/[^a-zA-Z0-9]/g,"-")}`;l.websocket.send({type:"lint:file",filePath:S,requestId:x}),console.log("[ESLint Plugin] Sent lint:file request for",S)}if(y.length>0){const S=new Set(m);for(const x of y)S.add(x);l.setState({requestedFiles:S}),console.log("[ESLint Plugin] Updated requestedFiles with",y.length,"new files")}else console.log("[ESLint Plugin] All files already requested, skipping")}function S8(l,o){switch(o.type){case"lint:result":{const{filePath:u,issues:c}=o;console.log("[ESLint Plugin] Received lint result:",u,c.length,"issues");const p=c.map(x=>Jk({...x,dataLoc:x.dataLoc||`${u}:${x.line}:${x.column||0}`})).filter(x=>x!==null),m=new Map;for(const x of p){const T=m.get(x.dataLoc)||[];m.set(x.dataLoc,[...T,x])}const y=l.getState(),S=new Map(y.issues);for(const[x,T]of m)S.set(x,T);l.setState({issues:S});break}case"lint:progress":{const{filePath:u,phase:c}=o;console.log("[ESLint Plugin] Lint progress:",u,c);break}case"file:changed":{const{filePath:u}=o;console.log("[ESLint Plugin] File changed:",u);const c=l.getState(),p=new Map(c.issues);for(const[y]of p)y.startsWith(u+":")&&p.delete(y);const m=new Set(c.requestedFiles??new Set);m.delete(u),l.setState({issues:p,requestedFiles:m});break}case"workspace:info":{const{appRoot:u,workspaceRoot:c,serverCwd:p}=o;console.log("[ESLint Plugin] Workspace info:",{appRoot:u,workspaceRoot:c,serverCwd:p}),l.setState({appRoot:u,workspaceRoot:c,serverCwd:p});break}case"workspace:capabilities":{const{postToolUseHook:u}=o;console.log("[ESLint Plugin] Workspace capabilities:",{postToolUseHook:u}),l.setState({workspaceCapabilities:{postToolUseHook:u}});break}case"rules:metadata":{const{rules:u}=o;console.log("[ESLint Plugin] Received rules metadata:",u.length,"rules");const c=new Map;for(const p of u)c.set(p.id,{severity:p.currentSeverity??p.defaultSeverity,options:p.currentOptions??(p.defaultOptions&&p.defaultOptions.length>0?p.defaultOptions[0]:void 0)});l.setState({availableRules:u,ruleConfigs:c});break}case"rule:config:result":{const{ruleId:u,severity:c,options:p,success:m,error:y}=o,S=l.getState(),x=new Map(S.ruleConfigUpdating);if(x.delete(u),l.setState({ruleConfigUpdating:x}),m){const T=l.getState(),E=new Map(T.ruleConfigs);E.set(u,{severity:c,options:p}),l.setState({ruleConfigs:E}),console.log("[ESLint Plugin] Rule config updated:",u,"->",c)}else console.error("[ESLint Plugin] Failed to update rule config:",y);break}case"rule:config:changed":{const{ruleId:u,severity:c,options:p}=o,m=l.getState(),y=new Map(m.ruleConfigs);y.set(u,{severity:c,options:p}),l.setState({ruleConfigs:y}),console.log("[ESLint Plugin] Rule config changed (broadcast):",u,"->",c);break}}}function x8(){return[{id:"eslint:commands",label:"Commands",priority:1,parentId:"eslint",getItems:l=>{const o=l.getState();return tw.filter(u=>!u.isAvailable||u.isAvailable(o)).map(u=>({id:u.id,title:u.title,subtitle:u.subtitle,priority:1,metadata:{category:u.category,keywords:u.keywords},execute:c=>{u.execute(c)}}))},getItemCount:l=>{const o=l.getState();return tw.filter(u=>!u.isAvailable||u.isAvailable(o)).length},searchKeys:["title","subtitle"]},{id:"eslint:dynamic-rules",label:"Issues by Rule",priority:2,isDynamic:!0,parentId:"eslint",getSubCategories:l=>{const u=l.getState()?.plugins?.eslint;if(!u?.issues)return[];const c=new Map;for(const m of u.issues.values())for(const y of m){const S=c.get(y.ruleId)||[];c.set(y.ruleId,[...S,y])}const p=[];for(const[m,y]of c){const S=y.filter(E=>E.severity==="error").length,x=y.length,T=m.includes("/")?m.split("/").pop():m;p.push({id:`eslint:rule:${m}`,label:T,priority:S>0?0:1,parentId:"eslint",getItems:()=>y.map(E=>({id:`eslint:issue:${E.id}`,title:E.message,subtitle:`${E.filePath}:${E.line}`,priority:E.severity==="error"?0:1,metadata:{issueId:E.id,ruleId:E.ruleId,severity:E.severity,filePath:E.filePath,line:E.line},execute:A=>{A.openInspector("issue",{issue:E}),A.closeCommandPalette()}})),getItemCount:()=>x,searchKeys:["title","subtitle"]})}return p.sort((m,y)=>{if(m.priority!==y.priority)return m.priority-y.priority;const S=m.getItemCount?.(l)??0;return(y.getItemCount?.(l)??0)-S}),p},getItems:()=>[],getItemCount:()=>0}]}const ew=[{id:"vision:capture-full-page",title:"Capture Full Page",keywords:["vision","screenshot","capture","full","page","analyze"],category:"Vision",subtitle:"Capture and analyze the entire visible page",icon:"camera",hideFromAllCategory:!0,execute:async l=>{const o=l.getState();o.setCaptureMode("full"),o.setRegionSelectionActive(!1),o.setSelectedRegion(null),l.closeCommandPalette(),await o.triggerVisionAnalysis()}},{id:"vision:capture-region",title:"Capture Region",keywords:["vision","screenshot","capture","region","area","select","partial"],category:"Vision",subtitle:"Select a region of the page to capture and analyze",icon:"crop",hideFromAllCategory:!0,execute:l=>{const o=l.getState();o.setCaptureMode("region"),o.setRegionSelectionActive(!0),o.setSelectedRegion(null),l.closeCommandPalette()}},{id:"vision:clear-results",title:"Clear Vision Results",keywords:["vision","clear","reset","results","screenshots","history"],category:"Vision",subtitle:"Clear all vision analysis results and screenshot history",icon:"trash",hideFromAllCategory:!0,execute:l=>{l.getState().clearVisionResults(),l.closeCommandPalette()}},{id:"vision:toggle-results-panel",title:"Toggle Vision Results Panel",keywords:["vision","results","panel","toggle","show","hide"],category:"Vision",subtitle:"Show or hide the vision analysis results panel",icon:"panel",hideFromAllCategory:!0,execute:l=>{const o=l.getState();o.showResultsPanel?o.setShowResultsPanel(!1):(o.setShowResultsPanel(!0),o.setActiveResultsTab("vision")),l.closeCommandPalette()}},{id:"vision:show-screenshot-gallery",title:"Show Screenshot Gallery",keywords:["vision","screenshots","gallery","history","captures"],category:"Vision",subtitle:"View captured screenshots and their analysis results",icon:"image",hideFromAllCategory:!0,isAvailable:l=>{const o=l;return o.screenshotHistory&&o.screenshotHistory.size>0},execute:l=>{const o=l.getState();o.setShowResultsPanel(!0),o.setActiveResultsTab("vision"),l.closeCommandPalette()}},{id:"vision:enable-auto-analyze",title:"Enable Auto Vision Analysis",keywords:["vision","auto","analyze","automatic","route","change"],category:"Vision",subtitle:"Automatically analyze pages on route change",hideFromAllCategory:!0,isAvailable:l=>!l.autoScanSettings?.vision?.onRouteChange,execute:l=>{l.getState().updateAutoScanSettings({vision:{onRouteChange:!0}}),l.closeCommandPalette()}},{id:"vision:disable-auto-analyze",title:"Disable Auto Vision Analysis",keywords:["vision","auto","analyze","automatic","route","change","disable"],category:"Vision",subtitle:"Stop automatic analysis on route change",hideFromAllCategory:!0,isAvailable:l=>l.autoScanSettings?.vision?.onRouteChange===!0,execute:l=>{l.getState().updateAutoScanSettings({vision:{onRouteChange:!1}}),l.closeCommandPalette()}}],Jv={onRouteChange:!1,onInitialLoad:!1},nw="data-loc",w8=new Set(["SCRIPT","STYLE","SVG","PATH","CIRCLE","RECT","LINE","POLYGON","POLYLINE","ELLIPSE","NOSCRIPT","TEMPLATE","SLOT"]),T8=3,oR=100;function E8(l){const o=l.tagName.toUpperCase(),u=l.getAttribute("role");if(u)return u;switch(o){case"BUTTON":return"button";case"A":return"link";case"H1":case"H2":case"H3":case"H4":case"H5":case"H6":return"heading";case"INPUT":{const c=l.type;return c==="submit"||c==="button"?"button":c==="checkbox"?"checkbox":c==="radio"?"radio":"textbox"}case"TEXTAREA":return"textbox";case"SELECT":return"combobox";case"IMG":return"img";case"NAV":return"navigation";case"MAIN":return"main";case"HEADER":return"banner";case"FOOTER":return"contentinfo";case"ASIDE":return"complementary";case"ARTICLE":return"article";case"SECTION":return"region";case"FORM":return"form";case"TABLE":return"table";case"UL":case"OL":return"list";case"LI":return"listitem";default:return}}function A8(l){const o=l.innerText?.trim();if(o)return o.length>oR?o.slice(0,oR)+"…":o;const u=l.getAttribute("aria-label");if(u)return u;const c=l.getAttribute("title");if(c)return c;const p=l.getAttribute("placeholder");if(p)return p;const m=l.getAttribute("alt");return m||""}function C8(l){const o=l,u=window.getComputedStyle(o);if(u.display==="none"||u.visibility==="hidden"||u.opacity==="0")return!1;const c=l.getBoundingClientRect();return!(c.width===0&&c.height===0||c.bottom<-100||c.top>window.innerHeight+100||c.right<-100||c.left>window.innerWidth+100)}function R8(l,o){const u=l.left+l.width,c=l.top+l.height,p=o.x+o.width,m=o.y+o.height;return!(l.left>p||u<o.x||l.top>m||c<o.y)}function M8(l=document.body,o){const u=[],c=new Map,p=new Map,m=window.scrollX||window.pageXOffset||0,y=window.scrollY||window.pageYOffset||0,S=l.querySelectorAll(`[${nw}]`);for(const x of S){if(x.closest("[data-ui-lint]")||w8.has(x.tagName)||!C8(x))continue;const T=x.getBoundingClientRect();if(o&&!R8(T,o))continue;let E=x.getAttribute(nw);if(!E)continue;if(E.startsWith("loc:")){E=E.slice(4);const at=E.lastIndexOf("#");at!==-1&&(E=E.slice(0,at))}const A=c.get(E)||0;c.set(E,A+1);let R=p.get(E);if(R||(R=[],p.set(E,R)),R.length>=T8)continue;const j=A8(x),Z=x.getAttribute(nw)||`loc:${E}#${A}`;let P;o?P={x:T.x-o.x,y:T.y-o.y,width:T.width,height:T.height}:P={x:T.x+m,y:T.y+y,width:T.width,height:T.height};const K={id:Z,text:j,dataLoc:E,rect:P,tagName:x.tagName.toLowerCase(),role:E8(x)};R.push(K)}for(const[x,T]of p){const E=c.get(x)||T.length;T.forEach((A,R)=>{R===0&&E>T.length&&(A.instanceCount=E),u.push(A)})}return u}async function z8(){const l=await Promise.resolve().then(()=>kR).catch(()=>null);if(!l)throw new Error("Screenshot capture unavailable: `html-to-image` failed to load (check the uilint-react bundle/deps)");try{return await l.toPng(document.body,{pixelRatio:1,cacheBust:!0,filter:u=>!(u instanceof Element&&u.closest("[data-ui-lint]"))})}catch(o){const c=(o instanceof Error?o:new Error(String(o))).message||"Unknown error",p=/tainted|cross[- ]origin|CORS|security/i.test(c)?" Hint: this is often caused by cross-origin images/fonts; try removing external images or ensuring they allow CORS.":"";throw new Error(`Screenshot capture failed (html-to-image): ${c}.${p}`)}}async function D8(l){const o=await Promise.resolve().then(()=>kR).catch(()=>null);if(!o)throw new Error("Screenshot capture unavailable: `html-to-image` failed to load (check the uilint-react bundle/deps)");try{const u=await o.toPng(document.body,{pixelRatio:1,cacheBust:!0,filter:y=>!(y instanceof Element&&y.closest("[data-ui-lint]"))}),c=window.scrollX||window.pageXOffset||0,p=window.scrollY||window.pageYOffset||0,m={x:l.x+c,y:l.y+p,width:l.width,height:l.height};return await O8(u,m)}catch(u){const p=(u instanceof Error?u:new Error(String(u))).message||"Unknown error",m=/tainted|cross[- ]origin|CORS|security/i.test(p)?" Hint: this is often caused by cross-origin images/fonts; try removing external images or ensuring they allow CORS.":"";throw new Error(`Screenshot capture failed (html-to-image): ${p}.${m}`)}}async function O8(l,o){return new Promise((u,c)=>{const p=new Image;p.onload=()=>{try{const m=document.createElement("canvas");m.width=o.width,m.height=o.height;const y=m.getContext("2d");if(!y){c(new Error("Failed to get canvas context"));return}y.drawImage(p,o.x,o.y,o.width,o.height,0,0,o.width,o.height);const S=m.toDataURL("image/png");u(S)}catch(m){c(new Error(`Failed to crop image: ${m instanceof Error?m.message:String(m)}`))}},p.onerror=()=>{c(new Error("Failed to load image for cropping"))},p.src=l})}function _8(){return window.location.pathname.replace(/\/+$/,"")||"/"}const k8={visionAvailable:!1,visionAnalyzing:!1,visionProgressPhase:null,visionLastError:null,visionResult:null,visionIssuesCache:new Map,screenshotHistory:new Map,selectedScreenshotId:null,visionCurrentRoute:null,highlightedVisionElementId:null,captureMode:"full",regionSelectionActive:!1,selectedRegion:null,autoScanSettings:Jv,loadingPersistedScreenshots:!1,persistedScreenshotsFetched:!1},rR="uilint:visionAutoScanSettings";function j8(){if(typeof window>"u")return Jv;try{const l=localStorage.getItem(rR);if(l){const o=JSON.parse(l);return{...Jv,...o}}}catch(l){console.warn("[Vision Plugin] Failed to load auto-scan settings:",l)}return Jv}function U8(l){if(!(typeof window>"u"))try{localStorage.setItem(rR,JSON.stringify(l))}catch(o){console.warn("[Vision Plugin] Failed to save auto-scan settings:",o)}}function L8(l,o){return{...k8,autoScanSettings:j8(),setVisionAvailable:u=>l({visionAvailable:u}),triggerVisionAnalysis:async()=>{console.warn("[Vision Plugin] triggerVisionAnalysis called without integration")},clearVisionResults:()=>l({visionResult:null,visionIssuesCache:new Map,screenshotHistory:new Map,selectedScreenshotId:null,visionAnalyzing:!1,visionProgressPhase:null,highlightedVisionElementId:null,visionLastError:null}),clearVisionLastError:()=>l({visionLastError:null}),setHighlightedVisionElementId:u=>l({highlightedVisionElementId:u}),setCaptureMode:u=>l({captureMode:u}),setRegionSelectionActive:u=>l({regionSelectionActive:u}),setSelectedRegion:u=>l({selectedRegion:u}),setSelectedScreenshotId:u=>{const c=o();if(!u){l({selectedScreenshotId:null});return}const p=c.screenshotHistory.get(u);if(!p){l({selectedScreenshotId:u});return}if(p.issues&&p.issues.length>0){const m=new Map(c.visionIssuesCache);m.set(p.route,p.issues),l({selectedScreenshotId:u,visionIssuesCache:m})}else l({selectedScreenshotId:u})},fetchPersistedScreenshots:async()=>{const u=o();if(!(u.loadingPersistedScreenshots||u.persistedScreenshotsFetched)){l({loadingPersistedScreenshots:!0});try{const c=await fetch("/api/.uilint/screenshots?list=true");if(!c.ok){console.warn("[Vision Plugin] Failed to fetch screenshots:",c.statusText);return}const p=await c.json(),{screenshots:m}=p;if(!m||m.length===0)return;const y=[];for(const E of m){const{filename:A,metadata:R}=E,j=`capture_${A.replace(/\.[^.]+$/,"")}`,Z=R?.route||R?.analysisResult?.route||"/",P=R?.timestamp||Date.now(),K=R?.issues||R?.analysisResult?.issues||[],at={id:j,route:Z,filename:A,timestamp:P,type:"full",persisted:!0,issues:K.length>0?K:void 0};y.push(at)}const S=o(),x=new Map(S.screenshotHistory),T=new Map(S.visionIssuesCache);for(const E of y){const A=x.get(E.id);(!A||!A.dataUrl)&&x.set(E.id,E),E.issues&&E.issues.length>0&&!T.has(E.route)&&T.set(E.route,E.issues)}l({screenshotHistory:x,visionIssuesCache:T})}catch(c){console.warn("[Vision Plugin] Error fetching persisted screenshots:",c)}finally{l({loadingPersistedScreenshots:!1,persistedScreenshotsFetched:!0})}}},updateVisionAutoScanSettings:u=>{const p={...o().autoScanSettings,...u};U8(p),l({autoScanSettings:p})},setVisionAnalyzing:u=>l({visionAnalyzing:u}),setVisionProgressPhase:u=>l({visionProgressPhase:u}),setVisionLastError:u=>l({visionLastError:u}),setVisionResult:u=>l({visionResult:u}),updateVisionIssuesCache:(u,c)=>{const p=o(),m=new Map(p.visionIssuesCache);m.set(u,c),l({visionIssuesCache:m})},addScreenshotToHistory:u=>{const c=o(),p=new Map(c.screenshotHistory);p.set(u.id,u),l({screenshotHistory:p,selectedScreenshotId:u.id})},updateScreenshotInHistory:(u,c)=>{const p=o(),m=new Map(p.screenshotHistory),y=m.get(u);y&&(m.set(u,{...y,...c}),l({screenshotHistory:m}))},setVisionCurrentRoute:u=>l({visionCurrentRoute:u})}}const N8=1e4;function V8(l){return async()=>{const{websocket:o,getState:u}=l,c=u(),p=_8();try{c.setVisionAnalyzing(!0),c.setVisionProgressPhase("capturing"),c.setVisionCurrentRoute(p);const{captureMode:m,selectedRegion:y}=c,S=m==="region"&&y!==null;let x;S&&y?x=await D8(y):x=await z8();const T=M8(document.body,S&&y?y:void 0),E=Date.now(),A=`capture_${E}`;c.addScreenshotToHistory({id:A,route:p,dataUrl:x,timestamp:E,type:S?"region":"full",region:S&&y?y:void 0}),S&&(c.setRegionSelectionActive(!1),c.setSelectedRegion(null)),c.setVisionProgressPhase("saving");const R=await new Promise((j,Z)=>{const P=setTimeout(()=>{K(),Z(new Error("Timeout waiting for screenshot:saved response"))},N8),K=o.on("screenshot:saved",at=>{clearTimeout(P),K();const yt=at;yt.error?Z(new Error(yt.error)):yt.filename?j(yt.filename):Z(new Error("Invalid screenshot:saved response"))});o.send({type:"screenshot:save",dataUrl:x,route:p,timestamp:E})});c.setVisionProgressPhase("analyzing"),o.send({type:"vision:analyze",route:p,timestamp:E,screenshot:x,screenshotFile:R,manifest:T})}catch(m){const y=m instanceof Error?m.message:String(m),S=y.includes("Timeout")||y.includes("websocket")?"ws":(y.includes("capture")||y.includes("Screenshot capture"),"capture");c.setVisionLastError({stage:S,message:y,route:p,timestamp:Date.now()}),c.setVisionAnalyzing(!1),c.setVisionProgressPhase(null)}}}const sR=Ln.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},Ln.createElement("path",{d:"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"}),Ln.createElement("circle",{cx:"12",cy:"13",r:"4"})),H8=Ln.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},Ln.createElement("path",{d:"M6.13 1L6 16a2 2 0 0 0 2 2h15"}),Ln.createElement("path",{d:"M1 6.13L16 6a2 2 0 0 1 2 2v15"})),B8={id:"vision:capture-group",icon:sR,tooltip:"Vision Capture",priority:100,isVisible:l=>l.plugins?.vision?.visionAvailable===!0,actions:[{id:"vision:capture-full-page",icon:sR,tooltip:"Capture Full Page",shortcut:"⌘⇧C",priority:100,isVisible:l=>l.plugins?.vision?.visionAvailable===!0,onClick:async l=>{const u=l.getState().plugins.vision;u.setCaptureMode("full"),u.setRegionSelectionActive(!1),u.setSelectedRegion(null),await u.triggerVisionAnalysis()}},{id:"vision:capture-region",icon:H8,tooltip:"Capture Region",shortcut:"⌘⇧R",priority:90,isVisible:l=>l.plugins?.vision?.visionAvailable===!0,onClick:l=>{const u=l.getState().plugins.vision;u.setCaptureMode("region"),u.setRegionSelectionActive(!0),u.setSelectedRegion(null)}}]};function Y8(){return[{id:"vision:commands",label:"Commands",priority:1,parentId:"vision",getItems:l=>{const o=l.getState(),u={...o,screenshotHistory:o.plugins?.vision?.screenshotHistory??new Map,autoScanSettings:o.autoScanSettings??{vision:{onRouteChange:!1}}};return ew.filter(c=>!c.isAvailable||c.isAvailable(u)).map(c=>({id:c.id,title:c.title,subtitle:c.subtitle,priority:1,metadata:{category:c.category,keywords:c.keywords},execute:p=>{c.execute(p)}}))},getItemCount:l=>{const o=l.getState(),u={...o,screenshotHistory:o.plugins?.vision?.screenshotHistory??new Map,autoScanSettings:o.autoScanSettings??{vision:{onRouteChange:!1}}};return ew.filter(c=>!c.isAvailable||c.isAvailable(u)).length},searchKeys:["title","subtitle"]},{id:"vision:captures",label:"Captures",priority:2,parentId:"vision",getItems:l=>{const u=l.getState().plugins?.vision?.screenshotHistory;if(!u||u.size===0)return[];const c=Array.from(u.values());return c.sort((p,m)=>m.timestamp-p.timestamp),c.map(p=>{const m=p.issues?.length??0,y=m>0,S=y?`${p.route} • ${m} issue${m>1?"s":""}`:p.route;return{id:`vision:capture:${p.id}`,title:q8(p),subtitle:S,priority:y?0:1,metadata:{captureId:p.id,route:p.route,timestamp:p.timestamp,type:p.type,issueCount:m},execute:x=>{x.getState().plugins?.vision?.setSelectedScreenshotId(p.id),x.openInspector("capture",{capture:p}),x.closeCommandPalette()}}})},getItemCount:l=>l.getState().plugins?.vision?.screenshotHistory?.size??0,searchKeys:["title","subtitle"]}]}function q8(l){const u=new Date(l.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});return`${l.type==="region"?"Region":"Full Page"} • ${u}`}const G8={id:"vision",name:"Vision Analysis",version:"1.0.0",description:"AI-powered visual consistency analysis",meta:{id:"vision",name:"Vision Analysis",version:"1.0.0",description:"AI-powered visual consistency analysis",icon:"eye"},createSlice:l=>{let o;return o=L8(p=>{o={...o,...p},l.setState(p)},()=>o),o},commands:ew,categoryProviders:Y8(),toolbarActionGroups:[B8],inspectorPanels:[],ruleContributions:[{ruleId:"semantic-vision"}],handlesRules:l=>l.id==="semantic-vision"||l.id.includes("vision")||l.category==="vision",getIssues:l=>{const o=l,u=new Map;for(const[c,p]of o.visionIssuesCache)for(const m of p)if(m.dataLoc){const y=u.get(m.dataLoc)||[];y.push({id:`vision:${c}:${m.elementText}:${m.category}`,message:m.message,severity:m.severity,dataLoc:m.dataLoc,ruleId:"semantic-vision",metadata:{elementText:m.elementText,category:m.category,route:c}}),u.set(m.dataLoc,y)}return{pluginId:"vision",issues:u}},initialize:l=>{const{websocket:o}=l,u=V8(l);l.setState({triggerVisionAnalysis:u});const c=o.on("vision:result",S=>{const x=S,T=l.getState();T.updateVisionIssuesCache(x.route,x.issues),T.setVisionResult({route:x.route,timestamp:Date.now(),manifest:[],issues:x.issues,analysisTime:x.analysisTime,error:x.error}),T.selectedScreenshotId&&T.updateScreenshotInHistory(T.selectedScreenshotId,{issues:x.issues}),T.setVisionAnalyzing(!1),T.setVisionProgressPhase(null),x.error&&T.setVisionLastError({stage:"vision",message:x.error,route:x.route,timestamp:Date.now()})}),p=o.on("vision:progress",S=>{const x=S;l.getState().setVisionProgressPhase(x.phase)}),m=o.on("vision:status",S=>{const x=S;l.getState().setVisionAvailable(x.available)}),y=o.onConnectionChange(S=>{const x=l.getState();S?o.send({type:"vision:check"}):x.setVisionAvailable(!1)});return()=>{c(),p(),m(),y()}}};function X8(l){const o=new Map;for(const u of l){const c=u.filePath||"unknown",p=o.get(c)||[];p.push(u),o.set(c,p)}for(const[u,c]of o)o.set(u,c.sort((p,m)=>p.line-m.line));return o}function Q8(l,o,u){const c=Array.from(l.values()).reduce((y,S)=>y+S.length,0),p=l.size;if(c===0)return"No lint issues found on the current page.";const m=[];if(m.push("# Fix Lint Issues"),m.push(""),m.push(`There are **${c} lint issue${c===1?"":"s"}** across **${p} file${p===1?"":"s"}** that need to be fixed.`),m.push(""),m.push("## Instructions"),m.push(""),m.push("1. Fix ALL of the lint issues in the files listed below"),m.push("2. Do NOT ignore or suppress any issues with eslint-disable comments"),m.push("3. Do NOT skip any issues - each one must be properly addressed"),m.push("4. Run the linter after fixing to verify all issues are resolved"),m.push("5. If an issue cannot be fixed without breaking functionality, explain why and propose an alternative solution"),m.push(""),u){m.push("## Affected Files"),m.push(""),m.push("The following files have lint issues. When you edit each file, you will receive the specific lint errors automatically."),m.push("");for(const[y,S]of l){const x=o&&y.startsWith(o)?y.slice(o.length+1):y;m.push(`- \`${x}\` (${S.length} issue${S.length===1?"":"s"})`)}m.push(""),m.push("---"),m.push(""),m.push("Open each file above and fix all reported lint issues. The linter will provide specific error details when you edit each file.")}else{m.push("## Affected Files"),m.push("");for(const[y,S]of l){const x=o&&y.startsWith(o)?y.slice(o.length+1):y;m.push(`### ${x}`),m.push("");for(const T of S){const E=T.column?`Line ${T.line}, Column ${T.column}`:`Line ${T.line}`,A=T.severity==="error"?"ERROR":"WARNING",R=T.ruleId?` (${T.ruleId})`:"";m.push(`- **[${A}]** ${E}${R}`),m.push(` ${T.message}`)}m.push("")}m.push("---"),m.push(""),m.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 m.join(`
257
257
  `)}function Z8({text:l,onCopy:o}){const[u,c]=q.useState(!1),p=q.useCallback(async()=>{try{await navigator.clipboard.writeText(l),c(!0),o(),setTimeout(()=>c(!1),2e3)}catch(m){console.error("Failed to copy:",m)}},[l,o]);return _.jsx("button",{onClick:p,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:u?"var(--uilint-success)":"var(--uilint-primary)"},children:u?_.jsxs(_.Fragment,{children:[_.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:_.jsx("polyline",{points:"20 6 9 17 4 12"})}),"Copied!"]}):_.jsxs(_.Fragment,{children:[_.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[_.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),_.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 K8({data:l}){const o=l?.issues||[],u=l?.workspaceRoot||null,c=l?.hookAvailable||!1,p=q.useMemo(()=>X8(o),[o]),m=q.useMemo(()=>Q8(p,u,c),[p,u,c]),y=o.length,S=p.size;return _.jsxs("div",{className:"flex flex-col h-full",children:[_.jsx("div",{className:"p-4 border-b",style:{borderColor:"var(--uilint-border)",background:"var(--uilint-surface)"},children:_.jsxs("div",{className:"flex items-center justify-between",children:[_.jsxs("div",{children:[_.jsx("div",{className:"text-sm mb-1",style:{color:"var(--uilint-text-muted)"},children:y===0?"No issues found":`${y} issue${y===1?"":"s"} in ${S} file${S===1?"":"s"}`}),_.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"})]}),y>0&&_.jsx(Z8,{text:m,onCopy:()=>{}})]})}),_.jsx("div",{className:"flex-1 overflow-auto p-4",children:_.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:m})}),_.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:[_.jsx("strong",{children:"Tip:"})," Paste this prompt into Cursor, Claude Code, or any AI assistant to get help fixing these lint issues."]})]})}const aw=Ln.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Ln.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"}),Ln.createElement("rect",{x:"8",y:"2",width:"8",height:"4",rx:"1",ry:"1"}),Ln.createElement("line",{x1:"8",y1:"12",x2:"16",y2:"12"}),Ln.createElement("line",{x1:"8",y1:"16",x2:"14",y2:"16"}));function $8(l){const u=l.getState().plugins?.eslint;if(!u?.issues)return{issues:[],workspaceRoot:null,hookAvailable:!1};const c=[];for(const m of u.issues.values())c.push(...m);const p=u.workspaceCapabilities?.postToolUseHook?.enabled??!1;return{issues:c,workspaceRoot:u.workspaceRoot,hookAvailable:p}}const J8={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:aw},toolbarActions:[{id:"fix-prompt:generate",icon:aw,tooltip:"Generate Fix Prompt",priority:50,isVisible:l=>{const u=l.plugins?.eslint?.issues;if(!u)return!1;let c=0;for(const p of u.values())if(c+=p.length,c>0)return!0;return!1},onClick:l=>{const{issues:o,workspaceRoot:u,hookAvailable:c}=$8(l),p=l.getState();l.setState({inspector:{...p.inspector,open:!0,panelId:"fix-prompt",data:{issues:o,workspaceRoot:u,hookAvailable:c}}})}}],inspectorPanels:[{id:"fix-prompt",title:"Fix Prompt",icon:aw,component:K8,priority:10}],createSlice:void 0,initialize:void 0};let uR=!1;function cR(l){if(typeof document>"u"||uR)return;const o=document.createElement("style");o.setAttribute("data-uilint-devtools-styles","true"),o.textContent=l,document.head.appendChild(o),uR=!0}const fR=`@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-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:"";--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%}}}@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-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-white:#fff;--spacing:.25rem;--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);--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-relaxed:1.625;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--blur-sm:8px;--blur-md:12px;--blur-lg:16px;--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)}}@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-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)}.top-2{top:calc(var(--spacing)*2)}.top-2\\.5{top:calc(var(--spacing)*2.5)}.top-3{top:calc(var(--spacing)*3)}.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}.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-1\\.5{margin-inline:calc(var(--spacing)*1.5)}.mx-3{margin-inline:calc(var(--spacing)*3)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-1\\.5{margin-block:calc(var(--spacing)*1.5)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-auto{margin-top:auto}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.ml-1{margin-left:calc(var(--spacing)*1)}.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-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-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-\\[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-full{height:100%}.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}.w-2\\.5{width:calc(var(--spacing)*2.5)}.w-5{width:calc(var(--spacing)*5)}.w-10{width:calc(var(--spacing)*10)}.w-24{width:calc(var(--spacing)*24)}.w-28{width:calc(var(--spacing)*28)}.w-\\[364px\\]{width:364px}.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-\\[580px\\]{max-width:580px}.max-w-\\[calc\\(100\\%-1rem\\)\\]{max-width:calc(100% - 1rem)}.max-w-sm{max-width:var(--container-sm)}.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-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)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}: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)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.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-\\[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-sm{border-radius:var(--uilint-radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.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-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-border,.border-border\\/30{border-color:var(--uilint-border)}@supports (color:color-mix(in lab,red,red)){.border-border\\/30{border-color:color-mix(in oklab,var(--uilint-border)30%,transparent)}}.border-border\\/50{border-color:var(--uilint-border)}@supports (color:color-mix(in lab,red,red)){.border-border\\/50{border-color:color-mix(in oklab,var(--uilint-border)50%,transparent)}}.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-transparent{border-color:#0000}.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-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.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-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-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-bg{background-color:var(--uilint-error-bg)}.bg-hover{background-color:var(--uilint-hover)}.bg-info-bg{background-color:var(--uilint-info-bg)}.bg-muted,.bg-muted\\/30{background-color:var(--uilint-surface-elevated)}@supports (color:color-mix(in lab,red,red)){.bg-muted\\/30{background-color:color-mix(in oklab,var(--uilint-surface-elevated)30%,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-bg{background-color:var(--uilint-success-bg)}.bg-surface-elevated{background-color:var(--uilint-surface-elevated)}.bg-transparent{background-color:#0000}.bg-warning-bg{background-color:var(--uilint-warning-bg)}.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)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.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-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.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)}.pt-0{padding-top:calc(var(--spacing)*0)}.pr-1\\.25{padding-right:calc(var(--spacing)*1.25)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pl-9{padding-left:calc(var(--spacing)*9)}.text-center{text-align:center}.text-left{text-align:left}.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-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-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}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.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-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{color:var(--uilint-error)}.text-foreground{color:var(--uilint-foreground)}.text-info{color:var(--uilint-info)}.text-muted-foreground,.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-red-700{color:var(--color-red-700)}.text-success{color:var(--uilint-success)}.text-text-secondary{color:var(--uilint-text-secondary)}.text-warning{color:var(--uilint-warning)}.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}.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-50{opacity:.5}.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-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-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)}.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-\\[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-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-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))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.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}.\\[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)}.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)}.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}@media(hover:hover){.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-muted\\/50:hover{background-color:var(--uilint-surface-elevated)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-muted\\/50:hover{background-color:color-mix(in oklab,var(--uilint-surface-elevated)50%,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-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{color:var(--uilint-foreground)}.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\\: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)}}.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\\: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-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\\: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\\: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-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-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-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)}.\\[\\&\\>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-background:oklch(98.5% .015 75);--uilint-background-elevated:oklch(97% .02 75);--uilint-foreground:oklch(18% .02 75);--uilint-surface:oklch(98.5% .015 75);--uilint-surface-elevated:oklch(97% .02 75);--uilint-text-primary:oklch(18% .02 75);--uilint-text-secondary:oklch(40% .025 75);--uilint-text-muted:oklch(55% .03 75);--uilint-text-disabled:oklch(70% .02 75);--uilint-hover:oklch(75% .08 75/.15);--uilint-active:oklch(70% .1 75/.2);--uilint-border:oklch(90% .025 75);--uilint-border-focus:oklch(70% .15 75);--uilint-accent:oklch(70% .16 75);--uilint-accent-foreground:oklch(98.5% .015 75);--uilint-success:oklch(72.3% .191 142.5);--uilint-success-bg:oklch(72.3% .191 142.5/.15);--uilint-warning:oklch(75% .183 55.934);--uilint-warning-bg:oklch(75% .183 55.934/.15);--uilint-error:oklch(63.7% .237 25.331);--uilint-error-bg:oklch(63.7% .237 25.331/.15);--uilint-info:oklch(62.3% .214 259);--uilint-info-bg:oklch(62.3% .214 259/.15);--uilint-shadow:0 4px 20px oklch(30% .05 75/.15);--uilint-shadow-lg:0 8px 32px oklch(30% .05 75/.2);--uilint-backdrop:oklch(98.5% .015 75/.92);--uilint-glass:oklch(99% .01 75/.7);--uilint-glass-border:oklch(100% .02 75/.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% .01 75/.5);--uilint-glass-medium:oklch(99% .01 75/.7);--uilint-glass-heavy:oklch(99% .01 75/.85);--uilint-kbd-background:linear-gradient(180deg,oklch(100% 0 0) 0%,oklch(96% .01 75) 100%);--uilint-kbd-border:oklch(0% 0 0/.1);--uilint-kbd-shadow:0 1px 0 oklch(0% 0 0/.08);--uilint-kbd-text:oklch(45% .03 75);--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(95% .01 75);--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(70% .15 75/.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% .02 75);--uilint-scrollbar-thumb:oklch(70% .04 75);--uilint-scrollbar-thumb-hover:oklch(55% .05 75);--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(16% .02 75);--uilint-background-elevated:oklch(22% .025 75);--uilint-foreground:oklch(95% .025 75);--uilint-surface:oklch(16% .02 75);--uilint-surface-elevated:oklch(22% .025 75);--uilint-text-primary:oklch(95% .025 75);--uilint-text-secondary:oklch(82% .03 75);--uilint-text-muted:oklch(65% .035 75);--uilint-text-disabled:oklch(45% .025 75);--uilint-hover:oklch(80% .1 75/.12);--uilint-active:oklch(80% .12 75/.18);--uilint-border:oklch(95% .03 75/.12);--uilint-border-focus:oklch(75% .15 75);--uilint-accent:oklch(75% .15 75);--uilint-accent-foreground:oklch(16% .02 75);--uilint-success:oklch(72.3% .191 142.5);--uilint-success-bg:oklch(72.3% .191 142.5/.2);--uilint-warning:oklch(75% .183 55.934);--uilint-warning-bg:oklch(75% .183 55.934/.2);--uilint-error:oklch(63.7% .237 25.331);--uilint-error-bg:oklch(63.7% .237 25.331/.2);--uilint-info:oklch(62.3% .214 259);--uilint-info-bg:oklch(62.3% .214 259/.2);--uilint-shadow:0 4px 20px oklch(10% .03 75/.4);--uilint-shadow-lg:0 8px 32px oklch(0% 0 0/.5);--uilint-backdrop:oklch(12% .02 75/.92);--uilint-glass:oklch(18% .02 75/.7);--uilint-glass-border:oklch(100% .02 75/.12);--uilint-glass-highlight:oklch(100% 0 0/.1);--uilint-glass-light:oklch(20% .02 75/.5);--uilint-glass-medium:oklch(18% .02 75/.7);--uilint-glass-heavy:oklch(16% .02 75/.85);--uilint-kbd-background:linear-gradient(180deg,oklch(28% .02 75) 0%,oklch(22% .02 75) 100%);--uilint-kbd-border:oklch(100% 0 0/.1);--uilint-kbd-shadow:0 1px 0 oklch(0% 0 0/.2);--uilint-kbd-text:oklch(75% .03 75);--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(25% .02 75);--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(20% .02 75/.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(75% .15 75/.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(22% .02 75);--uilint-scrollbar-thumb:oklch(40% .04 75);--uilint-scrollbar-thumb-hover:oklch(50% .05 75);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(16% .02 75);--uilint-background-elevated:oklch(22% .025 75);--uilint-foreground:oklch(95% .025 75);--uilint-surface:oklch(16% .02 75);--uilint-surface-elevated:oklch(22% .025 75);--uilint-text-primary:oklch(95% .025 75);--uilint-text-secondary:oklch(82% .03 75);--uilint-text-muted:oklch(65% .035 75);--uilint-text-disabled:oklch(45% .025 75);--uilint-hover:oklch(80% .1 75/.12);--uilint-active:oklch(80% .12 75/.18);--uilint-border:oklch(95% .03 75/.12);--uilint-border-focus:oklch(75% .15 75);--uilint-accent:oklch(75% .15 75);--uilint-accent-foreground:oklch(16% .02 75);--uilint-success:oklch(72.3% .191 142.5);--uilint-success-bg:oklch(72.3% .191 142.5/.2);--uilint-warning:oklch(75% .183 55.934);--uilint-warning-bg:oklch(75% .183 55.934/.2);--uilint-error:oklch(63.7% .237 25.331);--uilint-error-bg:oklch(63.7% .237 25.331/.2);--uilint-shadow:0 4px 20px oklch(10% .03 75/.4);--uilint-backdrop:oklch(12% .02 75/.92);--uilint-glass:oklch(18% .02 75/.7);--uilint-glass-border:oklch(100% .02 75/.12);--uilint-scrollbar-track:oklch(22% .02 75);--uilint-scrollbar-thumb:oklch(40% .04 75);--uilint-scrollbar-thumb-hover:oklch(50% .05 75);color-scheme:dark}}.light,.light .dev-tool-root,.dev-tool-root.light,.dev-tool-root[data-theme=light]{--uilint-background:oklch(98.5% .015 75);--uilint-background-elevated:oklch(97% .02 75);--uilint-foreground:oklch(18% .02 75);--uilint-surface:oklch(98.5% .015 75);--uilint-surface-elevated:oklch(97% .02 75);--uilint-text-primary:oklch(18% .02 75);--uilint-text-secondary:oklch(40% .025 75);--uilint-text-muted:oklch(55% .03 75);--uilint-text-disabled:oklch(70% .02 75);--uilint-hover:oklch(75% .08 75/.15);--uilint-active:oklch(70% .1 75/.2);--uilint-border:oklch(90% .025 75);--uilint-border-focus:oklch(70% .15 75);--uilint-accent:oklch(70% .16 75);--uilint-accent-foreground:oklch(98.5% .015 75);--uilint-success:oklch(72.3% .191 142.5);--uilint-success-bg:oklch(72.3% .191 142.5/.15);--uilint-warning:oklch(75% .183 55.934);--uilint-warning-bg:oklch(75% .183 55.934/.15);--uilint-error:oklch(63.7% .237 25.331);--uilint-error-bg:oklch(63.7% .237 25.331/.15);--uilint-shadow:0 4px 20px oklch(30% .05 75/.15);--uilint-backdrop:oklch(98.5% .015 75/.92);--uilint-glass:oklch(99% .01 75/.7);--uilint-glass-border:oklch(100% .02 75/.25);--uilint-scrollbar-track:oklch(92% .02 75);--uilint-scrollbar-thumb:oklch(70% .04 75);--uilint-scrollbar-thumb-hover:oklch(55% .05 75);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{opacity:1}50%{opacity:.6}}@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-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:""}@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%}`;let iw=!1;const dR="uilint-devtool-root";function hR(){return typeof window<"u"}function P8({enabled:l=!0,mode:o="websocket",manifestUrl:u}){const[c,p]=q.useState(!1),[m,y]=q.useState(iw),S=q.useRef(null),x=q.useRef(!1);return o==="static"&&!u&&console.warn("[DevTool] Static mode requires manifestUrl prop"),q.useEffect(()=>{p(!0)},[]),q.useEffect(()=>{if(!hR()||!l)return;cR(fR);const T=document.querySelector(`.${dR}`);if(T){S.current=T,x.current=!1;return}const E=document.createElement("div");return E.className=dR,E.setAttribute("data-ui-lint-root","true"),document.body.appendChild(E),S.current=E,x.current=!0,()=>{x.current&&S.current?.remove(),S.current=null,x.current=!1}},[l]),q.useEffect(()=>{if(!hR()||!l||!c)return;let T=null;const E=o==="static"&&u;async function A(){E?(console.log("[DevTool] Configuring static mode with manifest:",u),p8(u)):g8(),iw||(ai.register(v8),ai.register(G8),ai.register(J8),await Uz({websocket:xu,domObserver:hg}),iw=!0,console.log("[DevTool] Plugins initialized in",E?"static":"websocket","mode")),y(!0),E?(console.log("[DevTool] Static mode: starting DOM observer"),hg.start()):(xu.connect(),T=xu.onConnectionChange(R=>{R?(console.log("[DevTool] WebSocket connected, starting DOM observer"),hg.start()):(console.log("[DevTool] WebSocket disconnected, stopping DOM observer"),hg.stop())}))}return A(),()=>{T?.(),E||xu.disconnect(),hg.stop()}},[l,c,o,u]),!l||!c||!m?null:_.jsx(P6,{enabled:l})}function pR(l,o){l.setAttribute("data-position",o)}function I8(){if(typeof document>"u")return"light";const l=document.documentElement,o=document.body;if(l.classList.contains("dark")||o.classList.contains("dark"))return"dark";if(l.classList.contains("light")||o.classList.contains("light"))return"light";const u=l.getAttribute("data-theme"),c=o.getAttribute("data-theme");if(u==="dark"||c==="dark")return"dark";if(u==="light"||c==="light")return"light";const p=l.getAttribute("data-mode"),m=o.getAttribute("data-mode");return p==="dark"||m==="dark"?"dark":p==="light"||m==="light"?"light":window.matchMedia?.("(prefers-color-scheme: dark)").matches?"dark":"light"}function mR(l,o){l.classList.remove("light","dark"),l.removeAttribute("data-theme"),o!=="system"&&(l.classList.add(o),l.setAttribute("data-theme",o))}function F8(){if(typeof window>"u"||customElements.get("uilint-devtools"))return;class l extends HTMLElement{static get observedAttributes(){return["enabled","position","theme","mode","manifest-url"]}rootEl=null;reactRoot=null;themeObserver=null;mediaQueryListener=null;connectedCallback(){cR(fR);const u=document.createElement("div");u.className="dev-tool-root",u.setAttribute("data-ui-lint-root","true"),document.body.appendChild(u),this.rootEl=u,pR(u,this.getPosition()),this.syncTheme(),this.setupThemeObserver(),this.reactRoot=iz.createRoot(u),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&&(pR(this.rootEl,this.getPosition()),this.syncTheme(),this.render())}getEnabled(){const u=this.getAttribute("enabled");return u==null?!0:u!=="false"}getPosition(){const u=this.getAttribute("position");switch(u){case"bottom-right":case"top-left":case"top-right":case"bottom-left":case"top-center":case"bottom-center":return u;default:return"top-center"}}getTheme(){const u=this.getAttribute("theme");switch(u){case"light":case"dark":return u;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 u=this.getTheme();if(u==="system"){const c=I8();mR(this.rootEl,c)}else mR(this.rootEl,u)}setupThemeObserver(){this.themeObserver=new MutationObserver(()=>{this.getTheme()==="system"&&this.syncTheme()});const u={attributes:!0,attributeFilter:["class","data-theme","data-mode"]};this.themeObserver.observe(document.documentElement,u),this.themeObserver.observe(document.body,u);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(_.jsx(P8,{enabled:this.getEnabled(),mode:this.getMode(),manifestUrl:this.getManifestUrl()}))}}customElements.define("uilint-devtools",l)}F8();function W8(l,o){if(l.match(/^[a-z]+:\/\//i))return l;if(l.match(/^\/\//))return window.location.protocol+l;if(l.match(/^[a-z]+:/i))return l;const u=document.implementation.createHTMLDocument(),c=u.createElement("base"),p=u.createElement("a");return u.head.appendChild(c),u.body.appendChild(p),o&&(c.href=o),p.href=l,p.href}const tj=(()=>{let l=0;const o=()=>`0000${(Math.random()*36**4<<0).toString(36)}`.slice(-4);return()=>(l+=1,`u${o()}${l}`)})();function wu(l){const o=[];for(let u=0,c=l.length;u<c;u++)o.push(l[u]);return o}let yh=null;function gR(l={}){return yh||(l.includeStyleProperties?(yh=l.includeStyleProperties,yh):(yh=wu(window.getComputedStyle(document.documentElement)),yh))}function Pv(l,o){const c=(l.ownerDocument.defaultView||window).getComputedStyle(l).getPropertyValue(o);return c?parseFloat(c.replace("px","")):0}function ej(l){const o=Pv(l,"border-left-width"),u=Pv(l,"border-right-width");return l.clientWidth+o+u}function nj(l){const o=Pv(l,"border-top-width"),u=Pv(l,"border-bottom-width");return l.clientHeight+o+u}function lw(l,o={}){const u=o.width||ej(l),c=o.height||nj(l);return{width:u,height:c}}function aj(){let l,o;try{o=process}catch{}const u=o&&o.env?o.env.devicePixelRatio:null;return u&&(l=parseInt(u,10),Number.isNaN(l)&&(l=1)),l||window.devicePixelRatio||1}const Wi=16384;function ij(l){(l.width>Wi||l.height>Wi)&&(l.width>Wi&&l.height>Wi?l.width>l.height?(l.height*=Wi/l.width,l.width=Wi):(l.width*=Wi/l.height,l.height=Wi):l.width>Wi?(l.height*=Wi/l.width,l.width=Wi):(l.width*=Wi/l.height,l.height=Wi))}function lj(l,o={}){return l.toBlob?new Promise(u=>{l.toBlob(u,o.type?o.type:"image/png",o.quality?o.quality:1)}):new Promise(u=>{const c=window.atob(l.toDataURL(o.type?o.type:void 0,o.quality?o.quality:void 0).split(",")[1]),p=c.length,m=new Uint8Array(p);for(let y=0;y<p;y+=1)m[y]=c.charCodeAt(y);u(new Blob([m],{type:o.type?o.type:"image/png"}))})}function Iv(l){return new Promise((o,u)=>{const c=new Image;c.onload=()=>{c.decode().then(()=>{requestAnimationFrame(()=>o(c))})},c.onerror=u,c.crossOrigin="anonymous",c.decoding="async",c.src=l})}async function oj(l){return Promise.resolve().then(()=>new XMLSerializer().serializeToString(l)).then(encodeURIComponent).then(o=>`data:image/svg+xml;charset=utf-8,${o}`)}async function rj(l,o,u){const c="http://www.w3.org/2000/svg",p=document.createElementNS(c,"svg"),m=document.createElementNS(c,"foreignObject");return p.setAttribute("width",`${o}`),p.setAttribute("height",`${u}`),p.setAttribute("viewBox",`0 0 ${o} ${u}`),m.setAttribute("width","100%"),m.setAttribute("height","100%"),m.setAttribute("x","0"),m.setAttribute("y","0"),m.setAttribute("externalResourcesRequired","true"),p.appendChild(m),m.appendChild(l),oj(p)}const ki=(l,o)=>{if(l instanceof o)return!0;const u=Object.getPrototypeOf(l);return u===null?!1:u.constructor.name===o.name||ki(u,o)};function sj(l){const o=l.getPropertyValue("content");return`${l.cssText} content: '${o.replace(/'|"/g,"")}';`}function uj(l,o){return gR(o).map(u=>{const c=l.getPropertyValue(u),p=l.getPropertyPriority(u);return`${u}: ${c}${p?" !important":""};`}).join(" ")}function cj(l,o,u,c){const p=`.${l}:${o}`,m=u.cssText?sj(u):uj(u,c);return document.createTextNode(`${p}{${m}}`)}function yR(l,o,u,c){const p=window.getComputedStyle(l,u),m=p.getPropertyValue("content");if(m===""||m==="none")return;const y=tj();try{o.className=`${o.className} ${y}`}catch{return}const S=document.createElement("style");S.appendChild(cj(y,u,p,c)),o.appendChild(S)}function fj(l,o,u){yR(l,o,":before",u),yR(l,o,":after",u)}const vR="application/font-woff",bR="image/jpeg",dj={woff:vR,woff2:vR,ttf:"application/font-truetype",eot:"application/vnd.ms-fontobject",png:"image/png",jpg:bR,jpeg:bR,gif:"image/gif",tiff:"image/tiff",svg:"image/svg+xml",webp:"image/webp"};function hj(l){const o=/\.([^./]*?)$/g.exec(l);return o?o[1]:""}function ow(l){const o=hj(l).toLowerCase();return dj[o]||""}function pj(l){return l.split(/,/)[1]}function rw(l){return l.search(/^(data:)/)!==-1}function mj(l,o){return`data:${o};base64,${l}`}async function SR(l,o,u){const c=await fetch(l,o);if(c.status===404)throw new Error(`Resource "${c.url}" not found`);const p=await c.blob();return new Promise((m,y)=>{const S=new FileReader;S.onerror=y,S.onloadend=()=>{try{m(u({res:c,result:S.result}))}catch(x){y(x)}},S.readAsDataURL(p)})}const sw={};function gj(l,o,u){let c=l.replace(/\?.*/,"");return u&&(c=l),/ttf|otf|eot|woff2?/i.test(c)&&(c=c.replace(/.*\//,"")),o?`[${o}]${c}`:c}async function uw(l,o,u){const c=gj(l,o,u.includeQueryParams);if(sw[c]!=null)return sw[c];u.cacheBust&&(l+=(/\?/.test(l)?"&":"?")+new Date().getTime());let p;try{const m=await SR(l,u.fetchRequestInit,({res:y,result:S})=>(o||(o=y.headers.get("Content-Type")||""),pj(S)));p=mj(m,o)}catch(m){p=u.imagePlaceholder||"";let y=`Failed to fetch resource: ${l}`;m&&(y=typeof m=="string"?m:m.message),y&&console.warn(y)}return sw[c]=p,p}async function yj(l){const o=l.toDataURL();return o==="data:,"?l.cloneNode(!1):Iv(o)}async function vj(l,o){if(l.currentSrc){const m=document.createElement("canvas"),y=m.getContext("2d");m.width=l.clientWidth,m.height=l.clientHeight,y?.drawImage(l,0,0,m.width,m.height);const S=m.toDataURL();return Iv(S)}const u=l.poster,c=ow(u),p=await uw(u,c,o);return Iv(p)}async function bj(l,o){var u;try{if(!((u=l?.contentDocument)===null||u===void 0)&&u.body)return await Fv(l.contentDocument.body,o,!0)}catch{}return l.cloneNode(!1)}async function Sj(l,o){return ki(l,HTMLCanvasElement)?yj(l):ki(l,HTMLVideoElement)?vj(l,o):ki(l,HTMLIFrameElement)?bj(l,o):l.cloneNode(xR(l))}const xj=l=>l.tagName!=null&&l.tagName.toUpperCase()==="SLOT",xR=l=>l.tagName!=null&&l.tagName.toUpperCase()==="SVG";async function wj(l,o,u){var c,p;if(xR(o))return o;let m=[];return xj(l)&&l.assignedNodes?m=wu(l.assignedNodes()):ki(l,HTMLIFrameElement)&&(!((c=l.contentDocument)===null||c===void 0)&&c.body)?m=wu(l.contentDocument.body.childNodes):m=wu(((p=l.shadowRoot)!==null&&p!==void 0?p:l).childNodes),m.length===0||ki(l,HTMLVideoElement)||await m.reduce((y,S)=>y.then(()=>Fv(S,u)).then(x=>{x&&o.appendChild(x)}),Promise.resolve()),o}function Tj(l,o,u){const c=o.style;if(!c)return;const p=window.getComputedStyle(l);p.cssText?(c.cssText=p.cssText,c.transformOrigin=p.transformOrigin):gR(u).forEach(m=>{let y=p.getPropertyValue(m);m==="font-size"&&y.endsWith("px")&&(y=`${Math.floor(parseFloat(y.substring(0,y.length-2)))-.1}px`),ki(l,HTMLIFrameElement)&&m==="display"&&y==="inline"&&(y="block"),m==="d"&&o.getAttribute("d")&&(y=`path(${o.getAttribute("d")})`),c.setProperty(m,y,p.getPropertyPriority(m))})}function Ej(l,o){ki(l,HTMLTextAreaElement)&&(o.innerHTML=l.value),ki(l,HTMLInputElement)&&o.setAttribute("value",l.value)}function Aj(l,o){if(ki(l,HTMLSelectElement)){const c=Array.from(o.children).find(p=>l.value===p.getAttribute("value"));c&&c.setAttribute("selected","")}}function Cj(l,o,u){return ki(o,Element)&&(Tj(l,o,u),fj(l,o,u),Ej(l,o),Aj(l,o)),o}async function Rj(l,o){const u=l.querySelectorAll?l.querySelectorAll("use"):[];if(u.length===0)return l;const c={};for(let m=0;m<u.length;m++){const S=u[m].getAttribute("xlink:href");if(S){const x=l.querySelector(S),T=document.querySelector(S);!x&&T&&!c[S]&&(c[S]=await Fv(T,o,!0))}}const p=Object.values(c);if(p.length){const m="http://www.w3.org/1999/xhtml",y=document.createElementNS(m,"svg");y.setAttribute("xmlns",m),y.style.position="absolute",y.style.width="0",y.style.height="0",y.style.overflow="hidden",y.style.display="none";const S=document.createElementNS(m,"defs");y.appendChild(S);for(let x=0;x<p.length;x++)S.appendChild(p[x]);l.appendChild(y)}return l}async function Fv(l,o,u){return!u&&o.filter&&!o.filter(l)?null:Promise.resolve(l).then(c=>Sj(c,o)).then(c=>wj(l,c,o)).then(c=>Cj(l,c,o)).then(c=>Rj(c,o))}const wR=/url\((['"]?)([^'"]+?)\1\)/g,Mj=/url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g,zj=/src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;function Dj(l){const o=l.replace(/([.*+?^${}()|\[\]\/\\])/g,"\\$1");return new RegExp(`(url\\(['"]?)(${o})(['"]?\\))`,"g")}function Oj(l){const o=[];return l.replace(wR,(u,c,p)=>(o.push(p),u)),o.filter(u=>!rw(u))}async function _j(l,o,u,c,p){try{const m=u?W8(o,u):o,y=ow(o);let S;return p||(S=await uw(m,y,c)),l.replace(Dj(o),`$1${S}$3`)}catch{}return l}function kj(l,{preferredFontFormat:o}){return o?l.replace(zj,u=>{for(;;){const[c,,p]=Mj.exec(u)||[];if(!p)return"";if(p===o)return`src: ${c};`}}):l}function TR(l){return l.search(wR)!==-1}async function ER(l,o,u){if(!TR(l))return l;const c=kj(l,u);return Oj(c).reduce((m,y)=>m.then(S=>_j(S,y,o,u)),Promise.resolve(c))}async function vh(l,o,u){var c;const p=(c=o.style)===null||c===void 0?void 0:c.getPropertyValue(l);if(p){const m=await ER(p,null,u);return o.style.setProperty(l,m,o.style.getPropertyPriority(l)),!0}return!1}async function jj(l,o){await vh("background",l,o)||await vh("background-image",l,o),await vh("mask",l,o)||await vh("-webkit-mask",l,o)||await vh("mask-image",l,o)||await vh("-webkit-mask-image",l,o)}async function Uj(l,o){const u=ki(l,HTMLImageElement);if(!(u&&!rw(l.src))&&!(ki(l,SVGImageElement)&&!rw(l.href.baseVal)))return;const c=u?l.src:l.href.baseVal,p=await uw(c,ow(c),o);await new Promise((m,y)=>{l.onload=m,l.onerror=o.onImageErrorHandler?(...x)=>{try{m(o.onImageErrorHandler(...x))}catch(T){y(T)}}:y;const S=l;S.decode&&(S.decode=m),S.loading==="lazy"&&(S.loading="eager"),u?(l.srcset="",l.src=p):l.href.baseVal=p})}async function Lj(l,o){const c=wu(l.childNodes).map(p=>AR(p,o));await Promise.all(c).then(()=>l)}async function AR(l,o){ki(l,Element)&&(await jj(l,o),await Uj(l,o),await Lj(l,o))}function Nj(l,o){const{style:u}=l;o.backgroundColor&&(u.backgroundColor=o.backgroundColor),o.width&&(u.width=`${o.width}px`),o.height&&(u.height=`${o.height}px`);const c=o.style;return c!=null&&Object.keys(c).forEach(p=>{u[p]=c[p]}),l}const CR={};async function RR(l){let o=CR[l];if(o!=null)return o;const c=await(await fetch(l)).text();return o={url:l,cssText:c},CR[l]=o,o}async function MR(l,o){let u=l.cssText;const c=/url\(["']?([^"')]+)["']?\)/g,m=(u.match(/url\([^)]+\)/g)||[]).map(async y=>{let S=y.replace(c,"$1");return S.startsWith("https://")||(S=new URL(S,l.url).href),SR(S,o.fetchRequestInit,({result:x})=>(u=u.replace(y,`url(${x})`),[y,x]))});return Promise.all(m).then(()=>u)}function zR(l){if(l==null)return[];const o=[],u=/(\/\*[\s\S]*?\*\/)/gi;let c=l.replace(u,"");const p=new RegExp("((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})","gi");for(;;){const x=p.exec(c);if(x===null)break;o.push(x[0])}c=c.replace(p,"");const m=/@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi,y="((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})",S=new RegExp(y,"gi");for(;;){let x=m.exec(c);if(x===null){if(x=S.exec(c),x===null)break;m.lastIndex=S.lastIndex}else S.lastIndex=m.lastIndex;o.push(x[0])}return o}async function Vj(l,o){const u=[],c=[];return l.forEach(p=>{if("cssRules"in p)try{wu(p.cssRules||[]).forEach((m,y)=>{if(m.type===CSSRule.IMPORT_RULE){let S=y+1;const x=m.href,T=RR(x).then(E=>MR(E,o)).then(E=>zR(E).forEach(A=>{try{p.insertRule(A,A.startsWith("@import")?S+=1:p.cssRules.length)}catch(R){console.error("Error inserting rule from remote css",{rule:A,error:R})}})).catch(E=>{console.error("Error loading remote css",E.toString())});c.push(T)}})}catch(m){const y=l.find(S=>S.href==null)||document.styleSheets[0];p.href!=null&&c.push(RR(p.href).then(S=>MR(S,o)).then(S=>zR(S).forEach(x=>{y.insertRule(x,y.cssRules.length)})).catch(S=>{console.error("Error loading remote stylesheet",S)})),console.error("Error inlining remote css file",m)}}),Promise.all(c).then(()=>(l.forEach(p=>{if("cssRules"in p)try{wu(p.cssRules||[]).forEach(m=>{u.push(m)})}catch(m){console.error(`Error while reading CSS rules from ${p.href}`,m)}}),u))}function Hj(l){return l.filter(o=>o.type===CSSRule.FONT_FACE_RULE).filter(o=>TR(o.style.getPropertyValue("src")))}async function Bj(l,o){if(l.ownerDocument==null)throw new Error("Provided element is not within a Document");const u=wu(l.ownerDocument.styleSheets),c=await Vj(u,o);return Hj(c)}function DR(l){return l.trim().replace(/["']/g,"")}function Yj(l){const o=new Set;function u(c){(c.style.fontFamily||getComputedStyle(c).fontFamily).split(",").forEach(m=>{o.add(DR(m))}),Array.from(c.children).forEach(m=>{m instanceof HTMLElement&&u(m)})}return u(l),o}async function OR(l,o){const u=await Bj(l,o),c=Yj(l);return(await Promise.all(u.filter(m=>c.has(DR(m.style.fontFamily))).map(m=>{const y=m.parentStyleSheet?m.parentStyleSheet.href:null;return ER(m.cssText,y,o)}))).join(`
258
258
  `)}async function qj(l,o){const u=o.fontEmbedCSS!=null?o.fontEmbedCSS:o.skipFonts?null:await OR(l,o);if(u){const c=document.createElement("style"),p=document.createTextNode(u);c.appendChild(p),l.firstChild?l.insertBefore(c,l.firstChild):l.appendChild(c)}}async function _R(l,o={}){const{width:u,height:c}=lw(l,o),p=await Fv(l,o,!0);return await qj(p,o),await AR(p,o),Nj(p,o),await rj(p,u,c)}async function pg(l,o={}){const{width:u,height:c}=lw(l,o),p=await _R(l,o),m=await Iv(p),y=document.createElement("canvas"),S=y.getContext("2d"),x=o.pixelRatio||aj(),T=o.canvasWidth||u,E=o.canvasHeight||c;return y.width=T*x,y.height=E*x,o.skipAutoScale||ij(y),y.style.width=`${T}`,y.style.height=`${E}`,o.backgroundColor&&(S.fillStyle=o.backgroundColor,S.fillRect(0,0,y.width,y.height)),S.drawImage(m,0,0,y.width,y.height),y}async function Gj(l,o={}){const{width:u,height:c}=lw(l,o);return(await pg(l,o)).getContext("2d").getImageData(0,0,u,c).data}async function Xj(l,o={}){return(await pg(l,o)).toDataURL()}async function Qj(l,o={}){return(await pg(l,o)).toDataURL("image/jpeg",o.quality||1)}async function Zj(l,o={}){const u=await pg(l,o);return await lj(u)}async function Kj(l,o={}){return OR(l,o)}const kR=Object.freeze(Object.defineProperty({__proto__:null,getFontEmbedCSS:Kj,toBlob:Zj,toCanvas:pg,toJpeg:Qj,toPixelData:Gj,toPng:Xj,toSvg:_R},Symbol.toStringTag,{value:"Module"}))})();
259
259
  //# sourceMappingURL=devtools.js.map