zdashboard 2.1.0 → 2.2.0

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.
@@ -0,0 +1,31 @@
1
+ import{c as g,r as n,u as D,j as e,_ as I}from"./index-15cLfCw4.js";import{r as P,a as L,b as U,c as F,d as V,e as W,f as X}from"./katex.min-D_D1u30F.js";import{M as q,r as B}from"./index-6FGn10zY.js";/**
2
+ * @license lucide-react v0.460.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const _=g("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/**
7
+ * @license lucide-react v0.460.0 - ISC
8
+ *
9
+ * This source code is licensed under the ISC license.
10
+ * See the LICENSE file in the root directory of this source tree.
11
+ */const G=g("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/**
12
+ * @license lucide-react v0.460.0 - ISC
13
+ *
14
+ * This source code is licensed under the ISC license.
15
+ * See the LICENSE file in the root directory of this source tree.
16
+ */const H=g("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/**
17
+ * @license lucide-react v0.460.0 - ISC
18
+ *
19
+ * This source code is licensed under the ISC license.
20
+ * See the LICENSE file in the root directory of this source tree.
21
+ */const J=g("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);/**
22
+ * @license lucide-react v0.460.0 - ISC
23
+ *
24
+ * This source code is licensed under the ISC license.
25
+ * See the LICENSE file in the root directory of this source tree.
26
+ */const K=g("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/**
27
+ * @license lucide-react v0.460.0 - ISC
28
+ *
29
+ * This source code is licensed under the ISC license.
30
+ * See the LICENSE file in the root directory of this source tree.
31
+ */const C=g("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),Y={draft:"bg-zinc-500 text-white",reviewing:"bg-amber-500 text-white",passed:"bg-emerald-600 text-white",rejected:"bg-red-500 text-white"},Q={draft:"草案",reviewing:"评审中",passed:"已通过",rejected:"未通过"},Z=[{key:"all",label:"全部"},{key:"open",label:"待处理"},{key:"answered",label:"已答复"},{key:"accepted",label:"已采纳"},{key:"dismissed",label:"已驳回"}],T={high:"bg-red-500",medium:"bg-amber-500",low:"bg-sky-500"},ee={high:"高",medium:"中",low:"低"},E={open:"bg-red-500/15 text-red-600 dark:text-red-400 border-red-500/30",answered:"bg-sky-500/15 text-sky-600 dark:text-sky-400 border-sky-500/30",accepted:"bg-emerald-500/15 text-emerald-600 dark:text-emerald-400 border-emerald-500/30",dismissed:"bg-muted text-muted-foreground border-border"},M={open:"待处理",answered:"已答复",accepted:"已采纳",dismissed:"已驳回"};function te({children:t}){const d=n.useRef(null),[m,o]=n.useState(!1),i=async()=>{var r;const x=((r=d.current)==null?void 0:r.innerText)??"";try{await navigator.clipboard.writeText(x),o(!0),setTimeout(()=>o(!1),1500)}catch(c){console.error("[zdashboard] clipboard copy failed:",c)}};return e.jsxs("div",{className:"not-prose relative my-4 group",children:[e.jsx("button",{onClick:i,className:"absolute right-2 top-2 z-10 px-2 py-0.5 rounded border border-border bg-background/80 text-[11px] opacity-0 group-hover:opacity-100 transition-opacity",children:m?"已复制":"复制"}),e.jsx("pre",{ref:d,className:"overflow-auto rounded-md border bg-[#0d1117] p-3 text-xs leading-relaxed",children:t})]})}function se({path:t}){const[d,m]=n.useState(null);if(n.useEffect(()=>{let r=!0;return fetch("/"+encodeURI(t),{cache:"no-store"}).then(c=>c.text()).then(c=>{r&&m(c)}).catch(()=>{r&&m("")}),()=>{r=!1}},[t]),d===null)return e.jsx("p",{className:"p-3 text-xs text-muted-foreground",children:"加载中…"});const o=d.match(/^---\n([\s\S]*?)\n---\n?/),i=(o==null?void 0:o[1])??null,x=i?d.slice(o[0].length):d;return e.jsxs("div",{className:"prose dark:prose-invert mx-auto max-w-3xl p-8 prose-headings:scroll-mt-4 prose-pre:bg-transparent prose-pre:p-0 prose-pre:m-0",children:[i&&e.jsxs("details",{className:"not-prose mb-4 rounded border p-3 text-sm",children:[e.jsx("summary",{className:"cursor-pointer font-medium",children:"YAML frontmatter"}),e.jsx("pre",{className:"mt-2 whitespace-pre-wrap text-xs",children:i})]}),e.jsx(q,{remarkPlugins:[B,W,X],rehypePlugins:[P,L,[U,{behavior:"wrap",properties:{className:["no-underline"]}}],[F,{detect:!0,ignoreMissing:!0}],[V,{strict:!1}]],components:{pre:({children:r})=>e.jsx(te,{children:r}),a:({href:r,children:c})=>{const h=r==null?void 0:r.startsWith("http");return e.jsx("a",{href:r,target:h?"_blank":void 0,rel:h?"noreferrer noopener":void 0,children:c})}},children:x})]})}function re({item:t,token:d,onUpdated:m}){const[o,i]=n.useState(t.answer??"");n.useEffect(()=>i(t.answer??""),[t.id,t.answer]);const x=async p=>{const b=await fetch("/__review/item",{method:"POST",headers:{"x-stop-token":d,"Content-Type":"application/json"},body:JSON.stringify({id:t.id,...p})});b.ok&&m(await b.json())},r=p=>p==="open"?{state:p,answer:o}:p==="answered"?{state:p,answer:o}:{state:p,answer:o||t.answer},c=t.state==="accepted"||t.state==="dismissed",h=c?t.state==="accepted"?"已采纳 — 可撤销后重新处理":"已驳回 — 可撤销后重新处理":t.state==="open"?"答复后可采纳或驳回,或直接采纳/驳回":"确认答复后采纳,或驳回 / 撤销";return e.jsxs("div",{className:"rounded-lg border bg-background shadow-sm overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-2 px-3 pt-2.5 text-[11px] text-muted-foreground",children:[t.severity&&e.jsx("span",{className:`h-2 w-2 rounded-full ${T[t.severity]??"bg-muted-foreground"}`}),e.jsx("span",{className:"font-medium",children:t.category??"通用"}),t.severity&&e.jsx("span",{children:ee[t.severity]??t.severity}),e.jsx("span",{className:`ml-auto px-1.5 py-0.5 rounded border text-[10px] font-medium ${E[t.state]??""}`,children:M[t.state]})]}),e.jsx("p",{className:"px-3 py-2 text-sm leading-relaxed",children:t.question}),e.jsxs("div",{className:"px-3 pb-3 flex flex-col gap-2",children:[e.jsx("textarea",{value:o,onChange:p=>i(p.target.value),placeholder:"答复 / 补充说明…",rows:2,className:"w-full rounded border border-border bg-background px-2 py-1.5 text-xs focus:outline-none focus:border-primary resize-y"}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[t.state==="accepted"?e.jsxs("span",{className:"inline-flex items-center gap-1 h-7 px-2.5 rounded bg-emerald-500/15 text-emerald-600 dark:text-emerald-400 text-xs font-medium",children:[e.jsx(_,{className:"h-3 w-3"}),"已采纳"]}):t.state==="dismissed"?e.jsxs("span",{className:"inline-flex items-center gap-1 h-7 px-2.5 rounded bg-muted text-muted-foreground text-xs font-medium",children:[e.jsx(C,{className:"h-3 w-3"}),"已驳回"]}):e.jsxs(e.Fragment,{children:[e.jsxs("button",{onClick:()=>x(r("answered")),className:"inline-flex items-center gap-1 h-7 px-2.5 rounded bg-sky-600 hover:bg-sky-500 text-white text-xs",children:[e.jsx(K,{className:"h-3 w-3"}),t.state==="answered"?"更新答复":"答复"]}),e.jsxs("button",{onClick:()=>x(r("accepted")),className:"inline-flex items-center gap-1 h-7 px-2.5 rounded bg-emerald-600 hover:bg-emerald-500 text-white text-xs",children:[e.jsx(_,{className:"h-3 w-3"}),"采纳"]}),e.jsxs("button",{onClick:()=>x(r("dismissed")),className:"inline-flex items-center gap-1 h-7 px-2.5 rounded bg-muted hover:bg-muted/70 text-xs",children:[e.jsx(C,{className:"h-3 w-3"}),"驳回"]})]}),c&&e.jsxs("button",{onClick:()=>x(r("open")),className:"inline-flex items-center gap-1 h-7 px-2.5 rounded bg-muted hover:bg-muted/70 text-xs",children:[e.jsx(J,{className:"h-3 w-3"}),"撤销"]}),e.jsx("span",{className:"ml-auto text-[10px] text-muted-foreground",children:h})]})]})]})}function ae(){const[t,d]=n.useState(null),[m,o]=n.useState([]),[i,x]=n.useState(null),[r,c]=n.useState(null),[h,p]=n.useState(""),[b,R]=n.useState("all"),[j,y]=n.useState(!0),[v,k]=n.useState("");n.useRef(!1);const N=()=>{fetch("/__review",{cache:"no-store"}).then(s=>s.json()).then(d),fetch("/__docs",{cache:"no-store"}).then(s=>s.json()).then(s=>{o(s),x(a=>a&&s.includes(a)?a:s[0]??null)})};n.useEffect(()=>{N(),fetch("/__config").then(s=>s.json()).then(s=>p(s.stopToken??""))},[]),D(()=>{},N);const u={all:0,open:0,answered:0,accepted:0,dismissed:0};for(const s of(t==null?void 0:t.items)??[])u.all++,u[s.state]++;const S=n.useMemo(()=>{const s=new Map;for(const l of(t==null?void 0:t.items)??[]){if(b!=="all"&&l.state!==b)continue;const f=l.doc??null;s.has(f)||s.set(f,[]),s.get(f).push(l)}const a=l=>l??"(未关联文档)";return[...s.entries()].sort((l,f)=>a(l[0]).localeCompare(a(f[0]))).map(([l,f])=>({doc:l,label:a(l),items:f.sort((O,$)=>({high:0,medium:1,low:2})[O.severity??"medium"]-{high:0,medium:1,low:2}[$.severity??"medium"])}))},[t,b]),w=((t==null?void 0:t.items)??[]).find(s=>s.id===r)??null,z=s=>{c(s.id),x(s.doc??null)},A=async()=>{k("");const s=await fetch("/__review/status",{method:"POST",headers:{"x-stop-token":h,"Content-Type":"application/json"},body:'{"status":"passed"}'});s.ok?d(await s.json()):k((await s.json()).error??"failed")};return e.jsxs("div",{className:"mx-auto h-full max-w-6xl bg-background border rounded-lg shadow-sm overflow-hidden flex",children:[e.jsxs("aside",{className:"w-[240px] flex-none border-r bg-background overflow-auto",children:[e.jsx("div",{className:"px-3 pt-3 pb-2 border-b",children:(()=>{const s=u.all,a=s-u.open,l=s===0?0:Math.round(a/s*100);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-center justify-between text-[11px] mb-1.5",children:[e.jsx("span",{className:"text-muted-foreground",children:"处理进度"}),e.jsxs("span",{className:"font-mono",children:[a,"/",s," · ",l,"%"]})]}),e.jsx("div",{className:`h-1.5 rounded-full bg-muted overflow-hidden ${u.open>0,""}`,children:e.jsx("div",{className:"h-full rounded-full bg-emerald-500 transition-all",style:{width:`${l}%`}})})]})})()}),e.jsx("div",{className:"px-3 pt-2 pb-1.5 flex flex-wrap gap-1",children:Z.map(s=>e.jsxs("button",{onClick:()=>R(s.key),className:`px-1.5 py-0.5 rounded text-[11px] border ${b===s.key?"bg-primary text-primary-foreground border-primary":"border-border hover:bg-muted text-muted-foreground"}`,children:[s.label," ",u[s.key]]},s.key))}),e.jsx("div",{className:"px-3 pb-1 text-[11px] font-semibold uppercase tracking-wide text-muted-foreground",children:"文档 · 评审项"}),S.length===0&&e.jsx("p",{className:"px-3 py-2 text-xs text-muted-foreground",children:"无评审项"}),S.map(s=>e.jsxs("div",{children:[e.jsxs("div",{className:"px-3 py-1 text-[11px] font-medium text-muted-foreground flex items-center gap-1.5",children:[e.jsx("span",{className:"truncate",children:s.label}),e.jsx("span",{className:"ml-auto font-mono text-[10px]",children:s.items.length})]}),s.items.map(a=>e.jsxs("button",{onClick:()=>z(a),className:`w-full text-left px-3 py-1.5 text-xs border-l-2 flex items-center gap-1.5 hover:bg-muted ${r===a.id?"bg-muted font-medium border-primary":"border-transparent text-muted-foreground"}`,children:[a.severity&&e.jsx("span",{className:`h-1.5 w-1.5 rounded-full shrink-0 ${T[a.severity]??""}`}),e.jsx("span",{className:"truncate",children:a.question}),e.jsx("span",{className:`ml-auto shrink-0 text-[9px] px-1 rounded ${E[a.state]??""}`,children:M[a.state]})]},a.id))]},s.doc??"(none)"))]}),e.jsxs("div",{className:"flex-1 min-h-0 flex flex-col",children:[e.jsxs("div",{className:"flex-none flex items-center gap-2 px-3.5 border-b bg-background",children:[t&&e.jsx("span",{className:`px-2 py-0.5 rounded text-[11px] font-medium ${Y[t.status]??""}`,children:Q[t.status]??t.status}),u.open>0&&e.jsxs("span",{className:"text-[11px] text-muted-foreground",children:["还有 ",u.open," 项待处理"]}),e.jsx("button",{onClick:A,disabled:!t||t.status==="passed"||u.open>0,className:"ml-auto h-7 px-3 rounded bg-emerald-600 hover:bg-emerald-500 disabled:opacity-50 disabled:cursor-not-allowed text-white text-xs",children:"通过"})]}),v&&e.jsx("div",{className:"bg-red-500/10 text-red-600 dark:text-red-400 text-xs px-3.5 py-1.5 border-b border-red-500/20",children:v}),e.jsxs("div",{className:"flex-1 min-h-0 flex flex-col",children:[j&&e.jsxs("div",{className:"flex-1 min-h-0 overflow-auto border-b bg-background relative",children:[e.jsx("button",{onClick:()=>y(!1),title:"收起文档",className:"absolute right-2 top-2 z-10 h-6 px-2 rounded border border-border bg-background/80 text-xs hover:bg-muted",children:e.jsx(G,{className:"h-3.5 w-3.5"})}),i?e.jsx(se,{path:i}):e.jsx("p",{className:"p-6 text-sm text-muted-foreground",children:"在左侧选择评审项"})]}),e.jsxs("div",{className:j?"flex-none h-[42%] border-b overflow-auto p-3 flex flex-col gap-3":"flex-1 min-h-0 overflow-auto p-3 flex flex-col gap-3",style:j?void 0:{backgroundImage:"radial-gradient(circle at 1px 1px, hsl(var(--border)) 1px, transparent 0)",backgroundSize:"20px 20px"},children:[!j&&e.jsxs("button",{onClick:()=>y(!0),title:"展开文档",className:"self-start inline-flex items-center gap-1 h-6 px-2 rounded border border-border bg-background text-xs hover:bg-muted",children:[e.jsx(H,{className:"h-3.5 w-3.5"}),"展开文档"]}),w?e.jsx(re,{item:w,token:h,onUpdated:d},w.id):e.jsx("p",{className:"text-xs text-muted-foreground text-center pt-6",children:"在左侧选择一个评审项"})]})]})]})]})}function ne(){return e.jsx(ae,{})}const oe=Object.freeze(Object.defineProperty({__proto__:null,default:ne},Symbol.toStringTag,{value:"Module"})),ie={mode:"review",label:"文档评审",icon:"✅",description:"评审项状态流转 · zreview",Workspace:n.lazy(()=>I(()=>Promise.resolve().then(()=>oe),void 0))};export{ne as ReviewWorkspace,ie as default};
@@ -1,4 +1,4 @@
1
- import{c as x,r as l,j as e,B as p,_ as h}from"./index-DkOVCCZ3.js";/**
1
+ import{c as x,r as l,j as e,B as p,_ as h}from"./index-15cLfCw4.js";/**
2
2
  * @license lucide-react v0.460.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Workspace-D96dCoOA.js","assets/index-15cLfCw4.js","assets/index-CYqm3unP.css"])))=>i.map(i=>d[i]);
2
+ import{r as o,_ as t}from"./index-15cLfCw4.js";const a={mode:"stats",label:"项目统计",icon:"📊",description:"项目文件统计 · 扫描生成",Workspace:o.lazy(()=>t(()=>import("./Workspace-D96dCoOA.js"),__vite__mapDeps([0,1,2])))};export{a as default};
@@ -0,0 +1,32 @@
1
+ import{c as O,r as E,a as j,j as _,B as N,_ as ie}from"./index-15cLfCw4.js";/**
2
+ * @license lucide-react v0.460.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const ue=O("Eraser",[["path",{d:"m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21",key:"182aya"}],["path",{d:"M22 21H7",key:"t4ddhn"}],["path",{d:"m5 11 9 9",key:"1mo9qw"}]]);/**
7
+ * @license lucide-react v0.460.0 - ISC
8
+ *
9
+ * This source code is licensed under the ISC license.
10
+ * See the LICENSE file in the root directory of this source tree.
11
+ */const oe=O("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);/**
12
+ * @license lucide-react v0.460.0 - ISC
13
+ *
14
+ * This source code is licensed under the ISC license.
15
+ * See the LICENSE file in the root directory of this source tree.
16
+ */const ae=O("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);/**
17
+ * @license lucide-react v0.460.0 - ISC
18
+ *
19
+ * This source code is licensed under the ISC license.
20
+ * See the LICENSE file in the root directory of this source tree.
21
+ */const J=O("RotateCw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]);/**
22
+ * @license lucide-react v0.460.0 - ISC
23
+ *
24
+ * This source code is licensed under the ISC license.
25
+ * See the LICENSE file in the root directory of this source tree.
26
+ */const W=O("Square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);var re={};const z=[[{color:"0, 0, 0",class:"ansi-black"},{color:"187, 0, 0",class:"ansi-red"},{color:"0, 187, 0",class:"ansi-green"},{color:"187, 187, 0",class:"ansi-yellow"},{color:"0, 0, 187",class:"ansi-blue"},{color:"187, 0, 187",class:"ansi-magenta"},{color:"0, 187, 187",class:"ansi-cyan"},{color:"255,255,255",class:"ansi-white"}],[{color:"85, 85, 85",class:"ansi-bright-black"},{color:"255, 85, 85",class:"ansi-bright-red"},{color:"0, 255, 0",class:"ansi-bright-green"},{color:"255, 255, 85",class:"ansi-bright-yellow"},{color:"85, 85, 255",class:"ansi-bright-blue"},{color:"255, 85, 255",class:"ansi-bright-magenta"},{color:"85, 255, 255",class:"ansi-bright-cyan"},{color:"255, 255, 255",class:"ansi-bright-white"}]],ce=/(https?:\/\/(?:[A-Za-z0-9#;/?:@=+$',_.!~*()[\]-]|&amp;|%[A-Fa-f0-9]{2})+)/gm;class R{static escapeForHtml(e){return new R().escapeForHtml(e)}static linkify(e){return new R().linkify(e)}static ansiToHtml(e,r){return new R().ansiToHtml(e,r)}static ansiToJson(e,r){return new R().ansiToJson(e,r)}static ansiToText(e){return new R().ansiToText(e)}constructor(){this.fg=this.bg=this.fg_truecolor=this.bg_truecolor=null,this.bright=0,this.decorations=[]}setupPalette(){this.PALETTE_COLORS=[];for(let s=0;s<2;++s)for(let l=0;l<8;++l)this.PALETTE_COLORS.push(z[s][l].color);let e=[0,95,135,175,215,255],r=(s,l,u)=>e[s]+", "+e[l]+", "+e[u];for(let s=0;s<6;++s)for(let l=0;l<6;++l)for(let u=0;u<6;++u)this.PALETTE_COLORS.push(r(s,l,u));let n=8;for(let s=0;s<24;++s,n+=10)this.PALETTE_COLORS.push(n+", "+n+", "+n)}escapeForHtml(e){return e.replace(/[&<>\"]/gm,r=>r=="&"?"&amp;":r=='"'?"&quot;":r=="<"?"&lt;":r==">"?"&gt;":"")}linkify(e){return e.replace(ce,r=>`<a href="${r}">${r}</a>`)}ansiToHtml(e,r){return this.process(e,r,!0)}ansiToJson(e,r){return r=r||{},r.json=!0,r.clearLine=!1,this.process(e,r,!0)}ansiToText(e){return this.process(e,{},!1)}process(e,r,n){let s=this,l=e.split(/\033\[/),u=l.shift();r==null&&(r={}),r.clearLine=/\r/.test(e);let o=l.map(c=>this.processChunk(c,r,n));if(r&&r.json){let c=s.processChunkJson("");return c.content=u,c.clearLine=r.clearLine,o.unshift(c),r.remove_empty&&(o=o.filter(i=>!i.isEmpty())),o}else o.unshift(u);return o.join("")}processChunkJson(e,r,n){r=typeof r>"u"?{}:r;let s=r.use_classes=typeof r.use_classes<"u"&&r.use_classes,l=r.key=s?"class":"color",u={content:e,fg:null,bg:null,fg_truecolor:null,bg_truecolor:null,isInverted:!1,clearLine:r.clearLine,decoration:null,decorations:[],was_processed:!1,isEmpty:()=>!u.content},o=e.match(/^([!\x3c-\x3f]*)([\d;]*)([\x20-\x2c]*[\x40-\x7e])([\s\S]*)/m);if(!o)return u;u.content=o[4];let c=o[2].split(";");if(o[1]!==""||o[3]!=="m"||!n)return u;let i=this;for(;c.length>0;){let g=c.shift(),a=parseInt(g);if(isNaN(a)||a===0)i.fg=i.bg=null,i.decorations=[];else if(a===1)i.decorations.push("bold");else if(a===2)i.decorations.push("dim");else if(a===3)i.decorations.push("italic");else if(a===4)i.decorations.push("underline");else if(a===5)i.decorations.push("blink");else if(a===7)i.decorations.push("reverse");else if(a===8)i.decorations.push("hidden");else if(a===9)i.decorations.push("strikethrough");else if(a===21)i.removeDecoration("bold");else if(a===22)i.removeDecoration("bold"),i.removeDecoration("dim");else if(a===23)i.removeDecoration("italic");else if(a===24)i.removeDecoration("underline");else if(a===25)i.removeDecoration("blink");else if(a===27)i.removeDecoration("reverse");else if(a===28)i.removeDecoration("hidden");else if(a===29)i.removeDecoration("strikethrough");else if(a===39)i.fg=null;else if(a===49)i.bg=null;else if(a>=30&&a<38)i.fg=z[0][a%10][l];else if(a>=90&&a<98)i.fg=z[1][a%10][l];else if(a>=40&&a<48)i.bg=z[0][a%10][l];else if(a>=100&&a<108)i.bg=z[1][a%10][l];else if(a===38||a===48){let D=a===38;if(c.length>=1){let b=c.shift();if(b==="5"&&c.length>=1){let F=parseInt(c.shift());if(F>=0&&F<=255)if(!s)this.PALETTE_COLORS||i.setupPalette(),D?i.fg=this.PALETTE_COLORS[F]:i.bg=this.PALETTE_COLORS[F];else{let m=F>=16?"ansi-palette-"+F:z[F>7?1:0][F%8].class;D?i.fg=m:i.bg=m}}else if(b==="2"&&c.length>=3){let F=parseInt(c.shift()),m=parseInt(c.shift()),k=parseInt(c.shift());if(F>=0&&F<=255&&m>=0&&m<=255&&k>=0&&k<=255){let w=F+", "+m+", "+k;s?D?(i.fg="ansi-truecolor",i.fg_truecolor=w):(i.bg="ansi-truecolor",i.bg_truecolor=w):D?i.fg=w:i.bg=w}}}}}return i.fg===null&&i.bg===null&&i.decorations.length===0||(u.fg=i.fg,u.bg=i.bg,u.fg_truecolor=i.fg_truecolor,u.bg_truecolor=i.bg_truecolor,u.decorations=i.decorations,u.decoration=i.decorations.slice(-1).pop()||null,u.was_processed=!0),u}processChunk(e,r,n){r=r||{};let s=this.processChunkJson(e,r,n),l=r.use_classes;if(s.decorations=s.decorations.filter(a=>{if(a==="reverse"){s.fg||(s.fg=z[0][7][l?"class":"color"]),s.bg||(s.bg=z[0][0][l?"class":"color"]);let D=s.fg;s.fg=s.bg,s.bg=D;let b=s.fg_truecolor;return s.fg_truecolor=s.bg_truecolor,s.bg_truecolor=b,s.isInverted=!0,!1}return!0}),r.json)return s;if(s.isEmpty())return"";if(!s.was_processed)return s.content;let u=[],o=[],c=[],i={},g=a=>{let D=[],b;for(b in a)a.hasOwnProperty(b)&&D.push("data-"+b+'="'+this.escapeForHtml(a[b])+'"');return D.length>0?" "+D.join(" "):""};return s.isInverted&&(i["ansi-is-inverted"]="true"),s.fg&&(l?(u.push(s.fg+"-fg"),s.fg_truecolor!==null&&(i["ansi-truecolor-fg"]=s.fg_truecolor,s.fg_truecolor=null)):u.push("color:rgb("+s.fg+")")),s.bg&&(l?(u.push(s.bg+"-bg"),s.bg_truecolor!==null&&(i["ansi-truecolor-bg"]=s.bg_truecolor,s.bg_truecolor=null)):u.push("background-color:rgb("+s.bg+")")),s.decorations.forEach(a=>{if(l){o.push("ansi-"+a);return}a==="bold"?o.push("font-weight:bold"):a==="dim"?o.push("opacity:0.5"):a==="italic"?o.push("font-style:italic"):a==="hidden"?o.push("visibility:hidden"):a==="strikethrough"?c.push("line-through"):c.push(a)}),c.length&&o.push("text-decoration:"+c.join(" ")),l?'<span class="'+u.concat(o).join(" ")+'"'+g(i)+">"+s.content+"</span>":'<span style="'+u.concat(o).join(";")+'"'+g(i)+">"+s.content+"</span>"}removeDecoration(e){const r=this.decorations.indexOf(e);r>=0&&this.decorations.splice(r,1)}}var le=R,S={exports:{}};function M(t){if(!t)return"";if(!/\r/.test(t))return t;for(t=t.replace(/\r+\n/gm,`
27
+ `);/\r./.test(t);)t=t.replace(/^([^\r\n]*)\r+([^\r\n]+)/gm,function(e,r,n){return n+r.slice(n.length)});return t}function _e(t){for(var e=0,r=0;r<t.length;r++)t[e].length<=t[r].length&&(e=r);return e}function H(t){if(!/\r/.test(t))return t;for(var e=t.split("\r"),r=[];e.length>0;){var n=_e(e);r.push(e[n]),e=e.slice(n+1)}return r.join("\r")}function he(t){if(!t)return"";if(!/\r/.test(t))return t;if(!/\n/.test(t))return H(t);t=t.replace(/\r+\n/gm,`
28
+ `);var e=t.lastIndexOf(`
29
+ `);return M(t.slice(0,e))+`
30
+ `+H(t.slice(e+1))}S.exports=M;S.exports.escapeCarriageReturn=M;S.exports.escapeCarriageReturnSafe=he;var fe=S.exports,L,G;function de(){return G||(G=1,L=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/),L}var P,V;function pe(){return V||(V=1,P=/[\0-\x1F\x7F-\x9F]/),P}var T,U;function ge(){return U||(U=1,T=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/),T}var I,K;function me(){return K||(K=1,I=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/),I}var Z,Q;function xe(){return Q||(Q=1,Z=function(t){var e={};e.src_Any=de().source,e.src_Cc=pe().source,e.src_Z=ge().source,e.src_P=me().source,e.src_ZPCc=[e.src_Z,e.src_P,e.src_Cc].join("|"),e.src_ZCc=[e.src_Z,e.src_Cc].join("|");var r="[><|]";return e.src_pseudo_letter="(?:(?!"+r+"|"+e.src_ZPCc+")"+e.src_Any+")",e.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",e.src_auth="(?:(?:(?!"+e.src_ZCc+"|[@/\\[\\]()]).)+@)?",e.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",e.src_host_terminator="(?=$|"+r+"|"+e.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+e.src_ZPCc+"))",e.src_path="(?:[/?#](?:(?!"+e.src_ZCc+"|"+r+`|[()[\\]{}.,"'?!\\-;]).|\\[(?:(?!`+e.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+e.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+e.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+e.src_ZCc+`|["]).)+\\"|\\'(?:(?!`+e.src_ZCc+"|[']).)+\\'|\\'(?="+e.src_pseudo_letter+"|[-]).|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+e.src_ZCc+"|[.]).|"+(t&&t["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+e.src_ZCc+").|;(?!"+e.src_ZCc+").|\\!+(?!"+e.src_ZCc+"|[!]).|\\?(?!"+e.src_ZCc+"|[?]).)+|\\/)?",e.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',e.src_xn="xn--[a-z0-9\\-]{1,59}",e.src_domain_root="(?:"+e.src_xn+"|"+e.src_pseudo_letter+"{1,63})",e.src_domain="(?:"+e.src_xn+"|(?:"+e.src_pseudo_letter+")|(?:"+e.src_pseudo_letter+"(?:-|"+e.src_pseudo_letter+"){0,61}"+e.src_pseudo_letter+"))",e.src_host="(?:(?:(?:(?:"+e.src_domain+")\\.)*"+e.src_domain+"))",e.tpl_host_fuzzy="(?:"+e.src_ip4+"|(?:(?:(?:"+e.src_domain+")\\.)+(?:%TLDS%)))",e.tpl_host_no_ip_fuzzy="(?:(?:(?:"+e.src_domain+")\\.)+(?:%TLDS%))",e.src_host_strict=e.src_host+e.src_host_terminator,e.tpl_host_fuzzy_strict=e.tpl_host_fuzzy+e.src_host_terminator,e.src_host_port_strict=e.src_host+e.src_port+e.src_host_terminator,e.tpl_host_port_fuzzy_strict=e.tpl_host_fuzzy+e.src_port+e.src_host_terminator,e.tpl_host_port_no_ip_fuzzy_strict=e.tpl_host_no_ip_fuzzy+e.src_port+e.src_host_terminator,e.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+e.src_ZPCc+"|>|$))",e.tpl_email_fuzzy="(^|"+r+'|"|\\(|'+e.src_ZCc+")("+e.src_email_name+"@"+e.tpl_host_fuzzy_strict+")",e.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+e.src_ZPCc+"))((?![$+<=>^`||])"+e.tpl_host_port_fuzzy_strict+e.src_path+")",e.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+e.src_ZPCc+"))((?![$+<=>^`||])"+e.tpl_host_port_no_ip_fuzzy_strict+e.src_path+")",e}),Z}function q(t){var e=Array.prototype.slice.call(arguments,1);return e.forEach(function(r){r&&Object.keys(r).forEach(function(n){t[n]=r[n]})}),t}function B(t){return Object.prototype.toString.call(t)}function De(t){return B(t)==="[object String]"}function Fe(t){return B(t)==="[object Object]"}function be(t){return B(t)==="[object RegExp]"}function X(t){return B(t)==="[object Function]"}function ye(t){return t.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var se={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};function ve(t){return Object.keys(t||{}).reduce(function(e,r){return e||se.hasOwnProperty(r)},!1)}var Ee={"http:":{validate:function(t,e,r){var n=t.slice(e);return r.re.http||(r.re.http=new RegExp("^\\/\\/"+r.re.src_auth+r.re.src_host_port_strict+r.re.src_path,"i")),r.re.http.test(n)?n.match(r.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(t,e,r){var n=t.slice(e);return r.re.no_http||(r.re.no_http=new RegExp("^"+r.re.src_auth+"(?:localhost|(?:(?:"+r.re.src_domain+")\\.)+"+r.re.src_domain_root+")"+r.re.src_port+r.re.src_host_terminator+r.re.src_path,"i")),r.re.no_http.test(n)?e>=3&&t[e-3]===":"||e>=3&&t[e-3]==="/"?0:n.match(r.re.no_http)[0].length:0}},"mailto:":{validate:function(t,e,r){var n=t.slice(e);return r.re.mailto||(r.re.mailto=new RegExp("^"+r.re.src_email_name+"@"+r.re.src_host_strict,"i")),r.re.mailto.test(n)?n.match(r.re.mailto)[0].length:0}}},Ce="a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]",ze="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function Ae(t){t.__index__=-1,t.__text_cache__=""}function je(t){return function(e,r){var n=e.slice(r);return t.test(n)?n.match(t)[0].length:0}}function Y(){return function(t,e){e.normalize(t)}}function $(t){var e=t.re=xe()(t.__opts__),r=t.__tlds__.slice();t.onCompile(),t.__tlds_replaced__||r.push(Ce),r.push(e.src_xn),e.src_tlds=r.join("|");function n(o){return o.replace("%TLDS%",e.src_tlds)}e.email_fuzzy=RegExp(n(e.tpl_email_fuzzy),"i"),e.link_fuzzy=RegExp(n(e.tpl_link_fuzzy),"i"),e.link_no_ip_fuzzy=RegExp(n(e.tpl_link_no_ip_fuzzy),"i"),e.host_fuzzy_test=RegExp(n(e.tpl_host_fuzzy_test),"i");var s=[];t.__compiled__={};function l(o,c){throw new Error('(LinkifyIt) Invalid schema "'+o+'": '+c)}Object.keys(t.__schemas__).forEach(function(o){var c=t.__schemas__[o];if(c!==null){var i={validate:null,link:null};if(t.__compiled__[o]=i,Fe(c)){be(c.validate)?i.validate=je(c.validate):X(c.validate)?i.validate=c.validate:l(o,c),X(c.normalize)?i.normalize=c.normalize:c.normalize?l(o,c):i.normalize=Y();return}if(De(c)){s.push(o);return}l(o,c)}}),s.forEach(function(o){t.__compiled__[t.__schemas__[o]]&&(t.__compiled__[o].validate=t.__compiled__[t.__schemas__[o]].validate,t.__compiled__[o].normalize=t.__compiled__[t.__schemas__[o]].normalize)}),t.__compiled__[""]={validate:null,normalize:Y()};var u=Object.keys(t.__compiled__).filter(function(o){return o.length>0&&t.__compiled__[o]}).map(ye).join("|");t.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+e.src_ZPCc+"))("+u+")","i"),t.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+e.src_ZPCc+"))("+u+")","ig"),t.re.pretest=RegExp("("+t.re.schema_test.source+")|("+t.re.host_fuzzy_test.source+")|@","i"),Ae(t)}function ke(t,e){var r=t.__index__,n=t.__last_index__,s=t.__text_cache__.slice(r,n);this.schema=t.__schema__.toLowerCase(),this.index=r+e,this.lastIndex=n+e,this.raw=s,this.text=s,this.url=s}function ee(t,e){var r=new ke(t,e);return t.__compiled__[r.schema].normalize(r,t),r}function v(t,e){if(!(this instanceof v))return new v(t,e);e||ve(t)&&(e=t,t={}),this.__opts__=q({},se,e),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=q({},Ee,t),this.__compiled__={},this.__tlds__=ze,this.__tlds_replaced__=!1,this.re={},$(this)}v.prototype.add=function(e,r){return this.__schemas__[e]=r,$(this),this};v.prototype.set=function(e){return this.__opts__=q(this.__opts__,e),this};v.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;var r,n,s,l,u,o,c,i,g;if(this.re.schema_test.test(e)){for(c=this.re.schema_search,c.lastIndex=0;(r=c.exec(e))!==null;)if(l=this.testSchemaAt(e,r[2],c.lastIndex),l){this.__schema__=r[2],this.__index__=r.index+r[1].length,this.__last_index__=r.index+r[0].length+l;break}}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(i=e.search(this.re.host_fuzzy_test),i>=0&&(this.__index__<0||i<this.__index__)&&(n=e.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy))!==null&&(u=n.index+n[1].length,(this.__index__<0||u<this.__index__)&&(this.__schema__="",this.__index__=u,this.__last_index__=n.index+n[0].length))),this.__opts__.fuzzyEmail&&this.__compiled__["mailto:"]&&(g=e.indexOf("@"),g>=0&&(s=e.match(this.re.email_fuzzy))!==null&&(u=s.index+s[1].length,o=s.index+s[0].length,(this.__index__<0||u<this.__index__||u===this.__index__&&o>this.__last_index__)&&(this.__schema__="mailto:",this.__index__=u,this.__last_index__=o))),this.__index__>=0};v.prototype.pretest=function(e){return this.re.pretest.test(e)};v.prototype.testSchemaAt=function(e,r,n){return this.__compiled__[r.toLowerCase()]?this.__compiled__[r.toLowerCase()].validate(e,n,this):0};v.prototype.match=function(e){var r=0,n=[];this.__index__>=0&&this.__text_cache__===e&&(n.push(ee(this,r)),r=this.__last_index__);for(var s=r?e.slice(r):e;this.test(s);)n.push(ee(this,r)),s=s.slice(this.__last_index__),r+=this.__last_index__;return n.length?n:null};v.prototype.tlds=function(e,r){return e=Array.isArray(e)?e:[e],r?(this.__tlds__=this.__tlds__.concat(e).sort().filter(function(n,s,l){return n!==l[s-1]}).reverse(),$(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,$(this),this)};v.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),e.schema==="mailto:"&&!/^mailto:/i.test(e.url)&&(e.url="mailto:"+e.url)};v.prototype.onCompile=function(){};var we=v,Re=j&&j.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var s=Object.getOwnPropertyDescriptor(e,r);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,s)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),Ne=j&&j.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Oe=j&&j.__importStar||function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var n=[];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[n.length]=s);return n},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var n=t(e),s=0;s<n.length;s++)n[s]!=="default"&&Re(r,e,n[s]);return Ne(r,e),r}}(),ne=j&&j.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(re,"__esModule",{value:!0});var $e=re.default=Je;const Se=ne(le),Be=fe,Le=ne(we),A=Oe(E);function Pe(t,e=!1){return t=(0,Be.escapeCarriageReturn)(We(t)),Se.default.ansiToJson(t,{json:!0,remove_empty:!0,use_classes:e})}function Te(t){let e="";return t.bg&&(e+=`${t.bg}-bg `),t.fg&&(e+=`${t.fg}-fg `),t.decoration&&(e+=`ansi-${t.decoration} `),e===""?null:(e=e.substring(0,e.length-1),e)}function Ie(t){const e={};switch(t.bg&&(e.backgroundColor=`rgb(${t.bg})`),t.fg&&(e.color=`rgb(${t.fg})`),t.decoration){case"bold":e.fontWeight="bold";break;case"dim":e.opacity="0.5";break;case"italic":e.fontStyle="italic";break;case"hidden":e.visibility="hidden";break;case"strikethrough":e.textDecoration="line-through";break;case"underline":e.textDecoration="underline";break;case"blink":e.textDecoration="blink";break}return e}function Ze(t,e,r,n){const s=e?null:Ie(r),l=e?Te(r):null;return t?t==="fuzzy"?Me(r,n,s,l):qe(r,n,s,l):A.createElement("span",{style:s,key:n,className:l},r.content)}function qe(t,e,r,n){const s=[],l=/(\s|^)(https?:\/\/(?:www\.|(?!www))[^\s.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/g;let u=0,o;for(;(o=l.exec(t.content))!==null;){const[,c,i]=o,g=o.index+c.length;g>u&&s.push(t.content.substring(u,g));const a=i.startsWith("www.")?`http://${i}`:i;s.push(A.createElement("a",{key:u,href:a,target:"_blank"},`${i}`)),u=l.lastIndex}return u<t.content.length&&s.push(t.content.substring(u)),A.createElement("span",{style:r,key:e,className:n},s)}function Me(t,e,r,n){var s;const l=(0,Le.default)({fuzzyEmail:!1}).tlds(["io"],!0);if(!l.pretest(t.content))return A.createElement("span",{style:r,key:e,className:n},t.content);const u=l.match(t.content);if(!u)return A.createElement("span",{style:r,key:e,className:n},t.content);const o=[t.content.substring(0,(s=u[0])===null||s===void 0?void 0:s.index)];return u.forEach((c,i)=>{var g;o.push(A.createElement("a",{href:c.url,target:"_blank",key:i},t.content.substring(c.index,c.lastIndex))),u[i+1]&&o.push(t.content.substring(u[i].lastIndex,(g=u[i+1])===null||g===void 0?void 0:g.index))}),u[u.length-1].lastIndex!==t.content.length&&o.push(t.content.substring(u[u.length-1].lastIndex,t.content.length)),A.createElement("span",{style:r,key:e,className:n},o)}function Je(t){const{className:e,useClasses:r,children:n,linkify:s}=t;return A.createElement("code",{className:e},Pe(n??"",r??!1).map(Ze.bind(null,s??!1,r??!1)))}function We(t){let e=t;do t=e,e=t.replace(/[^\n]\x08/gm,"");while(e.length<t.length);return t}function He(t){return/^\[(ERROR|FATAL)\]/.test(t)||/^ERROR\b/.test(t)?"text-red-400":/^\[(WARN|WARNING)\]/.test(t)||/^WARN(ING)?\b/.test(t)?"text-amber-400":/^\[DEBUG\]/.test(t)||/^DEBUG\b/.test(t)?"text-sky-400":/^\[(INFO|DOWNLOAD|PROGRESS)\]/.test(t)||/^INFO\b/.test(t)?"text-emerald-400":"text-zinc-200"}function te(t){const e=Math.floor(t/1e3);if(e<60)return`${e}s`;const r=Math.floor(e/60);return r<60?`${r}m${e%60}s`:`${Math.floor(r/60)}h${r%60}m`}function Ge(){const[t,e]=E.useState([]),[r,n]=E.useState({}),[s,l]=E.useState({}),[u,o]=E.useState(null),c=E.useRef(""),[,i]=E.useState(0),g=E.useRef(null),a=u?s[u]??[]:[];E.useEffect(()=>{fetch("/__just/recipes",{cache:"no-store"}).then(x=>x.json()).then(e).catch(()=>e([])),fetch("/__config").then(x=>x.json()).then(x=>{c.current=x.stopToken??""}).catch(()=>{});const f=new EventSource("/__just/logs");let h=!0;f.onopen=()=>{if(h){h=!1;return}l({}),n({})},f.onmessage=x=>{try{const p=JSON.parse(x.data);p.type==="log"?l(y=>{const C=[...y[p.recipe]??[],p.text];return{...y,[p.recipe]:C.length>1e3?C.slice(-1e3):C}}):p.type==="clear"?l(y=>({...y,[p.recipe]:[]})):p.type==="state"&&(n(y=>{var C;return{...y,[p.recipe]:{state:p.state,code:p.code,signal:p.signal,startedAt:p.startedAt??((C=y[p.recipe])==null?void 0:C.startedAt)??Date.now()}}}),p.state==="running"&&o(p.recipe))}catch{}},f.onerror=()=>{};const d=setInterval(()=>i(x=>x+1),1e3);return()=>{f.close(),clearInterval(d)}},[]),E.useEffect(()=>{g.current&&(g.current.scrollTop=g.current.scrollHeight)},[a.length,u]);const D=(f,h)=>{fetch(`/__just/${f}`,{method:"POST",headers:{"x-stop-token":c.current,"Content-Type":"application/json"},body:JSON.stringify({recipe:h})}).catch(d=>console.error("[zdashboard] just action failed:",d))},b=t.map(f=>({...f,task:r[f.name]})),F=b.filter(f=>{var h;return((h=f.task)==null?void 0:h.state)==="running"}).length,m=u?r[u]:void 0,k=(m==null?void 0:m.state)==="running",w=(f,h,d)=>f?"bg-emerald-500 animate-pulse":h?d!=null&&d.signal?"bg-muted-foreground":d!=null&&d.code?"bg-red-500":"bg-emerald-500/60":"bg-muted-foreground/30";return _.jsxs("div",{className:"h-full flex flex-col",children:[_.jsxs("div",{className:"flex-none flex items-center gap-1.5 flex-wrap px-3 py-2 border-b bg-background",children:[_.jsxs("button",{onClick:()=>o(null),className:`inline-flex items-center gap-1.5 h-7 px-3 rounded-full border text-xs transition-colors
31
+ ${u===null?"bg-primary text-primary-foreground border-primary":"border-border text-muted-foreground hover:text-foreground"}`,children:[_.jsx(oe,{className:"h-3 w-3"}),"总控台",F>0&&_.jsx("span",{className:"font-mono opacity-80",children:F})]}),t.map(f=>{const h=r[f.name],d=(h==null?void 0:h.state)==="running",x=(h==null?void 0:h.state)==="exited",p=u===f.name;return _.jsxs("button",{onClick:()=>o(f.name),title:f.description||f.name,className:`inline-flex items-center gap-1.5 h-7 px-2.5 rounded-full border text-xs font-mono transition-colors
32
+ ${p?"bg-primary text-primary-foreground border-primary":d?"border-emerald-500/40 bg-emerald-500/10 text-emerald-700 dark:text-emerald-300 hover:bg-emerald-500/20":"border-border text-muted-foreground hover:text-foreground hover:border-muted-foreground/40"}`,children:[_.jsx("span",{className:`h-1.5 w-1.5 rounded-full ${w(d,x,h)}`}),f.name,x&&!p&&_.jsx("span",{className:`text-[10px] ${h.signal?"opacity-60":h.code?"text-red-500":"text-emerald-600 dark:text-emerald-400"}`,children:h.signal?"停":h.code})]},f.name)})]}),u===null?_.jsxs("div",{className:"flex-1 min-h-0 overflow-auto p-3 grid gap-2.5 grid-cols-1 md:grid-cols-2 xl:grid-cols-3 content-start",children:[b.length===0&&_.jsx("p",{className:"text-xs text-muted-foreground col-span-full p-4 text-center",children:"未发现 justfile recipes"}),b.map(f=>{const h=f.task,d=(h==null?void 0:h.state)==="running",x=(h==null?void 0:h.state)==="exited",p=(s[f.name]??[]).slice(-3).map(y=>y.replace(/\r?\n$/,"").replace(/\x1b\[[0-9;]*m/g,""));return _.jsxs("div",{onClick:()=>o(f.name),className:"group rounded-lg border bg-card p-3 cursor-pointer hover:border-muted-foreground/40 transition-colors",children:[_.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[_.jsx("span",{className:`h-2 w-2 rounded-full flex-none ${w(d,x,h)}`}),_.jsx("span",{className:"font-mono font-medium",children:f.name}),d&&_.jsx("span",{className:"text-emerald-600 dark:text-emerald-400 font-mono",children:te(Date.now()-h.startedAt)}),x&&_.jsx("span",{className:`font-mono ${h.signal?"text-muted-foreground":h.code?"text-red-500":"text-emerald-600 dark:text-emerald-400"}`,children:h.signal?"已停止":`exit ${h.code}`}),!h&&_.jsx("span",{className:"text-muted-foreground/60",children:"未运行"}),_.jsx("span",{className:"ml-auto flex items-center gap-1",onClick:y=>y.stopPropagation(),children:d?_.jsxs(N,{size:"ghost",className:"h-6 gap-1 px-2 text-[11px]",onClick:()=>D("stop",f.name),children:[_.jsx(W,{className:"h-2.5 w-2.5"}),"停止"]}):_.jsxs(N,{size:"ghost",className:"h-6 gap-1 px-2 text-[11px]",onClick:()=>D("start",f.name),children:[x?_.jsx(J,{className:"h-2.5 w-2.5"}):_.jsx(ae,{className:"h-2.5 w-2.5"}),x?"重跑":"启动"]})})]}),f.description&&_.jsx("p",{className:"mt-1 text-[11px] text-muted-foreground/70 truncate",children:f.description}),_.jsx("div",{className:"mt-2 rounded bg-[#0d1117] px-2 py-1.5 font-mono text-[10px] leading-relaxed text-zinc-400 min-h-[3.4em]",children:p.length?p.map((y,C)=>_.jsx("div",{className:"truncate",children:y},C)):_.jsxs("span",{className:"text-zinc-600",children:["$ just ",f.name," …"]})})]},f.name)})]}):_.jsxs("div",{className:"flex-1 min-h-0 flex flex-col",children:[_.jsxs("div",{className:"flex-none flex items-center gap-2 px-3.5 h-8 border-b bg-background text-[11px]",children:[_.jsx("span",{className:`h-1.5 w-1.5 rounded-full ${k?"bg-emerald-500 animate-pulse":"bg-muted-foreground"}`}),_.jsx("span",{className:"font-mono font-medium",children:u}),_.jsx("span",{className:"text-muted-foreground font-mono",children:k?`running · ${te(Date.now()-m.startedAt)}`:m!=null&&m.signal?"已停止":m?`exit ${m.code}`:"未运行"}),_.jsxs("span",{className:"ml-auto flex items-center gap-1",children:[k?_.jsxs(N,{size:"ghost",className:"h-6 gap-1 px-2 text-[11px]",onClick:()=>D("stop",u),children:[_.jsx(W,{className:"h-2.5 w-2.5"}),"停止"]}):_.jsxs(N,{size:"ghost",className:"h-6 gap-1 px-2 text-[11px]",onClick:()=>D("start",u),children:[_.jsx(J,{className:"h-2.5 w-2.5"}),m?"重跑":"启动"]}),_.jsxs(N,{size:"ghost",className:"h-6 gap-1 px-2 text-[11px]",onClick:()=>D("clear",u),disabled:!a.length,children:[_.jsx(ue,{className:"h-2.5 w-2.5"}),"清屏"]}),_.jsxs("span",{className:"text-muted-foreground font-mono ml-1",children:[a.length," 行"]})]})]}),_.jsxs("div",{ref:g,className:"flex-1 min-h-0 overflow-auto bg-[#0d1117] p-3.5 font-mono text-xs leading-relaxed text-zinc-200",children:[a.length===0&&_.jsxs("p",{className:"text-zinc-500",children:["$ just ",u," · 等待输出…"]}),a.map((f,h)=>{const d=f.replace(/\r?\n$/,"");return _.jsx("div",{className:"whitespace-pre-wrap break-all min-h-[1.25rem]",children:/\x1b\[/.test(d)?_.jsx($e,{children:d}):_.jsx("span",{className:He(d),children:d})},h)})]})]})]})}function Ve(){return _.jsx("div",{className:"mx-auto h-full max-w-6xl bg-background border rounded-lg shadow-sm overflow-hidden flex flex-col",children:_.jsx(Ge,{})})}const Ue=Object.freeze(Object.defineProperty({__proto__:null,default:Ve},Symbol.toStringTag,{value:"Module"})),Qe={mode:"just",label:"Just Runner",icon:"📜",description:"Just 任务日志与执行",Workspace:E.lazy(()=>ie(()=>Promise.resolve().then(()=>Ue),void 0))};export{Ve as JustWorkspace,Qe as default};
@@ -5,8 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
6
  <link rel="icon" href="/__app/favicon.svg" type="image/svg+xml" />
7
7
  <title>zdashboard · 项目洞察</title>
8
- <script type="module" crossorigin src="/assets/index-DkOVCCZ3.js"></script>
9
- <link rel="stylesheet" crossorigin href="/assets/index-D58_bWw5.css">
8
+ <script type="module" crossorigin src="/assets/index-15cLfCw4.js"></script>
9
+ <link rel="stylesheet" crossorigin href="/assets/index-CYqm3unP.css">
10
10
  </head>
11
11
  <body>
12
12
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zdashboard",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "description": "ZCode skill dashboard platform — pluggable viewers for zdesign/zview/zreview/zgoal",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1 +0,0 @@
1
- import{r as l,j as e}from"./index-DkOVCCZ3.js";function x(){const[t,r]=l.useState(null),[a,d]=l.useState(null);if(l.useEffect(()=>{fetch("/__stats/data",{cache:"no-store"}).then(s=>s.json()).then(r).catch(s=>d(s.message))},[]),a)return e.jsx("div",{className:"flex h-full items-center justify-center text-destructive",children:e.jsxs("p",{children:["加载失败: ",a]})});if(!t)return e.jsx("div",{className:"flex h-full items-center justify-center text-muted-foreground",children:e.jsx("p",{children:"加载中…"})});const n=(t.totalSize/1024/1024).toFixed(2),o=Math.max(...t.byExt.map(s=>s.count),1);return e.jsx("div",{className:"h-full overflow-auto",children:e.jsxs("div",{className:"mx-auto max-w-6xl p-6",children:[e.jsx("h1",{className:"text-lg font-semibold mb-1",children:"📊 项目统计"}),e.jsx("p",{className:"text-xs text-muted-foreground mb-5",children:"后端 fs 扫描 + 前端渲染 · 改文件即时刷新"}),e.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-5 gap-3 mb-6",children:[{label:"文件",value:t.files},{label:"目录",value:t.dirs},{label:"总大小",value:`${n} MB`},{label:"Markdown",value:t.markdown},{label:"变更 进行/归档",value:`${t.openspec.active}/${t.openspec.archived}`}].map(s=>e.jsxs("div",{className:"rounded-lg border bg-background p-4",children:[e.jsx("div",{className:"text-xl font-bold",children:s.value}),e.jsx("div",{className:"text-[11px] text-muted-foreground mt-1",children:s.label})]},s.label))}),e.jsx("h2",{className:"text-xs font-medium text-muted-foreground mb-3",children:"文件类型 Top 10"}),e.jsx("div",{className:"space-y-2",children:t.byExt.map(s=>e.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[e.jsx("span",{className:"w-16 font-mono text-foreground truncate",children:s.ext}),e.jsx("div",{className:"flex-1 h-2 bg-muted rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full bg-primary rounded-full",style:{width:`${(s.count/o*100).toFixed(1)}%`}})}),e.jsx("span",{className:"w-8 text-right font-mono text-muted-foreground",children:s.count})]},s.ext))}),e.jsxs("div",{className:"mt-5 flex items-center gap-2 text-xs",children:[e.jsxs("span",{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded border ${t.hasJust?"text-emerald-600 border-emerald-500/30 bg-emerald-500/10":"text-muted-foreground border-border"}`,children:["justfile ",t.hasJust?"✓":"✗"]}),e.jsxs("span",{className:"text-muted-foreground",children:["root: ",t.root]})]})]})})}export{x as default};
@@ -1,6 +0,0 @@
1
- import{c as e}from"./index-DkOVCCZ3.js";/**
2
- * @license lucide-react v0.460.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const t=e("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);export{t as F};
@@ -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:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";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:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;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{--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%;--radius: .5rem}.dark{--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}.pointer-events-none{pointer-events:none}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-16{bottom:4rem}.left-0{left:0}.right-0{right:0}.right-2{right:.5rem}.right-8{right:2rem}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:.5rem}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-1{margin-bottom:.25rem}.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}.mb-7{margin-bottom:1.75rem}.ml-1{margin-left:.25rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-5{margin-top:1.25rem}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.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-6{height:1.5rem}.h-7{height:1.75rem}.h-9{height:2.25rem}.h-\[1px\]{height:1px}.h-\[38px\]{height:38px}.h-\[42\%\]{height:42%}.h-\[52px\]{height:52px}.h-\[72px\]{height:72px}.h-full{height:100%}.h-screen{height:100vh}.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}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[1px\]{width:1px}.w-\[240px\]{width:240px}.w-\[280px\]{width:280px}.w-\[50px\]{width:50px}.w-\[78\%\]{width:78%}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-\[240px\]{max-width:240px}.max-w-\[280px\]{max-width:280px}.max-w-\[420px\]{max-width:420px}.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}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-y{resize:vertical}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.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-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-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))}.self-start{align-self:flex-start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.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-\[14px\]{border-radius:14px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.border{border-width:1px}.border-0{border-width:0px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-r-0{border-right-width:0px}.border-t{border-top-width:1px}.border-amber-500\/30{border-color:#f59e0b4d}.border-border{border-color:hsl(var(--border))}.border-emerald-500\/30{border-color:#10b9814d}.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-red-500\/20{border-color:#ef444433}.border-red-500\/30{border-color:#ef44444d}.border-sky-500\/30{border-color:#0ea5e94d}.border-transparent{border-color:transparent}.border-white\/10{border-color:#ffffff1a}.border-white\/15{border-color:#ffffff26}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[\#0d1117\]{--tw-bg-opacity: 1;background-color:rgb(13 17 23 / var(--tw-bg-opacity, 1))}.bg-\[\#161b22\]{--tw-bg-opacity: 1;background-color:rgb(22 27 34 / var(--tw-bg-opacity, 1))}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-background{background-color:hsl(var(--background))}.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-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-emerald-500\/15{background-color:#10b98126}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground{background-color:hsl(var(--muted-foreground))}.bg-orange-500\/10{background-color:#f973161a}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/15{background-color:#ef444426}.bg-secondary{background-color:hsl(var(--secondary))}.bg-sky-500{--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity, 1))}.bg-sky-500\/15{background-color:#0ea5e926}.bg-sky-600{--tw-bg-opacity: 1;background-color:rgb(2 132 199 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/5{background-color:#ffffff0d}.bg-yellow-500\/10{background-color:#eab3081a}.bg-zinc-500{--tw-bg-opacity: 1;background-color:rgb(113 113 122 / var(--tw-bg-opacity, 1))}.bg-zinc-700{--tw-bg-opacity: 1;background-color:rgb(63 63 70 / var(--tw-bg-opacity, 1))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[1px\]{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-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-3{padding-top:.75rem;padding-bottom:.75rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pr-2{padding-right:.5rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-3{padding-top:.75rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-6xl{font-size:3.75rem;line-height:1}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.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}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-\[\#c9d1d9\]{--tw-text-opacity: 1;color:rgb(201 209 217 / var(--tw-text-opacity, 1))}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/70{color:hsl(var(--muted-foreground) / .7)}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sky-400{--tw-text-opacity: 1;color:rgb(56 189 248 / var(--tw-text-opacity, 1))}.text-sky-600{--tw-text-opacity: 1;color:rgb(2 132 199 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.text-zinc-200{--tw-text-opacity: 1;color:rgb(228 228 231 / var(--tw-text-opacity, 1))}.text-zinc-300{--tw-text-opacity: 1;color:rgb(212 212 216 / var(--tw-text-opacity, 1))}.text-zinc-400{--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity, 1))}.text-zinc-500{--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity, 1))}.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-70{opacity:.7}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px 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-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px 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-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.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)}.transition-\[width\,transform\]{transition-property:width,transform;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-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}@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-0{--tw-enter-opacity: 0}.zoom-in-95{--tw-enter-scale: .95}.duration-200{animation-duration:.2s}.running{animation-play-state:running}.\[appearance\:textfield\]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}@media (prefers-color-scheme: dark){.dark\:prose-invert{--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)}}.last\:border-0:last-child{border-width:0px}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-emerald-500:hover{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.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\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-sky-500:hover{--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity, 1))}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.hover\:bg-zinc-600:hover{--tw-bg-opacity: 1;background-color:rgb(82 82 91 / var(--tw-bg-opacity, 1))}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-zinc-100:hover{--tw-text-opacity: 1;color:rgb(244 244 245 / var(--tw-text-opacity, 1))}.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\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.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\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-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-0{left:0}.sm\:top-0{top:0}.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-\[280px\]{width:280px}.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\:shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);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: 1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (prefers-color-scheme: dark){.dark\:text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.dark\:text-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\:text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-sky-400{--tw-text-opacity: 1;color:rgb(56 189 248 / var(--tw-text-opacity, 1))}.dark\:text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}}.\[\&\:\:-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}
@@ -1,26 +0,0 @@
1
- import{c as p,r as a,j as e,_ as h}from"./index-DkOVCCZ3.js";import{M as b}from"./MdViewer-C8ZG_xn1.js";import"./katex.min-DAmb8ZJI.js";import"./index-B9eiA0v2.js";/**
2
- * @license lucide-react v0.460.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const y=p("ImageOff",[["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}],["path",{d:"M10.41 10.41a2 2 0 1 1-2.83-2.83",key:"1bzlo9"}],["line",{x1:"13.5",x2:"6",y1:"13.5",y2:"21",key:"1q0aeu"}],["line",{x1:"18",x2:"21",y1:"12",y2:"15",key:"5mozeu"}],["path",{d:"M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59",key:"mmje98"}],["path",{d:"M21 15V5a2 2 0 0 0-2-2H9",key:"43el77"}]]);/**
7
- * @license lucide-react v0.460.0 - ISC
8
- *
9
- * This source code is licensed under the ISC license.
10
- * See the LICENSE file in the root directory of this source tree.
11
- */const v=p("Monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);/**
12
- * @license lucide-react v0.460.0 - ISC
13
- *
14
- * This source code is licensed under the ISC license.
15
- * See the LICENSE file in the root directory of this source tree.
16
- */const j=p("SlidersHorizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]]);/**
17
- * @license lucide-react v0.460.0 - ISC
18
- *
19
- * This source code is licensed under the ISC license.
20
- * See the LICENSE file in the root directory of this source tree.
21
- */const k=p("Smartphone",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]);/**
22
- * @license lucide-react v0.460.0 - ISC
23
- *
24
- * This source code is licensed under the ISC license.
25
- * See the LICENSE file in the root directory of this source tree.
26
- */const N=p("Tablet",[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",ry:"2",key:"76otgf"}],["line",{x1:"12",x2:"12.01",y1:"18",y2:"18",key:"1dp563"}]]);let g=null;const f=new Set,u={get:()=>g,set:t=>{g=t,f.forEach(r=>r(t))},subscribe:t=>(f.add(t),()=>f.delete(t))};function w({path:t}){return e.jsx("iframe",{src:"/"+encodeURI(t),title:"预览",className:"w-full h-full border-0 bg-white"})}function S({path:t}){const[r,n]=a.useState("-"),[c,s]=a.useState(1),[d,x]=a.useState(!1),m=t.split("/").pop(),l={backgroundImage:"linear-gradient(45deg,hsl(var(--border)) 25%,transparent 25%),linear-gradient(-45deg,hsl(var(--border)) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,hsl(var(--border)) 75%),linear-gradient(-45deg,transparent 75%,hsl(var(--border)) 75%)",backgroundSize:"16px 16px",backgroundPosition:"0 0,0 8px,8px -8px,-8px 0"};return e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsxs("div",{className:"flex-none px-4 py-2 border-b text-xs flex items-center gap-3",children:[e.jsx("span",{className:"font-mono text-foreground",children:m}),e.jsx("span",{className:"text-muted-foreground",children:r}),e.jsxs("div",{className:"ml-auto flex items-center gap-1",children:[e.jsx("button",{onClick:()=>s(o=>Math.max(.25,+(o-.25).toFixed(2))),className:"w-6 h-6 rounded bg-muted hover:bg-muted/70","aria-label":"缩小",children:"−"}),e.jsxs("span",{className:"w-10 text-center text-muted-foreground",children:[Math.round(c*100),"%"]}),e.jsx("button",{onClick:()=>s(o=>Math.min(8,+(o+.25).toFixed(2))),className:"w-6 h-6 rounded bg-muted hover:bg-muted/70","aria-label":"放大",children:"+"}),e.jsx("button",{onClick:()=>s(1),className:"ml-1 px-2 h-6 rounded bg-muted hover:bg-muted/70",children:"复位"})]})]}),e.jsx("div",{className:"flex-1 min-h-0 overflow-auto grid place-items-center p-6",style:l,children:d?e.jsx("p",{className:"text-muted-foreground",children:"该格式无法预览"}):e.jsx("img",{src:"/"+encodeURI(t),alt:m,style:{transform:`scale(${c})`},className:"max-w-full max-h-full object-contain transition-transform",onLoad:o=>n(`${o.currentTarget.naturalWidth} × ${o.currentTarget.naturalHeight} px`),onError:()=>x(!0)})})]})}function _({path:t}){const[r,n]=a.useState('<p class="p-3 text-xs text-muted-foreground">解析中…</p>');return a.useEffect(()=>{fetch("/"+encodeURI(t),{cache:"no-store"}).then(c=>c.text()).then(c=>{const s=c.match(/--[A-Za-z0-9_-]+\s*:\s*[^;}\n]+/g)??[];if(!s.length){n('<p class="p-3 text-xs">未发现 CSS 变量</p>');return}const d=i=>/^(#([0-9a-fA-F]{3,8})\b|rgb|rgba|hsl|hsla|oklch|oklab|color\()/i.test(i.trim()),x=s.filter(i=>d(i)),m=s.filter(i=>/font|family|type/.test(i.toLowerCase())&&!d(i)),l=s.filter(i=>!x.includes(i)&&!m.includes(i));let o="";if(x.length){o+=`<div class="mb-7"><div class="mb-3 text-[11px] font-semibold uppercase text-muted-foreground">配色 · ${x.length}</div><div class="grid gap-3" style="grid-template-columns:repeat(auto-fill,minmax(150px,1fr))">`;for(const i of x)o+=`<div class="overflow-hidden rounded-lg border bg-background"><div class="h-[72px] border-b" style="background:${i}"></div><div class="px-2.5 pt-2 font-mono text-[11px] break-all">${i.split(":")[0].trim()}</div><div class="px-2.5 pb-2 text-xs text-muted-foreground">${i.split(":").slice(1).join(":").trim()}</div></div>`;o+="</div></div>"}if(m.length){o+=`<div class="mb-7"><div class="mb-3 text-[11px] font-semibold uppercase text-muted-foreground">字体 · ${m.length}</div><div class="grid gap-3" style="grid-template-columns:repeat(auto-fill,minmax(150px,1fr))">`;for(const i of m)o+=`<div class="overflow-hidden rounded-lg border bg-background"><div class="grid h-[72px] place-items-center text-2xl" style="font-family:${i.split(":").slice(1).join(":").trim()}">Aa</div><div class="px-2.5 font-mono text-[11px]">${i.split(":")[0].trim()}</div></div>`;o+="</div></div>"}if(l.length){o+=`<div class="mb-7"><div class="mb-3 text-[11px] font-semibold uppercase text-muted-foreground">其他 · ${l.length}</div><div class="flex flex-col gap-1">`;for(const i of l)o+=`<div class="flex justify-between gap-3 px-2.5 py-1.5 rounded border bg-background text-xs"><span class="font-mono">${i.split(":")[0].trim()}</span><span class="text-muted-foreground">${i.split(":").slice(1).join(":").trim()}</span></div>`;o+="</div></div>"}n(o||'<p class="p-3 text-xs">无</p>')})},[t]),e.jsx("div",{className:"p-8",dangerouslySetInnerHTML:{__html:r}})}function $({path:t}){return e.jsx("div",{className:"grid place-items-center p-8",children:e.jsx("video",{src:"/"+encodeURI(t),controls:!0,className:"max-w-full max-h-[80vh] rounded border"})})}function V({path:t}){return e.jsx("div",{className:"grid place-items-center p-8",children:e.jsx("audio",{src:"/"+encodeURI(t),controls:!0,className:"w-full max-w-2xl"})})}function E({path:t}){return e.jsx("div",{className:"grid place-items-center p-8 h-full",children:e.jsx("iframe",{src:"/"+encodeURI(t),title:"PDF",className:"w-full h-full max-h-[80vh] rounded border bg-white"})})}function I({path:t}){const[r,n]=a.useState("");return a.useEffect(()=>{fetch("/"+encodeURI(t),{cache:"no-store"}).then(c=>c.text()).then(n)},[t]),e.jsx("pre",{className:"p-6 text-xs leading-relaxed overflow-auto h-full",children:r||"加载中…"})}function M({path:t}){const[r,n]=a.useState("");return a.useEffect(()=>{n("/"+encodeURI(t))},[t]),e.jsxs("div",{className:"p-8 h-full flex flex-col gap-4",children:[e.jsxs("div",{className:"text-xs text-muted-foreground",children:["字体文件: ",t]}),e.jsxs("div",{className:"flex-1 grid place-items-center",children:[r&&e.jsx("link",{rel:"preload",as:"font",href:r,crossOrigin:"anonymous"}),e.jsx("div",{className:"text-6xl",style:{fontFamily:r?`url(${r})`:"serif"},children:"Aa 字体"})]})]})}function z({path:t}){return e.jsx("div",{className:"grid place-items-center h-full text-center text-muted-foreground",children:e.jsxs("div",{children:[e.jsx(y,{className:"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 C={page:w,icon:S,token:_,md:b,video:$,audio:V,pdf:E,component:I,font:M};function P(t){return C[t]??z}function R({mode:t,onMode:r,w:n,h:c,onW:s,onH:d}){const x=[{v:0,icon:e.jsx(v,{className:"h-3.5 w-3.5"}),label:"桌面"},{v:768,icon:e.jsx(N,{className:"h-3.5 w-3.5"}),label:"768"},{v:375,icon:e.jsx(k,{className:"h-3.5 w-3.5"}),label:"375"},{v:"custom",icon:e.jsx(j,{className:"h-3.5 w-3.5"}),label:"自定义"}],m="w-[50px] 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:x.map(l=>e.jsxs("button",{onClick:()=>r(l.v),className:`h-7 gap-1.5 px-2.5 rounded text-xs inline-flex items-center ${t===l.v?"bg-secondary text-secondary-foreground":"hover:bg-muted/70"}`,children:[l.icon,e.jsx("span",{className:"hidden sm:inline",children:l.label})]},String(l.v)))}),e.jsxs("span",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[e.jsx("input",{type:"number",value:n,min:280,max:3e3,step:8,onChange:l=>s(Number(l.target.value)),"aria-label":"自定义宽度",className:m}),e.jsx("span",{className:"text-muted-foreground/70",children:"×"}),e.jsx("input",{type:"number",value:c,min:400,max:3e3,step:8,onChange:l=>d(Number(l.target.value)),"aria-label":"自定义高度",className:m}),e.jsx("span",{className:"text-[11px] text-muted-foreground/70",children:"px"})]})]})}function T(){const[t,r]=a.useState(()=>u.get()),[n,c]=a.useState(0),[s,d]=a.useState(1024),[x,m]=a.useState(768);a.useEffect(()=>u.subscribe(r),[]);const l=t?P(t.type):null,o=n===0?"桌面":n==="custom"?`${s} × ${x}`:`${n}px`;return e.jsx("div",{className:"mx-auto h-full flex flex-col bg-background border rounded-lg shadow-sm overflow-hidden",children:t&&l?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"h-[38px] 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:t.path}),e.jsx("span",{className:"text-muted-foreground ml-3 flex-none",children:o}),e.jsx(R,{mode:n,onMode:c,w:s,h:x,onW:d,onH:m})]}),e.jsx("div",{className:"flex-1 min-h-0 overflow-auto",children:t.type==="page"?e.jsx("div",{className:"bg-background overflow-hidden",style:{maxWidth:n===0?void 0:n==="custom"?s:n,height:n==="custom"?x:"100%"},children:e.jsx(l,{path:t.path})}):e.jsx("div",{className:"mx-auto max-w-5xl h-full overflow-auto",children:e.jsx(l,{path:t.path})})})]}):e.jsx("div",{className:"flex-1 grid place-items-center text-muted-foreground",children:e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"mx-auto mb-3.5 grid h-14 w-14 place-items-center rounded-[14px] bg-primary text-primary-foreground text-2xl font-bold",children:"z"}),e.jsx("p",{children:"从左侧选择一个资产预览"}),e.jsx("p",{className:"mt-1 text-xs",children:"点左侧折叠钮展开资产树 · 改文件即时刷新"})]})})})}const U=Object.freeze(Object.defineProperty({__proto__:null,default:T},Symbol.toStringTag,{value:"Module"})),O=[{key:"page",label:"页面"},{key:"component",label:"组件"},{key:"icon",label:"图标"},{key:"token",label:"Tokens"},{key:"md",label:"文档"},{key:"video",label:"视频"},{key:"audio",label:"音频"},{key:"pdf",label:"PDF"},{key:"font",label:"字体"},{key:"other",label:"其他"}];function W(){const t=a.useSyncExternalStore(u.subscribe,u.get),[r,n]=a.useState(null);a.useEffect(()=>{fetch("/__design/assets",{cache:"no-store"}).then(s=>s.json()).then(n)},[]);const c=a.useMemo(()=>r?O.map(s=>({...s,items:r[s.key]??[]})).filter(s=>s.items.length>0):[],[r]);return r?e.jsxs("div",{children:[e.jsxs("div",{className:"p-3 text-xs text-muted-foreground",children:[c.reduce((s,d)=>s+d.items.length,0)," 个资产"]}),c.map(s=>e.jsxs("div",{className:"mb-1",children:[e.jsxs("div",{className:"px-3.5 pt-2 pb-1 text-[11px] font-semibold uppercase tracking-wide text-muted-foreground",children:[s.label," ",e.jsx("span",{className:"font-normal",children:s.items.length})]}),s.items.map(d=>e.jsxs("button",{onClick:()=>u.set({path:d.path,type:d.type}),className:`w-full text-left flex items-center gap-2 px-3.5 py-1.5 text-xs border-l-2 border-transparent hover:bg-muted ${(t==null?void 0:t.path)===d.path?"bg-muted font-medium border-primary":"text-muted-foreground"}`,children:[e.jsx("span",{className:"break-all",children:d.name}),e.jsx("span",{className:"font-mono text-[10px] text-muted-foreground",children:d.ext})]},d.path))]},s.key))]}):e.jsx("p",{className:"p-3 text-xs text-muted-foreground",children:"加载中…"})}const A=Object.freeze(Object.defineProperty({__proto__:null,default:W},Symbol.toStringTag,{value:"Module"})),q={mode:"design",label:"设计资产",icon:"🎨",description:"设计资产分类浏览 · zdesign",Sidebar:a.lazy(()=>h(()=>Promise.resolve().then(()=>A),void 0)),Workspace:a.lazy(()=>h(()=>Promise.resolve().then(()=>U),void 0))};export{W as DesignSidebar,T as DesignWorkspace,q as default};
@@ -1,30 +0,0 @@
1
- import{c as z,r as F,a as C,j as h,B as A,_ as X}from"./index-DkOVCCZ3.js";/**
2
- * @license lucide-react v0.460.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const Y=z("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);/**
7
- * @license lucide-react v0.460.0 - ISC
8
- *
9
- * This source code is licensed under the ISC license.
10
- * See the LICENSE file in the root directory of this source tree.
11
- */const ee=z("Eraser",[["path",{d:"m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21",key:"182aya"}],["path",{d:"M22 21H7",key:"t4ddhn"}],["path",{d:"m5 11 9 9",key:"1mo9qw"}]]);/**
12
- * @license lucide-react v0.460.0 - ISC
13
- *
14
- * This source code is licensed under the ISC license.
15
- * See the LICENSE file in the root directory of this source tree.
16
- */const te=z("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);/**
17
- * @license lucide-react v0.460.0 - ISC
18
- *
19
- * This source code is licensed under the ISC license.
20
- * See the LICENSE file in the root directory of this source tree.
21
- */const re=z("RotateCw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]);/**
22
- * @license lucide-react v0.460.0 - ISC
23
- *
24
- * This source code is licensed under the ISC license.
25
- * See the LICENSE file in the root directory of this source tree.
26
- */const se=z("Square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);var V={};const E=[[{color:"0, 0, 0",class:"ansi-black"},{color:"187, 0, 0",class:"ansi-red"},{color:"0, 187, 0",class:"ansi-green"},{color:"187, 187, 0",class:"ansi-yellow"},{color:"0, 0, 187",class:"ansi-blue"},{color:"187, 0, 187",class:"ansi-magenta"},{color:"0, 187, 187",class:"ansi-cyan"},{color:"255,255,255",class:"ansi-white"}],[{color:"85, 85, 85",class:"ansi-bright-black"},{color:"255, 85, 85",class:"ansi-bright-red"},{color:"0, 255, 0",class:"ansi-bright-green"},{color:"255, 255, 85",class:"ansi-bright-yellow"},{color:"85, 85, 255",class:"ansi-bright-blue"},{color:"255, 85, 255",class:"ansi-bright-magenta"},{color:"85, 255, 255",class:"ansi-bright-cyan"},{color:"255, 255, 255",class:"ansi-bright-white"}]],ne=/(https?:\/\/(?:[A-Za-z0-9#;/?:@=+$',_.!~*()[\]-]|&amp;|%[A-Fa-f0-9]{2})+)/gm;class y{static escapeForHtml(e){return new y().escapeForHtml(e)}static linkify(e){return new y().linkify(e)}static ansiToHtml(e,r){return new y().ansiToHtml(e,r)}static ansiToJson(e,r){return new y().ansiToJson(e,r)}static ansiToText(e){return new y().ansiToText(e)}constructor(){this.fg=this.bg=this.fg_truecolor=this.bg_truecolor=null,this.bright=0,this.decorations=[]}setupPalette(){this.PALETTE_COLORS=[];for(let s=0;s<2;++s)for(let l=0;l<8;++l)this.PALETTE_COLORS.push(E[s][l].color);let e=[0,95,135,175,215,255],r=(s,l,u)=>e[s]+", "+e[l]+", "+e[u];for(let s=0;s<6;++s)for(let l=0;l<6;++l)for(let u=0;u<6;++u)this.PALETTE_COLORS.push(r(s,l,u));let n=8;for(let s=0;s<24;++s,n+=10)this.PALETTE_COLORS.push(n+", "+n+", "+n)}escapeForHtml(e){return e.replace(/[&<>\"]/gm,r=>r=="&"?"&amp;":r=='"'?"&quot;":r=="<"?"&lt;":r==">"?"&gt;":"")}linkify(e){return e.replace(ne,r=>`<a href="${r}">${r}</a>`)}ansiToHtml(e,r){return this.process(e,r,!0)}ansiToJson(e,r){return r=r||{},r.json=!0,r.clearLine=!1,this.process(e,r,!0)}ansiToText(e){return this.process(e,{},!1)}process(e,r,n){let s=this,l=e.split(/\033\[/),u=l.shift();r==null&&(r={}),r.clearLine=/\r/.test(e);let o=l.map(a=>this.processChunk(a,r,n));if(r&&r.json){let a=s.processChunkJson("");return a.content=u,a.clearLine=r.clearLine,o.unshift(a),r.remove_empty&&(o=o.filter(i=>!i.isEmpty())),o}else o.unshift(u);return o.join("")}processChunkJson(e,r,n){r=typeof r>"u"?{}:r;let s=r.use_classes=typeof r.use_classes<"u"&&r.use_classes,l=r.key=s?"class":"color",u={content:e,fg:null,bg:null,fg_truecolor:null,bg_truecolor:null,isInverted:!1,clearLine:r.clearLine,decoration:null,decorations:[],was_processed:!1,isEmpty:()=>!u.content},o=e.match(/^([!\x3c-\x3f]*)([\d;]*)([\x20-\x2c]*[\x40-\x7e])([\s\S]*)/m);if(!o)return u;u.content=o[4];let a=o[2].split(";");if(o[1]!==""||o[3]!=="m"||!n)return u;let i=this;for(;a.length>0;){let d=a.shift(),c=parseInt(d);if(isNaN(c)||c===0)i.fg=i.bg=null,i.decorations=[];else if(c===1)i.decorations.push("bold");else if(c===2)i.decorations.push("dim");else if(c===3)i.decorations.push("italic");else if(c===4)i.decorations.push("underline");else if(c===5)i.decorations.push("blink");else if(c===7)i.decorations.push("reverse");else if(c===8)i.decorations.push("hidden");else if(c===9)i.decorations.push("strikethrough");else if(c===21)i.removeDecoration("bold");else if(c===22)i.removeDecoration("bold"),i.removeDecoration("dim");else if(c===23)i.removeDecoration("italic");else if(c===24)i.removeDecoration("underline");else if(c===25)i.removeDecoration("blink");else if(c===27)i.removeDecoration("reverse");else if(c===28)i.removeDecoration("hidden");else if(c===29)i.removeDecoration("strikethrough");else if(c===39)i.fg=null;else if(c===49)i.bg=null;else if(c>=30&&c<38)i.fg=E[0][c%10][l];else if(c>=90&&c<98)i.fg=E[1][c%10][l];else if(c>=40&&c<48)i.bg=E[0][c%10][l];else if(c>=100&&c<108)i.bg=E[1][c%10][l];else if(c===38||c===48){let D=c===38;if(a.length>=1){let m=a.shift();if(m==="5"&&a.length>=1){let g=parseInt(a.shift());if(g>=0&&g<=255)if(!s)this.PALETTE_COLORS||i.setupPalette(),D?i.fg=this.PALETTE_COLORS[g]:i.bg=this.PALETTE_COLORS[g];else{let v=g>=16?"ansi-palette-"+g:E[g>7?1:0][g%8].class;D?i.fg=v:i.bg=v}}else if(m==="2"&&a.length>=3){let g=parseInt(a.shift()),v=parseInt(a.shift()),_=parseInt(a.shift());if(g>=0&&g<=255&&v>=0&&v<=255&&_>=0&&_<=255){let f=g+", "+v+", "+_;s?D?(i.fg="ansi-truecolor",i.fg_truecolor=f):(i.bg="ansi-truecolor",i.bg_truecolor=f):D?i.fg=f:i.bg=f}}}}}return i.fg===null&&i.bg===null&&i.decorations.length===0||(u.fg=i.fg,u.bg=i.bg,u.fg_truecolor=i.fg_truecolor,u.bg_truecolor=i.bg_truecolor,u.decorations=i.decorations,u.decoration=i.decorations.slice(-1).pop()||null,u.was_processed=!0),u}processChunk(e,r,n){r=r||{};let s=this.processChunkJson(e,r,n),l=r.use_classes;if(s.decorations=s.decorations.filter(c=>{if(c==="reverse"){s.fg||(s.fg=E[0][7][l?"class":"color"]),s.bg||(s.bg=E[0][0][l?"class":"color"]);let D=s.fg;s.fg=s.bg,s.bg=D;let m=s.fg_truecolor;return s.fg_truecolor=s.bg_truecolor,s.bg_truecolor=m,s.isInverted=!0,!1}return!0}),r.json)return s;if(s.isEmpty())return"";if(!s.was_processed)return s.content;let u=[],o=[],a=[],i={},d=c=>{let D=[],m;for(m in c)c.hasOwnProperty(m)&&D.push("data-"+m+'="'+this.escapeForHtml(c[m])+'"');return D.length>0?" "+D.join(" "):""};return s.isInverted&&(i["ansi-is-inverted"]="true"),s.fg&&(l?(u.push(s.fg+"-fg"),s.fg_truecolor!==null&&(i["ansi-truecolor-fg"]=s.fg_truecolor,s.fg_truecolor=null)):u.push("color:rgb("+s.fg+")")),s.bg&&(l?(u.push(s.bg+"-bg"),s.bg_truecolor!==null&&(i["ansi-truecolor-bg"]=s.bg_truecolor,s.bg_truecolor=null)):u.push("background-color:rgb("+s.bg+")")),s.decorations.forEach(c=>{if(l){o.push("ansi-"+c);return}c==="bold"?o.push("font-weight:bold"):c==="dim"?o.push("opacity:0.5"):c==="italic"?o.push("font-style:italic"):c==="hidden"?o.push("visibility:hidden"):c==="strikethrough"?a.push("line-through"):a.push(c)}),a.length&&o.push("text-decoration:"+a.join(" ")),l?'<span class="'+u.concat(o).join(" ")+'"'+d(i)+">"+s.content+"</span>":'<span style="'+u.concat(o).join(";")+'"'+d(i)+">"+s.content+"</span>"}removeDecoration(e){const r=this.decorations.indexOf(e);r>=0&&this.decorations.splice(r,1)}}var ie=y,k={exports:{}};function N(t){if(!t)return"";if(!/\r/.test(t))return t;for(t=t.replace(/\r+\n/gm,`
27
- `);/\r./.test(t);)t=t.replace(/^([^\r\n]*)\r+([^\r\n]+)/gm,function(e,r,n){return n+r.slice(n.length)});return t}function ue(t){for(var e=0,r=0;r<t.length;r++)t[e].length<=t[r].length&&(e=r);return e}function P(t){if(!/\r/.test(t))return t;for(var e=t.split("\r"),r=[];e.length>0;){var n=ue(e);r.push(e[n]),e=e.slice(n+1)}return r.join("\r")}function ce(t){if(!t)return"";if(!/\r/.test(t))return t;if(!/\n/.test(t))return P(t);t=t.replace(/\r+\n/gm,`
28
- `);var e=t.lastIndexOf(`
29
- `);return N(t.slice(0,e))+`
30
- `+P(t.slice(e+1))}k.exports=N;k.exports.escapeCarriageReturn=N;k.exports.escapeCarriageReturnSafe=ce;var oe=k.exports,O,I;function ae(){return I||(I=1,O=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/),O}var B,Z;function le(){return Z||(Z=1,B=/[\0-\x1F\x7F-\x9F]/),B}var S,q;function _e(){return q||(q=1,S=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/),S}var L,M;function he(){return M||(M=1,L=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/),L}var T,J;function fe(){return J||(J=1,T=function(t){var e={};e.src_Any=ae().source,e.src_Cc=le().source,e.src_Z=_e().source,e.src_P=he().source,e.src_ZPCc=[e.src_Z,e.src_P,e.src_Cc].join("|"),e.src_ZCc=[e.src_Z,e.src_Cc].join("|");var r="[><|]";return e.src_pseudo_letter="(?:(?!"+r+"|"+e.src_ZPCc+")"+e.src_Any+")",e.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",e.src_auth="(?:(?:(?!"+e.src_ZCc+"|[@/\\[\\]()]).)+@)?",e.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",e.src_host_terminator="(?=$|"+r+"|"+e.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+e.src_ZPCc+"))",e.src_path="(?:[/?#](?:(?!"+e.src_ZCc+"|"+r+`|[()[\\]{}.,"'?!\\-;]).|\\[(?:(?!`+e.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+e.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+e.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+e.src_ZCc+`|["]).)+\\"|\\'(?:(?!`+e.src_ZCc+"|[']).)+\\'|\\'(?="+e.src_pseudo_letter+"|[-]).|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+e.src_ZCc+"|[.]).|"+(t&&t["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+e.src_ZCc+").|;(?!"+e.src_ZCc+").|\\!+(?!"+e.src_ZCc+"|[!]).|\\?(?!"+e.src_ZCc+"|[?]).)+|\\/)?",e.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',e.src_xn="xn--[a-z0-9\\-]{1,59}",e.src_domain_root="(?:"+e.src_xn+"|"+e.src_pseudo_letter+"{1,63})",e.src_domain="(?:"+e.src_xn+"|(?:"+e.src_pseudo_letter+")|(?:"+e.src_pseudo_letter+"(?:-|"+e.src_pseudo_letter+"){0,61}"+e.src_pseudo_letter+"))",e.src_host="(?:(?:(?:(?:"+e.src_domain+")\\.)*"+e.src_domain+"))",e.tpl_host_fuzzy="(?:"+e.src_ip4+"|(?:(?:(?:"+e.src_domain+")\\.)+(?:%TLDS%)))",e.tpl_host_no_ip_fuzzy="(?:(?:(?:"+e.src_domain+")\\.)+(?:%TLDS%))",e.src_host_strict=e.src_host+e.src_host_terminator,e.tpl_host_fuzzy_strict=e.tpl_host_fuzzy+e.src_host_terminator,e.src_host_port_strict=e.src_host+e.src_port+e.src_host_terminator,e.tpl_host_port_fuzzy_strict=e.tpl_host_fuzzy+e.src_port+e.src_host_terminator,e.tpl_host_port_no_ip_fuzzy_strict=e.tpl_host_no_ip_fuzzy+e.src_port+e.src_host_terminator,e.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+e.src_ZPCc+"|>|$))",e.tpl_email_fuzzy="(^|"+r+'|"|\\(|'+e.src_ZCc+")("+e.src_email_name+"@"+e.tpl_host_fuzzy_strict+")",e.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+e.src_ZPCc+"))((?![$+<=>^`||])"+e.tpl_host_port_fuzzy_strict+e.src_path+")",e.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+e.src_ZPCc+"))((?![$+<=>^`||])"+e.tpl_host_port_no_ip_fuzzy_strict+e.src_path+")",e}),T}function $(t){var e=Array.prototype.slice.call(arguments,1);return e.forEach(function(r){r&&Object.keys(r).forEach(function(n){t[n]=r[n]})}),t}function j(t){return Object.prototype.toString.call(t)}function pe(t){return j(t)==="[object String]"}function de(t){return j(t)==="[object Object]"}function ge(t){return j(t)==="[object RegExp]"}function H(t){return j(t)==="[object Function]"}function me(t){return t.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var U={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};function De(t){return Object.keys(t||{}).reduce(function(e,r){return e||U.hasOwnProperty(r)},!1)}var xe={"http:":{validate:function(t,e,r){var n=t.slice(e);return r.re.http||(r.re.http=new RegExp("^\\/\\/"+r.re.src_auth+r.re.src_host_port_strict+r.re.src_path,"i")),r.re.http.test(n)?n.match(r.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(t,e,r){var n=t.slice(e);return r.re.no_http||(r.re.no_http=new RegExp("^"+r.re.src_auth+"(?:localhost|(?:(?:"+r.re.src_domain+")\\.)+"+r.re.src_domain_root+")"+r.re.src_port+r.re.src_host_terminator+r.re.src_path,"i")),r.re.no_http.test(n)?e>=3&&t[e-3]===":"||e>=3&&t[e-3]==="/"?0:n.match(r.re.no_http)[0].length:0}},"mailto:":{validate:function(t,e,r){var n=t.slice(e);return r.re.mailto||(r.re.mailto=new RegExp("^"+r.re.src_email_name+"@"+r.re.src_host_strict,"i")),r.re.mailto.test(n)?n.match(r.re.mailto)[0].length:0}}},Fe="a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]",ve="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function Ee(t){t.__index__=-1,t.__text_cache__=""}function be(t){return function(e,r){var n=e.slice(r);return t.test(n)?n.match(t)[0].length:0}}function W(){return function(t,e){e.normalize(t)}}function w(t){var e=t.re=fe()(t.__opts__),r=t.__tlds__.slice();t.onCompile(),t.__tlds_replaced__||r.push(Fe),r.push(e.src_xn),e.src_tlds=r.join("|");function n(o){return o.replace("%TLDS%",e.src_tlds)}e.email_fuzzy=RegExp(n(e.tpl_email_fuzzy),"i"),e.link_fuzzy=RegExp(n(e.tpl_link_fuzzy),"i"),e.link_no_ip_fuzzy=RegExp(n(e.tpl_link_no_ip_fuzzy),"i"),e.host_fuzzy_test=RegExp(n(e.tpl_host_fuzzy_test),"i");var s=[];t.__compiled__={};function l(o,a){throw new Error('(LinkifyIt) Invalid schema "'+o+'": '+a)}Object.keys(t.__schemas__).forEach(function(o){var a=t.__schemas__[o];if(a!==null){var i={validate:null,link:null};if(t.__compiled__[o]=i,de(a)){ge(a.validate)?i.validate=be(a.validate):H(a.validate)?i.validate=a.validate:l(o,a),H(a.normalize)?i.normalize=a.normalize:a.normalize?l(o,a):i.normalize=W();return}if(pe(a)){s.push(o);return}l(o,a)}}),s.forEach(function(o){t.__compiled__[t.__schemas__[o]]&&(t.__compiled__[o].validate=t.__compiled__[t.__schemas__[o]].validate,t.__compiled__[o].normalize=t.__compiled__[t.__schemas__[o]].normalize)}),t.__compiled__[""]={validate:null,normalize:W()};var u=Object.keys(t.__compiled__).filter(function(o){return o.length>0&&t.__compiled__[o]}).map(me).join("|");t.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+e.src_ZPCc+"))("+u+")","i"),t.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+e.src_ZPCc+"))("+u+")","ig"),t.re.pretest=RegExp("("+t.re.schema_test.source+")|("+t.re.host_fuzzy_test.source+")|@","i"),Ee(t)}function Ce(t,e){var r=t.__index__,n=t.__last_index__,s=t.__text_cache__.slice(r,n);this.schema=t.__schema__.toLowerCase(),this.index=r+e,this.lastIndex=n+e,this.raw=s,this.text=s,this.url=s}function G(t,e){var r=new Ce(t,e);return t.__compiled__[r.schema].normalize(r,t),r}function x(t,e){if(!(this instanceof x))return new x(t,e);e||De(t)&&(e=t,t={}),this.__opts__=$({},U,e),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=$({},xe,t),this.__compiled__={},this.__tlds__=ve,this.__tlds_replaced__=!1,this.re={},w(this)}x.prototype.add=function(e,r){return this.__schemas__[e]=r,w(this),this};x.prototype.set=function(e){return this.__opts__=$(this.__opts__,e),this};x.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;var r,n,s,l,u,o,a,i,d;if(this.re.schema_test.test(e)){for(a=this.re.schema_search,a.lastIndex=0;(r=a.exec(e))!==null;)if(l=this.testSchemaAt(e,r[2],a.lastIndex),l){this.__schema__=r[2],this.__index__=r.index+r[1].length,this.__last_index__=r.index+r[0].length+l;break}}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(i=e.search(this.re.host_fuzzy_test),i>=0&&(this.__index__<0||i<this.__index__)&&(n=e.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy))!==null&&(u=n.index+n[1].length,(this.__index__<0||u<this.__index__)&&(this.__schema__="",this.__index__=u,this.__last_index__=n.index+n[0].length))),this.__opts__.fuzzyEmail&&this.__compiled__["mailto:"]&&(d=e.indexOf("@"),d>=0&&(s=e.match(this.re.email_fuzzy))!==null&&(u=s.index+s[1].length,o=s.index+s[0].length,(this.__index__<0||u<this.__index__||u===this.__index__&&o>this.__last_index__)&&(this.__schema__="mailto:",this.__index__=u,this.__last_index__=o))),this.__index__>=0};x.prototype.pretest=function(e){return this.re.pretest.test(e)};x.prototype.testSchemaAt=function(e,r,n){return this.__compiled__[r.toLowerCase()]?this.__compiled__[r.toLowerCase()].validate(e,n,this):0};x.prototype.match=function(e){var r=0,n=[];this.__index__>=0&&this.__text_cache__===e&&(n.push(G(this,r)),r=this.__last_index__);for(var s=r?e.slice(r):e;this.test(s);)n.push(G(this,r)),s=s.slice(this.__last_index__),r+=this.__last_index__;return n.length?n:null};x.prototype.tlds=function(e,r){return e=Array.isArray(e)?e:[e],r?(this.__tlds__=this.__tlds__.concat(e).sort().filter(function(n,s,l){return n!==l[s-1]}).reverse(),w(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,w(this),this)};x.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),e.schema==="mailto:"&&!/^mailto:/i.test(e.url)&&(e.url="mailto:"+e.url)};x.prototype.onCompile=function(){};var ye=x,ze=C&&C.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var s=Object.getOwnPropertyDescriptor(e,r);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,s)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),Ae=C&&C.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),we=C&&C.__importStar||function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var n=[];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[n.length]=s);return n},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var n=t(e),s=0;s<n.length;s++)n[s]!=="default"&&ze(r,e,n[s]);return Ae(r,e),r}}(),K=C&&C.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(V,"__esModule",{value:!0});var ke=V.default=Pe;const je=K(ie),Re=oe,Oe=K(ye),b=we(F);function Be(t,e=!1){return t=(0,Re.escapeCarriageReturn)(Ie(t)),je.default.ansiToJson(t,{json:!0,remove_empty:!0,use_classes:e})}function Se(t){let e="";return t.bg&&(e+=`${t.bg}-bg `),t.fg&&(e+=`${t.fg}-fg `),t.decoration&&(e+=`ansi-${t.decoration} `),e===""?null:(e=e.substring(0,e.length-1),e)}function Le(t){const e={};switch(t.bg&&(e.backgroundColor=`rgb(${t.bg})`),t.fg&&(e.color=`rgb(${t.fg})`),t.decoration){case"bold":e.fontWeight="bold";break;case"dim":e.opacity="0.5";break;case"italic":e.fontStyle="italic";break;case"hidden":e.visibility="hidden";break;case"strikethrough":e.textDecoration="line-through";break;case"underline":e.textDecoration="underline";break;case"blink":e.textDecoration="blink";break}return e}function Te(t,e,r,n){const s=e?null:Le(r),l=e?Se(r):null;return t?t==="fuzzy"?Ne(r,n,s,l):$e(r,n,s,l):b.createElement("span",{style:s,key:n,className:l},r.content)}function $e(t,e,r,n){const s=[],l=/(\s|^)(https?:\/\/(?:www\.|(?!www))[^\s.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/g;let u=0,o;for(;(o=l.exec(t.content))!==null;){const[,a,i]=o,d=o.index+a.length;d>u&&s.push(t.content.substring(u,d));const c=i.startsWith("www.")?`http://${i}`:i;s.push(b.createElement("a",{key:u,href:c,target:"_blank"},`${i}`)),u=l.lastIndex}return u<t.content.length&&s.push(t.content.substring(u)),b.createElement("span",{style:r,key:e,className:n},s)}function Ne(t,e,r,n){var s;const l=(0,Oe.default)({fuzzyEmail:!1}).tlds(["io"],!0);if(!l.pretest(t.content))return b.createElement("span",{style:r,key:e,className:n},t.content);const u=l.match(t.content);if(!u)return b.createElement("span",{style:r,key:e,className:n},t.content);const o=[t.content.substring(0,(s=u[0])===null||s===void 0?void 0:s.index)];return u.forEach((a,i)=>{var d;o.push(b.createElement("a",{href:a.url,target:"_blank",key:i},t.content.substring(a.index,a.lastIndex))),u[i+1]&&o.push(t.content.substring(u[i].lastIndex,(d=u[i+1])===null||d===void 0?void 0:d.index))}),u[u.length-1].lastIndex!==t.content.length&&o.push(t.content.substring(u[u.length-1].lastIndex,t.content.length)),b.createElement("span",{style:r,key:e,className:n},o)}function Pe(t){const{className:e,useClasses:r,children:n,linkify:s}=t;return b.createElement("code",{className:e},Be(n??"",r??!1).map(Te.bind(null,s??!1,r??!1)))}function Ie(t){let e=t;do t=e,e=t.replace(/[^\n]\x08/gm,"");while(e.length<t.length);return t}function Ze(t){return/^\[(ERROR|FATAL)\]/.test(t)||/^ERROR\b/.test(t)?"text-red-400":/^\[(WARN|WARNING)\]/.test(t)||/^WARN(ING)?\b/.test(t)?"text-amber-400":/^\[DEBUG\]/.test(t)||/^DEBUG\b/.test(t)?"text-sky-400":/^\[(INFO|DOWNLOAD|PROGRESS)\]/.test(t)||/^INFO\b/.test(t)?"text-emerald-400":"text-zinc-200"}function qe(){const[t,e]=F.useState([]),[r,n]=F.useState({state:"idle",recipe:null,code:null}),[s,l]=F.useState([]),[u,o]=F.useState(""),[a,i]=F.useState(!0),d=F.useRef(""),c=F.useRef(null);F.useEffect(()=>{fetch("/__just/recipes",{cache:"no-store"}).then(f=>f.json()).then(f=>{e(f),f[0]&&o(f[0].name)}),fetch("/__config").then(f=>f.json()).then(f=>{d.current=f.stopToken??""});const _=new EventSource("/__just/logs");return _.onmessage=f=>{try{const p=JSON.parse(f.data);p.type==="log"?l(Q=>{const R=[...Q,p.text];return R.length>1e3?R.slice(-1e3):R}):p.type==="clear"?l([]):p.type==="state"&&n({state:p.state,recipe:p.recipe,code:p.code})}catch{}},_.onerror=()=>{_.close()},()=>_.close()},[]),F.useEffect(()=>{a&&c.current&&(c.current.scrollTop=c.current.scrollHeight)},[s,a]);const D=()=>{const _=c.current;_&&i(_.scrollHeight-_.scrollTop-_.clientHeight<40)},m=_=>{const f=_==="stop"?"{}":JSON.stringify({recipe:u});fetch(`/__just/${_}`,{method:"POST",headers:{"x-stop-token":d.current},body:f}).then(p=>p.json()).then(p=>n(p)).catch(p=>console.error("[zdashboard] just action failed:",p)),_!=="stop"&&i(!0)},g=r.state==="running"?"bg-green-500":r.state==="exited"&&r.code?"bg-red-500":"bg-muted-foreground",v=r.state==="running"?`运行中 · ${r.recipe??""}`:r.state==="exited"?`已退出${r.code!=null?` (code ${r.code})`:""}`:"未运行";return h.jsxs("div",{className:"h-full flex flex-col bg-[#0d1117] rounded-lg border overflow-hidden",children:[h.jsxs("div",{className:"flex-none flex items-center gap-2 px-3 h-11 border-b border-white/10 text-xs text-zinc-300",children:[h.jsx("span",{className:`h-2 w-2 rounded-full flex-none ${g}`}),h.jsx("span",{className:"text-zinc-400 truncate",children:v}),h.jsx("select",{value:r.recipe&&r.state==="running"?r.recipe:u,onChange:_=>o(_.target.value),disabled:r.state==="running",className:"h-7 rounded bg-white/5 border border-white/15 px-1.5 text-zinc-200 focus:outline-none disabled:opacity-50",children:t.map(_=>h.jsxs("option",{value:_.name,className:"bg-[#161b22]",children:[_.name,_.description?` — ${_.description}`:""]},_.name))}),h.jsxs("div",{className:"ml-auto flex items-center gap-1.5",children:[r.state==="running"?h.jsxs(A,{size:"sm",variant:"secondary",className:"h-7 gap-1 px-2.5 text-xs",onClick:()=>m("stop"),children:[h.jsx(se,{className:"h-3 w-3"}),"停止"]}):h.jsxs(A,{size:"sm",variant:"secondary",className:"h-7 gap-1 px-2.5 text-xs",onClick:()=>m("start"),disabled:!u,children:[h.jsx(te,{className:"h-3 w-3"}),"启动"]}),h.jsxs(A,{size:"sm",variant:"ghost",className:"h-7 gap-1 px-2.5 text-xs text-zinc-300 hover:text-zinc-100 hover:bg-white/10",onClick:()=>m("restart"),disabled:!r.recipe&&!u,children:[h.jsx(re,{className:"h-3 w-3"}),"重启"]}),h.jsxs(A,{size:"sm",variant:"ghost",className:"h-7 gap-1 px-2.5 text-xs text-zinc-300 hover:text-zinc-100 hover:bg-white/10",onClick:()=>l([]),children:[h.jsx(ee,{className:"h-3 w-3"}),"清屏"]})]})]}),h.jsxs("div",{ref:c,onScroll:D,className:"flex-1 min-h-0 overflow-auto p-3 font-mono text-xs leading-relaxed text-zinc-200",children:[s.length===0&&h.jsx("p",{className:"text-zinc-500",children:"选择 recipe 点「启动」,日志会实时流到这里。"}),s.map((_,f)=>{const p=_.replace(/\r?\n$/,"");return h.jsx("div",{className:"whitespace-pre-wrap break-all min-h-[1.25rem]",children:/\x1b\[/.test(p)?h.jsx(ke,{children:p}):h.jsx("span",{className:Ze(p),children:p})},f)})]}),!a&&h.jsxs("button",{onClick:()=>{i(!0),c.current&&(c.current.scrollTop=c.current.scrollHeight)},className:"absolute bottom-16 right-8 z-10 flex items-center gap-1 px-2.5 h-7 rounded-full bg-zinc-700 text-white text-xs shadow-lg hover:bg-zinc-600",children:[h.jsx(Y,{className:"h-3 w-3"}),"回到底部"]})]})}function Me(){return h.jsx("div",{className:"mx-auto h-full max-w-6xl bg-background border rounded-lg shadow-sm overflow-hidden flex flex-col",children:h.jsx(qe,{})})}const Je=Object.freeze(Object.defineProperty({__proto__:null,default:Me},Symbol.toStringTag,{value:"Module"})),We={mode:"just",label:"Just Runner",icon:"📜",description:"Just 任务日志与执行",Workspace:F.lazy(()=>X(()=>Promise.resolve().then(()=>Je),void 0))};export{Me as JustWorkspace,We as default};
@@ -1,7 +0,0 @@
1
- import{c as N,r as l,j as e,_ as v}from"./index-DkOVCCZ3.js";import{F as m}from"./file-text-DqCOBCjz.js";import{M as f,r as g}from"./index-B9eiA0v2.js";/**
2
- * @license lucide-react v0.460.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const k=N("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);function y(s,t){return t===0?0:Math.round(s/t*100)}function j({done:s,total:t}){const n=y(s,t),d=n===100?"bg-emerald-500/10 text-emerald-600 border-emerald-500/30":n>0?"bg-amber-500/10 text-amber-600 border-amber-500/30":"bg-muted text-muted-foreground border-border";return e.jsxs("span",{className:`inline-flex items-center px-1.5 py-0.5 rounded border text-[10px] font-mono ${d}`,children:[s,"/",t," · ",n,"%"]})}function w({tasks:s}){const t=s.split(`
7
- `).filter(n=>n.trim().startsWith("- ["));return t.length?e.jsx("ul",{className:"space-y-1 text-xs",children:t.map((n,d)=>{const r=/- \[[xX]\]/.test(n),c=n.replace(/^-\s*\[[ xX]\]\s*/,"");return e.jsxs("li",{className:`flex items-start gap-2 ${r?"text-foreground":"text-muted-foreground"}`,children:[r?e.jsx("span",{className:"mt-0.5 h-3.5 w-3.5 shrink-0 rounded-full bg-emerald-500 text-white flex items-center justify-center text-[8px]",children:"✓"}):e.jsx("span",{className:"mt-0.5 h-3.5 w-3.5 shrink-0 rounded-full border border-muted-foreground/50"}),e.jsx("span",{children:c})]},d)})}):e.jsx("p",{className:"text-xs text-muted-foreground",children:"无 tasks.md"})}function _({item:s,onSelect:t}){return e.jsxs("button",{type:"button",onClick:t,className:"w-full text-left rounded-lg border bg-card p-4 hover:bg-muted/50 transition-colors",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(k,{className:"h-4 w-4 text-muted-foreground"}),e.jsx("span",{className:"text-sm font-medium font-mono truncate",children:s.name}),e.jsx(j,{done:s.done,total:s.total})]}),e.jsxs("div",{className:"flex items-center gap-3 text-[11px] text-muted-foreground",children:[e.jsx("span",{className:s.hasProposal?"text-foreground":"",children:"proposal"}),e.jsx("span",{className:s.hasDesign?"text-foreground":"",children:"design"})]})]})}function S(){const[s,t]=l.useState([]),[n,d]=l.useState(null),[r,c]=l.useState(null),[x,o]=l.useState(!0),[u,p]=l.useState(null),h=l.useCallback(()=>{o(!0),d(null),c(null),fetch("/__apply",{cache:"no-store"}).then(a=>a.json()).then(t).catch(a=>p(a.message)).finally(()=>o(!1))},[]);l.useEffect(()=>{h()},[h]);const b=l.useCallback(a=>{o(!0),d(a),fetch(`/__apply/change?name=${encodeURIComponent(a)}`,{cache:"no-store"}).then(i=>i.json()).then(c).catch(i=>p(i.message)).finally(()=>o(!1))},[]);return x&&!s.length?e.jsx("div",{className:"flex h-full items-center justify-center text-muted-foreground",children:e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"mx-auto mb-3.5 grid h-14 w-14 place-items-center rounded-[14px] bg-primary text-primary-foreground text-2xl font-bold animate-pulse",children:"⚙️"}),e.jsx("p",{children:"加载执行进度…"})]})}):u?e.jsx("div",{className:"flex h-full items-center justify-center text-destructive",children:e.jsx("p",{children:u})}):e.jsxs("div",{className:"mx-auto h-full max-w-6xl flex flex-col bg-background border rounded-lg shadow-sm overflow-hidden",children:[e.jsxs("div",{className:"flex-none px-4 py-3 border-b flex items-center gap-2",children:[e.jsx("span",{className:"text-sm font-medium",children:"OpenSpec 执行进度"}),e.jsx("span",{className:"ml-auto text-[11px] text-muted-foreground",children:"openspec/changes/"})]}),e.jsxs("div",{className:"flex-1 min-h-0 overflow-auto p-4 space-y-4",children:[s.length?e.jsx("div",{className:"grid gap-3 sm:grid-cols-2",children:s.map(a=>e.jsx(_,{item:a,onSelect:()=>b(a.name)},a.name))}):e.jsxs("div",{className:"text-center text-muted-foreground py-8",children:[e.jsx("p",{className:"text-sm",children:"没有进行中的 change"}),e.jsx("p",{className:"text-xs mt-1",children:"在 openspec/changes/ 下创建 change 后会显示在这里"})]}),n&&r&&!x&&e.jsxs("section",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"text-sm font-medium",children:r.name}),e.jsx(j,{done:r.done,total:r.total})]}),r.proposal&&e.jsxs("div",{children:[e.jsxs("h4",{className:"text-xs font-medium text-muted-foreground mb-2 flex items-center gap-1",children:[e.jsx(m,{className:"h-3 w-3"})," proposal.md"]}),e.jsx("div",{className:"prose dark:prose-invert max-w-none text-xs border rounded-lg p-3 bg-card",children:e.jsx(f,{remarkPlugins:[g],children:r.proposal})})]}),r.design&&e.jsxs("div",{children:[e.jsxs("h4",{className:"text-xs font-medium text-muted-foreground mb-2 flex items-center gap-1",children:[e.jsx(m,{className:"h-3 w-3"})," design.md"]}),e.jsx("div",{className:"prose dark:prose-invert max-w-none text-xs border rounded-lg p-3 bg-card",children:e.jsx(f,{remarkPlugins:[g],children:r.design})})]}),e.jsxs("div",{children:[e.jsxs("h4",{className:"text-xs font-medium text-muted-foreground mb-2 flex items-center gap-1",children:[e.jsx(m,{className:"h-3 w-3"})," tasks.md"]}),e.jsx("div",{className:"border rounded-lg p-3 bg-card",children:e.jsx(w,{tasks:r.tasks})})]})]})]})]})}function P(){return e.jsx(S,{})}const C=Object.freeze(Object.defineProperty({__proto__:null,default:P},Symbol.toStringTag,{value:"Module"})),W={mode:"apply",label:"执行进度",icon:"⚙️",description:"OpenSpec change 执行进度 · zapply",Workspace:l.lazy(()=>v(()=>Promise.resolve().then(()=>C),void 0))};export{P as ApplyWorkspace,W as default};
@@ -1,31 +0,0 @@
1
- import{c as g,r as a,u as P,j as e,_ as $}from"./index-DkOVCCZ3.js";import{r as L,a as U,b as V,c as W,d as X,e as q,f as F}from"./katex.min-DAmb8ZJI.js";import{M as B,r as G}from"./index-B9eiA0v2.js";/**
2
- * @license lucide-react v0.460.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const _=g("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/**
7
- * @license lucide-react v0.460.0 - ISC
8
- *
9
- * This source code is licensed under the ISC license.
10
- * See the LICENSE file in the root directory of this source tree.
11
- */const H=g("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/**
12
- * @license lucide-react v0.460.0 - ISC
13
- *
14
- * This source code is licensed under the ISC license.
15
- * See the LICENSE file in the root directory of this source tree.
16
- */const J=g("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/**
17
- * @license lucide-react v0.460.0 - ISC
18
- *
19
- * This source code is licensed under the ISC license.
20
- * See the LICENSE file in the root directory of this source tree.
21
- */const K=g("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);/**
22
- * @license lucide-react v0.460.0 - ISC
23
- *
24
- * This source code is licensed under the ISC license.
25
- * See the LICENSE file in the root directory of this source tree.
26
- */const Y=g("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/**
27
- * @license lucide-react v0.460.0 - ISC
28
- *
29
- * This source code is licensed under the ISC license.
30
- * See the LICENSE file in the root directory of this source tree.
31
- */const C=g("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),Q={draft:"bg-zinc-500 text-white",reviewing:"bg-amber-500 text-white",passed:"bg-emerald-600 text-white",rejected:"bg-red-500 text-white"},Z={draft:"草案",reviewing:"评审中",passed:"已通过",rejected:"未通过"},ee=[{key:"all",label:"全部"},{key:"open",label:"待处理"},{key:"answered",label:"已答复"},{key:"accepted",label:"已采纳"},{key:"dismissed",label:"已驳回"}],T={high:"bg-red-500",medium:"bg-amber-500",low:"bg-sky-500"},te={high:"高",medium:"中",low:"低"},E={open:"bg-red-500/15 text-red-600 dark:text-red-400 border-red-500/30",answered:"bg-sky-500/15 text-sky-600 dark:text-sky-400 border-sky-500/30",accepted:"bg-emerald-500/15 text-emerald-600 dark:text-emerald-400 border-emerald-500/30",dismissed:"bg-muted text-muted-foreground border-border"},M={open:"待处理",answered:"已答复",accepted:"已采纳",dismissed:"已驳回"};function se({children:t}){const d=a.useRef(null),[u,o]=a.useState(!1),c=async()=>{var r;const i=((r=d.current)==null?void 0:r.innerText)??"";try{await navigator.clipboard.writeText(i),o(!0),setTimeout(()=>o(!1),1500)}catch(l){console.error("[zdashboard] clipboard copy failed:",l)}};return e.jsxs("div",{className:"not-prose relative my-4 group",children:[e.jsx("button",{onClick:c,className:"absolute right-2 top-2 z-10 px-2 py-0.5 rounded border border-border bg-background/80 text-[11px] opacity-0 group-hover:opacity-100 transition-opacity",children:u?"已复制":"复制"}),e.jsx("pre",{ref:d,className:"overflow-auto rounded-md border bg-[#0d1117] p-3 text-xs leading-relaxed",children:t})]})}function re({path:t}){const[d,u]=a.useState(null);if(a.useEffect(()=>{let r=!0;return fetch("/"+encodeURI(t),{cache:"no-store"}).then(l=>l.text()).then(l=>{r&&u(l)}).catch(()=>{r&&u("")}),()=>{r=!1}},[t]),d===null)return e.jsx("p",{className:"p-3 text-xs text-muted-foreground",children:"加载中…"});const o=d.match(/^---\n([\s\S]*?)\n---\n?/),c=(o==null?void 0:o[1])??null,i=c?d.slice(o[0].length):d;return e.jsxs("div",{className:"prose dark:prose-invert mx-auto max-w-3xl p-8 prose-headings:scroll-mt-4 prose-pre:bg-transparent prose-pre:p-0 prose-pre:m-0",children:[c&&e.jsxs("details",{className:"not-prose mb-4 rounded border p-3 text-sm",children:[e.jsx("summary",{className:"cursor-pointer font-medium",children:"YAML frontmatter"}),e.jsx("pre",{className:"mt-2 whitespace-pre-wrap text-xs",children:c})]}),e.jsx(B,{remarkPlugins:[G,q,F],rehypePlugins:[L,U,[V,{behavior:"wrap",properties:{className:["no-underline"]}}],[W,{detect:!0,ignoreMissing:!0}],[X,{strict:!1}]],components:{pre:({children:r})=>e.jsx(se,{children:r}),a:({href:r,children:l})=>{const m=r==null?void 0:r.startsWith("http");return e.jsx("a",{href:r,target:m?"_blank":void 0,rel:m?"noreferrer noopener":void 0,children:l})}},children:i})]})}function ae({item:t,token:d,onUpdated:u}){const[o,c]=a.useState(t.answer??"");a.useEffect(()=>c(t.answer??""),[t.id,t.answer]);const i=async x=>{const h=await fetch("/__review/item",{method:"POST",headers:{"x-stop-token":d,"Content-Type":"application/json"},body:JSON.stringify({id:t.id,...x})});h.ok&&u(await h.json())},r=x=>x==="open"?{state:x,answer:o}:x==="answered"?{state:x,answer:o}:{state:x,answer:o||t.answer},l=t.state==="accepted"||t.state==="dismissed",m=l?t.state==="accepted"?"已采纳 — 可撤销后重新处理":"已驳回 — 可撤销后重新处理":t.state==="open"?"答复后可采纳或驳回,或直接采纳/驳回":"确认答复后采纳,或驳回 / 撤销";return e.jsxs("div",{className:"rounded-lg border bg-background shadow-sm overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-2 px-3 pt-2.5 text-[11px] text-muted-foreground",children:[t.severity&&e.jsx("span",{className:`h-2 w-2 rounded-full ${T[t.severity]??"bg-muted-foreground"}`}),e.jsx("span",{className:"font-medium",children:t.category??"通用"}),t.severity&&e.jsx("span",{children:te[t.severity]??t.severity}),e.jsx("span",{className:`ml-auto px-1.5 py-0.5 rounded border text-[10px] font-medium ${E[t.state]??""}`,children:M[t.state]})]}),e.jsx("p",{className:"px-3 py-2 text-sm leading-relaxed",children:t.question}),e.jsxs("div",{className:"px-3 pb-3 flex flex-col gap-2",children:[e.jsx("textarea",{value:o,onChange:x=>c(x.target.value),placeholder:"答复 / 补充说明…",rows:2,className:"w-full rounded border border-border bg-background px-2 py-1.5 text-xs focus:outline-none focus:border-primary resize-y"}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[t.state==="accepted"?e.jsxs("span",{className:"inline-flex items-center gap-1 h-7 px-2.5 rounded bg-emerald-500/15 text-emerald-600 dark:text-emerald-400 text-xs font-medium",children:[e.jsx(_,{className:"h-3 w-3"}),"已采纳"]}):t.state==="dismissed"?e.jsxs("span",{className:"inline-flex items-center gap-1 h-7 px-2.5 rounded bg-muted text-muted-foreground text-xs font-medium",children:[e.jsx(C,{className:"h-3 w-3"}),"已驳回"]}):e.jsxs(e.Fragment,{children:[e.jsxs("button",{onClick:()=>i(r("answered")),className:"inline-flex items-center gap-1 h-7 px-2.5 rounded bg-sky-600 hover:bg-sky-500 text-white text-xs",children:[e.jsx(Y,{className:"h-3 w-3"}),t.state==="answered"?"更新答复":"答复"]}),e.jsxs("button",{onClick:()=>i(r("accepted")),className:"inline-flex items-center gap-1 h-7 px-2.5 rounded bg-emerald-600 hover:bg-emerald-500 text-white text-xs",children:[e.jsx(_,{className:"h-3 w-3"}),"采纳"]}),e.jsxs("button",{onClick:()=>i(r("dismissed")),className:"inline-flex items-center gap-1 h-7 px-2.5 rounded bg-muted hover:bg-muted/70 text-xs",children:[e.jsx(C,{className:"h-3 w-3"}),"驳回"]})]}),l&&e.jsxs("button",{onClick:()=>i(r("open")),className:"inline-flex items-center gap-1 h-7 px-2.5 rounded bg-muted hover:bg-muted/70 text-xs",children:[e.jsx(K,{className:"h-3 w-3"}),"撤销"]}),e.jsx("span",{className:"ml-auto text-[10px] text-muted-foreground",children:m})]})]})]})}function ne(){const[t,d]=a.useState(null),[u,o]=a.useState([]),[c,i]=a.useState(null),[r,l]=a.useState(null),[m,x]=a.useState(""),[h,R]=a.useState("all"),[j,y]=a.useState(!0),[k,v]=a.useState(""),z=a.useRef(!1),N=()=>{fetch("/__review",{cache:"no-store"}).then(s=>s.json()).then(d),fetch("/__docs",{cache:"no-store"}).then(s=>s.json()).then(s=>{o(s),i(n=>n&&s.includes(n)?n:s[0]??null)})};a.useEffect(()=>{N(),fetch("/__config").then(s=>s.json()).then(s=>x(s.stopToken??""))},[]),P(()=>{},N,z);const f={all:0,open:0,answered:0,accepted:0,dismissed:0};for(const s of(t==null?void 0:t.items)??[])f.all++,f[s.state]++;const S=a.useMemo(()=>{const s=new Map;for(const p of(t==null?void 0:t.items)??[]){if(h!=="all"&&p.state!==h)continue;const b=p.doc??null;s.has(b)||s.set(b,[]),s.get(b).push(p)}const n=p=>p??"(未关联文档)";return[...s.entries()].sort((p,b)=>n(p[0]).localeCompare(n(b[0]))).map(([p,b])=>({doc:p,label:n(p),items:b.sort((D,I)=>({high:0,medium:1,low:2})[D.severity??"medium"]-{high:0,medium:1,low:2}[I.severity??"medium"])}))},[t,h]),w=((t==null?void 0:t.items)??[]).find(s=>s.id===r)??null,A=s=>{l(s.id),i(s.doc??null)},O=async()=>{v("");const s=await fetch("/__review/status",{method:"POST",headers:{"x-stop-token":m,"Content-Type":"application/json"},body:'{"status":"passed"}'});s.ok?d(await s.json()):v((await s.json()).error??"failed")};return e.jsxs("div",{className:"mx-auto h-full max-w-6xl bg-background border rounded-lg shadow-sm overflow-hidden flex",children:[e.jsxs("aside",{className:"w-[240px] flex-none border-r bg-background overflow-auto",children:[e.jsx("div",{className:"px-3 pt-3 pb-1.5 flex flex-wrap gap-1",children:ee.map(s=>e.jsxs("button",{onClick:()=>R(s.key),className:`px-1.5 py-0.5 rounded text-[11px] border ${h===s.key?"bg-primary text-primary-foreground border-primary":"border-border hover:bg-muted text-muted-foreground"}`,children:[s.label," ",f[s.key]]},s.key))}),e.jsx("div",{className:"px-3 pb-1 text-[11px] font-semibold uppercase tracking-wide text-muted-foreground",children:"文档 · 评审项"}),S.length===0&&e.jsx("p",{className:"px-3 py-2 text-xs text-muted-foreground",children:"无评审项"}),S.map(s=>e.jsxs("div",{children:[e.jsxs("div",{className:"px-3 py-1 text-[11px] font-medium text-muted-foreground flex items-center gap-1.5",children:[e.jsx("span",{className:"truncate",children:s.label}),e.jsx("span",{className:"ml-auto font-mono text-[10px]",children:s.items.length})]}),s.items.map(n=>e.jsxs("button",{onClick:()=>A(n),className:`w-full text-left px-3 py-1.5 text-xs border-l-2 flex items-center gap-1.5 hover:bg-muted ${r===n.id?"bg-muted font-medium border-primary":"border-transparent text-muted-foreground"}`,children:[n.severity&&e.jsx("span",{className:`h-1.5 w-1.5 rounded-full shrink-0 ${T[n.severity]??""}`}),e.jsx("span",{className:"truncate",children:n.question}),e.jsx("span",{className:`ml-auto shrink-0 text-[9px] px-1 rounded ${E[n.state]??""}`,children:M[n.state]})]},n.id))]},s.doc??"(none)"))]}),e.jsxs("div",{className:"flex-1 min-h-0 flex flex-col",children:[e.jsxs("div",{className:"flex-none flex items-center gap-2 px-3.5 border-b bg-background",children:[t&&e.jsx("span",{className:`px-2 py-0.5 rounded text-[11px] font-medium ${Q[t.status]??""}`,children:Z[t.status]??t.status}),f.open>0&&e.jsxs("span",{className:"text-[11px] text-muted-foreground",children:["还有 ",f.open," 项待处理"]}),e.jsx("button",{onClick:O,disabled:!t||t.status==="passed"||f.open>0,className:"ml-auto h-7 px-3 rounded bg-emerald-600 hover:bg-emerald-500 disabled:opacity-50 disabled:cursor-not-allowed text-white text-xs",children:"通过"})]}),k&&e.jsx("div",{className:"bg-red-500/10 text-red-600 dark:text-red-400 text-xs px-3.5 py-1.5 border-b border-red-500/20",children:k}),e.jsxs("div",{className:"flex-1 min-h-0 flex flex-col",children:[j&&e.jsxs("div",{className:"flex-1 min-h-0 overflow-auto border-b bg-background relative",children:[e.jsx("button",{onClick:()=>y(!1),title:"收起文档",className:"absolute right-2 top-2 z-10 h-6 px-2 rounded border border-border bg-background/80 text-xs hover:bg-muted",children:e.jsx(H,{className:"h-3.5 w-3.5"})}),c?e.jsx(re,{path:c}):e.jsx("p",{className:"p-6 text-sm text-muted-foreground",children:"在左侧选择评审项"})]}),e.jsxs("div",{className:j?"flex-none h-[42%] border-b overflow-auto p-3 flex flex-col gap-3":"flex-1 min-h-0 overflow-auto p-3 flex flex-col gap-3",style:j?void 0:{backgroundImage:"radial-gradient(circle at 1px 1px, hsl(var(--border)) 1px, transparent 0)",backgroundSize:"20px 20px"},children:[!j&&e.jsxs("button",{onClick:()=>y(!0),title:"展开文档",className:"self-start inline-flex items-center gap-1 h-6 px-2 rounded border border-border bg-background text-xs hover:bg-muted",children:[e.jsx(J,{className:"h-3.5 w-3.5"}),"展开文档"]}),w?e.jsx(ae,{item:w,token:m,onUpdated:d},w.id):e.jsx("p",{className:"text-xs text-muted-foreground text-center pt-6",children:"在左侧选择一个评审项"})]})]})]})]})}function oe(){return e.jsx(ne,{})}const de=Object.freeze(Object.defineProperty({__proto__:null,default:oe},Symbol.toStringTag,{value:"Module"})),xe={mode:"review",label:"文档评审",icon:"✅",description:"评审项状态流转 · zreview",Workspace:a.lazy(()=>$(()=>Promise.resolve().then(()=>de),void 0))};export{oe as ReviewWorkspace,xe as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Workspace-Cz1A_IXM.js","assets/index-DkOVCCZ3.js","assets/index-D58_bWw5.css"])))=>i.map(i=>d[i]);
2
- import{r as o,_ as t}from"./index-DkOVCCZ3.js";const a={mode:"stats",label:"项目统计",icon:"📊",description:"项目文件统计 · 扫描生成",Workspace:o.lazy(()=>t(()=>import("./Workspace-Cz1A_IXM.js"),__vite__mapDeps([0,1,2])))};export{a as default};