zdashboard 2.8.4 → 2.8.6

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.
Files changed (38) hide show
  1. package/dist/cli.js +520 -292
  2. package/dist/cli.js.map +1 -1
  3. package/dist/web/assets/CodeViewer-_jAxbWVL.js +10 -0
  4. package/dist/web/assets/{FileIcon-1KBdrfw3.js → FileIcon-68etP2t6.js} +1 -1
  5. package/dist/web/assets/{FilterPills-CCubROoX.js → FilterPills-DGfzMpn_.js} +1 -1
  6. package/dist/web/assets/ImageViewer-ChZdzYPf.js +298 -0
  7. package/dist/web/assets/{Sidebar-DE0UBp9b.js → Sidebar-D83uLTNy.js} +1 -1
  8. package/dist/web/assets/{Sidebar-D4sJtPI_.js → Sidebar-N0HiMJRK.js} +1 -1
  9. package/dist/web/assets/Workspace-BE7p2hNz.js +1 -0
  10. package/dist/web/assets/Workspace-BpSq60xh.js +1 -0
  11. package/dist/web/assets/{Workspace-CvG5lIPT.js → Workspace-DW8xX3Tg.js} +1 -1
  12. package/dist/web/assets/Workspace-DjL1fdji.js +2 -0
  13. package/dist/web/assets/Workspace-DrN9--Je.js +1 -0
  14. package/dist/web/assets/index-DH1Mqw-g.css +1 -0
  15. package/dist/web/assets/{index-Co7MWSFf.js → index-D_uh-zkI.js} +3 -3
  16. package/dist/web/assets/{usePluginData-IoRqReIJ.js → usePluginData-Bk2M7LNj.js} +1 -1
  17. package/dist/web/assets/{web-BZSTgldm.js → web-BZukfmmT.js} +2 -2
  18. package/dist/web/assets/{web-DOEmlI8d.js → web-CEB9kTEr.js} +2 -2
  19. package/dist/web/assets/web-CGvrDSNo.js +2 -0
  20. package/dist/web/assets/{web-DxbVzGf3.js → web-CLKkH6eO.js} +2 -2
  21. package/dist/web/assets/web-CbW9uGDV.js +2 -0
  22. package/dist/web/index.html +2 -2
  23. package/package.json +1 -1
  24. package/dist/web/assets/BatchView-pClKtVa8.js +0 -2
  25. package/dist/web/assets/CheckpointViewer-CAbXbMti.js +0 -1
  26. package/dist/web/assets/CodeViewer-Cs0mG1h6.js +0 -279
  27. package/dist/web/assets/DependencyGraph-Czdg00AM.js +0 -1
  28. package/dist/web/assets/ProgressBar-DVfldtzq.js +0 -1
  29. package/dist/web/assets/SingleChangeView-BYcaGOyR.js +0 -1
  30. package/dist/web/assets/ViewHeader-DPfbaJmK.js +0 -1
  31. package/dist/web/assets/Workspace-B7MhdnwY.js +0 -2
  32. package/dist/web/assets/Workspace-CAcrVL-m.js +0 -1
  33. package/dist/web/assets/Workspace-DWHHR42N.js +0 -1
  34. package/dist/web/assets/Workspace-cXLWoMNL.js +0 -1
  35. package/dist/web/assets/index-CwS-KyOV.css +0 -1
  36. package/dist/web/assets/index-D6EJRHBV.js +0 -29
  37. package/dist/web/assets/web-CX1FEFxC.js +0 -2
  38. package/dist/web/assets/web-DLwxO4fO.js +0 -2
