zdashboard 2.5.1 → 2.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +5 -3
- package/dist/cli.js.map +1 -1
- package/dist/web/assets/FileIcon-B0-2gV6a.js +10 -0
- package/dist/web/assets/FilterPills-B6u1IBeC.js +1 -0
- package/dist/web/assets/{MdViewer-DoCxNu7A.js → MdViewer-Cvh3TNQI.js} +2 -2
- package/dist/web/assets/ProgressBar-CbyvyLzw.js +1 -0
- package/dist/web/assets/Workspace-DQmfVJh6.js +1 -0
- package/dist/web/assets/badge-DTb6qo3S.js +1 -0
- package/dist/web/assets/index-BfA6l4to.js +7816 -0
- package/dist/web/assets/{index-DKB8z9I8.js → index-BvuOeKbq.js} +1 -1
- package/dist/web/assets/index-DQkehbup.css +1 -0
- package/dist/web/assets/web-5newSm97.js +1 -0
- package/dist/web/assets/web-BOg9UnpC.js +1 -0
- package/dist/web/assets/web-BXCBKn6i.js +5 -0
- package/dist/web/assets/web-BcTJQUKr.js +1 -0
- package/dist/web/assets/web-C8I10oqh.js +2 -0
- package/dist/web/assets/web-CLCAgjmg.js +1 -0
- package/dist/web/assets/web-CXE89yN1.js +2 -0
- package/dist/web/index.html +2 -2
- package/package.json +2 -1
- package/dist/web/assets/FileIcon-CWL_Aew0.js +0 -110
- package/dist/web/assets/FilterPills-DfrtQ2BX.js +0 -1
- package/dist/web/assets/ProgressBar-CIDdp-03.js +0 -1
- package/dist/web/assets/Workspace-CsW6-X9a.js +0 -16
- package/dist/web/assets/badge-izTmQYbF.js +0 -1
- package/dist/web/assets/book-open-CCPWUzhH.js +0 -6
- package/dist/web/assets/file-text-DHJKu2eF.js +0 -6
- package/dist/web/assets/index-C39_SyD0.css +0 -1
- package/dist/web/assets/index-Cu37wtgU.js +0 -161
- package/dist/web/assets/vt323-latin-400-normal-Dqn9ZSPj.woff +0 -0
- package/dist/web/assets/web-9Iy8fpbv.js +0 -7
- package/dist/web/assets/web-C4KehBpT.js +0 -26
- package/dist/web/assets/web-CSsoKnCH.js +0 -2
- package/dist/web/assets/web-CnZCJ59N.js +0 -25
- package/dist/web/assets/web-DjRxK_Na.js +0 -16
- package/dist/web/assets/web-DuuJgOy2.js +0 -21
- package/dist/web/assets/web-DxAXHOpi.js +0 -16
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{u as h,r as a,a as W,j as e,E as C,_ as O}from"./index-BfA6l4to.js";import{B as m}from"./badge-DTb6qo3S.js";import{P as $}from"./ProgressBar-CbyvyLzw.js";import{M as b,r as N}from"./index-BvuOeKbq.js";const k=/^\s*-\s*\[([ xX])\]\s*(.*)$/;function R(s){return s.split(`
|
|
2
|
+
`).filter(n=>k.test(n)).map(n=>{const t=n.match(k);return{text:((t==null?void 0:t[2])??n).trim(),checked:(t==null?void 0:t[1])!==" "}})}function w(s,n){return n===0?0:Math.round(s/n*100)}function y({done:s,total:n}){const t=w(s,n),o=t===100?"success":t>0?"warning":"neutral";return e.jsxs(m,{variant:o,children:[s,"/",n," · ",t,"%"]})}function v(){return e.jsx(m,{variant:"info",children:"worktree 执行中"})}function B(){return e.jsx(m,{variant:"info",children:"含测试策略"})}function I({name:s,pending:n}){const t=n?"neutral":"success";return e.jsx(m,{variant:t,children:n?`${s} · 等待前置`:s})}function A({tasks:s}){const n=R(s);if(!n.length)return e.jsx("p",{className:"text-xs text-muted-foreground",children:"无 tasks.md"});const t=n.findIndex(o=>!o.checked);return e.jsx("ul",{className:"space-y-1 text-xs",children:n.map((o,l)=>{const i=l===t;return e.jsxs("li",{className:`flex items-start gap-2 rounded px-1.5 -mx-1.5 py-0.5 ${i?"bg-warning/10 border-l-2 border-warning":""} ${o.checked?"text-foreground":"text-muted-foreground"}`,children:[o.checked?e.jsx("span",{className:"mt-0.5 h-3.5 w-3.5 shrink-0 rounded-full bg-success text-white flex items-center justify-center text-xs",children:"✓"}):e.jsx("span",{className:`mt-0.5 h-3.5 w-3.5 shrink-0 rounded-full border ${i?"border-warning":"border-muted-foreground/50"}`}),e.jsx("span",{children:o.text}),i&&e.jsx("span",{className:"ml-auto flex-none text-xs font-medium text-warning",children:"← 下一步"})]},l)})})}function L({item:s,onSelect:n}){const{icon:t}=h();return e.jsxs("button",{type:"button",onClick:n,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-1.5 flex-wrap",children:[t("folder-open","h-4 w-4 text-muted-foreground"),e.jsx("span",{className:"text-sm font-medium font-mono truncate",children:s.name}),e.jsx(y,{done:s.done,total:s.total}),s.inWorktree&&e.jsx(v,{})]}),e.jsx($,{value:w(s.done,s.total),className:"h-1 mb-2"}),e.jsxs("div",{className:"flex items-center gap-3 text-sm 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 M({refreshKey:s}){const{icon:n}=h(),[t,o]=a.useState([]);return a.useEffect(()=>{fetch("/__worktrees",{cache:"no-store"}).then(l=>l.json()).then(o).catch(()=>o([]))},[s]),t.length?e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[n("git-branch","h-3.5 w-3.5 text-muted-foreground"),e.jsx("span",{className:"text-sm text-muted-foreground mr-1",children:"Worktree:"}),t.map(l=>e.jsxs("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded border text-xs font-mono bg-info/10 text-info border-info/30",title:l.head,children:[l.name,"@",l.branch||"detached"]},l.name))]}):null}function z({navTarget:s}){const{icon:n}=h(),[t,o]=a.useState([]),[l,i]=a.useState(0);a.useRef(!1),W(()=>{},()=>i(r=>r+1));const[S,_]=a.useState(null),[c,E]=a.useState(null),[f,x]=a.useState(!0),[p,g]=a.useState(null),[U,P]=a.useState(!1),j=a.useCallback(()=>{x(!0),fetch("/__apply",{cache:"no-store"}).then(r=>r.json()).then(o).catch(r=>g(r.message)).finally(()=>x(!1))},[]);a.useEffect(()=>{j()},[j,l]);const u=a.useCallback(r=>{x(!0),_(r),P(!0),fetch(`/__apply/change?name=${encodeURIComponent(r)}`,{cache:"no-store"}).then(d=>d.json()).then(E).catch(d=>g(d.message)).finally(()=>x(!1))},[]);return a.useEffect(()=>{if(!(s!=null&&s.wt)||!t.length)return;const r=t.find(d=>d.name===s.wt);r&&u(r.name)},[s==null?void 0:s.wt,s==null?void 0:s.navToken,t,u]),f&&!t.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-[var(--radius-lg)] bg-primary text-primary-foreground text-2xl font-bold animate-pulse",children:"⚙️"}),e.jsx("p",{children:"加载执行进度…"})]})}):p?e.jsx("div",{className:"flex h-full items-center justify-center text-destructive",children:e.jsx("p",{children:p})}):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-sm text-muted-foreground",children:"openspec/changes/"})]}),e.jsxs("div",{className:"flex-1 min-h-0 overflow-auto p-4 space-y-4",children:[e.jsx(M,{refreshKey:l}),t.length?e.jsx("div",{className:"grid gap-3 sm:grid-cols-2",children:t.map(r=>e.jsx(L,{item:r,onSelect:()=>u(r.name)},r.name))}):e.jsx(C,{icon:n("folder-git-2","h-6 w-6"),title:"没有进行中的 change",hint:"在 openspec/changes/ 下创建 change 后会显示在这里"}),S&&c&&!f&&e.jsxs("section",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("h3",{className:"text-sm font-medium",children:c.name}),e.jsx(y,{done:c.done,total:c.total}),c.inWorktree&&e.jsx(v,{}),c.hasTestStrategy&&e.jsx(B,{})]}),c.dependsOn.length>0&&e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"text-xs text-muted-foreground",children:"依赖:"}),c.dependsOn.map(r=>e.jsx(I,{name:r,pending:t.some(d=>d.name===r)},r))]}),c.proposal&&e.jsxs("div",{children:[e.jsxs("h4",{className:"text-xs font-medium text-muted-foreground mb-2 flex items-center gap-1",children:[n("file-text","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(b,{remarkPlugins:[N],children:c.proposal})})]}),c.design&&e.jsxs("div",{children:[e.jsxs("h4",{className:"text-xs font-medium text-muted-foreground mb-2 flex items-center gap-1",children:[n("file-text","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(b,{remarkPlugins:[N],children:c.design})})]}),e.jsxs("div",{children:[e.jsxs("h4",{className:"text-xs font-medium text-muted-foreground mb-2 flex items-center gap-1",children:[n("file-text","h-3 w-3")," tasks.md"]}),e.jsx("div",{className:"border rounded-lg p-3 bg-card",children:e.jsx(A,{tasks:c.tasks})})]})]})]})]})}function D({navTarget:s}){return e.jsx(z,{navTarget:s})}const K=Object.freeze(Object.defineProperty({__proto__:null,default:D},Symbol.toStringTag,{value:"Module"})),F={mode:"apply",label:"执行进度",icon:"⚙️",description:"OpenSpec change 执行进度 · zapply",Workspace:a.lazy(()=>O(()=>Promise.resolve().then(()=>K),void 0))};export{D as ApplyWorkspace,F as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as D,r as o,a as I,j as e,_ as R}from"./index-BfA6l4to.js";import{M as F}from"./MdViewer-Cvh3TNQI.js";import{P as M}from"./ProgressBar-CbyvyLzw.js";import{F as z}from"./FilterPills-B6u1IBeC.js";import"./index-BvuOeKbq.js";const V={draft:"bg-muted-foreground text-white",reviewing:"bg-warning text-white",passed:"bg-success text-white",rejected:"bg-destructive text-white"},L={draft:"草案",reviewing:"评审中",passed:"已通过",rejected:"未通过"},W=[{key:"all",label:"全部"},{key:"open",label:"待处理"},{key:"answered",label:"已答复"},{key:"accepted",label:"已采纳"},{key:"dismissed",label:"已驳回"}],S={high:"bg-destructive",medium:"bg-warning",low:"bg-info"},B={high:"高",medium:"中",low:"低"},T={open:"bg-destructive/15 text-destructive border-destructive/30",answered:"bg-info/15 text-info border-info/30",accepted:"bg-success/15 text-success border-success/30",dismissed:"bg-muted text-muted-foreground border-border"},E={open:"待处理",answered:"已答复",accepted:"已采纳",dismissed:"已驳回"};function U({item:t,token:r,onUpdated:u}){const[m,h]=o.useState(t.answer??"");o.useEffect(()=>h(t.answer??""),[t.id,t.answer]);const l=async d=>{const f=await fetch("/__review/item",{method:"POST",headers:{"x-stop-token":r,"Content-Type":"application/json"},body:JSON.stringify({id:t.id,...d})});f.ok&&u(await f.json())},i=d=>d==="open"?{state:d,answer:m}:d==="answered"?{state:d,answer:m}:{state:d,answer:m||t.answer},p=t.state==="accepted"||t.state==="dismissed",g=p?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-sm text-muted-foreground",children:[t.severity&&e.jsx("span",{className:`h-2 w-2 rounded-full ${S[t.severity]??"bg-muted-foreground"}`}),e.jsx("span",{className:"font-medium",children:t.category??"通用"}),t.severity&&e.jsx("span",{children:B[t.severity]??t.severity}),e.jsx("span",{className:`ml-auto px-1.5 py-0.5 rounded border text-xs font-medium ${T[t.state]??""}`,children:E[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:m,onChange:d=>h(d.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-success/15 text-success text-xs font-medium",children:[icon("check","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:[icon("x","h-3 w-3"),"已驳回"]}):e.jsxs(e.Fragment,{children:[e.jsxs("button",{onClick:()=>l(i("answered")),className:"inline-flex items-center gap-1 h-7 px-2.5 rounded bg-info hover:bg-info text-white text-xs",children:[icon("send","h-3 w-3"),t.state==="answered"?"更新答复":"答复"]}),e.jsxs("button",{onClick:()=>l(i("accepted")),className:"inline-flex items-center gap-1 h-7 px-2.5 rounded bg-success hover:bg-success text-white text-xs",children:[icon("check","h-3 w-3"),"采纳"]}),e.jsxs("button",{onClick:()=>l(i("dismissed")),className:"inline-flex items-center gap-1 h-7 px-2.5 rounded bg-muted hover:bg-muted/70 text-xs",children:[icon("x","h-3 w-3"),"驳回"]})]}),p&&e.jsxs("button",{onClick:()=>l(i("open")),className:"inline-flex items-center gap-1 h-7 px-2.5 rounded bg-muted hover:bg-muted/70 text-xs",children:[icon("rotate-ccw","h-3 w-3"),"撤销"]}),e.jsx("span",{className:"ml-auto text-xs text-muted-foreground",children:g})]})]})]})}function X(){const{icon:t}=D(),[r,u]=o.useState(null),[m,h]=o.useState([]),[l,i]=o.useState(null),[p,g]=o.useState(null),[d,f]=o.useState(""),[b,C]=o.useState("all"),[w,j]=o.useState(!0),[N,k]=o.useState("");o.useRef(!1);const y=()=>{fetch("/__review",{cache:"no-store"}).then(s=>s.json()).then(u),fetch("/__docs",{cache:"no-store"}).then(s=>s.json()).then(s=>{h(s),i(n=>n&&s.includes(n)?n:s[0]??null)})};o.useEffect(()=>{y(),fetch("/__config").then(s=>s.json()).then(s=>f(s.stopToken??""))},[]),I(()=>{},y);const c={all:0,open:0,answered:0,accepted:0,dismissed:0};for(const s of(r==null?void 0:r.items)??[])c.all++,c[s.state]++;const _=o.useMemo(()=>{const s=new Map;for(const a of(r==null?void 0:r.items)??[]){if(b!=="all"&&a.state!==b)continue;const x=a.doc??null;s.has(x)||s.set(x,[]),s.get(x).push(a)}const n=a=>a??"(未关联文档)";return[...s.entries()].sort((a,x)=>n(a[0]).localeCompare(n(x[0]))).map(([a,x])=>({doc:a,label:n(a),items:x.sort(($,A)=>({high:0,medium:1,low:2})[$.severity??"medium"]-{high:0,medium:1,low:2}[A.severity??"medium"])}))},[r,b]),v=((r==null?void 0:r.items)??[]).find(s=>s.id===p)??null,O=s=>{g(s.id),i(s.doc??null)},P=async()=>{k("");const s=await fetch("/__review/status",{method:"POST",headers:{"x-stop-token":d,"Content-Type":"application/json"},body:'{"status":"passed"}'});s.ok?u(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-[var(--review-sidebar-w)] flex-none border-r bg-background overflow-auto",children:[e.jsx("div",{className:"px-3 pt-3 pb-2 border-b",children:(()=>{const s=c.all,n=s-c.open,a=s===0?0:Math.round(n/s*100);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-center justify-between text-sm mb-1.5",children:[e.jsx("span",{className:"text-muted-foreground",children:"处理进度"}),e.jsxs("span",{className:"font-mono",children:[n,"/",s," · ",a,"%"]})]}),e.jsx(M,{value:a,className:"h-1.5"})]})})()}),e.jsx(z,{items:W.map(s=>({key:String(s.key),label:`${s.label} ${c[s.key]}`})),value:b,onChange:s=>C(s),ariaLabel:"评审项筛选"}),e.jsx("div",{className:"px-3 pb-1 text-sm font-semibold uppercase tracking-wide text-muted-foreground",children:"文档 · 评审项"}),_.length===0&&e.jsx("p",{className:"px-3 py-2 text-xs text-muted-foreground",children:"无评审项"}),_.map(s=>e.jsxs("div",{children:[e.jsxs("div",{className:"px-3 py-1 text-sm 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-xs",children:s.items.length})]}),s.items.map(n=>e.jsxs("button",{onClick:()=>O(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 ${p===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 ${S[n.severity]??""}`}),e.jsx("span",{className:"truncate",children:n.question}),e.jsx("span",{className:`ml-auto shrink-0 text-xs px-1 rounded ${T[n.state]??""}`,children:E[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:[r&&e.jsx("span",{className:`px-2 py-0.5 rounded text-sm font-medium ${V[r.status]??""}`,children:L[r.status]??r.status}),c.open>0&&e.jsxs("span",{className:"text-sm text-muted-foreground",children:["还有 ",c.open," 项待处理"]}),e.jsx("button",{onClick:P,disabled:!r||r.status==="passed"||c.open>0,className:"ml-auto h-7 px-3 rounded bg-success hover:bg-success disabled:opacity-50 disabled:cursor-not-allowed text-white text-xs",children:"通过"})]}),N&&e.jsx("div",{className:"bg-destructive/10 text-destructive text-xs px-3.5 py-1.5 border-b border-destructive/20",children:N}),e.jsxs("div",{className:"flex-1 min-h-0 flex flex-col",children:[w&&e.jsxs("div",{className:"flex-1 min-h-0 overflow-auto border-b bg-background relative",children:[e.jsx("button",{onClick:()=>j(!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:t("chevron-down","h-3.5 w-3.5")}),l?e.jsx(F,{path:l}):e.jsx("p",{className:"p-6 text-sm text-muted-foreground",children:"在左侧选择评审项"})]}),e.jsxs("div",{className:w?"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 dot-grid",children:[!w&&e.jsxs("button",{onClick:()=>j(!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:[t("chevron-up","h-3.5 w-3.5"),"展开文档"]}),v?e.jsx(U,{item:v,token:d,onUpdated:u},v.id):e.jsx("p",{className:"text-xs text-muted-foreground text-center pt-6",children:"在左侧选择一个评审项"})]})]})]})]})}function q(){return e.jsx(X,{})}const G=Object.freeze(Object.defineProperty({__proto__:null,default:q},Symbol.toStringTag,{value:"Module"})),Z={mode:"review",label:"文档评审",icon:"✅",description:"评审项状态流转 · zreview",Workspace:o.lazy(()=>R(()=>Promise.resolve().then(()=>G),void 0))};export{q as ReviewWorkspace,Z as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Workspace-DQmfVJh6.js","assets/index-BfA6l4to.js","assets/index-DQkehbup.css","assets/ProgressBar-CbyvyLzw.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as o,_ as t}from"./index-BfA6l4to.js";const a={mode:"stats",label:"项目统计",icon:"📊",description:"项目文件统计 · 扫描生成",Workspace:o.lazy(()=>t(()=>import("./Workspace-DQmfVJh6.js"),__vite__mapDeps([0,1,2,3])))};export{a as default};
|
package/dist/web/index.html
CHANGED
|
@@ -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-
|
|
9
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-BfA6l4to.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="/assets/index-DQkehbup.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.
|
|
3
|
+
"version": "2.6.1",
|
|
4
4
|
"description": "ZCode skill dashboard platform — pluggable viewers for zdesign/zview/zreview/zgoal",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@fontsource/vt323": "^5.3.0",
|
|
25
|
+
"@phosphor-icons/react": "^2.1.10",
|
|
25
26
|
"@radix-ui/react-dropdown-menu": "^2.1.24",
|
|
26
27
|
"@radix-ui/react-scroll-area": "^1.2.0",
|
|
27
28
|
"@radix-ui/react-separator": "^1.1.0",
|