scrum-skills 0.2.3 → 0.2.4
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/.agents/skills/scrum-planning/references/schema.md +3 -2
- package/README.md +15 -6
- package/assets/board/200.html +1 -1
- package/assets/board/404.html +1 -1
- package/assets/board/_nuxt/{BannxgAO.js → 0VBLkWnu.js} +1 -1
- package/assets/board/_nuxt/{C9Eg7sGC.js → BNKWWG8o.js} +1 -1
- package/assets/board/_nuxt/{BQSM1Ln0.js → BPTrRhcw.js} +1 -1
- package/assets/board/_nuxt/{B7foC6AH.js → BSov4ehT.js} +1 -1
- package/assets/board/_nuxt/BTxVIV74.js +1 -0
- package/assets/board/_nuxt/{D8NAsEfE.js → Bb3Limos.js} +1 -1
- package/assets/board/_nuxt/{CPfeOlrH.js → Bh7eUS6e.js} +1 -1
- package/assets/board/_nuxt/{DA0S9GHd.js → Bu60uYgs.js} +1 -1
- package/assets/board/_nuxt/{DiYBussm.js → BuuAjxsV.js} +1 -1
- package/assets/board/_nuxt/{BvaAl29K.js → C-GYjxwr.js} +3 -3
- package/assets/board/_nuxt/{DEBhVwtl.js → C9StZL3D.js} +1 -1
- package/assets/board/_nuxt/{ADHYAojV.js → CD0uJuyA.js} +1 -1
- package/assets/board/_nuxt/{C3ssq3NT.js → CHZ_IHOa.js} +1 -1
- package/assets/board/_nuxt/{C9lP5soO.js → CNbS93H9.js} +1 -1
- package/assets/board/_nuxt/{DVC07Kf9.js → CUnX_QKi.js} +1 -1
- package/assets/board/_nuxt/CeiBZIn1.js +95 -0
- package/assets/board/_nuxt/{Dpzighda.js → Cfk_R787.js} +1 -1
- package/assets/board/_nuxt/{DhkiugsE.js → ChJuu-Ky.js} +1 -1
- package/assets/board/_nuxt/{DwNOEVN_.js → CjRYYbsC.js} +1 -1
- package/assets/board/_nuxt/CuJUHLl8.js +1 -0
- package/assets/board/_nuxt/{BKgQBiDB.js → CvFE1CeN.js} +1 -1
- package/assets/board/_nuxt/{CAJYxF-h.js → CyAQx5wv.js} +1 -1
- package/assets/board/_nuxt/{BJ0EVa07.js → D1Yxjnz9.js} +1 -1
- package/assets/board/_nuxt/{CviJuCa4.js → D3YCAmfu.js} +1 -1
- package/assets/board/_nuxt/{joIhBaO-.js → D8Bpf7sE.js} +1 -1
- package/assets/board/_nuxt/{GzmVZqnA.js → DJUwhJ8T.js} +1 -1
- package/assets/board/_nuxt/{BXQZAVYz.js → DLkAKotw.js} +1 -1
- package/assets/board/_nuxt/{DQRn5Z3H.js → DaqxYsbV.js} +1 -1
- package/assets/board/_nuxt/{jCMbKsJ3.js → DhhR1iR4.js} +1 -1
- package/assets/board/_nuxt/{CL3OrPP7.js → DmKZi-Wo.js} +1 -1
- package/assets/board/_nuxt/{4FVXNzN-.js → DrbU50Zd.js} +1 -1
- package/assets/board/_nuxt/{DcWIG384.js → DsNkyZPc.js} +1 -1
- package/assets/board/_nuxt/{BCXs9rBJ.js → DwcwzwSx.js} +1 -1
- package/assets/board/_nuxt/{BuVRe79A.js → HrhQecsY.js} +1 -1
- package/assets/board/_nuxt/{Db4IStii.js → KhBLkIKl.js} +1 -1
- package/assets/board/_nuxt/{bXQUY80V.js → MTucdeiW.js} +1 -1
- package/assets/board/_nuxt/{CZPwmwA5.js → RJtjdZeG.js} +1 -1
- package/assets/board/_nuxt/{CTOFhZkc.js → RM4VQc4e.js} +1 -1
- package/assets/board/_nuxt/Vo4wMbnS.js +1 -0
- package/assets/board/_nuxt/builds/latest.json +1 -1
- package/assets/board/_nuxt/builds/meta/ecbff4a6-6538-49b0-9844-64f03ebd103a.json +1 -0
- package/assets/board/_nuxt/{entry.ChOvfapw.css → entry.nk2xQ-sa.css} +1 -1
- package/assets/board/_nuxt/{Cw7Z2eHM.js → fFGyRlCx.js} +1 -1
- package/assets/board/_nuxt/{-_kK9OzO.js → l05SqxhY.js} +1 -1
- package/assets/board/_nuxt/milestones.z-UuT44X.css +1 -0
- package/assets/board/_nuxt/{B5u1XkK4.js → obNw9aRV.js} +1 -1
- package/assets/board/_nuxt/pages.Bi6nErnd.css +1 -0
- package/assets/board/_nuxt/uGmbQYdY.js +1 -0
- package/assets/board/burndown/index.html +1 -1
- package/assets/board/epics/index.html +1 -1
- package/assets/board/gantt/index.html +1 -1
- package/assets/board/index.html +1 -1
- package/assets/board/milestones/index.html +1 -1
- package/bin/scrum-skills.mjs +34 -11
- package/package.json +40 -41
- package/templates/AGENTS.md +1 -1
- package/tools/ai.mjs +24 -2
- package/tools/validate.mjs +21 -7
- package/assets/board/_nuxt/BpR5gMZX.js +0 -95
- package/assets/board/_nuxt/CZc2Mypg.js +0 -1
- package/assets/board/_nuxt/DWxQkuvT.js +0 -1
- package/assets/board/_nuxt/DttMo5b5.js +0 -1
- package/assets/board/_nuxt/FCuSfyjP.js +0 -1
- package/assets/board/_nuxt/builds/meta/24603984-d514-4dff-badc-898a1fd5e770.json +0 -1
- package/assets/board/_nuxt/milestones.CVvAMKg4.css +0 -1
- package/assets/board/_nuxt/pages.DSSttn9g.css +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Cn as e,En as t,Ht as n,L as r,On as i,bn as a,ct as o,g as s,k as c,pt as l,tt as u,vn as d,xn as f}from"./DZo3dYLJ.js";import{C as p,S as m,c as h,d as g,f as _,g as v,n as y,o as b,s as x,t as S,u as C,v as w,y as T}from"./FCuSfyjP.js";function E(e={}){let{inheritAttrs:t=!0,name:n=`ReusableTemplate`}=e,r=f(),i=c({name:`${n}.define`,setup(e,{slots:t}){return()=>{r.value=t.default}}}),a=c({inheritAttrs:t,name:`${n}.reuse`,props:e.props,setup(n,{attrs:i,slots:a}){return()=>{if(!r.value)throw Error(`[VueUse] Failed to find the definition of reusable template`);let o=r.value?.call(r,{...e.props==null?D(i):n,$slots:a});return t&&o?.length===1?o[0]:o}}});return g({define:i,reuse:a},[i,a])}function D(e){let t={};for(let n in e)t[S(n)]=e[n];return t}var O=x?window:void 0;x&&window.document;var k=x?window.navigator:void 0;x&&window.location;function A(e){let n=t(e);return n?.$el??n}function j(...e){let n=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),r=s(()=>{let n=v(t(e[0])).filter(e=>e!=null);return n.every(e=>typeof e!=`string`)?n:void 0});return p(()=>[r.value?.map(e=>A(e))??[O].filter(e=>e!=null),v(t(r.value?e[1]:e[0])),v(i(r.value?e[2]:e[1])),t(r.value?e[3]:e[2])],([e,t,r,i],a,o)=>{if(!e?.length||!t?.length||!r?.length)return;let s=C(i)?{...i}:i,c=e.flatMap(e=>t.flatMap(t=>r.map(r=>n(e,t,r,s))));o(()=>{c.forEach(e=>e())})},{flush:`post`})}function M(){let e=f(!1),t=r();return t&&o(()=>{e.value=!0},t),e}function N(e){let t=M();return s(()=>(t.value,!!e()))}function P(e,r,i={}){let{window:a=O,...o}=i,c,l=N(()=>a&&`MutationObserver`in a),u=()=>{c&&=(c.disconnect(),void 0)},d=n(s(()=>{let n=v(t(e)).map(A).filter(_);return new Set(n)}),e=>{u(),l.value&&e.size&&(c=new MutationObserver(r),e.forEach(e=>c.observe(e,o)))},{immediate:!0,flush:`post`}),f=()=>c?.takeRecords(),p=()=>{d(),u()};return T(p),{isSupported:l,stop:p,takeRecords:f}}function F(e){return typeof e==`function`?e:typeof e==`string`?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function I(...e){let n,r,i={};e.length===3?(n=e[0],r=e[1],i=e[2]):e.length===2?typeof e[1]==`object`?(n=!0,r=e[0],i=e[1]):(n=e[0],r=e[1]):(n=!0,r=e[0]);let{target:a=O,eventName:o=`keydown`,passive:s=!1,dedupe:c=!1}=i,l=F(n);return j(a,o,e=>{e.repeat&&t(c)||l(e)&&r(e)},s)}function L(e,n={}){let{immediate:r=!0,fpsLimit:i=null,window:o=O,once:c=!1}=n,l=f(!1),u=s(()=>{let e=t(i);return e?1e3/e:null}),d=0,p=null;function m(t){if(!l.value||!o)return;d||=t;let n=t-d;u.value&&n<u.value?p=o.requestAnimationFrame(m):(d=t,e({delta:n,timestamp:t}),c?(l.value=!1,p=null):p=o.requestAnimationFrame(m))}function h(){!l.value&&o&&(l.value=!0,d=0,p=o.requestAnimationFrame(m))}function g(){l.value=!1,p!=null&&o&&(o.cancelAnimationFrame(p),p=null)}return r&&h(),T(g),{isActive:a(l),pause:g,resume:h}}function R(t,n={}){let{controls:r=!1,navigator:i=k}=n,a=N(()=>i&&`permissions`in i),o=f(),s=typeof t==`string`?{name:t}:t,c=f(),l=()=>{c.value=o.value?.state??`prompt`};j(o,`change`,l,{passive:!0});let u=b(async()=>{if(a.value){if(!o.value)try{o.value=await i.permissions.query(s)}catch{o.value=void 0}finally{l()}if(r)return e(o.value)}});return u(),r?{state:c,isSupported:a,query:u}:c}function z(e={}){let{navigator:n=k,read:r=!1,source:i,copiedDuring:o=1500,legacy:c=!1}=e,l=N(()=>n&&`clipboard`in n),u=R(`clipboard-read`),d=R(`clipboard-write`),p=s(()=>l.value||c),h=f(``),g=f(!1),_=f(!1),v=m(()=>g.value=!1,o,{immediate:!1}),y=0;async function b(){let e=!(l.value&&T(u.value));if(!e)try{h.value=await n.clipboard.readText()}catch{e=!0}e&&(h.value=w())}p.value&&r&&j([`copy`,`cut`],b,{passive:!0});async function x(e){let r=e??t(i);if(p.value&&r!=null){_.value=!0;let e=!(l.value&&T(d.value));if(!e)try{let e=S(r);await n.clipboard.write([e])}catch{e=!0}if(e){if(typeof r==`string`)h.value=r,C(r);else{let e=++y,t=await r();t!=null&&e===y&&(h.value=t,C(t))}}g.value=!0,v.start(),_.value=!1}}function S(e){return typeof e==`string`?(h.value=e,new ClipboardItem({"text/plain":e})):new ClipboardItem({"text/plain":e().then((e=``)=>(h.value=e,new Blob([e],{type:`text/plain`})))})}function C(e){let t=document.createElement(`textarea`);t.value=e,t.style.position=`absolute`,t.style.opacity=`0`,t.setAttribute(`readonly`,``),document.body.appendChild(t),t.select(),document.execCommand(`copy`),t.remove()}function w(){var e,t;return((e=document)==null||(t=e.getSelection)==null||(t=t.call(e))==null?void 0:t.toString())??``}function T(e){return e===`granted`||e===`prompt`}return{copyPending:a(_),isSupported:p,text:a(h),copied:a(g),copy:x}}function B(e){return JSON.parse(JSON.stringify(e))}function V(e){let t=r(),n=y(()=>null,()=>e?A(e):t.proxy.$el);return l(n.trigger),o(n.trigger),n}function H(e,r,i={}){let{window:a=O,...o}=i,c,l=N(()=>a&&`ResizeObserver`in a),u=()=>{c&&=(c.disconnect(),void 0)},d=n(s(()=>{let n=t(e);return Array.isArray(n)?n.map(e=>A(e)):[A(n)]}),e=>{if(u(),l.value&&a){c=new ResizeObserver(r);for(let t of e)t&&c.observe(t,o)}},{immediate:!0,flush:`post`}),f=()=>{u(),d()};return T(f),{isSupported:l,stop:f}}function U(e,t={}){let{reset:r=!0,windowResize:i=!0,windowScroll:a=!0,immediate:o=!0,updateTiming:s=`sync`}=t,c=f(0),l=f(0),u=f(0),d=f(0),p=f(0),m=f(0),h=f(0),g=f(0);function _(){let t=A(e);if(!t){r&&(c.value=0,l.value=0,u.value=0,d.value=0,p.value=0,m.value=0,h.value=0,g.value=0);return}let n=t.getBoundingClientRect();c.value=n.height,l.value=n.bottom,u.value=n.left,d.value=n.right,p.value=n.top,m.value=n.width,h.value=n.x,g.value=n.y}function v(){s===`sync`?_():s===`next-frame`&&requestAnimationFrame(()=>_())}return H(e,v),n(()=>A(e),e=>!e&&v()),P(e,v,{attributeFilter:[`style`,`class`]}),a&&j(`scroll`,v,{capture:!0,passive:!0}),i&&j(`resize`,v,{passive:!0}),w(()=>{o&&v()}),{height:c,bottom:l,left:u,right:d,top:p,width:m,x:h,y:g,update:v}}function W(e=V()){let r=f(),i=()=>{let t=A(e);t&&(r.value=t.parentElement)};return w(i),n(()=>t(e),i),r}function G(e,t,i,a={}){var o,c;let{clone:l=!1,passive:f=!1,eventName:p,deep:m=!1,defaultValue:g,shouldEmit:_}=a,v=r(),y=i||v?.emit||(v==null||(o=v.$emit)==null?void 0:o.bind(v))||(v==null||(c=v.proxy)==null||(c=c.$emit)==null?void 0:c.bind(v?.proxy)),b=p;t||=`modelValue`,b||=`update:${t.toString()}`;let x=e=>l?typeof l==`function`?l(e):B(e):e,S=()=>h(e[t])?x(e[t]):g,C=e=>{_?_(e)&&y(b,e):y(b,e)};if(f){let r=d(S()),i=!1;return n(()=>e[t],e=>{i||(i=!0,r.value=x(e),u(()=>i=!1))}),n(r,n=>{!i&&(n!==e[t]||m)&&C(n)},{deep:m}),r}return s({get(){return S()},set(e){C(e)}})}export{z as a,M as c,L as d,H as f,A as i,P as l,O as n,U as o,G as p,I as r,j as s,E as t,W as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{D as e,E as t,On as n,Zn as r,_ as i,b as a,bt as o,er as s,g as c,k as l,mt as u,o as d,qt as ee,tr as f,un as p,v as te,vn as m,y as h}from"./DZo3dYLJ.js";import{t as ne}from"./BJW3UkS7.js";import{t as re}from"./Cw7Z2eHM.js";import{t as ie}from"./DwNOEVN_.js";import{a as g,i as _,r as ae}from"#entry";var oe={class:`stats`},se={class:`stat stat-mint`},ce={class:`stat-top`},le={class:`stat-label`},ue={class:`stat-pill`},de={class:`stat-value`},fe={class:`stat-sub`},pe={class:`stat-delta`},me={class:`split`},he={class:`spark`},ge=[`title`],_e={class:`stat`},ve={class:`stat-top`},ye={class:`stat-label`},v={class:`stat-pill`},y={class:`stat-value`},b={class:`stat-sub`},x={class:`stat-rows`},S={class:`stat-row`},C={class:`v`},w={class:`stat-row`},T={class:`v`},E={class:`stat-row`},D={class:`v`},O={class:`stat-row`},k={class:`v`},A={class:`stat-foot`},j={class:`row`},M={class:`bar`},N={class:`stat stat-lilac`},P={class:`stat-top`},be={class:`stat-label`},xe={class:`stat-value`},Se={class:`unit`},Ce={class:`stat-sub`},we={class:`stat-rows`},Te={class:`stat-row`},Ee={class:`v`},De={class:`stat-row`},Oe={class:`v`},ke={class:`stat-row`},Ae={class:`v`},je={class:`stat-row`},Me={class:`v`},Ne={class:`stat-foot`},Pe={class:`row`},Fe={class:`bar lilac`},Ie={class:`stat stat-ink`},Le={class:`stat-top`},Re={class:`stat-label`},ze={class:`stat-value`},Be={class:`stat-rows`},Ve={class:`stat-row`},He={class:`v`},Ue={class:`stat-row`},We={class:`v`},Ge={class:`stat-row`},Ke={class:`v`},qe={class:`stat-row`},Je={class:`v`},Ye={class:`stat-foot`},Xe={class:`row`},F={class:`bar on-dark`},Ze={class:`card tb`},Qe={class:`tb-l`},$e={class:`tb-r`},et={class:`mono`},tt={class:`mono`},nt={class:`card board`},rt={class:`lanes`},it={class:`lane-hd`},at={class:`lane-ct`},ot={class:`lane-pts`},st={class:`lane-bd`},ct={class:`sc-top`},lt={class:`sc-id mono`},ut={class:`dim sc-wsjf`},dt=[`title`],ft={class:`sc-title`},pt={class:`sc-meta`},mt={class:`sc-tags`},ht={class:`tag tag-ghost`},gt={key:0,class:`tag tag-neutral mono`},_t=[`title`],vt=[`title`],yt={class:`bar slim sc-bar`},bt={key:0,class:`lane-empty`},I=_(l({__name:`index`,setup(l){let{stories:_,epics:I,states:L,progress:R,milestoneOfStory:z,pointsOf:B,milestones:xt,STATE_LABEL:V,STATE_SHORT:St,STATE_DOT:Ct,TYPE_LABEL:wt,TYPE_COLOR:Tt,TYPE_ICON:Et,PRIORITY_COLOR:Dt,SCOPE_LABEL:H,wsjf:U,blockedStories:W}=g(),G=m(`all`),K=m(`all`),q=m(`rank`),Ot=c(()=>[{label:`全部史诗`,value:`all`,icon:`i-lucide-layers`},...I.value.map(e=>({label:`${e.id} ${e.title}`,value:e.id,icon:`i-lucide-layer-group`}))]),kt=c(()=>[{label:`全部里程碑`,value:`all`,icon:`i-lucide-flag`},...xt.value.map(e=>({label:`${e.id} ${e.title}`,value:e.id,icon:e.kind===`mvp`?`i-lucide-star`:`i-lucide-map-pin`}))]),At=[{label:`默认顺序`,value:`rank`,icon:`i-lucide-list-ordered`},{label:`按优先级 P0 → P3`,value:`priority`,icon:`i-lucide-alert-circle`},{label:`按 WSJF 价值/点数`,value:`wsjf`,icon:`i-lucide-scale`},{label:`按点数`,value:`points`,icon:`i-lucide-signal`}],J={P0:0,P1:1,P2:2,P3:3},Y=c(()=>{let e=_.value.filter(e=>!(G.value!==`all`&&e.epicId!==G.value||K.value!==`all`&&!z(e.id).some(e=>e.id===K.value)));return q.value===`priority`?[...e].sort((e,t)=>(J[e.priority]??9)-(J[t.priority]??9)||U(t)-U(e)):q.value===`wsjf`?[...e].sort((e,t)=>U(t)-U(e)):q.value===`points`?[...e].sort((e,t)=>t.points-e.points):e}),X=e=>Y.value.filter(t=>t.status===e),jt=e=>B(X(e).map(e=>e.id)),Z=c(()=>{let e=Y.value,t=e.filter(e=>e.status===`done`),n=e.filter(e=>e.status===`in-progress`||e.status===`review`),r=e.filter(e=>e.status===`ready`||e.status===`draft`),i=e.filter(e=>e.status===`cancelled`),a=e.flatMap(e=>e.tasks??[]),o=e=>a.filter(t=>t.status===e).length;return{count:e.length,points:e.reduce((e,t)=>e+t.points,0),donePoints:t.reduce((e,t)=>e+t.points,0),done:t.length,running:n.length,idle:r.length,cancelled:i.length,tasks:a.length,tasksDone:o(`done`),taskRed:o(`red`),taskGreen:o(`green`),taskRefactor:o(`refactored`),taskTodo:o(`todo`),bugs:e.filter(e=>e.type===`bug`).length,debt:e.filter(e=>e.type===`debt`).length,scope:e.filter(e=>e.scopeChange).length}}),Q=c(()=>Z.value.points?Math.round(Z.value.donePoints/Z.value.points*100):0),Mt=c(()=>Z.value.count?Math.round(Z.value.points/Z.value.count*10)/10:0),$=c(()=>Z.value.tasks?Math.round(Z.value.tasksDone/Z.value.tasks*100):0),Nt=c(()=>W.value.length+Z.value.bugs),Pt=c(()=>Math.max(1,...L.map(e=>X(e).length))),Ft=e=>8+Math.round(X(e).length/Pt.value*34),It=c(()=>{if(G.value===`all`)return`全部史诗`;let e=I.value.find(e=>e.id===G.value);return e?e.title.slice(0,6):`全部史诗`}),Lt=e=>z(e).filter(e=>e.kind===`mvp`);return(c,l)=>{let m=ae,g=ie,_=re,I=ne;return u(),a(`div`,null,[i(`div`,oe,[i(`article`,se,[e(m,{tone:`mint`}),i(`div`,ce,[i(`span`,le,[e(g,{name:`i-lucide-gauge`,class:`size-3.5`}),l[3]||=t(`看板完成度`,-1)]),i(`span`,ue,f(n(It)),1)]),i(`div`,de,[t(f(n(Q)),1),l[4]||=i(`span`,{class:`unit`},`%`,-1)]),i(`div`,fe,[i(`span`,pe,[e(g,{name:`i-lucide-check`,class:`size-3`}),t(f(n(Z).donePoints)+` 点`,1)]),t(` 已交付 · 共 `+f(n(Z).points)+` 点 `,1)]),i(`div`,me,[i(`div`,null,[l[5]||=i(`span`,{class:`k`},`完成故事`,-1),i(`b`,null,[t(f(n(Z).done),1),i(`small`,null,`/`+f(n(Z).count),1)])]),i(`div`,null,[l[7]||=i(`span`,{class:`k`},`剩余点`,-1),i(`b`,null,[t(f(n(Z).points-n(Z).donePoints),1),l[6]||=i(`small`,null,`点`,-1)])])]),i(`div`,he,[(u(!0),a(d,null,o(n(L),e=>(u(),a(`div`,{key:e,class:`spark-col`,title:`${n(V)[e]}:${X(e).length} 个`},[i(`div`,{class:r([`spark-bar`,{done:e===`done`,cancel:e===`cancelled`}]),style:s({height:Ft(e)+`px`})},null,6),i(`span`,null,f(n(St)[e]),1)],8,ge))),128))])]),i(`article`,_e,[e(m,{tone:`green`}),i(`div`,ve,[i(`span`,ye,[e(g,{name:`i-lucide-book-open`,class:`size-3.5`}),l[8]||=t(`故事`,-1)]),i(`span`,v,f(Math.round(n(Mt)))+` 点/个`,1)]),i(`div`,y,[t(f(n(Z).count),1),l[9]||=i(`span`,{class:`unit`},`个`,-1)]),i(`div`,b,`共 `+f(n(Z).points)+` 点 · 任务 `+f(n(Z).tasks)+` 个`,1),i(`div`,x,[i(`div`,S,[l[10]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#6aa844`}}),t(`已完成`)],-1),i(`span`,C,f(n(Z).done),1)]),i(`div`,w,[l[11]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#3f7fd4`}}),t(`进行中`)],-1),i(`span`,T,f(n(Z).running),1)]),i(`div`,E,[l[12]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#b6bac1`}}),t(`未开始`)],-1),i(`span`,D,f(n(Z).idle),1)]),i(`div`,O,[l[13]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#cf4759`}}),t(`已取消`)],-1),i(`span`,k,f(n(Z).cancelled),1)])]),i(`div`,A,[i(`div`,j,[i(`span`,null,`任务完成 `+f(n(Z).tasksDone)+`/`+f(n(Z).tasks),1),i(`span`,null,f(n($))+`%`,1)]),i(`div`,M,[i(`i`,{style:s({width:n($)+`%`})},null,4)])])]),i(`article`,N,[e(m,{tone:`lilac`}),i(`div`,P,[i(`span`,be,[e(g,{name:`i-lucide-list-checks`,class:`size-3.5`}),l[14]||=t(`TDD 任务`,-1)]),l[15]||=i(`span`,{class:`stat-pill`},`红 → 绿 → 重构`,-1)]),i(`div`,xe,[t(f(n(Z).tasksDone),1),i(`span`,Se,`/ `+f(n(Z).tasks)+` 项`,1)]),i(`div`,Ce,`已完成任务占 `+f(n($))+`%`,1),i(`div`,we,[i(`div`,Te,[l[16]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#cf4759`}}),t(`红(测试失败)`)],-1),i(`span`,Ee,f(n(Z).taskRed),1)]),i(`div`,De,[l[17]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#6aa844`}}),t(`绿(测试通过)`)],-1),i(`span`,Oe,f(n(Z).taskGreen),1)]),i(`div`,ke,[l[18]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#6d4ff0`}}),t(`已重构`)],-1),i(`span`,Ae,f(n(Z).taskRefactor),1)]),i(`div`,je,[l[19]||=i(`span`,{class:`k`},[i(`i`,{class:`dot`,style:{background:`#b6bac1`}}),t(`待办`)],-1),i(`span`,Me,f(n(Z).taskTodo),1)])]),i(`div`,Ne,[i(`div`,Pe,[i(`span`,null,`已完成 `+f(n(Z).tasksDone)+`/`+f(n(Z).tasks),1),i(`span`,null,f(n($))+`%`,1)]),i(`div`,Fe,[i(`i`,{style:s({width:n($)+`%`})},null,4)])])]),i(`article`,Ie,[e(m,{tone:`ink`}),i(`div`,Le,[i(`span`,Re,[e(g,{name:`i-lucide-shield-alert`,class:`size-3.5`}),l[20]||=t(`风险面`,-1)]),l[21]||=i(`span`,{class:`stat-pill`},`需处理`,-1)]),i(`div`,ze,[t(f(n(Nt)),1),l[22]||=i(`span`,{class:`unit`},`项`,-1)]),l[28]||=i(`div`,{class:`stat-sub`},`阻塞故事与缺陷合计`,-1),i(`div`,Be,[i(`div`,Ve,[l[23]||=i(`span`,{class:`k`},`阻塞故事`,-1),i(`span`,He,f(n(W).length),1)]),i(`div`,Ue,[l[24]||=i(`span`,{class:`k`},`缺陷`,-1),i(`span`,We,f(n(Z).bugs),1)]),i(`div`,Ge,[l[25]||=i(`span`,{class:`k`},`技术债`,-1),i(`span`,Ke,f(n(Z).debt),1)]),i(`div`,qe,[l[26]||=i(`span`,{class:`k`},`范围变更`,-1),i(`span`,Je,f(n(Z).scope),1)])]),i(`div`,Ye,[i(`div`,Xe,[l[27]||=i(`span`,null,`完成度`,-1),i(`span`,null,f(n(Q))+`%`,1)]),i(`div`,F,[i(`i`,{style:s({width:n(Q)+`%`})},null,4)])])])]),i(`div`,Ze,[i(`div`,Qe,[l[29]||=i(`span`,{class:`lbl`},`筛选`,-1),e(_,{modelValue:n(G),"onUpdate:modelValue":l[0]||=e=>p(G)?G.value=e:null,items:n(Ot),icon:`i-lucide-layers`,"aria-label":`按史诗筛选`},null,8,[`modelValue`,`items`]),e(_,{modelValue:n(K),"onUpdate:modelValue":l[1]||=e=>p(K)?K.value=e:null,items:n(kt),icon:`i-lucide-flag`,"aria-label":`按里程碑筛选`},null,8,[`modelValue`,`items`]),e(_,{modelValue:n(q),"onUpdate:modelValue":l[2]||=e=>p(q)?q.value=e:null,items:At,icon:`i-lucide-arrow-up-down`,"aria-label":`排序方式`},null,8,[`modelValue`])]),i(`div`,$e,[i(`span`,et,f(n(Y).length),1),l[30]||=t(` 个故事 `,-1),l[31]||=i(`i`,{class:`sep`},null,-1),i(`span`,tt,f(n(B)(n(Y).map(e=>e.id))),1),l[32]||=t(` 点 `,-1)])]),i(`div`,nt,[i(`div`,rt,[(u(!0),a(d,null,o(n(L),c=>(u(),a(`section`,{key:c,class:`lane`},[i(`header`,it,[i(`i`,{class:`lane-dot`,style:s({background:n(Ct)[c]})},null,4),i(`b`,null,f(n(V)[c]),1),i(`span`,at,f(X(c).length),1),i(`span`,ot,f(jt(c))+` 点`,1)]),i(`div`,st,[(u(!0),a(d,null,o(X(c),c=>(u(),te(I,{key:c.id,to:`/story/${c.id}`,class:`scard`},{default:ee(()=>[i(`div`,ct,[i(`span`,lt,f(c.id),1),i(`span`,{class:r([`tag`,`tag-${n(Dt)[c.priority]}`])},f(c.priority),3),i(`span`,ut,`WSJF `+f(n(U)(c)),1),c.blocked?(u(),a(`span`,{key:0,class:`tag tag-error tag-dot`,title:`阻塞中:${c.blocked.reason}(自 ${c.blocked.since})`},`阻塞`,8,dt)):h(``,!0)]),i(`p`,ft,f(c.title),1),i(`div`,pt,[i(`span`,null,f(c.points)+` 点`,1),l[33]||=i(`span`,{class:`dim`},`·`,-1),i(`span`,null,`任务 `+f(n(R)(c).done)+`/`+f(n(R)(c).total),1)]),i(`div`,mt,[i(`span`,{class:r([`tag`,`tag-${n(Tt)[c.type]}`])},[e(g,{name:n(Et)[c.type],class:`size-3`},null,8,[`name`]),t(f(n(wt)[c.type]),1)],2),i(`span`,ht,f(c.epicId),1),c.sprintId?(u(),a(`span`,gt,f(c.sprintId),1)):h(``,!0),(u(!0),a(d,null,o(Lt(c.id),e=>(u(),a(`span`,{key:e.id,class:`tag tag-mint`,title:`${e.id} ${e.title} · ${e.criteria}`},`MVP`,8,_t))),128)),c.scopeChange?(u(),a(`span`,{key:1,class:`tag tag-info`,title:`${n(H)[c.scopeChange.kind]}(${c.scopeChange.at}):${c.scopeChange.reason}`},f(n(H)[c.scopeChange.kind]),9,vt)):h(``,!0)]),i(`div`,yt,[i(`i`,{style:s({width:n(R)(c).pct+`%`})},null,4)])]),_:2},1032,[`to`]))),128)),X(c).length?h(``,!0):(u(),a(`p`,bt,`暂无故事`))])]))),128))])])])}}}),[[`__scopeId`,`data-v-bd767d0f`]]);export{I as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{D as e,E as t,On as n,T as r,Zn as i,_ as a,b as o,bt as s,er as c,g as l,k as u,mt as d,o as f,qt as ee,tr as p,v as te,y as m}from"./DZo3dYLJ.js";import{t as ne}from"./BJW3UkS7.js";import{t as re}from"./DwNOEVN_.js";import{a as h,i as g,r as ie}from"#entry";var ae={class:`kpis`},oe={class:`kpi tint-mint`},se={class:`v`},ce={class:`kpi tint-lilac`},le={class:`v`},_={class:`kpi`},v={class:`v`},y={class:`kpi`},b={class:`v`},x={class:`kpi`},S={class:`v`},C={class:`card tl-wrap`},w={class:`card-hd tl-hd`},T={class:`h2`},E={class:`timeline`},D={key:0,class:`tl-today`},O={class:`tl-item`},k={class:`when`},A={class:`when-date mono`},j={class:`when-year`},M={class:`axis`},N={class:`node-top`},P={class:`tag tag-ghost`},F={key:0,class:`tag tag-neutral mono`},I={class:`node-title`},L={class:`criteria`},R={class:`nums`},z={class:`mpct`},B={class:`mss`},ue={class:`st-id mono`},V={class:`st-title`},H={class:`st-state dim`},U={class:`st-pts dim`},de={key:0,class:`tl-today`},W=g(u({__name:`milestones`,setup(u){let{milestones:g,milestoneProgress:W,now:G,md:fe,MS_LABEL:pe,MS_COLOR:me,KIND_LABEL:he,KIND_ICON:ge,STATE_DOT:_e,STATE_LABEL:ve,diffDays:K}=h(),q=l(()=>[...g.value].sort((e,t)=>e.due<t.due?-1:+(e.due>t.due))),J=e=>K(G,e),Y=e=>{let t=W(e);return t.total?Math.round(t.done/t.total*100):0},X=e=>e===`mvp`?`mint`:e===`release`?`lilac`:`ink`,Z=e=>({reached:`ok`,"at-risk":`risk`,planned:`plan`,missed:`miss`})[e]??`plan`,ye=[`日`,`一`,`二`,`三`,`四`,`五`,`六`],be=e=>`周${ye[new Date(`${e}T00:00:00Z`).getUTCDay()]}`,xe=e=>{let t=J(e);return t>0?`还剩 ${t} 天`:t===0?`今天到期`:`已过 ${-t} 天`},Q=l(()=>{let e=q.value.findIndex(e=>e.due>=G);return e<0?q.value.length:e}),$=l(()=>({mvp:g.value.filter(e=>e.kind===`mvp`).length,release:g.value.filter(e=>e.kind===`release`).length,checkpoint:g.value.filter(e=>e.kind===`checkpoint`).length,risk:g.value.filter(e=>e.status===`at-risk`||e.status===`missed`).length,reached:g.value.filter(e=>e.status===`reached`).length}));return(l,u)=>{let h=ie,G=re,K=ne;return d(),o(`div`,null,[a(`div`,ae,[a(`div`,oe,[e(h,{tone:`mint`,size:`sm`}),u[1]||=a(`p`,{class:`k`},`MVP 节点`,-1),a(`p`,se,[t(p(n($).mvp),1),u[0]||=a(`small`,null,`个`,-1)])]),a(`div`,ce,[e(h,{tone:`lilac`,size:`sm`}),u[3]||=a(`p`,{class:`k`},`发布节点`,-1),a(`p`,le,[t(p(n($).release),1),u[2]||=a(`small`,null,`个`,-1)])]),a(`div`,_,[u[5]||=a(`p`,{class:`k`},`检查点`,-1),a(`p`,v,[t(p(n($).checkpoint),1),u[4]||=a(`small`,null,`个`,-1)])]),a(`div`,y,[u[6]||=a(`p`,{class:`k`},`已达成`,-1),a(`p`,b,[t(p(n($).reached),1),a(`small`,null,`/ `+p(n(g).length),1)])]),a(`div`,x,[u[8]||=a(`p`,{class:`k`},`有风险 / 错过`,-1),a(`p`,S,[t(p(n($).risk),1),u[7]||=a(`small`,null,`个`,-1)])])]),a(`div`,C,[a(`div`,w,[a(`h2`,T,[e(G,{name:`i-lucide-git-commit-vertical`,class:`size-3.5`}),u[9]||=t(`时间线`,-1)]),u[10]||=r(`<span class="dim tip" data-v-fd441193>按到期日从早到晚 · 节点达成口径是「挂的故事全部完成」</span><div class="legend" data-v-fd441193><span class="lg" data-v-fd441193><i class="sw mint" data-v-fd441193></i>MVP</span><span class="lg" data-v-fd441193><i class="sw lilac" data-v-fd441193></i>发布</span><span class="lg" data-v-fd441193><i class="sw white" data-v-fd441193></i>检查点</span><i class="sep" data-v-fd441193></i><span class="lg" data-v-fd441193><i class="dot ok" data-v-fd441193></i>已达成</span><span class="lg" data-v-fd441193><i class="dot risk" data-v-fd441193></i>有风险</span><span class="lg" data-v-fd441193><i class="dot plan" data-v-fd441193></i>计划中</span></div>`,2)]),a(`div`,E,[(d(!0),o(f,null,s(n(q),(r,l)=>(d(),o(f,{key:r.id},[l===n(Q)?(d(),o(`div`,D,[...u[11]||=[a(`span`,{class:`today-when`},`今天`,-1),a(`span`,{class:`today-axis`},[a(`i`)],-1),a(`span`,{class:`today-line`},null,-1)]])):m(``,!0),a(`article`,O,[a(`div`,k,[a(`p`,A,p(n(fe)(r.due)),1),a(`p`,j,p(be(r.due)),1)]),a(`div`,M,[a(`span`,{class:i([`dot-lg`,Z(r.status)])},[r.status===`reached`?(d(),te(G,{key:0,name:`i-lucide-check`,class:`size-2.5`})):m(``,!0)],2)]),a(`div`,{class:i([`node`,`node-${X(r.kind)}`])},[e(h,{tone:X(r.kind),size:`xl`,min:3,max:5},null,8,[`tone`]),a(`div`,N,[a(`span`,P,p(r.id),1),a(`span`,{class:i([`tag`,`tag-${n(me)[r.status]}`])},p(n(pe)[r.status]),3),a(`span`,{class:i([`tag`,r.kind===`mvp`?`tag-mint`:r.kind===`release`?`tag-primary`:`tag-neutral`])},[e(G,{name:n(ge)[r.kind],class:`size-3`},null,8,[`name`]),t(p(n(he)[r.kind]),1)],2),r.sprintId?(d(),o(`span`,F,p(r.sprintId),1)):m(``,!0),a(`span`,{class:i([`days`,{over:J(r.due)<0,soon:J(r.due)>=0&&J(r.due)<=7}])},p(xe(r.due)),3)]),a(`h3`,I,p(r.title),1),a(`p`,L,p(r.criteria),1),a(`div`,R,[a(`span`,null,[a(`b`,null,p(n(W)(r).done)+`/`+p(n(W)(r).total),1),u[12]||=t(` 个故事`,-1)]),u[13]||=a(`span`,{class:`dim`},`·`,-1),a(`span`,null,p(n(W)(r).points)+` 点`,1),a(`span`,z,p(Y(r))+`%`,1)]),a(`div`,{class:i([`bar`,r.kind===`checkpoint`?``:X(r.kind)])},[a(`i`,{style:c({width:Y(r)+`%`})},null,4)],2),a(`ul`,B,[(d(!0),o(f,null,s(n(W)(r).list,t=>(d(),o(`li`,{key:t.id},[e(K,{to:`/story/${t.id}`,class:`srow`},{default:ee(()=>[a(`i`,{class:`sdot`,style:c({background:n(_e)[t.status]})},null,4),a(`span`,ue,p(t.id),1),a(`span`,V,p(t.title),1),a(`span`,H,p(n(ve)[t.status]),1),a(`span`,U,p(t.points),1)]),_:2},1032,[`to`])]))),128))])],2)])],64))),128)),n(Q)===n(q).length?(d(),o(`div`,de,[...u[14]||=[a(`span`,{class:`today-when`},`今天`,-1),a(`span`,{class:`today-axis`},[a(`i`)],-1),a(`span`,{class:`today-line`},null,-1)]])):m(``,!0)])])])}}}),[[`__scopeId`,`data-v-fd441193`]]);export{W as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{En as e,Ht as t,L as n,On as r,Tn as i,_n as a,an as o,bn as s,ct as c,g as l,gn as u,in as d,it as f,nn as p,pn as m,tt as h,un as g,vn as _,wn as v,xn as y}from"./DZo3dYLJ.js";function b(e,n,r={}){let i,a,o,s=!0,c=()=>{s=!0,o()};t(e,c,{flush:`sync`,...r});let l=typeof n==`function`?n:n.get,u=typeof n==`function`?void 0:n.set,d=p((e,t)=>(a=e,o=t,{get(){return s&&=(i=l(i),!1),a(),i},set(e){u?.(e)}}));return d.trigger=c,d}function x(e,t){return o()?(m(e,t),!0):!1}function S(){let e=new Set,t=t=>{e.delete(t)};return{on:n=>{e.add(n);let r=()=>t(n);return x(r),{off:r}},off:t,trigger:(...t)=>Promise.all(Array.from(e).map(e=>e(...t))),clear:()=>{e.clear()}}}function C(e){let t=!1,n,r=d(!0);return((...i)=>(t||=(n=r.run(()=>e(...i)),!0),n))}var w=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var T=e=>e!==void 0,E=e=>e!=null,D=Object.prototype.toString,O=e=>D.call(e)===`[object Object]`,k=()=>{},A=j();function j(){var e,t;return w&&!!((e=window)!=null&&(e=e.navigator)!=null&&e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window)==null||(t=t.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window?.navigator.userAgent))}function M(...e){if(e.length!==1)return v(...e);let t=e[0];return typeof t==`function`?a(p(()=>({get:t,set:k}))):_(t)}function N(e,t){function n(...n){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(r).catch(i)})}return`cancel`in e&&Object.assign(n,{cancel:e.cancel,flush:e.flush,isPending:e.isPending}),n}var P=e=>e();function F(t,n={}){let r,i,a=k,o=k,c=y(!1),l=e=>{clearTimeout(e),a(),a=k},u;return Object.assign(s=>{let d=e(t),f=e(n.maxWait);return r&&l(r),d<=0||f!==void 0&&f<=0?(i&&=(l(i),void 0),c.value=!1,Promise.resolve(s())):(c.value=!0,new Promise((e,t)=>{a=n.rejectOnCancel?t:e,o=e,u=s,f&&!i&&(i=setTimeout(()=>{r&&l(r),i=void 0,c.value=!1,e(u())},f)),r=setTimeout(()=>{i&&l(i),i=void 0,c.value=!1,e(s())},d)}))},{cancel:()=>{r&&=(l(r),void 0),i&&=(l(i),void 0),c.value=!1,o=k},flush:()=>{if(c.value){r&&=(clearTimeout(r),void 0),i&&=(clearTimeout(i),void 0),c.value=!1;let e=o;a=k,o=k,e(u())}},isPending:s(c)})}function I(...t){let n=0,r,i=!0,a=k,o,s,c,l,u;!g(t[0])&&typeof t[0]==`object`?{delay:s,trailing:c=!0,leading:l=!0,rejectOnCancel:u=!1}=t[0]:[s,c=!0,l=!0,u=!1]=t;let d=()=>{r&&(clearTimeout(r),r=void 0,a(),a=k)};return t=>{let f=e(s),p=Date.now()-n,m=()=>o=t();return d(),f<=0?(n=Date.now(),m()):(p>f?(n=Date.now(),(l||!i)&&m()):c&&(o=new Promise((e,t)=>{a=u?t:e,r=setTimeout(()=>{n=Date.now(),i=!0,e(m()),d()},Math.max(0,f-p))})),!l&&!r&&(r=setTimeout(()=>i=!0,f)),i=!1,o)}}function L(e){let t;function n(){return t||=e(),t}return n.reset=async()=>{let e=t;t=void 0,e&&await e},n}function R(e){return Array.isArray(e)?e:[e]}function z(e){let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))}var B=/-(\w)/g,ee=z(e=>e.replace(B,(e,t)=>t?t.toUpperCase():``));function V(e){return e||n()}function H(e){if(!w)return e;let t=0,n,r,i=()=>{--t,r&&t<=0&&(r.stop(),n=void 0,r=void 0)};return((...a)=>(t+=1,r||(r=d(!0),n=r.run(()=>e(...a))),x(i),n))}function U(e,t){if(typeof Symbol<`u`){let n={...e};return Object.defineProperty(n,Symbol.iterator,{enumerable:!1,value(){let e=0;return{next:()=>({value:t[e++],done:e>t.length})}}}),n}return Object.assign([...t],e)}function W(e){return g(e)?u(new Proxy({},{get(t,n,i){return r(Reflect.get(e.value,n,i))},set(t,n,r){return g(e.value[n])&&!g(r)?e.value[n].value=r:e.value[n]=r,!0},deleteProperty(t,n){return Reflect.deleteProperty(e.value,n)},has(t,n){return Reflect.has(e.value,n)},ownKeys(){return Object.keys(e.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}})):u(e)}function G(e){return W(l(e))}function K(t,...n){let r=n.flat(),a=r[0];return G(()=>Object.fromEntries(typeof a==`function`?Object.entries(i(t)).filter(([t,n])=>!a(e(n),t)):Object.entries(i(t)).filter(e=>!r.includes(e[0]))))}function q(t,...n){let r=n.flat(),a=r[0];return G(()=>Object.fromEntries(typeof a==`function`?Object.entries(i(t)).filter(([t,n])=>a(e(n),t)):r.map(e=>[e,M(t,e)])))}function J(t,n=1e4){return p((r,i)=>{let a=e(t),o,s=()=>setTimeout(()=>{a=e(t),i()},e(n));return x(()=>{clearTimeout(o)}),{get(){return r(),a},set(e){a=e,i(),clearTimeout(o),o=s()}}})}function Y(e,t=200,n={}){return N(F(t,n),e)}function X(e,n,r={}){let{eventFilter:i=P,...a}=r;return t(e,N(i,n),a)}function Z(e,t){V(t)&&f(e,t)}function Q(e,t=!0,n){V(n)?c(e,n):t?e():h(e)}function $(t,n,r={}){let{immediate:i=!0,immediateCallback:a=!1}=r,o=y(!1),c;function l(){c&&=(clearTimeout(c),void 0)}function u(){o.value=!1,l()}function d(...r){a&&t(),l(),o.value=!0,c=setTimeout(()=>{o.value=!1,c=void 0,t(...r)},e(n))}return i&&(o.value=!0,w&&d()),x(u),{isPending:s(o),start:d,stop:u}}function te(e=1e3,t={}){let{controls:n=!1,callback:r}=t,i=$(r??k,e,t),a=l(()=>!i.isPending.value);return n?{ready:a,...i}:a}function ne(e,n,r){return t(e,n,{...r,immediate:!0})}function re(e,t,n={}){let{throttle:r=0,trailing:i=!0,leading:a=!0,...o}=n;return X(e,t,{...o,eventFilter:I(r,i,a)})}export{ne as C,$ as S,Z as _,H as a,Y as b,T as c,U as d,E as f,R as g,J as h,C as i,A as l,q as m,b as n,L as o,K as p,S as r,w as s,ee as t,O as u,Q as v,re as w,te as x,x as y};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"id":"24603984-d514-4dff-badc-898a1fd5e770","timestamp":1792961154778,"prerendered":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.tl-wrap[data-v-fd441193]{border-radius:var(--r-xl);overflow:hidden}.tl-hd[data-v-fd441193]{padding:12px 16px}.tip[data-v-fd441193]{font-size:11px}.legend[data-v-fd441193]{color:var(--ink-3);flex-wrap:wrap;gap:11px;margin-left:auto;font-size:10.5px;display:flex}.legend[data-v-fd441193],.lg[data-v-fd441193]{align-items:center}.lg[data-v-fd441193]{gap:4px;display:inline-flex}.sw[data-v-fd441193]{border:1px solid var(--line-2);border-radius:4px;width:11px;height:11px}.sw.mint[data-v-fd441193]{background:var(--grad-mint);border-color:var(--mint-line)}.sw.lilac[data-v-fd441193]{background:var(--grad-lilac);border-color:#dbcdfb}.sw.white[data-v-fd441193]{background:#fff}.dot[data-v-fd441193]{border-radius:999px;width:7px;height:7px}.dot.ok[data-v-fd441193]{background:#6aa844}.dot.risk[data-v-fd441193]{background:#e0a33a}.dot.plan[data-v-fd441193]{background:#fff;border:1.5px solid #c9c8c2}.sep[data-v-fd441193]{background:var(--line-2);width:1px;height:11px}.timeline[data-v-fd441193]{padding:14px 16px 18px}.tl-item[data-v-fd441193]{grid-template-columns:56px 26px minmax(0,1fr);align-items:start;display:grid}.when[data-v-fd441193]{text-align:right;padding:13px 10px 0 0}.when-date[data-v-fd441193]{letter-spacing:-.01em;color:var(--ink);font-size:12.2px;font-weight:660}.when-year[data-v-fd441193]{color:var(--ink-4);font-size:9.6px}.axis[data-v-fd441193]{justify-content:center;align-self:stretch;align-items:flex-start;padding-top:15px;display:flex;position:relative}.axis[data-v-fd441193]:before{content:"";background:#d8d5cb;width:2px;margin-left:-1px;position:absolute;top:21px;bottom:-12px;left:50%}.tl-item:last-child .axis[data-v-fd441193]:before{display:none}.dot-lg[data-v-fd441193]{z-index:1;color:#fff;background:#c9c8c2;border:2px solid #fff;border-radius:999px;place-items:center;width:13px;height:13px;display:grid;position:relative;box-shadow:0 0 0 1.5px #dedcd5}.dot-lg.ok[data-v-fd441193]{background:#6aa844;box-shadow:0 0 0 3px #6aa84429}.dot-lg.risk[data-v-fd441193]{background:#e0a33a;box-shadow:0 0 0 3px #e0a33a2e}.dot-lg.plan[data-v-fd441193]{background:#fff;box-shadow:0 0 0 1.5px #d6d4cd}.dot-lg.miss[data-v-fd441193]{background:var(--rose);box-shadow:0 0 0 3px #cf475929}.node[data-v-fd441193]{border-radius:var(--r-lg);border:1px solid var(--line);box-shadow:var(--shadow-1);background:#fff;margin-bottom:10px;padding:13px 15px 12px;transition:transform .16s,box-shadow .16s,border-color .16s}.node[data-v-fd441193]:hover{transform:translateY(-1px);box-shadow:0 14px 30px -20px #17181b59}.node-mint[data-v-fd441193]{border-color:var(--mint-line);background:radial-gradient(115% 150% at 0 0,#ffffffe6,#fff0 46%),radial-gradient(95% 130% at 104% 108%,#b8de76f2,#b8de7600 62%),linear-gradient(150deg,#edfcd7,#d7f3a8)}.node-lilac[data-v-fd441193]{background:radial-gradient(115% 150% at 0 0,#ffffffeb,#fff0 46%),radial-gradient(95% 130% at 104% 108%,#c6b2faf2,#c6b2fa00 62%),linear-gradient(150deg,#f5f0ff,#e0d3fc);border-color:#dbcdfb}.node-ink[data-v-fd441193]{background:radial-gradient(120% 160% at 100% 0,#f5f1ff,#f5f1ff00 52%),linear-gradient(150deg,#fff,#fbfaf6)}.node-top[data-v-fd441193]{flex-wrap:wrap;align-items:center;gap:5px;margin-bottom:7px;display:flex}.days[data-v-fd441193]{color:var(--ink-2);white-space:nowrap;background:#ffffffc7;border:1px solid #17181b12;border-radius:999px;margin-left:auto;padding:2px 8px;font-size:10.4px;font-weight:650}.days.soon[data-v-fd441193]{color:#8d6210;background:#fdf1d7;border-color:#f2dfae}.days.over[data-v-fd441193]{color:#a5382f;background:#fdeae7;border-color:#f6d2cb}.node-title[data-v-fd441193]{letter-spacing:-.015em;align-items:center;gap:6px;font-size:14.6px;font-weight:660;line-height:1.35;display:flex}.criteria[data-v-fd441193]{margin-top:5px;font-size:12px;line-height:1.55}.criteria[data-v-fd441193],.nums[data-v-fd441193]{color:var(--ink-2)}.nums[data-v-fd441193]{align-items:center;gap:5px;margin:10px 0 5px;font-size:11.4px;display:flex}.mpct[data-v-fd441193],.nums b[data-v-fd441193]{font-weight:660}.mpct[data-v-fd441193]{color:var(--ink);margin-left:auto}.bar.mint[data-v-fd441193]{background:#46521f24}.mss[data-v-fd441193]{border-top:1px dashed #17181b1f;gap:1px;margin:10px 0 0;padding:9px 0 0;list-style:none;display:grid}.srow[data-v-fd441193]{border-radius:8px;align-items:center;gap:6px;margin:0 -6px;padding:4px 6px;font-size:11.8px;transition:background .14s;display:flex}.srow[data-v-fd441193]:hover{background:#ffffffb8}.srow:hover .st-title[data-v-fd441193]{color:var(--violet-ink)}.sdot[data-v-fd441193]{border-radius:999px;flex:none;width:6px;height:6px}.st-id[data-v-fd441193]{color:var(--ink-4);font-size:10px}.st-title[data-v-fd441193]{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.st-pts[data-v-fd441193],.st-state[data-v-fd441193]{white-space:nowrap;font-size:10.2px}.node-lilac .dim[data-v-fd441193],.node-mint .dim[data-v-fd441193]{color:#2226128c}.tl-today[data-v-fd441193]{grid-template-columns:56px 26px minmax(0,1fr);align-items:center;padding:2px 0;display:grid}.today-when[data-v-fd441193]{text-align:right;letter-spacing:.04em;color:var(--rose);padding-right:10px;font-size:10.8px;font-weight:700}.today-axis[data-v-fd441193]{justify-content:center;align-self:stretch;display:flex;position:relative}.today-axis[data-v-fd441193]:before{content:"";background:#cf475947;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0;left:50%}.today-axis i[data-v-fd441193]{z-index:1;background:var(--rose);border-radius:999px;align-self:center;width:9px;height:9px;position:relative;box-shadow:0 0 0 3px #cf475929}.today-line[data-v-fd441193]{border-top:1px dashed #cf475959;align-self:center;height:0}@media (width<=760px){.tl-item[data-v-fd441193],.tl-today[data-v-fd441193]{grid-template-columns:44px 22px minmax(0,1fr)}.when-date[data-v-fd441193]{font-size:11px}.legend[data-v-fd441193],.st-state[data-v-fd441193]{display:none}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.split[data-v-bd767d0f]{grid-template-columns:1fr 1fr;gap:10px;margin-top:auto;padding-top:12px;display:grid}.split>div[data-v-bd767d0f]{gap:1px;min-width:0;display:grid}.split>div+div[data-v-bd767d0f]{border-left:1px solid #17181b1a;padding-left:10px}.split .k[data-v-bd767d0f]{letter-spacing:.08em;text-transform:uppercase;color:#6b6f78;font-size:9.4px;font-weight:650}.split b[data-v-bd767d0f]{letter-spacing:-.025em;color:#2b3312;font-size:14.5px;font-weight:660}.split b small[data-v-bd767d0f]{letter-spacing:0;color:#6b6f78;margin-left:1px;font-size:10px;font-weight:600}.dot[data-v-bd767d0f]{border-radius:999px;flex:none;width:6px;height:6px;display:inline-block}.tb[data-v-bd767d0f]{border-radius:var(--r-md);justify-content:space-between;gap:12px;margin-bottom:12px;padding:10px 12px 10px 16px}.tb[data-v-bd767d0f],.tb-l[data-v-bd767d0f]{flex-wrap:wrap;align-items:center;display:flex}.tb-l[data-v-bd767d0f]{gap:8px}.tb-l[data-v-bd767d0f] .skin-select{max-width:212px}.tb-r[data-v-bd767d0f]{color:var(--ink-3);align-items:center;gap:6px;font-size:11.6px;display:flex}.tb-r .mono[data-v-bd767d0f]{color:var(--ink);font-weight:660}.sep[data-v-bd767d0f]{background:var(--line-2);width:1px;height:12px;margin:0 3px}.board[data-v-bd767d0f]{border-radius:var(--r-xl);padding:12px}.lanes[data-v-bd767d0f]{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;padding-bottom:2px;display:grid}.lane[data-v-bd767d0f]{flex-direction:column;min-width:0;display:flex}.lane-hd[data-v-bd767d0f]{align-items:center;gap:6px;padding:0 4px 9px;display:flex}.lane-dot[data-v-bd767d0f]{border-radius:999px;width:6px;height:6px}.lane-hd b[data-v-bd767d0f]{letter-spacing:-.01em;font-size:12.2px;font-weight:650}.lane-ct[data-v-bd767d0f]{color:var(--ink-3);background:#f1f0eb;border-radius:999px;padding:0 5px;font-size:10px;font-weight:650}.lane-pts[data-v-bd767d0f]{color:var(--ink-4);margin-left:auto;font-size:10.4px}.lane-bd[data-v-bd767d0f]{border-radius:var(--r-md);background:var(--sunken-2);border:1px solid #f1f0ec;flex:1;align-content:start;gap:8px;min-height:120px;padding:8px;display:grid}.scard[data-v-bd767d0f]{border:1px solid var(--line);background:#fff;border-radius:13px;padding:9px 10px 8px;transition:transform .16s,box-shadow .16s,border-color .16s;display:block;box-shadow:0 1px 2px #17181b08}.scard[data-v-bd767d0f]:hover{border-color:#ded4fb;transform:translateY(-1.5px);box-shadow:0 12px 24px -16px #6d4ff080}.sc-top[data-v-bd767d0f]{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.sc-id[data-v-bd767d0f]{color:var(--ink-4);margin-right:2px;font-size:10px}.sc-wsjf[data-v-bd767d0f]{white-space:nowrap;margin-left:auto;font-size:9.6px}.sc-title[data-v-bd767d0f]{letter-spacing:-.005em;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:7px 0 5px;font-size:12.5px;font-weight:620;line-height:1.42;display:-webkit-box;overflow:hidden}.sc-meta[data-v-bd767d0f]{color:var(--ink-3);margin-bottom:7px;font-size:10.4px}.sc-meta[data-v-bd767d0f],.sc-tags[data-v-bd767d0f]{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.sc-tags[data-v-bd767d0f]{margin-bottom:8px}.sc-bar[data-v-bd767d0f]{margin-top:1px}.lane-empty[data-v-bd767d0f]{text-align:center;color:var(--ink-4);padding:14px 6px;font-size:10.6px}@media (width<=1180px){.lanes[data-v-bd767d0f]{grid-template-columns:repeat(6,minmax(178px,1fr));overflow-x:auto}}
|