chorus-codes 0.8.36 → 0.8.38
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/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/connect/page.js +1 -1
- package/.next/server/app/connect/page_client-reference-manifest.js +1 -1
- package/.next/server/app/demo/[scenario]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/new/page.js +1 -1
- package/.next/server/app/new/page_client-reference-manifest.js +1 -1
- package/.next/server/app/new.html +1 -1
- package/.next/server/app/new.rsc +3 -3
- package/.next/server/app/new.segments/_full.segment.rsc +3 -3
- package/.next/server/app/new.segments/_head.segment.rsc +1 -1
- package/.next/server/app/new.segments/_index.segment.rsc +2 -2
- package/.next/server/app/new.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/new.segments/new/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/new.segments/new.segment.rsc +1 -1
- package/.next/server/app/onboarding/page.js +2 -2
- package/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/server/app/onboarding.html +1 -1
- package/.next/server/app/onboarding.rsc +3 -3
- package/.next/server/app/onboarding.segments/_full.segment.rsc +3 -3
- package/.next/server/app/onboarding.segments/_head.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/_index.segment.rsc +2 -2
- package/.next/server/app/onboarding.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/onboarding.segments/onboarding.segment.rsc +1 -1
- package/.next/server/app/page.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/personas/page_client-reference-manifest.js +1 -1
- package/.next/server/app/personas.html +1 -1
- package/.next/server/app/personas.rsc +3 -3
- package/.next/server/app/personas.segments/_full.segment.rsc +3 -3
- package/.next/server/app/personas.segments/_head.segment.rsc +1 -1
- package/.next/server/app/personas.segments/_index.segment.rsc +2 -2
- package/.next/server/app/personas.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/personas.segments/personas/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/personas.segments/personas.segment.rsc +1 -1
- package/.next/server/app/runs/[runId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/runs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/permissions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +3 -3
- package/.next/server/app/settings.segments/_full.segment.rsc +3 -3
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/server/app/templates/page.js +1 -1
- package/.next/server/app/templates/page_client-reference-manifest.js +1 -1
- package/.next/server/app/templates.html +1 -1
- package/.next/server/app/templates.rsc +3 -3
- package/.next/server/app/templates.segments/_full.segment.rsc +3 -3
- package/.next/server/app/templates.segments/_head.segment.rsc +1 -1
- package/.next/server/app/templates.segments/_index.segment.rsc +2 -2
- package/.next/server/app/templates.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/templates.segments/templates/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/templates.segments/templates.segment.rsc +1 -1
- package/.next/server/chunks/189.js +1 -1
- package/.next/server/chunks/642.js +1 -1
- package/.next/server/chunks/681.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{245-203bd8285e6b0858.js → 245-c081ea5ea945611e.js} +1 -1
- package/.next/static/chunks/{641-7e3f4fc19494c5dc.js → 641-3e7b9575770aa968.js} +1 -1
- package/.next/static/chunks/744-0fa71524896d2b59.js +1 -0
- package/.next/static/chunks/app/connect/page-ae2d68d73d1fa88a.js +1 -0
- package/.next/static/chunks/app/new/page-7793713d2f445862.js +1 -0
- package/.next/static/chunks/app/onboarding/page-66e7f39dc92dd401.js +1 -0
- package/.next/static/chunks/app/page-4bbcd06414430038.js +1 -0
- package/.next/static/chunks/app/templates/page-5ecd9b15c495b3bd.js +1 -0
- package/.next/static/css/b914f2b25cf933a9.css +3 -0
- package/.next/trace +20 -20
- package/.next/trace-build +1 -1
- package/dist/cli/commands/doctor.js +1 -0
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/init.js +2 -0
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/quickstart.js +18 -10
- package/dist/cli/commands/quickstart.js.map +1 -1
- package/dist/daemon/agents/index.js +13 -8
- package/dist/daemon/agents/index.js.map +1 -1
- package/dist/daemon/agents/local.js +189 -0
- package/dist/daemon/agents/local.js.map +1 -0
- package/dist/daemon/orchestrators/grok.js +101 -0
- package/dist/daemon/orchestrators/grok.js.map +1 -0
- package/dist/daemon/orchestrators/index.js +2 -0
- package/dist/daemon/orchestrators/index.js.map +1 -1
- package/dist/daemon/orchestrators/shared.js.map +1 -1
- package/dist/daemon/runner/fallback-registry.js +20 -6
- package/dist/daemon/runner/fallback-registry.js.map +1 -1
- package/dist/daemon/runner/reviewer-driver.js +38 -17
- package/dist/daemon/runner/reviewer-driver.js.map +1 -1
- package/dist/lib/cli-detect.js +13 -0
- package/dist/lib/cli-detect.js.map +1 -1
- package/dist/lib/cli-health.js +1 -0
- package/dist/lib/cli-health.js.map +1 -1
- package/dist/lib/cli-paths.js +1 -0
- package/dist/lib/cli-paths.js.map +1 -1
- package/dist/lib/cli-precheck.js +28 -15
- package/dist/lib/cli-precheck.js.map +1 -1
- package/dist/lib/lineage-maps.js +15 -0
- package/dist/lib/lineage-maps.js.map +1 -1
- package/dist/lib/template-schema.js +2 -2
- package/dist/lib/template-schema.js.map +1 -1
- package/package.json +1 -1
- package/.next/static/chunks/744-0dbe0ecdef7c2a4a.js +0 -1
- package/.next/static/chunks/app/connect/page-d61d0769677393ba.js +0 -1
- package/.next/static/chunks/app/new/page-27eb1817c252cd2e.js +0 -1
- package/.next/static/chunks/app/onboarding/page-da4e2a72a0246245.js +0 -1
- package/.next/static/chunks/app/page-76efbecd45d24a1a.js +0 -1
- package/.next/static/chunks/app/templates/page-c712fc69b314d734.js +0 -1
- package/.next/static/css/31de2b5861a11b73.css +0 -3
- /package/.next/static/{dwStWF62ISmqJRGfdJJv5 → K8p7q94EZUywXFc1L87FJ}/_buildManifest.js +0 -0
- /package/.next/static/{dwStWF62ISmqJRGfdJJv5 → K8p7q94EZUywXFc1L87FJ}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[566],{63:(e,t,r)=>{"use strict";r.d(t,{Zp:()=>i});var a=r(9442);r(6074);var n=r(7362);function i({className:e,...t}){return(0,a.jsx)("div",{"data-slot":"card",className:(0,n.cn)("flex flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm",e),...t})}},1749:(e,t,r)=>{"use strict";r.d(t,{$:()=>o});var a=r(9442);r(6074);var n=r(9056),i=r(8113),s=r(7362);let d=(0,n.F)("inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function o({className:e,variant:t="default",size:r="default",asChild:n=!1,...l}){let c=n?i.bL:"button";return(0,a.jsx)(c,{"data-slot":"button","data-variant":t,"data-size":r,className:(0,s.cn)(d({variant:t,size:r,className:e})),...l})}},1996:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>$});var a=r(9442),n=r(3149),i=r(6289),s=r(5902),d=r(6074),o=r(4284),l=r(1749),c=r(6441),u=r(8141),m=r(7847),p=r(63),g=r(7362);function x({className:e,type:t,...r}){return(0,a.jsx)("input",{type:t,"data-slot":"input",className:(0,g.cn)("h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30","focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",e),...r})}var h=r(2545),b=r(9707),f=r(4030),v=r(2881);let y=["anthropic/claude-sonnet-4.5","openai/gpt-5","google/gemini-2.5-pro","deepseek/deepseek-chat-v3.1","moonshotai/kimi-k2"];function k({apiKeys:e,updateApiKey:t}){let r=e.openrouter??"",[i,s]=(0,d.useState)({kind:"idle"}),[o,l]=(0,d.useState)(null),[c,u]=(0,d.useState)(new Set(y)),[m,j]=(0,d.useState)(!1),[w,N]=(0,d.useState)(null);async function C(){if(0!==r.trim().length&&"saving"!==i.kind){s({kind:"saving"});try{let e=await (0,v.M5)(r.trim());if(!e.valid)return void s({kind:"invalid",message:e.error??"OpenRouter rejected this key."});await S()}catch(e){s({kind:"invalid",message:e instanceof Error?e.message:String(e)})}}}async function S(){s({kind:"loading_catalog"});try{let{models:e}=await (0,v.Y8)();e.sort((e,t)=>e.id.localeCompare(t.id)),l(e),s({kind:"valid",modelCount:e.length})}catch(e){s({kind:"catalog_failed",message:e instanceof Error?e.message:String(e)})}}async function A(){if(0!==c.size&&!m){j(!0),N(null);try{let e=await (0,v.Eu)(Array.from(c)),t=e.added.length,r=e.skipped.length;N(`Added ${t} voice${1===t?"":"s"}`+(r>0?` \xb7 skipped ${r} (unknown id)`:""))}catch(e){N(`Couldn't add voices: ${e instanceof Error?e.message:String(e)}`)}finally{j(!1)}}}return(0,a.jsxs)("section",{className:"mb-8",children:[(0,a.jsxs)("h2",{className:"mb-3 flex flex-wrap items-baseline gap-x-2 text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:[(0,a.jsx)("span",{children:"API access"}),(0,a.jsx)("span",{className:"font-normal normal-case text-muted-foreground/70",children:"optional — gives you any model on OpenRouter as a chorus voice"})]}),(0,a.jsxs)(p.Zp,{className:"space-y-3 bg-card p-4",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("label",{htmlFor:"apikey-openrouter",className:"text-sm font-medium",children:"OpenRouter API key"}),(0,a.jsxs)("a",{href:"https://openrouter.ai/keys",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-[11px] text-muted-foreground hover:text-foreground",children:["Get a key ",(0,a.jsx)(h.A,{className:"h-2.5 w-2.5"})]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(x,{id:"apikey-openrouter",type:"password",autoComplete:"off",spellCheck:!1,placeholder:"sk-or-v1-…",value:r,onChange:e=>{t("openrouter",e.target.value),"idle"!==i.kind&&s({kind:"idle"}),l(null)},className:"flex-1 font-mono text-xs",disabled:"saving"===i.kind||"loading_catalog"===i.kind}),(0,a.jsxs)("button",{type:"button",onClick:C,disabled:0===r.trim().length||"saving"===i.kind||"loading_catalog"===i.kind||"valid"===i.kind,className:(0,g.cn)("inline-flex h-9 items-center gap-1.5 rounded-md border px-3 text-[11px] font-medium transition disabled:cursor-not-allowed disabled:opacity-50","valid"===i.kind?"border-emerald-500/40 bg-emerald-500/10 text-emerald-300":"border-primary/40 bg-primary/10 text-primary hover:bg-primary/20"),children:[("saving"===i.kind||"loading_catalog"===i.kind)&&(0,a.jsx)(n.A,{className:"h-3 w-3 animate-spin"}),"valid"===i.kind&&(0,a.jsx)(b.A,{className:"h-3 w-3"}),"saving"===i.kind?"Validating…":"loading_catalog"===i.kind?"Loading models…":"valid"===i.kind?"Validated":"Validate & save"]})]}),"invalid"===i.kind&&(0,a.jsxs)("p",{className:"flex items-center gap-1.5 text-xs text-destructive",children:[(0,a.jsx)(f.A,{className:"h-3 w-3"}),i.message]}),"catalog_failed"===i.kind&&(0,a.jsxs)("div",{className:"flex items-start justify-between gap-3 rounded-md border border-amber-500/40 bg-amber-500/5 px-3 py-2",children:[(0,a.jsxs)("p",{className:"flex items-start gap-1.5 text-xs text-amber-100",children:[(0,a.jsx)(f.A,{className:"mt-0.5 h-3 w-3 shrink-0"}),(0,a.jsxs)("span",{children:["Key saved, but couldn't load the model catalog:"," ",i.message]})]}),(0,a.jsx)("button",{type:"button",onClick:S,className:"shrink-0 rounded-md border border-amber-500/40 bg-amber-500/10 px-2.5 py-1 text-[11px] font-medium text-amber-100 hover:bg-amber-500/20",children:"Reload models"})]}),"valid"===i.kind&&o&&(0,a.jsxs)("div",{className:"space-y-2 rounded-md border border-emerald-500/20 bg-emerald-500/5 p-3",children:[(0,a.jsxs)("p",{className:"text-[11px] text-emerald-300",children:["✓ Key valid \xb7 ",i.modelCount," models available. Pick a starter set now or browse the full catalog on the Connect page later."]}),(0,a.jsx)("div",{className:"grid grid-cols-1 gap-1 sm:grid-cols-2",children:y.filter(e=>o.some(t=>t.id===e)).map(e=>{let t=c.has(e),r=o.find(t=>t.id===e);return(0,a.jsxs)("label",{className:(0,g.cn)("flex cursor-pointer items-center gap-2 rounded border px-2 py-1.5 text-[11px] transition",t?"border-primary/50 bg-primary/10 text-foreground":"border-border bg-card text-muted-foreground hover:border-muted-foreground/30"),children:[(0,a.jsx)("input",{type:"checkbox",checked:t,onChange:t=>{u(r=>{let a=new Set(r);return t.target.checked?a.add(e):a.delete(e),a})},className:"h-3 w-3 shrink-0"}),(0,a.jsx)("span",{className:"truncate font-mono",children:r?.id??e})]},e)})}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsxs)("button",{type:"button",onClick:A,disabled:0===c.size||m,className:"inline-flex h-7 items-center gap-1.5 rounded-md border border-primary/40 bg-primary/10 px-2.5 text-[11px] font-medium text-primary transition hover:bg-primary/20 disabled:cursor-not-allowed disabled:opacity-50",children:[m?(0,a.jsx)(n.A,{className:"h-3 w-3 animate-spin"}):null,"Add ",c.size>0?c.size:""," voice",1===c.size?"":"s"]}),w&&(0,a.jsx)("p",{className:"text-[11px] text-emerald-300",children:w})]})]}),(0,a.jsxs)("p",{className:"text-[11px] leading-relaxed text-muted-foreground/80",children:["Stored locally in ",(0,a.jsx)("code",{children:"~/.chorus/chorus.db"}),". Used only to call OpenRouter on your behalf. Direct API support for other providers (Anthropic, OpenAI, Google, xAI) is on the roadmap — today, route those models via OpenRouter."]})]})]})}var j=r(3734);let w=[{id:"claude-code",provider:"anthropic",label:"Claude Code",hint:"Anthropic — uses your existing Claude login"},{id:"codex-cli",provider:"openai",label:"Codex CLI",hint:"OpenAI — ChatGPT Plus/Pro subscription"},{id:"gemini-cli",provider:"google",label:"Gemini CLI",hint:"Google — uses your gcloud auth"},{id:"opencode-cli",provider:"opencode",label:"OpenCode",hint:"OpenCode Go — routes Kimi, DeepSeek, Grok"},{id:"kimi-cli",provider:"moonshot",label:"Kimi CLI",hint:"MoonshotAI — kimi-k2 plan"},{id:"grok-cli",provider:"grok",label:"Grok Build",hint:"xAI — auto-picks chorus from ~/.claude.json (SuperGrok Heavy plan)"},{id:"cursor",provider:"cursor",label:"Cursor",hint:"Cursor IDE — invoke chorus from inside it"},{id:"windsurf",provider:"windsurf",label:"Windsurf",hint:"Windsurf IDE — invoke chorus from inside it"}],N={"claude-code":"claude","codex-cli":"codex","gemini-cli":"gemini","opencode-cli":"opencode","kimi-cli":"kimi"},C={"claude-code":"claude-code","codex-cli":"codex-cli","gemini-cli":"gemini-cli","opencode-cli":"opencode-cli","kimi-cli":"kimi-cli"},S={dot:"bg-muted-foreground/40",gradient:"bg-gradient-to-br from-muted/30 via-card to-card"},A=w.filter(e=>"cursor"!==e.id&&"windsurf"!==e.id);function P(e){return(0,a.jsxs)("section",{className:"mb-8",children:[(0,a.jsx)("h2",{className:"mb-3 text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:"CLI subscriptions"}),(0,a.jsx)("div",{className:"grid grid-cols-1 items-start gap-2 lg:grid-cols-2",children:A.map(t=>{let r=e.selectedClis.has(t.id),i=e.detection[t.id],s=i?.found===!0,d=e.detecting&&!i,o=!s&&!d&&e.manualOpen.has(t.id),l=e.manualBusy.has(t.id),c=s?j.r2[N[t.id]]??S:S;return(0,a.jsxs)("div",{className:(0,g.cn)("flex h-72 flex-col rounded-lg border transition",s?"border-border":"border-border/60 opacity-70",c.gradient),children:[(0,a.jsxs)("button",{type:"button",onClick:()=>s&&e.toggleCli(t.id),disabled:!s,className:(0,g.cn)("flex shrink-0 items-center gap-3 px-4 py-3 text-left transition",s?"hover:bg-card/30":"cursor-not-allowed"),children:[(0,a.jsx)("div",{className:(0,g.cn)("grid h-5 w-5 shrink-0 place-items-center rounded border transition",!s&&"opacity-50",r?"border-primary bg-primary text-primary-foreground":"border-border"),children:r&&(0,a.jsx)(b.A,{className:"h-3 w-3"})}),(0,a.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:[(0,a.jsx)("span",{className:(0,g.cn)("h-2 w-2 shrink-0 rounded-full",c.dot)}),(0,a.jsx)("h3",{className:"whitespace-nowrap text-sm font-semibold",children:t.label}),s?(0,a.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-emerald-500/10 px-2 py-0.5 text-[10px] font-medium uppercase tracking-wider text-emerald-300",children:[(0,a.jsx)(b.A,{className:"h-3 w-3"})," Installed"]}):d?(0,a.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full border border-border bg-card px-2 py-0.5 text-[10px] font-medium text-muted-foreground",children:[(0,a.jsx)(n.A,{className:"h-3 w-3 animate-spin"})," Searching…"]}):(0,a.jsx)("span",{className:"inline-flex items-center rounded-full border border-border bg-card px-2 py-0.5 text-[10px] font-medium text-muted-foreground",children:"Not found"})]})]}),(0,a.jsxs)("div",{className:"flex flex-1 flex-col gap-2 overflow-y-auto border-t border-border bg-card/30 p-4",children:[(0,a.jsx)("p",{className:"text-[11px] leading-relaxed text-muted-foreground",children:s&&i.path?(0,a.jsx)("code",{className:"rounded bg-muted/60 px-1.5 py-0.5 font-mono",children:i.path}):d?(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-muted-foreground",children:[(0,a.jsx)(n.A,{className:"h-3 w-3 animate-spin"}),"Probing PATH and known install dirs…"]}):t.hint}),!s&&!d&&(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("button",{type:"button",onClick:()=>e.toggleManual(t.id),className:"text-[11px] text-muted-foreground transition hover:text-foreground",children:o?"Cancel":"Don't see it? Set path manually →"}),o&&(0,a.jsx)(_,{cliId:t.id,value:e.manualPath[t.id]??"",onChange:r=>e.setManualPath(e=>({...e,[t.id]:r})),error:e.manualError[t.id],busy:l,onSubmit:()=>e.submitManualPath(t.id)})]}),s&&"opencode-cli"===t.id&&r&&(0,a.jsx)(O,{loading:e.opencodeModelsLoading,error:e.opencodeModelsError,models:e.opencodeModels,selected:e.selectedOpencodeModels,onToggle:e.toggleOpencodeModel}),s&&"opencode-cli"!==t.id&&r&&(0,a.jsx)(M,{cliId:t.id,voices:e.cliVoices,savingVoiceIds:e.savingVoiceIds,saveError:e.voiceSaveError,onToggle:e.toggleVoice})]})]},t.id)})}),(0,a.jsx)("p",{className:"mt-3 text-[11px] text-muted-foreground",children:"Cursor and Windsurf are IDEs that invoke chorus, not voices — wire them up on the Connect page after onboarding."})]})}function M({cliId:e,voices:t,savingVoiceIds:r,saveError:n,onToggle:i}){let s=C[e],d=t.filter(e=>e.provider===s).slice().sort((e,t)=>e.id===s?-1:t.id===s?1:e.model_id.localeCompare(t.model_id));if(0===d.length)return(0,a.jsx)("p",{className:"text-[11px] italic text-muted-foreground/70",children:"Models will populate after the daemon finishes seeding (refresh in a few seconds)."});let o=d.filter(e=>e.enabled).length;return(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,a.jsx)("p",{className:"text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:"Models"}),(0,a.jsxs)("p",{className:"text-[11px] text-muted-foreground/70",children:[o,"/",d.length," enabled"]})]}),n&&(0,a.jsx)("p",{className:"text-[11px] text-destructive",children:n}),(0,a.jsx)("div",{className:"grid grid-cols-1 gap-1",children:d.map(e=>{let t=e.enabled,n=e.id===s;return(0,a.jsxs)("button",{type:"button",disabled:r.has(e.id),onClick:()=>i(e),title:e.model_id,className:(0,g.cn)("flex items-center gap-2 rounded border px-2 py-1.5 text-left text-[11px] transition disabled:opacity-60",t?"border-primary/50 bg-primary/10 text-foreground":"border-border bg-card text-muted-foreground hover:border-muted-foreground/30"),children:[(0,a.jsx)("div",{className:(0,g.cn)("grid h-3 w-3 shrink-0 place-items-center rounded-sm border transition",t?"border-primary bg-primary text-primary-foreground":"border-border"),children:t&&(0,a.jsx)(b.A,{className:"h-2 w-2"})}),(0,a.jsx)("span",{className:"truncate font-mono",children:e.model_id}),n&&(0,a.jsx)("span",{className:"shrink-0 rounded-full bg-emerald-500/10 px-1.5 py-0.5 text-[9px] font-medium uppercase tracking-wider text-emerald-300",children:"current"})]},e.id)})})]})}function O({loading:e,error:t,models:r,selected:i,onToggle:s}){return(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,a.jsx)("p",{className:"text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:"Pick models to enable"}),(0,a.jsxs)("p",{className:"text-[11px] text-muted-foreground/70",children:[i.size," selected"]})]}),e&&(0,a.jsxs)("p",{className:"flex items-center gap-2 text-[11px] text-muted-foreground",children:[(0,a.jsx)(n.A,{className:"h-3 w-3 animate-spin"}),"Listing models from"," ",(0,a.jsx)("code",{className:"rounded bg-muted px-1",children:"opencode models"}),"…"]}),t&&(0,a.jsx)("p",{className:"text-[11px] text-destructive",children:t}),r&&(0,a.jsxs)("div",{className:"space-y-2",children:[Object.entries(r.gateways).filter(([e])=>e.startsWith("opencode")).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsxs)("p",{className:"text-[10px] font-mono text-muted-foreground/80",children:[e,"/"]}),(0,a.jsx)("div",{className:"grid grid-cols-1 gap-1",children:t.map(t=>{let r=i.has(t);return(0,a.jsxs)("button",{type:"button",onClick:()=>s(t),title:t,className:(0,g.cn)("flex items-center gap-2 rounded border px-2 py-1.5 text-left text-[11px] transition",r?"border-primary/50 bg-primary/10 text-foreground":"border-border bg-card text-muted-foreground hover:border-muted-foreground/30"),children:[(0,a.jsx)("div",{className:(0,g.cn)("grid h-3 w-3 shrink-0 place-items-center rounded-sm border transition",r?"border-primary bg-primary text-primary-foreground":"border-border"),children:r&&(0,a.jsx)(b.A,{className:"h-2 w-2"})}),(0,a.jsx)("span",{className:"truncate font-mono",children:t.slice(e.length+1)})]},t)})})]},e)),(0,a.jsxs)("p",{className:"text-[11px] leading-relaxed text-muted-foreground/70",children:["Pre-selected: ",r.defaultPicks.join(", ")||"none",". Change anytime in ",(0,a.jsx)("code",{className:"rounded bg-muted px-1",children:"Settings"}),"."]})]})]})}function _({cliId:e,value:t,onChange:r,error:i,busy:s,onSubmit:d}){let o=function(e){switch(e){case"claude-code":return"claude";case"codex-cli":return"codex";case"gemini-cli":return"gemini";case"opencode-cli":return"opencode";case"kimi-cli":return"kimi";case"grok-cli":return"grok";default:return e}}(e);return(0,a.jsxs)("div",{className:"space-y-2 rounded-md border border-border bg-card/50 p-3",children:[(0,a.jsxs)("p",{className:"text-[11px] leading-relaxed text-muted-foreground",children:["Paste the full path to the"," ",(0,a.jsx)("code",{className:"rounded bg-muted px-1",children:o})," binary. Run"," ",(0,a.jsxs)("code",{className:"rounded bg-muted px-1",children:["which ",o]})," (macOS / Linux) or ",(0,a.jsxs)("code",{className:"rounded bg-muted px-1",children:["where ",o]})," ","(Windows) to find it. The daemon will run"," ",(0,a.jsxs)("code",{className:"rounded bg-muted px-1",children:[o," --version"]})," with a 2s timeout to confirm the binary works and identifies as the"," ",o," CLI."]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(x,{value:t,onChange:e=>r(e.target.value),placeholder:`/full/path/to/${o}`,className:"flex-1 font-mono text-xs",spellCheck:!1,autoComplete:"off"}),(0,a.jsx)(l.$,{type:"button",variant:"secondary",disabled:s,onClick:d,children:s?(0,a.jsx)(n.A,{className:"h-4 w-4 animate-spin"}):"Verify"})]}),i&&(0,a.jsx)("p",{className:"text-[11px] text-destructive",children:i})]})}let I=[{id:"strict",label:"Strict",hint:"Read-only. Reviewers can inspect code but can't write files, exec shell, or hit the network."},{id:"workspace",label:"Workspace (recommended)",hint:"Read+write inside the chat dir, scoped shell, no network. Default for most teams."},{id:"full",label:"Full access",hint:"No sandbox at all. Only on a personal machine you fully trust."}];function z({sandboxProfile:e,setSandboxProfile:t,autoApprovePrompts:r,setAutoApprovePrompts:n,networkAccess:i,setNetworkAccess:s}){return(0,a.jsxs)("section",{className:"mb-8",children:[(0,a.jsx)("h2",{className:"mb-3 text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:"Permissions & sandbox"}),(0,a.jsx)("p",{className:"mb-4 text-xs leading-relaxed text-muted-foreground",children:"Controls what reviewers can do on your machine. You can change this anytime in Settings → Permissions."}),(0,a.jsx)("div",{className:"space-y-2",children:I.map(r=>{let n=e===r.id;return(0,a.jsxs)("button",{type:"button",onClick:()=>t(r.id),className:(0,g.cn)("flex w-full items-start gap-3 rounded-lg border p-4 text-left transition",n?"border-primary/50 bg-primary/10":"border-border bg-card hover:border-muted-foreground/30"),children:[(0,a.jsx)("div",{className:(0,g.cn)("mt-0.5 grid h-5 w-5 shrink-0 place-items-center rounded-full border transition",n?"border-primary bg-primary text-primary-foreground":"border-border"),children:n&&(0,a.jsx)(b.A,{className:"h-3 w-3"})}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("div",{className:"text-sm font-medium",children:r.label}),(0,a.jsx)("div",{className:"mt-1 text-xs leading-relaxed text-muted-foreground",children:r.hint})]})]},r.id)})}),(0,a.jsxs)("div",{className:"mt-3 space-y-2",children:[(0,a.jsxs)("label",{className:"flex cursor-pointer items-start gap-3 rounded-lg border border-border bg-card p-3",children:[(0,a.jsx)("input",{type:"checkbox",checked:r,onChange:e=>n(e.target.checked),className:"mt-1 h-4 w-4 cursor-pointer accent-primary"}),(0,a.jsxs)("div",{className:"min-w-0 flex-1 text-xs leading-relaxed",children:[(0,a.jsx)("div",{className:"text-sm font-medium",children:"Skip in-CLI permission prompts"}),(0,a.jsxs)("div",{className:"mt-0.5 text-muted-foreground",children:["Passes ",(0,a.jsx)("code",{className:"rounded bg-muted px-1",children:"--afk"})," /"," ",(0,a.jsx)("code",{className:"rounded bg-muted px-1",children:"auto_edit"}),"to spawned reviewers so they don't hang on per-tool prompts. Off = every action requires explicit consent in the CLI's TUI."]})]})]}),(0,a.jsxs)("label",{className:"flex cursor-pointer items-start gap-3 rounded-lg border border-border bg-card p-3",children:[(0,a.jsx)("input",{type:"checkbox",checked:i,onChange:e=>s(e.target.checked),className:"mt-1 h-4 w-4 cursor-pointer accent-primary"}),(0,a.jsxs)("div",{className:"min-w-0 flex-1 text-xs leading-relaxed",children:[(0,a.jsx)("div",{className:"text-sm font-medium",children:"Allow outbound network from reviewers"}),(0,a.jsx)("div",{className:"mt-0.5 text-muted-foreground",children:"Off by default. Templates that explicitly need network override per phase."})]})]})]})]})}var L=r(6185);async function E(e){for(let t of e.selectedClis){let e=w.find(e=>e.id===t);e&&await (0,L.WH)(e.provider,{kind:"cli_subscription",value:e.id,updatedAt:Date.now()})}for(let[t,r]of Object.entries(e.apiKeys)){let e=r.trim();e&&await (0,L.WH)(t,{kind:"api_key",value:e,updatedAt:Date.now()})}await (0,c.Ep)({sandboxProfile:e.sandboxProfile,autoApprovePrompts:e.autoApprovePrompts,networkAccess:e.networkAccess}),e.selectedClis.has("opencode-cli")&&e.opencodeModels&&await V(e),await (0,L.Xx)({onboarded:!0})}async function V(e){let{listVoices:t,updateVoice:a,createVoice:n}=await Promise.resolve().then(r.bind(r,7847)),i=new Map((await t({provider:"opencode-cli"}).catch(()=>[])).map(e=>[e.id,e])),s=e.opencodeModels;s&&await Promise.all(s.flat.map(async t=>{let r=`opencode-cli:${t}`,s=e.selectedOpencodeModels.has(t),d=i.get(r);try{if(d)d.enabled!==s&&await a(r,{enabled:s});else{let e,r,{lineage:a,vendor_family:i}=(r=((e=t.indexOf("/"))>=0?t.slice(e+1):t).toLowerCase()).includes("kimi")?{lineage:"moonshot",vendor_family:null}:r.includes("claude")?{lineage:"anthropic",vendor_family:null}:r.includes("gpt")||/(?:^|[^a-z])o[1-9](?:$|[^a-z0-9])/.test(r)?{lineage:"openai",vendor_family:null}:r.includes("gemini")?{lineage:"google",vendor_family:null}:r.includes("deepseek")?{lineage:"opencode",vendor_family:"deepseek"}:r.includes("llama")||r.includes("meta")?{lineage:"opencode",vendor_family:"meta"}:r.includes("mistral")||r.includes("mixtral")?{lineage:"opencode",vendor_family:"mistral"}:r.includes("grok")||r.includes("xai")?{lineage:"opencode",vendor_family:"xai"}:{lineage:"opencode",vendor_family:null};await n({provider:"opencode-cli",model_id:t,label:t,source:"cli",lineage:a,vendor_family:i,enabled:s})}}catch{}}))}function $(){let e=(0,s.useRouter)(),[t,r]=(0,d.useTransition)(),[p,g]=(0,d.useState)(null),[x,h]=(0,d.useState)(new Set),[b,f]=(0,d.useState)([]),[v,y]=(0,d.useState)(new Set),[j,w]=(0,d.useState)(null),[N,C]=(0,d.useState)({}),[S,A]=(0,d.useState)("workspace"),[M,O]=(0,d.useState)(!0),[_,I]=(0,d.useState)(!1),[V,$]=(0,d.useState)({}),[T,R]=(0,d.useState)(!0),[G,W]=(0,d.useState)(new Set),[D,K]=(0,d.useState)({}),[q,F]=(0,d.useState)({}),[H,Y]=(0,d.useState)(new Set),[J,B]=(0,d.useState)(null),[U,Z]=(0,d.useState)(null),[Q,X]=(0,d.useState)(!1),[ee,et]=(0,d.useState)(new Set);(0,d.useEffect)(()=>{let e=!1;return(0,c.fk)().then(t=>{if(e)return;let r={},a=new Set;for(let e of t)r[e.id]=e,e.found&&a.add(e.id);$(r),a.size>0&&h(a)}).catch(()=>{}).finally(()=>{e||R(!1)}),(0,m.listVoices)({source:"cli"}).then(t=>{e||f(t)}).catch(()=>{}),()=>{e=!0}},[]);let er=async e=>{y(t=>new Set(t).add(e.id)),w(null);try{let t=await (0,m.updateVoice)(e.id,{enabled:!e.enabled});f(e=>e.map(e=>e.id===t.id?t:e))}catch(e){w(e instanceof Error?e.message:"Couldn't save voice toggle.")}finally{y(t=>{let r=new Set(t);return r.delete(e.id),r})}};(0,d.useEffect)(()=>{!x.has("opencode-cli")||!V["opencode-cli"]?.found||J||Q||U||(X(!0),Z(null),(0,u.Ay)().then(e=>{B(e),et(t=>t.size>0?t:new Set(e.defaultPicks))}).catch(e=>{Z(e instanceof Error?e.message:"Couldn't list OpenCode models. Is the CLI authed (run `opencode auth login`)?")}).finally(()=>X(!1)))},[x,V,J,Q,U]);let ea=async e=>{let t=(D[e]||"").trim();if(!t)return void F(t=>({...t,[e]:"Enter the full path to the CLI program (e.g. /usr/local/bin/claude)."}));Y(t=>new Set(t).add(e)),F(t=>({...t,[e]:""}));try{let r=await (0,c.iW)(e,t);if(r.found){try{await (0,c.Df)(e,r.path??t)}catch(t){F(r=>({...r,[e]:`Validation passed but save failed: ${t instanceof Error?t.message:"unknown error"}. Try again, or paste the path again.`}));return}$(t=>({...t,[e]:r})),h(t=>new Set(t).add(e)),(0,m.listVoices)({source:"cli"}).then(f).catch(()=>{}),W(t=>{let r=new Set(t);return r.delete(e),r})}else{let t=r.reason??"couldn't run that path";F(r=>({...r,[e]:`Validation failed: ${t}.`}))}}catch{F(t=>({...t,[e]:"Validation failed. Is the daemon running?"}))}finally{Y(t=>{let r=new Set(t);return r.delete(e),r})}},en=x.size+Object.values(N).filter(e=>e.trim().length>0).length;return(0,a.jsx)("main",{className:"min-h-screen bg-background text-foreground",children:(0,a.jsxs)("div",{className:"mx-auto w-full max-w-5xl px-4 py-10 sm:px-6 sm:py-14",children:[(0,a.jsxs)("div",{className:"mb-8 flex items-center gap-3",children:[(0,a.jsx)("div",{className:"grid h-10 w-10 place-items-center rounded-md bg-primary/15 text-primary",children:(0,a.jsx)(o.U,{className:"h-6 w-6"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-xs uppercase tracking-wider text-muted-foreground",children:"Welcome to Chorus"}),(0,a.jsx)("h1",{className:"text-2xl font-semibold tracking-tight",children:"Connect at least one model to begin"})]})]}),(0,a.jsx)("p",{className:"mb-8 text-sm leading-relaxed text-muted-foreground",children:"Chorus runs your prompt past 2–4 LLMs of different lineages and synthesises consensus. Pick the CLI subscriptions you already have, or paste API keys. You can change these later in Settings."}),(0,a.jsx)(P,{selectedClis:x,toggleCli:e=>{h(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},detection:V,detecting:T,cliVoices:b,savingVoiceIds:v,voiceSaveError:j,toggleVoice:er,manualOpen:G,toggleManual:e=>{W(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r}),F(t=>({...t,[e]:""}))},manualPath:D,setManualPath:K,manualError:q,manualBusy:H,submitManualPath:ea,opencodeModels:J,opencodeModelsError:U,opencodeModelsLoading:Q,selectedOpencodeModels:ee,toggleOpencodeModel:e=>{et(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})}}),(0,a.jsx)(k,{apiKeys:N,updateApiKey:(e,t)=>{C(r=>({...r,[e]:t}))}}),(0,a.jsx)(z,{sandboxProfile:S,setSandboxProfile:A,autoApprovePrompts:M,setAutoApprovePrompts:O,networkAccess:_,setNetworkAccess:I}),p&&(0,a.jsx)("div",{className:"mb-6 rounded-md border border-destructive/50 bg-destructive/10 px-4 py-3 text-sm text-destructive",children:p}),(0,a.jsxs)("div",{className:"flex flex-col-reverse gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:0===en?"Pick at least one to continue.":`${en} ${1===en?"credential":"credentials"} ready to save.`}),(0,a.jsx)(l.$,{onClick:()=>{(g(null),0===en)?g("Pick at least one CLI or paste at least one API key to continue."):r(async()=>{try{await E({selectedClis:x,apiKeys:N,sandboxProfile:S,autoApprovePrompts:M,networkAccess:_,opencodeModels:J,selectedOpencodeModels:ee}),e.push("/"),e.refresh()}catch(e){g(e instanceof L.$v?e.message:"Could not save. Is the Chorus daemon running?")}})},disabled:t||0===en,className:"w-full sm:w-auto",children:t?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.A,{className:"mr-1 h-4 w-4 animate-spin"}),"Saving…"]}):(0,a.jsxs)(a.Fragment,{children:["Get started",(0,a.jsx)(i.A,{className:"ml-1 h-4 w-4"})]})})]})]})})}},2545:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});let a=(0,r(3884).A)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]])},2881:(e,t,r)=>{"use strict";r.d(t,{Eu:()=>s,M5:()=>n,Y8:()=>i});var a=r(4411);async function n(e){return(0,a.T)("/openrouter/save-key",{method:"POST",body:JSON.stringify({apiKey:e})})}async function i(){return(0,a.T)("/openrouter/models")}async function s(e,t){return(0,a.T)("/openrouter/voices",{method:"POST",body:JSON.stringify(t?{modelIds:e,apiKey:t}:{modelIds:e})})}},3149:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});let a=(0,r(3884).A)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},3734:(e,t,r)=>{"use strict";r.d(t,{JR:()=>c,QJ:()=>i,VW:()=>s,YM:()=>m,m_:()=>d,r2:()=>p,u5:()=>l,x0:()=>u,ze:()=>a});let a={anthropic:"Claude",openai:"Codex",google:"Gemini",opencode:"OpenCode",moonshot:"Kimi",local:"Local LLM"},n={anthropic:"bg-violet-400",openai:"bg-orange-400",google:"bg-blue-400",opencode:"bg-emerald-400",moonshot:"bg-pink-400",local:"bg-teal-400"};function i(e){return e?a[e]??e:""}function s(e){return e?n[e]??"bg-muted":"bg-muted"}let d={claude:"Claude",codex:"Codex",gemini:"Gemini",opencode:"OpenCode",kimi:"Kimi",openrouter:"OpenRouter",local:"Local LLM"},o={claude:"bg-violet-400",codex:"bg-orange-400",gemini:"bg-blue-400",opencode:"bg-emerald-400",kimi:"bg-pink-400",openrouter:"bg-cyan-400",local:"bg-teal-400"};function l(e){return e?d[e]??e:""}function c(e){return e?o[e]??"bg-muted":"bg-muted"}let u={claude:"claude-opus-4-7",codex:"gpt-5.5",gemini:"gemini-2.5-pro",opencode:"kimi-k2.6",kimi:"kimi-k2.6",openrouter:"",local:""};function m(e){if(e)return u[e]}let p={claude:{dot:"bg-violet-400",ring:"ring-violet-400/40",gradient:"bg-gradient-to-b from-violet-500/15 to-card"},codex:{dot:"bg-orange-400",ring:"ring-orange-400/40",gradient:"bg-gradient-to-b from-orange-500/15 to-card"},gemini:{dot:"bg-blue-400",ring:"ring-blue-400/40",gradient:"bg-gradient-to-b from-blue-500/15 to-card"},opencode:{dot:"bg-emerald-400",ring:"ring-emerald-400/40",gradient:"bg-gradient-to-b from-emerald-500/15 to-card"},kimi:{dot:"bg-pink-400",ring:"ring-pink-400/40",gradient:"bg-gradient-to-b from-pink-500/15 to-card"},openrouter:{dot:"bg-cyan-400",ring:"ring-cyan-400/40",gradient:"bg-gradient-to-b from-cyan-500/15 to-card"},local:{dot:"bg-teal-400",ring:"ring-teal-400/40",gradient:"bg-gradient-to-b from-teal-500/15 to-card"}}},4030:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});let a=(0,r(3884).A)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},6289:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});let a=(0,r(3884).A)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]])},8600:(e,t,r)=>{Promise.resolve().then(r.bind(r,1996))},9056:(e,t,r)=>{"use strict";r.d(t,{F:()=>s});var a=r(142);let n=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,i=a.$,s=(e,t)=>r=>{var a;if((null==t?void 0:t.variants)==null)return i(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:s,defaultVariants:d}=t,o=Object.keys(s).map(e=>{let t=null==r?void 0:r[e],a=null==d?void 0:d[e];if(null===t)return null;let i=n(t)||n(a);return s[e][i]}),l=r&&Object.entries(r).reduce((e,t)=>{let[r,a]=t;return void 0===a||(e[r]=a),e},{});return i(e,o,null==t||null==(a=t.compoundVariants)?void 0:a.reduce((e,t)=>{let{class:r,className:a,...n}=t;return Object.entries(n).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...d,...l}[t]):({...d,...l})[t]===r})?[...e,r,a]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)}},9707:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});let a=(0,r(3884).A)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])}},e=>{e.O(0,[742,641,506,128,358],()=>e(e.s=8600)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{1195:(e,t,r)=>{"use strict";r.d(t,{OpencodeFleetCard:()=>x});var n=r(9442),s=r(6074),d=r(5445),a=r(9707),i=r(4030),l=r(2956),o=r(3734),c=r(7847),m=r(4411),u=r(7362);function x({health:e,voices:t}){let[r,i]=(0,s.useState)(!1),[l,g]=(0,s.useState)(t),[b,h]=(0,s.useState)(null),[f,v]=(0,s.useState)(null);async function y(e){v(e.id),h(null);try{let t=await (0,c.updateVoice)(e.id,{enabled:!e.enabled});g(e=>e.map(e=>e.id===t.id?t:e))}catch(e){h(e instanceof m.$?e.message:"Couldn't save. Is the daemon running?")}finally{v(null)}}let N=new Map;for(let e of l){let t=e.model_id.indexOf("/"),r=t>0?e.model_id.slice(0,t):"other",n=N.get(r)??[];n.push(e),N.set(r,n)}let j=Array.from(N.keys()).sort(),k=l.filter(e=>e.enabled).length;return(0,n.jsxs)("div",{className:(0,u.cn)("rounded-lg border border-border transition-colors hover:border-foreground/20",o.r2.opencode.gradient),children:[(0,n.jsxs)("button",{type:"button",onClick:()=>i(e=>!e),className:"flex w-full items-center gap-3 p-3 text-left",children:[(0,n.jsx)("span",{className:(0,u.cn)("h-2 w-2 shrink-0 rounded-full",o.r2.opencode.dot)}),(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("div",{className:"text-sm font-medium",children:"OpenCode"}),(0,n.jsxs)("div",{className:"mt-0.5 flex items-center gap-2",children:[(0,n.jsx)(p,{status:e.status}),(0,n.jsxs)("span",{className:"text-[10px] text-muted-foreground",children:[k," model",1===k?"":"s"," enabled"]})]})]}),(0,n.jsx)(d.A,{className:(0,u.cn)("h-4 w-4 shrink-0 text-muted-foreground transition-transform",r&&"rotate-180")})]}),r&&(0,n.jsxs)("div",{className:"space-y-3 border-t border-border bg-card/50 p-3",children:[b&&(0,n.jsx)("p",{className:"text-[11px] text-destructive",children:b}),0===l.length?(0,n.jsxs)("p",{className:"text-[11px] text-muted-foreground",children:["No OpenCode voices detected yet. Run ",(0,n.jsx)("code",{className:"rounded bg-muted px-1",children:"opencode models"})," ","and restart the daemon."]}):(0,n.jsxs)("div",{className:"space-y-3",children:[j.map(e=>{let t=N.get(e)??[];return(0,n.jsxs)("div",{className:"space-y-1",children:[(0,n.jsxs)("p",{className:"text-[11px] font-mono text-muted-foreground/80",children:[e,"/"]}),(0,n.jsx)("div",{className:"grid grid-cols-1 gap-1 sm:grid-cols-2",children:t.map(t=>{let r=t.enabled,s=t.model_id.slice(e.length+1);return(0,n.jsxs)("button",{type:"button",disabled:f===t.id,onClick:()=>y(t),title:t.model_id,className:(0,u.cn)("flex items-center gap-2 rounded border px-2 py-1.5 text-left text-[11px] transition disabled:opacity-60",r?"border-primary/50 bg-primary/10 text-foreground":"border-border bg-card hover:border-muted-foreground/30 text-muted-foreground"),children:[(0,n.jsx)("div",{className:(0,u.cn)("grid h-3 w-3 shrink-0 place-items-center rounded-sm border transition",r?"border-primary bg-primary text-primary-foreground":"border-border"),children:r&&(0,n.jsx)(a.A,{className:"h-2 w-2"})}),(0,n.jsx)("span",{className:"truncate font-mono",children:s})]},t.id)})})]},e)}),(0,n.jsx)("p",{className:"text-[11px] leading-relaxed text-muted-foreground/70",children:"Toggles save automatically. Templates and the New Chat dialog will only offer models you've enabled here."})]})]})]})}function p({status:e}){switch(e){case"auth_invalid":case"quota_exhausted":case"rate_limited":return(0,n.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-destructive/10 px-2 py-0.5 text-[10px] font-medium text-destructive",children:[(0,n.jsx)(i.A,{className:"h-3 w-3"}),"auth_invalid"===e?"Auth broken":"quota_exhausted"===e?"Quota out":"Rate-limited"]});default:return(0,n.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-emerald-500/10 px-2 py-0.5 text-[10px] font-medium text-emerald-300",children:[(0,n.jsx)(l.A,{className:"h-3 w-3"}),"Connected"]})}}},2956:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(3884).A)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]])},3734:(e,t,r)=>{"use strict";r.d(t,{JR:()=>c,QJ:()=>d,VW:()=>a,YM:()=>u,m_:()=>i,r2:()=>x,u5:()=>o,x0:()=>m,ze:()=>n});let n={anthropic:"Claude",openai:"Codex",google:"Gemini",opencode:"OpenCode",moonshot:"Kimi",local:"Local LLM"},s={anthropic:"bg-violet-400",openai:"bg-orange-400",google:"bg-blue-400",opencode:"bg-emerald-400",moonshot:"bg-pink-400",local:"bg-teal-400"};function d(e){return e?n[e]??e:""}function a(e){return e?s[e]??"bg-muted":"bg-muted"}let i={claude:"Claude",codex:"Codex",gemini:"Gemini",opencode:"OpenCode",kimi:"Kimi",openrouter:"OpenRouter",local:"Local LLM"},l={claude:"bg-violet-400",codex:"bg-orange-400",gemini:"bg-blue-400",opencode:"bg-emerald-400",kimi:"bg-pink-400",openrouter:"bg-cyan-400",local:"bg-teal-400"};function o(e){return e?i[e]??e:""}function c(e){return e?l[e]??"bg-muted":"bg-muted"}let m={claude:"claude-opus-4-7",codex:"gpt-5.5",gemini:"gemini-2.5-pro",opencode:"kimi-k2.6",kimi:"kimi-k2.6",openrouter:"",local:""};function u(e){if(e)return m[e]}let x={claude:{dot:"bg-violet-400",ring:"ring-violet-400/40",gradient:"bg-gradient-to-b from-violet-500/15 to-card"},codex:{dot:"bg-orange-400",ring:"ring-orange-400/40",gradient:"bg-gradient-to-b from-orange-500/15 to-card"},gemini:{dot:"bg-blue-400",ring:"ring-blue-400/40",gradient:"bg-gradient-to-b from-blue-500/15 to-card"},opencode:{dot:"bg-emerald-400",ring:"ring-emerald-400/40",gradient:"bg-gradient-to-b from-emerald-500/15 to-card"},kimi:{dot:"bg-pink-400",ring:"ring-pink-400/40",gradient:"bg-gradient-to-b from-pink-500/15 to-card"},openrouter:{dot:"bg-cyan-400",ring:"ring-cyan-400/40",gradient:"bg-gradient-to-b from-cyan-500/15 to-card"},local:{dot:"bg-teal-400",ring:"ring-teal-400/40",gradient:"bg-gradient-to-b from-teal-500/15 to-card"}}},3761:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(3884).A)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]])},4030:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(3884).A)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},5445:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(3884).A)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},5626:(e,t,r)=>{Promise.resolve().then(r.bind(r,6501)),Promise.resolve().then(r.t.bind(r,2573,23)),Promise.resolve().then(r.bind(r,821)),Promise.resolve().then(r.bind(r,9823)),Promise.resolve().then(r.bind(r,8344)),Promise.resolve().then(r.bind(r,1195)),Promise.resolve().then(r.bind(r,8359))},6289:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(3884).A)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]])},8359:(e,t,r)=>{"use strict";r.d(t,{OpenRouterFleetCard:()=>h});var n=r(9442),s=r(6074),d=r(2573),a=r.n(d),i=r(5445),l=r(4030),o=r(6289),c=r(9707),m=r(3761),u=r(2956),x=r(3734),p=r(7847),g=r(4411),b=r(7362);function h({voices:e,health:t}){let r=t?.status==="auth_invalid",[d,f]=(0,s.useState)(r),[v,y]=(0,s.useState)(e),[N,j]=(0,s.useState)(null),[k,w]=(0,s.useState)(null);async function A(e){w(e.id),j(null);try{let t=await (0,p.updateVoice)(e.id,{enabled:!e.enabled});y(e=>e.map(e=>e.id===t.id?t:e))}catch(e){j(e instanceof g.$?e.message:"Couldn't save. Is the daemon running?")}finally{w(null)}}let C=v.filter(e=>e.enabled).length;return(0,n.jsxs)("div",{className:(0,b.cn)("rounded-lg border border-border transition-colors hover:border-foreground/20",x.r2.openrouter.gradient),children:[(0,n.jsxs)("button",{type:"button",onClick:()=>f(e=>!e),className:"flex w-full items-center gap-3 p-3 text-left",children:[(0,n.jsx)("span",{className:(0,b.cn)("h-2 w-2 shrink-0 rounded-full",x.r2.openrouter.dot)}),(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("div",{className:"text-sm font-medium",children:"OpenRouter"}),(0,n.jsxs)("div",{className:"mt-0.5 flex items-center gap-2",children:[function(e){switch(e){case"quota_exhausted":return(0,n.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-destructive/10 px-2 py-0.5 text-[10px] font-medium text-destructive",children:[(0,n.jsx)(l.A,{className:"h-3 w-3"}),"Credits out"]});case"auth_invalid":return(0,n.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-destructive/10 px-2 py-0.5 text-[10px] font-medium text-destructive",children:[(0,n.jsx)(l.A,{className:"h-3 w-3"}),"Auth broken"]});case"rate_limited":return(0,n.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-amber-500/10 px-2 py-0.5 text-[10px] font-medium text-amber-300",children:[(0,n.jsx)(m.A,{className:"h-3 w-3"}),"Rate-limited"]});default:return(0,n.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-emerald-500/10 px-2 py-0.5 text-[10px] font-medium text-emerald-300",children:[(0,n.jsx)(u.A,{className:"h-3 w-3"}),"Configured"]})}}(t?.status??"healthy"),(0,n.jsxs)("span",{className:"text-[10px] text-muted-foreground",children:[C," model",1===C?"":"s"," enabled"]})]})]}),(0,n.jsx)(i.A,{className:(0,b.cn)("h-4 w-4 shrink-0 text-muted-foreground transition-transform",d&&"rotate-180")})]}),d&&(0,n.jsxs)("div",{className:"space-y-2 border-t border-border bg-card/50 p-3",children:[r&&(0,n.jsxs)("div",{className:"flex items-start gap-2 rounded-md border border-destructive/40 bg-destructive/10 p-2.5",children:[(0,n.jsx)(l.A,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-destructive"}),(0,n.jsxs)("div",{className:"min-w-0 flex-1 space-y-1.5",children:[(0,n.jsxs)("p",{className:"text-[11px] leading-relaxed text-destructive",children:["OpenRouter rejected the saved API key",t?.message?`: ${t.message}`:"."]}),(0,n.jsxs)(a(),{href:"/connect",className:"inline-flex items-center gap-1 rounded border border-destructive/50 bg-destructive/10 px-2 py-1 text-[11px] font-medium text-destructive transition hover:bg-destructive/20",children:["Fix on Connect",(0,n.jsx)(o.A,{className:"h-3 w-3"})]})]})]}),N&&(0,n.jsx)("p",{className:"text-[11px] text-destructive",children:N}),0===v.length?(0,n.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"No OpenRouter voices yet. Add some on the Connect page."}):(0,n.jsx)("div",{className:"grid grid-cols-1 gap-1",children:v.map(e=>(0,n.jsxs)("button",{type:"button",disabled:k===e.id,onClick:()=>A(e),title:e.model_id,className:(0,b.cn)("flex items-center gap-2 rounded border px-2 py-1.5 text-left text-[11px] transition disabled:opacity-60",e.enabled?"border-primary/50 bg-primary/10 text-foreground":"border-border bg-card text-muted-foreground hover:border-muted-foreground/30"),children:[(0,n.jsx)("div",{className:(0,b.cn)("grid h-3 w-3 shrink-0 place-items-center rounded-sm border transition",e.enabled?"border-primary bg-primary text-primary-foreground":"border-border"),children:e.enabled&&(0,n.jsx)(c.A,{className:"h-2 w-2"})}),(0,n.jsx)("span",{className:"truncate font-mono",children:e.model_id})]},e.id))}),!r&&(0,n.jsx)("p",{className:"text-[11px] leading-relaxed text-muted-foreground/70",children:"Add or replace your API key on Connect. Toggles save automatically."})]})]})}},9707:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(3884).A)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},9823:(e,t,r)=>{"use strict";r.d(t,{LineageFleetCard:()=>b});var n=r(9442),s=r(6074),d=r(5445),a=r(9707),i=r(4030),l=r(3761),o=r(2956),c=r(3734),m=r(7847),u=r(4411),x=r(7362);let p={anthropic:"claude",openai:"codex",google:"gemini",opencode:"opencode",moonshot:"kimi"},g={dot:"bg-muted-foreground/40",gradient:"bg-gradient-to-br from-muted/30 via-card to-card"};function b({lineage:e,label:t,voices:r,health:i}){let l,[o,f]=(0,s.useState)(!1),[v,y]=(0,s.useState)(r),[N,j]=(0,s.useState)(null),[k,w]=(0,s.useState)(null);async function A(e){w(e.id),j(null);try{let t=await (0,m.updateVoice)(e.id,{enabled:!e.enabled});y(e=>e.map(e=>e.id===t.id?t:e))}catch(e){j(e instanceof u.$?e.message:"Couldn't save. Is the daemon running?")}finally{w(null)}}let C=v.filter(e=>e.enabled).length,_=(l=p[e])?c.r2[l]:g;return(0,n.jsxs)("div",{className:(0,x.cn)("rounded-lg border border-border transition-colors hover:border-foreground/20",_.gradient),children:[(0,n.jsxs)("button",{type:"button",onClick:()=>f(e=>!e),className:"flex w-full items-center gap-3 p-3 text-left",children:[(0,n.jsx)("span",{className:(0,x.cn)("h-2 w-2 shrink-0 rounded-full",_.dot)}),(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("div",{className:"text-sm font-medium",children:t}),(0,n.jsxs)("div",{className:"mt-0.5 flex items-center gap-2",children:[(0,n.jsx)(h,{status:i.status}),(0,n.jsxs)("span",{className:"text-[10px] text-muted-foreground",children:[C," model",1===C?"":"s"," enabled"]})]})]}),(0,n.jsx)(d.A,{className:(0,x.cn)("h-4 w-4 shrink-0 text-muted-foreground transition-transform",o&&"rotate-180")})]}),o&&(0,n.jsxs)("div",{className:"space-y-2 border-t border-border bg-card/50 p-3",children:[N&&(0,n.jsx)("p",{className:"text-[11px] text-destructive",children:N}),0===v.length?(0,n.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"No voices detected for this provider yet."}):(0,n.jsx)("div",{className:"grid grid-cols-1 gap-1",children:v.map(e=>{let t=e.enabled;return(0,n.jsxs)("button",{type:"button",disabled:k===e.id,onClick:()=>A(e),title:e.model_id,className:(0,x.cn)("flex items-center gap-2 rounded border px-2 py-1.5 text-left text-[11px] transition disabled:opacity-60",t?"border-primary/50 bg-primary/10 text-foreground":"border-border bg-card hover:border-muted-foreground/30 text-muted-foreground"),children:[(0,n.jsx)("div",{className:(0,x.cn)("grid h-3 w-3 shrink-0 place-items-center rounded-sm border transition",t?"border-primary bg-primary text-primary-foreground":"border-border"),children:t&&(0,n.jsx)(a.A,{className:"h-2 w-2"})}),(0,n.jsx)("span",{className:"truncate font-mono",children:e.model_id})]},e.id)})}),(0,n.jsx)("p",{className:"text-[11px] leading-relaxed text-muted-foreground/70",children:"Toggles save automatically. Voice list is curated per chorus release — new models appear after upgrades."})]})]})}function h({status:e}){switch(e){case"auth_invalid":return(0,n.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-destructive/10 px-2 py-0.5 text-[10px] font-medium text-destructive",children:[(0,n.jsx)(i.A,{className:"h-3 w-3"}),"Auth broken"]});case"quota_exhausted":return(0,n.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-destructive/10 px-2 py-0.5 text-[10px] font-medium text-destructive",children:[(0,n.jsx)(i.A,{className:"h-3 w-3"}),"Quota out"]});case"rate_limited":return(0,n.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-amber-500/10 px-2 py-0.5 text-[10px] font-medium text-amber-300",children:[(0,n.jsx)(l.A,{className:"h-3 w-3"}),"Rate-limited"]});default:return(0,n.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-emerald-500/10 px-2 py-0.5 text-[10px] font-medium text-emerald-300",children:[(0,n.jsx)(o.A,{className:"h-3 w-3"}),"Connected"]})}}}},e=>{e.O(0,[742,832,641,344,506,128,358],()=>e(e.s=5626)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[814],{3016:(e,r,t)=>{"use strict";t.r(r),t.d(r,{default:()=>eG});var s=t(9442),a=t(6074),n=t(4052),o=t(3149),i=t(8420),l=t(4372),d=t(63),c=t(5702),u=t(6457),m=t(8191),x=t(9315),p=t(2865),h=t(6891),g=t(6458),f=t(4030),b=t(2956),v=t(1853),j=t(6185),y=t(599),w=t(9345);let N=Object.freeze({valid:!0,issues:[]});var k=t(7362),C=t(8979),A=t(8821),S=t(4608),M=t(7978);let L={claude:"anthropic",codex:"openai",gemini:"google",opencode:"opencode",kimi:"moonshot",openrouter:"openrouter",local:"local"},D={anthropic:"claude",openai:"codex",google:"gemini",opencode:"opencode",moonshot:"kimi",openrouter:"openrouter",xai:"opencode",local:"local"},R={claude:"claude-opus-4-7",codex:"gpt-5.5",gemini:"gemini-2.5-pro",opencode:"kimi-k2.6",kimi:"kimi-k2.6",openrouter:"",local:""},P={id:"",name:"",description:"",author:"you",category:"review",phases:[{id:"review",name:"Review",description:"Three independent critiques.",kind:"review",gate:"ask-user",doer:{lineage:"claude",models:["claude-opus-4-7"]},reviewer:{require:3,crossLineage:!0,candidates:["codex","gemini","opencode"]},inputs:{include:[],exclude:[]},iterate:{max:3,onMax:"ask-user"},blindSpots:[],execution:"parallel",builtin:!1}],threshold:"unanimous",onThresholdMet:"ask-user",maxRounds:3,yoloDefault:!1,fallbackDoer:[],fallbackReviewer:[]},$=[{id:"review",label:"Review"},{id:"plan",label:"Plan"},{id:"debug",label:"Debug"},{id:"decide",label:"Decide"}],T=[{id:"unanimous",label:"Unanimous",hint:"All lineages must agree. Strictest — best for high-stakes reviews."},{id:"majority",label:"Majority",hint:"≥ ⅔ of lineages agree. Good default for code review."},{id:"any",label:"Any",hint:"≥1 lineage agrees. Useful for brainstorming where divergence is fine."}],_=[{id:"auto-finalize",label:"Auto-finalize"},{id:"ask-user",label:"Ask me"}],E=[{id:1,label:"Basics",icon:C.A},{id:2,label:"Phases",icon:A.A},{id:3,label:"Fallback",icon:S.A},{id:4,label:"Policy",icon:M.A}],q=["claude","codex","gemini","opencode","kimi","openrouter","local"];function F(e){return e.trim().toLowerCase().replace(/[^\w\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-")||"untitled"}function U(e){var r;return y.Ay.stringify({id:(r=e).id||F(r.name),name:r.name||"Untitled template",description:r.description||"Describe what this template is for.",author:r.author||"chorus",agreementThreshold:void 0!==r.customThreshold?r.customThreshold:function(e){switch(e){case"unanimous":return 1;case"majority":return .66;case"any":return .34}}(r.threshold),onThresholdMet:r.onThresholdMetRaw??("auto-finalize"===r.onThresholdMet?"merge":"ask"),maxRounds:r.maxRounds,yoloDefault:r.yoloDefault,phases:r.phases.map(e=>{let r="review_only"===e.kind,t=e.reviewer.candidates.length>0?{require:e.reviewer.require,crossLineage:e.reviewer.crossLineage,candidates:e.reviewer.candidates.flatMap(r=>{let t=(e.reviewer.candidateModels?.[r]??[]).map(e=>e.trim()).filter(e=>e.length>0),s=e.reviewer.candidatePersonas?.[r],a=L[r]??"anthropic";if(0===t.length){let e=R[r]??"claude-opus-4-7",t=s?.[""];return[{lineage:a,models:[e],...t?{persona:t}:{}}]}return t.map(e=>{let r=s?.[e];return{lineage:a,models:[e],...r?{persona:r}:{}}})})}:void 0;return r?{id:e.id,kind:e.kind,title:e.name,description:e.description,reviewer:t,inputs:{include:e.inputs.include,exclude:e.inputs.exclude},artifact:{label:e.artifact?.label??"Artifact to review",hint:e.artifact?.hint??"Paste a unified diff, a markdown draft, code, or any text blob.",maxBytes:e.artifact?.maxBytes??1048576}}:{id:e.id,kind:e.kind,title:e.name,description:e.description,doer:{lineage:L[e.doer.lineage]??"anthropic",models:e.doer.models.length>0?e.doer.models:[R[e.doer.lineage]??"claude-opus-4-7"],...e.doer.persona?{persona:e.doer.persona}:{}},reviewer:t,inputs:{include:e.inputs.include,exclude:e.inputs.exclude},iterate:{maxRounds:e.iterate.max,onDisagreement:"loopback"===e.iterate.onMax?"continue":"fail"===e.iterate.onMax?"accept-doer":"escalate",shareSessionAcrossRounds:!0,shareSessionAcrossPhases:!1}}}),...r.fallbackDoer.length>0||r.fallbackReviewer.length>0?{fallback:{...r.fallbackDoer.length>0?{doer:r.fallbackDoer.map(e=>({lineage:L[e.lineage]??"anthropic",models:[e.model],...e.persona?{persona:e.persona}:{}}))}:{},...r.fallbackReviewer.length>0?{reviewer:r.fallbackReviewer.map(e=>({lineage:L[e.lineage]??"anthropic",models:[e.model],...e.persona?{persona:e.persona}:{}}))}:{}}}:{}},{lineWidth:0})}var Y=t(6758),z=t(5483),I=t(7847),O=t(1993),B=t(52),V=t(2116),G=t(9410),W=t(9208),K=t(7618),H=t(4579),Z=t(9812),J=t(3734);let Q={review:B.A,review_only:B.A,plan:V.A,spec:p.A,tests:G.A,implement:W.A,verify:K.A,pr:H.A,divergence:S.A,recon:Z.A},X=[{id:"plan",label:"Plan"},{id:"spec",label:"Spec / API"},{id:"tests",label:"Tests"},{id:"implement",label:"Implement"},{id:"verify",label:"Verify"},{id:"pr",label:"Open PR"},{id:"review",label:"Review"},{id:"review_only",label:"Review only (artifact)"},{id:"divergence",label:"Divergence"},{id:"recon",label:"Recon"}],ee=["claude","codex","gemini","opencode","kimi","openrouter","local"].map(e=>({id:e,label:J.m_[e],dot:J.r2[e].dot})),er=J.x0,et={anthropic:"claude",openai:"codex",google:"gemini",opencode:"opencode",moonshot:"kimi",xai:"opencode",local:"local"};function es(){let[e,r]=(0,a.useState)({byLineage:{},connectedLineages:new Set,loaded:!1});return(0,a.useEffect)(()=>{(0,I.listVoices)({enabled:!0}).then(e=>{let t={},s=new Set;for(let r of e){if("openrouter"===r.provider){s.add("openrouter"),(t.openrouter??=[]).push(r.id);continue}let e=et[r.lineage];e&&(s.add(e),(t[e]??=[]).push(r.model_id)),r.provider.startsWith("opencode")&&"opencode"!==e&&(s.add("opencode"),(t.opencode??=[]).push(r.model_id))}for(let e of Object.keys(t))t[e]=Array.from(new Set(t[e]));r({byLineage:t,connectedLineages:s,loaded:!0})}).catch(()=>r({byLineage:{},connectedLineages:new Set,loaded:!0}))},[]),e}var ea=t(1304),en=t(2379),eo=t(5445),ei=t(9707),el=t(2471);function ed({children:e,onClick:r,disabled:t,title:a,className:n}){return(0,s.jsx)("button",{type:"button",disabled:t,onClick:e=>{e.stopPropagation(),r()},title:a,className:(0,k.cn)("grid h-6 w-6 place-items-center rounded text-muted-foreground transition hover:bg-accent hover:text-foreground disabled:cursor-not-allowed disabled:opacity-30",n),children:e})}function ec({label:e,children:r}){return(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"mb-1.5 block text-[10px] font-medium uppercase tracking-wider text-muted-foreground",children:e}),r]})}function eu({on:e,tone:r,onClick:t,children:a}){return(0,s.jsx)("button",{type:"button",onClick:t,className:(0,k.cn)("rounded-md border px-2 py-0.5 font-mono text-[10px] uppercase tracking-wider transition",{emerald:e?"border-emerald-500/40 bg-emerald-500/15 text-emerald-200":"border-border bg-card/40 text-muted-foreground hover:border-emerald-500/30",rose:e?"border-rose-500/40 bg-rose-500/15 text-rose-200":"border-border bg-card/40 text-muted-foreground hover:border-rose-500/30"}[r]),children:a})}function em({value:e,personas:r,onChange:t,inline:a,ariaLabel:n}){let o="__none__",i=r.some(r=>r.id===e);return(0,s.jsxs)("select",{value:e??o,onChange:e=>{let r=e.target.value;t(r===o?void 0:r)},className:(0,k.cn)("h-7 rounded-md border border-border bg-background px-2 text-[11px] focus:border-primary/60 focus:outline-none",a?"w-32 shrink-0":"w-full"),"aria-label":n??"Persona",children:[(0,s.jsx)("option",{value:o,children:"(no persona)"}),r.map(e=>(0,s.jsx)("option",{value:e.id,children:e.label},e.id)),e&&!i&&(0,s.jsxs)("option",{value:e,children:[e," (missing)"]})]})}function ex({lineage:e,value:r,options:t,onChange:n,defaultModel:o}){let i="__custom__",l=!r||t.includes(r),[d,c]=(0,a.useState)(!1);if(d)return(0,s.jsxs)("div",{className:"flex items-center gap-1",children:[(0,s.jsx)("input",{type:"text",value:r,onChange:e=>n(e.target.value),placeholder:o?`default: ${o}`:`${e} model id`,className:"h-7 flex-1 rounded-md border border-border bg-background px-2 font-mono text-[11px] text-foreground placeholder:text-muted-foreground/50 focus:border-primary/60 focus:outline-none",autoFocus:!0}),(0,s.jsx)("button",{type:"button",onClick:()=>c(!1),className:"h-7 rounded-md border border-border bg-card/40 px-2 text-[10px] text-muted-foreground hover:text-foreground",children:"done"})]});if(0===t.length)return(0,s.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,s.jsx)("input",{type:"text",value:r,onChange:e=>n(e.target.value),placeholder:o?`default: ${o}`:`${e} model id`,className:"h-7 w-full rounded-md border border-border bg-background px-2 font-mono text-[11px] text-foreground placeholder:text-muted-foreground/50 focus:border-primary/60 focus:outline-none"}),(0,s.jsxs)("p",{className:"text-[10px] text-amber-400/80",children:["No ",e," voices enabled. Configure in Connect to populate this dropdown."]})]});let u=l?t:[r,...t];return(0,s.jsxs)("select",{value:r,onChange:e=>{e.target.value===i?c(!0):n(e.target.value)},className:"h-7 w-full rounded-md border border-border bg-background px-2 font-mono text-[11px] text-foreground focus:border-primary/60 focus:outline-none",children:[!r&&(0,s.jsx)("option",{value:"",children:o?`default: ${o}`:"— pick a model —"}),u.map(e=>(0,s.jsxs)("option",{value:e,children:[e,t.includes(e)||r!==e?"":" (not enabled)"]},e)),(0,s.jsx)("option",{value:i,children:"+ custom (type a model id)…"})]})}function ep(e){let r=[];for(let t of e.candidates){let s=e.candidateModels?.[t],a=e.candidatePersonas?.[t];if(s&&0!==s.length)for(let e of s)r.push({lineage:t,model:e,...a?.[e]?{persona:a[e]}:{}});else r.push({lineage:t,model:"",...a?.[""]?{persona:a[""]}:{}})}return r}function eh({phase:e,connectedVoices:r,personas:t,onUpdate:a}){let n=ep(e.reviewer),o=ee.filter(e=>0===r.connectedLineages.size||r.connectedLineages.has(e.id));function i(r){a({reviewer:function(e,r){let t=[],s={},a={};for(let r of e)t.includes(r.lineage)||t.push(r.lineage),r.model&&(s[r.lineage]??=[]).push(r.model),r.persona&&((a[r.lineage]??={})[r.model]=r.persona);return{...r,candidates:t,candidateModels:s,...Object.keys(a).length>0?{candidatePersonas:a}:{candidatePersonas:void 0}}}(r,e.reviewer)})}function l(e,t){let s=n.map((r,s)=>s===e?{...r,...t}:r);if(t.lineage&&t.lineage!==n[e].lineage){let a=r.byLineage[t.lineage]??[];s[e].model=a[0]??er[t.lineage]??""}i(s)}return(0,s.jsxs)("div",{className:"space-y-1.5",children:[0===n.length&&(0,s.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"No reviewers yet. Click + add reviewer below."}),n.map((e,a)=>{let d=ee.find(r=>r.id===e.lineage);return(0,s.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,s.jsxs)("select",{value:e.lineage,onChange:e=>l(a,{lineage:e.target.value}),className:"h-7 w-32 shrink-0 rounded-md border border-border bg-background px-2 text-[11px] focus:border-primary/60 focus:outline-none","aria-label":"Reviewer lineage",children:[o.map(e=>(0,s.jsx)("option",{value:e.id,children:e.label},e.id)),!o.find(r=>r.id===e.lineage)&&(0,s.jsxs)("option",{value:e.lineage,children:[d?.label??e.lineage," (not connected)"]})]}),(0,s.jsx)("div",{className:"flex-1",children:(0,s.jsx)(ex,{lineage:e.lineage,value:e.model,options:r.byLineage[e.lineage]??[],defaultModel:er[e.lineage],onChange:e=>l(a,{model:e})})}),(0,s.jsx)(em,{value:e.persona,personas:t,onChange:e=>l(a,{persona:e}),inline:!0,ariaLabel:"Reviewer persona"}),(0,s.jsx)("button",{type:"button",onClick:()=>{i(n.filter((e,r)=>r!==a))},"aria-label":"Remove reviewer",className:"grid h-7 w-7 shrink-0 place-items-center rounded-md border border-border bg-card/40 text-muted-foreground hover:border-destructive/40 hover:text-destructive",children:(0,s.jsx)(h.A,{className:"h-3 w-3"})})]},a)}),(0,s.jsxs)("button",{type:"button",onClick:function(){let e=o[0]?.id??"claude",t=r.byLineage[e]??[],s=new Set(n.filter(r=>r.lineage===e).map(e=>e.model)),a=t.find(e=>!s.has(e))??er[e]??"";i([...n,{lineage:e,model:a}])},className:"flex w-full items-center justify-center gap-1.5 rounded-md border border-dashed border-border bg-card/30 px-3 py-2 text-[11px] font-medium text-muted-foreground transition hover:border-primary/40 hover:bg-card/50 hover:text-foreground",children:[(0,s.jsx)(x.A,{className:"h-3 w-3"}),"Add another reviewer"]})]})}function eg({phase:e,onUpdate:r,connectedVoices:t,personas:a}){return(0,s.jsxs)(ec,{label:"Doer \xb7 the agent that writes this phase's output",children:[(0,s.jsx)("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-5",children:ee.filter(e=>0===t.connectedLineages.size||t.connectedLineages.has(e.id)).map(a=>(0,s.jsxs)("button",{type:"button",onClick:()=>{let e=(t.byLineage[a.id]??[])[0]??er[a.id];r({doer:{lineage:a.id,models:e?[e]:[]}})},className:(0,k.cn)("flex items-center gap-1.5 rounded-md border px-2 py-1.5 text-left transition",e.doer.lineage===a.id?"border-primary/40 bg-primary/10":"border-border bg-card/40 hover:border-foreground/30"),children:[(0,s.jsx)("span",{className:(0,k.cn)("h-1.5 w-1.5 rounded-full",a.dot)}),(0,s.jsx)("span",{className:"text-xs",children:a.label}),e.doer.lineage===a.id&&(0,s.jsx)(ei.A,{className:"ml-auto h-3 w-3 text-primary"})]},a.id))}),(0,s.jsx)("div",{className:"mt-2",children:(0,s.jsx)(ex,{lineage:e.doer.lineage,value:e.doer.models[0]??"",options:t.byLineage[e.doer.lineage]??[],defaultModel:er[e.doer.lineage],onChange:t=>r({doer:{...e.doer,models:t?[t]:[]}})})}),(0,s.jsxs)("div",{className:"mt-2",children:[(0,s.jsx)("label",{className:"mb-1 block text-[10px] text-muted-foreground",children:"Persona (optional \xb7 prepends a worldview to the doer's prompt)"}),(0,s.jsx)(em,{value:e.doer.persona,personas:a,onChange:t=>r({doer:t?{...e.doer,persona:t}:(()=>{let{persona:r,...t}=e.doer;return t})()}),ariaLabel:"Doer persona"})]})]})}function ef({phase:e,onUpdate:r}){let t={label:e.artifact?.label??"Artifact to review",hint:e.artifact?.hint??"Paste a unified diff, a markdown draft, code, or any text blob.",maxBytes:e.artifact?.maxBytes??1048576};return(0,s.jsx)(ec,{label:"Artifact \xb7 what the user pastes when starting a chat",children:(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"text-[10px] text-muted-foreground",children:"Label"}),(0,s.jsx)("input",{type:"text",value:t.label,onChange:e=>r({artifact:{...t,label:e.target.value}}),placeholder:"Artifact to review",className:"mt-1 h-7 w-full rounded-md border border-border bg-background px-2.5 text-[11px] placeholder:text-muted-foreground/60 focus:border-primary/60 focus:outline-none"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"text-[10px] text-muted-foreground",children:"Placeholder hint"}),(0,s.jsx)("textarea",{value:e.artifact?.hint??"",onChange:e=>r({artifact:{...t,hint:e.target.value}}),placeholder:"Paste a unified diff, a markdown draft, code, or any text blob.",rows:2,className:"mt-1 w-full resize-none rounded-md border border-border bg-background px-2.5 py-1.5 text-[11px] placeholder:text-muted-foreground/60 focus:border-primary/60 focus:outline-none"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"text-[10px] text-muted-foreground",children:"Max bytes (server-side cap)"}),(0,s.jsx)("input",{type:"number",min:1024,step:1024,value:t.maxBytes,onChange:e=>r({artifact:{...t,maxBytes:Math.max(1024,parseInt(e.target.value,10)||1048576)}}),className:"mt-1 h-7 w-full rounded-md border border-border bg-background px-2.5 font-mono text-[11px] focus:border-primary/60 focus:outline-none"}),(0,s.jsx)("p",{className:"mt-1 text-[10px] text-muted-foreground/80",children:"1 MiB = 1048576. Default if unset."})]})]})})}function eb({phase:e,onUpdate:r,connectedVoices:t,personas:a}){return(0,s.jsx)(ec,{label:"Reviewers \xb7 who gates this phase",children:(0,s.jsx)(eh,{phase:e,connectedVoices:t,personas:a,onUpdate:r})})}function ev({phase:e,onUpdate:r}){return(0,s.jsx)(ec,{label:"Approvals",children:(0,s.jsxs)("div",{className:"flex items-center gap-4 flex-wrap",children:[(0,s.jsxs)("label",{className:"flex items-center gap-2 text-[11px] text-muted-foreground",children:["Require:",(0,s.jsx)("input",{type:"number",min:0,max:Math.max(1,ep(e.reviewer).length),value:e.reviewer.require,onChange:t=>r({reviewer:{...e.reviewer,require:Math.max(0,parseInt(t.target.value,10)||0)}}),className:"h-6 w-12 rounded border border-border bg-background px-1.5 text-center font-mono text-[11px]"}),"approval",1===e.reviewer.require?"":"s"]}),"review_only"!==e.kind&&(0,s.jsxs)("label",{className:"flex items-center gap-2 text-[11px] text-muted-foreground",children:[(0,s.jsx)("input",{type:"checkbox",checked:e.reviewer.crossLineage,onChange:t=>r({reviewer:{...e.reviewer,crossLineage:t.target.checked}}),className:"accent-primary"}),"Cross-lineage required"]})]})})}function ej({phase:e,onUpdate:r}){return(0,s.jsx)(ec,{label:"Reviewer execution \xb7 how multiple reviewers interact",children:(0,s.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:[(0,s.jsxs)("button",{type:"button",onClick:()=>r({execution:"parallel"}),className:(0,k.cn)("rounded-md border px-3 py-2.5 text-left transition","parallel"===e.execution?"border-emerald-500/40 bg-emerald-500/5":"border-border bg-card/40 hover:border-foreground/30"),children:[(0,s.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-medium",children:["Parallel independent",(0,s.jsx)("span",{className:"font-mono text-[9px] uppercase text-emerald-300/80",children:"fast"})]}),(0,s.jsx)("p",{className:"mt-0.5 text-[10px] leading-snug text-muted-foreground",children:"All reviewers see the same pack, work in isolation, vote. Catches single-reviewer mistakes via consensus. Risk: shared blind spots pass anyway."})]}),(0,s.jsxs)("button",{type:"button",onClick:()=>r({execution:"sequential"}),className:(0,k.cn)("rounded-md border px-3 py-2.5 text-left transition","sequential"===e.execution?"border-amber-500/40 bg-amber-500/5":"border-border bg-card/40 hover:border-foreground/30"),children:[(0,s.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-medium",children:["Sequential hostile",(0,s.jsx)("span",{className:"font-mono text-[9px] uppercase text-amber-300/80",children:"thorough"})]}),(0,s.jsx)("p",{className:"mt-0.5 text-[10px] leading-snug text-muted-foreground",children:"Reviewers run in order. Each receives the already-hardened output and hunts what the prior reviewer missed. Slower; only works if the first reviewer's solution is sound."})]})]})})}function ey({phase:e,onUpdate:r,priorPhases:t}){return(0,s.jsxs)(ec,{label:"Inputs \xb7 which prior phases this doer can read",children:[(0,s.jsx)("div",{className:"space-y-1.5",children:t.map(t=>{let a=e.inputs.include.includes(t),n=e.inputs.exclude.includes(t),o=n?"exclude":a?"include":"none";return(0,s.jsxs)("div",{className:"flex items-center justify-between rounded-md border border-border bg-card/30 px-2.5 py-1.5",children:[(0,s.jsx)("code",{className:"font-mono text-[11px] text-foreground",children:t}),(0,s.jsxs)("div",{className:"flex items-center gap-1",children:[(0,s.jsx)(eu,{on:"include"===o,tone:"emerald",onClick:()=>r({inputs:{include:a?e.inputs.include.filter(e=>e!==t):[...e.inputs.include,t],exclude:e.inputs.exclude.filter(e=>e!==t)}}),children:"include"}),(0,s.jsx)(eu,{on:"exclude"===o,tone:"rose",onClick:()=>r({inputs:{include:e.inputs.include.filter(e=>e!==t),exclude:n?e.inputs.exclude.filter(e=>e!==t):[...e.inputs.exclude,t]}}),children:"exclude (blind)"})]})]},t)})}),(0,s.jsxs)("p",{className:"mt-2 flex items-start gap-1.5 text-[10px] text-muted-foreground",children:[(0,s.jsx)(el.A,{className:"mt-0.5 h-2.5 w-2.5 shrink-0 text-muted-foreground/60"}),(0,s.jsxs)("span",{children:[(0,s.jsx)("span",{className:"font-mono text-rose-300",children:"exclude"}),"prevents this doer from seeing that phase's output. Used for info asymmetry — e.g. the implementer shouldn't see the tests."]})]})]})}function ew({phase:e,onUpdate:r,priorPhases:t}){return(0,s.jsx)(ec,{label:"Iterate \xb7 what happens when reviewer rejects",children:(0,s.jsxs)("div",{className:"grid grid-cols-3 gap-2",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"text-[10px] text-muted-foreground",children:"Max revise"}),(0,s.jsx)("input",{type:"number",min:1,max:10,value:e.iterate.max,onChange:t=>r({iterate:{...e.iterate,max:Math.max(1,parseInt(t.target.value,10)||1)}}),className:"mt-1 h-7 w-full rounded-md border border-border bg-background px-2 font-mono text-[11px]"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"text-[10px] text-muted-foreground",children:"On max"}),(0,s.jsxs)("select",{value:e.iterate.onMax,onChange:t=>r({iterate:{...e.iterate,onMax:t.target.value}}),className:"mt-1 h-7 w-full rounded-md border border-border bg-background px-1.5 text-[11px]",children:[(0,s.jsx)("option",{value:"ask-user",children:"ask me"}),(0,s.jsx)("option",{value:"loopback",children:"loop back"}),(0,s.jsx)("option",{value:"fail",children:"fail"})]})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"text-[10px] text-muted-foreground",children:"Loop back to"}),(0,s.jsxs)("select",{disabled:"loopback"!==e.iterate.onMax,value:e.iterate.loopbackTo??"",onChange:t=>r({iterate:{...e.iterate,loopbackTo:t.target.value||void 0}}),className:"mt-1 h-7 w-full rounded-md border border-border bg-background px-1.5 text-[11px] disabled:opacity-40",children:[(0,s.jsx)("option",{value:"",children:"—"}),t.map(e=>(0,s.jsx)("option",{value:e,children:e},e))]})]})]})})}function eN({phase:e,onUpdate:r}){return(0,s.jsx)(ec,{label:"Gate \xb7 what happens when this phase finishes",children:(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,s.jsxs)("button",{type:"button",onClick:()=>r({gate:"auto"}),className:(0,k.cn)("rounded-md border px-2.5 py-1.5 text-left transition","auto"===e.gate?"border-emerald-500/40 bg-emerald-500/10":"border-border bg-card/40 hover:border-foreground/30"),children:[(0,s.jsx)("div",{className:"text-xs font-medium",children:"Auto-proceed"}),(0,s.jsx)("div",{className:"text-[10px] text-muted-foreground",children:"Continue to next phase without asking."})]}),(0,s.jsxs)("button",{type:"button",onClick:()=>r({gate:"ask-user"}),className:(0,k.cn)("rounded-md border px-2.5 py-1.5 text-left transition","ask-user"===e.gate?"border-amber-500/40 bg-amber-500/10":"border-border bg-card/40 hover:border-foreground/30"),children:[(0,s.jsx)("div",{className:"text-xs font-medium",children:"Checkpoint (ask me)"}),(0,s.jsx)("div",{className:"text-[10px] text-muted-foreground",children:"Stop here, surface verdict, wait for click."})]})]})})}function ek({phase:e,index:r,total:t,allPhaseIds:n,connectedVoices:o,personas:l,onUpdate:d,onMoveUp:c,onMoveDown:u,onDelete:m}){let[x,p]=(0,a.useState)(0===r),h=Q[e.kind],g=n.slice(0,r);return(0,s.jsxs)("div",{className:"rounded-lg border border-border bg-card/40",children:[(0,s.jsxs)("button",{type:"button",onClick:()=>p(e=>!e),className:"flex w-full items-center gap-3 px-3 py-2.5 text-left",children:[(0,s.jsx)("span",{className:"font-mono text-[10px] text-muted-foreground/60",children:String(r+1).padStart(2,"0")}),(0,s.jsx)("span",{className:"grid h-7 w-7 shrink-0 place-items-center rounded-md bg-primary/15 text-primary",children:(0,s.jsx)(h,{className:"h-3.5 w-3.5"})}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"text-sm font-medium text-foreground truncate",children:e.name||"Untitled phase"}),(0,s.jsx)("span",{className:"font-mono text-[10px] uppercase text-muted-foreground/70",children:e.kind})]}),(0,s.jsx)(eC,{phase:e})]}),(0,s.jsxs)("div",{className:"flex shrink-0 items-center gap-0.5",children:[(0,s.jsx)(ed,{disabled:0===r,onClick:c,title:"Move up",children:(0,s.jsx)(ea.A,{className:"h-3 w-3"})}),(0,s.jsx)(ed,{disabled:r===t-1,onClick:u,title:"Move down",children:(0,s.jsx)(en.A,{className:"h-3 w-3"})}),(0,s.jsx)(ed,{onClick:m,title:"Delete phase",className:"hover:text-rose-400",children:(0,s.jsx)(i.A,{className:"h-3 w-3"})}),(0,s.jsx)("span",{className:"ml-1 text-muted-foreground/60",children:x?(0,s.jsx)(eo.A,{className:"h-3.5 w-3.5"}):(0,s.jsx)(z.A,{className:"h-3.5 w-3.5"})})]})]}),x&&(0,s.jsxs)("div",{className:"space-y-4 border-t border-border bg-background/40 px-3 py-3",children:[(0,s.jsxs)("div",{className:"grid grid-cols-[1fr_140px] gap-2",children:[(0,s.jsx)(ec,{label:"Name",children:(0,s.jsx)("input",{type:"text",value:e.name,onChange:e=>d({name:e.target.value}),className:"h-8 w-full rounded-md border border-border bg-background px-2.5 text-xs text-foreground focus:border-primary/60 focus:outline-none"})}),(0,s.jsx)(ec,{label:"Kind",children:(0,s.jsx)("select",{value:e.kind,onChange:e=>d({kind:e.target.value}),className:"h-8 w-full rounded-md border border-border bg-background px-2 text-xs text-foreground focus:border-primary/60 focus:outline-none",children:X.map(e=>(0,s.jsx)("option",{value:e.id,children:e.label},e.id))})})]}),(0,s.jsx)(ec,{label:"Description",children:(0,s.jsx)("input",{type:"text",value:e.description,onChange:e=>d({description:e.target.value}),placeholder:"What this phase produces and why it exists.",className:"h-8 w-full rounded-md border border-border bg-background px-2.5 text-xs text-foreground placeholder:text-muted-foreground/60 focus:border-primary/60 focus:outline-none"})}),"review_only"!==e.kind&&(0,s.jsx)(eg,{phase:e,onUpdate:d,connectedVoices:o,personas:l}),"review_only"===e.kind&&(0,s.jsx)(ef,{phase:e,onUpdate:d}),(0,s.jsx)(eb,{phase:e,onUpdate:d,connectedVoices:o,personas:l}),(0,s.jsx)(ev,{phase:e,onUpdate:d}),(0,s.jsx)(ej,{phase:e,onUpdate:d}),g.length>0&&(0,s.jsx)(ey,{phase:e,onUpdate:d,priorPhases:g}),"review_only"!==e.kind&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(ew,{phase:e,onUpdate:d,priorPhases:g}),(0,s.jsx)(eN,{phase:e,onUpdate:d})]})]})]})}function eC({phase:e}){return(0,s.jsxs)("div",{className:"mt-0.5 flex flex-wrap items-center gap-1.5 text-[10px] text-muted-foreground",children:["review_only"!==e.kind&&(0,s.jsxs)("span",{className:"flex items-center gap-1",children:[(0,s.jsx)("span",{className:(0,k.cn)("h-1.5 w-1.5 rounded-full",ee.find(r=>r.id===e.doer.lineage)?.dot)}),"doer: ",e.doer.lineage]}),e.reviewer.candidates.length>0&&(0,s.jsxs)(s.Fragment,{children:["review_only"!==e.kind&&(0,s.jsx)("span",{className:"text-muted-foreground/40",children:"\xb7"}),(0,s.jsxs)("span",{className:"flex items-center gap-1",children:["reviewers:",e.reviewer.candidates.map(e=>(0,s.jsx)("span",{className:(0,k.cn)("h-1.5 w-1.5 rounded-full",ee.find(r=>r.id===e)?.dot),title:e},e))]})]}),e.reviewer.crossLineage&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"text-muted-foreground/40",children:"\xb7"}),(0,s.jsx)("span",{className:"text-amber-300/90 font-mono text-[9px] uppercase",children:"cross-lineage"})]}),(0,s.jsx)("span",{className:"text-muted-foreground/40",children:"\xb7"}),(0,s.jsx)("span",{className:(0,k.cn)("font-mono text-[9px] uppercase","sequential"===e.execution?"text-amber-300/90":"text-emerald-300/80"),title:"sequential"===e.execution?"Sequential hostile — reviewers chain":"Parallel independent — reviewers vote",children:"sequential"===e.execution?"sequential":"parallel"}),e.inputs.exclude.length>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"text-muted-foreground/40",children:"\xb7"}),(0,s.jsxs)("span",{className:"text-rose-300/90 font-mono text-[9px]",children:["blind-to: ",e.inputs.exclude.join(",")]})]})]})}function eA({phases:e,onChange:r}){let t=es(),{personas:n}=function(){let[e,r]=(0,a.useState)({personas:[],loaded:!1});return(0,a.useEffect)(()=>{(0,O.UT)().then(e=>r({personas:e,loaded:!0})).catch(()=>r({personas:[],loaded:!0}))},[]),e}();function o(t,s){let a=t+s;if(a<0||a>=e.length)return;let n=[...e];[n[t],n[a]]=[n[a],n[t]],r(n)}let i=e.map(e=>e.id);return(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"mb-2 flex items-center justify-between",children:[(0,s.jsxs)("span",{className:"text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:["Phases (",e.length,")"]}),(0,s.jsx)("span",{className:"text-[11px] text-muted-foreground/70",children:"Each phase has a doer + reviewer. Adversarial by default."})]}),(0,s.jsx)("div",{className:"space-y-2",children:e.map((a,l)=>(0,s.jsx)(ek,{phase:a,index:l,total:e.length,allPhaseIds:i,connectedVoices:t,personas:n,onUpdate:t=>{r(e.map((e,r)=>r===l?{...e,...t}:e))},onMoveUp:()=>o(l,-1),onMoveDown:()=>o(l,1),onDelete:()=>{r(e.filter((e,r)=>r!==l))}},a.id))}),(0,s.jsxs)("button",{type:"button",onClick:function(){var t;r([...e,(t=e.length,{id:`phase-${t+1}`,name:`Phase ${t+1}`,description:"",kind:"review",gate:"auto",doer:{lineage:"claude",models:["claude-opus-4-7"]},reviewer:{require:1,crossLineage:!0,candidates:["codex"]},inputs:{include:[],exclude:[]},iterate:{max:3,onMax:"ask-user"},blindSpots:[],execution:"sequential",builtin:!1})])},className:"mt-3 flex w-full items-center justify-center gap-1.5 rounded-md border border-dashed border-border bg-card/30 px-3 py-2.5 text-xs font-medium text-muted-foreground transition hover:border-primary/40 hover:bg-card/50 hover:text-foreground",children:[(0,s.jsx)(x.A,{className:"h-3.5 w-3.5"}),"Add phase"]})]})}function eS({active:e,onClick:r,disabled:t,children:a}){return(0,s.jsxs)("button",{type:"button",onClick:r,disabled:t,className:(0,k.cn)("relative flex items-center gap-1.5 rounded-t-md px-3 py-2.5 text-sm font-medium transition-colors",t?"cursor-not-allowed text-muted-foreground/50":e?"text-foreground":"text-muted-foreground hover:text-foreground"),children:[a,e&&!t&&(0,s.jsx)("span",{className:"absolute inset-x-0 -bottom-px h-0.5 bg-primary"})]})}function eM({label:e,htmlFor:r,hint:t,children:a}){return(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)("label",{htmlFor:r,className:"block text-[13px] font-medium text-foreground",children:e}),a,t&&(0,s.jsx)("p",{className:"text-[11px] leading-snug text-muted-foreground/80",children:t})]})}function eL({active:e,onClick:r,children:t}){return(0,s.jsx)("button",{type:"button",onClick:r,className:(0,k.cn)("h-8 rounded-md border px-3 text-xs font-medium transition",e?"border-primary/60 bg-primary/15 text-primary":"border-border bg-card text-muted-foreground hover:border-muted-foreground/30 hover:bg-accent/40 hover:text-foreground"),children:t})}function eD({form:e,setField:r,showErrors:t}){let a=t&&0===e.name.trim().length,n=t&&0===e.description.trim().length;return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(eM,{label:"Name *",htmlFor:"tpl-name",children:[(0,s.jsx)("input",{id:"tpl-name",value:e.name,onChange:e=>r("name",e.target.value),placeholder:"security-audit","aria-invalid":a,className:(0,k.cn)("h-10 w-full rounded-md border bg-background px-3 text-sm placeholder:text-muted-foreground/60 focus:outline-none focus:ring-2",a?"border-destructive/60 focus:border-destructive focus:ring-destructive/30":"border-border focus:border-primary/60 focus:ring-primary/20")}),a&&(0,s.jsx)("p",{className:"text-[11px] text-destructive",children:"Name is required."})]}),(0,s.jsxs)(eM,{label:"Description *",htmlFor:"tpl-desc",hint:"One sentence on when someone should reach for this template.",children:[(0,s.jsx)("textarea",{id:"tpl-desc",value:e.description,onChange:e=>r("description",e.target.value),placeholder:"Independent security audit from 3 model families…",rows:2,"aria-invalid":n,className:(0,k.cn)("w-full resize-none rounded-md border bg-background px-3 py-2 text-sm leading-relaxed placeholder:text-muted-foreground/60 focus:outline-none focus:ring-2",n?"border-destructive/60 focus:border-destructive focus:ring-destructive/30":"border-border focus:border-primary/60 focus:ring-primary/20")}),n&&(0,s.jsx)("p",{className:"text-[11px] text-destructive",children:"Description is required."})]}),(0,s.jsx)(eM,{label:"Category",children:(0,s.jsx)("div",{className:"flex flex-wrap gap-2",children:$.map(t=>(0,s.jsx)(eL,{active:t.id===e.category,onClick:()=>r("category",t.id),children:t.label},t.id))})})]})}function eR({form:e,setField:r}){let t=es();return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"rounded-md border border-border bg-card/40 px-3 py-2 text-[11px] leading-relaxed text-muted-foreground",children:[(0,s.jsxs)("div",{className:"mb-1 flex items-center gap-1.5 text-foreground",children:[(0,s.jsx)(S.A,{className:"h-3 w-3"}),(0,s.jsx)("span",{className:"text-[12px] font-medium",children:"Template-level fallback chains"})]}),"Tried in order whenever a slot exhausts its own per-slot model chain. Cross-lineage swap supported — a codex slot can fall through to a claude or kimi entry. Strict",(0,s.jsx)("span",{className:"font-mono",children:" (lineage, model)"})," dedup keeps diversity: a fallback whose model already runs as another reviewer in this phase is skipped, so you never review the same code twice with the same voice. Order matters — list your most-preferred fallback first."]}),(0,s.jsx)(eP,{title:"Doer fallback",hint:"Engaged when the doer's primary + per-slot models all fail.",rows:e.fallbackDoer,onChange:e=>r("fallbackDoer",e),connectedVoices:t}),(0,s.jsx)(eP,{title:"Reviewer fallback",hint:"Engaged when any reviewer's primary + per-slot models all fail.",rows:e.fallbackReviewer,onChange:e=>r("fallbackReviewer",e),connectedVoices:t})]})}function eP({title:e,hint:r,rows:t,onChange:a,connectedVoices:n}){let o=(e,r)=>{a(t.map((t,s)=>s===e?{...t,...r}:t))};return(0,s.jsxs)("div",{className:"rounded-lg border border-border bg-card/40 p-4",children:[(0,s.jsxs)("div",{className:"mb-1 flex items-center justify-between",children:[(0,s.jsx)("h4",{className:"text-[13px] font-semibold tracking-tight",children:e}),(0,s.jsxs)("button",{type:"button",onClick:()=>{let e=q.find(e=>(n.byLineage[e]??[]).length>0)??"claude",r=n.byLineage[e]?.[0]??"";a([...t,{lineage:e,model:r}])},className:"inline-flex h-7 items-center gap-1 rounded-md border border-border bg-card px-2.5 text-[11px] font-medium text-muted-foreground transition hover:border-primary/40 hover:text-primary",children:[(0,s.jsx)(x.A,{className:"h-3 w-3"}),"Add fallback"]})]}),(0,s.jsx)("p",{className:"mb-3 text-[11px] leading-snug text-muted-foreground/80",children:r}),0===t.length?(0,s.jsx)("p",{className:"rounded-md border border-dashed border-border/60 bg-background/30 px-3 py-4 text-center text-[11px] text-muted-foreground",children:"None set — slot will fail its phase if the per-slot chain exhausts."}):(0,s.jsx)("ul",{className:"space-y-2",children:t.map((e,r)=>{let i=n.byLineage[e.lineage]??[],l=0===e.model.length||i.includes(e.model);return(0,s.jsxs)("li",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md border border-border bg-card font-mono text-[10px] text-muted-foreground",children:r+1}),(0,s.jsx)("select",{value:e.lineage,onChange:e=>{var s;let a,i;return s=e.target.value,a=n.byLineage[s]??[],i=t[r].model,void o(r,{lineage:s,model:a.includes(i)?i:a[0]??""})},className:"h-8 rounded-md border border-border bg-background px-2 text-xs text-foreground focus:border-primary/60 focus:outline-none focus:ring-1 focus:ring-primary/20",children:q.map(e=>(0,s.jsx)("option",{value:e,children:e},e))}),(0,s.jsxs)("select",{value:e.model,onChange:e=>o(r,{model:e.target.value}),className:"h-8 flex-1 rounded-md border border-border bg-background px-2 font-mono text-[11px] text-foreground focus:border-primary/60 focus:outline-none focus:ring-1 focus:ring-primary/20",children:[0===i.length&&(0,s.jsx)("option",{value:"",disabled:!0,children:n.loaded?`No ${e.lineage} models enabled — open Connect → ${e.lineage}`:"loading…"}),i.map(e=>(0,s.jsx)("option",{value:e,children:e},e)),!l&&e.model.length>0&&(0,s.jsxs)("option",{value:e.model,children:[e.model," (stored)"]})]}),(0,s.jsx)("button",{type:"button",onClick:()=>{a(t.filter((e,t)=>t!==r))},"aria-label":`Remove fallback ${r+1}`,className:"grid h-7 w-7 place-items-center rounded-md border border-border bg-card text-muted-foreground transition hover:border-destructive/40 hover:text-destructive",children:(0,s.jsx)(h.A,{className:"h-3 w-3"})})]},r)})})]})}function e$({form:e,setField:r}){return(0,s.jsxs)("div",{className:"rounded-lg border border-border bg-card/40 p-4",children:[(0,s.jsx)("h3",{className:"mb-3 text-[13px] font-semibold tracking-tight",children:"Across all phases"}),(0,s.jsxs)("div",{className:"mb-4",children:[(0,s.jsx)("div",{className:"mb-1.5 text-[11px] font-medium text-muted-foreground",children:"Agreement threshold (per review-style phase)"}),(0,s.jsx)("div",{className:"grid grid-cols-3 gap-2",children:T.map(t=>(0,s.jsx)("button",{type:"button",onClick:()=>r("threshold",t.id),className:(0,k.cn)("rounded-md border px-3 py-2 text-left transition",e.threshold===t.id?"border-primary/60 bg-primary/10 ring-1 ring-primary/40":"border-border bg-card hover:border-muted-foreground/30 hover:bg-accent/40"),children:(0,s.jsx)("div",{className:"text-xs font-medium",children:t.label})},t.id))}),(0,s.jsx)("p",{className:"mt-1.5 text-[11px] leading-snug text-muted-foreground/80",children:T.find(r=>r.id===e.threshold)?.hint})]}),(0,s.jsxs)("div",{className:"mb-4",children:[(0,s.jsx)("div",{className:"mb-1.5 text-[11px] font-medium text-muted-foreground",children:"When threshold is met"}),(0,s.jsx)("div",{className:"grid grid-cols-2 gap-2",children:_.map(t=>(0,s.jsx)("button",{type:"button",onClick:()=>r("onThresholdMet",t.id),className:(0,k.cn)("rounded-md border px-3 py-2 text-left transition",e.onThresholdMet===t.id?"border-primary/60 bg-primary/10 ring-1 ring-primary/40":"border-border bg-card hover:border-muted-foreground/30 hover:bg-accent/40"),children:(0,s.jsx)("div",{className:"text-xs font-medium",children:t.label})},t.id))})]}),(0,s.jsxs)("div",{className:"mb-4",children:[(0,s.jsxs)("div",{className:"mb-1.5 flex items-center justify-between",children:[(0,s.jsx)("span",{className:"text-[11px] font-medium text-muted-foreground",children:"Max revise rounds (per phase)"}),(0,s.jsx)("span",{className:"font-mono text-xs text-foreground",children:e.maxRounds})]}),(0,s.jsx)("input",{type:"range",min:1,max:5,step:1,value:e.maxRounds,onChange:e=>r("maxRounds",parseInt(e.target.value,10)),className:"h-1 w-full cursor-pointer appearance-none rounded-full bg-muted accent-primary"})]}),(0,s.jsxs)("button",{type:"button",onClick:()=>r("yoloDefault",!e.yoloDefault),className:(0,k.cn)("flex w-full items-center justify-between rounded-md border px-3 py-2 text-left transition",e.yoloDefault?"border-rose-500/40 bg-rose-500/5":"border-border bg-card hover:border-foreground/30"),children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"text-xs font-medium text-foreground",children:"\uD83D\uDE80 Yolo by default"}),(0,s.jsx)("div",{className:"text-[10px] text-muted-foreground",children:"Auto-approve every gate. Only flip on for trusted templates or trivial fixes. Cost cap still enforced."})]}),(0,s.jsx)("span",{className:(0,k.cn)("flex h-5 w-9 shrink-0 items-center rounded-full border p-0.5 transition",e.yoloDefault?"border-rose-500/40 bg-rose-500/20":"border-border bg-card"),children:(0,s.jsx)("span",{className:(0,k.cn)("h-3.5 w-3.5 rounded-full transition-transform",e.yoloDefault?"translate-x-4 bg-rose-400":"bg-muted-foreground/50")})})]})]})}function eT(e,r){let t=[];if(1===e)r.name&&0!==r.name.trim().length?r.name.length>80&&t.push("Name is too long (max 80 chars)."):t.push("Name is required."),r.description&&0!==r.description.trim().length||t.push("Description is required — one line on when to use this template.");else if(2===e)for(let e of(0===r.phases.length&&t.push("At least one phase is required."),r.phases))e.id&&0!==e.id.trim().length||t.push(`Phase "${e.name||"(unnamed)"}" needs an id.`),"review_only"===e.kind||e.doer.lineage&&0!==e.doer.models.length||t.push(`Phase "${e.name||e.id}" needs a doer lineage + model.`),0===e.reviewer.candidates.length&&t.push(`Phase "${e.name||e.id}" needs at least one reviewer.`);return t}function e_({form:e,setField:r}){let[t,n]=(0,a.useState)(1),[o,i]=(0,a.useState)(!1),l=eT(t,e),d=0===l.length;return(0,s.jsxs)("div",{className:"flex h-full flex-col px-6 py-6",children:[(0,s.jsx)(eE,{currentStep:t,onJump:r=>{if(r<=t){i(!1),n(r);return}for(let s=t;s<r;s++)if(eT(s,e).length>0)return void i(!0);i(!1),n(r)},form:e}),(0,s.jsxs)("div",{className:"mt-6 flex-1 space-y-6",children:[1===t&&(0,s.jsx)(eD,{form:e,setField:r,showErrors:o}),2===t&&(0,s.jsx)(eq,{form:e,setField:r,showErrors:o}),3===t&&(0,s.jsx)(eR,{form:e,setField:r}),4===t&&(0,s.jsx)(e$,{form:e,setField:r})]}),o&&l.length>0&&(0,s.jsxs)("div",{className:"mt-6 rounded-md border border-destructive/40 bg-destructive/10 px-3 py-2 text-[11px] text-destructive",children:[(0,s.jsx)("div",{className:"mb-1 font-medium",children:"Resolve these to continue:"}),(0,s.jsx)("ul",{className:"space-y-0.5 pl-4",children:l.map(e=>(0,s.jsx)("li",{className:"list-disc",children:e},e))})]}),(0,s.jsxs)("div",{className:"mt-6 flex items-center justify-between border-t border-border pt-4",children:[(0,s.jsxs)("button",{type:"button",onClick:()=>{i(!1),t>1&&n(t-1)},disabled:1===t,className:"inline-flex h-9 items-center gap-1.5 rounded-md border border-border bg-card px-3 text-sm font-medium text-muted-foreground transition hover:border-muted-foreground/30 hover:text-foreground disabled:cursor-not-allowed disabled:opacity-40",children:[(0,s.jsx)(Y.A,{className:"h-3.5 w-3.5"}),"Back"]}),(0,s.jsxs)("span",{className:"text-[11px] text-muted-foreground",children:["Step ",t," of 4 \xb7 ",E[t-1].label]}),t<4?(0,s.jsxs)("button",{type:"button",onClick:()=>{d?(i(!1),t<4&&n(t+1)):i(!0)},className:(0,k.cn)("inline-flex h-9 items-center gap-1.5 rounded-md px-3 text-sm font-medium shadow-sm transition",d?"bg-primary text-primary-foreground hover:bg-primary/90":"bg-muted text-muted-foreground/60"),children:["Next",(0,s.jsx)(z.A,{className:"h-3.5 w-3.5"})]}):(0,s.jsxs)("span",{className:"text-[11px] text-emerald-300",children:[(0,s.jsx)(b.A,{className:"mr-1 inline-block h-3 w-3"}),"Save in the footer below"]})]})]})}function eE({currentStep:e,onJump:r,form:t}){return(0,s.jsx)("div",{className:"flex items-stretch gap-2",children:E.map(a=>{let n=a.icon,o=a.id===e,i=0===eT(a.id,t).length,l=a.id<e;return(0,s.jsxs)("button",{type:"button",onClick:()=>r(a.id),className:(0,k.cn)("flex flex-1 items-center gap-2 rounded-md border px-3 py-2 text-left transition",o?"border-primary/60 bg-primary/10":l&&!i?"border-destructive/40 bg-destructive/5":"border-border bg-card hover:border-muted-foreground/30"),children:[(0,s.jsx)("span",{className:(0,k.cn)("flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-[10px] font-mono",o?"bg-primary text-primary-foreground":l&&i?"bg-emerald-500/20 text-emerald-300":l&&!i?"bg-destructive/20 text-destructive":"bg-muted text-muted-foreground"),children:l&&i?"✓":a.id}),(0,s.jsx)(n,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,s.jsx)("span",{className:"hidden text-xs font-medium sm:inline",children:a.label})]},a.id)})})}function eq({form:e,setField:r,showErrors:t}){let a=eT(2,e);return(0,s.jsxs)(s.Fragment,{children:[t&&a.length>0&&(0,s.jsx)("div",{className:"rounded-md border border-destructive/40 bg-destructive/10 px-3 py-2 text-[11px] text-destructive",children:a[0]}),(0,s.jsx)(eA,{phases:e.phases,onChange:e=>r("phases",e)})]})}function eF(e){return Array.isArray(e)?e.flatMap(e=>{let r=D[e.lineage??""]??"claude",t=(e.models??[]).filter(e=>"string"==typeof e&&e.trim().length>0);return 0===t.length?[]:t.map(t=>({lineage:r,model:t,...e.persona?{persona:e.persona}:{}}))}):[]}let eU=["plan","spec","tests","implement","review","verify","divergence","review_only"];function eY(e,r){let t,s,a,n,o=[];try{t=y.Ay.parse(e)??{}}catch{return{form:{...P,id:r},formLossy:!0,lossyReasons:["YAML failed to parse — only YAML mode is available."]}}t.ship?.enabled&&o.push("Template has `ship.enabled: true` — form mode can't edit ship config.");let i=[];for(let e of t.phases??[]){let{phase:r,reasons:t}=function(e){let r=[];void 0!==e.timeoutMs&&r.push(`Phase ${e.id??"?"} has \`timeoutMs\` — not exposed in form mode.`);let t="review_only"===e.kind,s=t?"claude":D[e.doer?.lineage??""]??"claude",a={},n={},o=new Set,i=[],l=[];for(let r of e.reviewer?.candidates??[]){let e=D[r.lineage??""];if(!e)continue;o.has(e)||(o.add(e),i.push(e));let t=(r.models??[]).map(e=>(e??"").trim()).filter(e=>e.length>0),s=r.persona&&r.persona.trim().length>0?r.persona:void 0,d=r=>{if(!s)return;let t=n[e]??={},a=t[r];void 0!==a&&a!==s&&l.push(`${e}/${r||"(no model)"}: "${a}" vs "${s}"`),t[r]=s};if(0===t.length)d("");else for(let r of t)(a[e]??=[]).push(r),d(r)}l.length>0&&r.push(`Phase ${e.id??"?"} has overlapping reviewer candidates with conflicting personas (${l.join("; ")}) — form mode would silently last-write-wins; edit in YAML to disambiguate.`);let d=eU.includes(e.kind)?e.kind:"review";return e.kind&&!eU.includes(e.kind)&&r.push(`Phase ${e.id??"?"} has unknown kind \`${e.kind}\` — form mode would coerce it to \`review\`.`),{phase:{id:e.id??"phase",name:e.title??e.name??e.id??"Phase",description:e.description??"",kind:d,gate:"auto",doer:{lineage:s,models:e.doer?.models&&e.doer.models.length>0?e.doer.models:[R[s]??"claude-opus-4-7"],...e.doer?.persona&&e.doer.persona.trim().length>0?{persona:e.doer.persona.trim()}:{}},reviewer:{require:e.reviewer?.require??1,crossLineage:e.reviewer?.crossLineage??!0,candidates:i,candidateModels:a,...Object.keys(n).length>0?{candidatePersonas:n}:{}},inputs:{include:e.inputs?.include??[],exclude:e.inputs?.exclude??[]},iterate:{max:e.iterate?.maxRounds??2,onMax:(e.iterate?.onDisagreement??"continue")==="continue"?"loopback":e.iterate?.onDisagreement==="accept-doer"?"fail":"ask-user"},blindSpots:[],execution:"parallel",builtin:!1,...t&&e.artifact?{artifact:{label:e.artifact.label??"Artifact to review",hint:e.artifact.hint??"Paste a unified diff, a markdown draft, code, or any text blob.",maxBytes:e.artifact.maxBytes??1048576}}:t?{artifact:{label:"Artifact to review",hint:"Paste a unified diff, a markdown draft, code, or any text blob.",maxBytes:1048576}}:{}},reasons:r}}(e);i.push(r),o.push(...t)}if("number"==typeof t.agreementThreshold){var l;s=(l=t.agreementThreshold)>=.99?"unanimous":l>=.5?"majority":"any",new Set([1,.66,.34]).has(t.agreementThreshold)||(a=t.agreementThreshold,o.push(`Custom \`agreementThreshold: ${t.agreementThreshold}\` — form mode only offers 1.0 / 0.66 / 0.34 presets.`))}else s=t.agreementThreshold??"majority";let d="review"===t.onThresholdMet?"review":void 0;return"review"===d&&o.push("`onThresholdMet: review` — form mode only offers auto-finalize / ask-user."),{form:{id:t.id??r,name:t.name??"",description:t.description??"",author:t.author??"chorus",category:(n=(t.id??r).toLowerCase()).includes("bug")||n.includes("debug")||n.includes("diagnose")?"debug":n.includes("plan")||n.includes("architect")?"plan":n.includes("decide")||n.includes("decision")?"decide":"review",phases:i.length>0?i:P.phases,threshold:s,...void 0!==a?{customThreshold:a}:{},onThresholdMet:"merge"===t.onThresholdMet?"auto-finalize":"ask-user",...d?{onThresholdMetRaw:d}:{},maxRounds:t.maxRounds??3,yoloDefault:t.yoloDefault??!1,fallbackDoer:eF(t.fallback?.doer),fallbackReviewer:eF(t.fallback?.reviewer)},formLossy:o.length>0,lossyReasons:o}}function ez({yaml:e,filename:r,issues:t,onChange:a}){return(0,s.jsxs)("div",{className:"flex h-full min-h-[400px] flex-col",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between border-b border-border bg-card/40 px-6 py-2.5",children:[(0,s.jsx)("span",{className:"font-mono text-[11px] text-muted-foreground",children:r}),(0,s.jsx)(eI,{issues:t})]}),(0,s.jsx)("textarea",{value:e,onChange:e=>a(e.target.value),spellCheck:!1,className:"flex-1 resize-none border-0 bg-background px-6 py-4 font-mono text-[12px] leading-relaxed text-foreground focus:outline-none"}),t.length>0&&(0,s.jsx)("ul",{className:"border-t border-border bg-destructive/5 px-6 py-2.5 text-[11px] text-destructive",children:t.map((e,r)=>(0,s.jsxs)("li",{className:"flex items-start gap-1.5 leading-snug",children:[(0,s.jsx)(f.A,{className:"mt-[1px] h-3 w-3 shrink-0"}),(0,s.jsxs)("span",{children:[(0,s.jsx)("span",{className:"font-mono",children:e.path}),"number"==typeof e.line&&` (line ${e.line})`,": ",e.message]})]},r))})]})}function eI({issues:e}){return 0===e.length?(0,s.jsxs)("span",{className:"flex items-center gap-1 rounded-md bg-emerald-500/10 px-1.5 py-0.5 text-[10px] font-medium text-emerald-400",children:[(0,s.jsx)(b.A,{className:"h-3 w-3"}),"Valid"]}):(0,s.jsxs)("span",{className:"flex items-center gap-1 rounded-md bg-destructive/10 px-1.5 py-0.5 text-[10px] font-medium text-destructive",children:[(0,s.jsx)(f.A,{className:"h-3 w-3"}),e.length," ",1===e.length?"issue":"issues"]})}function eO({editing:e,trigger:r,onSaved:t}){var i;let[l,d]=(0,a.useState)(!1),c=!!e,u=(0,a.useMemo)(()=>{if(!e)return{form:P,yaml:U(P),lossy:!1,reasons:[]};let r=eY(e.yaml,e.id);return{form:r.form,yaml:e.yaml,lossy:r.formLossy,reasons:r.lossyReasons}},[e?.id,e?.yaml]),[m,C]=(0,a.useState)(u.form),[A,S]=(0,a.useState)(u.yaml),[M,L]=(0,a.useState)(!1),[D,R]=(0,a.useState)(!1),[$,T]=(0,a.useState)(u.lossy?"yaml":"form"),[_,E]=(0,a.useState)(!1),[q,Y]=(0,a.useState)(null),[z,I]=(0,a.useState)([]);(0,a.useEffect)(()=>{C(u.form),S(u.yaml),L(!1),R(!1),T(u.lossy?"yaml":"form"),Y(null),I([])},[u]);let O=(0,a.useRef)(u);(0,a.useEffect)(()=>{O.current=u});let B=(i={yamlDirty:M,tab:$,formDirty:D,yamlText:A,formYaml:U(m),initialYaml:u.yaml}).yamlDirty||"yaml"===i.tab?i.yamlText:i.formDirty?i.formYaml:i.initialYaml,V=(0,a.useMemo)(()=>(function(e){let r;if(0===e.trim().length)return{valid:!1,issues:[{path:"<yaml>",message:"Template YAML is empty."}]};try{r=y.Ay.parse(e)}catch(t){let e=t instanceof Error?t.message:String(t),r=t.linePos?.[0];return{valid:!1,issues:[{path:"<yaml>",message:e,...r?{line:r.line,col:r.col}:{}}]}}if(null==r)return{valid:!1,issues:[{path:"<yaml>",message:"Template YAML parsed to null — at minimum it must define id, name, and phases."}]};let t=w._i.safeParse(r);return t.success?N:{valid:!1,issues:t.error.issues.map(e=>({path:e.path.length>0?e.path.join("."):"<root>",message:e.message}))}})(B),[B]);function G(e){if("form"===e&&M){let e=eY(A,m.id);if(e.formLossy)return;C(e.form),L(!1),R(!0)}T(e)}function W(){let e=O.current;C(e.form),S(e.yaml),L(!1),R(!1),T(e.lossy?"yaml":"form"),E(!1),Y(null),I([])}function K(e){d(e),e||setTimeout(W,200)}async function H(){if(!V.valid||_)return;let r=c?e.id:m.id||F(m.name)||"untitled";E(!0),Y(null),I([]);try{let e=await (0,j.AI)({id:r,yaml:B});t?.(e.id),K(!1)}catch(e){e instanceof j.$v?(Y(e.message),I(e.details?.issues??[])):Y(e instanceof Error?e.message:"Save failed (unknown error)")}finally{E(!1)}}let Z=V.valid&&!_,J=r??(0,s.jsxs)("button",{type:"button","aria-label":c?"Edit template":"New template",className:"inline-flex shrink-0 items-center gap-1.5 rounded-md bg-primary px-3 py-1.5 text-sm font-medium text-primary-foreground shadow-sm transition hover:bg-primary/90",children:[c?(0,s.jsx)(n.A,{className:"h-4 w-4"}):(0,s.jsx)(x.A,{className:"h-4 w-4"}),(0,s.jsx)("span",{className:"hidden sm:inline",children:c?"Edit":"New template"})]});return(0,s.jsxs)(v.lG,{open:l,onOpenChange:K,children:[(0,s.jsx)(v.zM,{asChild:!0,children:J}),(0,s.jsxs)(v.Cf,{showCloseButton:!1,className:"flex max-h-[85vh] w-[min(96vw,720px)] flex-col gap-0 overflow-hidden border-border bg-card p-0 shadow-2xl sm:max-w-none",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3 border-b border-border px-6 py-4",children:[(0,s.jsx)("div",{className:"grid h-9 w-9 shrink-0 place-items-center rounded-md bg-primary/15 text-primary ring-1 ring-primary/20",children:(0,s.jsx)(p.A,{className:"h-4 w-4"})}),(0,s.jsxs)("div",{className:"flex-1",children:[(0,s.jsx)(v.L3,{className:"text-[15px] font-semibold leading-tight tracking-tight",children:c?`Edit template — ${e.name}`:"New template"}),(0,s.jsx)(v.rr,{className:"mt-0.5 text-xs text-muted-foreground",children:c?"Edit the YAML directly or use the form. Validation runs live.":"A reusable review workflow. Edit visually below or paste raw YAML."})]}),(0,s.jsx)("button",{type:"button",onClick:()=>K(!1),className:"grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition hover:bg-accent hover:text-foreground","aria-label":"Close",children:(0,s.jsx)(h.A,{className:"h-4 w-4"})})]}),(0,s.jsx)("div",{className:"border-b border-border bg-card/40 px-6",children:(0,s.jsxs)("div",{className:"-mb-px flex items-center gap-1",children:[(0,s.jsxs)(eS,{active:"form"===$,onClick:()=>!u.lossy&&G("form"),disabled:u.lossy,children:[(0,s.jsx)(g.A,{className:"h-3.5 w-3.5"}),"Form",u.lossy&&(0,s.jsx)("span",{className:"ml-1 rounded bg-muted px-1 text-[9px] font-medium text-muted-foreground",children:"YAML only"})]}),(0,s.jsxs)(eS,{active:"yaml"===$,onClick:()=>G("yaml"),children:[(0,s.jsx)(p.A,{className:"h-3.5 w-3.5"}),"YAML",!V.valid&&"form"===$&&(0,s.jsx)("span",{className:"ml-1 h-1.5 w-1.5 rounded-full bg-destructive"})]})]})}),(0,s.jsxs)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:[u.lossy&&"yaml"===$&&(0,s.jsx)("div",{className:"border-b border-amber-500/30 bg-amber-500/5 px-6 py-2.5 text-[11px] text-amber-200",children:(0,s.jsxs)("div",{className:"flex items-start gap-2",children:[(0,s.jsx)(f.A,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),(0,s.jsxs)("div",{className:"flex-1",children:[(0,s.jsx)("div",{className:"font-medium",children:"Form editing disabled for this template"}),(0,s.jsx)("ul",{className:"mt-1 space-y-0.5 leading-snug",children:u.reasons.map((e,r)=>(0,s.jsxs)("li",{children:["\xb7 ",e]},r))})]})]})}),"form"===$?(0,s.jsx)(e_,{form:m,setField:function(e,r){let t={...m,[e]:r};C(t),R(!0),M||S(U(t))}}):(0,s.jsx)(ez,{yaml:A,filename:`${m.id||F(m.name)||"untitled"}.yaml`,issues:V.issues,onChange:e=>{S(e),L(!0)}})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-2 border-t border-border bg-card/40 px-6 py-3",children:[q&&(0,s.jsx)("div",{className:"rounded-md border border-destructive/40 bg-destructive/10 px-3 py-2 text-[11px] text-destructive",children:(0,s.jsxs)("div",{className:"flex items-start gap-1.5",children:[(0,s.jsx)(f.A,{className:"mt-0.5 h-3 w-3 shrink-0"}),(0,s.jsxs)("div",{className:"flex-1",children:[(0,s.jsx)("div",{className:"font-medium",children:"Save failed"}),(0,s.jsx)("div",{className:"mt-0.5 leading-snug",children:q}),z.length>0&&(0,s.jsx)("ul",{className:"mt-1 space-y-0.5",children:z.slice(0,5).map((e,r)=>(0,s.jsxs)("li",{children:[(0,s.jsx)("span",{className:"font-mono",children:e.path}),":"," ",e.message]},r))})]})]})}),(0,s.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,s.jsx)("div",{className:"flex items-center gap-1.5 text-[11px] text-muted-foreground",children:V.valid?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(b.A,{className:"h-3 w-3 text-emerald-400"}),(0,s.jsx)("span",{children:"Ready to save"})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(f.A,{className:"h-3 w-3 text-destructive/80"}),(0,s.jsxs)("span",{children:[V.issues.length," ",1===V.issues.length?"issue":"issues"," to resolve"]})]})}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("button",{type:"button",onClick:()=>K(!1),className:"h-9 rounded-md border border-border bg-card px-4 text-sm font-medium text-muted-foreground transition hover:border-muted-foreground/30 hover:text-foreground",children:"Cancel"}),(0,s.jsxs)("button",{type:"button",disabled:!Z,onClick:H,className:(0,k.cn)("inline-flex h-9 items-center gap-1.5 rounded-md px-4 text-sm font-medium shadow-sm transition",Z?"bg-primary text-primary-foreground hover:bg-primary/90":"cursor-not-allowed bg-muted text-muted-foreground/60 shadow-none"),children:[_&&(0,s.jsx)(o.A,{className:"h-3.5 w-3.5 animate-spin"}),_?"Saving…":c?"Save changes":"Save template"]})]})]})]})]})]})}let eB=Object.fromEntries(Object.entries(J.r2).map(([e,r])=>[e,r.dot])),eV=[{id:"all",label:"All"},{id:"review",label:"Review"},{id:"plan",label:"Plan"},{id:"debug",label:"Debug"},{id:"decide",label:"Decide"}];function eG(){let[e,r]=(0,a.useState)([]),[t,x]=(0,a.useState)(null),[p,h]=(0,a.useState)("all"),[g,f]=(0,a.useState)(""),[b,v]=(0,a.useState)(null),[y,w]=(0,a.useState)(null),[N,k]=(0,a.useState)(null),C=(0,a.useCallback)(async e=>{try{let t=await (0,j.eG)();r(t),e&&t.find(r=>r.id===e)?f(e):t.length>0&&!g&&f(t[0].id)}catch(e){x(e instanceof j.$v?e.message:"Failed to load templates")}},[g]);async function A(e){if(!y&&"builtin"!==e.source){if(b!==e.id){v(e.id),k(null),setTimeout(()=>{v(r=>r===e.id?null:r)},8e3);return}w(e.id),k(null);try{await (0,j.I7)(e.id),v(null),g===e.id&&f(""),await C()}catch(e){k(e instanceof j.$v||e instanceof Error?e.message:"Delete failed (unknown error)"),v(null)}finally{w(null)}}}(0,a.useEffect)(()=>{C()},[]);let S="all"===p?e:e.filter(e=>e.category===p),M=e.find(e=>e.id===g)??e[0]??null;return t?(0,s.jsx)(l.G,{children:(0,s.jsx)("div",{className:"mx-auto w-full max-w-6xl px-4 py-6 sm:px-6 sm:py-8 md:px-8 md:py-10",children:(0,s.jsxs)("div",{className:"rounded-lg border border-destructive/50 bg-destructive/10 p-4",children:[(0,s.jsx)("p",{className:"text-sm text-destructive",children:"Error loading templates"}),(0,s.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:t})]})})}):(0,s.jsx)(l.G,{children:(0,s.jsxs)("div",{className:"mx-auto w-full max-w-6xl px-4 py-6 sm:px-6 sm:py-8 md:px-8 md:py-10",children:[(0,s.jsx)(u.z,{eyebrow:"Templates",title:"Reusable review workflows",subtitle:"Each template defines the driver, reviewers, prompts, and quorum rule for a kind of task. Fork, edit, share.",action:(0,s.jsx)(eO,{onSaved:e=>C(e)})}),N&&(0,s.jsx)("div",{className:"mb-4 rounded-md border border-destructive/40 bg-destructive/10 px-3 py-2 text-xs text-destructive",children:N}),(0,s.jsx)("div",{className:"mb-4 flex items-center gap-1 border-b border-border",children:eV.map(e=>(0,s.jsxs)("button",{type:"button",onClick:()=>h(e.id),className:`relative px-3 py-2 text-sm transition ${e.id===p?"text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[e.label,e.id===p&&(0,s.jsx)("span",{className:"absolute inset-x-3 bottom-0 h-0.5 bg-primary"})]},e.id))}),(0,s.jsxs)("div",{className:"grid grid-cols-1 gap-4 lg:grid-cols-[1fr_1fr]",children:[(0,s.jsx)("div",{className:"flex min-w-0 flex-col gap-2",children:S.map(e=>(0,s.jsxs)("div",{role:"button",tabIndex:0,onClick:()=>f(e.id),onKeyDown:r=>{("Enter"===r.key||" "===r.key)&&(r.preventDefault(),f(e.id))},className:`group relative cursor-pointer rounded-xl text-left transition focus:outline-none focus-visible:ring-2 focus-visible:ring-primary/60 ${e.id===g?"ring-2 ring-primary/60 ring-offset-2 ring-offset-background":""}`,children:[(0,s.jsxs)(d.Zp,{className:"bg-card p-4 transition group-hover:border-muted-foreground/30",children:[(0,s.jsx)("div",{className:"flex items-start justify-between gap-3",children:(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,s.jsx)("span",{className:"text-sm font-semibold",children:e.name}),(0,s.jsx)(c.E,{variant:"outline",className:"border-border text-[10px] capitalize",children:e.category}),!1===e.isComplete&&(0,s.jsx)(c.E,{variant:"outline",className:"border-amber-500/40 bg-amber-500/10 font-mono text-[9px] uppercase text-amber-300",children:"needs setup"})]}),(0,s.jsx)("p",{className:"mt-1 text-xs text-muted-foreground line-clamp-2",children:!1===e.isComplete?"Some slots couldn't be filled from your installed CLIs. Edit the YAML to pick models for each slot.":e.description})]})}),e.phases[0]?.reviewer?.candidates.length?(0,s.jsxs)("div",{className:"mt-3 flex items-center gap-2 text-[11px] text-muted-foreground",children:[e.phases[0]?.kind!=="review_only"&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("span",{className:"flex items-center gap-1",children:[(0,s.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-amber-400"}),"doer"]}),(0,s.jsx)("span",{className:"text-muted-foreground/40",children:"→"})]}),(0,s.jsxs)("span",{className:"flex items-center gap-1",children:[e.phases[0]?.reviewer?.candidates.map(e=>(0,s.jsx)("span",{className:`h-1.5 w-1.5 rounded-full ${eB[e]}`,title:e},e)),(0,s.jsxs)("span",{children:[e.phases[0]?.reviewer?.candidates.length," ",e.phases[0]?.reviewer?.candidates.length===1?"reviewer":"reviewers"]})]}),e.phases.length>1&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"text-muted-foreground/40",children:"\xb7"}),(0,s.jsxs)("span",{className:"font-mono text-[10px]",children:[e.phases.length," phases"]})]})]}):null]}),(0,s.jsxs)("div",{className:`absolute bottom-3 right-3 flex items-center gap-1.5 transition ${e.id===g?"opacity-100":"opacity-0 group-hover:opacity-100 group-focus-within:opacity-100"}`,onClick:r=>{r.stopPropagation(),f(e.id)},onKeyDown:e=>e.stopPropagation(),children:[(0,s.jsx)(eO,{editing:e,onSaved:e=>C(e),trigger:(0,s.jsx)("button",{type:"button","aria-label":`Edit ${e.name}`,className:"grid h-7 w-7 place-items-center rounded-md border border-border bg-card text-muted-foreground transition hover:border-muted-foreground/40 hover:bg-accent/60 hover:text-foreground",children:(0,s.jsx)(n.A,{className:"h-3.5 w-3.5"})})}),"builtin"!==e.source&&(0,s.jsx)("button",{type:"button","aria-label":b===e.id?`Confirm delete ${e.name}`:`Delete ${e.name}`,title:b===e.id?"Click again to confirm":"Delete",disabled:y===e.id,onClick:()=>A(e),className:`grid h-7 w-7 place-items-center rounded-md border transition disabled:cursor-not-allowed disabled:opacity-50 ${b===e.id?"border-destructive bg-destructive/15 text-destructive":"border-border bg-card text-muted-foreground hover:border-destructive/50 hover:text-destructive"}`,children:y===e.id?(0,s.jsx)(o.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,s.jsx)(i.A,{className:"h-3.5 w-3.5"})})]})]},e.id))}),M?(0,s.jsx)("div",{className:"lg:sticky lg:top-6 lg:max-h-[calc(100vh-10rem)] lg:h-[calc(100vh-10rem)]",children:(0,s.jsx)(m.N,{filename:`${M.id}.yaml`,charCount:M.yaml.length,maxHeightClassName:"h-full",footer:(0,s.jsxs)("span",{children:["by ",M.authorHandle]}),children:M.yaml})}):(0,s.jsx)(d.Zp,{className:"bg-card p-4 text-center text-muted-foreground",children:(0,s.jsx)("p",{children:"Select a template to view details"})})]})]})})}},9936:(e,r,t)=>{Promise.resolve().then(t.bind(t,3016))}},e=>{e.O(0,[742,832,690,641,344,744,506,128,358],()=>e(e.s=9936)),_N_E=e.O()}]);
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f639721981034f88-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9766a7e9e2e0ad5a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b66cf8e69499582a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/aa016aab0e6d1295-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/22a5144ee8d83bca-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_246ccd{font-family:Geist,Geist Fallback;font-style:normal}.__variable_246ccd{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/d100b2a099e34044-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/2c34d62a75506231-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/0f1bdadaf30e2d5f-s.woff2) format("woff2");unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/a115172161b307bb-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/601f5c280d60caca-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f5271587012faf78-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_4c40f6{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_4c40f6{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
|
|
2
|
+
|
|
3
|
+
/*! tailwindcss v4.2.4 | 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)))){*,::backdrop,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--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-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:host,:root{--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-teal-400:oklch(77.7% .152 181.912);--color-teal-500:oklch(70.4% .14 182.503);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--container-5xl:64rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-xl:.75rem;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-mono)}}@layer base{*,::backdrop,:after,:before{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}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{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}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,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,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.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;overflow:hidden}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.inset-x-3{inset-inline:calc(var(--spacing) * 3)}.inset-y-0{inset-block: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\/2{top:50%}.top-4{top:calc(var(--spacing) * 4)}.top-\[50\%\]{top:50%}.top-full{top:100%}.right-0{right:calc(var(--spacing) * 0)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.-bottom-px{bottom:-1px}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-3{bottom:calc(var(--spacing) * 3)}.left-0{left:calc(var(--spacing) * 0)}.left-2{left:calc(var(--spacing) * 2)}.left-3{left:calc(var(--spacing) * 3)}.left-\[50\%\]{left:50%}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.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-1{margin-inline:calc(var(--spacing) * -1)}.mx-1\.5{margin-inline:calc(var(--spacing) * 1.5)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.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-3{margin-top:calc(var(--spacing) * 3)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-\[1px\]{margin-top:1px}.mt-auto{margin-top:auto}.mr-1{margin-right:calc(var(--spacing) * 1)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1}.line-clamp-1,.line-clamp-2{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2}.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}.field-sizing-content{field-sizing:content}.aspect-square{aspect-ratio:1}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-full{width:100%;height:100%}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-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-72{height:calc(var(--spacing) * 72)}.h-\[18px\]{height:18px}.h-\[320px\]{height:320px}.h-\[calc\(\.\.\.\)\]{height:calc(...)}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-\[70vh\]{max-height:70vh}.max-h-\[85vh\]{max-height:85vh}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-\[280px\]{min-height:280px}.min-h-\[400px\]{min-height:400px}.min-h-\[520px\]{min-height:520px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.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-3\/4{width:75%}.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-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-32{width:calc(var(--spacing) * 32)}.w-56{width:calc(var(--spacing) * 56)}.w-60{width:calc(var(--spacing) * 60)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-\[18px\]{width:18px}.w-\[min\(96vw\,720px\)\]{width:min(96vw,720px)}.w-fit{width:fit-content}.w-full{width:100%}.w-screen{width:100vw}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\[8rem\]{min-width:8rem}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.translate-x-4{--tw-translate-x:calc(var(--spacing) * 4)}.translate-x-4,.translate-x-\[-50\%\]{translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1)}.-translate-y-1\/2,.translate-y-\[-50\%\]{translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-zoom-in{cursor:zoom-in}.touch-none{touch-action:none}.resize-none{resize:none}.scroll-mt-20{scroll-margin-top:calc(var(--spacing) * 20)}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.appearance-none{appearance:none}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[1fr_120px_120px\]{grid-template-columns:1fr 120px 120px}.grid-cols-\[1fr_140px\]{grid-template-columns:1fr 140px}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.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-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}: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-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * 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-2{column-gap:calc(var(--spacing) * 2)}:where(.-space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * -2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * -2) * calc(1 - var(--tw-space-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:hsl(var(--border))}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:calc(var(--radius) + 2px)}.rounded-md{border-radius:var(--radius)}.rounded-sm{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-t-md{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/30{border-color:color-mix(in oklab,var(--color-amber-500) 30%,transparent)}}.border-amber-500\/40{border-color:#f99c0066}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/40{border-color:color-mix(in oklab,var(--color-amber-500) 40%,transparent)}}.border-blue-500\/30{border-color:#3080ff4d}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/30{border-color:color-mix(in oklab,var(--color-blue-500) 30%,transparent)}}.border-border,.border-border\/40{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/40{border-color:color-mix(in oklab,hsl(var(--border)) 40%,transparent)}}.border-border\/60{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/60{border-color:color-mix(in oklab,hsl(var(--border)) 60%,transparent)}}.border-destructive,.border-destructive\/40{border-color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){.border-destructive\/40{border-color:color-mix(in oklab,hsl(var(--destructive)) 40%,transparent)}}.border-destructive\/50{border-color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){.border-destructive\/50{border-color:color-mix(in oklab,hsl(var(--destructive)) 50%,transparent)}}.border-destructive\/60{border-color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){.border-destructive\/60{border-color:color-mix(in oklab,hsl(var(--destructive)) 60%,transparent)}}.border-emerald-500\/20{border-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/20{border-color:color-mix(in oklab,var(--color-emerald-500) 20%,transparent)}}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/30{border-color:color-mix(in oklab,var(--color-emerald-500) 30%,transparent)}}.border-emerald-500\/40{border-color:#00bb7f66}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/40{border-color:color-mix(in oklab,var(--color-emerald-500) 40%,transparent)}}.border-input{border-color:hsl(var(--input))}.border-primary,.border-primary\/40{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/40{border-color:color-mix(in oklab,hsl(var(--primary)) 40%,transparent)}}.border-primary\/50{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/50{border-color:color-mix(in oklab,hsl(var(--primary)) 50%,transparent)}}.border-primary\/60{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/60{border-color:color-mix(in oklab,hsl(var(--primary)) 60%,transparent)}}.border-rose-500\/30{border-color:#ff23574d}@supports (color:color-mix(in lab,red,red)){.border-rose-500\/30{border-color:color-mix(in oklab,var(--color-rose-500) 30%,transparent)}}.border-rose-500\/40{border-color:#ff235766}@supports (color:color-mix(in lab,red,red)){.border-rose-500\/40{border-color:color-mix(in oklab,var(--color-rose-500) 40%,transparent)}}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-400\/10{background-color:#fcbb001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-400\/10{background-color:color-mix(in oklab,var(--color-amber-400) 10%,transparent)}}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/5{background-color:#f99c000d}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/5{background-color:color-mix(in oklab,var(--color-amber-500) 5%,transparent)}}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500) 10%,transparent)}}.bg-amber-500\/15{background-color:#f99c0026}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/15{background-color:color-mix(in oklab,var(--color-amber-500) 15%,transparent)}}.bg-amber-500\/20{background-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/20{background-color:color-mix(in oklab,var(--color-amber-500) 20%,transparent)}}.bg-background,.bg-background\/30{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/30{background-color:color-mix(in oklab,hsl(var(--background)) 30%,transparent)}}.bg-background\/40{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/40{background-color:color-mix(in oklab,hsl(var(--background)) 40%,transparent)}}.bg-background\/60{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/60{background-color:color-mix(in oklab,hsl(var(--background)) 60%,transparent)}}.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)}}.bg-black\/75{background-color:#000000bf}@supports (color:color-mix(in lab,red,red)){.bg-black\/75{background-color:color-mix(in oklab,var(--color-black) 75%,transparent)}}.bg-blue-400{background-color:var(--color-blue-400)}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/10{background-color:color-mix(in oklab,var(--color-blue-500) 10%,transparent)}}.bg-border{background-color:hsl(var(--border))}.bg-card,.bg-card\/20{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/20{background-color:color-mix(in oklab,hsl(var(--card)) 20%,transparent)}}.bg-card\/30{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/30{background-color:color-mix(in oklab,hsl(var(--card)) 30%,transparent)}}.bg-card\/40{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/40{background-color:color-mix(in oklab,hsl(var(--card)) 40%,transparent)}}.bg-card\/50{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/50{background-color:color-mix(in oklab,hsl(var(--card)) 50%,transparent)}}.bg-card\/60{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/60{background-color:color-mix(in oklab,hsl(var(--card)) 60%,transparent)}}.bg-card\/80{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/80{background-color:color-mix(in oklab,hsl(var(--card)) 80%,transparent)}}.bg-cyan-400{background-color:var(--color-cyan-400)}.bg-destructive,.bg-destructive\/5{background-color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/5{background-color:color-mix(in oklab,hsl(var(--destructive)) 5%,transparent)}}.bg-destructive\/10{background-color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,hsl(var(--destructive)) 10%,transparent)}}.bg-destructive\/15{background-color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/15{background-color:color-mix(in oklab,hsl(var(--destructive)) 15%,transparent)}}.bg-destructive\/20{background-color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/20{background-color:color-mix(in oklab,hsl(var(--destructive)) 20%,transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/5{background-color:#00bb7f0d}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/5{background-color:color-mix(in oklab,var(--color-emerald-500) 5%,transparent)}}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500) 10%,transparent)}}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/15{background-color:color-mix(in oklab,var(--color-emerald-500) 15%,transparent)}}.bg-emerald-500\/20{background-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/20{background-color:color-mix(in oklab,var(--color-emerald-500) 20%,transparent)}}.bg-emerald-500\/40{background-color:#00bb7f66}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/40{background-color:color-mix(in oklab,var(--color-emerald-500) 40%,transparent)}}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground,.bg-muted-foreground\/10{background-color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/10{background-color:color-mix(in oklab,hsl(var(--muted-foreground)) 10%,transparent)}}.bg-muted-foreground\/20{background-color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/20{background-color:color-mix(in oklab,hsl(var(--muted-foreground)) 20%,transparent)}}.bg-muted-foreground\/40{background-color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/40{background-color:color-mix(in oklab,hsl(var(--muted-foreground)) 40%,transparent)}}.bg-muted-foreground\/50{background-color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/50{background-color:color-mix(in oklab,hsl(var(--muted-foreground)) 50%,transparent)}}.bg-muted\/40{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab,red,red)){.bg-muted\/40{background-color:color-mix(in oklab,hsl(var(--muted)) 40%,transparent)}}.bg-muted\/60{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab,red,red)){.bg-muted\/60{background-color:color-mix(in oklab,hsl(var(--muted)) 60%,transparent)}}.bg-orange-400{background-color:var(--color-orange-400)}.bg-pink-400{background-color:var(--color-pink-400)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary,.bg-primary\/5{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/5{background-color:color-mix(in oklab,hsl(var(--primary)) 5%,transparent)}}.bg-primary\/10{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,hsl(var(--primary)) 10%,transparent)}}.bg-primary\/15{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/15{background-color:color-mix(in oklab,hsl(var(--primary)) 15%,transparent)}}.bg-primary\/20{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/20{background-color:color-mix(in oklab,hsl(var(--primary)) 20%,transparent)}}.bg-rose-400{background-color:var(--color-rose-400)}.bg-rose-500\/5{background-color:#ff23570d}@supports (color:color-mix(in lab,red,red)){.bg-rose-500\/5{background-color:color-mix(in oklab,var(--color-rose-500) 5%,transparent)}}.bg-rose-500\/10{background-color:#ff23571a}@supports (color:color-mix(in lab,red,red)){.bg-rose-500\/10{background-color:color-mix(in oklab,var(--color-rose-500) 10%,transparent)}}.bg-rose-500\/15{background-color:#ff235726}@supports (color:color-mix(in lab,red,red)){.bg-rose-500\/15{background-color:color-mix(in oklab,var(--color-rose-500) 15%,transparent)}}.bg-rose-500\/20{background-color:#ff235733}@supports (color:color-mix(in lab,red,red)){.bg-rose-500\/20{background-color:color-mix(in oklab,var(--color-rose-500) 20%,transparent)}}.bg-secondary{background-color:hsl(var(--secondary))}.bg-teal-400{background-color:var(--color-teal-400)}.bg-transparent{background-color:#0000}.bg-violet-400{background-color:var(--color-violet-400)}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab}.bg-gradient-to-b,.bg-gradient-to-br{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab}.from-blue-500\/15{--tw-gradient-from:#3080ff26}@supports (color:color-mix(in lab,red,red)){.from-blue-500\/15{--tw-gradient-from:color-mix(in oklab,var(--color-blue-500) 15%,transparent)}}.from-blue-500\/15{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-cyan-500\/15{--tw-gradient-from:#00b7d726}@supports (color:color-mix(in lab,red,red)){.from-cyan-500\/15{--tw-gradient-from:color-mix(in oklab,var(--color-cyan-500) 15%,transparent)}}.from-cyan-500\/15{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-emerald-500\/15{--tw-gradient-from:#00bb7f26}@supports (color:color-mix(in lab,red,red)){.from-emerald-500\/15{--tw-gradient-from:color-mix(in oklab,var(--color-emerald-500) 15%,transparent)}}.from-emerald-500\/15{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-muted\/30{--tw-gradient-from:hsl(var(--muted))}@supports (color:color-mix(in lab,red,red)){.from-muted\/30{--tw-gradient-from:color-mix(in oklab,hsl(var(--muted)) 30%,transparent)}}.from-muted\/30{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-orange-500\/15{--tw-gradient-from:#fe6e0026}@supports (color:color-mix(in lab,red,red)){.from-orange-500\/15{--tw-gradient-from:color-mix(in oklab,var(--color-orange-500) 15%,transparent)}}.from-orange-500\/15{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-pink-500\/15{--tw-gradient-from:#f6339a26}@supports (color:color-mix(in lab,red,red)){.from-pink-500\/15{--tw-gradient-from:color-mix(in oklab,var(--color-pink-500) 15%,transparent)}}.from-pink-500\/15{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-primary\/10{--tw-gradient-from:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.from-primary\/10{--tw-gradient-from:color-mix(in oklab,hsl(var(--primary)) 10%,transparent)}}.from-primary\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-teal-500\/15{--tw-gradient-from:#00baa726}@supports (color:color-mix(in lab,red,red)){.from-teal-500\/15{--tw-gradient-from:color-mix(in oklab,var(--color-teal-500) 15%,transparent)}}.from-teal-500\/15{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-violet-500\/15{--tw-gradient-from:#8d54ff26}@supports (color:color-mix(in lab,red,red)){.from-violet-500\/15{--tw-gradient-from:color-mix(in oklab,var(--color-violet-500) 15%,transparent)}}.from-violet-500\/15{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-card{--tw-gradient-via:hsl(var(--card));--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-via) var(--tw-gradient-via-position),var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-card{--tw-gradient-to:hsl(var(--card));--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.fill-current{fill:currentColor}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-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)}.p-12{padding:calc(var(--spacing) * 12)}.p-\[3px\]{padding:3px}.p-px{padding:1px}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-geist-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-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-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-100{color:var(--color-amber-100)}.text-amber-100\/60{color:#fef3c699}@supports (color:color-mix(in lab,red,red)){.text-amber-100\/60{color:color-mix(in oklab,var(--color-amber-100) 60%,transparent)}}.text-amber-100\/80{color:#fef3c6cc}@supports (color:color-mix(in lab,red,red)){.text-amber-100\/80{color:color-mix(in oklab,var(--color-amber-100) 80%,transparent)}}.text-amber-100\/85{color:#fef3c6d9}@supports (color:color-mix(in lab,red,red)){.text-amber-100\/85{color:color-mix(in oklab,var(--color-amber-100) 85%,transparent)}}.text-amber-100\/90{color:#fef3c6e6}@supports (color:color-mix(in lab,red,red)){.text-amber-100\/90{color:color-mix(in oklab,var(--color-amber-100) 90%,transparent)}}.text-amber-200{color:var(--color-amber-200)}.text-amber-200\/70{color:#fee685b3}@supports (color:color-mix(in lab,red,red)){.text-amber-200\/70{color:color-mix(in oklab,var(--color-amber-200) 70%,transparent)}}.text-amber-200\/75{color:#fee685bf}@supports (color:color-mix(in lab,red,red)){.text-amber-200\/75{color:color-mix(in oklab,var(--color-amber-200) 75%,transparent)}}.text-amber-200\/80{color:#fee685cc}@supports (color:color-mix(in lab,red,red)){.text-amber-200\/80{color:color-mix(in oklab,var(--color-amber-200) 80%,transparent)}}.text-amber-200\/90{color:#fee685e6}@supports (color:color-mix(in lab,red,red)){.text-amber-200\/90{color:color-mix(in oklab,var(--color-amber-200) 90%,transparent)}}.text-amber-300{color:var(--color-amber-300)}.text-amber-300\/80{color:#ffd236cc}@supports (color:color-mix(in lab,red,red)){.text-amber-300\/80{color:color-mix(in oklab,var(--color-amber-300) 80%,transparent)}}.text-amber-300\/90{color:#ffd236e6}@supports (color:color-mix(in lab,red,red)){.text-amber-300\/90{color:color-mix(in oklab,var(--color-amber-300) 90%,transparent)}}.text-amber-400{color:var(--color-amber-400)}.text-amber-400\/80{color:#fcbb00cc}@supports (color:color-mix(in lab,red,red)){.text-amber-400\/80{color:color-mix(in oklab,var(--color-amber-400) 80%,transparent)}}.text-blue-300{color:var(--color-blue-300)}.text-card-foreground{color:hsl(var(--card-foreground))}.text-destructive,.text-destructive\/80{color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){.text-destructive\/80{color:color-mix(in oklab,hsl(var(--destructive)) 80%,transparent)}}.text-destructive\/90{color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){.text-destructive\/90{color:color-mix(in oklab,hsl(var(--destructive)) 90%,transparent)}}.text-emerald-200{color:var(--color-emerald-200)}.text-emerald-200\/70{color:#a4f4cfb3}@supports (color:color-mix(in lab,red,red)){.text-emerald-200\/70{color:color-mix(in oklab,var(--color-emerald-200) 70%,transparent)}}.text-emerald-300{color:var(--color-emerald-300)}.text-emerald-300\/80{color:#5ee9b5cc}@supports (color:color-mix(in lab,red,red)){.text-emerald-300\/80{color:color-mix(in oklab,var(--color-emerald-300) 80%,transparent)}}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-400\/60{color:#00d29499}@supports (color:color-mix(in lab,red,red)){.text-emerald-400\/60{color:color-mix(in oklab,var(--color-emerald-400) 60%,transparent)}}.text-foreground,.text-foreground\/60{color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.text-foreground\/60{color:color-mix(in oklab,hsl(var(--foreground)) 60%,transparent)}}.text-foreground\/70{color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.text-foreground\/70{color:color-mix(in oklab,hsl(var(--foreground)) 70%,transparent)}}.text-foreground\/80{color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.text-foreground\/80{color:color-mix(in oklab,hsl(var(--foreground)) 80%,transparent)}}.text-foreground\/85{color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.text-foreground\/85{color:color-mix(in oklab,hsl(var(--foreground)) 85%,transparent)}}.text-foreground\/90{color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.text-foreground\/90{color:color-mix(in oklab,hsl(var(--foreground)) 90%,transparent)}}.text-muted-foreground,.text-muted-foreground\/40{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/40{color:color-mix(in oklab,hsl(var(--muted-foreground)) 40%,transparent)}}.text-muted-foreground\/50{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/50{color:color-mix(in oklab,hsl(var(--muted-foreground)) 50%,transparent)}}.text-muted-foreground\/60{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/60{color:color-mix(in oklab,hsl(var(--muted-foreground)) 60%,transparent)}}.text-muted-foreground\/70{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/70{color:color-mix(in oklab,hsl(var(--muted-foreground)) 70%,transparent)}}.text-muted-foreground\/80{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/80{color:color-mix(in oklab,hsl(var(--muted-foreground)) 80%,transparent)}}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-rose-200{color:var(--color-rose-200)}.text-rose-300{color:var(--color-rose-300)}.text-rose-300\/90{color:#ffa2aee6}@supports (color:color-mix(in lab,red,red)){.text-rose-300\/90{color:color-mix(in oklab,var(--color-rose-300) 90%,transparent)}}.text-rose-400{color:var(--color-rose-400)}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal}.ordinal,.tabular-nums{font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums}.line-through{text-decoration-line:line-through}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-primary{accent-color:hsl(var(--primary))}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.shadow,.shadow-2xl{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040)}.shadow-\[0_0_0_1px_rgba\(124\,58\,237\,0\.25\)\,0_0_24px_-6px_rgba\(124\,58\,237\,0\.45\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#7c3aed40),0 0 24px -6px var(--tw-shadow-color,#7c3aed73)}.shadow-\[0_0_0_1px_rgba\(124\,58\,237\,0\.25\)\,0_0_24px_-6px_rgba\(124\,58\,237\,0\.45\)\],.shadow-lg{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a)}.shadow-md,.shadow-none{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.shadow-sm,.shadow-xl{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)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d)}.ring,.ring-1,.shadow-xs{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-background{--tw-ring-color:hsl(var(--background))}.ring-blue-400\/40{--tw-ring-color:#54a2ff66}@supports (color:color-mix(in lab,red,red)){.ring-blue-400\/40{--tw-ring-color:color-mix(in oklab,var(--color-blue-400) 40%,transparent)}}.ring-cyan-400\/40{--tw-ring-color:#00d2ef66}@supports (color:color-mix(in lab,red,red)){.ring-cyan-400\/40{--tw-ring-color:color-mix(in oklab,var(--color-cyan-400) 40%,transparent)}}.ring-emerald-400\/40{--tw-ring-color:#00d29466}@supports (color:color-mix(in lab,red,red)){.ring-emerald-400\/40{--tw-ring-color:color-mix(in oklab,var(--color-emerald-400) 40%,transparent)}}.ring-orange-400\/40{--tw-ring-color:#ff8b1a66}@supports (color:color-mix(in lab,red,red)){.ring-orange-400\/40{--tw-ring-color:color-mix(in oklab,var(--color-orange-400) 40%,transparent)}}.ring-pink-400\/40{--tw-ring-color:#fb64b666}@supports (color:color-mix(in lab,red,red)){.ring-pink-400\/40{--tw-ring-color:color-mix(in oklab,var(--color-pink-400) 40%,transparent)}}.ring-primary\/20{--tw-ring-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.ring-primary\/20{--tw-ring-color:color-mix(in oklab,hsl(var(--primary)) 20%,transparent)}}.ring-primary\/30{--tw-ring-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.ring-primary\/30{--tw-ring-color:color-mix(in oklab,hsl(var(--primary)) 30%,transparent)}}.ring-primary\/40{--tw-ring-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.ring-primary\/40{--tw-ring-color:color-mix(in oklab,hsl(var(--primary)) 40%,transparent)}}.ring-primary\/60{--tw-ring-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.ring-primary\/60{--tw-ring-color:color-mix(in oklab,hsl(var(--primary)) 60%,transparent)}}.ring-teal-400\/40{--tw-ring-color:#00d3bd66}@supports (color:color-mix(in lab,red,red)){.ring-teal-400\/40{--tw-ring-color:color-mix(in oklab,var(--color-teal-400) 40%,transparent)}}.ring-violet-400\/40{--tw-ring-color:#a685ff66}@supports (color:color-mix(in lab,red,red)){.ring-violet-400\/40{--tw-ring-color:color-mix(in oklab,var(--color-violet-400) 40%,transparent)}}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.grayscale-\[0\.6\]{--tw-grayscale:grayscale(.6)}.filter,.grayscale-\[0\.6\]{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px)}.backdrop-blur,.backdrop-blur-sm{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm))}.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-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,border-color\,box-shadow\]{transition-property:opacity,border-color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.paused{animation-play-state:paused}.running{animation-play-state:running}.group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media (hover:hover){.group-hover\:border-muted-foreground\/30:is(:where(.group):hover *){border-color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.group-hover\:border-muted-foreground\/30:is(:where(.group):hover *){border-color:color-mix(in oklab,hsl(var(--muted-foreground)) 30%,transparent)}}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-has-data-\[size\=lg\]\/avatar-group\:size-10:is(:where(.group\/avatar-group):has([data-size=lg]) *){width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.group-has-data-\[size\=sm\]\/avatar-group\:size-6:is(:where(.group\/avatar-group):has([data-size=sm]) *){width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.group-data-\[orientation\=horizontal\]\/tabs\:h-9:is(:where(.group\/tabs)[data-orientation=horizontal] *){height:calc(var(--spacing) * 9)}.group-data-\[orientation\=vertical\]\/tabs\:h-fit:is(:where(.group\/tabs)[data-orientation=vertical] *){height:fit-content}.group-data-\[orientation\=vertical\]\/tabs\:w-full:is(:where(.group\/tabs)[data-orientation=vertical] *){width:100%}.group-data-\[orientation\=vertical\]\/tabs\:flex-col:is(:where(.group\/tabs)[data-orientation=vertical] *){flex-direction:column}.group-data-\[orientation\=vertical\]\/tabs\:justify-start:is(:where(.group\/tabs)[data-orientation=vertical] *){justify-content:flex-start}.group-data-\[size\=default\]\/avatar\:size-2\.5:is(:where(.group\/avatar)[data-size=default] *){width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.group-data-\[size\=lg\]\/avatar\:size-3:is(:where(.group\/avatar)[data-size=lg] *){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.group-data-\[size\=sm\]\/avatar\:size-2:is(:where(.group\/avatar)[data-size=sm] *){width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.group-data-\[size\=sm\]\/avatar\:text-xs:is(:where(.group\/avatar)[data-size=sm] *){font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.group-data-\[variant\=line\]\/tabs-list\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *){background-color:#0000}.selection\:bg-primary ::selection{background-color:hsl(var(--primary))}.selection\:bg-primary::selection{background-color:hsl(var(--primary))}.selection\:text-primary-foreground ::selection{color:hsl(var(--primary-foreground))}.selection\:text-primary-foreground::selection{color:hsl(var(--primary-foreground))}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing) * 7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::placeholder,.placeholder\:text-muted-foreground\/50::placeholder{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.placeholder\:text-muted-foreground\/50::placeholder{color:color-mix(in oklab,hsl(var(--muted-foreground)) 50%,transparent)}}.placeholder\:text-muted-foreground\/60::placeholder{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.placeholder\:text-muted-foreground\/60::placeholder{color:color-mix(in oklab,hsl(var(--muted-foreground)) 60%,transparent)}}.placeholder\:text-muted-foreground\/70::placeholder{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.placeholder\:text-muted-foreground\/70::placeholder{color:color-mix(in oklab,hsl(var(--muted-foreground)) 70%,transparent)}}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:bg-foreground:after{content:var(--tw-content);background-color:hsl(var(--foreground))}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.group-data-\[orientation\=horizontal\]\/tabs\:after\:inset-x-0:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);inset-inline:calc(var(--spacing) * 0)}.group-data-\[orientation\=horizontal\]\/tabs\:after\:bottom-\[-5px\]:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);bottom:-5px}.group-data-\[orientation\=horizontal\]\/tabs\:after\:h-0\.5:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);height:calc(var(--spacing) * .5)}.group-data-\[orientation\=vertical\]\/tabs\:after\:inset-y-0:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);inset-block:calc(var(--spacing) * 0)}.group-data-\[orientation\=vertical\]\/tabs\:after\:-right-1:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);right:calc(var(--spacing) * -1)}.group-data-\[orientation\=vertical\]\/tabs\:after\:w-0\.5:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);width:calc(var(--spacing) * .5)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-destructive\/40:hover{border-color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){.hover\:border-destructive\/40:hover{border-color:color-mix(in oklab,hsl(var(--destructive)) 40%,transparent)}}.hover\:border-destructive\/50:hover{border-color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){.hover\:border-destructive\/50:hover{border-color:color-mix(in oklab,hsl(var(--destructive)) 50%,transparent)}}.hover\:border-emerald-500\/30:hover{border-color:#00bb7f4d}@supports (color:color-mix(in lab,red,red)){.hover\:border-emerald-500\/30:hover{border-color:color-mix(in oklab,var(--color-emerald-500) 30%,transparent)}}.hover\:border-foreground\/20:hover{border-color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.hover\:border-foreground\/20:hover{border-color:color-mix(in oklab,hsl(var(--foreground)) 20%,transparent)}}.hover\:border-foreground\/30:hover{border-color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.hover\:border-foreground\/30:hover{border-color:color-mix(in oklab,hsl(var(--foreground)) 30%,transparent)}}.hover\:border-muted-foreground\/30:hover{border-color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.hover\:border-muted-foreground\/30:hover{border-color:color-mix(in oklab,hsl(var(--muted-foreground)) 30%,transparent)}}.hover\:border-muted-foreground\/40:hover{border-color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.hover\:border-muted-foreground\/40:hover{border-color:color-mix(in oklab,hsl(var(--muted-foreground)) 40%,transparent)}}.hover\:border-primary:hover,.hover\:border-primary\/40:hover{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/40:hover{border-color:color-mix(in oklab,hsl(var(--primary)) 40%,transparent)}}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/50:hover{border-color:color-mix(in oklab,hsl(var(--primary)) 50%,transparent)}}.hover\:border-rose-500\/30:hover{border-color:#ff23574d}@supports (color:color-mix(in lab,red,red)){.hover\:border-rose-500\/30:hover{border-color:color-mix(in oklab,var(--color-rose-500) 30%,transparent)}}.hover\:bg-accent:hover,.hover\:bg-accent\/40:hover{background-color:hsl(var(--accent))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/40:hover{background-color:color-mix(in oklab,hsl(var(--accent)) 40%,transparent)}}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/50:hover{background-color:color-mix(in oklab,hsl(var(--accent)) 50%,transparent)}}.hover\:bg-accent\/60:hover{background-color:hsl(var(--accent))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/60:hover{background-color:color-mix(in oklab,hsl(var(--accent)) 60%,transparent)}}.hover\:bg-amber-500\/20:hover{background-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.hover\:bg-amber-500\/20:hover{background-color:color-mix(in oklab,var(--color-amber-500) 20%,transparent)}}.hover\:bg-card\/30:hover{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-card\/30:hover{background-color:color-mix(in oklab,hsl(var(--card)) 30%,transparent)}}.hover\:bg-card\/40:hover{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-card\/40:hover{background-color:color-mix(in oklab,hsl(var(--card)) 40%,transparent)}}.hover\:bg-card\/50:hover{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-card\/50:hover{background-color:color-mix(in oklab,hsl(var(--card)) 50%,transparent)}}.hover\:bg-card\/80:hover{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-card\/80:hover{background-color:color-mix(in oklab,hsl(var(--card)) 80%,transparent)}}.hover\:bg-destructive\/20:hover{background-color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/20:hover{background-color:color-mix(in oklab,hsl(var(--destructive)) 20%,transparent)}}.hover\:bg-destructive\/25:hover{background-color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/25:hover{background-color:color-mix(in oklab,hsl(var(--destructive)) 25%,transparent)}}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,hsl(var(--destructive)) 90%,transparent)}}.hover\:bg-emerald-500\/20:hover{background-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.hover\:bg-emerald-500\/20:hover{background-color:color-mix(in oklab,var(--color-emerald-500) 20%,transparent)}}.hover\:bg-foreground\/5:hover{background-color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-foreground\/5:hover{background-color:color-mix(in oklab,hsl(var(--foreground)) 5%,transparent)}}.hover\:bg-foreground\/10:hover{background-color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-foreground\/10:hover{background-color:color-mix(in oklab,hsl(var(--foreground)) 10%,transparent)}}.hover\:bg-primary\/10:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/10:hover{background-color:color-mix(in oklab,hsl(var(--primary)) 10%,transparent)}}.hover\:bg-primary\/20:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/20:hover{background-color:color-mix(in oklab,hsl(var(--primary)) 20%,transparent)}}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,hsl(var(--primary)) 90%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,hsl(var(--secondary)) 80%,transparent)}}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-rose-400:hover{color:var(--color-rose-400)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:border-destructive:focus{border-color:hsl(var(--destructive))}.focus\:border-foreground\/30:focus{border-color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.focus\:border-foreground\/30:focus{border-color:color-mix(in oklab,hsl(var(--foreground)) 30%,transparent)}}.focus\:border-primary\/40:focus{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.focus\:border-primary\/40:focus{border-color:color-mix(in oklab,hsl(var(--primary)) 40%,transparent)}}.focus\:border-primary\/60:focus{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.focus\:border-primary\/60:focus{border-color:color-mix(in oklab,hsl(var(--primary)) 60%,transparent)}}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)}.focus\:ring-1:focus,.focus\:ring-2:focus{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)}.focus\:ring-destructive\/30:focus{--tw-ring-color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){.focus\:ring-destructive\/30:focus{--tw-ring-color:color-mix(in oklab,hsl(var(--destructive)) 30%,transparent)}}.focus\:ring-primary:focus,.focus\:ring-primary\/20:focus{--tw-ring-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.focus\:ring-primary\/20:focus{--tw-ring-color:color-mix(in oklab,hsl(var(--primary)) 20%,transparent)}}.focus\:ring-primary\/40:focus{--tw-ring-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.focus\:ring-primary\/40:focus{--tw-ring-color:color-mix(in oklab,hsl(var(--primary)) 40%,transparent)}}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:border-ring:focus-visible{border-color:hsl(var(--ring))}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,hsl(var(--destructive)) 20%,transparent)}}.focus-visible\:ring-primary\/60:focus-visible{--tw-ring-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-primary\/60:focus-visible{--tw-ring-color:color-mix(in oklab,hsl(var(--primary)) 60%,transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:hsl(var(--ring))}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,hsl(var(--ring)) 50%,transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:hsl(var(--ring))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-muted:disabled{background-color:hsl(var(--muted))}.disabled\:text-muted-foreground:disabled{color:hsl(var(--muted-foreground))}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-\[\>svg\]\:px-1\.5:has(>svg){padding-inline:calc(var(--spacing) * 1.5)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:hsl(var(--destructive))}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,hsl(var(--destructive)) 20%,transparent)}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[inset\]\:pl-8[data-inset]{padding-left:calc(var(--spacing) * 8)}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=horizontal\]\:flex-col[data-orientation=horizontal]{flex-direction:column}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=lg\]\:size-10[data-size=lg]{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.data-\[size\=sm\]\:size-6[data-size=sm]{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}:is(.\*\:data-\[slot\=avatar\]\:ring-2>*)[data-slot=avatar]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}:is(.\*\:data-\[slot\=avatar\]\:ring-background>*)[data-slot=avatar]{--tw-ring-color:hsl(var(--background))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.group-data-\[variant\=default\]\/tabs-list\:data-\[state\=active\]\:shadow-sm:is(:where(.group\/tabs-list)[data-variant=default] *)[data-state=active]{--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)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{background-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]:after{content:var(--tw-content);opacity:1}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:hsl(var(--destructive))}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab,hsl(var(--destructive)) 10%,transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:hsl(var(--destructive))}.data-\[variant\=line\]\:rounded-none[data-variant=line]{border-radius:0}@media (min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:inline{display:inline}.sm\:w-auto{width:auto}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-none{max-width:none}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:items-end{align-items:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}.sm\:self-auto{align-self:auto}.sm\:p-10{padding:calc(var(--spacing) * 10)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:px-8{padding-inline:calc(var(--spacing) * 8)}.sm\:py-8{padding-block:calc(var(--spacing) * 8)}.sm\:py-14{padding-block:calc(var(--spacing) * 14)}.sm\:text-left{text-align:left}}@media (min-width:48rem){.md\:flex{display:flex}.md\:hidden{display:none}.md\:px-8{padding-inline:calc(var(--spacing) * 8)}.md\:py-10{padding-block:calc(var(--spacing) * 10)}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (min-width:64rem){.lg\:sticky{position:sticky}.lg\:top-6{top:calc(var(--spacing) * 6)}.lg\:h-\[calc\(100vh-10rem\)\]{height:calc(100vh - 10rem)}.lg\:max-h-\[calc\(100vh-10rem\)\]{max-height:calc(100vh - 10rem)}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-\[1fr_1\.2fr\]{grid-template-columns:1fr 1.2fr}.lg\:grid-cols-\[1fr_1fr\]{grid-template-columns:1fr 1fr}}@media (min-width:80rem){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.dark\:border-input:is(.dark *){border-color:hsl(var(--input))}.dark\:bg-destructive\/60:is(.dark *){background-color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,hsl(var(--destructive)) 60%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:hsl(var(--input))}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,hsl(var(--input)) 30%,transparent)}}.dark\:text-muted-foreground:is(.dark *){color:hsl(var(--muted-foreground))}@media (hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:hsl(var(--accent))}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,hsl(var(--accent)) 50%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:hsl(var(--input))}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,hsl(var(--input)) 50%,transparent)}}.dark\:hover\:text-foreground:is(.dark *):hover{color:hsl(var(--foreground))}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,hsl(var(--destructive)) 40%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,hsl(var(--destructive)) 40%,transparent)}}.dark\:data-\[state\=active\]\:border-input:is(.dark *)[data-state=active]{border-color:hsl(var(--input))}.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:hsl(var(--input))}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:color-mix(in oklab,hsl(var(--input)) 30%,transparent)}}.dark\:data-\[state\=active\]\:text-foreground:is(.dark *)[data-state=active]{color:hsl(var(--foreground))}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:border-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{border-color:#0000}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{background-color:#0000}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab,hsl(var(--destructive)) 20%,transparent)}}.\[\&_\*\]\:pointer-events-none *,.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:hsl(var(--muted-foreground))}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing) * 6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing) * 6)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:text-destructive\![data-variant=destructive]>*):is(svg){color:hsl(var(--destructive))!important}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.group-has-data-\[size\=lg\]\/avatar-group\:\[\&\>svg\]\:size-5:is(:where(.group\/avatar-group):has([data-size=lg]) *)>svg{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.group-has-data-\[size\=sm\]\/avatar-group\:\[\&\>svg\]\:size-3:is(:where(.group\/avatar-group):has([data-size=sm]) *)>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.group-data-\[size\=default\]\/avatar\:\[\&\>svg\]\:size-2:is(:where(.group\/avatar)[data-size=default] *)>svg,.group-data-\[size\=lg\]\/avatar\:\[\&\>svg\]\:size-2:is(:where(.group\/avatar)[data-size=lg] *)>svg{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.group-data-\[size\=sm\]\/avatar\:\[\&\>svg\]\:hidden:is(:where(.group\/avatar)[data-size=sm] *)>svg{display:none}@media (hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:hsl(var(--accent))}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive))}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,hsl(var(--destructive)) 90%,transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,hsl(var(--primary)) 90%,transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:hsl(var(--secondary))}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab,hsl(var(--secondary)) 90%,transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}a.\[a\&\]\:hover\:underline:hover{text-decoration-line:underline}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--background:0 0% 5%;--foreground:0 0% 96%;--card:0 0% 7%;--card-foreground:0 0% 96%;--popover:0 0% 8%;--popover-foreground:0 0% 96%;--primary:263 70% 70%;--primary-foreground:0 0% 5%;--secondary:0 0% 12%;--secondary-foreground:0 0% 90%;--muted:0 0% 12%;--muted-foreground:0 0% 60%;--accent:0 0% 14%;--accent-foreground:0 0% 96%;--destructive:0 70% 60%;--destructive-foreground:0 0% 96%;--success:142 70% 50%;--warning:38 90% 60%;--border:0 0% 14%;--input:0 0% 12%;--ring:263 70% 70%;--radius:.5rem}*{border-color:hsl(var(--border))}html{color-scheme:dark}body{background:hsl(var(--background));color:hsl(var(--foreground));font-family:var(--font-geist-sans),system-ui,sans-serif;-webkit-font-smoothing:antialiased}.bg-grid{background-image:radial-gradient(circle,hsl(var(--border)) 1px,transparent 1px);background-size:24px 24px}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.5}}.animate-pulse-soft{animation:pulse-soft 1.6s ease-in-out infinite}@keyframes caret{0%,50%{opacity:1}50.01%,to{opacity:0}}.caret:after{content:"▍";color:hsl(var(--primary));margin-left:2px;animation:caret 1s step-end infinite}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:hsl(var(--border));border-radius:3px}::-webkit-scrollbar-thumb:hover{background:hsl(var(--muted-foreground)/.3)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-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-space-x-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-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(1turn)}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}
|