vskill 0.5.83 → 0.5.84
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/eval-ui/assets/{CommandPalette-Zop9jgyY.js → CommandPalette-eD24lhFu.js} +1 -1
- package/dist/eval-ui/assets/{index-PsfutY7X.js → index-Bi2n8mTB.js} +2 -2
- package/dist/eval-ui/assets/{index-DS30At-e.css → index-EnxOcJMr.css} +1 -1
- package/dist/eval-ui/index.html +2 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as a,j as o,s as g}from"./index-
|
|
1
|
+
import{r as a,j as o,s as g}from"./index-Bi2n8mTB.js";/* empty css */function h(r,i){if(!i)return 1;const n=i.toLowerCase(),c=[r.label,r.description??"",...r.keywords??[]].join(" ").toLowerCase();if(c.startsWith(n))return 100;const s=r.label.toLowerCase();if(s.startsWith(n))return 90;if(s.includes(n))return 80;if(c.includes(n))return 60;let l=0;for(const u of c)if(u===n[l]&&l++,l===n.length)return 40;return 0}function j({open:r,onClose:i,commands:n,placeholder:c=g.palette.inputPlaceholder}){const[s,l]=a.useState(""),[u,f]=a.useState(0),m=a.useRef(null),v=a.useRef(null),b=a.useRef(null),p=a.useMemo(()=>n.map(e=>({c:e,s:h(e,s)})).filter(e=>e.s>0).sort((e,x)=>x.s-e.s).map(e=>e.c),[n,s]);if(a.useEffect(()=>{if(r)return m.current=document.activeElement??null,l(""),f(0),requestAnimationFrame(()=>{var t;return(t=v.current)==null?void 0:t.focus()}),()=>{var t,e;(e=(t=m.current)==null?void 0:t.focus)==null||e.call(t),m.current=null}},[r]),a.useEffect(()=>{f(0)},[s]),a.useEffect(()=>{if(!r)return;function t(e){var x;if(e.key==="Escape"){e.preventDefault(),i();return}if(e.key==="ArrowDown"){e.preventDefault(),f(d=>Math.min(d+1,Math.max(p.length-1,0)));return}if(e.key==="ArrowUp"){e.preventDefault(),f(d=>Math.max(d-1,0));return}if(e.key==="Enter"){const d=p[u];d&&(e.preventDefault(),d.onInvoke(),i());return}e.key==="Tab"&&(e.preventDefault(),(x=v.current)==null||x.focus())}return window.addEventListener("keydown",t,!0),()=>window.removeEventListener("keydown",t,!0)},[r,i,p,u]),!r)return null;const y="command-palette-listbox";return o.jsx("div",{"data-testid":"command-palette",role:"presentation",onClick:t=>{t.target===t.currentTarget&&i()},style:{position:"fixed",inset:0,background:"color-mix(in srgb, var(--bg-canvas) 70%, transparent)",display:"flex",alignItems:"flex-start",justifyContent:"center",paddingTop:"12vh",zIndex:60},children:o.jsxs("div",{ref:b,role:"dialog","aria-modal":"true","aria-label":"Command palette",style:{width:"min(560px, 92vw)",background:"var(--bg-canvas)",border:"1px solid var(--border-default)",borderRadius:8,boxShadow:"0 24px 64px rgba(0,0,0,0.2)",overflow:"hidden",fontFamily:"var(--font-sans)",color:"var(--text-primary)"},children:[o.jsx("div",{role:"combobox","aria-expanded":"true","aria-controls":y,"aria-haspopup":"listbox",style:{padding:"8px 12px",borderBottom:"1px solid var(--border-default)"},children:o.jsx("input",{ref:v,type:"text",value:s,onChange:t=>l(t.currentTarget.value),"aria-label":"Command","aria-autocomplete":"list","aria-controls":y,placeholder:c,style:{width:"100%",border:"none",outline:"none",background:"transparent",color:"var(--text-primary)",fontFamily:"var(--font-sans)",fontSize:14,padding:"6px 0"}})}),o.jsxs("ul",{id:y,role:"listbox",style:{listStyle:"none",margin:0,padding:"4px 0",maxHeight:320,overflow:"auto"},children:[p.length===0&&o.jsx("li",{role:"option","aria-selected":"false",style:{padding:"10px 12px",color:"var(--text-secondary)",fontSize:12},children:g.palette.emptyResults}),p.map((t,e)=>o.jsxs("li",{role:"option","aria-selected":e===u,onMouseEnter:()=>f(e),onClick:()=>{t.onInvoke(),i()},style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"8px 12px",background:e===u?"color-mix(in srgb, var(--accent-surface) 10%, transparent)":"transparent",cursor:"pointer",fontSize:13},children:[o.jsx("span",{children:t.label}),t.description&&o.jsx("span",{style:{fontSize:11,color:"var(--text-secondary)",marginLeft:12},children:t.description})]},t.id))]})]})})}export{j as CommandPalette,j as default,h as scoreCommand};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/CommandPalette-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/CommandPalette-eD24lhFu.js","assets/fonts-i7Lkz2zN.css"])))=>i.map(i=>d[i]);
|
|
2
2
|
/* empty css */(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const d of document.querySelectorAll('link[rel="modulepreload"]'))u(d);new MutationObserver(d=>{for(const m of d)if(m.type==="childList")for(const p of m.addedNodes)p.tagName==="LINK"&&p.rel==="modulepreload"&&u(p)}).observe(document,{childList:!0,subtree:!0});function o(d){const m={};return d.integrity&&(m.integrity=d.integrity),d.referrerPolicy&&(m.referrerPolicy=d.referrerPolicy),d.crossOrigin==="use-credentials"?m.credentials="include":d.crossOrigin==="anonymous"?m.credentials="omit":m.credentials="same-origin",m}function u(d){if(d.ep)return;d.ep=!0;const m=o(d);fetch(d.href,m)}})();function kh(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var lc={exports:{}},Pi={};/**
|
|
3
3
|
* @license React
|
|
4
4
|
* react-jsx-runtime.production.js
|
|
@@ -62,4 +62,4 @@ Error generating stack: `+n.message+`
|
|
|
62
62
|
Include any specific behaviors, constraints, or output formats you want.`,rows:5,disabled:o.generating,className:"w-full px-3 py-2.5 rounded-lg text-[13px] resize-y",style:{..._n,minHeight:"120px"},onKeyDown:u=>{u.key==="Enter"&&(u.metaKey||u.ctrlKey)&&(u.preventDefault(),o.handleGenerate())}}),c.jsx("p",{className:"text-[11px] mt-2",style:{color:"var(--text-quaternary, var(--text-tertiary))"},children:"Cmd+Enter to generate"})]}),o.generating&&o.aiProgress.length>0&&c.jsx(G1,{entries:o.aiProgress,isRunning:!0}),o.aiError&&c.jsx("div",{children:o.aiClassifiedError?c.jsx(I1,{error:o.aiClassifiedError,onRetry:o.handleGenerate,onDismiss:o.clearAiError}):c.jsxs("div",{children:[c.jsx("div",{className:"px-4 py-3 rounded-lg text-[13px]",style:{background:"var(--red-muted)",color:"var(--red)",border:"1px solid rgba(248,113,113,0.2)"},children:o.aiError}),c.jsx("button",{onClick:o.handleGenerate,className:"mt-2 text-[12px] font-medium",style:{color:"#a855f7",background:"none",border:"none",cursor:"pointer"},children:"Retry"})]})}),c.jsxs("div",{className:"flex items-center gap-3",children:[o.generating?c.jsx("button",{onClick:o.handleCancelGenerate,className:"px-5 py-2.5 rounded-lg text-[13px] font-medium transition-all duration-150 flex items-center gap-2",style:{background:"var(--surface-3)",color:"var(--text-secondary)",border:"none",cursor:"pointer"},children:"Cancel Generation"}):c.jsxs("button",{onClick:o.handleGenerate,disabled:!o.aiPrompt.trim(),className:"px-5 py-2.5 rounded-lg text-[13px] font-medium transition-all duration-150 flex items-center gap-2",style:{background:o.aiPrompt.trim()?"#a855f7":"var(--surface-3)",color:o.aiPrompt.trim()?"#fff":"var(--text-tertiary)",cursor:o.aiPrompt.trim()?"pointer":"not-allowed",border:"none"},children:[c.jsx(hc,{size:14}),"Generate"]}),c.jsx("button",{onClick:i,className:"px-4 py-2.5 rounded-lg text-[13px] font-medium",style:{color:"var(--text-secondary)",background:"none",border:"none",cursor:"pointer"},children:"Cancel"}),!o.generating&&c.jsxs("span",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:["or fill in the form manually",c.jsx("button",{onClick:()=>o.setMode("manual"),className:"ml-1 font-medium",style:{color:"var(--accent)",background:"none",border:"none",cursor:"pointer"},children:"below"})]})]})]}),!o.layoutLoading&&o.layout&&o.mode==="manual"&&c.jsxs("div",{className:"space-y-4 animate-fade-in",children:[c.jsxs("div",{className:"glass-card p-4",children:[c.jsx("h3",{className:"text-[13px] font-semibold mb-3",style:{color:"var(--text-primary)"},children:"Location"}),o.creatableLayouts.length>1&&c.jsxs("div",{className:"mb-3",children:[c.jsx("label",{className:"text-[11px] font-medium uppercase tracking-wider mb-2 block",style:{color:"var(--text-tertiary)"},children:"Layout"}),c.jsx("div",{className:"flex gap-2",children:o.creatableLayouts.map(u=>c.jsx("button",{onClick:()=>{o.setSelectedLayout(u.layout),o.setPlugin(u.existingPlugins[0]||""),o.setNewPlugin("")},className:"px-3 py-1.5 rounded-lg text-[12px] font-medium transition-all duration-150",style:{background:o.selectedLayout===u.layout?"var(--accent)":"var(--surface-3)",color:o.selectedLayout===u.layout?"#fff":"var(--text-secondary)",border:`1px solid ${o.selectedLayout===u.layout?"var(--accent)":"var(--border-subtle)"}`,cursor:"pointer"},children:u.label},u.layout))})]}),o.selectedLayout!==3&&c.jsxs("div",{className:"mb-3",children:[c.jsx("label",{className:"text-[11px] font-medium uppercase tracking-wider mb-2 block",style:{color:"var(--text-tertiary)"},children:"Plugin"}),c.jsxs("select",{value:o.plugin,onChange:u=>{o.setPlugin(u.target.value),o.setNewPlugin("")},className:"w-full px-3 py-2 rounded-lg text-[13px]",style:_n,children:[o.availablePlugins.map(u=>c.jsx("option",{value:u,children:u},u)),c.jsx("option",{value:"__new__",children:"+ New plugin..."})]}),o.plugin==="__new__"&&c.jsx("input",{type:"text",value:o.newPlugin,onChange:u=>o.setNewPlugin(Tc(u.target.value)),placeholder:"my-plugin",className:"w-full mt-2 px-3 py-2 rounded-lg text-[13px]",style:_n})]}),c.jsx("div",{className:"px-3 py-2 rounded-lg text-[11px] font-mono",style:{background:"var(--surface-0)",color:"var(--text-tertiary)",border:"1px solid var(--border-subtle)"},children:o.pathPreview})]}),o.showPluginRecommendation&&o.pluginLayoutInfo&&o.selectedLayout===3&&c.jsxs("div",{className:"px-4 py-3 rounded-lg text-[12px] animate-fade-in flex items-center justify-between gap-3",style:{background:"rgba(59,130,246,0.08)",color:"var(--text-secondary)",border:"1px solid rgba(59,130,246,0.2)"},children:[c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"#3b82f6",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("circle",{cx:"12",cy:"12",r:"10"}),c.jsx("line",{x1:"12",y1:"16",x2:"12",y2:"12"}),c.jsx("line",{x1:"12",y1:"8",x2:"12.01",y2:"8"})]}),c.jsxs("span",{children:["Plugins detected (",c.jsx("strong",{children:o.pluginLayoutInfo.plugins.slice(0,3).join(", ")}),"). Add this skill to a plugin for better organization."]})]}),c.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[c.jsx("button",{onClick:o.applyPluginRecommendation,className:"px-3 py-1 rounded-md text-[11px] font-medium",style:{background:"#3b82f6",color:"#fff",border:"none",cursor:"pointer"},children:"Use plugin"}),c.jsx("button",{onClick:()=>o.setShowPluginRecommendation(!1),className:"w-5 h-5 rounded flex items-center justify-center",style:{color:"var(--text-tertiary)",background:"none",border:"none",cursor:"pointer"},children:c.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[c.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),c.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})]}),c.jsxs("div",{className:"glass-card p-4",children:[c.jsx("h3",{className:"text-[13px] font-semibold mb-3",style:{color:"var(--text-primary)"},children:"Skill Details"}),c.jsxs("div",{className:"mb-3",children:[c.jsxs("label",{className:"text-[11px] font-medium uppercase tracking-wider mb-1 block",style:{color:"var(--text-tertiary)"},children:["Name ",c.jsx("span",{style:{color:"var(--red)"},children:"*"})]}),c.jsx("input",{type:"text",value:o.name,onChange:u=>o.setName(Tc(u.target.value,!1)),placeholder:"my-skill",className:"w-full px-3 py-2 rounded-lg text-[13px]",style:_n})]}),c.jsxs("div",{className:"mb-3",children:[c.jsxs("label",{className:"text-[11px] font-medium uppercase tracking-wider mb-1 block",style:{color:"var(--text-tertiary)"},children:["Description ",c.jsx("span",{style:{color:"var(--red)"},children:"*"})]}),c.jsx("textarea",{value:o.description,onChange:u=>o.setDescription(u.target.value),placeholder:"Brief description",rows:3,className:"w-full px-3 py-2 rounded-lg text-[13px] resize-y",style:{..._n,minHeight:"72px"}})]}),c.jsxs("div",{className:"flex gap-3",children:[c.jsxs("div",{className:"flex-1",children:[c.jsx("label",{className:"text-[11px] font-medium uppercase tracking-wider mb-1 block",style:{color:"var(--text-tertiary)"},children:"Model"}),c.jsxs("select",{value:o.model,onChange:u=>o.setModel(u.target.value),className:"w-full px-3 py-2 rounded-lg text-[13px]",style:_n,children:[c.jsx("option",{value:"",children:"Any"}),c.jsx("option",{value:"opus",children:"Opus"}),c.jsx("option",{value:"sonnet",children:"Sonnet"}),c.jsx("option",{value:"haiku",children:"Haiku"})]})]}),c.jsxs("div",{className:"flex-1",children:[c.jsx("label",{className:"text-[11px] font-medium uppercase tracking-wider mb-1 block",style:{color:"var(--text-tertiary)"},children:"Allowed Tools"}),c.jsx("input",{type:"text",value:o.allowedTools,onChange:u=>o.setAllowedTools(u.target.value),placeholder:"Read, Write, Edit...",className:"w-full px-3 py-2 rounded-lg text-[13px]",style:_n})]})]})]}),c.jsxs("div",{className:"glass-card p-4",children:[c.jsxs("div",{className:"flex items-center justify-between mb-3",children:[c.jsxs("div",{className:"flex items-center gap-2.5",children:[c.jsx("div",{className:"w-7 h-7 rounded-lg flex items-center justify-center",style:{background:"var(--accent-muted)"},children:c.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),c.jsx("polyline",{points:"14 2 14 8 20 8"}),c.jsx("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),c.jsx("line",{x1:"16",y1:"17",x2:"8",y2:"17"})]})}),c.jsxs("div",{children:[c.jsx("span",{className:"text-[13px] font-semibold",style:{color:"var(--text-primary)"},children:"SKILL.md"}),c.jsx("span",{className:"text-[11px] ml-2",style:{color:"var(--text-tertiary)"},children:"Skill Definition"})]})]}),c.jsx("div",{className:"flex items-center",style:{background:"var(--surface-2)",borderRadius:8,padding:2,gap:1},children:["write","preview"].map(u=>c.jsxs("button",{onClick:()=>o.setBodyViewMode(u),className:"flex items-center gap-1 rounded-md transition-all duration-150",style:{padding:"4px 10px",background:o.bodyViewMode===u?"var(--surface-4)":"transparent",color:o.bodyViewMode===u?"var(--text-primary)":"var(--text-tertiary)",fontSize:11,fontWeight:o.bodyViewMode===u?600:400,border:"none",cursor:"pointer"},children:[u==="write"?c.jsxs("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("polyline",{points:"16 18 22 12 16 6"}),c.jsx("polyline",{points:"8 6 2 12 8 18"})]}):c.jsxs("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),c.jsx("circle",{cx:"12",cy:"12",r:"3"})]}),c.jsx("span",{children:u==="write"?"Write":"Preview"})]},u))})]}),o.bodyViewMode==="write"?c.jsx("textarea",{value:o.body,onChange:u=>o.setBody(u.target.value),placeholder:`# /my-skill
|
|
63
63
|
|
|
64
64
|
You are an expert at...
|
|
65
|
-
`,rows:8,className:"w-full px-3 py-2 rounded-lg text-[13px] font-mono resize-y",style:{..._n,minHeight:"150px"}}):o.body.trim()?c.jsx("div",{className:"text-[13px] leading-relaxed overflow-x-auto rounded-lg px-4 py-3",style:{background:"var(--surface-0)",color:"var(--text-secondary)",border:"1px solid var(--border-subtle)",minHeight:"150px",maxHeight:"400px",overflowY:"auto"},dangerouslySetInnerHTML:{__html:q1(o.body)}}):c.jsx("div",{className:"text-[13px] leading-relaxed overflow-x-auto rounded-lg px-4 py-3",style:{background:"var(--surface-0)",color:"var(--text-secondary)",border:"1px solid var(--border-subtle)",minHeight:"150px",maxHeight:"400px",overflowY:"auto"},children:c.jsx("span",{style:{color:"var(--text-tertiary)"},children:"Start writing to see preview"})})]}),c.jsx(K1,{skillName:o.name||"{skill}",hasEvals:!1,isDraft:o.draftSaved}),o.error&&c.jsx("div",{className:"px-4 py-3 rounded-lg text-[13px]",style:{background:"var(--red-muted)",color:"var(--red)",border:"1px solid rgba(248,113,113,0.2)"},children:o.error}),c.jsxs("div",{className:"flex items-center gap-3",children:[c.jsx("button",{onClick:o.handleCreate,disabled:o.creating||!o.name||!o.description,className:"px-5 py-2.5 rounded-lg text-[13px] font-medium transition-all duration-150",style:{background:o.creating||!o.name||!o.description?"var(--surface-3)":"var(--accent)",color:o.creating||!o.name||!o.description?"var(--text-tertiary)":"#fff",cursor:o.creating||!o.name||!o.description?"not-allowed":"pointer",border:"none"},children:o.creating?"Creating...":"Create Skill"}),c.jsx("button",{onClick:i,className:"px-4 py-2.5 rounded-lg text-[13px] font-medium",style:{color:"var(--text-secondary)",background:"none",border:"none",cursor:"pointer"},children:"Cancel"})]})]})]})}function J1(){return c.jsx("div",{className:"w-16 h-16 rounded-2xl flex items-center justify-center",style:{background:"var(--surface-2)"},children:c.jsxs("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"}),c.jsx("polyline",{points:"3.27 6.96 12 12.01 20.73 6.96"}),c.jsx("line",{x1:"12",y1:"22.08",x2:"12",y2:"12"})]})})}function Ms({variant:a,message:i,onRetry:o}){const{setMode:u,setSearch:d}=li(),[m,p]=x.useState(!1);return a==="no-selection"?c.jsxs("div",{className:"flex flex-col items-center justify-center h-full px-8 animate-fade-in",children:[c.jsx("div",{className:"mb-5",children:m?c.jsx(J1,{}):c.jsx("img",{src:"/images/empty-studio.webp",width:128,height:128,alt:"",onError:()=>p(!0),style:{objectFit:"contain"}})}),c.jsx("p",{className:"text-[14px] font-medium mb-1",style:{color:"var(--text-secondary)"},children:"Select a skill to view details"}),c.jsx("p",{className:"text-[12px]",style:{color:"var(--text-tertiary)"},children:"Choose a skill from the list to edit, test, and evaluate"})]}):a==="no-skills"?c.jsxs("div",{className:"text-center py-12 px-4 animate-fade-in-scale",children:[c.jsx("div",{className:"w-14 h-14 rounded-2xl flex items-center justify-center mx-auto mb-4",style:{background:"var(--surface-2)"},children:c.jsx("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:c.jsx("path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"})})}),c.jsx("p",{className:"text-[14px] font-medium",style:{color:"var(--text-secondary)"},children:"No skills found"}),c.jsxs("p",{className:"text-[12px] mt-1 mb-4",style:{color:"var(--text-tertiary)"},children:["Check your ",c.jsx("code",{className:"px-1.5 py-0.5 rounded text-[11px]",style:{background:"var(--surface-2)"},children:"--root"})," directory, or create your first skill"]}),c.jsxs("button",{onClick:()=>u("create"),className:"inline-flex items-center gap-2 px-5 py-2.5 rounded-lg text-[13px] font-medium transition-all duration-150",style:{background:"var(--accent)",color:"#fff",border:"none",cursor:"pointer"},onMouseEnter:y=>{y.currentTarget.style.opacity="0.9"},onMouseLeave:y=>{y.currentTarget.style.opacity="1"},children:[c.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),c.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),"Create Your First Skill"]})]}):a==="error"?c.jsx("div",{className:"flex flex-col items-center justify-center h-full px-8 animate-fade-in",children:c.jsxs("div",{className:"px-5 py-4 rounded-lg text-center max-w-sm",style:{background:"var(--red-muted)",border:"1px solid rgba(248,113,113,0.2)"},children:[c.jsx("p",{className:"text-[13px] mb-3",style:{color:"var(--red)"},children:i||"Failed to load skill data"}),o&&c.jsx("button",{onClick:o,className:"px-4 py-2 rounded-lg text-[12px] font-medium",style:{background:"var(--surface-3)",color:"var(--text-primary)",border:"none",cursor:"pointer"},children:"Retry"})]})}):c.jsxs("div",{className:"px-4 py-8 text-center animate-fade-in",children:[c.jsx("p",{className:"text-[13px] mb-2",style:{color:"var(--text-tertiary)"},children:"No skills match your search"}),c.jsx("button",{onClick:()=>d(""),className:"text-[12px] font-medium",style:{color:"var(--accent)",background:"none",border:"none",cursor:"pointer",textDecoration:"underline"},children:"Clear search"})]})}function $1(a,i){const[o,u]=a.split(".").map(Number),[d,m]=i.split(".").map(Number);return d>o?"major":m>u?"minor":"patch"}const W1={major:{bg:"var(--red-muted)",text:"var(--red)"},minor:{bg:"var(--yellow-muted)",text:"var(--yellow)"},patch:{bg:"var(--green-muted)",text:"var(--green)"}};function F1(){const[a,i]=x.useState([]),[o,u]=x.useState(!0),[d,m]=x.useState(new Set),[p,y]=x.useState(new Map),[g,h]=x.useState(!1),[C,b]=x.useState(new Set),[k,w]=x.useState(null),[R,B]=x.useState(null),[z,E]=x.useState(!1),A=x.useCallback(async()=>{u(!0);try{const D=await lt.getSkillUpdates();i(D.filter(W=>W.updateAvailable))}catch{i([])}finally{u(!1)}},[]);x.useEffect(()=>{A()},[A]);const G=x.useMemo(()=>a.filter(D=>!D.pinned),[a]),$=x.useCallback(D=>{m(W=>{const F=new Set(W);return F.has(D)?F.delete(D):F.add(D),F})},[]),O=x.useCallback(()=>{d.size===G.length?m(new Set):m(new Set(G.map(D=>D.name)))},[d,G]),J=x.useCallback(()=>{const D=[...d];if(!D.length)return;h(!0),y(new Map(D.map(F=>[F,{skill:F,status:"pending"}])));const W=lt.startBatchUpdate(D);W.addEventListener("progress",F=>{try{const de=JSON.parse(F.data);y(ce=>new Map(ce).set(de.skill,de))}catch{}}),W.addEventListener("done",F=>{W.close(),h(!1);try{const de=JSON.parse(F.data);w(`Updated ${de.updated??0} skills, ${de.failed??0} failed`),setTimeout(()=>w(null),5e3)}catch{}A()}),W.addEventListener("error",()=>{W.close(),h(!1),w("Batch update failed"),setTimeout(()=>w(null),5e3)})},[d,A]),T=x.useCallback(D=>{D.name.split("/").pop()||D.name;const W=D.name.split("/"),F=W.length>=3?W[W.length-2]:W[0],de=W[W.length-1];b(P=>new Set(P).add(D.name));const ce=lt.startSkillUpdate(F,de);ce.addEventListener("done",()=>{ce.close(),b(P=>{const re=new Set(P);return re.delete(D.name),re}),A()}),ce.addEventListener("error",()=>{ce.close(),b(P=>{const re=new Set(P);return re.delete(D.name),re})})},[A]),L=x.useCallback(async D=>{if(!D.latest)return;const W=D.name.split("/"),F=W.length>=3?W[W.length-2]:W[0],de=W[W.length-1];E(!0);try{const ce=await lt.getVersionDiff(F,de,D.installed,D.latest);B({skill:D,diff:ce})}catch{B(null)}finally{E(!1)}},[]);return o?c.jsxs("div",{className:"p-6",children:[c.jsx("div",{className:"skeleton h-6 w-48 mb-4"}),c.jsxs("div",{className:"space-y-3",children:[c.jsx("div",{className:"skeleton h-16 rounded-lg"}),c.jsx("div",{className:"skeleton h-16 rounded-lg"})]})]}):a.length===0?c.jsxs("div",{className:"flex flex-col items-center justify-center h-full py-16",children:[c.jsxs("svg",{width:"48",height:"48",viewBox:"0 0 24 24",fill:"none",stroke:"var(--green)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",className:"mb-4",children:[c.jsx("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"}),c.jsx("polyline",{points:"22 4 12 14.01 9 11.01"})]}),c.jsx("div",{className:"text-[15px] font-semibold mb-2",style:{color:"var(--text-primary)"},children:"All skills are up to date"}),c.jsx("div",{className:"text-[12px] mb-4",style:{color:"var(--text-tertiary)"},children:"No updates available for installed skills."}),c.jsx("button",{onClick:A,className:"btn btn-secondary text-[12px]",children:"Refresh"})]}):c.jsxs("div",{className:"p-6",children:[k&&c.jsx("div",{className:"fixed top-4 right-4 z-50 px-4 py-3 rounded-lg text-[13px] font-medium animate-fade-in",style:{background:"var(--surface-3)",color:"var(--text-primary)",border:"1px solid var(--border-subtle)"},children:k}),c.jsxs("div",{className:"flex items-center justify-between mb-5",children:[c.jsxs("div",{className:"text-[16px] font-semibold",style:{color:"var(--text-primary)"},children:["Available Updates (",G.length,")"]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("button",{onClick:A,className:"btn btn-ghost text-[12px]",disabled:g,children:"Refresh"}),c.jsx("button",{onClick:J,disabled:d.size===0||g,className:"btn btn-primary text-[12px]",children:g?"Updating...":`Update Selected (${d.size})`})]})]}),c.jsx("div",{className:"flex items-center gap-2 mb-3",children:c.jsxs("button",{onClick:O,className:"flex items-center gap-2 text-[12px] font-medium",style:{color:"var(--text-secondary)",background:"transparent",border:"none",cursor:"pointer"},children:[c.jsx("span",{className:"w-4 h-4 rounded border flex items-center justify-center",style:{borderColor:d.size===G.length&&G.length>0?"var(--accent)":"var(--border-default)",background:d.size===G.length&&G.length>0?"var(--accent)":"transparent"},children:d.size===G.length&&G.length>0&&c.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"var(--color-paper)",strokeWidth:"3",children:c.jsx("polyline",{points:"20 6 9 17 4 12"})})}),"Select All"]})}),c.jsx("div",{className:"space-y-2",children:a.map(D=>{const W=D.name.split("/").pop()||D.name,F=D.latest?$1(D.installed,D.latest):"patch",de=W1[F],ce=!!D.pinned,P=C.has(D.name),re=p.get(D.name),_=d.has(D.name);return c.jsx("div",{className:"rounded-lg px-4 py-3 transition-all duration-150",style:{background:"var(--surface-1)",border:"1px solid var(--border-subtle)",opacity:ce?.7:1},children:c.jsxs("div",{className:"flex items-center gap-3",children:[c.jsx("button",{onClick:()=>!ce&&$(D.name),disabled:ce,className:"flex-shrink-0",style:{background:"transparent",border:"none",cursor:ce?"not-allowed":"pointer"},children:c.jsx("span",{className:"w-4 h-4 rounded border flex items-center justify-center",style:{borderColor:_?"var(--accent)":"var(--border-default)",background:_?"var(--accent)":"transparent",opacity:ce?.4:1},children:_&&c.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"var(--color-paper)",strokeWidth:"3",children:c.jsx("polyline",{points:"20 6 9 17 4 12"})})})}),c.jsxs("div",{className:"flex-1 min-w-0",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-0.5",children:[c.jsx("span",{className:"text-[13px] font-medium",style:{color:"var(--text-primary)"},children:W}),ce&&c.jsx("span",{className:"text-[10px]",title:"Pinned — unpin from CLI to update",children:"📌"}),c.jsx("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full",style:{background:de.bg,color:de.text},children:F})]}),c.jsxs("div",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:[D.installed," → ",D.latest||"?",ce&&` (pinned at ${D.pinnedVersion||D.installed})`]})]}),re&&c.jsxs("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full",style:{background:re.status==="done"?"var(--green-muted)":re.status==="error"?"var(--red-muted)":"var(--yellow-muted)",color:re.status==="done"?"var(--green)":re.status==="error"?"var(--red)":"var(--yellow)"},children:[re.status,re.error&&`: ${re.error}`]}),c.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[c.jsx("button",{onClick:()=>L(D),className:"btn btn-ghost text-[11px]",disabled:z,children:"View Changes"}),c.jsx("button",{onClick:()=>T(D),disabled:ce||P||g,title:ce?"Pinned — unpin from CLI to update":"",className:`btn ${ce?"btn-ghost":"btn-primary"} text-[11px]`,children:P?c.jsxs("span",{className:"flex items-center gap-1",children:[c.jsx("span",{className:"spinner spinner-sm"})," Updating"]}):(re==null?void 0:re.status)==="done"?c.jsx("span",{style:{color:"var(--green)"},children:"✓"}):"Update"})]})]})},D.name)})}),R&&c.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center",style:{background:"rgba(0,0,0,0.5)"},onClick:()=>B(null),children:c.jsxs("div",{style:{width:"80%",maxWidth:900},onClick:D=>D.stopPropagation(),children:[c.jsx("div",{className:"mb-2 flex justify-end",children:c.jsx("button",{onClick:()=>B(null),className:"btn btn-ghost text-[12px]",children:"Close"})}),c.jsx(Cy,{contentDiff:R.diff.contentDiff,fromLabel:R.diff.from,toLabel:R.diff.to,diffSummary:R.diff.diffSummary,renderContext:"inline"})]})})]})}function P1(a){return a==null?"var(--text-tertiary)":a>=.7?"var(--green)":a>=.4?"var(--yellow)":"var(--red)"}function eb(a){return a==null?"var(--surface-3)":a>=.7?"var(--green-muted)":a>=.4?"var(--yellow-muted)":"var(--red-muted)"}const tb={sectionOwn:"Own",sectionInstalled:"Installed",searchPlaceholder:"Search skills",searchShortcutHint:"Press / to search",emptyOwnHeadline:"No skills yet.",emptyOwnBody:"Run vskill new <name> to create one.",emptyInstalledHeadline:"No installed skills.",emptyInstalledBody:"Run vskill install <plugin> to add one.",emptyFilteredHeadline:"No matches in this section.",emptyFilteredBody:"Clear the search or try another query.",loadErrorHeadline:"Couldn't load skills.",loadErrorRetry:"Retry",duplicateBadge:"synced from Own",updateAvailableBadge:"Update available",countBadgeFiltered:(a,i)=>`${a} of ${i}`},lb={appTitle:"Skill Studio",commandPaletteButtonLabel:"Open command palette",commandPaletteHint:"⌘K",themeToggleLight:"Switch to light theme",themeToggleDark:"Switch to dark theme",themeToggleAuto:"Switch to auto theme",projectPathLabel:"Project",modelLabel:"Model",healthLabel:"Health"},nb={tabOverview:"Overview",tabVersions:"Versions",tabBenchmark:"Benchmark",emptyHeadline:"Select a skill to see details.",emptyBody:"Pick one from the sidebar.",loadErrorHeadline:a=>`Couldn't load SKILL.md for ${a}.`,loadErrorBody:"Check the file path and your workspace permissions.",openInEditor:"Open in editor",copyPath:"Copy path",copyConfigSnippet:"Copy config snippet",depNotInstalledTooltip:"Not installed",missingValue:"—",announceViewingOwn:a=>`Viewing ${a} (Own)`,announceViewingInstalled:a=>`Viewing ${a} (Installed)`,moreFields:"More fields",sourceAgent:"Source agent",noMcpDependencies:"No MCP dependencies.",filesystemGroup:"Filesystem",benchmarkGroup:"Benchmark",metadataGroup:"Frontmatter"},ab={open:"Open",copyPath:"Copy Path",revealInEditor:"Reveal in Editor",edit:"Edit",duplicate:"Duplicate",runBenchmark:"Run Benchmark",update:"Update",uninstall:"Uninstall",retry:"Retry",editPlaceholder:"Edit lands with 0675. Open the file in your editor."},ib={inputPlaceholder:"Type a command or search",emptyResults:"No matches. Try a different query.",groupNavigation:"Navigation",groupActions:"Actions",groupTheme:"Theme",actionSelectSkill:"Select skill",actionRunBenchmark:"Run benchmark",actionSwitchTheme:"Switch theme",actionNewSkill:"New skill",closeLabel:"Close palette"},rb={title:"Keyboard shortcuts",closeLabel:"Close shortcuts",groupNavigation:"Navigation",groupActions:"Actions",groupTheme:"Theme",search:"Focus search",moveDown:"Move selection down",moveUp:"Move selection up",openSelected:"Open selected skill",openPalette:"Open command palette",openShortcuts:"Open this cheatsheet",toggleSidebar:"Toggle sidebar",toggleTheme:"Toggle theme"},sb={pathCopied:"Path copied.",configCopied:"Config copied.",skillDuplicated:"Skill duplicated.",benchmarkQueued:"Benchmark queued.",themeUpdated:"Theme updated.",skillUpdated:"Skill updated.",actionFailed:"Action failed. Retry or check logs.",networkError:"Network error. Check your connection.",permissionDenied:"Permission denied. Check file access.",unknownError:"Something went wrong. Retry or check logs."},ob={disconnected:"Disconnected — reconnecting…",reconnected:"Reconnected.",loading:"Loading skills…",loadingPlaceholderCount:"—"},ub={fieldRequired:"This field is required.",nameInvalid:"Use letters, numbers, and hyphens.",descriptionRequired:"Description is required.",saveFailed:"Save failed. Check the form for errors."},cb={boundaryHeadline:"Something broke in this view.",boundaryBody:"Reload the page to recover.",boundaryAction:"Reload"},ut={sidebar:tb,shell:lb,detail:nb,actions:ab,palette:ib,shortcuts:rb,toasts:sb,connection:ob,forms:ub,errors:cb};function Th(a,i="info"){typeof window>"u"||window.dispatchEvent(new CustomEvent("studio:toast",{detail:{message:a,severity:i}}))}function wy(a){return a.skill?fb({skill:a.skill}):mb({state:a.state,isReadOnly:a.isReadOnly,onDelete:a.onDelete})}function db(a,i=48){if(a.length<=i)return a;const o=a.slice(0,12),u=a.slice(a.length-(i-12-1));return`${o}…${u}`}function fb({skill:a}){const[i,o]=x.useState(!1),u=x.useCallback(async()=>{var p;try{await((p=navigator.clipboard)==null?void 0:p.writeText(a.dir)),o(!0),setTimeout(()=>o(!1),1500),Th(ut.toasts.pathCopied,"info")}catch{Th(ut.toasts.permissionDenied,"error")}},[a.dir]),d=a.origin==="installed"?"Installed":"Own",m=a.origin==="installed"?"var(--status-installed)":"var(--status-own)";return c.jsxs("div",{"data-testid":"detail-header",style:{background:"var(--bg-surface)",border:"1px solid var(--border-default)",borderRadius:8,padding:"14px 16px",boxShadow:"none"},children:[c.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,fontFamily:"var(--font-sans)",fontSize:12,color:"var(--text-secondary)",marginBottom:4},children:[c.jsx("span",{"data-testid":"detail-header-plugin",children:a.plugin}),c.jsx("span",{"aria-hidden":"true",style:{color:"var(--text-secondary)"},children:"›"}),c.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:6,color:"var(--text-secondary)",fontSize:11,letterSpacing:.3,textTransform:"uppercase"},children:[c.jsx("span",{"data-origin-dot":a.origin,"aria-label":`Origin: ${d}`,style:{display:"inline-block",width:7,height:7,borderRadius:999,background:m}}),d]})]}),c.jsxs("div",{style:{display:"flex",alignItems:"baseline",justifyContent:"space-between",gap:12,marginBottom:8},children:[c.jsx("h2",{"data-testid":"detail-header-name",style:{fontFamily:"var(--font-serif)",fontSize:20,fontWeight:500,lineHeight:1.25,color:"var(--text-primary)",margin:0},children:a.skill}),c.jsx("span",{"data-testid":"detail-header-version",style:{fontFamily:"var(--font-sans)",fontVariantNumeric:"tabular-nums",fontSize:12,color:"var(--text-secondary)",whiteSpace:"nowrap"},children:a.version??"—"})]}),c.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[c.jsx("button",{type:"button","data-testid":"detail-header-path-chip",title:a.dir,"aria-label":`Copy path ${a.dir} to clipboard`,onClick:u,style:{display:"inline-flex",alignItems:"center",padding:"2px 8px",border:"1px solid var(--border-default)",borderRadius:4,background:"transparent",fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-secondary)",maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",cursor:"pointer"},children:db(a.dir||"—")}),c.jsxs("button",{"data-testid":"detail-header-copy-path",type:"button",onClick:u,"aria-label":"Copy skill path to clipboard",style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",background:"transparent",border:"1px solid var(--border-default)",borderRadius:4,color:"var(--text-secondary)",fontFamily:"var(--font-sans)",fontSize:11,cursor:"pointer"},children:[c.jsxs("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),c.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),i?"Copied":"Copy"]})]})]})}function mb({state:a,isReadOnly:i,onDelete:o}){const{plugin:u,skill:d,evals:m,latestBenchmark:p,isDirty:y,caseRunStates:g,regressions:h,iterationCount:C}=a,b=Array.from(g.values()).some(E=>E.status==="running"||E.status==="queued"),k=p==null?void 0:p.overall_pass_rate,w=(m==null?void 0:m.evals.reduce((E,A)=>E+A.assertions.length,0))??0,R=(m==null?void 0:m.evals.length)??0,B=P1(k),z=eb(k);return c.jsxs("div",{className:"flex items-center justify-between px-4 py-2.5",style:{borderBottom:"1px solid var(--border-subtle)",background:"var(--surface-1)",flexShrink:0},children:[c.jsxs("div",{className:"flex items-center gap-2 text-[13px]",children:[c.jsx("span",{style:{color:"var(--text-tertiary)"},children:u}),c.jsx(pb,{}),c.jsx("span",{className:"font-medium",style:{color:"var(--text-primary)"},children:d}),i&&c.jsxs("span",{className:"ml-2 flex items-center gap-1 text-[10px] font-semibold uppercase tracking-wider px-1.5 py-0.5 rounded",style:{background:"var(--surface-3)",color:"var(--text-tertiary)"},children:[c.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),c.jsx("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]}),"installed"]}),y&&c.jsx("span",{className:"ml-2 text-[10px] font-semibold uppercase tracking-wider px-1.5 py-0.5 rounded",style:{background:"var(--yellow-muted)",color:"var(--yellow)"},children:"unsaved"}),b&&c.jsxs("span",{className:"ml-2 flex items-center gap-1.5 text-[11px]",style:{color:"var(--accent)"},children:[c.jsx("span",{className:"spinner",style:{width:12,height:12,borderWidth:1.5}}),"Running..."]})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[!i&&o&&c.jsx("button",{disabled:b,onClick:()=>{window.confirm(`Delete skill "${d}"? This cannot be undone.`)&&o()},title:"Delete skill",className:"flex items-center justify-center transition-colors duration-150",style:{background:"none",border:"none",cursor:b?"not-allowed":"pointer",color:"var(--text-tertiary)",padding:4,opacity:b?.4:1,borderRadius:4},onMouseEnter:E=>{b||(E.currentTarget.style.color="var(--red)")},onMouseLeave:E=>{E.currentTarget.style.color="var(--text-tertiary)"},children:c.jsx(hb,{})}),h.length>0&&c.jsxs("span",{className:"pill",style:{background:"var(--red-muted)",color:"var(--red)"},children:[c.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:[c.jsx("path",{d:"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"}),c.jsx("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),c.jsx("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]}),h.length," regression",h.length>1?"s":""]}),C>0&&c.jsxs("span",{className:"pill",style:{background:"var(--purple-muted)",color:"var(--purple)"},children:["Iter ",C]}),c.jsx("span",{className:"pill",style:{background:z,color:B},children:k!=null?`${Math.round(k*100)}%`:"--"}),c.jsxs("span",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:[R," case",R!==1?"s":""," / ",w," assert",w!==1?"s":""]})]})]})}function pb(){return c.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"2",children:c.jsx("polyline",{points:"9 18 15 12 9 6"})})}function hb(){return c.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("polyline",{points:"3 6 5 6 21 6"}),c.jsx("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"}),c.jsx("line",{x1:"10",y1:"11",x2:"10",y2:"17"}),c.jsx("line",{x1:"14",y1:"11",x2:"14",y2:"17"})]})}const yb=[{id:"amp",displayName:"Amp",localSkillsDir:".amp/skills",globalSkillsDir:"~/.config/agents/skills",isUniversal:!0,detectInstalled:"which amp",parentCompany:"Sourcegraph",featureSupport:{slashCommands:!0,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"cline",displayName:"Cline",localSkillsDir:".cline/skills",globalSkillsDir:"~/.cline/skills",isUniversal:!0,detectInstalled:"which cline",parentCompany:"Cline",featureSupport:{slashCommands:!0,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"codex",displayName:"Codex CLI",localSkillsDir:".codex/skills",globalSkillsDir:"~/.codex/skills",isUniversal:!0,detectInstalled:"which codex",parentCompany:"OpenAI",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"cursor",displayName:"Cursor",localSkillsDir:".cursor/skills",globalSkillsDir:"~/.cursor/skills",isUniversal:!0,detectInstalled:"which cursor",parentCompany:"Anysphere",featureSupport:{slashCommands:!0,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"gemini-cli",displayName:"Gemini CLI",localSkillsDir:".gemini/skills",globalSkillsDir:"~/.gemini/skills",isUniversal:!0,detectInstalled:"which gemini",parentCompany:"Google",featureSupport:{slashCommands:!1,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"github-copilot",displayName:"GitHub Copilot",localSkillsDir:".github/copilot/skills",globalSkillsDir:"~/.copilot/skills",isUniversal:!0,detectInstalled:"which github-copilot",parentCompany:"GitHub (Microsoft)",featureSupport:{slashCommands:!0,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"kimi-cli",displayName:"Kimi CLI",localSkillsDir:".kimi/skills",globalSkillsDir:"~/.config/agents/skills",isUniversal:!0,detectInstalled:"which kimi",parentCompany:"Moonshot AI",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"opencode",displayName:"OpenCode",localSkillsDir:".opencode/skills",globalSkillsDir:"~/.config/opencode/skills",isUniversal:!0,detectInstalled:"which opencode",parentCompany:"Community",featureSupport:{slashCommands:!1,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"antigravity",displayName:"Antigravity",localSkillsDir:".agent/skills",globalSkillsDir:"~/.gemini/antigravity/skills",isUniversal:!1,detectInstalled:"which antigravity",parentCompany:"Google",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"augment",displayName:"Augment Code",localSkillsDir:".augment/skills",globalSkillsDir:"~/.augment/skills",isUniversal:!1,detectInstalled:"which augment",parentCompany:"Augment",featureSupport:{slashCommands:!0,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"claude-code",displayName:"Claude Code",localSkillsDir:".claude/skills",globalSkillsDir:"~/.claude/skills",isUniversal:!1,detectInstalled:"which claude",parentCompany:"Anthropic",featureSupport:{slashCommands:!0,hooks:!0,mcp:!0,customSystemPrompt:!0},pluginCacheDir:"~/.claude/plugins/cache",pluginMarketplaceDir:"~/.claude/plugins/marketplaces"},{id:"openclaw",displayName:"OpenClaw",localSkillsDir:".openclaw/skills",globalSkillsDir:"~/.openclaw/skills",isUniversal:!1,detectInstalled:"which openclaw",parentCompany:"Community",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"replit",displayName:"Replit Agent",localSkillsDir:".replit/skills",globalSkillsDir:"~/.config/agents/skills",isUniversal:!1,detectInstalled:"which replit",parentCompany:"Replit",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"codebuddy",displayName:"CodeBuddy",localSkillsDir:".codebuddy/skills",globalSkillsDir:"~/.codebuddy/skills",isUniversal:!1,detectInstalled:"which codebuddy",parentCompany:"CodeBuddy",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"command-code",displayName:"Command Code",localSkillsDir:".commandcode/skills",globalSkillsDir:"~/.commandcode/skills",isUniversal:!1,detectInstalled:"which command-code",parentCompany:"Command",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"continue",displayName:"Continue",localSkillsDir:".continue/skills",globalSkillsDir:"~/.continue/skills",isUniversal:!1,detectInstalled:"which continue",parentCompany:"Continue",featureSupport:{slashCommands:!0,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"crush",displayName:"Crush",localSkillsDir:".crush/skills",globalSkillsDir:"~/.config/crush/skills",isUniversal:!1,detectInstalled:"which crush",parentCompany:"Crush",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"droid",displayName:"Droid (Factory)",localSkillsDir:".factory/skills",globalSkillsDir:"~/.factory/skills",isUniversal:!1,detectInstalled:"which droid",parentCompany:"Factory",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"goose",displayName:"Goose",localSkillsDir:".goose/skills",globalSkillsDir:"~/.config/goose/skills",isUniversal:!1,detectInstalled:"which goose",parentCompany:"Block",featureSupport:{slashCommands:!1,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"junie",displayName:"Junie",localSkillsDir:".junie/skills",globalSkillsDir:"~/.junie/skills",isUniversal:!1,detectInstalled:"which junie",parentCompany:"JetBrains",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"iflow-cli",displayName:"iFlow CLI",localSkillsDir:".iflow/skills",globalSkillsDir:"~/.iflow/skills",isUniversal:!1,detectInstalled:"which iflow",parentCompany:"iFlow",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"kilo",displayName:"Kilo Code",localSkillsDir:".kilocode/skills",globalSkillsDir:"~/.kilocode/skills",isUniversal:!1,detectInstalled:"which kilocode",parentCompany:"Kilo Code",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"kiro-cli",displayName:"Kiro CLI",localSkillsDir:".kiro/skills",globalSkillsDir:"~/.kiro/skills",isUniversal:!1,detectInstalled:"which kiro",parentCompany:"Amazon",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"kode",displayName:"Kode",localSkillsDir:".kode/skills",globalSkillsDir:"~/.kode/skills",isUniversal:!1,detectInstalled:"which kode",parentCompany:"Kode",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"mcpjam",displayName:"MCPJam",localSkillsDir:".mcpjam/skills",globalSkillsDir:"~/.mcpjam/skills",isUniversal:!1,detectInstalled:"which mcpjam",parentCompany:"MCPJam",featureSupport:{slashCommands:!1,hooks:!1,mcp:!0,customSystemPrompt:!1}},{id:"mistral-vibe",displayName:"Mistral Vibe",localSkillsDir:".vibe/skills",globalSkillsDir:"~/.vibe/skills",isUniversal:!1,detectInstalled:"which vibe",parentCompany:"Mistral AI",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"mux",displayName:"Mux",localSkillsDir:".mux/skills",globalSkillsDir:"~/.mux/skills",isUniversal:!1,detectInstalled:"which mux",parentCompany:"Mux",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"openhands",displayName:"OpenHands",localSkillsDir:".openhands/skills",globalSkillsDir:"~/.openhands/skills",isUniversal:!1,detectInstalled:"which openhands",parentCompany:"All Hands AI",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"pi",displayName:"Pi",localSkillsDir:".pi/skills",globalSkillsDir:"~/.pi/agent/skills",isUniversal:!1,detectInstalled:"which pi",parentCompany:"Pi",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"qoder",displayName:"Qoder",localSkillsDir:".qoder/skills",globalSkillsDir:"~/.qoder/skills",isUniversal:!1,detectInstalled:"which qoder",parentCompany:"Qoder",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"qwen-code",displayName:"Qwen Code",localSkillsDir:".qwen/skills",globalSkillsDir:"~/.qwen/skills",isUniversal:!1,detectInstalled:"which qwen-code",parentCompany:"Alibaba",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"roo",displayName:"Roo Code",localSkillsDir:".roo/skills",globalSkillsDir:"~/.roo/skills",isUniversal:!1,detectInstalled:"which roo",parentCompany:"Roo",featureSupport:{slashCommands:!0,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"trae",displayName:"Trae",localSkillsDir:".trae/skills",globalSkillsDir:"~/.trae/skills",isUniversal:!1,detectInstalled:"which trae",parentCompany:"ByteDance",featureSupport:{slashCommands:!1,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"trae-cn",displayName:"Trae CN",localSkillsDir:".trae-cn/skills",globalSkillsDir:"~/.trae-cn/skills",isUniversal:!1,detectInstalled:"which trae-cn",parentCompany:"ByteDance",featureSupport:{slashCommands:!1,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"windsurf",displayName:"Windsurf",localSkillsDir:".windsurf/skills",globalSkillsDir:"~/.codeium/windsurf/skills",isUniversal:!1,detectInstalled:"which windsurf",parentCompany:"Codeium",featureSupport:{slashCommands:!0,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"zencoder",displayName:"ZenCoder",localSkillsDir:".zencoder/skills",globalSkillsDir:"~/.zencoder/skills",isUniversal:!1,detectInstalled:"which zencoder",parentCompany:"ZenCoder",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"neovate",displayName:"Neovate",localSkillsDir:".neovate/skills",globalSkillsDir:"~/.neovate/skills",isUniversal:!1,detectInstalled:"which neovate",parentCompany:"Neovate",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"pochi",displayName:"Pochi",localSkillsDir:".pochi/skills",globalSkillsDir:"~/.pochi/skills",isUniversal:!1,detectInstalled:"which pochi",parentCompany:"Pochi",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"adal",displayName:"Adal",localSkillsDir:".adal/skills",globalSkillsDir:"~/.adal/skills",isUniversal:!1,detectInstalled:"which adal",parentCompany:"Adal",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"cortex",displayName:"Cortex",localSkillsDir:".cortex/skills",globalSkillsDir:"~/.snowflake/cortex/skills",isUniversal:!1,detectInstalled:"which cortex",parentCompany:"Cortex",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"aider",displayName:"Aider",localSkillsDir:".aider/skills",globalSkillsDir:"~/.aider/skills",isUniversal:!1,detectInstalled:"which aider",parentCompany:"Aider",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"tabnine",displayName:"Tabnine Chat",localSkillsDir:".tabnine/skills",globalSkillsDir:"~/.tabnine/skills",isUniversal:!1,detectInstalled:"which tabnine",parentCompany:"Tabnine",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"devin",displayName:"Devin",localSkillsDir:".devin/skills",globalSkillsDir:"~/.devin/skills",isUniversal:!1,detectInstalled:"which devin",parentCompany:"Cognition",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"bolt-new",displayName:"bolt.new",localSkillsDir:".bolt/skills",globalSkillsDir:"~/.bolt/skills",isUniversal:!1,detectInstalled:"which bolt",parentCompany:"StackBlitz",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"v0",displayName:"v0",localSkillsDir:".v0/skills",globalSkillsDir:"~/.v0/skills",isUniversal:!1,detectInstalled:"which v0",parentCompany:"Vercel",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"gpt-pilot",displayName:"GPT Pilot",localSkillsDir:".gpt-pilot/skills",globalSkillsDir:"~/.gpt-pilot/skills",isUniversal:!1,detectInstalled:"which gpt-pilot",parentCompany:"Pythagora",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"plandex",displayName:"Plandex",localSkillsDir:".plandex/skills",globalSkillsDir:"~/.plandex/skills",isUniversal:!1,detectInstalled:"which plandex",parentCompany:"Plandex",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"sweep",displayName:"Sweep",localSkillsDir:".sweep/skills",globalSkillsDir:"~/.sweep/skills",isUniversal:!1,detectInstalled:"which sweep",parentCompany:"Sweep AI",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"mentat",displayName:"Mentat",localSkillsDir:".mentat/skills",globalSkillsDir:"~/.mentat/skills",isUniversal:!1,detectInstalled:"which mentat",parentCompany:"AbanteAI",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}}],ii={fontFamily:"var(--font-serif)",fontSize:15,fontWeight:500,color:"var(--text-primary)",margin:"0 0 8px",letterSpacing:.1},ri={background:"var(--bg-surface)",border:"1px solid var(--border-default)",borderRadius:8,padding:"14px 16px",boxShadow:"none"},gb={fontFamily:"var(--font-sans)",fontSize:11,color:"var(--text-secondary)",textTransform:"uppercase",letterSpacing:.4},Ay={fontFamily:"var(--font-sans)",fontSize:13,color:"var(--text-primary)"},Ny={fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text-primary)",wordBreak:"break-all"},ei={fontFamily:"var(--font-sans)",fontSize:13,color:"var(--text-primary)",fontVariantNumeric:"tabular-nums"},vb={fontFamily:"var(--font-sans)",fontSize:13,color:"var(--text-secondary)"},xb={fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text-primary)",overflowWrap:"anywhere",wordBreak:"break-word"},bb={Description:"Add `description:` to the SKILL.md frontmatter to display a value here.",Version:"Add `version:` to the SKILL.md frontmatter to display a value here.",Category:"Add `category:` to the SKILL.md frontmatter to display a value here.",Author:"Add `author:` to the SKILL.md frontmatter to display a value here.",License:"Add `license:` to the SKILL.md frontmatter to display a value here.",Homepage:"Add `homepage:` to the SKILL.md frontmatter to display a value here.",Tags:"Add `tags:` to the SKILL.md frontmatter to display a value here.",Directory:"Filesystem location of this skill — not configurable via SKILL.md.","Entry point":"Add `entry-point:` to the SKILL.md frontmatter to customize; defaults to SKILL.md.","Last modified":"Filesystem mtime — updates automatically on save.","Last benchmark":"Shown after the first benchmark run completes."};function Sb(a){if(a==null||!Number.isFinite(a))return"—";if(a<1024)return`${a} B`;const i=a/1024;if(i<1024)return i>=10?`${Math.round(i)} KB`:`${i.toFixed(1).replace(/\.0$/,"")} KB`;const o=i/1024;return o>=10?`${Math.round(o)} MB`:`${o.toFixed(1).replace(/\.0$/,"")} MB`}function Ry(a){if(!a)return"—";const i=new Date(a);if(Number.isNaN(i.getTime()))return a;const o=Date.now()-i.getTime(),u=Math.floor(o/1e3);if(u<60)return"just now";const d=Math.floor(u/60);if(d<60)return`${d} min ago`;const m=Math.floor(d/60);if(m<24)return`${m} hr ago`;const p=Math.floor(m/24);if(p<30)return`${p} day${p===1?"":"s"} ago`;const y=Math.floor(p/30);if(y<12)return`${y} month${y===1?"":"s"} ago`;const g=Math.floor(y/12);return`${g} year${g===1?"":"s"} ago`}function Eb(a){const i=yb.find(o=>o.id===a);return(i==null?void 0:i.displayName)??a}function ti(a){const i=a?bb[a]:void 0;return c.jsx("span",{style:vb,title:i,children:"—"})}function cl(a,i,o){return c.jsxs("div",{style:{display:"grid",gridTemplateColumns:"130px 1fr",alignItems:"baseline",gap:12,padding:"6px 0"},children:[c.jsx("span",{style:gb,children:a}),c.jsx("span",{style:{minWidth:0},children:i})]},a)}function Wa(a,i,o={}){if(i==null||i==="")return cl(a,ti(a));if(o.path)return cl(a,c.jsx("span",{"data-path-value":"true",style:xb,children:i}));const u=o.tabular?ei:o.mono?Ny:Ay;return cl(a,c.jsx("span",{style:u,children:i}))}function Tb({skill:a,allSkills:i=[],onSelectSkill:o}){return c.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:16},children:[Cb(a),a.origin==="installed"?jb(a):null,kb(a),Ab(a),Nb(a),zb(a,i,o)]})}function Cb(a){const i=a.homepage?c.jsxs("a",{href:a.homepage,target:"_blank",rel:"noopener noreferrer","data-external-link":"homepage",style:{...Ny,color:"var(--text-accent)",textDecoration:"none",display:"inline-flex",alignItems:"center",gap:4},onMouseEnter:u=>{u.currentTarget.style.textDecoration="underline"},onMouseLeave:u=>{u.currentTarget.style.textDecoration="none"},children:[c.jsx("span",{children:a.homepage}),c.jsx("span",{"aria-hidden":"true",style:{fontSize:11,color:"var(--text-accent)"},children:"↗"})]}):ti("Homepage"),o=a.tags&&a.tags.length>0?c.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:a.tags.map(u=>c.jsx("span",{"data-chip":"tag",style:{fontFamily:"var(--font-sans)",fontSize:11,padding:"2px 8px",border:"1px solid var(--border-default)",borderRadius:999,color:"var(--text-secondary)",background:"transparent"},children:u},u))}):ti("Tags");return c.jsxs("section",{style:ri,"aria-labelledby":"md-frontmatter",children:[c.jsx("h3",{id:"md-frontmatter",style:ii,children:"Frontmatter"}),Wa("Description",a.description??null),Wa("Version",a.version??null,{tabular:!0}),Wa("Category",a.category??null),Wa("Author",a.author??null),Wa("License",a.license??null),cl("Homepage",i),cl("Tags",o)]},"frontmatter")}function jb(a){const i=a.sourceAgent,o=i?c.jsx("span",{style:Ay,"data-agent-id":i,children:Eb(i)}):ti("Agent");return c.jsxs("section",{style:ri,"aria-labelledby":"md-source-agent",children:[c.jsx("h3",{id:"md-source-agent",style:ii,children:"Source agent"}),cl("Agent",o)]},"source-agent")}function kb(a){const i=a.lastModified?c.jsx("span",{style:ei,title:a.lastModified,children:Ry(a.lastModified)}):ti("Last modified"),o=a.entryPoint??"SKILL.md",u=a.dir?`${a.dir.replace(/\/$/,"")}/${o}`:o,d=c.jsx("button",{type:"button","data-entry-chip":"true",title:`Copy ${u}`,"aria-label":`Copy entry-point path ${u} to clipboard`,onClick:()=>wb(u),style:{display:"inline-flex",alignItems:"center",padding:"2px 8px",border:"1px solid var(--border-default)",borderRadius:4,background:"transparent",fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text-primary)",cursor:"pointer",maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:o});return c.jsxs("section",{style:ri,"aria-labelledby":"md-fs",children:[c.jsx("h3",{id:"md-fs",style:ii,children:"Filesystem"}),Wa("Directory",a.dir||null,{path:!0}),cl("Entry point",d),cl("Size",c.jsx("span",{style:ei,children:Sb(a.sizeBytes)})),cl("Last modified",i)]},"filesystem")}function wb(a){var i;try{(i=navigator.clipboard)==null||i.writeText(a)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("studio:toast",{detail:{message:`Copied ${a}`,severity:"info"}}))}function Ab(a){const i=a.benchmarkStatus==="pass"?"var(--status-installed)":a.benchmarkStatus==="fail"?"var(--red, #b54444)":"var(--status-own)",o=c.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:6,fontFamily:"var(--font-sans)",fontSize:13,color:"var(--text-primary)"},children:[c.jsx("span",{"aria-hidden":"true",style:{display:"inline-block",width:7,height:7,borderRadius:999,background:i}}),a.benchmarkStatus]}),u=a.lastBenchmark?c.jsx("span",{style:ei,title:a.lastBenchmark,children:Ry(a.lastBenchmark)}):ti("Last benchmark");return c.jsxs("section",{style:ri,"aria-labelledby":"md-bench",children:[c.jsx("h3",{id:"md-bench",style:ii,children:"Benchmark"}),cl("Eval count",c.jsx("span",{style:ei,children:a.evalCount})),cl("Assertions",c.jsx("span",{style:ei,children:a.assertionCount})),cl("Status",o),cl("Last benchmark",u)]},"benchmark")}function Nb(a){const i=a.mcpDeps??[];return c.jsxs("section",{style:ri,"aria-labelledby":"md-mcp",children:[c.jsx("h3",{id:"md-mcp",style:ii,children:"MCP dependencies"}),i.length===0?c.jsx("p",{style:{fontFamily:"var(--font-sans)",fontSize:12,color:"var(--text-secondary)",margin:0},children:"No MCP dependencies"}):c.jsx("ul",{style:{listStyle:"none",padding:0,margin:0},children:i.map(o=>c.jsxs("li",{"data-mcp-dep":o,style:{display:"flex",alignItems:"center",gap:8,padding:"6px 0",borderBottom:"1px solid var(--border-default)"},children:[c.jsx(Rb,{}),c.jsx("span",{style:{fontFamily:"var(--font-sans)",fontSize:13,color:"var(--text-primary)"},children:o})]},o))})]},"mcp-deps")}function Rb(){return c.jsxs("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",style:{color:"var(--text-secondary)",flexShrink:0},"aria-hidden":"true",children:[c.jsx("path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"}),c.jsx("polyline",{points:"3.27 6.96 12 12.01 20.73 6.96"})]})}function zb(a,i,o){const u=a.deps??[];return c.jsxs("section",{style:ri,"aria-labelledby":"md-skill-deps",children:[c.jsx("h3",{id:"md-skill-deps",style:ii,children:"Skill dependencies"}),u.length===0?c.jsx("p",{style:{fontFamily:"var(--font-sans)",fontSize:12,color:"var(--text-secondary)",margin:0},children:"No skill dependencies"}):c.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:u.map(d=>{const m=_b(d,i),p=m!=null,y={fontFamily:"var(--font-sans)",fontSize:12,padding:"3px 10px",border:"1px solid var(--border-default)",borderRadius:999,color:p?"var(--text-primary)":"var(--text-secondary)",background:"transparent",cursor:p?"pointer":"help"},g=p&&o?()=>o({plugin:m.plugin,skill:m.skill,origin:m.origin}):void 0,h=p&&o?C=>{(C.key==="Enter"||C.key===" ")&&(C.preventDefault(),o({plugin:m.plugin,skill:m.skill,origin:m.origin}))}:void 0;return c.jsx("button",{type:"button","data-chip":"skill-dep","data-present":p?"true":"false",title:p?`Open ${d}`:"Not installed",onClick:g,onKeyDown:h,style:y,children:d},d)})})]},"skill-deps")}function _b(a,i){const[o,u]=a.includes("/")?a.split("/"):["",a];for(const d of i)if(o&&d.plugin===o&&d.skill===u||!o&&d.skill===u)return d;return null}function yc(){const{state:a,setMobileView:i}=li();return a.isMobile?c.jsxs("button",{onClick:()=>i("list"),className:"flex items-center gap-1.5 px-3 py-2 text-[12px] font-medium",style:{background:"var(--surface-1)",color:"var(--text-secondary)",border:"none",borderBottom:"1px solid var(--border-subtle)",cursor:"pointer",width:"100%"},children:[c.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:c.jsx("polyline",{points:"15 18 9 12 15 6"})}),"Back to skills"]}):null}function Mb(a={}){if(a.selectedSkillInfo!==void 0||a.loadError!==void 0)return Db(a);const{state:i,selectSkill:o,setMode:u,refreshSkills:d}=li(),[m,p]=x.useState(typeof window<"u"?window.location.hash:"");if(x.useEffect(()=>{const h=()=>p(window.location.hash);return window.addEventListener("hashchange",h),()=>window.removeEventListener("hashchange",h)},[]),m==="#/updates")return c.jsxs("div",{className:"h-full overflow-auto animate-fade-in",children:[c.jsx(yc,{}),c.jsx(F1,{})]});if(i.mode==="create")return c.jsxs("div",{className:"h-full overflow-auto animate-fade-in",children:[c.jsx(yc,{}),c.jsx(Z1,{onCreated:(h,C)=>{u("browse"),d(),o({plugin:h,skill:C,origin:"source"})},onCancel:()=>u("browse")})]});if(!i.selectedSkill)return i.skillsError?c.jsx(Ms,{variant:"error",message:i.skillsError,onRetry:d}):!i.skillsLoading&&i.skills.length===0?c.jsx(Ms,{variant:"no-skills"}):c.jsx(Ms,{variant:"no-selection"});const y=i.selectedSkill,g=i.skills.find(h=>h.plugin===y.plugin&&h.skill===y.skill)??null;return c.jsxs("div",{className:"flex flex-col h-full",children:[c.jsx(yc,{}),c.jsx(Ob,{skillInfo:g,allSkills:i.skills,onSelectSkill:h=>o(h)})]})}function Db(a){const i=a.selectedSkillInfo??null,o=a.activeDetailTab??"overview";if(i==null)return Ub();if(a.loadError)return Bb(i,a.loadError);const u=a.allSkills&&a.onSelectSkill?{allSkills:a.allSkills,onSelectSkill:a.onSelectSkill}:void 0;return zy(i,o,a.onDetailTabChange,u)}function Ob({skillInfo:a,allSkills:i,onSelectSkill:o}){const[u,d]=x.useState("overview"),m=x.useMemo(()=>a?zy(a,u,d,{allSkills:i,onSelectSkill:o}):c.jsx(Ms,{variant:"no-selection"}),[a,u,i,o]);return c.jsx("div",{className:"flex flex-col h-full",style:{background:"var(--bg-canvas)"},children:m})}const Lb=[{id:"overview",label:"Overview"},{id:"versions",label:"Versions"}];function Hb(a,i){return c.jsx("div",{role:"tablist","aria-label":"Detail sections",style:{display:"flex",alignItems:"stretch",gap:4,borderBottom:"1px solid var(--border-default)",padding:"0 16px",background:"var(--bg-canvas)"},children:Lb.map(o=>{const u=o.id===a;return c.jsx("button",{type:"button",role:"tab","aria-selected":u,tabIndex:u?0:-1,id:`detail-tab-${o.id}`,"aria-controls":`detail-panel-${o.id}`,onClick:()=>i==null?void 0:i(o.id),style:{background:"transparent",border:"none",borderBottom:u?"2px solid var(--text-primary)":"2px solid transparent",padding:"10px 4px",marginBottom:-1,fontFamily:"var(--font-sans)",fontSize:13,fontWeight:u?500:400,color:u?"var(--text-primary)":"var(--text-secondary)",cursor:"pointer"},children:o.label},o.id)})})}function Ub(){return c.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",padding:32,background:"var(--bg-canvas)"},children:[c.jsx("h2",{style:{fontFamily:"var(--font-serif)",fontSize:20,fontWeight:500,color:"var(--text-primary)",margin:0,marginBottom:8},children:"Select a skill to view details"}),c.jsx("p",{style:{fontFamily:"var(--font-sans)",fontSize:13,color:"var(--text-secondary)",margin:0,maxWidth:420,textAlign:"center"},children:"Choose a skill from the sidebar — its frontmatter, filesystem info, and benchmark status will appear here."})]})}function Bb(a,i){return c.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:24,background:"var(--bg-canvas)",height:"100%"},children:[wy({skill:a}),c.jsxs("section",{role:"alert",style:{background:"var(--bg-surface)",border:"1px solid var(--border-default)",borderRadius:8,padding:"14px 16px"},children:[c.jsxs("h3",{style:{fontFamily:"var(--font-serif)",fontSize:15,fontWeight:500,color:"var(--text-primary)",margin:"0 0 8px"},children:["Couldn't load SKILL.md for ",a.skill]}),c.jsx("p",{style:{fontFamily:"var(--font-sans)",fontSize:12,color:"var(--text-secondary)",margin:"0 0 12px",wordBreak:"break-word"},children:i}),c.jsxs("div",{style:{display:"flex",gap:8},children:[c.jsx("button",{type:"button",style:{fontFamily:"var(--font-sans)",fontSize:12,padding:"4px 10px",border:"1px solid var(--border-default)",borderRadius:4,background:"transparent",color:"var(--text-primary)",cursor:"pointer"},children:"Open in editor"}),c.jsx("button",{type:"button",onClick:()=>{var o;return(o=navigator.clipboard)==null?void 0:o.writeText(a.dir)},style:{fontFamily:"var(--font-sans)",fontSize:12,padding:"4px 10px",border:"1px solid var(--border-default)",borderRadius:4,background:"transparent",color:"var(--text-primary)",cursor:"pointer"},children:"Copy path"})]})]})]})}function zy(a,i,o,u){return c.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%",background:"var(--bg-canvas)"},children:[c.jsx("div",{style:{padding:16,paddingBottom:12},children:wy({skill:a})}),Hb(i,o),c.jsxs("div",{role:"tabpanel",id:`detail-panel-${i}`,"aria-labelledby":`detail-tab-${i}`,style:{flex:1,minHeight:0,overflow:"auto"},children:[i==="overview"&&Tb({skill:a,allSkills:(u==null?void 0:u.allSkills)??[],onSelectSkill:u==null?void 0:u.onSelectSkill}),i==="versions"&&u!=null&&c.jsx(_1,{plugin:a.plugin,skill:a.skill,origin:a.origin,children:c.jsx("div",{style:{padding:16},children:c.jsx(L1,{})})},`${a.plugin}/${a.skill}-versions`),i==="versions"&&u==null&&c.jsx("div",{style:{padding:16,fontFamily:"var(--font-sans)",color:"var(--text-secondary)",fontSize:13},children:"Select a skill from the sidebar to load its version history."})]})]})}function Vb(){const{updateCount:a,state:i,dismissUpdateNotification:o}=li(),u=a>0&&!i.updateNotificationDismissed;return x.useEffect(()=>{if(!u)return;const d=setTimeout(()=>o(),1e4);return()=>clearTimeout(d)},[u,o]),u?c.jsxs("div",{className:"fixed bottom-4 right-4 z-50 flex items-center gap-3 px-4 py-3 rounded-lg text-[13px] font-medium animate-fade-in",style:{background:"var(--yellow-muted)",border:"1px solid var(--yellow)",color:"var(--text-primary)"},children:[c.jsxs("span",{children:[a," update",a===1?"":"s"," available"]}),c.jsx("button",{onClick:()=>{window.location.hash="#/updates"},className:"px-2 py-0.5 rounded text-[12px] font-semibold",style:{background:"var(--yellow)",color:"var(--surface-0)",border:"none",cursor:"pointer"},children:"View Updates"}),c.jsx("button",{onClick:o,className:"text-[14px] leading-none",style:{background:"transparent",border:"none",color:"var(--text-secondary)",cursor:"pointer",padding:"0 2px"},"aria-label":"Dismiss",children:"✕"})]}):null}const Ch=x.memo(function({message:i,politeness:o="polite",role:u}){const d=u??(o==="assertive"?"alert":"status");return c.jsx("div",{"aria-live":o,"aria-atomic":"true",role:d,"data-testid":"aria-live","data-politeness":o,style:{position:"absolute",width:1,height:1,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(50%)",whiteSpace:"nowrap",border:0,padding:0,margin:-1},children:i})});function Gb({toast:a,onDismiss:i}){const[o,u]=x.useState(!0),d=x.useRef(null);x.useEffect(()=>(d.current=requestAnimationFrame(()=>{d.current=requestAnimationFrame(()=>u(!1))}),()=>{d.current!=null&&cancelAnimationFrame(d.current)}),[]);const m={success:"var(--status-installed)",info:"var(--text-secondary)",error:"var(--color-accent, var(--accent-surface))"};return c.jsxs("div",{role:a.severity==="error"?"alert":"status","data-testid":"toast-item","data-severity":a.severity,style:{display:"flex",alignItems:"center",gap:12,padding:"10px 12px",minWidth:240,maxWidth:360,background:"var(--bg-canvas)",color:"var(--text-primary)",border:"1px solid var(--border-default)",borderLeft:`3px solid ${m[a.severity]}`,borderRadius:6,boxShadow:"0 8px 24px rgba(0,0,0,0.12)",fontFamily:"var(--font-sans)",fontSize:12,transform:o?"translateY(8px)":"translateY(0)",opacity:o?0:1,transition:"transform var(--duration-base, 180ms) var(--ease-standard, ease), opacity var(--duration-base, 180ms) var(--ease-standard, ease)"},children:[c.jsx("span",{style:{flex:1,minWidth:0},children:a.message}),a.action&&c.jsx("button",{type:"button",onClick:()=>{a.action.onInvoke(),i(a.id)},style:{background:"transparent",border:"1px solid var(--border-default)",borderRadius:4,padding:"3px 8px",color:"var(--text-primary)",cursor:"pointer",fontSize:11,fontFamily:"var(--font-sans)"},children:a.action.label}),c.jsx("button",{type:"button","aria-label":"Dismiss",onClick:()=>i(a.id),style:{background:"transparent",border:"none",padding:2,color:"var(--text-secondary)",cursor:"pointer",fontSize:14,lineHeight:1},children:"×"})]})}function Ib({toasts:a,onDismiss:i,liveMessage:o,liveAssertiveMessage:u}){return c.jsxs(c.Fragment,{children:[c.jsx(Ch,{politeness:"polite",message:o}),c.jsx(Ch,{politeness:"assertive",message:u}),c.jsx("div",{"data-testid":"toast-stack",style:{position:"fixed",right:16,bottom:16,display:"flex",flexDirection:"column-reverse",gap:8,zIndex:50,pointerEvents:"none"},children:a.map(d=>c.jsx("div",{style:{pointerEvents:"auto"},children:c.jsx(Gb,{toast:d,onDismiss:i})},d.id))})]})}const _y=x.createContext(null);function qb(){const a=x.useContext(_y);if(!a)throw new Error("useToast must be used inside <ToastProvider>.");return a}function Yb({children:a,maxVisible:i=4,defaultDurationMs:o=4e3}){const[u,d]=x.useState([]),[m,p]=x.useState(""),[y,g]=x.useState(""),h=x.useRef(new Map),C=x.useCallback(z=>{const E=h.current.get(z);E&&(clearTimeout(E),h.current.delete(z)),d(A=>A.filter(G=>G.id!==z))},[]),b=x.useCallback((z,E)=>{if(E<=0)return;const A=setTimeout(()=>{C(z)},E);h.current.set(z,A)},[C]),k=x.useCallback(z=>{const E=z.id??`toast-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,A={id:E,message:z.message,severity:z.severity??"info",durationMs:z.durationMs??o,action:z.action};return d(G=>[...G,A]),A.severity==="error"?g(A.message):p(A.message),b(E,A.durationMs),E},[o,b]),w=x.useCallback(()=>{for(const z of h.current.values())clearTimeout(z);h.current.clear(),d([])},[]);x.useEffect(()=>{function z(E){E.key==="Escape"&&d(A=>{if(A.length===0)return A;const G=A.slice(0,i),$=G[G.length-1],O=h.current.get($.id);return O&&(clearTimeout(O),h.current.delete($.id)),A.filter(J=>J.id!==$.id)})}return window.addEventListener("keydown",z),()=>window.removeEventListener("keydown",z)},[i]),x.useEffect(()=>()=>{for(const z of h.current.values())clearTimeout(z);h.current.clear()},[]);const R=u.slice(0,i),B=x.useMemo(()=>({toast:k,dismiss:C,clear:w}),[k,C,w]);return c.jsxs(_y.Provider,{value:B,children:[a,c.jsx(Ib,{toasts:R,onDismiss:C,liveMessage:m,liveAssertiveMessage:y})]})}const Xb=[{name:ut.shortcuts.groupNavigation,items:[{keys:"/",label:ut.shortcuts.search},{keys:"j",label:ut.shortcuts.moveDown},{keys:"k",label:ut.shortcuts.moveUp},{keys:"Enter",label:ut.shortcuts.openSelected},{keys:"Esc",label:"Close / clear"}]},{name:ut.shortcuts.groupActions,items:[{keys:"⌘K",label:ut.shortcuts.openPalette},{keys:"?",label:ut.shortcuts.openShortcuts},{keys:"⌘B",label:ut.shortcuts.toggleSidebar},{keys:"E",label:ut.actions.edit}]},{name:ut.shortcuts.groupTheme,items:[{keys:"⌘⇧D",label:ut.shortcuts.toggleTheme}]}];function Qb({open:a,onClose:i,groups:o=Xb,title:u=ut.shortcuts.title}){const d=x.useRef(null),m=x.useRef(null);return x.useEffect(()=>{var p;if(a)return d.current=document.activeElement??null,(p=m.current)==null||p.focus(),()=>{var y,g;(g=(y=d.current)==null?void 0:y.focus)==null||g.call(y),d.current=null}},[a]),x.useEffect(()=>{if(!a)return;function p(y){var g;if(y.key==="Escape"){y.preventDefault(),i();return}y.key==="Tab"&&(y.preventDefault(),(g=m.current)==null||g.focus())}return window.addEventListener("keydown",p,!0),()=>window.removeEventListener("keydown",p,!0)},[a,i]),a?c.jsx("div",{role:"presentation","data-testid":"shortcut-modal",style:{position:"fixed",inset:0,background:"color-mix(in srgb, var(--bg-canvas) 70%, transparent)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:60},onClick:p=>{p.target===p.currentTarget&&i()},children:c.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"shortcut-modal-title",style:{width:"min(480px, 92vw)",maxHeight:"80vh",overflow:"auto",background:"var(--bg-canvas)",border:"1px solid var(--border-default)",borderRadius:8,boxShadow:"0 16px 48px rgba(0,0,0,0.18)",padding:"16px 20px",fontFamily:"var(--font-sans)",color:"var(--text-primary)"},children:[c.jsxs("header",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:12},children:[c.jsx("h2",{id:"shortcut-modal-title",style:{margin:0,fontFamily:"var(--font-serif)",fontWeight:500,fontSize:18},children:u}),c.jsx("button",{ref:m,type:"button","aria-label":"Close",onClick:i,style:{background:"transparent",border:"1px solid var(--border-default)",borderRadius:4,padding:"2px 8px",color:"var(--text-secondary)",cursor:"pointer",fontSize:13},children:"Esc"})]}),o.map(p=>c.jsxs("section",{style:{marginBottom:12},children:[c.jsx("h3",{style:{fontSize:10,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.08em",color:"var(--text-secondary)",margin:"0 0 6px"},children:p.name}),c.jsx("ul",{style:{listStyle:"none",margin:0,padding:0},children:p.items.map(y=>c.jsxs("li",{style:{display:"flex",justifyContent:"space-between",padding:"4px 0",borderTop:"1px solid var(--border-default)",fontSize:13},children:[c.jsx("span",{children:y.label}),c.jsx("kbd",{style:{fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text-secondary)",border:"1px solid var(--border-default)",borderRadius:3,padding:"1px 6px"},children:y.keys})]},`${p.name}:${y.keys}`))})]},p.name))]})}):null}function Kb(a){const i=ut.actions,o=[{action:"open",label:i.open},{action:"copy-path",label:i.copyPath},{action:"reveal",label:i.revealInEditor},{action:"run-benchmark",label:i.runBenchmark}];if(a.origin==="source")return[...o,{action:"edit",label:i.edit},{action:"duplicate",label:i.duplicate}];const u=[...o];return a.updateAvailable&&u.push({action:"update",label:i.update}),u.push({action:"uninstall",label:i.uninstall}),u}function Zb({state:a,onClose:i,onAction:o,itemsOverride:u}){const d=x.useRef(null),m=x.useRef(null),[p,y]=x.useState(0),g=x.useMemo(()=>a.skill?u??Kb(a.skill):[],[a.skill,u]),h=x.useMemo(()=>{if(typeof window>"u")return{left:a.x,top:a.y};const b=8,k=220,w=44+g.length*28;let R=a.x,B=a.y;return R+k+b>window.innerWidth&&(R=Math.max(b,a.x-k)),B+w+b>window.innerHeight&&(B=Math.max(b,a.y-w)),{left:R,top:B}},[a.x,a.y,g.length]);x.useEffect(()=>{if(a.open)return m.current=document.activeElement??null,y(0),requestAnimationFrame(()=>{var b;(b=d.current)==null||b.focus()}),()=>{var b,k;(k=(b=m.current)==null?void 0:b.focus)==null||k.call(b),m.current=null}},[a.open]);const C=x.useCallback(()=>{if(!a.skill)return;const b=g[p];!b||b.disabled||(o(b.action,a.skill),i())},[g,p,a.skill,o,i]);return x.useEffect(()=>{if(!a.open)return;function b(w){if(w.key==="Escape"){w.preventDefault(),i();return}if(w.key==="ArrowDown"){w.preventDefault(),y(R=>Math.min(R+1,Math.max(g.length-1,0)));return}if(w.key==="ArrowUp"){w.preventDefault(),y(R=>Math.max(R-1,0));return}if(w.key==="Enter"||w.key===" "){w.preventDefault(),C();return}}function k(w){d.current&&w.target instanceof Node&&(d.current.contains(w.target)||i())}return window.addEventListener("keydown",b,!0),window.addEventListener("mousedown",k,!0),()=>{window.removeEventListener("keydown",b,!0),window.removeEventListener("mousedown",k,!0)}},[a.open,i,g.length,C]),!a.open||!a.skill?null:c.jsx("div",{ref:d,role:"menu",tabIndex:-1,"data-testid":"context-menu",style:{position:"fixed",left:h.left,top:h.top,zIndex:70,minWidth:200,padding:4,background:"var(--bg-canvas)",border:"1px solid var(--border-default)",borderRadius:6,boxShadow:"0 12px 32px rgba(0,0,0,0.16)",fontFamily:"var(--font-sans)",fontSize:13,color:"var(--text-primary)",outline:"none"},children:g.map((b,k)=>c.jsx("div",{role:"menuitem","aria-disabled":b.disabled||void 0,"data-action":b.action,"data-selected":k===p||void 0,onMouseEnter:()=>y(k),onClick:()=>{b.disabled||(o(b.action,a.skill),i())},style:{padding:"5px 10px",borderRadius:4,cursor:b.disabled?"default":"pointer",opacity:b.disabled?.5:1,background:k===p?"color-mix(in srgb, var(--accent-surface) 10%, transparent)":"transparent"},children:b.label},b.action))})}const jh={open:!1,x:0,y:0,skill:null};function Jb(a,i){return{open:!0,x:a.clientX,y:a.clientY,skill:i}}function na(a,i="info"){typeof window>"u"||window.dispatchEvent(new CustomEvent("studio:toast",{detail:{message:a,severity:i}}))}function $b(a,i){var o;switch(a){case"copy-path":try{(o=navigator.clipboard)==null||o.writeText(i.dir)}catch{na(ut.toasts.permissionDenied,"error");return}na(ut.toasts.pathCopied,"info");return;case"open":case"reveal":case"edit":na(ut.actions.editPlaceholder,"info");return;case"run-benchmark":na(ut.toasts.benchmarkQueued,"info");return;case"duplicate":na(ut.toasts.skillDuplicated,"info");return;case"update":na(ut.toasts.skillUpdated,"info");return;case"uninstall":na(ut.actions.editPlaceholder,"info");return;default:return}}const Wb=x.lazy(()=>Ah(()=>import("./CommandPalette-Zop9jgyY.js"),__vite__mapDeps([0,1])));function Fb(){return c.jsx(d0,{children:c.jsx(o0,{children:c.jsxs(Yb,{children:[c.jsx(Pb,{}),c.jsx(Vb,{})]})})})}function Pb(){const{state:a,selectSkill:i,refreshSkills:o}=li(),{config:u}=Hs(),{mode:d,setTheme:m}=Oh(),{toast:p}=qb(),[y,g]=x.useState(()=>E1()),[h]=x.useState(!0),[C,b]=x.useState(!1),[k,w]=x.useState(!1),[R,B]=x.useState("overview"),[z,E]=x.useState(jh),A=x.useCallback((L,D)=>{E(Jb(L,D))},[]),G=x.useCallback(()=>{E(jh)},[]);x.useEffect(()=>{function L(D){if(!(D instanceof CustomEvent))return;const W=D.detail;W!=null&&W.message&&p({message:W.message,severity:W.severity??"info"})}return window.addEventListener("studio:toast",L),()=>window.removeEventListener("studio:toast",L)},[p]),x.useEffect(()=>{document.documentElement.style.setProperty("--sidebar-width",`${y}px`)},[y]);const $=x.useMemo(()=>a.selectedSkill?a.skills.find(L=>L.plugin===a.selectedSkill.plugin&&L.skill===a.selectedSkill.skill)??null:null,[a.skills,a.selectedSkill]),O=x.useCallback(L=>{i({plugin:L.plugin,skill:L.skill,origin:L.origin})},[i]),J=x.useMemo(()=>{if(!a.selectedSkill)return"";const L=a.selectedSkill.origin==="installed"?"Installed":"Own";return`Viewing ${a.selectedSkill.skill} (${L})`},[a.selectedSkill]),T=x.useMemo(()=>[{id:"switch-theme",label:ut.palette.actionSwitchTheme,description:"Cycle light / dark / auto",keywords:["theme","dark","light","mode"],onInvoke:()=>m(d==="light"?"dark":d==="dark"?"auto":"light")},{id:"show-shortcuts",label:"Show keyboard shortcuts",description:"Open the cheatsheet",keywords:["help","keys"],onInvoke:()=>w(!0)},{id:"refresh-skills",label:"Refresh skills",description:"Re-scan local + installed",keywords:["reload","scan"],onInvoke:()=>o()}],[d,m,o]);return yy([{key:"cmd+k",handler:()=>b(L=>!L)},{key:"ctrl+k",handler:()=>b(L=>!L)},{key:"?",handler:()=>w(L=>!L)},{key:"cmd+shift+d",handler:()=>m(d==="light"?"dark":"light")},{key:"ctrl+shift+d",handler:()=>m(d==="light"?"dark":"light")},{key:"e",handler:()=>p({message:ut.actions.editPlaceholder,severity:"info"})}]),c.jsxs(c.Fragment,{children:[c.jsx(f0,{sidebarWidth:y,sidebarHidden:a.isMobile&&a.mobileView==="detail",banner:c.jsx(j1,{connected:h}),liveMessage:J,topRail:c.jsx(g0,{projectName:(u==null?void 0:u.projectName)??null,selected:a.selectedSkill,onOpenPalette:()=>b(!0)}),sidebar:c.jsx(p1,{skills:a.skills,selectedKey:a.selectedSkill?{plugin:a.selectedSkill.plugin,skill:a.selectedSkill.skill}:null,onSelect:O,isLoading:a.skillsLoading,error:a.skillsError??null,onRetry:o,onContextMenu:A}),resizeHandle:c.jsx(C1,{initialWidth:y??ar,onChange:g}),main:c.jsx(Mb,{selectedSkillInfo:$,activeDetailTab:R,onDetailTabChange:B,allSkills:a.skills,onSelectSkill:O}),statusBar:c.jsx(C0,{projectPath:(u==null?void 0:u.root)??null,modelName:(u==null?void 0:u.model)??null,health:u!=null&&u.error?"degraded":"ok"})}),c.jsx(Qb,{open:k,onClose:()=>w(!1)}),c.jsx(Zb,{state:z,onClose:G,onAction:(L,D)=>$b(L,D)}),C&&c.jsx(x.Suspense,{fallback:null,children:c.jsx(Wb,{open:C,onClose:()=>b(!1),commands:T})})]})}Pv.createRoot(document.getElementById("root")).render(c.jsx(x.StrictMode,{children:c.jsx(T0,{children:c.jsx(Fb,{})})}));export{c as j,x as r,ut as s};
|
|
65
|
+
`,rows:8,className:"w-full px-3 py-2 rounded-lg text-[13px] font-mono resize-y",style:{..._n,minHeight:"150px"}}):o.body.trim()?c.jsx("div",{className:"text-[13px] leading-relaxed overflow-x-auto rounded-lg px-4 py-3",style:{background:"var(--surface-0)",color:"var(--text-secondary)",border:"1px solid var(--border-subtle)",minHeight:"150px",maxHeight:"400px",overflowY:"auto"},dangerouslySetInnerHTML:{__html:q1(o.body)}}):c.jsx("div",{className:"text-[13px] leading-relaxed overflow-x-auto rounded-lg px-4 py-3",style:{background:"var(--surface-0)",color:"var(--text-secondary)",border:"1px solid var(--border-subtle)",minHeight:"150px",maxHeight:"400px",overflowY:"auto"},children:c.jsx("span",{style:{color:"var(--text-tertiary)"},children:"Start writing to see preview"})})]}),c.jsx(K1,{skillName:o.name||"{skill}",hasEvals:!1,isDraft:o.draftSaved}),o.error&&c.jsx("div",{className:"px-4 py-3 rounded-lg text-[13px]",style:{background:"var(--red-muted)",color:"var(--red)",border:"1px solid rgba(248,113,113,0.2)"},children:o.error}),c.jsxs("div",{className:"flex items-center gap-3",children:[c.jsx("button",{onClick:o.handleCreate,disabled:o.creating||!o.name||!o.description,className:"px-5 py-2.5 rounded-lg text-[13px] font-medium transition-all duration-150",style:{background:o.creating||!o.name||!o.description?"var(--surface-3)":"var(--accent)",color:o.creating||!o.name||!o.description?"var(--text-tertiary)":"#fff",cursor:o.creating||!o.name||!o.description?"not-allowed":"pointer",border:"none"},children:o.creating?"Creating...":"Create Skill"}),c.jsx("button",{onClick:i,className:"px-4 py-2.5 rounded-lg text-[13px] font-medium",style:{color:"var(--text-secondary)",background:"none",border:"none",cursor:"pointer"},children:"Cancel"})]})]})]})}function J1(){return c.jsx("div",{className:"w-16 h-16 rounded-2xl flex items-center justify-center",style:{background:"var(--surface-2)"},children:c.jsxs("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"}),c.jsx("polyline",{points:"3.27 6.96 12 12.01 20.73 6.96"}),c.jsx("line",{x1:"12",y1:"22.08",x2:"12",y2:"12"})]})})}function Ms({variant:a,message:i,onRetry:o}){const{setMode:u,setSearch:d}=li(),[m,p]=x.useState(!1);return a==="no-selection"?c.jsxs("div",{className:"flex flex-col items-center justify-center h-full px-8 animate-fade-in",children:[c.jsx("div",{className:"mb-5",children:m?c.jsx(J1,{}):c.jsx("img",{src:"/images/empty-studio.webp",width:128,height:128,alt:"",onError:()=>p(!0),style:{objectFit:"contain"}})}),c.jsx("p",{className:"text-[14px] font-medium mb-1",style:{color:"var(--text-secondary)"},children:"Select a skill to view details"}),c.jsx("p",{className:"text-[12px]",style:{color:"var(--text-tertiary)"},children:"Choose a skill from the list to edit, test, and evaluate"})]}):a==="no-skills"?c.jsxs("div",{className:"text-center py-12 px-4 animate-fade-in-scale",children:[c.jsx("div",{className:"w-14 h-14 rounded-2xl flex items-center justify-center mx-auto mb-4",style:{background:"var(--surface-2)"},children:c.jsx("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:c.jsx("path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"})})}),c.jsx("p",{className:"text-[14px] font-medium",style:{color:"var(--text-secondary)"},children:"No skills found"}),c.jsxs("p",{className:"text-[12px] mt-1 mb-4",style:{color:"var(--text-tertiary)"},children:["Check your ",c.jsx("code",{className:"px-1.5 py-0.5 rounded text-[11px]",style:{background:"var(--surface-2)"},children:"--root"})," directory, or create your first skill"]}),c.jsxs("button",{onClick:()=>u("create"),className:"inline-flex items-center gap-2 px-5 py-2.5 rounded-lg text-[13px] font-medium transition-all duration-150",style:{background:"var(--accent)",color:"#fff",border:"none",cursor:"pointer"},onMouseEnter:y=>{y.currentTarget.style.opacity="0.9"},onMouseLeave:y=>{y.currentTarget.style.opacity="1"},children:[c.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),c.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),"Create Your First Skill"]})]}):a==="error"?c.jsx("div",{className:"flex flex-col items-center justify-center h-full px-8 animate-fade-in",children:c.jsxs("div",{className:"px-5 py-4 rounded-lg text-center max-w-sm",style:{background:"var(--red-muted)",border:"1px solid rgba(248,113,113,0.2)"},children:[c.jsx("p",{className:"text-[13px] mb-3",style:{color:"var(--red)"},children:i||"Failed to load skill data"}),o&&c.jsx("button",{onClick:o,className:"px-4 py-2 rounded-lg text-[12px] font-medium",style:{background:"var(--surface-3)",color:"var(--text-primary)",border:"none",cursor:"pointer"},children:"Retry"})]})}):c.jsxs("div",{className:"px-4 py-8 text-center animate-fade-in",children:[c.jsx("p",{className:"text-[13px] mb-2",style:{color:"var(--text-tertiary)"},children:"No skills match your search"}),c.jsx("button",{onClick:()=>d(""),className:"text-[12px] font-medium",style:{color:"var(--accent)",background:"none",border:"none",cursor:"pointer",textDecoration:"underline"},children:"Clear search"})]})}function $1(a,i){const[o,u]=a.split(".").map(Number),[d,m]=i.split(".").map(Number);return d>o?"major":m>u?"minor":"patch"}const W1={major:{bg:"var(--red-muted)",text:"var(--red)"},minor:{bg:"var(--yellow-muted)",text:"var(--yellow)"},patch:{bg:"var(--green-muted)",text:"var(--green)"}};function F1(){const[a,i]=x.useState([]),[o,u]=x.useState(!0),[d,m]=x.useState(new Set),[p,y]=x.useState(new Map),[g,h]=x.useState(!1),[C,b]=x.useState(new Set),[k,w]=x.useState(null),[R,B]=x.useState(null),[z,E]=x.useState(!1),A=x.useCallback(async()=>{u(!0);try{const D=await lt.getSkillUpdates();i(D.filter(W=>W.updateAvailable))}catch{i([])}finally{u(!1)}},[]);x.useEffect(()=>{A()},[A]);const G=x.useMemo(()=>a.filter(D=>!D.pinned),[a]),$=x.useCallback(D=>{m(W=>{const F=new Set(W);return F.has(D)?F.delete(D):F.add(D),F})},[]),O=x.useCallback(()=>{d.size===G.length?m(new Set):m(new Set(G.map(D=>D.name)))},[d,G]),J=x.useCallback(()=>{const D=[...d];if(!D.length)return;h(!0),y(new Map(D.map(F=>[F,{skill:F,status:"pending"}])));const W=lt.startBatchUpdate(D);W.addEventListener("progress",F=>{try{const de=JSON.parse(F.data);y(ce=>new Map(ce).set(de.skill,de))}catch{}}),W.addEventListener("done",F=>{W.close(),h(!1);try{const de=JSON.parse(F.data);w(`Updated ${de.updated??0} skills, ${de.failed??0} failed`),setTimeout(()=>w(null),5e3)}catch{}A()}),W.addEventListener("error",()=>{W.close(),h(!1),w("Batch update failed"),setTimeout(()=>w(null),5e3)})},[d,A]),T=x.useCallback(D=>{D.name.split("/").pop()||D.name;const W=D.name.split("/"),F=W.length>=3?W[W.length-2]:W[0],de=W[W.length-1];b(P=>new Set(P).add(D.name));const ce=lt.startSkillUpdate(F,de);ce.addEventListener("done",()=>{ce.close(),b(P=>{const re=new Set(P);return re.delete(D.name),re}),A()}),ce.addEventListener("error",()=>{ce.close(),b(P=>{const re=new Set(P);return re.delete(D.name),re})})},[A]),L=x.useCallback(async D=>{if(!D.latest)return;const W=D.name.split("/"),F=W.length>=3?W[W.length-2]:W[0],de=W[W.length-1];E(!0);try{const ce=await lt.getVersionDiff(F,de,D.installed,D.latest);B({skill:D,diff:ce})}catch{B(null)}finally{E(!1)}},[]);return o?c.jsxs("div",{className:"p-6",children:[c.jsx("div",{className:"skeleton h-6 w-48 mb-4"}),c.jsxs("div",{className:"space-y-3",children:[c.jsx("div",{className:"skeleton h-16 rounded-lg"}),c.jsx("div",{className:"skeleton h-16 rounded-lg"})]})]}):a.length===0?c.jsxs("div",{className:"flex flex-col items-center justify-center h-full py-16",children:[c.jsxs("svg",{width:"48",height:"48",viewBox:"0 0 24 24",fill:"none",stroke:"var(--green)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",className:"mb-4",children:[c.jsx("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"}),c.jsx("polyline",{points:"22 4 12 14.01 9 11.01"})]}),c.jsx("div",{className:"text-[15px] font-semibold mb-2",style:{color:"var(--text-primary)"},children:"All skills are up to date"}),c.jsx("div",{className:"text-[12px] mb-4",style:{color:"var(--text-tertiary)"},children:"No updates available for installed skills."}),c.jsx("button",{onClick:A,className:"btn btn-secondary text-[12px]",children:"Refresh"})]}):c.jsxs("div",{className:"p-6",children:[k&&c.jsx("div",{className:"fixed top-4 right-4 z-50 px-4 py-3 rounded-lg text-[13px] font-medium animate-fade-in",style:{background:"var(--surface-3)",color:"var(--text-primary)",border:"1px solid var(--border-subtle)"},children:k}),c.jsxs("div",{className:"flex items-center justify-between mb-5",children:[c.jsxs("div",{className:"text-[16px] font-semibold",style:{color:"var(--text-primary)"},children:["Available Updates (",G.length,")"]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("button",{onClick:A,className:"btn btn-ghost text-[12px]",disabled:g,children:"Refresh"}),c.jsx("button",{onClick:J,disabled:d.size===0||g,className:"btn btn-primary text-[12px]",children:g?"Updating...":`Update Selected (${d.size})`})]})]}),c.jsx("div",{className:"flex items-center gap-2 mb-3",children:c.jsxs("button",{onClick:O,className:"flex items-center gap-2 text-[12px] font-medium",style:{color:"var(--text-secondary)",background:"transparent",border:"none",cursor:"pointer"},children:[c.jsx("span",{className:"w-4 h-4 rounded border flex items-center justify-center",style:{borderColor:d.size===G.length&&G.length>0?"var(--accent)":"var(--border-default)",background:d.size===G.length&&G.length>0?"var(--accent)":"transparent"},children:d.size===G.length&&G.length>0&&c.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"var(--color-paper)",strokeWidth:"3",children:c.jsx("polyline",{points:"20 6 9 17 4 12"})})}),"Select All"]})}),c.jsx("div",{className:"space-y-2",children:a.map(D=>{const W=D.name.split("/").pop()||D.name,F=D.latest?$1(D.installed,D.latest):"patch",de=W1[F],ce=!!D.pinned,P=C.has(D.name),re=p.get(D.name),_=d.has(D.name);return c.jsx("div",{className:"rounded-lg px-4 py-3 transition-all duration-150",style:{background:"var(--surface-1)",border:"1px solid var(--border-subtle)",opacity:ce?.7:1},children:c.jsxs("div",{className:"flex items-center gap-3",children:[c.jsx("button",{onClick:()=>!ce&&$(D.name),disabled:ce,className:"flex-shrink-0",style:{background:"transparent",border:"none",cursor:ce?"not-allowed":"pointer"},children:c.jsx("span",{className:"w-4 h-4 rounded border flex items-center justify-center",style:{borderColor:_?"var(--accent)":"var(--border-default)",background:_?"var(--accent)":"transparent",opacity:ce?.4:1},children:_&&c.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"var(--color-paper)",strokeWidth:"3",children:c.jsx("polyline",{points:"20 6 9 17 4 12"})})})}),c.jsxs("div",{className:"flex-1 min-w-0",children:[c.jsxs("div",{className:"flex items-center gap-2 mb-0.5",children:[c.jsx("span",{className:"text-[13px] font-medium",style:{color:"var(--text-primary)"},children:W}),ce&&c.jsx("span",{className:"text-[10px]",title:"Pinned — unpin from CLI to update",children:"📌"}),c.jsx("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full",style:{background:de.bg,color:de.text},children:F})]}),c.jsxs("div",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:[D.installed," → ",D.latest||"?",ce&&` (pinned at ${D.pinnedVersion||D.installed})`]})]}),re&&c.jsxs("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full",style:{background:re.status==="done"?"var(--green-muted)":re.status==="error"?"var(--red-muted)":"var(--yellow-muted)",color:re.status==="done"?"var(--green)":re.status==="error"?"var(--red)":"var(--yellow)"},children:[re.status,re.error&&`: ${re.error}`]}),c.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[c.jsx("button",{onClick:()=>L(D),className:"btn btn-ghost text-[11px]",disabled:z,children:"View Changes"}),c.jsx("button",{onClick:()=>T(D),disabled:ce||P||g,title:ce?"Pinned — unpin from CLI to update":"",className:`btn ${ce?"btn-ghost":"btn-primary"} text-[11px]`,children:P?c.jsxs("span",{className:"flex items-center gap-1",children:[c.jsx("span",{className:"spinner spinner-sm"})," Updating"]}):(re==null?void 0:re.status)==="done"?c.jsx("span",{style:{color:"var(--green)"},children:"✓"}):"Update"})]})]})},D.name)})}),R&&c.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center",style:{background:"rgba(0,0,0,0.5)"},onClick:()=>B(null),children:c.jsxs("div",{style:{width:"80%",maxWidth:900},onClick:D=>D.stopPropagation(),children:[c.jsx("div",{className:"mb-2 flex justify-end",children:c.jsx("button",{onClick:()=>B(null),className:"btn btn-ghost text-[12px]",children:"Close"})}),c.jsx(Cy,{contentDiff:R.diff.contentDiff,fromLabel:R.diff.from,toLabel:R.diff.to,diffSummary:R.diff.diffSummary,renderContext:"inline"})]})})]})}function P1(a){return a==null?"var(--text-tertiary)":a>=.7?"var(--green)":a>=.4?"var(--yellow)":"var(--red)"}function eb(a){return a==null?"var(--surface-3)":a>=.7?"var(--green-muted)":a>=.4?"var(--yellow-muted)":"var(--red-muted)"}const tb={sectionOwn:"Own",sectionInstalled:"Installed",searchPlaceholder:"Search skills",searchShortcutHint:"Press / to search",emptyOwnHeadline:"No skills yet.",emptyOwnBody:"Run vskill new <name> to create one.",emptyInstalledHeadline:"No installed skills.",emptyInstalledBody:"Run vskill install <plugin> to add one.",emptyFilteredHeadline:"No matches in this section.",emptyFilteredBody:"Clear the search or try another query.",loadErrorHeadline:"Couldn't load skills.",loadErrorRetry:"Retry",duplicateBadge:"synced from Own",updateAvailableBadge:"Update available",countBadgeFiltered:(a,i)=>`${a} of ${i}`},lb={appTitle:"Skill Studio",commandPaletteButtonLabel:"Open command palette",commandPaletteHint:"⌘K",themeToggleLight:"Switch to light theme",themeToggleDark:"Switch to dark theme",themeToggleAuto:"Switch to auto theme",projectPathLabel:"Project",modelLabel:"Model",healthLabel:"Health"},nb={tabOverview:"Overview",tabVersions:"Versions",tabBenchmark:"Benchmark",emptyHeadline:"Select a skill to see details.",emptyBody:"Pick one from the sidebar.",loadErrorHeadline:a=>`Couldn't load SKILL.md for ${a}.`,loadErrorBody:"Check the file path and your workspace permissions.",openInEditor:"Open in editor",copyPath:"Copy path",copyConfigSnippet:"Copy config snippet",depNotInstalledTooltip:"Not installed",missingValue:"—",announceViewingOwn:a=>`Viewing ${a} (Own)`,announceViewingInstalled:a=>`Viewing ${a} (Installed)`,moreFields:"More fields",sourceAgent:"Source agent",noMcpDependencies:"No MCP dependencies.",filesystemGroup:"Filesystem",benchmarkGroup:"Benchmark",metadataGroup:"Frontmatter"},ab={open:"Open",copyPath:"Copy Path",revealInEditor:"Reveal in Editor",edit:"Edit",duplicate:"Duplicate",runBenchmark:"Run Benchmark",update:"Update",uninstall:"Uninstall",retry:"Retry",editPlaceholder:"Edit lands with 0675. Open the file in your editor."},ib={inputPlaceholder:"Type a command or search",emptyResults:"No matches. Try a different query.",groupNavigation:"Navigation",groupActions:"Actions",groupTheme:"Theme",actionSelectSkill:"Select skill",actionRunBenchmark:"Run benchmark",actionSwitchTheme:"Switch theme",actionNewSkill:"New skill",closeLabel:"Close palette"},rb={title:"Keyboard shortcuts",closeLabel:"Close shortcuts",groupNavigation:"Navigation",groupActions:"Actions",groupTheme:"Theme",search:"Focus search",moveDown:"Move selection down",moveUp:"Move selection up",openSelected:"Open selected skill",openPalette:"Open command palette",openShortcuts:"Open this cheatsheet",toggleSidebar:"Toggle sidebar",toggleTheme:"Toggle theme"},sb={pathCopied:"Path copied.",configCopied:"Config copied.",skillDuplicated:"Skill duplicated.",benchmarkQueued:"Benchmark queued.",themeUpdated:"Theme updated.",skillUpdated:"Skill updated.",actionFailed:"Action failed. Retry or check logs.",networkError:"Network error. Check your connection.",permissionDenied:"Permission denied. Check file access.",unknownError:"Something went wrong. Retry or check logs."},ob={disconnected:"Disconnected — reconnecting…",reconnected:"Reconnected.",loading:"Loading skills…",loadingPlaceholderCount:"—"},ub={fieldRequired:"This field is required.",nameInvalid:"Use letters, numbers, and hyphens.",descriptionRequired:"Description is required.",saveFailed:"Save failed. Check the form for errors."},cb={boundaryHeadline:"Something broke in this view.",boundaryBody:"Reload the page to recover.",boundaryAction:"Reload"},ut={sidebar:tb,shell:lb,detail:nb,actions:ab,palette:ib,shortcuts:rb,toasts:sb,connection:ob,forms:ub,errors:cb};function Th(a,i="info"){typeof window>"u"||window.dispatchEvent(new CustomEvent("studio:toast",{detail:{message:a,severity:i}}))}function wy(a){return a.skill?fb({skill:a.skill}):mb({state:a.state,isReadOnly:a.isReadOnly,onDelete:a.onDelete})}function db(a,i=48){if(a.length<=i)return a;const o=a.slice(0,12),u=a.slice(a.length-(i-12-1));return`${o}…${u}`}function fb({skill:a}){const[i,o]=x.useState(!1),u=x.useCallback(async()=>{var p;try{await((p=navigator.clipboard)==null?void 0:p.writeText(a.dir)),o(!0),setTimeout(()=>o(!1),1500),Th(ut.toasts.pathCopied,"info")}catch{Th(ut.toasts.permissionDenied,"error")}},[a.dir]),d=a.origin==="installed"?"Installed":"Own",m=a.origin==="installed"?"var(--status-installed)":"var(--status-own)";return c.jsxs("div",{"data-testid":"detail-header",style:{background:"var(--bg-surface)",border:"1px solid var(--border-default)",borderRadius:8,padding:"14px 16px",boxShadow:"none"},children:[c.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,fontFamily:"var(--font-sans)",fontSize:12,color:"var(--text-secondary)",marginBottom:4},children:[c.jsx("span",{"data-testid":"detail-header-plugin",children:a.plugin}),c.jsx("span",{"aria-hidden":"true",style:{color:"var(--text-secondary)"},children:"›"}),c.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:6,color:"var(--text-secondary)",fontSize:11,letterSpacing:.3,textTransform:"uppercase"},children:[c.jsx("span",{"data-origin-dot":a.origin,"aria-label":`Origin: ${d}`,style:{display:"inline-block",width:7,height:7,borderRadius:999,background:m}}),d]})]}),c.jsxs("div",{style:{display:"flex",alignItems:"baseline",justifyContent:"space-between",gap:12,marginBottom:8},children:[c.jsx("h2",{"data-testid":"detail-header-name",style:{fontFamily:"var(--font-serif)",fontSize:20,fontWeight:500,lineHeight:1.25,color:"var(--text-primary)",margin:0},children:a.skill}),c.jsx("span",{"data-testid":"detail-header-version",style:{fontFamily:"var(--font-sans)",fontVariantNumeric:"tabular-nums",fontSize:12,color:"var(--text-secondary)",whiteSpace:"nowrap"},children:a.version??"—"})]}),c.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[c.jsx("button",{type:"button","data-testid":"detail-header-path-chip",title:a.dir,"aria-label":`Copy path ${a.dir} to clipboard`,onClick:u,style:{display:"inline-flex",alignItems:"center",padding:"2px 8px",border:"1px solid var(--border-default)",borderRadius:4,background:"transparent",fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-secondary)",maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",cursor:"pointer"},children:db(a.dir||"—")}),c.jsxs("button",{"data-testid":"detail-header-copy-path",type:"button",onClick:u,"aria-label":"Copy skill path to clipboard",style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",background:"transparent",border:"1px solid var(--border-default)",borderRadius:4,color:"var(--text-secondary)",fontFamily:"var(--font-sans)",fontSize:11,cursor:"pointer"},children:[c.jsxs("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),c.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),i?"Copied":"Copy"]})]})]})}function mb({state:a,isReadOnly:i,onDelete:o}){const{plugin:u,skill:d,evals:m,latestBenchmark:p,isDirty:y,caseRunStates:g,regressions:h,iterationCount:C}=a,b=Array.from(g.values()).some(E=>E.status==="running"||E.status==="queued"),k=p==null?void 0:p.overall_pass_rate,w=(m==null?void 0:m.evals.reduce((E,A)=>E+A.assertions.length,0))??0,R=(m==null?void 0:m.evals.length)??0,B=P1(k),z=eb(k);return c.jsxs("div",{className:"flex items-center justify-between px-4 py-2.5",style:{borderBottom:"1px solid var(--border-subtle)",background:"var(--surface-1)",flexShrink:0},children:[c.jsxs("div",{className:"flex items-center gap-2 text-[13px]",children:[c.jsx("span",{style:{color:"var(--text-tertiary)"},children:u}),c.jsx(pb,{}),c.jsx("span",{className:"font-medium",style:{color:"var(--text-primary)"},children:d}),i&&c.jsxs("span",{className:"ml-2 flex items-center gap-1 text-[10px] font-semibold uppercase tracking-wider px-1.5 py-0.5 rounded",style:{background:"var(--surface-3)",color:"var(--text-tertiary)"},children:[c.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),c.jsx("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]}),"installed"]}),y&&c.jsx("span",{className:"ml-2 text-[10px] font-semibold uppercase tracking-wider px-1.5 py-0.5 rounded",style:{background:"var(--yellow-muted)",color:"var(--yellow)"},children:"unsaved"}),b&&c.jsxs("span",{className:"ml-2 flex items-center gap-1.5 text-[11px]",style:{color:"var(--accent)"},children:[c.jsx("span",{className:"spinner",style:{width:12,height:12,borderWidth:1.5}}),"Running..."]})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[!i&&o&&c.jsx("button",{disabled:b,onClick:()=>{window.confirm(`Delete skill "${d}"? This cannot be undone.`)&&o()},title:"Delete skill",className:"flex items-center justify-center transition-colors duration-150",style:{background:"none",border:"none",cursor:b?"not-allowed":"pointer",color:"var(--text-tertiary)",padding:4,opacity:b?.4:1,borderRadius:4},onMouseEnter:E=>{b||(E.currentTarget.style.color="var(--red)")},onMouseLeave:E=>{E.currentTarget.style.color="var(--text-tertiary)"},children:c.jsx(hb,{})}),h.length>0&&c.jsxs("span",{className:"pill",style:{background:"var(--red-muted)",color:"var(--red)"},children:[c.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:[c.jsx("path",{d:"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"}),c.jsx("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),c.jsx("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]}),h.length," regression",h.length>1?"s":""]}),C>0&&c.jsxs("span",{className:"pill",style:{background:"var(--purple-muted)",color:"var(--purple)"},children:["Iter ",C]}),c.jsx("span",{className:"pill",style:{background:z,color:B},children:k!=null?`${Math.round(k*100)}%`:"--"}),c.jsxs("span",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:[R," case",R!==1?"s":""," / ",w," assert",w!==1?"s":""]})]})]})}function pb(){return c.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"2",children:c.jsx("polyline",{points:"9 18 15 12 9 6"})})}function hb(){return c.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("polyline",{points:"3 6 5 6 21 6"}),c.jsx("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"}),c.jsx("line",{x1:"10",y1:"11",x2:"10",y2:"17"}),c.jsx("line",{x1:"14",y1:"11",x2:"14",y2:"17"})]})}const yb=[{id:"amp",displayName:"Amp",localSkillsDir:".amp/skills",globalSkillsDir:"~/.config/agents/skills",isUniversal:!0,detectInstalled:"which amp",parentCompany:"Sourcegraph",featureSupport:{slashCommands:!0,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"cline",displayName:"Cline",localSkillsDir:".cline/skills",globalSkillsDir:"~/.cline/skills",isUniversal:!0,detectInstalled:"which cline",parentCompany:"Cline",featureSupport:{slashCommands:!0,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"codex",displayName:"Codex CLI",localSkillsDir:".codex/skills",globalSkillsDir:"~/.codex/skills",isUniversal:!0,detectInstalled:"which codex",parentCompany:"OpenAI",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"cursor",displayName:"Cursor",localSkillsDir:".cursor/skills",globalSkillsDir:"~/.cursor/skills",isUniversal:!0,detectInstalled:"which cursor",parentCompany:"Anysphere",featureSupport:{slashCommands:!0,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"gemini-cli",displayName:"Gemini CLI",localSkillsDir:".gemini/skills",globalSkillsDir:"~/.gemini/skills",isUniversal:!0,detectInstalled:"which gemini",parentCompany:"Google",featureSupport:{slashCommands:!1,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"github-copilot",displayName:"GitHub Copilot",localSkillsDir:".github/copilot/skills",globalSkillsDir:"~/.copilot/skills",isUniversal:!0,detectInstalled:"which github-copilot",parentCompany:"GitHub (Microsoft)",featureSupport:{slashCommands:!0,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"kimi-cli",displayName:"Kimi CLI",localSkillsDir:".kimi/skills",globalSkillsDir:"~/.config/agents/skills",isUniversal:!0,detectInstalled:"which kimi",parentCompany:"Moonshot AI",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"opencode",displayName:"OpenCode",localSkillsDir:".opencode/skills",globalSkillsDir:"~/.config/opencode/skills",isUniversal:!0,detectInstalled:"which opencode",parentCompany:"Community",featureSupport:{slashCommands:!1,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"antigravity",displayName:"Antigravity",localSkillsDir:".agent/skills",globalSkillsDir:"~/.gemini/antigravity/skills",isUniversal:!1,detectInstalled:"which antigravity",parentCompany:"Google",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"augment",displayName:"Augment Code",localSkillsDir:".augment/skills",globalSkillsDir:"~/.augment/skills",isUniversal:!1,detectInstalled:"which augment",parentCompany:"Augment",featureSupport:{slashCommands:!0,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"claude-code",displayName:"Claude Code",localSkillsDir:".claude/skills",globalSkillsDir:"~/.claude/skills",isUniversal:!1,detectInstalled:"which claude",parentCompany:"Anthropic",featureSupport:{slashCommands:!0,hooks:!0,mcp:!0,customSystemPrompt:!0},pluginCacheDir:"~/.claude/plugins/cache",pluginMarketplaceDir:"~/.claude/plugins/marketplaces"},{id:"openclaw",displayName:"OpenClaw",localSkillsDir:".openclaw/skills",globalSkillsDir:"~/.openclaw/skills",isUniversal:!1,detectInstalled:"which openclaw",parentCompany:"Community",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"replit",displayName:"Replit Agent",localSkillsDir:".replit/skills",globalSkillsDir:"~/.config/agents/skills",isUniversal:!1,detectInstalled:"which replit",parentCompany:"Replit",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"codebuddy",displayName:"CodeBuddy",localSkillsDir:".codebuddy/skills",globalSkillsDir:"~/.codebuddy/skills",isUniversal:!1,detectInstalled:"which codebuddy",parentCompany:"CodeBuddy",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"command-code",displayName:"Command Code",localSkillsDir:".commandcode/skills",globalSkillsDir:"~/.commandcode/skills",isUniversal:!1,detectInstalled:"which command-code",parentCompany:"Command",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"continue",displayName:"Continue",localSkillsDir:".continue/skills",globalSkillsDir:"~/.continue/skills",isUniversal:!1,detectInstalled:"which continue",parentCompany:"Continue",featureSupport:{slashCommands:!0,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"crush",displayName:"Crush",localSkillsDir:".crush/skills",globalSkillsDir:"~/.config/crush/skills",isUniversal:!1,detectInstalled:"which crush",parentCompany:"Crush",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"droid",displayName:"Droid (Factory)",localSkillsDir:".factory/skills",globalSkillsDir:"~/.factory/skills",isUniversal:!1,detectInstalled:"which droid",parentCompany:"Factory",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"goose",displayName:"Goose",localSkillsDir:".goose/skills",globalSkillsDir:"~/.config/goose/skills",isUniversal:!1,detectInstalled:"which goose",parentCompany:"Block",featureSupport:{slashCommands:!1,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"junie",displayName:"Junie",localSkillsDir:".junie/skills",globalSkillsDir:"~/.junie/skills",isUniversal:!1,detectInstalled:"which junie",parentCompany:"JetBrains",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"iflow-cli",displayName:"iFlow CLI",localSkillsDir:".iflow/skills",globalSkillsDir:"~/.iflow/skills",isUniversal:!1,detectInstalled:"which iflow",parentCompany:"iFlow",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"kilo",displayName:"Kilo Code",localSkillsDir:".kilocode/skills",globalSkillsDir:"~/.kilocode/skills",isUniversal:!1,detectInstalled:"which kilocode",parentCompany:"Kilo Code",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"kiro-cli",displayName:"Kiro CLI",localSkillsDir:".kiro/skills",globalSkillsDir:"~/.kiro/skills",isUniversal:!1,detectInstalled:"which kiro",parentCompany:"Amazon",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"kode",displayName:"Kode",localSkillsDir:".kode/skills",globalSkillsDir:"~/.kode/skills",isUniversal:!1,detectInstalled:"which kode",parentCompany:"Kode",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"mcpjam",displayName:"MCPJam",localSkillsDir:".mcpjam/skills",globalSkillsDir:"~/.mcpjam/skills",isUniversal:!1,detectInstalled:"which mcpjam",parentCompany:"MCPJam",featureSupport:{slashCommands:!1,hooks:!1,mcp:!0,customSystemPrompt:!1}},{id:"mistral-vibe",displayName:"Mistral Vibe",localSkillsDir:".vibe/skills",globalSkillsDir:"~/.vibe/skills",isUniversal:!1,detectInstalled:"which vibe",parentCompany:"Mistral AI",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"mux",displayName:"Mux",localSkillsDir:".mux/skills",globalSkillsDir:"~/.mux/skills",isUniversal:!1,detectInstalled:"which mux",parentCompany:"Mux",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"openhands",displayName:"OpenHands",localSkillsDir:".openhands/skills",globalSkillsDir:"~/.openhands/skills",isUniversal:!1,detectInstalled:"which openhands",parentCompany:"All Hands AI",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"pi",displayName:"Pi",localSkillsDir:".pi/skills",globalSkillsDir:"~/.pi/agent/skills",isUniversal:!1,detectInstalled:"which pi",parentCompany:"Pi",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"qoder",displayName:"Qoder",localSkillsDir:".qoder/skills",globalSkillsDir:"~/.qoder/skills",isUniversal:!1,detectInstalled:"which qoder",parentCompany:"Qoder",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"qwen-code",displayName:"Qwen Code",localSkillsDir:".qwen/skills",globalSkillsDir:"~/.qwen/skills",isUniversal:!1,detectInstalled:"which qwen-code",parentCompany:"Alibaba",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"roo",displayName:"Roo Code",localSkillsDir:".roo/skills",globalSkillsDir:"~/.roo/skills",isUniversal:!1,detectInstalled:"which roo",parentCompany:"Roo",featureSupport:{slashCommands:!0,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"trae",displayName:"Trae",localSkillsDir:".trae/skills",globalSkillsDir:"~/.trae/skills",isUniversal:!1,detectInstalled:"which trae",parentCompany:"ByteDance",featureSupport:{slashCommands:!1,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"trae-cn",displayName:"Trae CN",localSkillsDir:".trae-cn/skills",globalSkillsDir:"~/.trae-cn/skills",isUniversal:!1,detectInstalled:"which trae-cn",parentCompany:"ByteDance",featureSupport:{slashCommands:!1,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"windsurf",displayName:"Windsurf",localSkillsDir:".windsurf/skills",globalSkillsDir:"~/.codeium/windsurf/skills",isUniversal:!1,detectInstalled:"which windsurf",parentCompany:"Codeium",featureSupport:{slashCommands:!0,hooks:!1,mcp:!0,customSystemPrompt:!0}},{id:"zencoder",displayName:"ZenCoder",localSkillsDir:".zencoder/skills",globalSkillsDir:"~/.zencoder/skills",isUniversal:!1,detectInstalled:"which zencoder",parentCompany:"ZenCoder",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"neovate",displayName:"Neovate",localSkillsDir:".neovate/skills",globalSkillsDir:"~/.neovate/skills",isUniversal:!1,detectInstalled:"which neovate",parentCompany:"Neovate",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"pochi",displayName:"Pochi",localSkillsDir:".pochi/skills",globalSkillsDir:"~/.pochi/skills",isUniversal:!1,detectInstalled:"which pochi",parentCompany:"Pochi",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"adal",displayName:"Adal",localSkillsDir:".adal/skills",globalSkillsDir:"~/.adal/skills",isUniversal:!1,detectInstalled:"which adal",parentCompany:"Adal",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"cortex",displayName:"Cortex",localSkillsDir:".cortex/skills",globalSkillsDir:"~/.snowflake/cortex/skills",isUniversal:!1,detectInstalled:"which cortex",parentCompany:"Cortex",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"aider",displayName:"Aider",localSkillsDir:".aider/skills",globalSkillsDir:"~/.aider/skills",isUniversal:!1,detectInstalled:"which aider",parentCompany:"Aider",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"tabnine",displayName:"Tabnine Chat",localSkillsDir:".tabnine/skills",globalSkillsDir:"~/.tabnine/skills",isUniversal:!1,detectInstalled:"which tabnine",parentCompany:"Tabnine",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"devin",displayName:"Devin",localSkillsDir:".devin/skills",globalSkillsDir:"~/.devin/skills",isUniversal:!1,detectInstalled:"which devin",parentCompany:"Cognition",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"bolt-new",displayName:"bolt.new",localSkillsDir:".bolt/skills",globalSkillsDir:"~/.bolt/skills",isUniversal:!1,detectInstalled:"which bolt",parentCompany:"StackBlitz",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"v0",displayName:"v0",localSkillsDir:".v0/skills",globalSkillsDir:"~/.v0/skills",isUniversal:!1,detectInstalled:"which v0",parentCompany:"Vercel",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"gpt-pilot",displayName:"GPT Pilot",localSkillsDir:".gpt-pilot/skills",globalSkillsDir:"~/.gpt-pilot/skills",isUniversal:!1,detectInstalled:"which gpt-pilot",parentCompany:"Pythagora",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"plandex",displayName:"Plandex",localSkillsDir:".plandex/skills",globalSkillsDir:"~/.plandex/skills",isUniversal:!1,detectInstalled:"which plandex",parentCompany:"Plandex",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"sweep",displayName:"Sweep",localSkillsDir:".sweep/skills",globalSkillsDir:"~/.sweep/skills",isUniversal:!1,detectInstalled:"which sweep",parentCompany:"Sweep AI",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}},{id:"mentat",displayName:"Mentat",localSkillsDir:".mentat/skills",globalSkillsDir:"~/.mentat/skills",isUniversal:!1,detectInstalled:"which mentat",parentCompany:"AbanteAI",featureSupport:{slashCommands:!1,hooks:!1,mcp:!1,customSystemPrompt:!0}}],ii={fontFamily:"var(--font-serif)",fontSize:15,fontWeight:500,color:"var(--text-primary)",margin:"0 0 8px",letterSpacing:.1},ri={background:"var(--bg-surface)",border:"1px solid var(--border-default)",borderRadius:8,padding:"14px 16px",boxShadow:"none"},gb={fontFamily:"var(--font-sans)",fontSize:11,color:"var(--text-secondary)",textTransform:"uppercase",letterSpacing:.4},Ay={fontFamily:"var(--font-sans)",fontSize:13,color:"var(--text-primary)"},Ny={fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text-primary)",wordBreak:"break-all"},ei={fontFamily:"var(--font-sans)",fontSize:13,color:"var(--text-primary)",fontVariantNumeric:"tabular-nums"},vb={fontFamily:"var(--font-sans)",fontSize:13,color:"var(--text-secondary)"},xb={fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text-primary)",overflowWrap:"anywhere",wordBreak:"break-word"},bb={Description:"Add `description:` to the SKILL.md frontmatter to display a value here.",Version:"Add `version:` to the SKILL.md frontmatter to display a value here.",Category:"Add `category:` to the SKILL.md frontmatter to display a value here.",Author:"Add `author:` to the SKILL.md frontmatter to display a value here.",License:"Add `license:` to the SKILL.md frontmatter to display a value here.",Homepage:"Add `homepage:` to the SKILL.md frontmatter to display a value here.",Tags:"Add `tags:` to the SKILL.md frontmatter to display a value here.",Directory:"Filesystem location of this skill — not configurable via SKILL.md.","Entry point":"Add `entry-point:` to the SKILL.md frontmatter to customize; defaults to SKILL.md.","Last modified":"Filesystem mtime — updates automatically on save.","Last benchmark":"Shown after the first benchmark run completes."};function Sb(a){if(a==null||!Number.isFinite(a))return"—";if(a<1024)return`${a} B`;const i=a/1024;if(i<1024)return i>=10?`${Math.round(i)} KB`:`${i.toFixed(1).replace(/\.0$/,"")} KB`;const o=i/1024;return o>=10?`${Math.round(o)} MB`:`${o.toFixed(1).replace(/\.0$/,"")} MB`}function Ry(a){if(!a)return"—";const i=new Date(a);if(Number.isNaN(i.getTime()))return a;const o=Date.now()-i.getTime(),u=Math.floor(o/1e3);if(u<60)return"just now";const d=Math.floor(u/60);if(d<60)return`${d} min ago`;const m=Math.floor(d/60);if(m<24)return`${m} hr ago`;const p=Math.floor(m/24);if(p<30)return`${p} day${p===1?"":"s"} ago`;const y=Math.floor(p/30);if(y<12)return`${y} month${y===1?"":"s"} ago`;const g=Math.floor(y/12);return`${g} year${g===1?"":"s"} ago`}function Eb(a){const i=yb.find(o=>o.id===a);return(i==null?void 0:i.displayName)??a}function ti(a){const i=a?bb[a]:void 0;return c.jsx("span",{style:vb,title:i,children:"—"})}function cl(a,i,o){return c.jsxs("div",{style:{display:"grid",gridTemplateColumns:"130px 1fr",alignItems:"baseline",gap:12,padding:"6px 0"},children:[c.jsx("span",{style:gb,children:a}),c.jsx("span",{style:{minWidth:0},children:i})]},a)}function Wa(a,i,o={}){if(i==null||i==="")return cl(a,ti(a));if(o.path)return cl(a,c.jsx("span",{"data-path-value":"true",style:xb,children:i}));const u=o.tabular?ei:o.mono?Ny:Ay;return cl(a,c.jsx("span",{style:u,children:i}))}function Tb({skill:a,allSkills:i=[],onSelectSkill:o}){return c.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:16},children:[Cb(a),a.origin==="installed"?jb(a):null,kb(a),Ab(a),Nb(a),zb(a,i,o)]})}function Cb(a){const i=a.homepage?c.jsxs("a",{href:a.homepage,target:"_blank",rel:"noopener noreferrer","data-external-link":"homepage",style:{...Ny,color:"var(--text-accent)",textDecoration:"none",display:"inline-flex",alignItems:"center",gap:4},onMouseEnter:u=>{u.currentTarget.style.textDecoration="underline"},onMouseLeave:u=>{u.currentTarget.style.textDecoration="none"},children:[c.jsx("span",{children:a.homepage}),c.jsx("span",{"aria-hidden":"true",style:{fontSize:11,color:"var(--text-accent)"},children:"↗"})]}):ti("Homepage"),o=a.tags&&a.tags.length>0?c.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:a.tags.map(u=>c.jsx("span",{"data-chip":"tag",style:{fontFamily:"var(--font-sans)",fontSize:11,padding:"2px 8px",border:"1px solid var(--border-default)",borderRadius:999,color:"var(--text-secondary)",background:"transparent"},children:u},u))}):ti("Tags");return c.jsxs("section",{style:ri,"aria-labelledby":"md-frontmatter",children:[c.jsx("h3",{id:"md-frontmatter",style:ii,children:"Frontmatter"}),Wa("Description",a.description??null),Wa("Version",a.version??null,{tabular:!0}),Wa("Category",a.category??null),Wa("Author",a.author??null),Wa("License",a.license??null),cl("Homepage",i),cl("Tags",o)]},"frontmatter")}function jb(a){const i=a.sourceAgent,o=i?c.jsx("span",{style:Ay,"data-agent-id":i,children:Eb(i)}):ti("Agent");return c.jsxs("section",{style:ri,"aria-labelledby":"md-source-agent",children:[c.jsx("h3",{id:"md-source-agent",style:ii,children:"Source agent"}),cl("Agent",o)]},"source-agent")}function kb(a){const i=a.lastModified?c.jsx("span",{style:ei,title:a.lastModified,children:Ry(a.lastModified)}):ti("Last modified"),o=a.entryPoint??"SKILL.md",u=a.dir?`${a.dir.replace(/\/$/,"")}/${o}`:o,d=c.jsx("button",{type:"button","data-entry-chip":"true",title:`Copy ${u}`,"aria-label":`Copy entry-point path ${u} to clipboard`,onClick:()=>wb(u),style:{display:"inline-flex",alignItems:"center",padding:"2px 8px",border:"1px solid var(--border-default)",borderRadius:4,background:"transparent",fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text-primary)",cursor:"pointer",maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:o});return c.jsxs("section",{style:ri,"aria-labelledby":"md-fs",children:[c.jsx("h3",{id:"md-fs",style:ii,children:"Filesystem"}),Wa("Directory",a.dir||null,{path:!0}),cl("Entry point",d),cl("Size",c.jsx("span",{style:ei,children:Sb(a.sizeBytes)})),cl("Last modified",i)]},"filesystem")}function wb(a){var i;try{(i=navigator.clipboard)==null||i.writeText(a)}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("studio:toast",{detail:{message:`Copied ${a}`,severity:"info"}}))}function Ab(a){const i=a.benchmarkStatus==="pass"?"var(--status-installed)":a.benchmarkStatus==="fail"?"var(--red, #b54444)":"var(--status-own)",o=c.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:6,fontFamily:"var(--font-sans)",fontSize:13,color:"var(--text-primary)"},children:[c.jsx("span",{"aria-hidden":"true",style:{display:"inline-block",width:7,height:7,borderRadius:999,background:i}}),a.benchmarkStatus]}),u=a.lastBenchmark?c.jsx("span",{style:ei,title:a.lastBenchmark,children:Ry(a.lastBenchmark)}):ti("Last benchmark");return c.jsxs("section",{style:ri,"aria-labelledby":"md-bench",children:[c.jsx("h3",{id:"md-bench",style:ii,children:"Benchmark"}),cl("Eval count",c.jsx("span",{style:ei,children:a.evalCount})),cl("Assertions",c.jsx("span",{style:ei,children:a.assertionCount})),cl("Status",o),cl("Last benchmark",u)]},"benchmark")}function Nb(a){const i=a.mcpDeps??[];return c.jsxs("section",{style:ri,"aria-labelledby":"md-mcp",children:[c.jsx("h3",{id:"md-mcp",style:ii,children:"MCP dependencies"}),i.length===0?c.jsx("p",{style:{fontFamily:"var(--font-sans)",fontSize:12,color:"var(--text-secondary)",margin:0},children:"No MCP dependencies"}):c.jsx("ul",{style:{listStyle:"none",padding:0,margin:0},children:i.map(o=>c.jsxs("li",{"data-mcp-dep":o,style:{display:"flex",alignItems:"center",gap:8,padding:"6px 0",borderBottom:"1px solid var(--border-default)"},children:[c.jsx(Rb,{}),c.jsx("span",{style:{fontFamily:"var(--font-sans)",fontSize:13,color:"var(--text-primary)"},children:o})]},o))})]},"mcp-deps")}function Rb(){return c.jsxs("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",style:{color:"var(--text-secondary)",flexShrink:0},"aria-hidden":"true",children:[c.jsx("path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"}),c.jsx("polyline",{points:"3.27 6.96 12 12.01 20.73 6.96"})]})}function zb(a,i,o){const u=a.deps??[];return c.jsxs("section",{style:ri,"aria-labelledby":"md-skill-deps",children:[c.jsx("h3",{id:"md-skill-deps",style:ii,children:"Skill dependencies"}),u.length===0?c.jsx("p",{style:{fontFamily:"var(--font-sans)",fontSize:12,color:"var(--text-secondary)",margin:0},children:"No skill dependencies"}):c.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:u.map(d=>{const m=_b(d,i),p=m!=null,y={fontFamily:"var(--font-sans)",fontSize:12,padding:"3px 10px",border:"1px solid var(--border-default)",borderRadius:999,color:p?"var(--text-primary)":"var(--text-secondary)",background:"transparent",cursor:p?"pointer":"help"},g=p&&o?()=>o({plugin:m.plugin,skill:m.skill,origin:m.origin}):void 0,h=p&&o?C=>{(C.key==="Enter"||C.key===" ")&&(C.preventDefault(),o({plugin:m.plugin,skill:m.skill,origin:m.origin}))}:void 0;return c.jsx("button",{type:"button","data-chip":"skill-dep","data-present":p?"true":"false",title:p?`Open ${d}`:"Not installed",onClick:g,onKeyDown:h,style:y,children:d},d)})})]},"skill-deps")}function _b(a,i){const[o,u]=a.includes("/")?a.split("/"):["",a];for(const d of i)if(o&&d.plugin===o&&d.skill===u||!o&&d.skill===u)return d;return null}function yc(){const{state:a,setMobileView:i}=li();return a.isMobile?c.jsxs("button",{onClick:()=>i("list"),className:"flex items-center gap-1.5 px-3 py-2 text-[12px] font-medium",style:{background:"var(--surface-1)",color:"var(--text-secondary)",border:"none",borderBottom:"1px solid var(--border-subtle)",cursor:"pointer",width:"100%"},children:[c.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:c.jsx("polyline",{points:"15 18 9 12 15 6"})}),"Back to skills"]}):null}function Mb(a={}){if(a.selectedSkillInfo!==void 0||a.loadError!==void 0)return Db(a);const{state:i,selectSkill:o,setMode:u,refreshSkills:d}=li(),[m,p]=x.useState(typeof window<"u"?window.location.hash:"");if(x.useEffect(()=>{const h=()=>p(window.location.hash);return window.addEventListener("hashchange",h),()=>window.removeEventListener("hashchange",h)},[]),m==="#/updates")return c.jsxs("div",{className:"h-full overflow-auto animate-fade-in",children:[c.jsx(yc,{}),c.jsx(F1,{})]});if(i.mode==="create")return c.jsxs("div",{className:"h-full overflow-auto animate-fade-in",children:[c.jsx(yc,{}),c.jsx(Z1,{onCreated:(h,C)=>{u("browse"),d(),o({plugin:h,skill:C,origin:"source"})},onCancel:()=>u("browse")})]});if(!i.selectedSkill)return i.skillsError?c.jsx(Ms,{variant:"error",message:i.skillsError,onRetry:d}):!i.skillsLoading&&i.skills.length===0?c.jsx(Ms,{variant:"no-skills"}):c.jsx(Ms,{variant:"no-selection"});const y=i.selectedSkill,g=i.skills.find(h=>h.plugin===y.plugin&&h.skill===y.skill)??null;return c.jsxs("div",{className:"flex flex-col h-full",children:[c.jsx(yc,{}),c.jsx(Ob,{skillInfo:g,allSkills:i.skills,onSelectSkill:h=>o(h)})]})}function Db(a){const i=a.selectedSkillInfo??null,o=a.activeDetailTab??"overview";if(i==null)return Ub();if(a.loadError)return Bb(i,a.loadError);const u=a.allSkills&&a.onSelectSkill?{allSkills:a.allSkills,onSelectSkill:a.onSelectSkill}:void 0;return zy(i,o,a.onDetailTabChange,u)}function Ob({skillInfo:a,allSkills:i,onSelectSkill:o}){const[u,d]=x.useState("overview"),m=x.useMemo(()=>a?zy(a,u,d,{allSkills:i,onSelectSkill:o}):c.jsx(Ms,{variant:"no-selection"}),[a,u,i,o]);return c.jsx("div",{className:"flex flex-col h-full",style:{background:"var(--bg-canvas)"},children:m})}const Lb=[{id:"overview",label:"Overview"},{id:"versions",label:"Versions"}];function Hb(a,i){return c.jsx("div",{role:"tablist","aria-label":"Detail sections",style:{display:"flex",alignItems:"stretch",gap:4,borderBottom:"1px solid var(--border-default)",padding:"0 16px",background:"var(--bg-canvas)"},children:Lb.map(o=>{const u=o.id===a;return c.jsx("button",{type:"button",role:"tab","aria-selected":u,tabIndex:u?0:-1,id:`detail-tab-${o.id}`,"aria-controls":`detail-panel-${o.id}`,onClick:()=>i==null?void 0:i(o.id),style:{background:"transparent",border:"none",borderBottom:u?"2px solid var(--text-primary)":"2px solid transparent",padding:"10px 4px",marginBottom:-1,fontFamily:"var(--font-sans)",fontSize:13,fontWeight:u?500:400,color:u?"var(--text-primary)":"var(--text-secondary)",cursor:"pointer"},children:o.label},o.id)})})}function Ub(){return c.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",padding:32,background:"var(--bg-canvas)"},children:[c.jsx("h2",{style:{fontFamily:"var(--font-serif)",fontSize:20,fontWeight:500,color:"var(--text-primary)",margin:0,marginBottom:8},children:"Select a skill to view details"}),c.jsx("p",{style:{fontFamily:"var(--font-sans)",fontSize:13,color:"var(--text-secondary)",margin:0,maxWidth:420,textAlign:"center"},children:"Choose a skill from the sidebar — its frontmatter, filesystem info, and benchmark status will appear here."})]})}function Bb(a,i){return c.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:24,background:"var(--bg-canvas)",height:"100%"},children:[wy({skill:a}),c.jsxs("section",{role:"alert",style:{background:"var(--bg-surface)",border:"1px solid var(--border-default)",borderRadius:8,padding:"14px 16px"},children:[c.jsxs("h3",{style:{fontFamily:"var(--font-serif)",fontSize:15,fontWeight:500,color:"var(--text-primary)",margin:"0 0 8px"},children:["Couldn't load SKILL.md for ",a.skill]}),c.jsx("p",{style:{fontFamily:"var(--font-sans)",fontSize:12,color:"var(--text-secondary)",margin:"0 0 12px",wordBreak:"break-word"},children:i}),c.jsxs("div",{style:{display:"flex",gap:8},children:[c.jsx("button",{type:"button",style:{fontFamily:"var(--font-sans)",fontSize:12,padding:"4px 10px",border:"1px solid var(--border-default)",borderRadius:4,background:"transparent",color:"var(--text-primary)",cursor:"pointer"},children:"Open in editor"}),c.jsx("button",{type:"button",onClick:()=>{var o;return(o=navigator.clipboard)==null?void 0:o.writeText(a.dir)},style:{fontFamily:"var(--font-sans)",fontSize:12,padding:"4px 10px",border:"1px solid var(--border-default)",borderRadius:4,background:"transparent",color:"var(--text-primary)",cursor:"pointer"},children:"Copy path"})]})]})]})}function zy(a,i,o,u){return c.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%",background:"var(--bg-canvas)"},children:[c.jsx("div",{style:{padding:16,paddingBottom:12},children:wy({skill:a})}),Hb(i,o),c.jsxs("div",{role:"tabpanel",id:`detail-panel-${i}`,"aria-labelledby":`detail-tab-${i}`,style:{flex:1,minHeight:0,overflow:"auto"},children:[i==="overview"&&Tb({skill:a,allSkills:(u==null?void 0:u.allSkills)??[],onSelectSkill:u==null?void 0:u.onSelectSkill}),i==="versions"&&u!=null&&c.jsx(_1,{plugin:a.plugin,skill:a.skill,origin:a.origin,children:c.jsx("div",{style:{padding:16},children:c.jsx(L1,{})})},`${a.plugin}/${a.skill}-versions`),i==="versions"&&u==null&&c.jsx("div",{style:{padding:16,fontFamily:"var(--font-sans)",color:"var(--text-secondary)",fontSize:13},children:"Select a skill from the sidebar to load its version history."})]})]})}function Vb(){const{updateCount:a,state:i,dismissUpdateNotification:o}=li(),u=a>0&&!i.updateNotificationDismissed;return x.useEffect(()=>{if(!u)return;const d=setTimeout(()=>o(),1e4);return()=>clearTimeout(d)},[u,o]),u?c.jsxs("div",{className:"fixed bottom-4 right-4 z-50 flex items-center gap-3 px-4 py-3 rounded-lg text-[13px] font-medium animate-fade-in",style:{background:"var(--yellow-muted)",border:"1px solid var(--yellow)",color:"var(--text-primary)"},children:[c.jsxs("span",{children:[a," update",a===1?"":"s"," available"]}),c.jsx("button",{onClick:()=>{window.location.hash="#/updates"},className:"px-2 py-0.5 rounded text-[12px] font-semibold",style:{background:"var(--yellow)",color:"var(--surface-0)",border:"none",cursor:"pointer"},children:"View Updates"}),c.jsx("button",{onClick:o,className:"text-[14px] leading-none",style:{background:"transparent",border:"none",color:"var(--text-secondary)",cursor:"pointer",padding:"0 2px"},"aria-label":"Dismiss",children:"✕"})]}):null}const Ch=x.memo(function({message:i,politeness:o="polite",role:u}){const d=u??(o==="assertive"?"alert":"status");return c.jsx("div",{"aria-live":o,"aria-atomic":"true",role:d,"data-testid":"aria-live","data-politeness":o,style:{position:"absolute",width:1,height:1,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(50%)",whiteSpace:"nowrap",border:0,padding:0,margin:-1},children:i})});function Gb({toast:a,onDismiss:i}){const[o,u]=x.useState(!0),d=x.useRef(null);x.useEffect(()=>(d.current=requestAnimationFrame(()=>{d.current=requestAnimationFrame(()=>u(!1))}),()=>{d.current!=null&&cancelAnimationFrame(d.current)}),[]);const m={success:"var(--status-installed)",info:"var(--text-secondary)",error:"var(--color-accent, var(--accent-surface))"};return c.jsxs("div",{role:a.severity==="error"?"alert":"status","data-testid":"toast-item","data-severity":a.severity,style:{display:"flex",alignItems:"center",gap:12,padding:"10px 12px",minWidth:240,maxWidth:360,background:"var(--bg-canvas)",color:"var(--text-primary)",border:"1px solid var(--border-default)",borderLeft:`3px solid ${m[a.severity]}`,borderRadius:6,boxShadow:"0 8px 24px rgba(0,0,0,0.12)",fontFamily:"var(--font-sans)",fontSize:12,transform:o?"translateY(8px)":"translateY(0)",opacity:o?0:1,transition:"transform var(--duration-base, 180ms) var(--ease-standard, ease), opacity var(--duration-base, 180ms) var(--ease-standard, ease)"},children:[c.jsx("span",{style:{flex:1,minWidth:0},children:a.message}),a.action&&c.jsx("button",{type:"button",onClick:()=>{a.action.onInvoke(),i(a.id)},style:{background:"transparent",border:"1px solid var(--border-default)",borderRadius:4,padding:"3px 8px",color:"var(--text-primary)",cursor:"pointer",fontSize:11,fontFamily:"var(--font-sans)"},children:a.action.label}),c.jsx("button",{type:"button","aria-label":"Dismiss",onClick:()=>i(a.id),style:{background:"transparent",border:"none",padding:2,color:"var(--text-secondary)",cursor:"pointer",fontSize:14,lineHeight:1},children:"×"})]})}function Ib({toasts:a,onDismiss:i,liveMessage:o,liveAssertiveMessage:u}){return c.jsxs(c.Fragment,{children:[c.jsx(Ch,{politeness:"polite",message:o}),c.jsx(Ch,{politeness:"assertive",message:u}),c.jsx("div",{"data-testid":"toast-stack",style:{position:"fixed",right:16,bottom:16,display:"flex",flexDirection:"column-reverse",gap:8,zIndex:50,pointerEvents:"none"},children:a.map(d=>c.jsx("div",{style:{pointerEvents:"auto"},children:c.jsx(Gb,{toast:d,onDismiss:i})},d.id))})]})}const _y=x.createContext(null);function qb(){const a=x.useContext(_y);if(!a)throw new Error("useToast must be used inside <ToastProvider>.");return a}function Yb({children:a,maxVisible:i=4,defaultDurationMs:o=4e3}){const[u,d]=x.useState([]),[m,p]=x.useState(""),[y,g]=x.useState(""),h=x.useRef(new Map),C=x.useCallback(z=>{const E=h.current.get(z);E&&(clearTimeout(E),h.current.delete(z)),d(A=>A.filter(G=>G.id!==z))},[]),b=x.useCallback((z,E)=>{if(E<=0)return;const A=setTimeout(()=>{C(z)},E);h.current.set(z,A)},[C]),k=x.useCallback(z=>{const E=z.id??`toast-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,A={id:E,message:z.message,severity:z.severity??"info",durationMs:z.durationMs??o,action:z.action};return d(G=>[...G,A]),A.severity==="error"?g(A.message):p(A.message),b(E,A.durationMs),E},[o,b]),w=x.useCallback(()=>{for(const z of h.current.values())clearTimeout(z);h.current.clear(),d([])},[]);x.useEffect(()=>{function z(E){E.key==="Escape"&&d(A=>{if(A.length===0)return A;const G=A.slice(0,i),$=G[G.length-1],O=h.current.get($.id);return O&&(clearTimeout(O),h.current.delete($.id)),A.filter(J=>J.id!==$.id)})}return window.addEventListener("keydown",z),()=>window.removeEventListener("keydown",z)},[i]),x.useEffect(()=>()=>{for(const z of h.current.values())clearTimeout(z);h.current.clear()},[]);const R=u.slice(0,i),B=x.useMemo(()=>({toast:k,dismiss:C,clear:w}),[k,C,w]);return c.jsxs(_y.Provider,{value:B,children:[a,c.jsx(Ib,{toasts:R,onDismiss:C,liveMessage:m,liveAssertiveMessage:y})]})}const Xb=[{name:ut.shortcuts.groupNavigation,items:[{keys:"/",label:ut.shortcuts.search},{keys:"j",label:ut.shortcuts.moveDown},{keys:"k",label:ut.shortcuts.moveUp},{keys:"Enter",label:ut.shortcuts.openSelected},{keys:"Esc",label:"Close / clear"}]},{name:ut.shortcuts.groupActions,items:[{keys:"⌘K",label:ut.shortcuts.openPalette},{keys:"?",label:ut.shortcuts.openShortcuts},{keys:"⌘B",label:ut.shortcuts.toggleSidebar},{keys:"E",label:ut.actions.edit}]},{name:ut.shortcuts.groupTheme,items:[{keys:"⌘⇧D",label:ut.shortcuts.toggleTheme}]}];function Qb({open:a,onClose:i,groups:o=Xb,title:u=ut.shortcuts.title}){const d=x.useRef(null),m=x.useRef(null);return x.useEffect(()=>{var p;if(a)return d.current=document.activeElement??null,(p=m.current)==null||p.focus(),()=>{var y,g;(g=(y=d.current)==null?void 0:y.focus)==null||g.call(y),d.current=null}},[a]),x.useEffect(()=>{if(!a)return;function p(y){var g;if(y.key==="Escape"){y.preventDefault(),i();return}y.key==="Tab"&&(y.preventDefault(),(g=m.current)==null||g.focus())}return window.addEventListener("keydown",p,!0),()=>window.removeEventListener("keydown",p,!0)},[a,i]),a?c.jsx("div",{role:"presentation","data-testid":"shortcut-modal",style:{position:"fixed",inset:0,background:"color-mix(in srgb, var(--bg-canvas) 70%, transparent)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:60},onClick:p=>{p.target===p.currentTarget&&i()},children:c.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"shortcut-modal-title",style:{width:"min(480px, 92vw)",maxHeight:"80vh",overflow:"auto",background:"var(--bg-canvas)",border:"1px solid var(--border-default)",borderRadius:8,boxShadow:"0 16px 48px rgba(0,0,0,0.18)",padding:"16px 20px",fontFamily:"var(--font-sans)",color:"var(--text-primary)"},children:[c.jsxs("header",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:12},children:[c.jsx("h2",{id:"shortcut-modal-title",style:{margin:0,fontFamily:"var(--font-serif)",fontWeight:500,fontSize:18},children:u}),c.jsx("button",{ref:m,type:"button","aria-label":"Close",onClick:i,style:{background:"transparent",border:"1px solid var(--border-default)",borderRadius:4,padding:"2px 8px",color:"var(--text-secondary)",cursor:"pointer",fontSize:13},children:"Esc"})]}),o.map(p=>c.jsxs("section",{style:{marginBottom:12},children:[c.jsx("h3",{style:{fontSize:10,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.08em",color:"var(--text-secondary)",margin:"0 0 6px"},children:p.name}),c.jsx("ul",{style:{listStyle:"none",margin:0,padding:0},children:p.items.map(y=>c.jsxs("li",{style:{display:"flex",justifyContent:"space-between",padding:"4px 0",borderTop:"1px solid var(--border-default)",fontSize:13},children:[c.jsx("span",{children:y.label}),c.jsx("kbd",{style:{fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text-secondary)",border:"1px solid var(--border-default)",borderRadius:3,padding:"1px 6px"},children:y.keys})]},`${p.name}:${y.keys}`))})]},p.name))]})}):null}function Kb(a){const i=ut.actions,o=[{action:"open",label:i.open},{action:"copy-path",label:i.copyPath},{action:"reveal",label:i.revealInEditor},{action:"run-benchmark",label:i.runBenchmark}];if(a.origin==="source")return[...o,{action:"edit",label:i.edit},{action:"duplicate",label:i.duplicate}];const u=[...o];return a.updateAvailable&&u.push({action:"update",label:i.update}),u.push({action:"uninstall",label:i.uninstall}),u}function Zb({state:a,onClose:i,onAction:o,itemsOverride:u}){const d=x.useRef(null),m=x.useRef(null),[p,y]=x.useState(0),g=x.useMemo(()=>a.skill?u??Kb(a.skill):[],[a.skill,u]),h=x.useMemo(()=>{if(typeof window>"u")return{left:a.x,top:a.y};const b=8,k=220,w=44+g.length*28;let R=a.x,B=a.y;return R+k+b>window.innerWidth&&(R=Math.max(b,a.x-k)),B+w+b>window.innerHeight&&(B=Math.max(b,a.y-w)),{left:R,top:B}},[a.x,a.y,g.length]);x.useEffect(()=>{if(a.open)return m.current=document.activeElement??null,y(0),requestAnimationFrame(()=>{var b;(b=d.current)==null||b.focus()}),()=>{var b,k;(k=(b=m.current)==null?void 0:b.focus)==null||k.call(b),m.current=null}},[a.open]);const C=x.useCallback(()=>{if(!a.skill)return;const b=g[p];!b||b.disabled||(o(b.action,a.skill),i())},[g,p,a.skill,o,i]);return x.useEffect(()=>{if(!a.open)return;function b(w){if(w.key==="Escape"){w.preventDefault(),i();return}if(w.key==="ArrowDown"){w.preventDefault(),y(R=>Math.min(R+1,Math.max(g.length-1,0)));return}if(w.key==="ArrowUp"){w.preventDefault(),y(R=>Math.max(R-1,0));return}if(w.key==="Enter"||w.key===" "){w.preventDefault(),C();return}}function k(w){d.current&&w.target instanceof Node&&(d.current.contains(w.target)||i())}return window.addEventListener("keydown",b,!0),window.addEventListener("mousedown",k,!0),()=>{window.removeEventListener("keydown",b,!0),window.removeEventListener("mousedown",k,!0)}},[a.open,i,g.length,C]),!a.open||!a.skill?null:c.jsx("div",{ref:d,role:"menu",tabIndex:-1,"data-testid":"context-menu",style:{position:"fixed",left:h.left,top:h.top,zIndex:70,minWidth:200,padding:4,background:"var(--bg-canvas)",border:"1px solid var(--border-default)",borderRadius:6,boxShadow:"0 12px 32px rgba(0,0,0,0.16)",fontFamily:"var(--font-sans)",fontSize:13,color:"var(--text-primary)",outline:"none"},children:g.map((b,k)=>c.jsx("div",{role:"menuitem","aria-disabled":b.disabled||void 0,"data-action":b.action,"data-selected":k===p||void 0,onMouseEnter:()=>y(k),onClick:()=>{b.disabled||(o(b.action,a.skill),i())},style:{padding:"5px 10px",borderRadius:4,cursor:b.disabled?"default":"pointer",opacity:b.disabled?.5:1,background:k===p?"color-mix(in srgb, var(--accent-surface) 10%, transparent)":"transparent"},children:b.label},b.action))})}const jh={open:!1,x:0,y:0,skill:null};function Jb(a,i){return{open:!0,x:a.clientX,y:a.clientY,skill:i}}function na(a,i="info"){typeof window>"u"||window.dispatchEvent(new CustomEvent("studio:toast",{detail:{message:a,severity:i}}))}function $b(a,i){var o;switch(a){case"copy-path":try{(o=navigator.clipboard)==null||o.writeText(i.dir)}catch{na(ut.toasts.permissionDenied,"error");return}na(ut.toasts.pathCopied,"info");return;case"open":case"reveal":case"edit":na(ut.actions.editPlaceholder,"info");return;case"run-benchmark":na(ut.toasts.benchmarkQueued,"info");return;case"duplicate":na(ut.toasts.skillDuplicated,"info");return;case"update":na(ut.toasts.skillUpdated,"info");return;case"uninstall":na(ut.actions.editPlaceholder,"info");return;default:return}}const Wb=x.lazy(()=>Ah(()=>import("./CommandPalette-eD24lhFu.js"),__vite__mapDeps([0,1])));function Fb(){return c.jsx(d0,{children:c.jsx(o0,{children:c.jsxs(Yb,{children:[c.jsx(Pb,{}),c.jsx(Vb,{})]})})})}function Pb(){const{state:a,selectSkill:i,refreshSkills:o}=li(),{config:u}=Hs(),{mode:d,setTheme:m}=Oh(),{toast:p}=qb(),[y,g]=x.useState(()=>E1()),[h]=x.useState(!0),[C,b]=x.useState(!1),[k,w]=x.useState(!1),[R,B]=x.useState("overview"),[z,E]=x.useState(jh),A=x.useCallback((L,D)=>{E(Jb(L,D))},[]),G=x.useCallback(()=>{E(jh)},[]);x.useEffect(()=>{function L(D){if(!(D instanceof CustomEvent))return;const W=D.detail;W!=null&&W.message&&p({message:W.message,severity:W.severity??"info"})}return window.addEventListener("studio:toast",L),()=>window.removeEventListener("studio:toast",L)},[p]),x.useEffect(()=>{document.documentElement.style.setProperty("--sidebar-width",`${y}px`)},[y]);const $=x.useMemo(()=>a.selectedSkill?a.skills.find(L=>L.plugin===a.selectedSkill.plugin&&L.skill===a.selectedSkill.skill)??null:null,[a.skills,a.selectedSkill]),O=x.useCallback(L=>{i({plugin:L.plugin,skill:L.skill,origin:L.origin})},[i]),J=x.useMemo(()=>{if(!a.selectedSkill)return"";const L=a.selectedSkill.origin==="installed"?"Installed":"Own";return`Viewing ${a.selectedSkill.skill} (${L})`},[a.selectedSkill]),T=x.useMemo(()=>[{id:"switch-theme",label:ut.palette.actionSwitchTheme,description:"Cycle light / dark / auto",keywords:["theme","dark","light","mode"],onInvoke:()=>m(d==="light"?"dark":d==="dark"?"auto":"light")},{id:"show-shortcuts",label:"Show keyboard shortcuts",description:"Open the cheatsheet",keywords:["help","keys"],onInvoke:()=>w(!0)},{id:"refresh-skills",label:"Refresh skills",description:"Re-scan local + installed",keywords:["reload","scan"],onInvoke:()=>o()}],[d,m,o]);return yy([{key:"cmd+k",handler:()=>b(L=>!L)},{key:"ctrl+k",handler:()=>b(L=>!L)},{key:"?",handler:()=>w(L=>!L)},{key:"cmd+shift+d",handler:()=>m(d==="light"?"dark":"light")},{key:"ctrl+shift+d",handler:()=>m(d==="light"?"dark":"light")},{key:"e",handler:()=>p({message:ut.actions.editPlaceholder,severity:"info"})}]),c.jsxs(c.Fragment,{children:[c.jsx(f0,{sidebarWidth:y,sidebarHidden:a.isMobile&&a.mobileView==="detail",banner:c.jsx(j1,{connected:h}),liveMessage:J,topRail:c.jsx(g0,{projectName:(u==null?void 0:u.projectName)??null,selected:a.selectedSkill,onOpenPalette:()=>b(!0)}),sidebar:c.jsx(p1,{skills:a.skills,selectedKey:a.selectedSkill?{plugin:a.selectedSkill.plugin,skill:a.selectedSkill.skill}:null,onSelect:O,isLoading:a.skillsLoading,error:a.skillsError??null,onRetry:o,onContextMenu:A}),resizeHandle:c.jsx(C1,{initialWidth:y??ar,onChange:g}),main:c.jsx(Mb,{selectedSkillInfo:$,activeDetailTab:R,onDetailTabChange:B,allSkills:a.skills,onSelectSkill:O}),statusBar:c.jsx(C0,{projectPath:(u==null?void 0:u.root)??null,modelName:(u==null?void 0:u.model)??null,health:u!=null&&u.error?"degraded":"ok"})}),c.jsx(Qb,{open:k,onClose:()=>w(!1)}),c.jsx(Zb,{state:z,onClose:G,onAction:(L,D)=>$b(L,D)}),C&&c.jsx(x.Suspense,{fallback:null,children:c.jsx(Wb,{open:C,onClose:()=>b(!1),commands:T})})]})}Pv.createRoot(document.getElementById("root")).render(c.jsx(x.StrictMode,{children:c.jsx(T0,{children:c.jsx(Fb,{})})}));export{c as j,x as r,ut as s};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@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-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-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-duration:initial}}}@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-serif:ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--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%;-moz-tab-size:4;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]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-1{top:calc(var(--spacing) * 1)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-4{top:calc(var(--spacing) * 4)}.top-8{top:calc(var(--spacing) * 8)}.top-full{top:100%}.right-0{right:calc(var(--spacing) * 0)}.right-1{right:calc(var(--spacing) * 1)}.right-4{right:calc(var(--spacing) * 4)}.right-5{right:calc(var(--spacing) * 5)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-5{bottom:calc(var(--spacing) * 5)}.left-0{left:calc(var(--spacing) * 0)}.left-1\.5{left:calc(var(--spacing) * 1.5)}.left-3{left:calc(var(--spacing) * 3)}.z-50{z-index:50}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.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}}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.my-4{margin-block:calc(var(--spacing) * 4)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-3\.5{margin-top:calc(var(--spacing) * 3.5)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-7{margin-bottom:calc(var(--spacing) * 7)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-36{height:calc(var(--spacing) * 36)}.h-48{height:calc(var(--spacing) * 48)}.h-full{height:100%}.h-px{height:1px}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-\[500px\]{max-height:500px}.min-h-0{min-height:calc(var(--spacing) * 0)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-\[340px\]{width:340px}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.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}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-\[3fr_2fr\]{grid-template-columns:3fr 2fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-y-1{row-gap:calc(var(--spacing) * 1)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[3px\]{border-radius:3px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-10{padding-inline:calc(var(--spacing) * 10)}.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-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-20{padding-block:calc(var(--spacing) * 20)}.py-px{padding-block:1px}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-3\.5{padding-top:calc(var(--spacing) * 3.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-\[9px\]{font-size:9px}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[18px\]{font-size:18px}.text-\[20px\]{font-size:20px}.text-\[22px\]{font-size:22px}.text-\[24px\]{font-size:24px}.text-\[28px\]{font-size:28px}.text-\[32px\]{font-size:32px}.text-\[36px\]{font-size:36px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-pre-wrap{white-space:pre-wrap}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-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{--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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.hover\:underline:hover{text-decoration-line:underline}}}:root{--color-paper:#fbf8f3;--color-surface:#fff;--color-ink:#191919;--color-ink-muted:#5a5651;--color-rule:#e8e1d6;--color-accent:#d4a27f;--color-accent-ink:#7a4a24;--color-installed:#2f6a4a;--color-own:#8a5a1f;--color-focus:#3b6ea8;--font-serif:"Source Serif 4 Variable", "Source Serif 4", Georgia, serif;--font-sans:"Inter Tight Variable", "Inter Tight", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono Variable", "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;--ease-standard:cubic-bezier(.2, 0, 0, 1);--duration-fast:.12s;--duration-base:.18s;--duration-modal:.24s}[data-theme=light]{--color-paper:#fbf8f3;--color-surface:#fff;--color-ink:#191919;--color-ink-muted:#5a5651;--color-rule:#e8e1d6;--color-accent:#d4a27f;--color-accent-ink:#7a4a24;--color-installed:#2f6a4a;--color-own:#8a5a1f;--color-focus:#3b6ea8}[data-theme=dark]{--color-paper:#1a1814;--color-surface:#221f1a;--color-ink:#f2ece1;--color-ink-muted:#a59d8f;--color-rule:#2e2a24;--color-accent:#e0b793;--color-accent-ink:#f2ece1;--color-installed:#86c9a5;--color-own:#e6b877;--color-focus:#7ca8d9}[data-contrast=more]{--color-ink-muted:#3d3a36;--color-rule:#b8ad9a}[data-theme=dark][data-contrast=more]{--color-ink-muted:#d4cbba;--color-rule:#4a453d}:root{--bg-canvas:var(--color-paper);--bg-surface:var(--color-surface);--text-primary:var(--color-ink);--text-secondary:var(--color-ink-muted);--text-accent:var(--color-accent-ink);--border-default:var(--color-rule);--border-focus:var(--color-focus);--status-installed:var(--color-installed);--status-own:var(--color-own);--accent-surface:var(--color-accent);--surface-0:var(--color-paper);--surface-1:var(--color-surface);--surface-2:var(--color-surface);--surface-3:var(--color-rule);--surface-4:var(--color-rule);--border-subtle:var(--color-rule);--border-hover:var(--color-accent);--border-active:var(--color-focus);--text-tertiary:var(--color-ink-muted);--accent:var(--color-accent);--accent-hover:var(--color-accent-ink);--accent-muted:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){:root{--accent-muted:color-mix(in srgb, var(--color-accent) 20%, transparent)}}:root{--green:var(--color-installed);--green-muted:var(--color-installed)}@supports (color:color-mix(in lab,red,red)){:root{--green-muted:color-mix(in srgb, var(--color-installed) 18%, transparent)}}:root{--red:#b54444;--red-muted:#b544442e;--yellow:var(--color-own);--yellow-muted:var(--color-own)}@supports (color:color-mix(in lab,red,red)){:root{--yellow-muted:color-mix(in srgb, var(--color-own) 18%, transparent)}}:root{--orange:var(--color-own);--orange-muted:var(--color-own)}@supports (color:color-mix(in lab,red,red)){:root{--orange-muted:color-mix(in srgb, var(--color-own) 18%, transparent)}}:root{--purple:var(--color-accent);--purple-muted:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){:root{--purple-muted:color-mix(in srgb, var(--color-accent) 18%, transparent)}}:root{--ease-out-expo:var(--ease-standard);--ease-spring:var(--ease-standard)}[data-theme=dark]{--red:#d48a8a;--red-muted:#d48a8a38}html{background:var(--bg-canvas);color:var(--text-primary)}body{background:var(--bg-canvas);color:var(--text-primary);font-family:var(--font-sans);font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){::selection{background:color-mix(in srgb,var(--color-accent) 35%,transparent)}}::selection{color:var(--text-primary)}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:4px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:scale(.98)translateY(4px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes spin-slow{to{transform:rotate(360deg)}}.animate-fade-in{animation:fade-in var(--duration-base) var(--ease-standard) both}.animate-fade-in-scale{animation:fade-in-scale var(--duration-base) var(--ease-standard) both}.animate-slide-in-right{animation:slide-in-right var(--duration-base) var(--ease-standard) both}.animate-overlay-in{animation:overlay-in var(--duration-fast) var(--ease-standard) both}.animate-modal-in{animation:modal-in var(--duration-modal) var(--ease-standard) both}.stagger-children>*{animation:fade-in var(--duration-base) var(--ease-standard) both}.stagger-children>:first-child{animation-delay:0s}.stagger-children>:nth-child(2){animation-delay:30ms}.stagger-children>:nth-child(3){animation-delay:60ms}.stagger-children>:nth-child(4){animation-delay:90ms}.stagger-children>:nth-child(n+5){animation-delay:.12s}@media(prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;transition-delay:0s!important;animation-duration:0s!important;animation-delay:0s!important}}.placeholder{background:var(--border-default);opacity:.6;border-radius:4px}.glass-card{background:var(--bg-surface);border:1px solid var(--border-default);transition:border-color var(--duration-fast) var(--ease-standard);border-radius:8px}.glass-card:hover,.glass-card-interactive:hover{border-color:var(--color-accent)}.pill{letter-spacing:.02em;color:var(--text-secondary);align-items:center;gap:6px;padding:2px 0;font-size:11px;font-weight:500;line-height:1.4;display:inline-flex}.pill:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.pill-installed{color:var(--status-installed)}.pill-own{color:var(--status-own)}.input-field{background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-primary);font-size:13px;font-family:var(--font-sans);transition:border-color var(--duration-fast) var(--ease-standard);border-radius:6px;outline:none;width:100%;padding:8px 12px}.input-field:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--color-focus)}@supports (color:color-mix(in lab,red,red)){.input-field:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--color-focus) 18%,transparent)}}.input-field::placeholder{color:var(--text-secondary)}.btn{height:36px;font-size:13px;font-weight:500;font-family:var(--font-sans);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard);white-space:nowrap;border:1px solid #0000;border-radius:6px;outline:none;justify-content:center;align-items:center;gap:6px;padding:8px 14px;display:inline-flex}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--color-ink);color:var(--color-paper)}.btn-primary:hover:not(:disabled){background:var(--color-ink)}@supports (color:color-mix(in lab,red,red)){.btn-primary:hover:not(:disabled){background:color-mix(in srgb,var(--color-ink) 88%,var(--color-accent))}}.btn-secondary{color:var(--text-primary);border-color:var(--border-default);background:0 0}.btn-secondary:hover:not(:disabled){border-color:var(--color-accent);color:var(--text-primary)}.btn-purple{background:var(--color-ink);color:var(--color-paper)}.btn-purple:hover:not(:disabled){background:var(--color-ink)}@supports (color:color-mix(in lab,red,red)){.btn-purple:hover:not(:disabled){background:color-mix(in srgb,var(--color-ink) 88%,var(--color-accent))}}.btn-danger{color:var(--red);border-color:var(--red);background:0 0}.btn-danger:hover:not(:disabled){background:var(--red-muted)}.btn-ghost{color:var(--text-secondary);background:0 0;height:auto;padding:6px 10px}.btn-ghost:hover:not(:disabled){color:var(--text-primary);background:var(--border-default)}.spinner{border:2px solid var(--border-default);border-top-color:var(--color-accent);border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin-slow}.spinner-lg{border-width:2.5px;width:24px;height:24px}.score-ring{--size:56px;--stroke:4px;width:var(--size);height:var(--size);justify-content:center;align-items:center;display:flex;position:relative}.score-ring svg{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotate(-90deg)}.score-ring circle{fill:none;stroke-width:var(--stroke);stroke-linecap:round}.score-ring .track{stroke:var(--border-default)}.score-ring .fill{transition:stroke-dashoffset .8s var(--ease-standard)}.divide-y>*+*{border-top-color:var(--border-default)}hr{border:none;border-top:1px solid var(--border-default);margin:0}:root{--theme-transition:background-color .15s var(--ease-standard), color .15s var(--ease-standard), border-color .15s var(--ease-standard)}html,body,.glass-card,.pill,.input-field,.btn,aside,header,footer,main,nav,section,[data-theme-surface]{transition:var(--theme-transition)}:focus-visible{transition-property:none}input:focus,textarea:focus,select:focus,button:focus{transition:none}.focus-ring:focus-visible,[role=button]:focus-visible,[role=menuitem]:focus-visible,[role=tab]:focus-visible,[role=option]:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:4px}[data-contrast=more] :focus-visible,[data-contrast=more] .focus-ring:focus-visible{outline-width:3px}@media(max-width:1024px)and (min-width:768px){.studio-grid{grid-template-columns:240px 1px 1fr!important}}@media(max-width:767px){.studio-grid{grid-template-columns:1fr!important}.studio-grid>:nth-child(2),.studio-grid>:nth-child(3){display:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-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-duration{syntax:"*";inherits:false}
|
|
1
|
+
/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@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-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-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-duration:initial}}}@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-serif:ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--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%;-moz-tab-size:4;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]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-1{top:calc(var(--spacing) * 1)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-4{top:calc(var(--spacing) * 4)}.top-8{top:calc(var(--spacing) * 8)}.top-full{top:100%}.right-0{right:calc(var(--spacing) * 0)}.right-1{right:calc(var(--spacing) * 1)}.right-4{right:calc(var(--spacing) * 4)}.right-5{right:calc(var(--spacing) * 5)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-5{bottom:calc(var(--spacing) * 5)}.left-0{left:calc(var(--spacing) * 0)}.left-1\.5{left:calc(var(--spacing) * 1.5)}.left-3{left:calc(var(--spacing) * 3)}.z-50{z-index:50}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.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}}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.my-4{margin-block:calc(var(--spacing) * 4)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-3\.5{margin-top:calc(var(--spacing) * 3.5)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-7{margin-bottom:calc(var(--spacing) * 7)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-36{height:calc(var(--spacing) * 36)}.h-48{height:calc(var(--spacing) * 48)}.h-full{height:100%}.h-px{height:1px}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-\[500px\]{max-height:500px}.min-h-0{min-height:calc(var(--spacing) * 0)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-\[340px\]{width:340px}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.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}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-\[3fr_2fr\]{grid-template-columns:3fr 2fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-y-1{row-gap:calc(var(--spacing) * 1)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[3px\]{border-radius:3px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-10{padding-inline:calc(var(--spacing) * 10)}.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-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-20{padding-block:calc(var(--spacing) * 20)}.py-px{padding-block:1px}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-3\.5{padding-top:calc(var(--spacing) * 3.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-\[9px\]{font-size:9px}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[18px\]{font-size:18px}.text-\[20px\]{font-size:20px}.text-\[22px\]{font-size:22px}.text-\[24px\]{font-size:24px}.text-\[28px\]{font-size:28px}.text-\[32px\]{font-size:32px}.text-\[36px\]{font-size:36px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-pre-wrap{white-space:pre-wrap}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-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{--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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.hover\:underline:hover{text-decoration-line:underline}}}:root{--color-paper:#fbf8f3;--color-surface:#fff;--color-ink:#191919;--color-ink-muted:#5a5651;--color-rule:#e8e1d6;--color-accent:#d4a27f;--color-accent-ink:#7a4a24;--color-installed:#2f6a4a;--color-own:#8a5a1f;--color-focus:#3b6ea8;--font-serif:"Source Serif 4 Variable", "Source Serif 4", Georgia, serif;--font-sans:"Inter Tight Variable", "Inter Tight", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono Variable", "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;--ease-standard:cubic-bezier(.2, 0, 0, 1);--duration-fast:.12s;--duration-base:.18s;--duration-modal:.24s}[data-theme=light]{--color-paper:#fbf8f3;--color-surface:#fff;--color-ink:#191919;--color-ink-muted:#5a5651;--color-rule:#e8e1d6;--color-accent:#d4a27f;--color-accent-ink:#7a4a24;--color-installed:#2f6a4a;--color-own:#8a5a1f;--color-focus:#3b6ea8}[data-theme=dark]{--color-paper:#1a1814;--color-surface:#221f1a;--color-ink:#f2ece1;--color-ink-muted:#a59d8f;--color-rule:#2e2a24;--color-accent:#e0b793;--color-accent-ink:#f2ece1;--color-installed:#86c9a5;--color-own:#e6b877;--color-focus:#7ca8d9}[data-contrast=more]{--color-ink-muted:#3d3a36;--color-rule:#b8ad9a}[data-theme=dark][data-contrast=more]{--color-ink-muted:#d4cbba;--color-rule:#4a453d}:root{--bg-canvas:var(--color-paper);--bg-surface:var(--color-surface);--text-primary:var(--color-ink);--text-secondary:var(--color-ink-muted);--text-accent:var(--color-accent-ink);--border-default:var(--color-rule);--border-focus:var(--color-focus);--status-installed:var(--color-installed);--status-own:var(--color-own);--accent-surface:var(--color-accent);--surface-0:var(--color-paper);--surface-1:var(--color-surface);--surface-2:var(--color-surface);--surface-3:var(--color-rule);--surface-4:var(--color-rule);--border-subtle:var(--color-rule);--border-hover:var(--color-accent);--border-active:var(--color-focus);--text-tertiary:var(--color-ink-muted);--accent:var(--color-accent);--accent-hover:var(--color-accent-ink);--accent-muted:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){:root{--accent-muted:color-mix(in srgb, var(--color-accent) 20%, transparent)}}:root{--green:var(--color-installed);--green-muted:var(--color-installed)}@supports (color:color-mix(in lab,red,red)){:root{--green-muted:color-mix(in srgb, var(--color-installed) 18%, transparent)}}:root{--red:#b54444;--red-muted:#b544442e;--yellow:var(--color-own);--yellow-muted:var(--color-own)}@supports (color:color-mix(in lab,red,red)){:root{--yellow-muted:color-mix(in srgb, var(--color-own) 18%, transparent)}}:root{--orange:var(--color-own);--orange-muted:var(--color-own)}@supports (color:color-mix(in lab,red,red)){:root{--orange-muted:color-mix(in srgb, var(--color-own) 18%, transparent)}}:root{--purple:var(--color-accent);--purple-muted:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){:root{--purple-muted:color-mix(in srgb, var(--color-accent) 18%, transparent)}}:root{--ease-out-expo:var(--ease-standard);--ease-spring:var(--ease-standard)}[data-theme=dark]{--red:#d48a8a;--red-muted:#d48a8a38}html{background:var(--bg-canvas);color:var(--text-primary)}body{background:var(--bg-canvas);color:var(--text-primary);font-family:var(--font-sans);font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){::selection{background:color-mix(in srgb,var(--color-accent) 35%,transparent)}}::selection{color:var(--text-primary)}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:4px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:scale(.98)translateY(4px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes spin-slow{to{transform:rotate(360deg)}}.animate-fade-in{animation:fade-in var(--duration-base) var(--ease-standard) both}.animate-fade-in-scale{animation:fade-in-scale var(--duration-base) var(--ease-standard) both}.animate-slide-in-right{animation:slide-in-right var(--duration-base) var(--ease-standard) both}.animate-overlay-in{animation:overlay-in var(--duration-fast) var(--ease-standard) both}.animate-modal-in{animation:modal-in var(--duration-modal) var(--ease-standard) both}.stagger-children>*{animation:fade-in var(--duration-base) var(--ease-standard) both}.stagger-children>:first-child{animation-delay:0s}.stagger-children>:nth-child(2){animation-delay:30ms}.stagger-children>:nth-child(3){animation-delay:60ms}.stagger-children>:nth-child(4){animation-delay:90ms}.stagger-children>:nth-child(n+5){animation-delay:.12s}@media(prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;transition-delay:0s!important;animation-duration:0s!important;animation-delay:0s!important}}.placeholder,.skeleton{background:var(--border-default);opacity:.6;border-radius:4px}.glass-card{background:var(--bg-surface);border:1px solid var(--border-default);transition:border-color var(--duration-fast) var(--ease-standard);border-radius:8px}.glass-card:hover,.glass-card-interactive:hover{border-color:var(--color-accent)}.pill{letter-spacing:.02em;color:var(--text-secondary);align-items:center;gap:6px;padding:2px 0;font-size:11px;font-weight:500;line-height:1.4;display:inline-flex}.pill:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.pill-installed{color:var(--status-installed)}.pill-own{color:var(--status-own)}.input-field{background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-primary);font-size:13px;font-family:var(--font-sans);transition:border-color var(--duration-fast) var(--ease-standard);border-radius:6px;outline:none;width:100%;padding:8px 12px}.input-field:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--color-focus)}@supports (color:color-mix(in lab,red,red)){.input-field:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--color-focus) 18%,transparent)}}.input-field::placeholder{color:var(--text-secondary)}.btn{height:36px;font-size:13px;font-weight:500;font-family:var(--font-sans);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard);white-space:nowrap;border:1px solid #0000;border-radius:6px;outline:none;justify-content:center;align-items:center;gap:6px;padding:8px 14px;display:inline-flex}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--color-ink);color:var(--color-paper)}.btn-primary:hover:not(:disabled){background:var(--color-ink)}@supports (color:color-mix(in lab,red,red)){.btn-primary:hover:not(:disabled){background:color-mix(in srgb,var(--color-ink) 88%,var(--color-accent))}}.btn-secondary{color:var(--text-primary);border-color:var(--border-default);background:0 0}.btn-secondary:hover:not(:disabled){border-color:var(--color-accent);color:var(--text-primary)}.btn-purple{background:var(--color-ink);color:var(--color-paper)}.btn-purple:hover:not(:disabled){background:var(--color-ink)}@supports (color:color-mix(in lab,red,red)){.btn-purple:hover:not(:disabled){background:color-mix(in srgb,var(--color-ink) 88%,var(--color-accent))}}.btn-danger{color:var(--red);border-color:var(--red);background:0 0}.btn-danger:hover:not(:disabled){background:var(--red-muted)}.btn-ghost{color:var(--text-secondary);background:0 0;height:auto;padding:6px 10px}.btn-ghost:hover:not(:disabled){color:var(--text-primary);background:var(--border-default)}.spinner{border:2px solid var(--border-default);border-top-color:var(--color-accent);border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin-slow}.spinner-lg{border-width:2.5px;width:24px;height:24px}.score-ring{--size:56px;--stroke:4px;width:var(--size);height:var(--size);justify-content:center;align-items:center;display:flex;position:relative}.score-ring svg{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotate(-90deg)}.score-ring circle{fill:none;stroke-width:var(--stroke);stroke-linecap:round}.score-ring .track{stroke:var(--border-default)}.score-ring .fill{transition:stroke-dashoffset .8s var(--ease-standard)}.divide-y>*+*{border-top-color:var(--border-default)}hr{border:none;border-top:1px solid var(--border-default);margin:0}:root{--theme-transition:background-color .15s var(--ease-standard), color .15s var(--ease-standard), border-color .15s var(--ease-standard)}html,body,.glass-card,.pill,.input-field,.btn,aside,header,footer,main,nav,section,[data-theme-surface]{transition:var(--theme-transition)}:focus-visible{transition-property:none}input:focus,textarea:focus,select:focus,button:focus{transition:none}.focus-ring:focus-visible,[role=button]:focus-visible,[role=menuitem]:focus-visible,[role=tab]:focus-visible,[role=option]:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:4px}[data-contrast=more] :focus-visible,[data-contrast=more] .focus-ring:focus-visible{outline-width:3px}@media(max-width:1024px)and (min-width:768px){.studio-grid{grid-template-columns:240px 1px 1fr!important}}@media(max-width:767px){.studio-grid{grid-template-columns:1fr!important}.studio-grid>:nth-child(2),.studio-grid>:nth-child(3){display:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-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-duration{syntax:"*";inherits:false}
|
package/dist/eval-ui/index.html
CHANGED
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
}
|
|
47
47
|
})();
|
|
48
48
|
</script>
|
|
49
|
-
<script type="module" crossorigin src="/assets/index-
|
|
50
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
49
|
+
<script type="module" crossorigin src="/assets/index-Bi2n8mTB.js"></script>
|
|
50
|
+
<link rel="stylesheet" crossorigin href="/assets/index-EnxOcJMr.css">
|
|
51
51
|
<link rel="stylesheet" crossorigin href="/assets/fonts-i7Lkz2zN.css">
|
|
52
52
|
</head>
|
|
53
53
|
<body>
|