@@ -1 +0,0 @@
1
- import{r as u,j as e}from"./index-Co7MWSFf.js";const a={pending:"bg-muted text-muted-foreground",running:"bg-info/20 text-info",completed:"bg-success/20 text-success",failed:"bg-destructive/20 text-destructive",parked:"bg-warning/20 text-warning",skipped:"bg-muted text-muted-foreground line-through"};function h({graph:t,selectedChange:d,onSelectChange:l}){const[i,o]=u.useState("all"),m=t.changes.filter(s=>i==="all"||s.status===i),c=t.batches.reduce((s,r)=>{const n=t.changes.filter(x=>x.batchIndex===r.index);return n.length&&(s[r.index]=n),s},{});return e.jsxs("div",{className:"flex h-full",children:[e.jsxs("aside",{className:"w-80 border-r border-border overflow-y-auto p-4",children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"text-sm font-medium",children:"状态筛选"}),e.jsxs("select",{value:i,onChange:s=>o(s.target.value),className:"mt-1 w-full rounded-md border border-border bg-background px-3 py-1.5 text-sm",children:[e.jsx("option",{value:"all",children:"全部"}),e.jsx("option",{value:"pending",children:"待执行"}),e.jsx("option",{value:"running",children:"执行中"}),e.jsx("option",{value:"completed",children:"已完成"}),e.jsx("option",{value:"failed",children:"失败"}),e.jsx("option",{value:"parked",children:"已暂停"})]})]}),e.jsx("div",{className:"space-y-2",children:m.map(s=>e.jsxs("div",{onClick:()=>l(d===s.name?null:s.name),className:`p-3 rounded-lg border cursor-pointer transition-colors ${d===s.name?"border-primary bg-primary/5":"border-border hover:border-primary/50"}`,children:[e.jsxs("div",{className:"flex items-center justify-between mb-1",children:[e.jsx("span",{className:"font-medium text-sm",children:s.name}),e.jsx("span",{className:`text-xs px-2 py-0.5 rounded ${a[s.status]||a.pending}`,children:s.status})]}),e.jsxs("div",{className:"text-xs text-muted-foreground",children:["批次 ",s.batchIndex," · 依赖 ",s.dependencies.length," 个"]})]},s.name))})]}),e.jsxs("main",{className:"flex-1 overflow-y-auto p-6",children:[t.conflicts.length>0&&e.jsxs("div",{className:"mb-6 p-4 rounded-lg border border-warning bg-warning/10",children:[e.jsx("h3",{className:"font-medium text-warning mb-2",children:"⚠️ 文件冲突检测"}),e.jsx("div",{className:"space-y-2",children:t.conflicts.map((s,r)=>e.jsxs("div",{className:"text-sm",children:[e.jsx("span",{className:"font-medium",children:s.changeA}),e.jsx("span",{className:"text-muted-foreground",children:" 与 "}),e.jsx("span",{className:"font-medium",children:s.changeB}),e.jsx("span",{className:"text-muted-foreground",children:" 冲突于: "}),e.jsx("code",{className:"text-xs bg-background/50 px-1 rounded",children:s.files.join(", ")})]},r))})]}),e.jsx("div",{className:"space-y-6",children:Object.entries(c).sort(([s],[r])=>Number(s)-Number(r)).map(([s,r])=>e.jsxs("div",{children:[e.jsxs("h3",{className:"text-sm font-medium text-muted-foreground mb-3",children:["批次 ",s,e.jsxs("span",{className:"ml-2 text-xs",children:["(",r.filter(n=>n.status==="completed").length,"/",r.length," 完成)"]})]}),e.jsx("div",{className:"grid grid-cols-2 gap-3",children:r.map(n=>e.jsxs("div",{onClick:()=>l(d===n.name?null:n.name),className:`p-4 rounded-lg border transition-colors ${d===n.name?"border-primary bg-primary/5":"border-border hover:border-primary/50"}`,children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx("span",{className:"font-medium",children:n.name}),e.jsx("span",{className:`text-xs px-2 py-0.5 rounded ${a[n.status]||a.pending}`,children:n.status})]}),n.dependencies.length>0&&e.jsxs("div",{className:"text-xs text-muted-foreground",children:["依赖: ",n.dependencies.join(", ")]})]},n.name))})]},s))})]})]})}export{h as default};
@@ -1 +0,0 @@
1
- import{j as r,e as i}from"./index-Co7MWSFf.js";function t({value:e,className:s}){const a=Math.max(0,Math.min(100,e));return r.jsx("div",{className:i("rounded-[var(--radius-full)] bg-muted overflow-hidden",s),role:"progressbar","aria-valuenow":a,"aria-valuemin":0,"aria-valuetext":`${a}%`,children:r.jsx("div",{className:"h-full rounded-[var(--radius-full)] bg-primary transition-all",style:{width:`${a}%`}})})}export{t as P};
@@ -1 +0,0 @@
1
- import{b as m,a as _,r as $,j as e,S as g,E as h}from"./index-Co7MWSFf.js";import{V as C,B as c}from"./ViewHeader-DPfbaJmK.js";import{P as E}from"./ProgressBar-DVfldtzq.js";import{u}from"./usePluginData-IoRqReIJ.js";import{M as P,t as B}from"./index-D6EJRHBV.js";const p=/^\s*-\s*\[([ xX])\]\s*(.*)$/,I="🔧[人工]";function b(s){return s.split(/\r?\n/).filter(r=>p.test(r)).map(r=>{const t=r.match(p),n=((t==null?void 0:t[2])??r).trim();return{text:n,checked:(t==null?void 0:t[1])!==" ",manual:n.startsWith(I)}})}function T(s){const r=b(s),t=r.filter(n=>!n.manual);return{total:t.length,done:t.filter(n=>n.checked).length,manual:r.length-t.length}}function w(s,r){return r===0?0:Math.round(s/r*100)}function k({done:s,total:r}){const t=w(s,r),n=t===100?"success":t>0?"warning":"neutral";return e.jsxs(c,{variant:n,children:[s,"/",r," · ",t,"%"]})}function v(){return e.jsx(c,{variant:"info",children:"worktree 执行中"})}function W(){return e.jsx(c,{variant:"info",children:"含测试策略"})}function M({count:s}){return e.jsxs(c,{variant:"warning",children:["🔧[人工] ",s]})}function R({name:s,pending:r}){const t=r?"neutral":"success";return e.jsx(c,{variant:t,children:r?`${s} · 等待前置`:s})}function j({label:s,content:r}){const{icon:t}=m();return e.jsxs("details",{className:"border rounded-lg bg-card",children:[e.jsxs("summary",{className:"px-3 py-2 text-xs font-medium text-muted-foreground cursor-pointer select-none flex items-center gap-1",children:[t("file-text","h-3 w-3")," ",s]}),e.jsx("div",{className:"prose dark:prose-invert max-w-none text-xs px-3 pb-3",children:e.jsx(P,{remarkPlugins:[B],children:r})})]})}function D({tasks:s}){const r=b(s);if(!r.length)return e.jsx("p",{className:"text-xs text-muted-foreground",children:"无 tasks.md"});const t=r.findIndex(n=>!n.checked&&!n.manual);return e.jsx("ul",{className:"space-y-1 text-xs",children:r.map((n,d)=>{const l=d===t,i=n.manual?"text-muted-foreground":n.checked?"text-foreground":"text-muted-foreground";return e.jsxs("li",{className:`flex items-start gap-2 rounded px-1.5 -mx-1.5 py-0.5 ${l?"bg-warning/10 border-l-2 border-warning":""} ${i}`,children:[n.checked?e.jsx("span",{className:"mt-0.5 h-3.5 w-3.5 shrink-0 rounded-full bg-success text-white flex items-center justify-center text-xs",children:"✓"}):e.jsx("span",{className:`mt-0.5 h-3.5 w-3.5 shrink-0 rounded-full border ${l?"border-warning":"border-muted-foreground/50"}`}),e.jsx("span",{children:n.text}),l&&e.jsx("span",{className:"ml-auto flex-none text-xs font-medium text-warning",children:"← 下一步"})]},d)})})}function S({item:s,selected:r,manualCount:t,onSelect:n}){const{icon:d}=m();return e.jsxs("button",{type:"button",onClick:n,"aria-current":r||void 0,className:`w-full text-left rounded-lg border p-3 transition-colors ${r?"border-primary bg-muted/50":"border-border bg-card hover:bg-muted/50"}`,children:[e.jsxs("div",{className:"flex items-center gap-1.5 mb-1",children:[d("folder-open","h-3.5 w-3.5 text-muted-foreground shrink-0"),e.jsx("span",{className:"text-sm font-medium font-mono truncate min-w-0",title:s.name,children:s.name}),e.jsx("span",{className:"ml-auto flex-none",children:e.jsx(k,{done:s.done,total:s.total})})]}),e.jsx(E,{value:w(s.done,s.total),className:"h-1 mb-1.5"}),e.jsxs("div",{className:"flex items-center gap-1.5 flex-wrap",children:[s.hasProposal&&e.jsx(c,{variant:"outline",children:"proposal"}),s.hasDesign&&e.jsx(c,{variant:"info",children:"design"}),s.inWorktree&&e.jsx(v,{}),t!=null&&t>0&&e.jsx(M,{count:t})]})]})}function A(){const{icon:s}=m(),t=u("apply:/__worktrees",()=>fetch("/__worktrees",{cache:"no-store"}).then(n=>n.json()),{subscribe:"files"}).data??[];return t.length?e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[s("git-branch","h-3.5 w-3.5 text-muted-foreground"),e.jsx("span",{className:"text-sm text-muted-foreground mr-1",children:"Worktree:"}),t.map(n=>e.jsxs("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded border text-xs font-mono bg-info/10 text-info border-info/30",title:n.head,children:[n.name,"@",n.branch||"detached"]},n.name))]}):null}function X({onStatus:s}){const{icon:r}=m(),t=_(),n=t.params.get("change"),d=u("apply:/__apply",()=>fetch("/__apply",{cache:"no-store"}).then(a=>a.json()),{subscribe:"files"}),l=u(`apply:change:${n??""}`,()=>n?fetch(`/__apply/change?name=${encodeURIComponent(n)}`,{cache:"no-store"}).then(a=>a.json()).then(a=>{if(a&&a.error)throw new Error(a.error);return a}):Promise.resolve(null),{subscribe:"files"}),i=d.data??[],o=l.data&&l.data.name===n?l.data:null,{total:f,manual:x}=T((o==null?void 0:o.tasks)??"");$.useEffect(()=>{s==null||s(i.length?{label:`${i.length} 个进行中`,tone:"info"}:void 0)},[i.length,s]);const N=a=>t.navigate({change:a});return e.jsxs("div",{className:"h-full flex flex-col bg-background border rounded-lg shadow-sm overflow-hidden",children:[e.jsx(C,{title:"进行中的 change",actions:e.jsx(A,{})}),d.loading&&!i.length?e.jsx("div",{className:"p-4",children:e.jsx(g,{rows:4})}):i.length?e.jsxs("div",{"data-testid":"single-split",className:"flex-1 min-h-0 flex flex-col lg:flex-row overflow-y-auto lg:overflow-hidden",children:[e.jsx("aside",{"data-testid":"change-list-pane",className:"flex-none lg:w-72 shrink-0 border-b lg:border-b-0 lg:border-r border-border p-3 space-y-2 lg:overflow-y-auto",children:i.map(a=>e.jsx(S,{item:a,selected:a.name===n,manualCount:a.name===n&&x>0?x:null,onSelect:()=>N(a.name)},a.name))}),e.jsx("section",{"data-testid":"change-detail-pane",className:"flex-1 min-w-0 min-h-0 lg:overflow-y-auto p-4 space-y-4",children:n&&o?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("h3",{className:"text-sm font-medium",children:o.name}),e.jsx(k,{done:o.done,total:o.total}),x>0&&e.jsxs(c,{variant:"warning",children:["待人工 ",x," 项"]}),o.inWorktree&&e.jsx(v,{}),o.hasTestStrategy&&e.jsx(W,{})]}),o.dependsOn.length>0&&e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"text-xs text-muted-foreground",children:"依赖:"}),o.dependsOn.map(a=>e.jsx(R,{name:a,pending:i.some(y=>y.name===a)},a))]}),e.jsxs("div",{children:[e.jsxs("h4",{className:"text-xs font-medium text-muted-foreground mb-2 flex items-center gap-1",children:[r("file-text","h-3 w-3")," tasks.md",f>0&&e.jsxs("span",{className:"font-mono",children:["(",f," 项)"]})]}),e.jsx("div",{className:"border rounded-lg p-3 bg-card",children:e.jsx(D,{tasks:o.tasks})})]}),o.proposal&&e.jsx(j,{label:"proposal.md",content:o.proposal}),o.design&&e.jsx(j,{label:"design.md",content:o.design})]}):n&&l.error?e.jsx(h,{title:`未找到 change「${n}」`,hint:l.error}):n?e.jsx("div",{"data-testid":"detail-loading",className:"p-4",children:e.jsx(g,{rows:4})}):e.jsx(h,{title:"未选择 change",hint:"从左侧列表选择 change 查看详情"})})]}):e.jsx("div",{className:"flex-1 min-h-0 flex items-center justify-center p-4",children:e.jsx(h,{icon:r("folder-git-2","h-6 w-6"),title:"没有进行中的 change",hint:"在 openspec/changes/ 下创建 change 后会显示在这里"})})]})}export{X as default};
@@ -1 +0,0 @@
1
- import{r as n,j as e,e as d,h as o}from"./index-Co7MWSFf.js";const i=o("inline-flex items-center rounded-[var(--radius-sm)] border px-1.5 py-0.5 text-xs font-mono font-medium transition-colors",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground",success:"border-success/30 bg-success/15 text-success",warning:"border-warning/30 bg-warning/15 text-warning",info:"border-info/30 bg-info/15 text-info",outline:"border-border bg-background text-foreground",neutral:"border-border bg-muted text-muted-foreground",destructive:"border-destructive/30 bg-destructive/15 text-destructive"}},defaultVariants:{variant:"default"}}),c=n.forwardRef(({className:r,variant:t,...a},s)=>e.jsx("div",{ref:s,className:d(i({variant:t}),r),...a}));c.displayName="Badge";function x({title:r,actions:t}){return e.jsxs("div",{"data-testid":"view-header",className:"flex-none flex items-center gap-2 px-4 py-2 border-b border-border",children:[e.jsx("h3",{className:"text-sm font-semibold text-foreground truncate min-w-0",children:r}),e.jsx("div",{"data-testid":"view-header-actions",className:"ml-auto flex items-center gap-1.5 flex-none min-w-0",children:t??null})]})}export{c as B,x as V};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/SingleChangeView-BYcaGOyR.js","assets/index-Co7MWSFf.js","assets/index-CwS-KyOV.css","assets/ViewHeader-DPfbaJmK.js","assets/ProgressBar-DVfldtzq.js","assets/usePluginData-IoRqReIJ.js","assets/index-D6EJRHBV.js","assets/BatchView-pClKtVa8.js"])))=>i.map(i=>d[i]);
2
- import{u as g,a as h,r as t,j as e,P as _,S as f,_ as l}from"./index-Co7MWSFf.js";import{m as r}from"./web-CX1FEFxC.js";import"./client-Cw4K1Nx3.js";const b=t.lazy(()=>l(()=>import("./SingleChangeView-BYcaGOyR.js"),__vite__mapDeps([0,1,2,3,4,5,6]))),j=t.lazy(()=>l(()=>import("./BatchView-pClKtVa8.js"),__vite__mapDeps([7,1,2,3,5,6]))),d=["single","batch"],S={single:"单 change",batch:"批量驾驶舱"};function E(n){return d.includes(n??"")?n:"single"}function y(n){const u=g(r.mode,"h-5 w-5"),o=h(),a=E(o.params.get("view")),i=o.params.get("change"),m=["插件",r.mode,...a==="single"&&i?[i]:[]],[p,x]=t.useState(void 0),c=t.useCallback(s=>x(s),[]);return e.jsx(_,{manifest:r,icon:u,breadcrumb:m,status:p,children:e.jsxs("div",{className:"h-full flex flex-col gap-3",children:[e.jsx("div",{className:"flex-none flex items-center gap-2",children:d.map(s=>e.jsx("button",{type:"button","aria-pressed":a===s,onClick:()=>o.navigate({view:s}),className:`px-3 py-1.5 text-sm rounded-md transition-colors ${a===s?"bg-primary text-primary-foreground":"border border-border hover:bg-accent"}`,children:S[s]},s))}),e.jsx("div",{className:"flex-1 min-h-0",children:e.jsx(t.Suspense,{fallback:e.jsx(f,{rows:6}),children:a==="single"?e.jsx(b,{onStatus:c}):e.jsx(j,{onStatus:c})})})]})})}export{y as default};
@@ -1 +0,0 @@
1
- import{b as g,u as b,a as h,j as t,f as p,P as j}from"./index-Co7MWSFf.js";import{P as N}from"./ProgressBar-DVfldtzq.js";import{u as i}from"./usePluginData-IoRqReIJ.js";import{m as l}from"./web-DLwxO4fO.js";import"./client-Cw4K1Nx3.js";function S(v){var o,n;const{icon:d}=g(),c=b(l.mode,"h-5 w-5"),u=h(),r=i("stats:/__stats/data",()=>fetch("/__stats/data",{cache:"no-store"}).then(e=>e.json()),{subscribe:"files"}),a=i("stats:/__detect",()=>fetch("/__detect",{cache:"no-store"}).then(e=>e.json()));if(r.error)return t.jsx("div",{className:"flex h-full items-center justify-center text-destructive",children:t.jsxs("p",{children:["加载失败: ",r.error]})});if(!r.data)return t.jsx("div",{className:"flex h-full items-center justify-center text-muted-foreground",children:t.jsx("p",{children:"加载中…"})});const s=r.data,m=Math.max(...s.byExt.map(e=>e.count),1),x=[{label:"文件",value:String(s.files),iconName:"file-text",drill:null},{label:"目录",value:String(s.dirs),iconName:"folder-tree",drill:null},{label:"总大小",value:p(s.totalSize),iconName:null,drill:null},{label:"Worktree",value:String(s.worktrees),iconName:"git-branch",drill:"worktree"},{label:"未提交",value:String(s.dirty??0),iconName:null,drill:"dirty"}],f=e=>u.navigate({p:"view",card:e});return t.jsx(j,{manifest:l,icon:c,breadcrumb:["插件",l.mode],children:t.jsxs("div",{className:"mx-auto h-full max-w-6xl overflow-auto rounded-lg border bg-background p-6 shadow-sm",children:[t.jsx("p",{className:"text-xs text-muted-foreground mb-5",children:"后端 fs 扫描 + 前端渲染 · 改文件即时刷新 · 点击卡片跳转"}),t.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-5 gap-3 mb-6",children:x.map(e=>t.jsxs("button",{type:"button",onClick:()=>e.drill&&f(e.drill),disabled:!e.drill,title:e.drill?`点击跳转至 ${e.label}`:void 0,className:`rounded-lg border bg-background p-4 text-left transition-colors ${e.drill?"hover:bg-muted/70 cursor-pointer":"cursor-default opacity-80"}`,children:[t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsx("div",{className:"text-xl font-bold",children:e.value}),e.iconName&&d(e.iconName,"h-4 w-4 text-muted-foreground/50")]}),t.jsx("div",{className:"text-sm text-muted-foreground mt-1",children:e.label})]},e.label))}),t.jsx("h2",{className:"text-xs font-medium text-muted-foreground mb-3",children:"文件类型 Top 10"}),t.jsx("div",{className:"space-y-2",children:s.byExt.map(e=>t.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[t.jsx("span",{className:"w-16 font-mono text-foreground truncate",children:e.ext}),t.jsx(N,{value:parseFloat((e.count/m*100).toFixed(1)),className:"flex-1 h-2"}),t.jsx("span",{className:"w-8 text-right font-mono text-muted-foreground",children:e.count})]},e.ext))}),t.jsxs("div",{className:"mt-5 flex items-center gap-2 text-xs",children:[t.jsxs("span",{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded border ${(o=a.data)!=null&&o.hasJust?"text-success border-success/30 bg-success/10":"text-muted-foreground border-border"}`,children:["justfile ",(n=a.data)!=null&&n.hasJust?"✓":"✗"]}),typeof s.dirty=="number"&&t.jsx("span",{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded border ${s.dirty?"text-warning border-warning/30 bg-warning/10":"text-success border-success/30 bg-success/10"}`,children:s.dirty?`${s.dirty} 未提交`:"clean"}),t.jsxs("span",{className:"text-muted-foreground",children:["root: ",s.root]})]})]})})}export{S as default};
@@ -1 +0,0 @@
1
- import{j as e,r as u,b as j,u as _,a as I,P as R,E as F}from"./index-Co7MWSFf.js";import{F as S}from"./FilterPills-CCubROoX.js";import{C as U,M as L,I as E}from"./CodeViewer-Cs0mG1h6.js";import{m as v}from"./web-BZSTgldm.js";import"./index-D6EJRHBV.js";import"./client-Cw4K1Nx3.js";function $({path:t}){return e.jsx("iframe",{src:"/__design/asset?path="+encodeURIComponent(t),title:"预览",className:"w-full h-full border-0 bg-white"})}const k=/^(#|rgb|rgba|hsl|hsla|oklch|oklab|color\()/i,y=/font|family|type/i;function A({path:t}){const[m,d]=u.useState([]),[i,a]=u.useState(!0);return u.useEffect(()=>{let s=!1;return a(!0),d([]),fetch("/__design/asset?path="+encodeURIComponent(t),{cache:"no-store"}).then(o=>o.text()).then(o=>{if(s)return;const c=o.match(/--[A-Za-z0-9_-]+\s*:\s*[^;}\n]+/g)??[];if(!c.length){d([]),a(!1);return}const r=l=>{const N=l.indexOf(":"),V=l.slice(0,N).trim(),C=l.slice(N+1).trim();return{name:V,value:C}},n=l=>/^(#([0-9a-fA-F]{3,8})\b|rgb|rgba|hsl|hsla|oklch|oklab|color\()/i.test(l),p=l=>y.test(l),x=c.map(r),f=x.filter(l=>n(l.value)),g=x.filter(l=>!n(l.value)&&p(l.name)),b=x.filter(l=>!n(l.value)&&!p(l.name)),h=[];f.length&&h.push({label:`配色 · ${f.length}`,items:f}),g.length&&h.push({label:`字体 · ${g.length}`,items:g}),b.length&&h.push({label:`其他 · ${b.length}`,items:b}),d(h),a(!1)}).catch(()=>{s||(d([]),a(!1))}),()=>{s=!0}},[t]),i?e.jsx("p",{className:"p-3 text-xs text-muted-foreground",children:"解析中…"}):m.length?e.jsx("div",{className:"p-8 flex flex-col gap-7",children:m.map(s=>{const o=s.items.some(r=>k.test(r.value)),c=s.items.some(r=>y.test(r.name));return e.jsxs("section",{children:[e.jsx("div",{className:"mb-3 text-sm font-semibold uppercase text-muted-foreground",children:s.label}),o?e.jsx("div",{className:"grid gap-3",style:{gridTemplateColumns:"repeat(auto-fill, minmax(var(--token-card-min-w), 1fr))"},children:s.items.filter(r=>k.test(r.value)).map(({name:r,value:n})=>e.jsxs("div",{className:"overflow-hidden rounded-lg border bg-background",children:[e.jsx("div",{className:"h-[var(--design-preview-h)] border-b",style:{background:n}}),e.jsx("div",{className:"px-2.5 pt-2 font-mono text-sm break-all",children:r}),e.jsx("div",{className:"px-2.5 pb-2 text-xs text-muted-foreground",children:n})]},r))}):c?e.jsx("div",{className:"grid gap-3",style:{gridTemplateColumns:"repeat(auto-fill, minmax(var(--token-card-min-w), 1fr))"},children:s.items.map(({name:r,value:n})=>e.jsxs("div",{className:"overflow-hidden rounded-lg border bg-background",children:[e.jsx("div",{className:"grid h-[var(--design-preview-h)] place-items-center text-2xl",style:{fontFamily:n},children:"Aa"}),e.jsx("div",{className:"px-2.5 font-mono text-sm",children:r})]},r))}):e.jsx("div",{className:"flex flex-col gap-1",children:s.items.map(({name:r,value:n})=>e.jsxs("div",{className:"flex justify-between gap-3 px-2.5 py-1.5 rounded border bg-background text-xs",children:[e.jsx("span",{className:"font-mono",children:r}),e.jsx("span",{className:"text-muted-foreground",children:n})]},r))})]},s.label)})}):e.jsx("p",{className:"p-3 text-xs",children:"未发现 CSS 变量"})}const w=t=>"/__design/asset?path="+encodeURIComponent(t);function O({path:t}){return e.jsx(L,{path:t,resolve:w})}function M({path:t}){return e.jsx(E,{path:t,resolve:w})}function P({path:t}){return e.jsx(U,{path:t,resolve:w})}function W({path:t}){return e.jsx("div",{className:"grid place-items-center p-8",children:e.jsx("video",{src:"/__design/asset?path="+encodeURIComponent(t),controls:!0,className:"max-w-full max-h-[80vh] rounded border"})})}function z({path:t}){return e.jsx("div",{className:"grid place-items-center p-8",children:e.jsx("audio",{src:"/__design/asset?path="+encodeURIComponent(t),controls:!0,className:"w-full max-w-2xl"})})}function T({path:t}){return e.jsx("div",{className:"grid place-items-center p-8 h-full",children:e.jsx("iframe",{src:"/__design/asset?path="+encodeURIComponent(t),title:"PDF",className:"w-full h-full max-h-[80vh] rounded border bg-white"})})}function D({path:t}){const[m,d]=u.useState("");return u.useEffect(()=>{let i=!1,a="",s=null;return fetch("/__design/asset?path="+encodeURIComponent(t)).then(o=>o.blob()).then(async o=>{var c;if(!i){if(a=URL.createObjectURL(o),s=new FontFace("zd-font-preview",`url(${a})`),await s.load(),i){(c=s.dispose)==null||c.call(s);return}document.fonts.add(s),d(t.split("/").pop()??t)}}).catch(()=>{i||d(t.split("/").pop()??t)}),()=>{var o;if(i=!0,s)try{document.fonts.delete(s),(o=s.dispose)==null||o.call(s)}catch{}a&&URL.revokeObjectURL(a)}},[t]),e.jsxs("div",{className:"h-full overflow-auto p-8 grid gap-6 place-content-center text-center",children:[e.jsx("div",{className:"text-xs text-muted-foreground font-mono break-all",children:t}),e.jsx("div",{className:"text-5xl",style:{fontFamily:m?"'zd-font-preview', serif":"serif"},children:"Aa 字体预览 0123"})]})}function H({path:t}){const{icon:m}=j();return e.jsx("div",{className:"grid place-items-center h-full text-center text-muted-foreground",children:e.jsxs("div",{children:[m("image-off","h-10 w-10 mx-auto mb-3 opacity-50"),e.jsx("p",{children:"该格式无法预览"}),e.jsx("p",{className:"mt-1 font-mono text-xs break-all",children:t})]})})}const K={page:$,icon:M,token:A,md:O,video:W,audio:z,pdf:T,component:P,font:D};function Z(t){return K[t]??H}function q({mode:t,onMode:m,w:d,h:i,onW:a,onH:s}){const{icon:o}=j(),c=[{v:0,icon:o("monitor","h-3.5 w-3.5"),label:"桌面"},{v:768,icon:o("tablet","h-3.5 w-3.5"),label:"768"},{v:375,icon:o("smartphone","h-3.5 w-3.5"),label:"375"},{v:"custom",icon:o("sliders-horizontal","h-3.5 w-3.5"),label:"自定义"}],r="w-[var(--design-input-w)] h-7 px-1 text-center text-xs rounded border border-border bg-background text-foreground [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none focus:outline-none focus:border-primary";return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"flex items-center gap-1 rounded-md border border-border p-0.5 bg-muted",children:e.jsx(S,{items:c.map(n=>({key:String(n.v),label:n.label,renderLabel:()=>e.jsxs(e.Fragment,{children:[n.icon,e.jsx("span",{className:"hidden sm:inline",children:n.label})]})})),value:String(t),onChange:n=>m(n==="0"?0:n==="custom"?"custom":Number(n)),ariaLabel:"视口模式"})}),e.jsxs("span",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[e.jsx("input",{type:"number",value:d,min:280,max:3e3,step:8,onChange:n=>a(Number(n.target.value)),"aria-label":"自定义宽度",className:r}),e.jsx("span",{className:"text-muted-foreground/70",children:"×"}),e.jsx("input",{type:"number",value:i,min:400,max:3e3,step:8,onChange:n=>s(Number(n.target.value)),"aria-label":"自定义高度",className:r}),e.jsx("span",{className:"text-sm text-muted-foreground/70",children:"px"})]})]})}function ee({params:t}){const{icon:m}=j(),d=_(v.mode,"h-5 w-5");I();const i=t.get("type")??"",a=t.get("asset"),[s,o]=u.useState(0),[c,r]=u.useState(1024),[n,p]=u.useState(768),x=a?Z(i):null,f=s===0?"桌面":s==="custom"?`${c} × ${n}`:`${s}px`;return e.jsx(R,{manifest:v,icon:d,breadcrumb:["插件",v.mode,...i?[i]:[],...a?[a]:[]],children:e.jsx("div",{className:"mx-auto h-full flex flex-col bg-background border rounded-lg shadow-sm overflow-hidden",children:a&&x?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"h-[var(--design-toolbar-h)] flex-none flex items-center justify-between px-3.5 border-b bg-background text-xs",children:[e.jsx("span",{className:"font-mono truncate",children:a}),e.jsx("span",{className:"text-muted-foreground ml-3 flex-none",children:f}),e.jsx(q,{mode:s,onMode:o,w:c,h:n,onW:r,onH:p})]}),e.jsx("div",{className:"flex-1 min-h-0 overflow-auto",children:i==="page"?e.jsx("div",{className:"mx-auto bg-background overflow-hidden",style:{maxWidth:s===0?void 0:s==="custom"?c:s,height:s==="custom"?n:"100%"},children:e.jsx(x,{path:a})}):e.jsx("div",{className:"mx-auto max-w-5xl h-full overflow-auto",children:e.jsx(x,{path:a})})})]}):e.jsx(F,{icon:m("palette","h-6 w-6"),title:"从左侧选择一个资产预览",hint:"点左侧折叠钮展开资产树 · 改文件即时刷新"})})})}export{ee as default};
@@ -1 +0,0 @@
1
- import{b as p,j as e,r as f,u as w,P as j,E as y}from"./index-Co7MWSFf.js";import{C as b,M as I,I as k}from"./CodeViewer-Cs0mG1h6.js";import{m as v}from"./web-DxbVzGf3.js";import"./index-D6EJRHBV.js";import"./client-Cw4K1Nx3.js";function N({path:s}){const{icon:i}=p();return e.jsx("div",{className:"grid place-items-center h-full text-center text-muted-foreground",children:e.jsxs("div",{children:[i("file-question","h-10 w-10 mx-auto mb-3 opacity-50"),e.jsx("p",{children:"该格式无法预览"}),e.jsx("p",{className:"mt-1 font-mono text-xs break-all",children:s})]})})}function C({containerRef:s}){const{icon:i}=p(),[r,l]=f.useState([]),[h,m]=f.useState(null);f.useEffect(()=>{const t=s.current;if(!t)return;let n=!1;const o=()=>{if(n)return;const d=t.querySelectorAll("h1[id], h2[id], h3[id]"),u=[];d.forEach(a=>{var g;u.push({id:a.id,text:((g=a.textContent)==null?void 0:g.trim())??"",level:parseInt(a.tagName[1],10)})}),l(u)};o();const c=new MutationObserver(o);return c.observe(t,{childList:!0,subtree:!0,characterData:!0}),()=>{n=!0,c.disconnect()}},[s]),f.useEffect(()=>{const t=s.current;if(!t||!r.length)return;const n=new IntersectionObserver(o=>{const c=o.filter(d=>d.isIntersecting);if(c.length){const d=c.reduce((u,a)=>u.boundingClientRect.top<a.boundingClientRect.top?u:a);m(d.target.id)}},{root:t,rootMargin:"-60px 0px -70% 0px",threshold:0});return r.forEach(({id:o})=>{const c=t.querySelector(`#${CSS.escape(o)}`);c&&n.observe(c)}),()=>n.disconnect()},[r,s]);const x=t=>{var o;const n=(o=s.current)==null?void 0:o.querySelector(`#${CSS.escape(t)}`);n==null||n.scrollIntoView({behavior:"smooth",block:"start"})};return r.length?e.jsxs("nav",{className:"hidden md:flex w-44 shrink-0 flex-col border-l pl-3 py-2 overflow-y-auto","aria-label":"文档大纲",children:[e.jsxs("div",{className:"flex items-center gap-1 mb-2 text-sm font-medium text-muted-foreground uppercase tracking-wider",children:[i("file-text","h-3 w-3"),e.jsx("span",{children:"大纲"})]}),e.jsx("ul",{className:"space-y-0.5",children:r.map(t=>e.jsx("li",{children:e.jsx("button",{type:"button",onClick:()=>x(t.id),className:`w-full text-left text-sm leading-snug py-0.5 px-1.5 rounded truncate transition-colors ${h===t.id?"bg-primary/10 text-foreground font-medium":"text-muted-foreground hover:bg-muted/70"}`,style:{paddingLeft:6+(t.level-1)*10},children:t.text||t.id})},t.id))})]}):null}function S(s){const i=s.slice(s.lastIndexOf("/")+1).toLowerCase();if(i==="justfile"||i==="makefile")return b;const r=s.slice(s.lastIndexOf(".")).toLowerCase();return r===".md"||r===".markdown"?I:[".svg",".png",".jpg",".jpeg",".gif",".webp",".ico"].includes(r)?k:[".sql",".txt",".csv",".tsv",".json",".yaml",".yml",".xml",".py",".js",".ts",".java",".go",".rs",".rb",".php",".c",".cpp",".h",".cs",".swift",".kt",".scala",".sh",".bash",".zsh",".fish",".env",".gitignore",".dockerfile"].includes(r)?b:N}function L({params:s}){const{icon:i}=p(),r=w(v.mode,"h-5 w-5"),l=s.get("file"),h=s.get("wt"),m=f.useRef(null),x=l?S(l):null;return e.jsx(j,{manifest:v,icon:r,breadcrumb:["插件",h??"当前分支",...l?[l]:[]],children:e.jsx("div",{className:"mx-auto h-full max-w-5xl bg-background border rounded-lg shadow-sm overflow-hidden flex flex-col",children:l&&x?e.jsxs("div",{className:"flex-1 min-h-0 flex overflow-hidden",children:[e.jsx("div",{ref:m,className:"flex-1 min-h-0 overflow-auto",children:e.jsx(x,{path:l})}),e.jsx(C,{containerRef:m})]}):e.jsx(y,{icon:i("eye","h-6 w-6"),title:"从左侧选择文件预览",hint:"支持 Markdown、图片、代码等格式"})})})}export{L as default};
@@ -1 +0,0 @@
1
- *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--success: 142 76% 36%;--success-foreground: 0 0% 100%;--warning: 32 95% 44%;--warning-foreground: 0 0% 100%;--info: 199 89% 48%;--info-foreground: 0 0% 100%;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--border-width: 1px;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--topbar-h: 52px;--statusbar-h: 28px;--chip-h: 19px;--icon-rail-w: 48px;--sidebar-w: 280px;--design-preview-h: 72px;--design-toolbar-h: 38px;--design-input-w: 50px;--token-card-min-w: 150px;--background: 0 0% 100%;--foreground: 240 10% 3.9%;--card: 0 0% 100%;--card-foreground: 240 10% 3.9%;--popover: 0 0% 100%;--popover-foreground: 240 10% 3.9%;--primary: 240 5.9% 10%;--primary-foreground: 0 0% 98%;--secondary: 240 4.8% 95.9%;--secondary-foreground: 240 5.9% 10%;--muted: 240 4.8% 95.9%;--muted-foreground: 240 3.8% 46.1%;--accent: 240 4.8% 95.9%;--accent-foreground: 240 5.9% 10%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 0 0% 98%;--border: 240 5.9% 90%;--input: 240 5.9% 90%;--ring: 240 10% 3.9%;--terminal-bg: 216 28% 7%;--terminal-fg: 210 17% 82%;--radius: .5rem}[data-mode=dark]{--success: 134 61% 64%;--success-foreground: 0 0% 100%;--warning: 38 92% 50%;--warning-foreground: 0 0% 100%;--info: 199 89% 48%;--info-foreground: 0 0% 100%;--background: 240 10% 3.9%;--foreground: 0 0% 98%;--card: 240 10% 3.9%;--card-foreground: 0 0% 98%;--popover: 240 10% 3.9%;--popover-foreground: 0 0% 98%;--primary: 0 0% 98%;--primary-foreground: 240 5.9% 10%;--secondary: 240 3.7% 15.9%;--secondary-foreground: 0 0% 98%;--muted: 240 3.7% 15.9%;--muted-foreground: 240 5% 64.9%;--accent: 240 3.7% 15.9%;--accent-foreground: 0 0% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 0 0% 98%;--border: 240 3.7% 15.9%;--input: 240 3.7% 15.9%;--ring: 240 4.9% 83.9%}*{border-color:hsl(var(--border))}body{background:hsl(var(--background));color:hsl(var(--foreground))}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: rgb(17 24 39 / 10%);--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%);--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.dot-grid{background-image:radial-gradient(circle at 1px 1px,hsl(var(--border)) 1px,transparent 0);background-size:20px 20px}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.left-0{left:0}.right-0{right:0}.right-2{right:.5rem}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:.5rem}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.col-span-2{grid-column:span 2 / span 2}.col-span-full{grid-column:1 / -1}.m-0{margin:0}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-1\.5{margin-left:-.375rem;margin-right:-.375rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-3\.5{margin-bottom:.875rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-5{margin-top:1.25rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[18px\]{height:18px}.h-\[1px\]{height:1px}.h-\[var\(--chip-h\)\]{height:var(--chip-h)}.h-\[var\(--design-preview-h\)\]{height:var(--design-preview-h)}.h-\[var\(--design-toolbar-h\)\]{height:var(--design-toolbar-h)}.h-\[var\(--statusbar-h\)\]{height:var(--statusbar-h)}.h-\[var\(--topbar-h\)\]{height:var(--topbar-h)}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-48{max-height:12rem}.max-h-\[80vh\]{max-height:80vh}.max-h-full{max-height:100%}.min-h-0{min-height:0px}.min-h-\[1\.25rem\]{min-height:1.25rem}.min-h-\[3\.4em\]{min-height:3.4em}.w-0{width:0px}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-2\/3{width:66.666667%}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-44{width:11rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[18px\]{width:18px}.w-\[1px\]{width:1px}.w-\[min\(calc\(var\(--sidebar-w\)\*0\.78\)\,80vw\)\]{width:min(calc(var(--sidebar-w) * .78),80vw)}.w-\[var\(--design-input-w\)\]{width:var(--design-input-w)}.w-\[var\(--icon-rail-w\)\]{width:var(--icon-rail-w)}.w-\[var\(--sidebar-w\)\]{width:var(--sidebar-w)}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--chip-h\)\]{min-width:var(--chip-h)}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-40{max-width:10rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-\[var\(--sidebar-w\)\]{max-width:var(--sidebar-w)}.max-w-full{max-width:100%}.max-w-none{max-width:none}.flex-1{flex:1 1 0%}.flex-none{flex:none}.shrink-0{flex-shrink:0}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-cols-subgrid{grid-template-columns:subgrid}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.place-items-center{place-items:center}.content-start{align-content:flex-start}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-6{gap:1.5rem}.gap-7{gap:1.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-1\.5{row-gap:.375rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(var(--border-width) * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(var(--border-width) * var(--tw-divide-y-reverse))}.divide-border>:not([hidden])~:not([hidden]){border-color:hsl(var(--border))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-\[inherit\]{border-radius:inherit}.rounded-\[var\(--radius-full\)\]{border-radius:var(--radius-full)}.rounded-\[var\(--radius-lg\)\]{border-radius:var(--radius-lg)}.rounded-\[var\(--radius-md\)\]{border-radius:var(--radius-md)}.rounded-\[var\(--radius-sm\)\]{border-radius:var(--radius-sm)}.rounded-\[var\(--radius-xl\)\]{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-l-\[var\(--radius-md\)\]{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.rounded-r-\[var\(--radius-md\)\]{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.border{border-width:var(--border-width)}.border-0{border-width:0px}.border-b{border-bottom-width:var(--border-width)}.border-l{border-left-width:var(--border-width)}.border-l-0{border-left-width:0px}.border-l-2{border-left-width:2px}.border-r{border-right-width:var(--border-width)}.border-r-0{border-right-width:0px}.border-t{border-top-width:var(--border-width)}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-info\/30{border-color:hsl(var(--info) / .3)}.border-input{border-color:hsl(var(--input))}.border-muted-foreground\/50{border-color:hsl(var(--muted-foreground) / .5)}.border-primary{border-color:hsl(var(--primary))}.border-success\/30{border-color:hsl(var(--success) / .3)}.border-success\/40{border-color:hsl(var(--success) / .4)}.border-transparent{border-color:transparent}.border-warning{border-color:hsl(var(--warning))}.border-warning\/30{border-color:hsl(var(--warning) / .3)}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-background{background-color:hsl(var(--background))}.bg-background\/50{background-color:hsl(var(--background) / .5)}.bg-background\/80{background-color:hsl(var(--background) / .8)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/40{background-color:#0006}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-destructive\/15{background-color:hsl(var(--destructive) / .15)}.bg-destructive\/20{background-color:hsl(var(--destructive) / .2)}.bg-info{background-color:hsl(var(--info))}.bg-info\/10{background-color:hsl(var(--info) / .1)}.bg-info\/15{background-color:hsl(var(--info) / .15)}.bg-info\/20{background-color:hsl(var(--info) / .2)}.bg-info\/5{background-color:hsl(var(--info) / .05)}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground{background-color:hsl(var(--muted-foreground))}.bg-muted-foreground\/30{background-color:hsl(var(--muted-foreground) / .3)}.bg-muted-foreground\/40{background-color:hsl(var(--muted-foreground) / .4)}.bg-muted\/40{background-color:hsl(var(--muted) / .4)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-muted\/60{background-color:hsl(var(--muted) / .6)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-primary\/5{background-color:hsl(var(--primary) / .05)}.bg-secondary{background-color:hsl(var(--secondary))}.bg-success{background-color:hsl(var(--success))}.bg-success\/10{background-color:hsl(var(--success) / .1)}.bg-success\/15{background-color:hsl(var(--success) / .15)}.bg-success\/20{background-color:hsl(var(--success) / .2)}.bg-success\/5{background-color:hsl(var(--success) / .05)}.bg-success\/60{background-color:hsl(var(--success) / .6)}.bg-terminal-bg{background-color:hsl(var(--terminal-bg))}.bg-warning\/10{background-color:hsl(var(--warning) / .1)}.bg-warning\/15{background-color:hsl(var(--warning) / .15)}.bg-warning\/20{background-color:hsl(var(--warning) / .2)}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-px{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pl-3{padding-left:.75rem}.pr-2{padding-right:.5rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:1.5rem;line-height:2rem}.text-5xl{font-size:3rem;line-height:1}.text-base{font-size:var(--text-base);line-height:1.5}.text-lg{font-size:var(--text-lg);line-height:1.5}.text-sm{font-size:var(--text-sm);line-height:1.5}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:var(--text-xs);line-height:1.5}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-card-foreground{color:hsl(var(--card-foreground))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/80{color:hsl(var(--foreground) / .8)}.text-info{color:hsl(var(--info))}.text-info-foreground{color:hsl(var(--info-foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.text-muted-foreground\/70{color:hsl(var(--muted-foreground) / .7)}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-success{color:hsl(var(--success))}.text-success-foreground{color:hsl(var(--success-foreground))}.text-terminal-fg{color:hsl(var(--terminal-fg))}.text-terminal-fg\/40{color:hsl(var(--terminal-fg) / .4)}.text-terminal-fg\/50{color:hsl(var(--terminal-fg) / .5)}.text-terminal-fg\/70{color:hsl(var(--terminal-fg) / .7)}.text-warning{color:hsl(var(--warning))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-80{opacity:.8}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: var(--shadow-lg);--tw-shadow-colored: var(--shadow-lg);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: var(--shadow-md);--tw-shadow-colored: var(--shadow-md);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: var(--shadow-sm);--tw-shadow-colored: var(--shadow-sm);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-warning{--tw-ring-color: hsl(var(--warning))}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,transform\]{transition-property:width,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-none{transition-property:none}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@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))}}@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))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in,.fade-in-0{--tw-enter-opacity: 0}.zoom-in-95{--tw-enter-scale: .95}.slide-in-from-left-1{--tw-enter-translate-x: -.25rem}.duration-200{animation-duration:.2s}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.running{animation-play-state:running}.paused{animation-play-state:paused}.\[appearance\:textfield\]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.dark\:prose-invert:where([data-mode=dark],[data-mode=dark] *){--tw-prose-body: var(--tw-prose-invert-body);--tw-prose-headings: var(--tw-prose-invert-headings);--tw-prose-lead: var(--tw-prose-invert-lead);--tw-prose-links: var(--tw-prose-invert-links);--tw-prose-bold: var(--tw-prose-invert-bold);--tw-prose-counters: var(--tw-prose-invert-counters);--tw-prose-bullets: var(--tw-prose-invert-bullets);--tw-prose-hr: var(--tw-prose-invert-hr);--tw-prose-quotes: var(--tw-prose-invert-quotes);--tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);--tw-prose-captions: var(--tw-prose-invert-captions);--tw-prose-kbd: var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows: var(--tw-prose-invert-kbd-shadows);--tw-prose-code: var(--tw-prose-invert-code);--tw-prose-pre-code: var(--tw-prose-invert-pre-code);--tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);--tw-prose-th-borders: var(--tw-prose-invert-th-borders);--tw-prose-td-borders: var(--tw-prose-invert-td-borders)}.first\:pt-0:first-child{padding-top:0}.last\:pb-0:last-child{padding-bottom:0}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-muted-foreground\/40:hover{border-color:hsl(var(--muted-foreground) / .4)}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary) / .5)}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-muted\/70:hover{background-color:hsl(var(--muted) / .7)}.hover\:bg-primary\/20:hover{background-color:hsl(var(--primary) / .2)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-success\/20:hover{background-color:hsl(var(--success) / .2)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:underline:hover{text-decoration-line:underline}.focus\:border-primary:focus{border-color:hsl(var(--primary))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:-translate-y-0\.5{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-muted-foreground\/30{border-color:hsl(var(--muted-foreground) / .3)}.group:hover .group-hover\:bg-primary\/10{background-color:hsl(var(--primary) / .1)}.group:hover .group-hover\:opacity-100{opacity:1}.group:hover .group-hover\:shadow-md{--tw-shadow: var(--shadow-md);--tw-shadow-colored: var(--shadow-md);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.prose-headings\:scroll-mt-4 :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){scroll-margin-top:1rem}.prose-pre\:m-0 :is(:where(pre):not(:where([class~=not-prose],[class~=not-prose] *))){margin:0}.prose-pre\:bg-transparent :is(:where(pre):not(:where([class~=not-prose],[class~=not-prose] *))){background-color:transparent}.prose-pre\:p-0 :is(:where(pre):not(:where([class~=not-prose],[class~=not-prose] *))){padding:0}@media (min-width: 640px){.sm\:absolute{position:absolute}.sm\:relative{position:relative}.sm\:left-auto{left:auto}.sm\:top-auto{top:auto}.sm\:z-30{z-index:30}.sm\:z-auto{z-index:auto}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:h-full{height:100%}.sm\:w-0{width:0px}.sm\:w-\[var\(--sidebar-w\)\]{width:var(--sidebar-w)}.sm\:max-w-none{max-width:none}.sm\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:border-r{border-right-width:var(--border-width)}.sm\:shadow-lg{--tw-shadow: var(--shadow-lg);--tw-shadow-colored: var(--shadow-lg);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.sm\:shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media (min-width: 768px){.md\:flex{display:flex}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 1024px){.lg\:w-72{width:18rem}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:overflow-hidden{overflow:hidden}.lg\:overflow-y-auto{overflow-y:auto}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:var(--border-width)}}@media (min-width: 1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}@font-face{font-family:VT323;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/vt323-latin-400-normal-wDgJuOC9.woff2) format("woff2");size-adjust:135%}[data-theme=pixel]{--success: 134 61% 44%;--success-foreground: 0 0% 100%;--warning: 30 50% 40%;--warning-foreground: 0 0% 100%;--info: 199 64% 54%;--info-foreground: 0 0% 100%;--background: 240 21% 96%;--foreground: 240 21% 11%;--card: 240 21% 96%;--card-foreground: 240 21% 11%;--popover: 240 21% 96%;--popover-foreground: 240 21% 11%;--primary: 16 77% 61%;--primary-foreground: 0 0% 100%;--secondary: 250 30% 80%;--secondary-foreground: 240 21% 11%;--muted: 250 30% 80%;--muted-foreground: 220 14% 40%;--accent: 250 30% 80%;--accent-foreground: 240 21% 11%;--destructive: 0 60% 50%;--destructive-foreground: 0 0% 100%;--border: 240 15% 70%;--input: 240 15% 70%;--ring: 16 77% 61%;--radius-sm: 0px;--radius-md: 0px;--radius-lg: 0px;--radius-xl: 0px;--radius-full: 0px;--radius: 0px;--shadow-sm: none;--shadow-md: none;--shadow-lg: none;--border-width: 2px;--font-mono: "VT323", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--text-xs: .85rem;--text-sm: 1rem;--text-base: 1.15rem;--text-lg: 1.3rem;--topbar-h: 52px;--statusbar-h: 28px;--chip-h: 19px;--icon-rail-w: 48px}[data-theme=pixel][data-mode=dark]{--success: 134 61% 44%;--success-foreground: 0 0% 100%;--warning: 30 50% 40%;--warning-foreground: 0 0% 100%;--info: 199 64% 54%;--info-foreground: 0 0% 100%;--background: 240 21% 11%;--foreground: 0 0% 95%;--card: 240 25% 15%;--card-foreground: 0 0% 95%;--popover: 240 25% 15%;--popover-foreground: 0 0% 95%;--primary: 16 77% 61%;--primary-foreground: 0 0% 100%;--secondary: 250 30% 26%;--secondary-foreground: 0 0% 95%;--muted: 250 30% 26%;--muted-foreground: 220 14% 60%;--accent: 250 30% 26%;--accent-foreground: 0 0% 95%;--destructive: 0 60% 50%;--destructive-foreground: 0 0% 100%;--border: 240 25% 26%;--input: 240 25% 26%;--ring: 16 77% 61%;--radius-sm: 0px;--radius-md: 0px;--radius-lg: 0px;--radius-xl: 0px;--radius-full: 0px;--radius: 0px;--shadow-sm: none;--shadow-md: none;--shadow-lg: none;--border-width: 2px;--font-mono: "VT323", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--text-xs: .85rem;--text-sm: 1rem;--text-base: 1.15rem;--text-lg: 1.3rem;--topbar-h: 52px;--statusbar-h: 28px;--chip-h: 19px;--icon-rail-w: 48px}[data-theme=pixel] .dot-grid{background-size:12px 12px;background-image:radial-gradient(circle at 1px 1px,hsl(var(--border)) 1.2px,transparent 0)}[data-theme=slate]{--terminal-bg: 222 47% 11%;--terminal-fg: 210 40% 96%;--success: 142 76% 36%;--success-foreground: 0 0% 100%;--warning: 32 95% 44%;--warning-foreground: 0 0% 100%;--info: 199 89% 48%;--info-foreground: 0 0% 100%;--background: 210 40% 98%;--foreground: 222 47% 11%;--card: 210 40% 98%;--card-foreground: 222 47% 11%;--popover: 210 40% 98%;--popover-foreground: 222 47% 11%;--primary: 217 91% 60%;--primary-foreground: 0 0% 100%;--secondary: 210 40% 96%;--secondary-foreground: 222 47% 11%;--muted: 210 40% 96%;--muted-foreground: 215 16% 47%;--accent: 210 40% 96%;--accent-foreground: 222 47% 11%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 0 0% 100%;--border: 214 32% 91%;--input: 214 32% 91%;--ring: 217 91% 60%;--text-xs: .8rem;--text-sm: .95rem;--text-base: 1.1rem;--text-lg: 1.25rem;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--border-width: 1px;--radius: 8px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1)}[data-theme=slate][data-mode=dark]{--terminal-bg: 222 84% 5%;--terminal-fg: 210 40% 98%;--success: 134 61% 64%;--success-foreground: 0 0% 100%;--warning: 38 92% 50%;--warning-foreground: 0 0% 100%;--info: 199 89% 48%;--info-foreground: 0 0% 100%;--background: 222 47% 11%;--foreground: 210 40% 98%;--card: 222 47% 11%;--card-foreground: 210 40% 98%;--popover: 222 47% 11%;--popover-foreground: 210 40% 98%;--primary: 213 94% 68%;--primary-foreground: 222 47% 11%;--secondary: 217 33% 17%;--secondary-foreground: 210 40% 98%;--muted: 217 33% 17%;--muted-foreground: 215 20% 65%;--accent: 217 33% 17%;--accent-foreground: 210 40% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 0 0% 100%;--border: 217 33% 17%;--input: 217 33% 17%;--ring: 213 94% 68%;--text-xs: .8rem;--text-sm: .95rem;--text-base: 1.1rem;--text-lg: 1.25rem;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--border-width: 1px;--radius: 8px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1)}