scrum-skills 0.3.2 → 0.3.3
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/diagram-design/LICENSE +4 -0
- package/.agents/skills/diagram-design/SKILL.md +413 -0
- package/.agents/skills/diagram-design/UPSTREAM.json +76 -0
- package/.agents/skills/diagram-design/UPSTREAM.md +23 -0
- package/.agents/skills/diagram-design/assets/example-architecture-containment.html +205 -0
- package/.agents/skills/diagram-design/assets/example-architecture-delta.html +193 -0
- package/.agents/skills/diagram-design/assets/example-architecture.html +183 -0
- package/.agents/skills/diagram-design/assets/example-axonometric-plan-campus.html +108 -0
- package/.agents/skills/diagram-design/assets/example-axonometric-plan-coffee-shop.html +121 -0
- package/.agents/skills/diagram-design/assets/example-axonometric-plan-warehouse.html +127 -0
- package/.agents/skills/diagram-design/assets/example-axonometric-plan.html +114 -0
- package/.agents/skills/diagram-design/assets/example-bar.html +129 -0
- package/.agents/skills/diagram-design/assets/example-beeswarm.html +384 -0
- package/.agents/skills/diagram-design/assets/example-box-plot.html +127 -0
- package/.agents/skills/diagram-design/assets/example-bubble.html +147 -0
- package/.agents/skills/diagram-design/assets/example-bump.html +142 -0
- package/.agents/skills/diagram-design/assets/example-data-flow.html +143 -0
- package/.agents/skills/diagram-design/assets/example-datalake.html +269 -0
- package/.agents/skills/diagram-design/assets/example-db-schema.html +302 -0
- package/.agents/skills/diagram-design/assets/example-dependency.html +224 -0
- package/.agents/skills/diagram-design/assets/example-deployment.html +190 -0
- package/.agents/skills/diagram-design/assets/example-dp-integration.html +81 -0
- package/.agents/skills/diagram-design/assets/example-dp-security-matrix.html +88 -0
- package/.agents/skills/diagram-design/assets/example-er.html +202 -0
- package/.agents/skills/diagram-design/assets/example-exploded-ai-stack.html +85 -0
- package/.agents/skills/diagram-design/assets/example-exploded-keyboard.html +84 -0
- package/.agents/skills/diagram-design/assets/example-exploded-phone.html +83 -0
- package/.agents/skills/diagram-design/assets/example-exploded-unboxing.html +84 -0
- package/.agents/skills/diagram-design/assets/example-exploded.html +83 -0
- package/.agents/skills/diagram-design/assets/example-fishbone.html +152 -0
- package/.agents/skills/diagram-design/assets/example-flowchart.html +163 -0
- package/.agents/skills/diagram-design/assets/example-gantt.html +137 -0
- package/.agents/skills/diagram-design/assets/example-heatmap.html +224 -0
- package/.agents/skills/diagram-design/assets/example-high-level-vertical.html +325 -0
- package/.agents/skills/diagram-design/assets/example-high-level.html +301 -0
- package/.agents/skills/diagram-design/assets/example-import-drawio.html +185 -0
- package/.agents/skills/diagram-design/assets/example-import-excalidraw.html +70 -0
- package/.agents/skills/diagram-design/assets/example-import-mermaid.html +70 -0
- package/.agents/skills/diagram-design/assets/example-it-state.html +128 -0
- package/.agents/skills/diagram-design/assets/example-journey.html +148 -0
- package/.agents/skills/diagram-design/assets/example-kanban.html +174 -0
- package/.agents/skills/diagram-design/assets/example-layers.html +123 -0
- package/.agents/skills/diagram-design/assets/example-line.html +111 -0
- package/.agents/skills/diagram-design/assets/example-loop.html +100 -0
- package/.agents/skills/diagram-design/assets/example-marimekko.html +148 -0
- package/.agents/skills/diagram-design/assets/example-medallion.html +159 -0
- package/.agents/skills/diagram-design/assets/example-nested.html +136 -0
- package/.agents/skills/diagram-design/assets/example-org-chart.html +45 -0
- package/.agents/skills/diagram-design/assets/example-polar.html +116 -0
- package/.agents/skills/diagram-design/assets/example-process.html +64 -0
- package/.agents/skills/diagram-design/assets/example-pyramid.html +119 -0
- package/.agents/skills/diagram-design/assets/example-quadrant-consultant.html +166 -0
- package/.agents/skills/diagram-design/assets/example-quadrant.html +135 -0
- package/.agents/skills/diagram-design/assets/example-radar.html +139 -0
- package/.agents/skills/diagram-design/assets/example-ridgeline.html +104 -0
- package/.agents/skills/diagram-design/assets/example-sankey.html +150 -0
- package/.agents/skills/diagram-design/assets/example-scatter.html +141 -0
- package/.agents/skills/diagram-design/assets/example-sequence-oauth.html +227 -0
- package/.agents/skills/diagram-design/assets/example-sequence.html +222 -0
- package/.agents/skills/diagram-design/assets/example-service-blueprint.html +185 -0
- package/.agents/skills/diagram-design/assets/example-slopegraph.html +119 -0
- package/.agents/skills/diagram-design/assets/example-state-lifecycle.html +92 -0
- package/.agents/skills/diagram-design/assets/example-state.html +147 -0
- package/.agents/skills/diagram-design/assets/example-story-map.html +184 -0
- package/.agents/skills/diagram-design/assets/example-streamgraph.html +99 -0
- package/.agents/skills/diagram-design/assets/example-swimlane.html +172 -0
- package/.agents/skills/diagram-design/assets/example-timeline.html +135 -0
- package/.agents/skills/diagram-design/assets/example-tree-block-decomposition.html +151 -0
- package/.agents/skills/diagram-design/assets/example-tree.html +173 -0
- package/.agents/skills/diagram-design/assets/example-treemap.html +107 -0
- package/.agents/skills/diagram-design/assets/example-uml-class.html +188 -0
- package/.agents/skills/diagram-design/assets/example-venn.html +110 -0
- package/.agents/skills/diagram-design/assets/example-wardley.html +153 -0
- package/.agents/skills/diagram-design/assets/example-waterfall.html +129 -0
- package/.agents/skills/diagram-design/assets/template-dark.html +99 -0
- package/.agents/skills/diagram-design/assets/template-full.html +421 -0
- package/.agents/skills/diagram-design/assets/template-motion.html +448 -0
- package/.agents/skills/diagram-design/assets/template-terminal.html +188 -0
- package/.agents/skills/diagram-design/assets/template.html +100 -0
- package/.agents/skills/diagram-design/references/animation.md +143 -0
- package/.agents/skills/diagram-design/references/export-registry.md +78 -0
- package/.agents/skills/diagram-design/references/export.md +376 -0
- package/.agents/skills/diagram-design/references/import-drawio.md +181 -0
- package/.agents/skills/diagram-design/references/import-excalidraw.md +130 -0
- package/.agents/skills/diagram-design/references/import-mermaid.md +137 -0
- package/.agents/skills/diagram-design/references/layout-budget.md +97 -0
- package/.agents/skills/diagram-design/references/onboarding.md +368 -0
- package/.agents/skills/diagram-design/references/output-spec.md +277 -0
- package/.agents/skills/diagram-design/references/primitive-annotation.md +36 -0
- package/.agents/skills/diagram-design/references/primitive-icons.md +827 -0
- package/.agents/skills/diagram-design/references/primitive-sketchy.md +43 -0
- package/.agents/skills/diagram-design/references/primitive-terminal.md +76 -0
- package/.agents/skills/diagram-design/references/primitives-core.md +146 -0
- package/.agents/skills/diagram-design/references/profiles.md +183 -0
- package/.agents/skills/diagram-design/references/semantic-patterns.md +154 -0
- package/.agents/skills/diagram-design/references/style-guide.md +236 -0
- package/.agents/skills/diagram-design/references/style-vivid.md +148 -0
- package/.agents/skills/diagram-design/references/type-architecture-delta.md +143 -0
- package/.agents/skills/diagram-design/references/type-architecture.md +117 -0
- package/.agents/skills/diagram-design/references/type-axonometric-plan.md +83 -0
- package/.agents/skills/diagram-design/references/type-bar.md +108 -0
- package/.agents/skills/diagram-design/references/type-data-flow.md +371 -0
- package/.agents/skills/diagram-design/references/type-db-schema.md +48 -0
- package/.agents/skills/diagram-design/references/type-dependency.md +44 -0
- package/.agents/skills/diagram-design/references/type-deployment.md +45 -0
- package/.agents/skills/diagram-design/references/type-dp-integration.md +407 -0
- package/.agents/skills/diagram-design/references/type-dp-security-matrix.md +379 -0
- package/.agents/skills/diagram-design/references/type-er.md +25 -0
- package/.agents/skills/diagram-design/references/type-exploded.md +115 -0
- package/.agents/skills/diagram-design/references/type-fishbone.md +75 -0
- package/.agents/skills/diagram-design/references/type-flowchart.md +23 -0
- package/.agents/skills/diagram-design/references/type-gantt.md +45 -0
- package/.agents/skills/diagram-design/references/type-heatmap.md +80 -0
- package/.agents/skills/diagram-design/references/type-high-level.md +470 -0
- package/.agents/skills/diagram-design/references/type-it-state.md +468 -0
- package/.agents/skills/diagram-design/references/type-journey.md +55 -0
- package/.agents/skills/diagram-design/references/type-kanban.md +49 -0
- package/.agents/skills/diagram-design/references/type-layers.md +26 -0
- package/.agents/skills/diagram-design/references/type-line.md +337 -0
- package/.agents/skills/diagram-design/references/type-loop.md +223 -0
- package/.agents/skills/diagram-design/references/type-medallion.md +356 -0
- package/.agents/skills/diagram-design/references/type-nested.md +22 -0
- package/.agents/skills/diagram-design/references/type-org-chart.md +44 -0
- package/.agents/skills/diagram-design/references/type-polar.md +136 -0
- package/.agents/skills/diagram-design/references/type-process.md +490 -0
- package/.agents/skills/diagram-design/references/type-pyramid.md +33 -0
- package/.agents/skills/diagram-design/references/type-quadrant.md +81 -0
- package/.agents/skills/diagram-design/references/type-radar.md +82 -0
- package/.agents/skills/diagram-design/references/type-sankey.md +75 -0
- package/.agents/skills/diagram-design/references/type-scatter.md +276 -0
- package/.agents/skills/diagram-design/references/type-sequence.md +130 -0
- package/.agents/skills/diagram-design/references/type-service-blueprint.md +103 -0
- package/.agents/skills/diagram-design/references/type-state.md +30 -0
- package/.agents/skills/diagram-design/references/type-story-map.md +46 -0
- package/.agents/skills/diagram-design/references/type-swimlane.md +22 -0
- package/.agents/skills/diagram-design/references/type-timeline.md +20 -0
- package/.agents/skills/diagram-design/references/type-tree.md +24 -0
- package/.agents/skills/diagram-design/references/type-treemap.md +137 -0
- package/.agents/skills/diagram-design/references/type-uml-class.md +65 -0
- package/.agents/skills/diagram-design/references/type-venn.md +26 -0
- package/.agents/skills/diagram-design/references/type-wardley.md +39 -0
- package/.agents/skills/diagram-design/references/type-waterfall.md +75 -0
- package/.agents/skills/scrum-meta/SKILL.md +36 -36
- package/.agents/skills/scrum-planning/SKILL.md +61 -61
- package/.agents/skills/scrum-planning/references/schema.md +384 -336
- package/.agents/skills/scrum-report/SKILL.md +42 -42
- package/.agents/skills/scrum-sprint/SKILL.md +49 -49
- package/.agents/skills/scrum-tdd/SKILL.md +140 -127
- package/README.md +224 -201
- package/assets/board/200.html +1 -1
- package/assets/board/404.html +1 -1
- package/assets/board/_nuxt/1XlYaCp9.js +1 -0
- package/assets/board/_nuxt/4gQF_HS3.js +1 -0
- package/assets/board/_nuxt/5okfNy5D.js +1 -0
- package/assets/board/_nuxt/{Bb3Limos.js → B0C2jsdk.js} +1 -1
- package/assets/board/_nuxt/B1j6UC4U.js +1 -0
- package/assets/board/_nuxt/B3LKy6o2.js +1 -0
- package/assets/board/_nuxt/BAQQngAq.js +13 -0
- package/assets/board/_nuxt/BE6t7Q2m.js +1 -0
- package/assets/board/_nuxt/BLvbupFS.js +1 -0
- package/assets/board/_nuxt/BQgzP7ur.js +1 -0
- package/assets/board/_nuxt/BRZIF_wo.js +1 -0
- package/assets/board/_nuxt/BW3xJdEx.js +1 -0
- package/assets/board/_nuxt/{Cm9lkUvP.js → BY36DFyj.js} +1 -1
- package/assets/board/_nuxt/BZlZD94i.js +1 -0
- package/assets/board/_nuxt/BZvXNwev.js +3 -0
- package/assets/board/_nuxt/BbxmvdIF.js +1 -0
- package/assets/board/_nuxt/BiWrMOsL.js +1 -0
- package/assets/board/_nuxt/BizDeOK5.js +1 -0
- package/assets/board/_nuxt/BkcaOYQ_.js +95 -0
- package/assets/board/_nuxt/BkoKCNUY.js +1 -0
- package/assets/board/_nuxt/BlKmZhhF.js +1 -0
- package/assets/board/_nuxt/BmBpmU73.js +1 -0
- package/assets/board/_nuxt/BrWE0up6.js +1 -0
- package/assets/board/_nuxt/Bs52qkgk.js +1 -0
- package/assets/board/_nuxt/BtzUbHO_.js +1 -0
- package/assets/board/_nuxt/BuBzMkFZ.js +1 -0
- package/assets/board/_nuxt/Bubk0xn-.js +1 -0
- package/assets/board/_nuxt/BxuBMtk_.js +3 -0
- package/assets/board/_nuxt/By1KXXLR.js +1 -0
- package/assets/board/_nuxt/BygIGL69.js +2 -0
- package/assets/board/_nuxt/C1iO5KH3.js +1 -0
- package/assets/board/_nuxt/C2YPmTzt.js +1 -0
- package/assets/board/_nuxt/C3SpAhCW.js +1 -0
- package/assets/board/_nuxt/C3ZRWz5L.js +1 -0
- package/assets/board/_nuxt/C4WdPP6K.js +1 -0
- package/assets/board/_nuxt/C6o03JHe.js +1 -0
- package/assets/board/_nuxt/C8qB5llI.js +1 -0
- package/assets/board/_nuxt/C9MgRdhu.js +1 -0
- package/assets/board/_nuxt/CCA81-4P.js +1 -0
- package/assets/board/_nuxt/{D2O8Q8x9.js → CFCM18fF.js} +1 -1
- package/assets/board/_nuxt/CGXljzd_.js +1 -0
- package/assets/board/_nuxt/CI0scS-N.js +1 -0
- package/assets/board/_nuxt/CJs9B42o.js +1 -0
- package/assets/board/_nuxt/COecDWbb.js +1 -0
- package/assets/board/_nuxt/COmtTtfB.js +1 -0
- package/assets/board/_nuxt/CPYm4J_K.js +1 -0
- package/assets/board/_nuxt/CReA4TEB.js +3 -0
- package/assets/board/_nuxt/CXG7GZes.js +1 -0
- package/assets/board/_nuxt/CYGiZn-X.js +1 -0
- package/assets/board/_nuxt/CaE8VlUp.js +1 -0
- package/assets/board/_nuxt/CcGiNUgA.js +1 -0
- package/assets/board/_nuxt/Ccgv3lDj.js +1 -0
- package/assets/board/_nuxt/CdPGFZyy.js +1 -0
- package/assets/board/_nuxt/{DfR3IZN_.js → Cdf_T8Xa.js} +1 -1
- package/assets/board/_nuxt/CgQ30j_6.js +1 -0
- package/assets/board/_nuxt/ChUHb39z.js +1 -0
- package/assets/board/_nuxt/Ck0-FqVI.js +1 -0
- package/assets/board/_nuxt/CkWKLtjO.js +1 -0
- package/assets/board/_nuxt/Cq7hsCKB.js +1 -0
- package/assets/board/_nuxt/CtFknnHZ.js +1 -0
- package/assets/board/_nuxt/D166WVUG.js +1 -0
- package/assets/board/_nuxt/D4Dpzo9e.js +1 -0
- package/assets/board/_nuxt/D5i92OZO.js +1 -0
- package/assets/board/_nuxt/D6dUp4Nm.js +9 -0
- package/assets/board/_nuxt/DFQDFspC.js +1 -0
- package/assets/board/_nuxt/DHX2tw9J.js +1 -0
- package/assets/board/_nuxt/DJM7u8P3.js +1 -0
- package/assets/board/_nuxt/{BPTrRhcw.js → DLr85ebo.js} +1 -1
- package/assets/board/_nuxt/DOMM1wfl.js +1 -0
- package/assets/board/_nuxt/DU6ArlUN.js +1 -0
- package/assets/board/_nuxt/{B_SlFcWp.js → DUgGsde6.js} +1 -1
- package/assets/board/_nuxt/DV4ti-Pq.js +1 -0
- package/assets/board/_nuxt/DZ--fXuU.js +1 -0
- package/assets/board/_nuxt/D_ct-Stz.js +2 -0
- package/assets/board/_nuxt/DbWAComO.js +1 -0
- package/assets/board/_nuxt/DbwlcHAt.js +1 -0
- package/assets/board/_nuxt/DjzLR9Bl.js +1 -0
- package/assets/board/_nuxt/Dki9VkAL.js +3 -0
- package/assets/board/_nuxt/DlNJhOoc.js +1 -0
- package/assets/board/_nuxt/DqG7CtD4.js +1 -0
- package/assets/board/_nuxt/DqUSsCJ2.js +1 -0
- package/assets/board/_nuxt/Du2F4WXh.js +1 -0
- package/assets/board/_nuxt/DuRiEXn4.js +1 -0
- package/assets/board/_nuxt/DxBwVNyP.js +2 -0
- package/assets/board/_nuxt/DzmVW5-D.js +1 -0
- package/assets/board/_nuxt/I-sGtDIB.js +6 -0
- package/assets/board/_nuxt/JU9-x68N.js +1 -0
- package/assets/board/_nuxt/Lozm7hhE.js +1 -0
- package/assets/board/_nuxt/MMsTMkcB.js +1 -0
- package/assets/board/_nuxt/MS7CGmCB.js +1 -0
- package/assets/board/_nuxt/OKKaKILz.js +1 -0
- package/assets/board/_nuxt/{Csqgy925.js → P6qlvBHA.js} +1 -1
- package/assets/board/_nuxt/SrNUvNwO.js +1 -0
- package/assets/board/_nuxt/{DSaWoFHS.js → SywdkA98.js} +1 -1
- package/assets/board/_nuxt/TBIRpVLG.js +1 -0
- package/assets/board/_nuxt/TlTrMIMm.js +1 -0
- package/assets/board/_nuxt/Zv9-SOQF.js +1 -0
- package/assets/board/_nuxt/_id_.ItzoSaBL.css +1 -0
- package/assets/board/_nuxt/builds/latest.json +1 -1
- package/assets/board/_nuxt/builds/meta/2218461a-f45b-41d6-ae44-b0d2332a9511.json +1 -0
- package/assets/board/_nuxt/burndown.CT8fx1Ge.css +1 -0
- package/assets/board/_nuxt/diagrams.D1ybqBem.css +1 -0
- package/assets/board/_nuxt/{entry.CKHePurH.css → entry.BCuHiFgF.css} +1 -1
- package/assets/board/_nuxt/epics.CUeDIEa0.css +1 -0
- package/assets/board/_nuxt/error-404.Y9imKiDC.css +1 -0
- package/assets/board/_nuxt/error-500.DufSBGVC.css +1 -0
- package/assets/board/_nuxt/gantt.CiC2Ts1t.css +1 -0
- package/assets/board/_nuxt/jbri6q1p.js +1 -0
- package/assets/board/_nuxt/last-change.C05Vc3BF.css +1 -0
- package/assets/board/_nuxt/milestones.Civ3sMiQ.css +1 -0
- package/assets/board/_nuxt/oSJF4yHw.js +1 -0
- package/assets/board/_nuxt/pages.BshWbOyo.css +1 -0
- package/assets/board/_nuxt/q_8bxRMt.js +1 -0
- package/assets/board/_nuxt/tests.Ci9fBCka.css +1 -0
- package/assets/board/burndown/index.html +1 -1
- package/assets/board/diagrams/index.html +1 -0
- package/assets/board/epics/index.html +1 -1
- package/assets/board/favicon.svg +16 -16
- package/assets/board/gantt/index.html +1 -1
- package/assets/board/index.html +1 -1
- package/assets/board/last-change/index.html +1 -1
- package/assets/board/milestones/index.html +1 -1
- package/assets/board/tests/index.html +1 -1
- package/bin/scrum-skills.mjs +204 -191
- package/docs/ai-assistant-guide.md +1008 -1008
- package/package.json +42 -41
- package/templates/AGENTS.md +84 -74
- package/tools/agile-tools.mjs +510 -510
- package/tools/ai.mjs +464 -464
- package/tools/diagram-import.mjs +238 -0
- package/tools/diagram-lint.mjs +518 -0
- package/tools/diagram.mjs +299 -0
- package/tools/git-commit.mjs +216 -216
- package/tools/last-change.mjs +326 -326
- package/tools/projects.mjs +240 -215
- package/tools/serve.mjs +180 -154
- package/tools/validate.mjs +781 -664
- package/assets/board/_nuxt/1eqboJxR.js +0 -1
- package/assets/board/_nuxt/2K7ag6ES.js +0 -1
- package/assets/board/_nuxt/51OWHj8c.js +0 -2
- package/assets/board/_nuxt/6gFtTBwm.js +0 -1
- package/assets/board/_nuxt/B3jkABw9.js +0 -1
- package/assets/board/_nuxt/B5n2_jZN.js +0 -1
- package/assets/board/_nuxt/BDK2Hj7B.js +0 -1
- package/assets/board/_nuxt/BDcnzXHq.js +0 -1
- package/assets/board/_nuxt/BaG8y0Wt.js +0 -1
- package/assets/board/_nuxt/BbwJq5pb.js +0 -1
- package/assets/board/_nuxt/BgLeKwx0.js +0 -1
- package/assets/board/_nuxt/Bi9Axj3V.js +0 -1
- package/assets/board/_nuxt/BmxvtaMq.js +0 -1
- package/assets/board/_nuxt/BodFvto3.js +0 -1
- package/assets/board/_nuxt/BpWeHLuN.js +0 -1
- package/assets/board/_nuxt/BuOKDFiJ.js +0 -1
- package/assets/board/_nuxt/C40iTe-x.js +0 -1
- package/assets/board/_nuxt/C7K0R7F-.js +0 -2
- package/assets/board/_nuxt/C8vL692X.js +0 -1
- package/assets/board/_nuxt/C9StZL3D.js +0 -3
- package/assets/board/_nuxt/CGI_ZV79.js +0 -1
- package/assets/board/_nuxt/CJ2mz0WY.js +0 -1
- package/assets/board/_nuxt/CJMBJQuf.js +0 -1
- package/assets/board/_nuxt/CK-lOYG9.js +0 -1
- package/assets/board/_nuxt/CK9_veoz.js +0 -1
- package/assets/board/_nuxt/CLBcBrYf.js +0 -1
- package/assets/board/_nuxt/CMUi2-Lj.js +0 -1
- package/assets/board/_nuxt/COf6E6h4.js +0 -1
- package/assets/board/_nuxt/CPCUMJnF.js +0 -1
- package/assets/board/_nuxt/CPcKlmSm.js +0 -1
- package/assets/board/_nuxt/CQTvWh4i.js +0 -1
- package/assets/board/_nuxt/CSEEUF8S.js +0 -1
- package/assets/board/_nuxt/CSSb154I.js +0 -13
- package/assets/board/_nuxt/CgDTd7jS.js +0 -1
- package/assets/board/_nuxt/ChG76uh9.js +0 -1
- package/assets/board/_nuxt/Ci0qbkgh.js +0 -1
- package/assets/board/_nuxt/CqoQ__I_.js +0 -1
- package/assets/board/_nuxt/CuJUHLl8.js +0 -1
- package/assets/board/_nuxt/CvLiA4_O.js +0 -1
- package/assets/board/_nuxt/Cvs12oA0.js +0 -3
- package/assets/board/_nuxt/CyEXFe3V.js +0 -1
- package/assets/board/_nuxt/Cz6rZcLK.js +0 -1
- package/assets/board/_nuxt/D2FhHl1o.js +0 -1
- package/assets/board/_nuxt/D3YCAmfu.js +0 -1
- package/assets/board/_nuxt/D5CE81jK.js +0 -1
- package/assets/board/_nuxt/D75vbfSb.js +0 -1
- package/assets/board/_nuxt/D99LbGfb.js +0 -9
- package/assets/board/_nuxt/DEfLc7p3.js +0 -6
- package/assets/board/_nuxt/DF-nsa1Z.js +0 -1
- package/assets/board/_nuxt/DIc8yx98.js +0 -1
- package/assets/board/_nuxt/DLkAKotw.js +0 -1
- package/assets/board/_nuxt/DRPlYvb3.js +0 -1
- package/assets/board/_nuxt/DRlQgul3.js +0 -1
- package/assets/board/_nuxt/DSLbmoWa.js +0 -1
- package/assets/board/_nuxt/DWO9c9yp.js +0 -1
- package/assets/board/_nuxt/DZo3dYLJ.js +0 -3
- package/assets/board/_nuxt/D_S6N7_b.js +0 -1
- package/assets/board/_nuxt/DajA-Tkt.js +0 -1
- package/assets/board/_nuxt/DbHiyab-.js +0 -1
- package/assets/board/_nuxt/Dc7Ql6eE.js +0 -1
- package/assets/board/_nuxt/Dd9ZukPU.js +0 -1
- package/assets/board/_nuxt/Dg2LiqmN.js +0 -1
- package/assets/board/_nuxt/DhuleNnm.js +0 -1
- package/assets/board/_nuxt/DkI1Qxpp.js +0 -95
- package/assets/board/_nuxt/DnDHGSYI.js +0 -1
- package/assets/board/_nuxt/DpXJ_tCU.js +0 -1
- package/assets/board/_nuxt/DqZgF3hU.js +0 -1
- package/assets/board/_nuxt/DqcxvfbD.js +0 -1
- package/assets/board/_nuxt/DsA2lVci.js +0 -1
- package/assets/board/_nuxt/Dtsa-1NS.js +0 -1
- package/assets/board/_nuxt/Du91iq0p.js +0 -1
- package/assets/board/_nuxt/Dx1wcYFo.js +0 -1
- package/assets/board/_nuxt/EYTShbt4.js +0 -1
- package/assets/board/_nuxt/MaXJprwN.js +0 -1
- package/assets/board/_nuxt/P9x67aq2.js +0 -1
- package/assets/board/_nuxt/S08nFESZ.js +0 -3
- package/assets/board/_nuxt/V0uynWE2.js +0 -1
- package/assets/board/_nuxt/Vo4wMbnS.js +0 -1
- package/assets/board/_nuxt/ZVTqot-_.js +0 -1
- package/assets/board/_nuxt/ZngEd3HB.js +0 -1
- package/assets/board/_nuxt/_id_.B2NDKSlX.css +0 -1
- package/assets/board/_nuxt/assMu_Wn.js +0 -1
- package/assets/board/_nuxt/builds/meta/8e23aec9-5b67-4569-b8bf-d4f07e50ffdf.json +0 -1
- package/assets/board/_nuxt/burndown.Do6IbM6o.css +0 -1
- package/assets/board/_nuxt/epics.Dmessplu.css +0 -1
- package/assets/board/_nuxt/error-404.BFmXOnCT.css +0 -1
- package/assets/board/_nuxt/error-500.BZ-DdjQ6.css +0 -1
- package/assets/board/_nuxt/gantt.Dmp00GUo.css +0 -1
- package/assets/board/_nuxt/last-change.1Su4GrCN.css +0 -1
- package/assets/board/_nuxt/milestones.U0xKCsEo.css +0 -1
- package/assets/board/_nuxt/pages.Dbj2IVk8.css +0 -1
- package/assets/board/_nuxt/rlePnzpc.js +0 -1
- package/assets/board/_nuxt/tests.dXlUX16A.css +0 -1
- package/assets/board/_nuxt/uKzCKCTq.js +0 -1
- package/assets/board/_nuxt/vwxaNGfc.js +0 -1
- package/assets/board/_nuxt/yh6sf_D5.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./P6qlvBHA.js";import{At as t,U as n,m as r,q as i,qt as a,u as o}from"./BxuBMtk_.js";import{n as s,t as c}from"./BE6t7Q2m.js";var l={base:`my-5 leading-7 text-pretty`},u={__name:`ProseP`,props:{class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(u){let d=s(`prose.p`,u),f=e(),p=o(()=>c({extend:l,...f.ui?.prose?.p||{}}));return(e,o)=>(n(),r(`p`,{class:a(p.value({class:[t(d).ui?.base,t(d).class]}))},[i(e.$slots,`default`)],2))}};export{u as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e,o as t,p as n,s as r}from"./CFCM18fF.js";import{at as i,c as a,gt as o,h as s,ht as c,lt as l,n as u,ot as d,pt as f,r as p,st as m,t as h}from"./DxBwVNyP.js";import{At as g,B as _,E as v,I as y,J as b,S as x,u as S,wt as C,xt as w}from"./BxuBMtk_.js";import{f as T,m as E,n as D,o as O,s as k}from"./SywdkA98.js";var A={scrollBehavior(e,n,r){let i=t(),a=l(),o=a.options?.scrollBehaviorType??`auto`;return e.path.replace(/\/$/,``)===n.path.replace(/\/$/,``)?n.hash&&!e.hash?r??{left:0,top:0}:e.hash?{el:e.hash,top:j(e.hash),behavior:o}:!1:(typeof e.meta.scrollToTop==`function`?e.meta.scrollToTop(e,n):e.meta.scrollToTop)===!1?!1:n===s?M(e,n,r,o):new Promise(t=>{let s=()=>{requestAnimationFrame(()=>{a.currentRoute.value.fullPath===e.fullPath?t(M(e,n,r,o)):t(!1)})};i.hooks.hookOnce(`page:loading:end`,()=>{let e=i[`~transitionPromise`];e?e.then(s):s()})})}};function j(e){let t=document.getElementById(e.slice(1));return t?(Number.parseFloat(getComputedStyle(t).scrollMarginTop)||0)+(Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop)||0):0}function M(e,t,n,r){return n||(e.hash?{el:e.hash,top:j(e.hash),behavior:a(e,t)?r:`instant`}:{left:0,top:0})}var N={hashMode:!1,scrollBehaviorType:`auto`,sensitive:!1,...A},P=/2g/;function F(){let e=navigator.connection;return!e||!e.saveData&&!P.test(e.effectiveType||``)}function I(e){let{pathname:t,search:n}=new URL(e,window.location.href);return t+n}function L(e){if(e?.__asyncLoader&&!e.__asyncResolved)return e.__asyncLoader()}function R(e){return Promise.all(e.map(e=>{let t=e.components?.default;return typeof t==`function`?Promise.resolve(t()).catch(()=>{}):void 0}))}function z(t,n){let{fullPath:r,path:i,matched:a}=n.resolve(t);if(!a.length)return;let o=e()?._prefetch;o?o.schedule({key:`route:${i}`,priority:`route`,scope:`navigation`,group:I(r),run:e=>e.aborted?void 0:R(a)}):R(a)}var B=(...e)=>e.find(e=>e!==void 0);function V(e){let n=e.componentName||`NuxtLink`;function a(e){return typeof e==`string`&&e.startsWith(`#`)}function s(t,n,r){let i=r??e.trailingSlash;if(!t||i!==`append`&&i!==`remove`)return t;if(typeof t==`string`)return U(t,i);let a=`path`in t&&t.path!==void 0?t.path:n(t).path;return{...t,name:void 0,path:U(a,i)}}function T(t){let n=l(),i=r(),u=n.options?.history?.createHref??(e=>O(i.app.baseURL,e)),p=S(()=>!!g(t.target)&&g(t.target)!==`_self`),h=S(()=>{let e=g(t.to)||g(t.href)||``;return typeof e==`string`&&f(e)}),_=S(()=>{if(g(t.external))return!0;let e=g(t.to)||g(t.href)||``;return typeof e==`object`?!1:e===``||h.value}),v=S(()=>{let e=g(t.to)||g(t.href)||``;return _.value?e:s(e,n.resolve,g(t.trailingSlash))}),y=S(()=>{let r=g(t.trailingSlash)??e.trailingSlash;if(!v.value||h.value||a(v.value)){let e=v.value;return typeof e==`string`?o(e):e}if(_.value){let e=typeof v.value==`object`&&`path`in v.value?m(v.value):v.value,t=typeof e==`object`?n.resolve(e).href:e,i=typeof t==`string`?o(t):t;return i===null?null:U(i,r)}return typeof v.value==`object`?n.resolve(v.value)?.href??null:U(c(v.value)?u(v.value):n.resolve(v.value).href,r)});return{to:v,hasTarget:p,isAbsoluteUrl:h,isExternal:_,href:y,async navigate(e){y.value!==null&&await d(y.value,{replace:g(t.replace),external:_.value||p.value})}}}function E(e){let t=l(),n=T(e),r=b(`RouterLink`),i=r&&typeof r!=`string`?r.useLink:void 0,a=n.isExternal.value?void 0:i?.({...e,to:n.to,viewTransition:g(e.viewTransition)});return{...n,isActive:a?.isActive??S(()=>n.to.value===t.currentRoute.value.path),isExactActive:a?.isExactActive??S(()=>n.to.value===t.currentRoute.value.path),route:a?.route??S(()=>t.resolve(n.to.value))}}return x({name:n,props:{to:{type:[String,Object],required:!1},href:{type:[String,Object],required:!1},target:{type:String,required:!1},rel:{type:String,required:!1},noRel:{type:Boolean,default:void 0,required:!1},prefetch:{type:Boolean,default:void 0,required:!1},prefetchOn:{type:[String,Object],required:!1},noPrefetch:{type:Boolean,default:void 0,required:!1},activeClass:{type:String,required:!1},exactActiveClass:{type:String,required:!1},prefetchedClass:{type:String,required:!1},replace:{type:Boolean,default:void 0,required:!1},ariaCurrentValue:{type:String,required:!1},external:{type:Boolean,default:void 0,required:!1},custom:{type:Boolean,default:void 0,required:!1},trailingSlash:{type:String,required:!1}},useLink:E,setup(n,{slots:r}){let s=l(),c=b(`RouterLink`),{to:d,href:f,navigate:g,isExternal:x,hasTarget:S,isAbsoluteUrl:E}=T(n),D=C(!1),O=w(null),A=e=>{O.value=n.custom?e?.$el?.nextElementSibling:e?.$el};function j(t){return typeof n.prefetchOn==`string`?n.prefetchOn===t:n.prefetchOn?.[t]??e.prefetchOn?.[t]}function M(){return!!((n.prefetch??e.prefetch)!==!1&&n.noPrefetch!==!0&&n.target!==`_blank`&&F())}function N(e){return!!(!D.value&&j(e)&&M())}function P(){let e=typeof d.value==`string`?d.value:x.value?m(d.value):s.resolve(d.value).fullPath;return x.value?new URL(e,window.location.href).href:e}function L(){D.value?x.value||t()._prefetch?.promote(I(P())):j(`interaction`)&&R()}async function R(e=t()){if(D.value||f.value===null)return;D.value=!0;let n=P();await Promise.all([e.hooks.callHook(`link:prefetch`,n)?.catch(()=>{}),!x.value&&!S.value&&z(d.value,s)])}if(!n.custom&&N(`visibility`)){let e=t(),n,r=null;_(()=>{let t=W();h(()=>{n=p(()=>{O?.value?.tagName&&(r=t.observe(O.value,async()=>{r?.(),r=null,await R(e)}))})})}),y(()=>{n&&u(n),r?.(),r=null})}return()=>{let t=n.target||null,l=B(n.noRel?``:n.rel,e.externalRelAttribute,E.value||S.value?`noopener noreferrer`:``)||null,u=e=>({navigate:g,get route(){if(!f.value)return;let e=new URL(f.value,window.location.href);return{path:e.pathname,fullPath:e.pathname,get query(){return k(e.search)},hash:e.hash,params:{},name:void 0,matched:[],redirectedFrom:void 0,meta:{},href:f.value}},rel:l,target:t,isExternal:x.value||S.value,isActive:!1,isExactActive:!1,...e,href:typeof e?.href==`string`?o(e.href):f.value,prefetch:R,prefetched:D.value,shouldPrefetch:N});if(!x.value&&!S.value&&!a(d.value)){let t={ref:A,to:d.value,activeClass:n.activeClass||e.activeClass,exactActiveClass:n.exactActiveClass||e.exactActiveClass,replace:n.replace,ariaCurrentValue:n.ariaCurrentValue,custom:n.custom};return n.custom||((j(`interaction`)||D.value)&&M()&&(t.onPointerenter=L,t.onFocus=L,t.onPointerdown=L),D.value&&(t.class=n.prefetchedClass||e.prefetchedClass),t.rel=n.rel||void 0),v(c,t,n.custom&&r.default?{default:e=>r.default(u(e))}:r.default)}return n.custom?r.default?r.default(u()):null:v(`a`,{ref:O,href:f.value||null,rel:l,target:t,onClick:async e=>{if(!(x.value||S.value)){e.preventDefault();try{let e=i(f.value??``);return await(n.replace?s.replace(e):s.push(e))}finally{if(a(d.value)){let e=d.value.slice(1),t=e;try{t=decodeURIComponent(e)}catch{}document.getElementById(t)?.focus()}}}}},r.default?.())}}})}var H=V(n);function U(e,t){if(t!==`append`&&t!==`remove`)return e;let n=t===`append`?T:E;return D(e)&&!e.startsWith(`http`)?e:n(e,!0)}function W(){let e=t();if(e._observer)return e._observer;let n=null,r=new Map;return e._observer={observe:(e,t)=>(n||=new IntersectionObserver(e=>{for(let t of e){let e=r.get(t.target);(t.isIntersecting||t.intersectionRatio>0)&&e&&e()}}),r.set(e,t),n.observe(e),()=>{r.delete(e),n?.unobserve(e),r.size===0&&(n?.disconnect(),n=null)})}}export{F as a,z as i,W as n,I as o,L as r,N as s,H as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./P6qlvBHA.js";import{At as t,M as n,U as r,Xt as i,f as a,lt as o,m as s,nt as c,p as l,q as u,qt as d,u as f}from"./BxuBMtk_.js";import{t as p}from"./DzmVW5-D.js";import{a as m,n as h,t as g}from"./Cdf_T8Xa.js";import{n as _,t as v}from"./BE6t7Q2m.js";import{t as y}from"./DJM7u8P3.js";var b={slots:{base:`font-medium inline-flex items-center`,label:`truncate`,leadingIcon:`shrink-0`,leadingAvatar:`shrink-0`,leadingAvatarSize:``,trailingIcon:`shrink-0`},variants:{fieldGroup:{horizontal:`not-only:first:rounded-e-none not-only:last:rounded-s-none not-last:not-first:rounded-none focus-visible:z-[1]`,vertical:`not-only:first:rounded-b-none not-only:last:rounded-t-none not-last:not-first:rounded-none focus-visible:z-[1]`},color:{primary:``,secondary:``,success:``,info:``,warning:``,error:``,neutral:``},variant:{solid:``,outline:``,soft:``,subtle:``},size:{xs:{base:`text-[8px]/3 px-1 py-0.5 gap-1 rounded-sm`,leadingIcon:`size-3`,leadingAvatarSize:`3xs`,trailingIcon:`size-3`},sm:{base:`text-[10px]/3 px-1.5 py-1 gap-1 rounded-sm`,leadingIcon:`size-3`,leadingAvatarSize:`3xs`,trailingIcon:`size-3`},md:{base:`text-xs px-2 py-1 gap-1 rounded-md`,leadingIcon:`size-4`,leadingAvatarSize:`3xs`,trailingIcon:`size-4`},lg:{base:`text-sm px-2 py-1 gap-1.5 rounded-md`,leadingIcon:`size-5`,leadingAvatarSize:`2xs`,trailingIcon:`size-5`},xl:{base:`text-base px-2.5 py-1 gap-1.5 rounded-md`,leadingIcon:`size-6`,leadingAvatarSize:`2xs`,trailingIcon:`size-6`}},square:{true:``}},compoundVariants:[{color:`primary`,variant:`solid`,class:`bg-primary text-inverted`},{color:`secondary`,variant:`solid`,class:`bg-secondary text-inverted`},{color:`success`,variant:`solid`,class:`bg-success text-inverted`},{color:`info`,variant:`solid`,class:`bg-info text-inverted`},{color:`warning`,variant:`solid`,class:`bg-warning text-inverted`},{color:`error`,variant:`solid`,class:`bg-error text-inverted`},{color:`primary`,variant:`outline`,class:`text-primary ring ring-inset ring-primary/50`},{color:`secondary`,variant:`outline`,class:`text-secondary ring ring-inset ring-secondary/50`},{color:`success`,variant:`outline`,class:`text-success ring ring-inset ring-success/50`},{color:`info`,variant:`outline`,class:`text-info ring ring-inset ring-info/50`},{color:`warning`,variant:`outline`,class:`text-warning ring ring-inset ring-warning/50`},{color:`error`,variant:`outline`,class:`text-error ring ring-inset ring-error/50`},{color:`primary`,variant:`soft`,class:`bg-primary/10 text-primary`},{color:`secondary`,variant:`soft`,class:`bg-secondary/10 text-secondary`},{color:`success`,variant:`soft`,class:`bg-success/10 text-success`},{color:`info`,variant:`soft`,class:`bg-info/10 text-info`},{color:`warning`,variant:`soft`,class:`bg-warning/10 text-warning`},{color:`error`,variant:`soft`,class:`bg-error/10 text-error`},{color:`primary`,variant:`subtle`,class:`bg-primary/10 text-primary ring ring-inset ring-primary/25`},{color:`secondary`,variant:`subtle`,class:`bg-secondary/10 text-secondary ring ring-inset ring-secondary/25`},{color:`success`,variant:`subtle`,class:`bg-success/10 text-success ring ring-inset ring-success/25`},{color:`info`,variant:`subtle`,class:`bg-info/10 text-info ring ring-inset ring-info/25`},{color:`warning`,variant:`subtle`,class:`bg-warning/10 text-warning ring ring-inset ring-warning/25`},{color:`error`,variant:`subtle`,class:`bg-error/10 text-error ring ring-inset ring-error/25`},{color:`neutral`,variant:`solid`,class:`text-inverted bg-inverted`},{color:`neutral`,variant:`outline`,class:`ring ring-inset ring-accented text-default bg-default`},{color:`neutral`,variant:`soft`,class:`text-default bg-elevated`},{color:`neutral`,variant:`subtle`,class:`ring ring-inset ring-accented text-default bg-elevated`},{size:`xs`,square:!0,class:`p-0.5`},{size:`sm`,square:!0,class:`p-1`},{size:`md`,square:!0,class:`p-1`},{size:`lg`,square:!0,class:`p-1`},{size:`xl`,square:!0,class:`p-1`}],defaultVariants:{color:`primary`,variant:`solid`,size:`md`}},x={__name:`UBadge`,props:{as:{type:null,required:!1,default:`span`},label:{type:[String,Number],required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},square:{type:Boolean,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},icon:{type:null,required:!1},avatar:{type:Object,required:!1},leading:{type:Boolean,required:!1},leadingIcon:{type:null,required:!1},trailing:{type:Boolean,required:!1},trailingIcon:{type:null,required:!1}},setup(x){let S=x,C=c(),w=_(`badge`,S),T=e(),{orientation:E,size:D}=m(S),{isLeading:O,isTrailing:k,leadingIconName:A,trailingIconName:j}=g(w),M=f(()=>v({extend:b,...T.ui?.badge||{}})({color:w.color,variant:w.variant,size:D.value??w.size,square:w.square||!C.default&&!w.label,fieldGroup:E.value}));return(e,c)=>(r(),a(t(p),{as:t(w).as,"data-slot":`base`,class:d(M.value.base({class:[t(w).ui?.base,t(w).class]}))},{default:o(()=>[u(e.$slots,`leading`,{ui:M.value},()=>[t(O)&&t(A)?(r(),a(y,{key:0,name:t(A),"data-slot":`leadingIcon`,class:d(M.value.leadingIcon({class:t(w).ui?.leadingIcon}))},null,8,[`name`,`class`])):t(w).avatar?(r(),a(h,n({key:1,size:t(w).ui?.leadingAvatarSize||M.value.leadingAvatarSize()},t(w).avatar,{"data-slot":`leadingAvatar`,class:M.value.leadingAvatar({class:t(w).ui?.leadingAvatar})}),null,16,[`size`,`class`])):l(``,!0)]),u(e.$slots,`default`,{ui:M.value},()=>[t(w).label!==void 0&&t(w).label!==null?(r(),s(`span`,{key:0,"data-slot":`label`,class:d(M.value.label({class:t(w).ui?.label}))},i(t(w).label),3)):l(``,!0)]),u(e.$slots,`trailing`,{ui:M.value},()=>[t(k)&&t(j)?(r(),a(y,{key:0,name:t(j),"data-slot":`trailingIcon`,class:d(M.value.trailingIcon({class:t(w).ui?.trailingIcon}))},null,8,[`name`,`class`])):l(``,!0)])]),_:3},8,[`as`,`class`]))}};export{x as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e,i as t,o as n,r,s as i}from"#entry";import{t as a}from"./DJM7u8P3.js";import{t as o}from"./CI0scS-N.js";import{At as s,K as c,S as l,U as u,Xt as d,Yt as f,b as p,d as m,i as h,lt as g,m as _,p as v,qt as y,u as b,y as x}from"./BxuBMtk_.js";var ee={class:`kpis`},te={class:`v`},S={class:`v`},C={class:`v`},w={class:`v`},T={class:`v`},E={class:`grid`},D={class:`hero`},O={class:`hero-top`},k={class:`tag tag-ghost`},A={class:`tag tag-neutral`},j={key:0,class:`tag tag-error`},M={key:1,class:`tag tag-warning`},N={class:`hero-pct`},P={class:`epic-title`},F={class:`goal`},I={class:`bar ink hero-bar`},L={class:`hero-foot`},ne={class:`bd`},R={class:`h3`},z={key:0,class:`dim empty`},B={class:`kr-top`},V={class:`kr-text`},H={class:`kr-num mono`},U={class:`h3 stories-hd`},W={class:`stlist`},G={class:`st-id mono`},K={class:`st-title`},q={class:`st-pts dim`},J={class:`st-state dim`},Y=t(l({__name:`epics`,setup(t){let{epics:l,storyById:Y,STATE_LABEL:X,STATE_DOT:Z,TYPE_LABEL:re,TYPE_COLOR:ie,TYPE_ICON:ae,PRIORITY_COLOR:oe}=i(),se={draft:`neutral`,active:`primary`,done:`success`,cancelled:`error`},ce={draft:`草稿`,active:`进行中`,done:`已完成`,cancelled:`已取消`},Q=b(()=>l.value.map(e=>{let t=(e.stories??[]).map(e=>Y.value.get(e)).filter(Boolean),n=t.filter(e=>e.status===`done`),r=t.reduce((e,t)=>e+t.points,0),i=n.reduce((e,t)=>e+t.points,0),a=(e.keyResults??[]).map(e=>{let t=e.target>0?Math.min(100,Math.round((e.current??0)/e.target*100)):(e.current??0)<=0?100:0;return{...e,pct:t,ok:t>=100}});return{...e,list:t,done:n,points:r,donePoints:i,pct:r?Math.round(i/r*100):0,krs:a,krOk:a.filter(e=>e.ok).length,blocked:t.filter(e=>e.blocked),bugs:t.filter(e=>e.type===`bug`)}})),$=b(()=>({epics:Q.value.length,stories:Q.value.reduce((e,t)=>e+t.list.length,0),points:Q.value.reduce((e,t)=>e+t.points,0),donePoints:Q.value.reduce((e,t)=>e+t.donePoints,0),kr:Q.value.reduce((e,t)=>e+t.krs.length,0),krOk:Q.value.reduce((e,t)=>e+t.krOk,0),blocked:Q.value.reduce((e,t)=>e+t.blocked.length,0)}));return(t,i)=>{let l=r,b=a,Y=o;return u(),_(`div`,null,[m(`div`,ee,[m(`div`,{class:y([`kpi`,(`cardToneClass`in t?t.cardToneClass:s(n))(0)])},[p(l,{tone:(`cardTone`in t?t.cardTone:s(e))(0),size:`sm`},null,8,[`tone`]),i[1]||=m(`p`,{class:`k`},`史诗`,-1),m(`p`,te,[x(d(s($).epics),1),i[0]||=m(`small`,null,`个`,-1)])],2),m(`div`,{class:y([`kpi`,(`cardToneClass`in t?t.cardToneClass:s(n))(1)])},[p(l,{tone:(`cardTone`in t?t.cardTone:s(e))(1),size:`sm`},null,8,[`tone`]),i[2]||=m(`p`,{class:`k`},`关键结果达成`,-1),m(`p`,S,[x(d(s($).krOk),1),m(`small`,null,`/ `+d(s($).kr),1)])],2),m(`div`,{class:y([`kpi`,(`cardToneClass`in t?t.cardToneClass:s(n))(2)])},[p(l,{tone:(`cardTone`in t?t.cardTone:s(e))(2),size:`sm`},null,8,[`tone`]),i[3]||=m(`p`,{class:`k`},`故事点交付`,-1),m(`p`,C,[x(d(s($).donePoints),1),m(`small`,null,`/ `+d(s($).points),1)])],2),m(`div`,{class:y([`kpi`,(`cardToneClass`in t?t.cardToneClass:s(n))(3)])},[p(l,{tone:(`cardTone`in t?t.cardTone:s(e))(3),size:`sm`},null,8,[`tone`]),i[5]||=m(`p`,{class:`k`},`覆盖故事`,-1),m(`p`,w,[x(d(s($).stories),1),i[4]||=m(`small`,null,`个`,-1)])],2),m(`div`,{class:y([`kpi`,(`cardToneClass`in t?t.cardToneClass:s(n))(4)])},[p(l,{tone:(`cardTone`in t?t.cardTone:s(e))(4),size:`sm`},null,8,[`tone`]),i[7]||=m(`p`,{class:`k`},`阻塞`,-1),m(`p`,T,[x(d(s($).blocked),1),i[6]||=m(`small`,null,`个故事`,-1)])],2)]),m(`div`,E,[(u(!0),_(h,null,c(s(Q),e=>(u(),_(`article`,{key:e.id,class:`card epic`},[m(`div`,D,[m(`div`,O,[m(`span`,k,d(e.id),1),m(`span`,{class:y([`tag`,`tag-${se[e.status]}`])},d(ce[e.status]),3),m(`span`,A,d(e.list.length)+` 个故事`,1),e.bugs.length?(u(),_(`span`,j,[p(b,{name:`i-lucide-bug`,class:`size-3`}),x(d(e.bugs.length),1)])):v(``,!0),e.blocked.length?(u(),_(`span`,M,[p(b,{name:`i-lucide-octagon-alert`,class:`size-3`}),x(d(e.blocked.length),1)])):v(``,!0),m(`span`,N,[x(d(e.pct),1),i[8]||=m(`small`,null,`%`,-1)])]),m(`h2`,P,d(e.title),1),m(`p`,F,d(e.goal),1),m(`div`,I,[m(`i`,{style:f({width:e.pct+`%`})},null,4)]),m(`div`,L,[m(`span`,null,[m(`b`,null,d(e.donePoints),1),x(`/`+d(e.points)+` 点`,1)]),i[9]||=m(`i`,{class:`sep`},null,-1),m(`span`,null,`关键结果 `+d(e.krOk)+`/`+d(e.krs.length)+` 达成`,1),i[10]||=m(`i`,{class:`sep`},null,-1),m(`span`,null,d(e.done.length)+`/`+d(e.list.length)+` 个故事完成`,1)])]),m(`div`,ne,[m(`p`,R,[p(b,{name:`i-lucide-target`,class:`size-3`}),i[11]||=x(`关键结果`,-1)]),e.krs.length?v(``,!0):(u(),_(`p`,z,`这个史诗还没写 keyResults。`)),(u(!0),_(h,null,c(e.krs,e=>(u(),_(`div`,{key:e.id,class:`kr`},[m(`div`,B,[m(`span`,V,d(e.text),1),m(`span`,H,d(e.current??`—`)+` / `+d(e.target)+` `+d(e.unit??``),1),m(`span`,{class:y([`tag`,e.ok?`tag-success`:`tag-warning`])},d(e.pct)+`%`,3)]),m(`div`,{class:y([`bar slim`,e.ok?`mint`:`lilac`])},[m(`i`,{style:f({width:e.pct+`%`})},null,4)],2)]))),128)),m(`p`,U,[p(b,{name:`i-lucide-list-checks`,class:`size-3`}),i[12]||=x(`故事`,-1)]),m(`ul`,W,[(u(!0),_(h,null,c(e.list,e=>(u(),_(`li`,{key:e.id},[p(Y,{to:`/story/${e.id}`,class:`strow`},{default:g(()=>[m(`i`,{class:`sdot`,style:f({background:s(Z)[e.status]})},null,4),m(`span`,G,d(e.id),1),m(`span`,K,d(e.title),1),m(`span`,{class:y([`tag`,`tag-${s(ie)[e.type]}`])},[p(b,{name:s(ae)[e.type],class:`size-3`},null,8,[`name`]),x(d(s(re)[e.type]),1)],2),m(`span`,{class:y([`tag`,`tag-${s(oe)[e.priority]}`])},d(e.priority),3),m(`span`,q,d(e.points)+` 点`,1),m(`span`,J,d(s(X)[e.status]),1),p(b,{name:`i-lucide-chevron-right`,class:`st-chev`})]),_:2},1032,[`to`])]))),128))])])]))),128))])])}}}),[[`__scopeId`,`data-v-6cff08c9`]]);export{Y as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./P6qlvBHA.js";import{At as t,M as n,U as r,Xt as i,b as a,d as o,f as s,lt as c,nt as l,p as u,q as d,qt as f,u as p}from"./BxuBMtk_.js";import{m,n as h,t as g}from"./BE6t7Q2m.js";import{M as _,N as v,_ as y,j as b}from"#entry";import{t as x}from"./CYGiZn-X.js";import{m as S}from"./BrWE0up6.js";import{t as C}from"./DJM7u8P3.js";var w={slots:{root:``,content:`data-[state=open]:animate-[collapsible-down_200ms_var(--ease-out)] data-[state=closed]:animate-[collapsible-up_200ms_var(--ease-out)] data-[state=closed]:overflow-hidden`}},T={__name:`UCollapsible`,props:{as:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0}},emits:[`update:open`],setup(i,{emit:o}){let m=i,y=o,C=l(),T=h(`collapsible`,m),E=e(),D=x(S(T,`as`,`defaultOpen`,`open`,`disabled`,`unmountOnHide`),y),O=p(()=>g({extend:w,...E.ui?.collapsible||{}})());return(e,i)=>(r(),s(t(v),n(t(D),{"data-slot":`root`,class:O.value.root({class:[t(T).ui?.root,t(T).class]})}),{default:c(({open:n})=>[C.default?(r(),s(t(b),{key:0,"as-child":``},{default:c(()=>[d(e.$slots,`default`,{open:n})]),_:2},1024)):u(``,!0),a(t(_),{"data-slot":`content`,class:f(O.value.content({class:t(T).ui?.content}))},{default:c(()=>[d(e.$slots,`content`)]),_:3},8,[`class`])]),_:3},16,[`class`]))}},E={slots:{root:`my-5`,trigger:[`group relative rounded-xs inline-flex items-center gap-1.5 text-muted hover:text-default text-sm outline-primary/25 focus-visible:outline-3`,`transition-colors`],triggerIcon:`size-4 shrink-0 group-data-[state=open]:rotate-180 transition-transform duration-200 ease-out motion-reduce:transition-none`,triggerLabel:`truncate`,content:`*:first:mt-2.5 *:last:mb-0 *:my-1.5`}},D={__name:`ProseCollapsible`,props:{icon:{type:null,required:!1},name:{type:String,required:!1},openText:{type:String,required:!1},closeText:{type:String,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(n){let l=h(`prose.collapsible`,n),{t:u}=y(),_=e(),v=p(()=>g({extend:E,..._.ui?.prose?.collapsible||{}})());return(e,n)=>(r(),s(T,{"unmount-on-hide":!1,class:f(t(l).class),ui:t(m)(v.value,t(l).ui)},{default:c(({open:e})=>[o(`button`,{class:f(v.value.trigger({class:t(l).ui?.trigger}))},[a(C,{name:t(l).icon||t(_).ui.icons.chevronDown,class:f(v.value.triggerIcon({class:t(l).ui?.triggerIcon}))},null,8,[`name`,`class`]),o(`span`,{class:f(v.value.triggerLabel({class:t(l).ui?.triggerLabel}))},i(e?t(l).closeText||t(u)(`prose.collapsible.closeText`):t(l).openText||t(u)(`prose.collapsible.openText`))+` `+i(t(l).name||t(u)(`prose.collapsible.name`)),3)],2)]),content:c(()=>[d(e.$slots,`default`)]),_:3},8,[`class`,`ui`]))}};export{D as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./P6qlvBHA.js";import{At as t,U as n,f as r,qt as i,u as a}from"./BxuBMtk_.js";import{n as o,t as s}from"./BE6t7Q2m.js";import{t as c}from"./DJM7u8P3.js";var l={base:`size-4 shrink-0 align-sub`},u={__name:`ProseIcon`,props:{name:{type:String,required:!0},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(u){let d=o(`prose.icon`,u),f=e(),p=a(()=>s({extend:l,...f.ui?.prose?.icon||{}}));return(e,a)=>(n(),r(c,{name:t(d).name,class:i(p.value({class:[t(d).ui?.base,t(d).class]}))},null,8,[`name`,`class`]))}};export{u as default};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{t as e}from"./DJM7u8P3.js";import{t}from"./CI0scS-N.js";import{I as n,i as r,s as i}from"#entry";import{At as a,B as o,I as ee,K as s,N as te,S as ne,U as c,Xt as l,Yt as re,at as ie,b as u,d,f,i as p,lt as ae,m,p as h,qt as g,s as oe,u as _,v as se,xt as v,y}from"./BxuBMtk_.js";import{c as b}from"./BygIGL69.js";var ce={added:`新增`,updated:`状态变更`,removed:`移除`},le=`更新交付记录`,x=`变更`,S=e=>typeof e==`string`?e.replace(/\s+/g,` `).trim():``;function ue(e){let t=Array.isArray(e?.changes)?e.changes:[],n=S(e?.title)||le,r=t.some(e=>e?.action===`added`)?`feat`:`chore`,i=[];for(let e of t){let t=S(e?.id);if(!t)continue;let n=S(e.title)||S(e.note),r=ce[e.action]||S(e.action)||x;e.action===`updated`&&(S(e.from)||S(e.to))&&(r+=` ${S(e.from)||`—`} → ${S(e.to)||`—`}`),i.push(`- ${t}${n?` ${n}`:``}(${r})`)}return i.length?`${r}: ${n}\n\n${i.join(`
|
|
2
|
+
`)}`:`${r}: ${n}`}var de={class:`rule-top`},fe={class:`rule-ic`},pe={class:`rule-state`},me={class:`mono`},he={key:0},ge={class:`rule-cases`},_e={class:`case-when`},ve={class:`case-then`},ye={key:1,class:`lc-hist-bar`},be={class:`hist-badge`},xe={class:`hist-readonly mono`},Se=[`title`,`disabled`,`onClick`],Ce={key:2,class:`card lc-empty`},we={class:`em-ic`},Te={key:3,class:`lc`},Ee={class:`lc-hero`},De={class:`hero-body`},Oe={class:`hero-kicker`},ke={class:`k-date mono`},Ae={key:0,class:`k-time mono`},je={key:1,class:`k-today`},Me=[`title`],Ne={class:`hero-title`},Pe={key:0,class:`hero-sum`},Fe={class:`hero-meta`},Ie={class:`hero-aside`},Le={class:`ring-in`},Re={class:`lc-nav`,"aria-label":`分区导航`},ze=[`href`,`onClick`],Be={class:`lc-nav-lb`},Ve={class:`lc-nav-ct`},He={id:`lc-changes`,class:`card sec`},Ue={class:`s-hd`},We={class:`s-ic`},Ge={class:`s-count`},Ke={key:0,class:`sec-empty dim`},qe={key:1,class:`tbl-wrap`},Je={class:`tbl lc-tbl`},Ye={class:`ent`},Xe={class:`ent-top`},Ze={key:0,class:`ent-title`},Qe={key:0,class:`flow mono`},$e={class:`fl`},et={class:`fl`},tt={class:`cell-note`},nt={class:`chips`},rt=[`title`],it={key:0,class:`dim`},at={class:`two`},ot={id:`lc-extras`,class:`card sec`},st={class:`s-hd`},ct={class:`s-ic`},lt={class:`s-count`},ut={class:`sec-bd lc-extras`},dt={key:0,class:`dim`},ft={class:`x-body`},pt={class:`x-title`},mt={key:0,class:`x-detail`},ht={key:1,class:`chips x-files`},gt=[`title`],_t={id:`lc-checks`,class:`card sec`},vt={class:`s-hd`},yt={class:`s-ic tone-mint`},bt={class:`s-count`},xt={class:`sec-bd lc-checks`},St={key:0,class:`dim`},Ct={class:`v-body`},wt={class:`v-what`},Tt={key:0,class:`v-detail`},Et={key:0,id:`lc-access`,class:`card sec lc-access`},Dt={class:`s-hd`},Ot={class:`s-ic tone-sky`},kt={class:`s-count`},At={class:`sec-bd acc-grid`},jt={key:0,class:`acc-col`},Mt={class:`u-head`},Nt=[`href`],Pt={class:`u-label`},Ft=[`onClick`],It={class:`u-url mono`},Lt={key:0,class:`u-note`},Rt={key:1,class:`acc-col`},zt={class:`a-head`},Bt={key:0,class:`a-role`},Vt={class:`a-user mono`},Ht=[`onClick`],Ut={class:`a-line`},Wt={key:0,class:`a-pass mono`},Gt={key:1,class:`a-none dim`},Kt={key:0,class:`a-note`},qt={key:1,id:`lc-prep`,class:`card sec lc-prep`},Jt={class:`s-hd`},Yt={class:`s-ic tone-amber`},Xt={class:`s-count`},Zt={class:`steps`},Qt={class:`step-bd`},$t={class:`step-text`},en={key:0,class:`cmd-row`},tn={class:`cmd mono`},nn=[`onClick`],rn={key:1,class:`step-note`},an={id:`lc-scenarios`,class:`lc-sc-sec`},on={class:`s-hd solo`},sn={class:`s-ic tone-mint`},cn={class:`s-count`},ln={key:0,class:`dim sec-empty`},un={key:1,class:`lc-sc-grid`},dn={class:`sc-hd`},fn={class:`sc-id mono`},pn={class:`sc-title`},mn={key:0,class:`sc-body`},hn={class:`lc-sc-steps`},gn={class:`sc-acc`},_n={class:`sc-acc-h`},vn={class:`sc-acc-t`},yn={key:0,class:`sc-foot`},bn={key:0},xn={key:1,class:`sc-ids`},Sn={class:`two`},Cn={id:`lc-notes`,class:`card sec`},wn={class:`s-hd`},Tn={class:`s-ic`},En={class:`s-count`},Dn={class:`sec-bd`},On={key:0,class:`dim`},kn={key:1,class:`lc-notes`},An={key:0,id:`lc-open`,class:`card sec sec-warn`},jn={class:`s-hd`},Mn={class:`s-ic`},Nn={class:`s-count`},Pn={class:`sec-bd`},Fn={class:`lc-notes warn`},In={class:`lc-hist`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`lc-hist-title`},Ln={class:`lc-hist-hd`},Rn={class:`lc-hist-hd-txt`},zn={class:`lc-hist-sub`},Bn={key:0,class:`lc-hist-err`},Vn={key:1,class:`lc-hist-hint dim`},Hn={key:2,class:`lc-hist-list`},Un=[`disabled`,`onClick`],Wn={class:`hist-item-main`},Gn={class:`mono`},Kn={class:`mono hist-item-hash`},qn={key:0,class:`lc-hist-hint dim`},Jn={class:`lc-hist-ft`},Yn={class:`lc-hist lc-commit`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`lc-commit-title`},Xn={class:`lc-hist-hd`},Zn=[`disabled`],Qn={key:0,class:`cm-done`},$n={class:`cm-done-ic`},er={class:`cm-done-bd`},tr={class:`cm-done-t`},nr={class:`mono`},rr={class:`cm-done-s`},ir={class:`cm-done-n`},ar={key:1,class:`cm-body`},or={class:`cm-msg mono`},sr={class:`micro`},cr={key:0,class:`cm-hint dim`},lr={key:1,class:`cm-hint warn`},ur={key:2,class:`cm-hint warn`},dr={key:3,class:`cm-hint dim`},fr={key:4,class:`cm-files`},pr=[`title`],mr={key:2,class:`lc-hist-err`},hr={class:`lc-hist-ft`},gr={class:`dim`},_r={class:`cm-acts`},vr=[`disabled`],yr=[`disabled`],C=r(ne({__name:`last-change`,setup(r){let{lastChange:ne,lastChangeGit:ce,refresh:le}=i(),x=v(null),S=_(()=>x.value?.doc?.lastChange??ne.value),C=_(()=>ce.value),w=v([]),T=v(!1),E=v(!1),D=v(``),O=v(!1),br=_(()=>x.value?[x.value]:[]);async function xr(){if(!E.value){E.value=!0,D.value=``;try{let e=await n(`/api/agile/last-change/history`);w.value=e.entries??[]}catch(e){D.value=e?.data?.error||e?.message||`读不到 git 历史`}finally{E.value=!1}}}async function Sr(){T.value=!0,w.value.length||await xr()}async function Cr(e){if(!O.value){O.value=!0,D.value=``;try{x.value=await n(`/api/agile/last-change/revision`,{query:{hash:e.hash}}),T.value=!1,window.scrollTo({top:0,behavior:`smooth`})}catch(e){D.value=e?.data?.error||e?.message||`取不到这个版本`}finally{O.value=!1}}}function wr(){x.value=null,window.scrollTo({top:0,behavior:`smooth`})}let k=v(null);ie(x,async()=>{await te(),k.value?.querySelector(`.hist-tab.on`)?.scrollIntoView({inline:`nearest`,block:`nearest`})});function A(e){e.key===`Escape`&&(J.value?$():T.value&&=!1)}o(()=>window.addEventListener(`keydown`,A)),ee(()=>window.removeEventListener(`keydown`,A));let j={committed:{text:`已提交`,tone:`ok`},dirty:{text:`未提交改动`,tone:`warn`},untracked:{text:`未纳入版本库`,tone:`warn`},"no-git":{text:`非 git 仓库`,tone:`neutral`},missing:{text:`尚未生成`,tone:`neutral`}},M=_(()=>j[C.value?.state??`missing`]??j.missing),Tr=[{key:`committed`,when:`已提交`,then:`下次写入整份覆盖;上一版留在 git 历史里,点「查看历史」随时翻回来`},{key:`pending`,when:`未提交`,then:`下次写入合并:新交付接在旧记录后面,不冲掉还没入库的内容`}],Er=_(()=>{let e=C.value?.state;return e===`committed`?`committed`:e===`dirty`||e===`untracked`||e===`no-git`?`pending`:``}),Dr=_(()=>(S.value?.mergedFrom?.length??0)+1),Or=_(()=>(S.value?.mergedFrom??[]).map(e=>`${e.at??``} ${e.title??``}`.trim()).filter(Boolean).join(`
|
|
3
|
+
`)),kr={added:`新增`,updated:`状态变更`,removed:`移除`},Ar={story:`故事`,task:`任务`},jr={pass:`通过`,fail:`失败`,partial:`部分`,skipped:`未跑`},Mr={pass:`i-lucide-check`,fail:`i-lucide-x`,partial:`i-lucide-minus`,skipped:`i-lucide-minus`},N=_(()=>S.value?.changes??[]),P=_(()=>ue(S.value??{})),F=_(()=>S.value?.extras??[]),I=_(()=>S.value?.verification??[]),L=_(()=>S.value?.scenarios??[]),R=_(()=>S.value?.preparation??[]),z=_(()=>S.value?.notes??[]),B=_(()=>S.value?.open??[]),V=_(()=>S.value?.access?.urls??[]),H=_(()=>S.value?.access?.accounts??[]),U=_(()=>I.value.filter(e=>e.result===`pass`).length),Nr=_(()=>I.value.length>0&&U.value===I.value.length),Pr=_(()=>I.value.length?Math.round(U.value/I.value.length*100):0),Fr=_(()=>[...new Set([...N.value.flatMap(e=>e.files??[]),...F.value.flatMap(e=>e.files??[])])]),Ir=e=>e.kind===`story`?e.id:e.id.replace(/-T\d+$/,``),Lr=_(()=>[{id:`lc-changes`,label:`变更清单`,icon:`i-lucide-git-commit-horizontal`,count:`${N.value.length}`,tone:`violet`},{id:`lc-extras`,label:`额外做的事`,icon:`i-lucide-sparkles`,count:`${F.value.length}`,tone:`peach`},{id:`lc-checks`,label:`验证结果`,icon:`i-lucide-badge-check`,count:`${U.value}/${I.value.length}`,tone:`mint`},...V.value.length||H.value.length?[{id:`lc-access`,label:`调试入口与账号`,icon:`i-lucide-key-round`,count:`${V.value.length+H.value.length}`,tone:`sky`}]:[],...R.value.length?[{id:`lc-prep`,label:`测试前准备`,icon:`i-lucide-terminal-square`,count:`${R.value.length}`,tone:`amber`}]:[],{id:`lc-scenarios`,label:`测试场景`,icon:`i-lucide-flask-conical`,count:`${L.value.length}`,tone:`teal`},{id:`lc-notes`,label:`说明`,icon:`i-lucide-message-square-more`,count:`${z.value.length}`,tone:`slate`},...B.value.length?[{id:`lc-open`,label:`还没做的`,icon:`i-lucide-list-todo`,count:`${B.value.length}`,tone:`rose`}]:[]]);function Rr(e){let t=document.getElementById(e);t&&(t.scrollIntoView({behavior:`smooth`,block:`start`}),history.replaceState(null,``,`#${e}`))}let W=new Date,zr=`${W.getFullYear()}-${String(W.getMonth()+1).padStart(2,`0`)}-${String(W.getDate()).padStart(2,`0`)}`,G=_(()=>(S.value?.at??``).slice(0,10)),Br=_(()=>{let e=(S.value?.at??``).slice(10).replace(/^[T ]/,``);return/^\d{2}:\d{2}/.test(e)?e:``}),Vr=_(()=>!!G.value&&G.value===zr),K=v(``);async function q(e,t){try{await navigator.clipboard.writeText(e),K.value=t,setTimeout(()=>{K.value===t&&(K.value=``)},1600)}catch{K.value=``}}let J=v(!1),Y=v(!1),X=v(``),Z=v(null),Q=v(null),Hr=_(()=>!!Z.value?.isRepo&&!Z.value?.blocked&&(Z.value?.files.length??0)>0&&!Y.value);async function Ur(){if(!Y.value){J.value=!0,X.value=``,Q.value=null,Z.value=null;try{Z.value=await n(`/api/agile/git/status`)}catch(e){X.value=e?.data?.error||e?.message||`读不到 git 状态`}}}function $(){Y.value||(J.value=!1,X.value=``,Q.value=null,Z.value=null)}async function Wr(){if(Hr.value){Y.value=!0,X.value=``;try{let{token:e}=await n(`/api/projects`);Q.value=await n(`/api/agile/git/commit`,{method:`POST`,headers:{"x-project-token":e},body:{message:P.value}}),await le()}catch(e){X.value=e?.data?.error||e?.message||`提交失败`}finally{Y.value=!1}}}return(n,r)=>{let i=e,o=t;return c(),m(p,null,[a(x)?(c(),m(`div`,ye,[d(`span`,be,[u(i,{name:`i-lucide-history`,class:`hist-badge-ic`}),r[8]||=y(`历史版本`,-1)]),d(`span`,xe,[y(`只读 · `+l(a(x).short),1),a(x).date?(c(),m(p,{key:0},[y(` · `+l(a(x).date),1)],64)):h(``,!0)]),d(`div`,{ref_key:`tabsRef`,ref:k,class:`lc-hist-tabs`},[d(`button`,{class:`hist-tab`,onClick:wr},`最新`),(c(!0),m(p,null,s(a(br),e=>(c(),m(`button`,{key:e.hash,class:g([`hist-tab`,{on:a(x)?.hash===e.hash}]),title:`${e.date} ${e.subject??``}`,disabled:a(O),onClick:t=>Cr(e)},[y(l(e.short),1),d(`i`,null,l(e.date.slice(5,16)),1)],10,Se))),128))],512),d(`button`,{class:`rule-btn`,onClick:Sr},[u(i,{name:`i-lucide-list`,class:`rule-btn-ic`}),r[9]||=y(`选择历史…`,-1)])])):(c(),m(`div`,{key:0,class:g([`lc-rule`,`is-${a(M).tone}`])},[d(`div`,de,[d(`span`,fe,[u(i,{name:`i-lucide-git-branch`,class:`rule-svg`})]),r[6]||=d(`b`,{class:`rule-title`},`写入规则`,-1),r[7]||=d(`span`,{class:`rule-file mono`},`agile/last-change.json`,-1),d(`span`,pe,[d(`i`,{class:g([`rule-dot`,`tone-${a(M).tone}`])},null,2),y(` 当前 `+l(a(M).text),1),a(C)?.state===`committed`&&a(C).hash?(c(),m(p,{key:0},[r[4]||=y(` · `,-1),d(`span`,me,l(a(C).hash),1)],64)):h(``,!0)]),d(`button`,{class:`rule-btn`,onClick:Sr},[u(i,{name:`i-lucide-history`,class:`rule-btn-ic`}),r[5]||=y(`查看历史 `,-1),a(w).length?(c(),m(`i`,he,l(a(w).length),1)):h(``,!0)])]),d(`ul`,ge,[(c(),m(p,null,s(Tr,e=>d(`li`,{key:e.key,class:g([`rule-case`,{on:a(Er)===e.key}])},[d(`span`,_e,l(e.when),1),u(i,{name:`i-lucide-arrow-right`,class:`case-arrow`}),d(`span`,ve,l(e.then),1)],2)),64))])],2)),a(S)?(c(),m(`div`,Te,[d(`header`,Ee,[d(`div`,De,[d(`p`,Oe,[r[11]||=d(`span`,{class:`k-dot`},null,-1),r[12]||=y(`最近一次交付 `,-1),r[13]||=d(`span`,{class:`k-sep`},null,-1),d(`span`,ke,l(a(G)),1),a(Br)?(c(),m(`span`,Ae,l(a(Br)),1)):h(``,!0),a(Vr)?(c(),m(`span`,je,`今天`)):h(``,!0),a(S).merged?(c(),m(`span`,{key:2,class:`k-merged`,title:a(Or)},`合并记录 · `+l(a(Dr))+` 次交付`,9,Me)):h(``,!0)]),d(`h2`,Ne,l(a(S).title),1),a(S).summary?(c(),m(`p`,Pe,l(a(S).summary),1)):h(``,!0),d(`div`,Fe,[d(`span`,null,[d(`b`,null,l(a(N).length),1),r[14]||=y(` 处变更`,-1)]),r[19]||=d(`i`,{class:`meta-sep`},null,-1),d(`span`,null,[d(`b`,null,l(a(Fr).length),1),r[15]||=y(` 个文件`,-1)]),r[20]||=d(`i`,{class:`meta-sep`},null,-1),d(`span`,null,[d(`b`,null,l(a(L).length),1),r[16]||=y(` 条测试场景`,-1)]),a(F).length?(c(),m(p,{key:0},[r[18]||=d(`i`,{class:`meta-sep`},null,-1),d(`span`,null,[d(`b`,null,l(a(F).length),1),r[17]||=y(` 项额外工作`,-1)])],64)):h(``,!0)])]),d(`div`,Ie,[d(`div`,{class:g([`ring`,{warn:a(I).length&&!a(Nr)}]),style:re({"--pct":a(Pr)})},[d(`div`,Le,[d(`b`,null,[y(l(a(U)),1),d(`small`,null,`/`+l(a(I).length||0),1)]),d(`span`,null,l(a(I).length?a(Nr)?`验证全通过`:`有未通过项`:`无验证记录`),1)])],6)])]),d(`nav`,Re,[(c(!0),m(p,null,s(a(Lr),e=>(c(),m(`a`,{key:e.id,class:g([`lc-nav-link`,`tone-${e.tone}`]),href:`#${e.id}`,onClick:b(t=>Rr(e.id),[`prevent`])},[u(i,{name:e.icon,class:`lc-nav-ic`},null,8,[`name`]),d(`span`,Be,l(e.label),1),d(`b`,Ve,l(e.count),1)],10,ze))),128))]),d(`section`,He,[d(`div`,Ue,[d(`span`,We,[u(i,{name:`i-lucide-git-commit-horizontal`,class:`s-svg`})]),r[22]||=d(`h2`,{class:`s-title`},`变更清单`,-1),d(`span`,Ge,l(a(N).length),1),r[23]||=d(`span`,{class:`s-hint`},`故事与任务各自是新增还是状态变更、动过哪些文件`,-1),a(N).length?(c(),m(`button`,{key:0,class:g([`rule-btn s-copy`,{ok:a(K)===`commit`}]),title:`按 Conventional Commits 生成:首行是标题,正文每条变更带编号与名称`,onClick:r[0]||=e=>q(a(P),`commit`)},[u(i,{name:a(K)===`commit`?`i-lucide-check`:`i-lucide-clipboard-copy`,class:`rule-btn-ic`},null,8,[`name`]),y(` `+l(a(K)===`commit`?`已复制`:`复制变更信息`),1)],2)):h(``,!0),!a(x)&&a(N).length?(c(),m(`button`,{key:1,class:`rule-btn s-commit`,title:`把这次交付整份提交进本地仓库:git add -A + git commit,不 push`,onClick:Ur},[u(i,{name:`i-lucide-git-commit-vertical`,class:`rule-btn-ic`}),r[21]||=y(`自动提交 `,-1)])):h(``,!0)]),a(N).length?(c(),m(`div`,qe,[d(`table`,Je,[r[25]||=d(`colgroup`,null,[d(`col`,{class:`c-ent`}),d(`col`,{class:`c-act`}),d(`col`),d(`col`,{class:`c-file`})],-1),r[26]||=d(`thead`,null,[d(`tr`,null,[d(`th`,null,`条目`),d(`th`,null,`变更`),d(`th`,null,`变更内容`),d(`th`,null,`涉及文件`)])],-1),d(`tbody`,null,[(c(!0),m(p,null,s(a(N),(e,t)=>(c(),m(`tr`,{key:`${e.kind}-${e.id}-${t}`},[d(`td`,null,[d(`div`,Ye,[d(`div`,Xe,[d(`span`,{class:g([`kind`,`kind-${e.kind}`])},l(Ar[e.kind]??e.kind),3),u(o,{to:`/story/${Ir(e)}`,class:`ent-id mono`},{default:ae(()=>[y(l(e.id),1)]),_:2},1032,[`to`])]),e.title?(c(),m(`p`,Ze,l(e.title),1)):h(``,!0)])]),d(`td`,null,[d(`span`,{class:g([`act`,`act-${e.action}`])},l(kr[e.action]??e.action),3),e.from||e.to?(c(),m(`p`,Qe,[d(`span`,$e,l(e.from??`—`),1),r[24]||=d(`i`,null,`→`,-1),d(`span`,et,l(e.to??`—`),1)])):h(``,!0)]),d(`td`,tt,l(e.note??`—`),1),d(`td`,null,[d(`div`,nt,[(c(!0),m(p,null,s(e.files,e=>(c(),m(`span`,{key:e,class:`fchip mono`,title:e},l(e),9,rt))),128)),e.files?.length?h(``,!0):(c(),m(`span`,it,`—`))])])]))),128))])])])):(c(),m(`p`,Ke,`这次没有涉及任何故事或任务。`))]),d(`div`,at,[d(`section`,ot,[d(`div`,st,[d(`span`,ct,[u(i,{name:`i-lucide-sparkles`,class:`s-svg`})]),r[27]||=d(`h2`,{class:`s-title`},`额外做的事`,-1),d(`span`,lt,l(a(F).length),1)]),d(`div`,ut,[a(F).length?h(``,!0):(c(),m(`p`,dt,`没有计划外的改动。`)),(c(!0),m(p,null,s(a(F),(e,t)=>(c(),m(`article`,{key:t,class:`x-item`},[r[28]||=d(`span`,{class:`x-mark`},null,-1),d(`div`,ft,[d(`p`,pt,l(e.title),1),e.detail?(c(),m(`p`,mt,l(e.detail),1)):h(``,!0),e.files?.length?(c(),m(`div`,ht,[(c(!0),m(p,null,s(e.files,e=>(c(),m(`span`,{key:e,class:`fchip mono`,title:e},l(e),9,gt))),128))])):h(``,!0)])]))),128))])]),d(`section`,_t,[d(`div`,vt,[d(`span`,yt,[u(i,{name:`i-lucide-badge-check`,class:`s-svg`})]),r[29]||=d(`h2`,{class:`s-title`},`验证结果`,-1),d(`span`,bt,l(a(U))+`/`+l(a(I).length),1)]),d(`div`,xt,[a(I).length?h(``,!0):(c(),m(`p`,St,`这次没有留下验证记录。`)),(c(!0),m(p,null,s(a(I),(e,t)=>(c(),m(`div`,{key:t,class:`v-item`},[d(`span`,{class:g([`v-ic`,`v-${e.result}`])},[u(i,{name:Mr[e.result]??`i-lucide-circle`,class:`v-svg`},null,8,[`name`])],2),d(`div`,Ct,[d(`p`,wt,l(e.what),1),e.detail?(c(),m(`p`,Tt,l(e.detail),1)):h(``,!0)]),d(`span`,{class:g([`v-res`,`v-${e.result}`])},l(jr[e.result]??e.result),3)]))),128))])])]),a(V).length||a(H).length?(c(),m(`section`,Et,[d(`div`,Dt,[d(`span`,Ot,[u(i,{name:`i-lucide-key-round`,class:`s-svg`})]),r[30]||=d(`h2`,{class:`s-title`},`调试入口与账号`,-1),d(`span`,kt,l(a(V).length+a(H).length),1),r[31]||=d(`span`,{class:`s-hint`},`照着这一栏就能自己跑起来点一遍`,-1)]),d(`div`,At,[a(V).length?(c(),m(`div`,jt,[r[32]||=d(`p`,{class:`micro`},`访问地址`,-1),(c(!0),m(p,null,s(a(V),(e,t)=>(c(),m(`div`,{key:t,class:`u-item`},[d(`div`,Mt,[d(`a`,{href:e.url,target:`_blank`,rel:`noreferrer`,class:`u-link`},[d(`span`,Pt,l(e.label??`入口`),1),u(i,{name:`i-lucide-arrow-up-right`,class:`u-go`})],8,Nt),d(`button`,{class:g([`cpy`,{ok:a(K)===`url-${t}`}]),onClick:n=>q(e.url,`url-${t}`)},[u(i,{name:a(K)===`url-${t}`?`i-lucide-check`:`i-lucide-copy`,class:`cpy-ic`},null,8,[`name`]),y(` `+l(a(K)===`url-${t}`?`已复制`:`复制`),1)],10,Ft)]),d(`p`,It,l(e.url),1),e.note?(c(),m(`p`,Lt,l(e.note),1)):h(``,!0)]))),128))])):h(``,!0),a(H).length?(c(),m(`div`,Rt,[r[34]||=d(`p`,{class:`micro`},`账号密码`,-1),(c(!0),m(p,null,s(a(H),(e,t)=>(c(),m(`div`,{key:t,class:`a-item`},[d(`div`,zt,[e.role?(c(),m(`span`,Bt,l(e.role),1)):h(``,!0),d(`span`,Vt,l(e.username),1),d(`button`,{class:g([`cpy`,{ok:a(K)===`acc-${t}`}]),onClick:n=>q(e.password?`账号:${e.username}\n密码:${e.password}`:e.username,`acc-${t}`)},[u(i,{name:a(K)===`acc-${t}`?`i-lucide-check`:`i-lucide-copy`,class:`cpy-ic`},null,8,[`name`]),y(` `+l(a(K)===`acc-${t}`?`已复制`:`复制`),1)],10,Ht)]),d(`div`,Ut,[r[33]||=d(`span`,{class:`a-key`},`密码`,-1),e.password?(c(),m(`span`,Wt,l(e.password),1)):(c(),m(`span`,Gt,`无密码 / 走单点登录`))]),e.note?(c(),m(`p`,Kt,l(e.note),1)):h(``,!0)]))),128))])):h(``,!0)])])):h(``,!0),a(R).length?(c(),m(`section`,qt,[d(`div`,Jt,[d(`span`,Yt,[u(i,{name:`i-lucide-terminal-square`,class:`s-svg`})]),r[35]||=d(`h2`,{class:`s-title`},`测试前准备`,-1),d(`span`,Xt,l(a(R).length),1),r[36]||=d(`span`,{class:`s-hint`},`按顺序做完这些再开始点,命令可直接复制`,-1)]),d(`ol`,Zt,[(c(!0),m(p,null,s(a(R),(e,t)=>(c(),m(`li`,{key:t},[d(`div`,Qt,[d(`p`,$t,l(e.step),1),e.command?(c(),m(`div`,en,[d(`code`,tn,l(e.command),1),d(`button`,{class:g([`cpy`,{ok:a(K)===`cmd-${t}`}]),onClick:n=>q(e.command??``,`cmd-${t}`)},[u(i,{name:a(K)===`cmd-${t}`?`i-lucide-check`:`i-lucide-copy`,class:`cpy-ic`},null,8,[`name`]),y(` `+l(a(K)===`cmd-${t}`?`已复制`:`复制`),1)],10,nn)])):h(``,!0),e.note?(c(),m(`p`,rn,l(e.note),1)):h(``,!0)])]))),128))])])):h(``,!0),d(`section`,an,[d(`div`,on,[d(`span`,sn,[u(i,{name:`i-lucide-flask-conical`,class:`s-svg`})]),r[37]||=d(`h2`,{class:`s-title`},`测试场景`,-1),d(`span`,cn,l(a(L).length),1),r[38]||=d(`span`,{class:`s-hint`},`一条一段:照着步骤走,末尾那句就是验收标准`,-1)]),a(L).length?(c(),m(`div`,un,[(c(!0),m(p,null,s(a(L),(e,t)=>(c(),m(`article`,{key:e.id??t,class:`sc lc-sc`},[d(`header`,dn,[d(`span`,fn,l(e.id??`TC-${t+1}`),1),d(`h3`,pn,l(e.title),1)]),e.steps?.length?(c(),m(`div`,mn,[r[39]||=d(`p`,{class:`micro`},`测试步骤`,-1),d(`ol`,hn,[(c(!0),m(p,null,s(e.steps,(e,t)=>(c(),m(`li`,{key:t},l(e),1))),128))])])):h(``,!0),d(`div`,gn,[d(`p`,_n,[u(i,{name:`i-lucide-badge-check`,class:`sc-acc-ic`}),r[40]||=y(`验收标准`,-1)]),d(`p`,vn,l(e.expect),1),e.acceptance||e.storyIds?.length?(c(),m(`div`,yn,[e.acceptance?(c(),m(`span`,bn,`对应验收:`+l(e.acceptance),1)):h(``,!0),e.storyIds?.length?(c(),m(`span`,xn,[(c(!0),m(p,null,s(e.storyIds,e=>(c(),f(o,{key:e,to:`/story/${e}`,class:`ent-id mono`},{default:ae(()=>[y(l(e),1)]),_:2},1032,[`to`]))),128))])):h(``,!0)])):h(``,!0)])]))),128))])):(c(),m(`p`,ln,`这次没有单独列测试场景。`))]),d(`div`,Sn,[d(`section`,Cn,[d(`div`,wn,[d(`span`,Tn,[u(i,{name:`i-lucide-message-square-more`,class:`s-svg`})]),r[41]||=d(`h2`,{class:`s-title`},`说明`,-1),d(`span`,En,l(a(z).length),1)]),d(`div`,Dn,[a(z).length?(c(),m(`ul`,kn,[(c(!0),m(p,null,s(a(z),(e,t)=>(c(),m(`li`,{key:t},l(e),1))),128))])):(c(),m(`p`,On,`没有额外说明。`))])]),a(B).length?(c(),m(`section`,An,[d(`div`,jn,[d(`span`,Mn,[u(i,{name:`i-lucide-list-todo`,class:`s-svg`})]),r[42]||=d(`h2`,{class:`s-title`},`还没做的`,-1),d(`span`,Nn,l(a(B).length),1)]),d(`div`,Pn,[d(`ul`,Fn,[(c(!0),m(p,null,s(a(B),(e,t)=>(c(),m(`li`,{key:t},l(e),1))),128))])])])):h(``,!0)])])):(c(),m(`div`,Ce,[d(`span`,we,[u(i,{name:`i-lucide-clipboard-list`,class:`em-svg`})]),r[10]||=se(`<h2 class="em-title" data-v-30ebd084>还没有交付记录</h2><p class="em-sub" data-v-30ebd084> 每完成一项功能,AI 都要把「改了哪些故事与任务、额外做了什么、验了什么、怎么测」 写进下面这个文件,这一页就会自动排出来。 </p><p class="em-path mono" data-v-30ebd084>agile/last-change.json</p><p class="em-note" data-v-30ebd084> 每次只保留最近一次(覆盖写,不追加)· 格式见 <span class="mono" data-v-30ebd084>.agents/skills/scrum-planning/references/schema.md</span> 第 4 节 </p>`,4)])),(c(),f(oe,{to:`body`},[a(T)?(c(),m(`div`,{key:0,class:`lc-hist-mask`,onClick:r[3]||=b(e=>T.value=!1,[`self`])},[d(`div`,In,[d(`header`,Ln,[d(`div`,Rn,[r[46]||=d(`h3`,{id:`lc-hist-title`,class:`lc-hist-title`},`历史版本`,-1),d(`p`,zn,[r[43]||=y(` 从 git 里读 `,-1),r[44]||=d(`span`,{class:`mono`},`agile/last-change.json`,-1),r[45]||=y(` 的提交记录 `,-1),a(w).length?(c(),m(p,{key:0},[y(`· 共 `+l(a(w).length)+` 版`,1)],64)):h(``,!0)])]),d(`button`,{class:`lc-hist-x`,"aria-label":`关闭`,onClick:r[1]||=e=>T.value=!1},[u(i,{name:`i-lucide-x`,class:`lc-hist-x-ic`})])]),a(D)?(c(),m(`p`,Bn,l(a(D)),1)):a(E)?(c(),m(`div`,Vn,`正在读 git 历史…`)):(c(),m(`div`,Hn,[(c(!0),m(p,null,s(a(w),(e,t)=>(c(),m(`button`,{key:e.hash,class:g([`hist-item`,{on:a(x)?.hash===e.hash}]),disabled:a(O),onClick:t=>Cr(e)},[d(`span`,{class:g([`hist-item-dot`,{live:t===0}])},null,2),d(`span`,Wn,[d(`b`,null,l(e.subject||`(没有提交说明)`),1),d(`i`,Gn,l(e.date),1)]),d(`span`,Kn,l(e.short),1)],10,Un))),128)),a(w).length?h(``,!0):(c(),m(`p`,qn,` 这个文件还没有提交记录 —— 先 commit 一次,历史里才会出现版本。 `))])),d(`footer`,Jn,[r[47]||=d(`span`,{class:`dim`},`选一个版本即可在页面上只读查看,不会改动文件。`,-1),d(`button`,{class:`hist-close`,onClick:r[2]||=e=>T.value=!1},`关闭`)])])])):h(``,!0)])),(c(),f(oe,{to:`body`},[a(J)?(c(),m(`div`,{key:0,class:`lc-hist-mask`,onClick:b($,[`self`])},[d(`div`,Yn,[d(`header`,Xn,[r[48]||=d(`div`,{class:`lc-hist-hd-txt`},[d(`h3`,{id:`lc-commit-title`,class:`lc-hist-title`},`提交这次交付`),d(`p`,{class:`lc-hist-sub`},[y(` 将执行 `),d(`span`,{class:`mono`},`git add -A`),y(` + `),d(`span`,{class:`mono`},`git commit`),y(`,只提交到本地,不 push `)])],-1),d(`button`,{class:`lc-hist-x`,"aria-label":`关闭`,disabled:a(Y),onClick:$},[u(i,{name:`i-lucide-x`,class:`lc-hist-x-ic`})],8,Zn)]),a(Q)?(c(),m(`div`,Qn,[d(`span`,$n,[u(i,{name:`i-lucide-check`,class:`cm-done-svg`})]),d(`div`,er,[d(`p`,tr,[r[49]||=y(`已提交 `,-1),d(`span`,nr,l(a(Q).hash),1)]),d(`p`,rr,l(a(Q).subject),1),d(`p`,ir,l(a(Q).files)+` 个文件 · 分支 `+l(a(Q).branch??`分离头指针`),1)])])):(c(),m(`div`,ar,[r[51]||=d(`p`,{class:`micro`},`提交信息`,-1),d(`pre`,or,l(a(P)),1),d(`p`,sr,[r[50]||=y(` 将提交的文件`,-1),a(Z)?(c(),m(p,{key:0},[y(` · `+l(a(Z).files.length),1)],64)):h(``,!0)]),!a(Z)&&!a(X)?(c(),m(`p`,cr,`正在读 git 状态…`)):a(Z)&&!a(Z).isRepo?(c(),m(`p`,lr,`这个目录不是 git 仓库,没法自动提交。`)):a(Z)?.blocked?(c(),m(`p`,ur,l(a(Z).blocked),1)):a(Z)?.files.length?(c(),m(`ul`,fr,[(c(!0),m(p,null,s(a(Z).files,e=>(c(),m(`li`,{key:e.path,class:`cm-file`},[d(`span`,{class:g([`cm-code`,e.code===`??`?`cm-new`:`cm-mod`])},l(e.code),3),d(`span`,{class:`mono cm-path`,title:e.path},l(e.path),9,pr)]))),128))])):(c(),m(`p`,dr,`没有未提交的改动,不需要提交。`))])),a(X)?(c(),m(`p`,mr,l(a(X)),1)):h(``,!0),d(`footer`,hr,[d(`span`,gr,l(a(Z)?.branch?`当前分支 ${a(Z).branch}`:`提交后工作区应当是干净的`),1),d(`span`,_r,[d(`button`,{class:`hist-close`,disabled:a(Y),onClick:$},l(a(Q)?`关闭`:`取消`),9,vr),a(Q)?h(``,!0):(c(),m(`button`,{key:0,class:`cm-go`,disabled:!a(Hr),onClick:Wr},l(a(Y)?`提交中…`:`确认提交`),9,yr))])])])])):h(``,!0)]))],64)}}}),[[`__scopeId`,`data-v-30ebd084`]]);export{C as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./CI0scS-N.js";import{ct as t,t as n}from"./DxBwVNyP.js";import{t as r}from"./P6qlvBHA.js";import{o as i}from"./CFCM18fF.js";import{At as a,B as o,C as s,I as c,Jt as l,M as u,T as d,U as f,f as p,lt as m,q as h,u as g}from"./BxuBMtk_.js";import{_,g as v,t as y,u as b}from"./BE6t7Q2m.js";import{t as x}from"./DUgGsde6.js";import{n as S,t as C}from"./DzmVW5-D.js";import{t as w}from"./BW3xJdEx.js";import{n as T}from"./SywdkA98.js";import{p as E}from"./BrWE0up6.js";var D=`__proto__`;function O(e,t){let n=[];return k(e,t,``,n),n}function k(e,t,n,r){if(e===t)return;let i=typeof e!=`object`||!e,a=typeof t!=`object`||!t;if(!i&&!a){let i=A(e),a=A(t);for(let[e,t]of i){let i=n?`${n}.${e}`:e;a.has(e)?k(t,a.get(e),i,r):r.push(new F(i,`removed`,void 0,N(t,i)))}for(let[e,t]of a){if(i.has(e))continue;let a=n?`${n}.${e}`:e;r.push(new F(a,`added`,N(t,a)))}return}if(j(e,i)||j(t,a))return;let o=M(e,n,i),s=M(t,n,a);o.hash!==s.hash&&r.push(new F(n,`changed`,s,o))}function A(e){let t=new Map;for(let n in e)n!==D&&t.set(n,e[n]);return t}function j(e,t){if(t)return!1;for(let t in e)if(t!==D)return!0;return!1}function M(e,t,n){return n?new I(t,e,P(e)):new I(t,e,`{}`,Object.create(null))}function N(e,t=``){if(typeof e!=`object`||!e)return new I(t,e,P(e));let n=Object.create(null),r=[];for(let i in e){if(i===D)continue;let a=N(e[i],t?`${t}.${i}`:i);n[i]=a,r.push(a.hash)}return new I(t,e,`{${r.join(`:`)}}`,n)}function P(e){switch(typeof e){case`string`:return`'${e}'`;case`number`:case`boolean`:return``+e;case`bigint`:return`${e}n`;default:return _(e)}}var F=class{key;type;newValue;oldValue;constructor(e,t,n,r){this.key=e,this.type=t,this.newValue=n,this.oldValue=r}toString(){return this.toJSON()}toJSON(){switch(this.type){case`added`:return`Added \`${this.key}\``;case`removed`:return`Removed \`${this.key}\``;case`changed`:return`Changed \`${this.key}\` from \`${this.oldValue?.toString()||`-`}\` to \`${this.newValue?.toString()}\``}}},I=class{key;value;hash;props;constructor(e,t,n,r){this.key=e,this.value=t,this.hash=n,this.props=r}toString(){return this.props?`{${Object.keys(this.props).join(`,`)}}`:JSON.stringify(this.value)}toJSON(){let e=this.key||`.`;return this.props?`${e}({${Object.keys(this.props).join(`,`)}})`:`${e}(${this.value})`}},L=new Set(`active.activeClass.ariaCurrentValue.as.disabled.download.exact.exactActiveClass.exactHash.exactQuery.external.form.formaction.formenctype.formmethod.formnovalidate.formtarget.href.hreflang.inactiveClass.locale.media.noPrefetch.noRel.onClick.ping.prefetch.prefetchOn.prefetchedClass.referrerpolicy.rel.replace.target.title.to.trailingSlash.type.viewTransition`.split(`.`));function R(e){let t={};for(let n of Object.keys(e))(L.has(n)||n.startsWith(`aria-`)||n.startsWith(`data-`))&&(t[n]=e[n]);return t}function z(e,t){let n=O(e,t).reduce((e,t)=>(t.type===`added`&&e.add(t.key),e),new Set),r=Object.fromEntries(Object.entries(e).filter(([e])=>!n.has(e))),i=Object.fromEntries(Object.entries(t).filter(([e])=>!n.has(e)));return v(r,i)}var B={__name:`ULinkBase`,props:{as:{type:String,required:!1,default:`button`},type:{type:String,required:!1,default:`button`},disabled:{type:Boolean,required:!1},onClick:{type:[Function,Array],required:!1},href:{type:[String,null],required:!1},navigate:{type:Function,required:!1},target:{type:[String,Object,null],required:!1},rel:{type:[String,Object,null],required:!1},active:{type:Boolean,required:!1},isExternal:{type:Boolean,required:!1}},setup(e){let t=e;function n(e){if(t.disabled){e.stopPropagation(),e.preventDefault();return}let n=[];if(t.onClick)for(let r of Array.isArray(t.onClick)?t.onClick:[t.onClick])n.push(r(e));return t.href&&t.navigate&&!t.isExternal&&t.navigate(e),Promise.all(n)}return(t,r)=>(f(),p(a(C),u(e.href?{as:`a`,href:e.disabled?void 0:e.href,"aria-disabled":e.disabled?`true`:void 0,role:e.disabled?`link`:void 0,tabindex:e.disabled?-1:void 0}:e.as===`button`?{as:e.as,type:e.type,disabled:e.disabled}:{as:e.as},{rel:e.rel,target:e.target,onClick:n}),{default:m(()=>[h(t.$slots,`default`)]),_:3},16,[`rel`,`target`]))}};function V(e){if(typeof window<`u`)return typeof window.requestIdleCallback==`function`?window.requestIdleCallback(e):setTimeout(e,1)}function H(e){typeof window<`u`&&e!==void 0&&(typeof window.cancelIdleCallback==`function`?window.cancelIdleCallback(e):clearTimeout(e))}var U=null,W=new Map;function G(e,t){return typeof IntersectionObserver>`u`?()=>{}:(U||=new IntersectionObserver(e=>{for(let t of e){let e=W.get(t.target);(t.isIntersecting||t.intersectionRatio>0)&&e&&e()}}),W.set(e,t),U.observe(e),()=>{W.delete(e),U?.unobserve(e),W.size===0&&(U?.disconnect(),U=null)})}var K={base:`outline-primary/25 focus-visible:outline-3 rounded-md`,variants:{active:{true:`text-primary`,false:`text-muted`},disabled:{true:`cursor-not-allowed opacity-75`}},compoundVariants:[{active:!1,disabled:!1,class:[`hover:text-default`,`transition-colors`]}]},q=Object.assign({inheritAttrs:!1},{__name:`ULink`,props:{as:{type:null,required:!1,default:`button`},type:{type:null,required:!1,default:`button`},disabled:{type:Boolean,required:!1},active:{type:Boolean,required:!1,default:void 0},exact:{type:Boolean,required:!1},exactQuery:{type:[Boolean,String],required:!1},exactHash:{type:Boolean,required:!1},inactiveClass:{type:String,required:!1},custom:{type:Boolean,required:!1},raw:{type:Boolean,required:!1},locale:{type:[Boolean,String],required:!1,default:void 0},class:{type:null,required:!1},to:{type:null,required:!1},href:{type:null,required:!1},external:{type:Boolean,required:!1},target:{type:[String,Object,null],required:!1},rel:{type:[String,Object,null],required:!1},noRel:{type:Boolean,required:!1},prefetchedClass:{type:String,required:!1},prefetch:{type:Boolean,required:!1},prefetchOn:{type:[String,Object],required:!1},noPrefetch:{type:Boolean,required:!1},trailingSlash:{type:String,required:!1},activeClass:{type:String,required:!1},exactActiveClass:{type:String,required:!1},ariaCurrentValue:{type:String,required:!1,default:`page`},viewTransition:{type:Boolean,required:!1},replace:{type:Boolean,required:!1}},setup(_){let C=_,D=t(),O=r(),k=i(),A=x(E(C,`as`,`type`,`disabled`,`active`,`exact`,`exactQuery`,`exactHash`,`activeClass`,`inactiveClass`,`to`,`href`,`raw`,`custom`,`locale`,`class`)),j=g(()=>y({extend:K,...w({variants:{active:{true:b(O.ui?.link?.variants?.active?.true,C.activeClass),false:b(O.ui?.link?.variants?.active?.false,C.inactiveClass)}}},O.ui?.link||{})})),M=g(()=>{let e=C.to??C.href;if(!e||typeof e!=`string`||C.external||T(e,{acceptRelative:!0})||C.locale===!1)return e;let t=k.$localePath;if(!t)return e;let n=k.$i18n?.localeCodes?.value;return n?.length&&RegExp(`^/(${n.join(`|`)})($|[/?#])`).test(e)?e:t(e,typeof C.locale==`string`?C.locale:void 0)||e}),N=g(()=>!M.value||C.external?!1:typeof M.value!=`string`||!(T(M.value,{acceptRelative:!0})||C.target&&C.target!==`_self`)),P=g(()=>C.noRel?null:C.rel===void 0?!N.value||C.target&&C.target!==`_self`?`noopener noreferrer`:null:C.rel||null);function F({route:e,isActive:t,isExactActive:n}={}){if(C.active!==void 0)return C.active;if(!M.value)return!1;if(C.exactQuery===`partial`){if(!z(e.query,D.query))return!1}else if(C.exactQuery===!0&&!v(e.query,D.query))return!1;return C.exactHash&&e.hash!==D.hash?!1:!!(C.exact&&n||!C.exact&&t)}function I({route:e,isActive:t,isExactActive:n,prefetched:r}={}){let i=F({route:e,isActive:t,isExactActive:n}),a=r?C.prefetchedClass:void 0;return C.raw?[C.class,i?C.activeClass:C.inactiveClass,a]:j.value({class:a?[C.class,a]:C.class,active:i,disabled:C.disabled})}let L=s(),R;function U(){R?.prefetch?.(k)}function W(){if(!R?.prefetched){R?.shouldPrefetch?.(`interaction`)&&U();return}if(R.fullPath===void 0)return;let{pathname:e,search:t}=new URL(R.fullPath,window.location.href);k._prefetch?.promote?.(e+t)}function q({prefetch:e,shouldPrefetch:t,prefetched:n,isExternal:r},i,a){if(e&&t&&(R={prefetch:e,shouldPrefetch:t,prefetched:n,fullPath:r?void 0:a?.fullPath},n||t(`interaction`)))return u({onPointerenter:i.onPointerenter,onFocus:i.onFocus,onPointerdown:i.onPointerdown},{onPointerenter:W,onFocus:W,onPointerdown:W})}let J,Y=null,X=!1;return o(()=>{if(!R?.shouldPrefetch?.(`visibility`))return;let e=L?.proxy?.$el,t=e instanceof Element?e:e?.nextElementSibling;t&&n(()=>{X||(J=V(()=>{Y=G(t,()=>{Y?.(),Y=null,U()})}))})}),c(()=>{X=!0,H(J),Y?.(),Y=null}),(t,n)=>{let r=e;return N.value?(f(),p(r,u({key:0},a(A),{to:M.value,custom:``}),{default:m(({href:e,navigate:n,route:r,isActive:i,isExactActive:o,...s})=>[_.custom?(f(),p(a(S),{key:0},{default:m(()=>[h(t.$slots,`default`,l(d({...t.$attrs,..._.exact&&o?{"aria-current":C.ariaCurrentValue}:{},...s.prefetched&&_.prefetchedClass?{class:_.prefetchedClass}:{},...q(s,t.$attrs,r),as:_.as,type:_.type,disabled:_.disabled,href:e,navigate:n,rel:P.value,target:s.target,isExternal:s.isExternal,active:F({route:r,isActive:i,isExactActive:o})})))]),_:2},1024)):(f(),p(B,u({key:1},{...t.$attrs,..._.exact&&o?{"aria-current":C.ariaCurrentValue}:{},as:_.as,type:_.type,disabled:_.disabled,href:e,navigate:n,rel:P.value,target:s.target,isExternal:s.isExternal,...q(s,t.$attrs,r)},{class:I({route:r,isActive:i,isExactActive:o,prefetched:s.prefetched})}),{default:m(()=>[h(t.$slots,`default`,{active:F({route:r,isActive:i,isExactActive:o})})]),_:2},1040,[`class`]))]),_:3},16,[`to`])):_.custom?(f(),p(a(S),{key:1},{default:m(()=>[h(t.$slots,`default`,l(d({...t.$attrs,as:_.as,type:_.type,disabled:_.disabled,...M.value?{href:String(M.value),target:C.target,rel:P.value,isExternal:!0}:{},active:_.active??!1})))]),_:3})):(f(),p(B,u({key:2},{...t.$attrs,as:_.as,type:_.type,disabled:_.disabled,...M.value?{href:String(M.value),target:C.target,rel:P.value,isExternal:!0}:{}},{class:I()}),{default:m(()=>[h(t.$slots,`default`,{active:_.active??!1})]),_:3},16,[`class`]))}}});export{R as a,B as i,H as n,V as r,q as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{At as e,C as t,Zt as n,jt as r,u as i}from"./BxuBMtk_.js";function a(e){let i=t(),a=i?.type.emits,o={};return a?.length||console.warn(`No emitted event found. Please check component: ${i?.type.__name}`),a?.forEach(t=>{o[n(r(t))]=(...n)=>e(t,...n)}),o}function o(t,n){let r=n?a(n):{};return i(()=>{let n=e(t),i={...r};for(let e in n){let t=n[e];t!==void 0&&(i[e]=t)}return i})}export{a as n,o as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./P6qlvBHA.js";import{At as t,M as n,U as r,Xt as i,d as a,f as o,m as s,nt as c,p as l,qt as u,u as d}from"./BxuBMtk_.js";import{a as f}from"./C9MgRdhu.js";import{n as p,o as m,t as h}from"./BE6t7Q2m.js";import{_ as g}from"#entry";import{t as _}from"./DJM7u8P3.js";import{t as v}from"./DV4ti-Pq.js";var y={slots:{root:`relative flex flex-wrap items-center gap-2 border border-muted bg-muted rounded-md px-4 py-3 my-5 last:mb-0`,icon:`size-4 shrink-0 text-highlighted`,content:`min-w-0`,description:`text-sm/6 text-default font-medium`,actions:`flex flex-wrap items-center gap-1.5 ms-auto`}},b=Object.assign({inheritAttrs:!1},{__name:`ProsePrompt`,props:{description:{type:String,required:!1},prompt:{type:String,required:!1},icon:{type:null,required:!1},actions:{type:Array,required:!1,default:()=>[]},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(b){let x=b,S=c(),C=p(`prose.prompt`,x),{t:w}=g(),{copy:T,copied:E}=f(),D=e(),O=d(()=>h({extend:y,...D.ui?.prose?.prompt||{}})()),k=d(()=>[...new Set([`copy`,...C.actions])]);function A(){if(C.prompt)return C.prompt.trim();let e=S.default?.();return e?m(e).trim():``}function j(){T(A())}function M(){window.open(`cursor://anysphere.cursor-deeplink/prompt?text=${encodeURIComponent(A())}`,`_self`)}function N(){window.open(`windsurf://cascade/newChat?prompt=${encodeURIComponent(A())}`,`_self`)}function P(){window.open(`claude://code/new?q=${encodeURIComponent(A())}`,`_self`)}return(e,c)=>(r(),s(`div`,n({class:O.value.root({class:[t(C).ui?.root,t(C).class]})},e.$attrs),[t(C).icon?(r(),o(_,{key:0,name:t(C).icon,class:u(O.value.icon({class:t(C).ui?.icon}))},null,8,[`name`,`class`])):l(``,!0),a(`div`,{class:u(O.value.content({class:t(C).ui?.content}))},[t(C).description?(r(),s(`p`,{key:0,class:u(O.value.description({class:t(C).ui?.description}))},i(t(C).description),3)):l(``,!0)],2),a(`div`,{class:u(O.value.actions({class:t(C).ui?.actions}))},[k.value.includes(`copy`)?(r(),o(v,{key:0,icon:t(E)?t(D).ui.icons.copyCheck:t(D).ui.icons.copy,size:`sm`,label:t(w)(`prose.prompt.copy`),onClick:j},null,8,[`icon`,`label`])):l(``,!0),k.value.includes(`cursor`)?(r(),o(v,{key:1,icon:`i-simple-icons-cursor`,color:`neutral`,variant:`outline`,size:`sm`,label:t(w)(`prose.prompt.openIn`,{name:`Cursor`}),onClick:M},null,8,[`label`])):l(``,!0),k.value.includes(`windsurf`)?(r(),o(v,{key:2,icon:`i-simple-icons-windsurf`,color:`neutral`,variant:`outline`,size:`sm`,label:t(w)(`prose.prompt.openIn`,{name:`Windsurf`}),onClick:N},null,8,[`label`])):l(``,!0),k.value.includes(`claude`)?(r(),o(v,{key:3,icon:`i-simple-icons-claude`,color:`neutral`,variant:`outline`,size:`sm`,label:t(w)(`prose.prompt.openIn`,{name:`Claude`}),onClick:P},null,8,[`label`])):l(``,!0)],2)],16))}});export{b as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./P6qlvBHA.js";import{At as t,U as n,d as r,m as i,q as a,qt as o,u as s}from"./BxuBMtk_.js";import{n as c,t as l}from"./BE6t7Q2m.js";var u={slots:{root:`relative my-5 overflow-x-auto rounded-md outline-primary/25 focus-visible:outline-3`,base:`w-full border-separate border-spacing-0 rounded-md`}},d={__name:`ProseTable`,props:{class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(d){let f=c(`prose.table`,d),p=e(),m=s(()=>l({extend:u,...p.ui?.prose?.table||{}})());return(e,s)=>(n(),i(`div`,{class:o(m.value.root({class:[t(f).ui?.root,t(f).class]}))},[r(`table`,{class:o(m.value.base({class:t(f).ui?.base}))},[a(e.$slots,`default`)],2)],2))}};export{d as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./P6qlvBHA.js";import{At as t,U as n,f as r,lt as i,q as a,qt as o,u as s}from"./BxuBMtk_.js";import{t as c}from"./DzmVW5-D.js";import{n as l,t as u}from"./BE6t7Q2m.js";var d={base:`my-5 divide-y divide-default *:not-last:pb-5`},f={__name:`ProseFieldGroup`,props:{as:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(f){let p=l(`prose.fieldGroup`,f),m=e(),h=s(()=>u({extend:d,...m.ui?.prose?.fieldGroup||{}}));return(e,s)=>(n(),r(t(c),{as:t(p).as,class:o(h.value({class:[t(p).ui?.base,t(p).class]}))},{default:i(()=>[a(e.$slots,`default`)]),_:3},8,[`as`,`class`]))}};export{f as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{C as e}from"./BxuBMtk_.js";function t(t=e()){let n=t;n&&!n.sp&&(n.sp=[])}export{t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{At as e,Jt as t,M as n,O as r,Ot as i,S as a,T as o,U as s,W as c,Xt as l,Y as u,at as d,b as f,f as p,j as m,lt as h,m as g,p as _,q as v,qt as y,tt as b,u as x,xt as S,y as C}from"./BxuBMtk_.js";import{t as w}from"./P6qlvBHA.js";import{f as T,n as E,t as D}from"./BE6t7Q2m.js";import{n as O,t as k}from"./DzmVW5-D.js";import{t as A}from"./DJM7u8P3.js";var j=Symbol(`nuxt-ui.field-group`);function M(e){let t=r(j,void 0);return{orientation:x(()=>t?.value.orientation),size:x(()=>e?.size??t?.value.size)}}var N=a({name:`FieldGroupReset`,setup(e,{slots:t}){return c(j,x(()=>({size:void 0,orientation:void 0}))),()=>t.default?.()}}),P=Symbol(`nuxt-ui.avatar-group`);function F(e){let t=r(P,void 0),n=x(()=>e.size??t?.value.size),i=x(()=>e.color??t?.value.color);return c(P,x(()=>({size:n.value,color:i.value}))),{size:n,color:i}}var I={slots:{root:`relative inline-flex items-center justify-center shrink-0`,base:`rounded-full ring ring-bg flex items-center justify-center text-inverted font-medium whitespace-nowrap`},variants:{color:{primary:`bg-primary`,secondary:`bg-secondary`,success:`bg-success`,info:`bg-info`,warning:`bg-warning`,error:`bg-error`,neutral:`bg-inverted`},size:{"3xs":`h-[4px] min-w-[4px] text-[4px]`,"2xs":`h-[5px] min-w-[5px] text-[5px]`,xs:`h-[6px] min-w-[6px] text-[6px]`,sm:`h-[7px] min-w-[7px] text-[7px]`,md:`h-[8px] min-w-[8px] text-[8px]`,lg:`h-[9px] min-w-[9px] text-[9px]`,xl:`h-[10px] min-w-[10px] text-[10px]`,"2xl":`h-[11px] min-w-[11px] text-[11px]`,"3xl":`h-[12px] min-w-[12px] text-[12px]`},position:{"top-right":`top-0 right-0`,"bottom-right":`bottom-0 right-0`,"top-left":`top-0 left-0`,"bottom-left":`bottom-0 left-0`},inset:{false:``},standalone:{false:`absolute`}},compoundVariants:[{position:`top-right`,inset:!1,class:`-translate-y-1/2 translate-x-1/2 transform`},{position:`bottom-right`,inset:!1,class:`translate-y-1/2 translate-x-1/2 transform`},{position:`top-left`,inset:!1,class:`-translate-y-1/2 -translate-x-1/2 transform`},{position:`bottom-left`,inset:!1,class:`translate-y-1/2 -translate-x-1/2 transform`}],defaultVariants:{size:`md`,color:`primary`,position:`top-right`}},L=Object.assign({inheritAttrs:!1},{__name:`UChip`,props:m({as:{type:null,required:!1},text:{type:[String,Number],required:!1},color:{type:null,required:!1},size:{type:null,required:!1},position:{type:null,required:!1},inset:{type:Boolean,required:!1,default:!1},standalone:{type:Boolean,required:!1,default:!1},class:{type:null,required:!1},ui:{type:Object,required:!1}},{show:{type:Boolean,default:!0},showModifiers:{}}),emits:[`update:show`],setup(n){let r=n,i=E(`chip`,r),a=b(n,`show`,{type:Boolean,default:!0}),{size:c}=F(r),u=w(),d=x(()=>D({extend:I,...u.ui?.chip||{}})({color:i.color,size:c.value??i.size,position:i.position,inset:i.inset,standalone:i.standalone}));return(n,r)=>(s(),p(e(k),{as:e(i).as,"data-slot":n.$attrs[`data-slot`]??`root`,class:y(d.value.root({class:[e(i).ui?.root,e(i).class]}))},{default:h(()=>[f(e(O),t(o({...n.$attrs,"data-slot":void 0})),{default:h(()=>[v(n.$slots,`default`)]),_:3},16),a.value?(s(),g(`span`,{key:0,"data-slot":`base`,class:y(d.value.base({class:e(i).ui?.base}))},[v(n.$slots,`content`,{},()=>[C(l(e(i).text),1)])],2)):_(``,!0)]),_:3},8,[`as`,`data-slot`,`class`]))}}),R={slots:{root:`inline-flex items-center justify-center shrink-0 select-none rounded-full align-middle`,image:`h-full w-full rounded-[inherit] object-cover`,fallback:`font-medium truncate`,icon:`shrink-0`},variants:{color:{primary:{root:`bg-primary/10`,fallback:`text-primary`,icon:`text-primary`},secondary:{root:`bg-secondary/10`,fallback:`text-secondary`,icon:`text-secondary`},success:{root:`bg-success/10`,fallback:`text-success`,icon:`text-success`},info:{root:`bg-info/10`,fallback:`text-info`,icon:`text-info`},warning:{root:`bg-warning/10`,fallback:`text-warning`,icon:`text-warning`},error:{root:`bg-error/10`,fallback:`text-error`,icon:`text-error`},neutral:{root:`bg-elevated`,fallback:`text-muted`,icon:`text-muted`}},size:{"3xs":{root:`size-4 text-[8px]`},"2xs":{root:`size-5 text-[10px]`},xs:{root:`size-6 text-xs`},sm:{root:`size-7 text-sm`},md:{root:`size-8 text-base`},lg:{root:`size-9 text-lg`},xl:{root:`size-10 text-xl`},"2xl":{root:`size-11 text-[22px]`},"3xl":{root:`size-12 text-2xl`}}},defaultVariants:{size:`md`,color:`neutral`}},z=Object.assign({inheritAttrs:!1},{__name:`UAvatar`,props:{as:{type:null,required:!1},src:{type:String,required:!1},alt:{type:String,required:!1},icon:{type:null,required:!1},text:{type:String,required:!1},size:{type:null,required:!1},color:{type:null,required:!1},chip:{type:[Boolean,Object],required:!1},class:{type:null,required:!1},style:{type:null,required:!1},ui:{type:Object,required:!1}},setup(r){let i=r,a=E(`avatar`,i),o=x(()=>T(a.as,{root:`span`})),c=x(()=>a.text||(a.alt||``).split(` `).map(e=>e.charAt(0)).join(``).substring(0,2)),f=w(),{size:m,color:_}=F(i),b=x(()=>D({extend:R,...f.ui?.avatar||{}})({size:m.value??a.size,color:_.value??a.color})),C=x(()=>b.value.root({class:[a.ui?.root,a.class]})),j=x(()=>{let e=(C.value||``).split(` `).find(e=>/^size-\d+$/.test(e));if(e){let t=Number.parseFloat(e.split(`-`)[1]??``);if(!Number.isNaN(t))return t*4}return null}),M=S(!1);d(()=>a.src,()=>{M.value&&=!1});function N(){M.value=!0}return(r,i)=>(s(),p(u(e(a).chip?L:e(k)),n({as:o.value.root},e(a).chip?typeof e(a).chip==`object`?{inset:!0,...e(a).chip}:{inset:!0}:{},{"data-slot":r.$attrs[`data-slot`]??`root`,class:C.value,style:e(a).style}),{default:h(()=>[e(a).src&&!M.value?(s(),p(u(o.value.img||e(`img`)),n({key:0,src:e(a).src,alt:e(a).alt,width:j.value,height:j.value},r.$attrs,{"data-slot":`image`,class:b.value.image({class:e(a).ui?.image}),onError:N}),null,16,[`src`,`alt`,`width`,`height`,`class`])):(s(),p(e(O),t(n({key:1},{...r.$attrs,"data-slot":void 0})),{default:h(()=>[v(r.$slots,`default`,{},()=>[e(a).icon?(s(),p(A,{key:0,name:e(a).icon,"data-slot":`icon`,class:y(b.value.icon({class:e(a).ui?.icon}))},null,8,[`name`,`class`])):(s(),g(`span`,{key:1,"data-slot":`fallback`,class:y(b.value.fallback({class:e(a).ui?.fallback}))},l(c.value||`\xA0`),3))])]),_:3},16))]),_:3},16,[`as`,`data-slot`,`class`,`style`]))}});function B(e){let t=w(),n=x(()=>i(e)),r=x(()=>n.value.icon&&n.value.leading||n.value.icon&&!n.value.trailing||n.value.loading&&!n.value.trailing||!!n.value.leadingIcon);return{isLeading:r,isTrailing:x(()=>n.value.icon&&n.value.trailing||n.value.loading&&n.value.trailing&&!r.value||!!n.value.trailingIcon&&n.value.trailing!==!1),leadingIconName:x(()=>n.value.loading?n.value.loadingIcon||t.ui.icons.loading:n.value.leadingIcon||n.value.icon),trailingIconName:x(()=>n.value.loading&&!r.value?n.value.loadingIcon||t.ui.icons.loading:n.value.trailingIcon||n.value.icon)}}export{M as a,N as i,z as n,L as r,B as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{E as e,O as t,S as n,W as r,_t as i,at as a,ot as o,u as s,xt as c}from"./BxuBMtk_.js";import{i as l}from"./C9MgRdhu.js";import{n as u}from"./DzmVW5-D.js";function d(){let e=document.activeElement;if(e==null)return null;for(;e!=null&&e.shadowRoot!=null&&e.shadowRoot.activeElement!=null;)e=e.shadowRoot.activeElement;return e}function f(){let e=c();return{primitiveElement:e,currentElement:s(()=>[`#text`,`#comment`].includes(e.value?.$el.nodeName)?e.value?.$el.nextElementSibling:l(e))}}var p=`data-reka-collection-item`;function m(l={}){let{key:d=``,isProvider:m=!1}=l,h=`${d}CollectionProvider`,g;if(m){let e=c(new Map);g={collectionRef:c(),itemMap:e},r(h,g)}else g=t(h);let _=(e,t=!1)=>{if(!g.collectionRef.value)return;let n=g.itemMap.value.get(e);return n&&(t||n.ref.dataset.disabled!==``)?n:void 0},v=(e=!1)=>{let t=g.collectionRef.value;if(!t)return[];let n=Array.from(t.querySelectorAll(`[${p}]`)),r=new Map(n.map((e,t)=>[e,t])),i=Array.from(g.itemMap.value.values()).sort((e,t)=>(r.get(e.ref)??-1)-(r.get(t.ref)??-1));return e?i:i.filter(e=>e.ref.dataset.disabled!==``)},y=n({name:`CollectionSlot`,inheritAttrs:!1,setup(t,{slots:n,attrs:r}){let{primitiveElement:i,currentElement:o}=f();return a(o,()=>{g.collectionRef.value=o.value}),()=>e(u,{ref:i,...r},n)}}),b=n({name:`CollectionItem`,inheritAttrs:!1,props:{value:{validator:()=>!0}},setup(t,{slots:n,attrs:r}){let{primitiveElement:a,currentElement:s}=f();return o(e=>{if(s.value){let n=i(s.value);g.itemMap.value.set(n,{ref:s.value,value:t.value}),e(()=>g.itemMap.value.delete(n))}}),()=>e(u,{...r,[p]:``,ref:a},n)}});return{getItems:v,getItem:_,reactiveItems:s(()=>Array.from(g.itemMap.value.values())),itemMapSize:s(()=>g.itemMap.value.size),CollectionSlot:y,CollectionItem:b}}export{f as n,d as r,m as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e,i as t,o as n,r as ee,s as r}from"#entry";import{t as te}from"./OKKaKILz.js";import{t as ne}from"./DJM7u8P3.js";import{t as re}from"./CI0scS-N.js";import{At as i,K as a,S as o,U as s,Xt as c,Yt as ie,b as l,d as u,gt as ae,i as d,lt as oe,m as f,ot as p,p as m,qt as h,u as g,ut as se,v as _,xt as v,y}from"./BxuBMtk_.js";import{o as ce}from"./BygIGL69.js";var le={class:`kpis`},ue={class:`v`},de={class:`v`},fe={class:`v`},pe={class:`v`},me={key:0,class:`card panel`},he={class:`panel-hd`},ge={class:`ph-l`},_e={class:`sp-name`},ve={class:`sub mono`},ye={class:`goal`},be={class:`chart-wrap`},xe=[`viewBox`],Se=[`y1`,`x2`,`y2`],b=[`x`,`y`],x=[`d`],S=[`d`],C=[`points`],w=[`cx`,`cy`],T=[`x1`,`y1`,`x2`,`y2`],E=[`x`,`y`],D=[`x`,`y`],O=[`x1`,`y1`,`x2`,`y2`],k=[`cx`,`cy`],A={class:`cells`},j={class:`cd mono`},Ce={class:`ca`},we={class:`ci dim`},Te={key:0,class:`scope`},Ee={class:`h3`},De={class:`tag tag-info`},Oe={class:`dim`},ke={key:1,class:`callout soft`},Ae={class:`card`},je={class:`card-hd`},Me={class:`tag tag-neutral`},Ne={class:`card-bd`},Pe={class:`tbl`},Fe=[`onClick`],Ie={class:`mono`},Le={class:`mono dim`},Re={class:`r`},ze={class:`r mono`},Be=980,Ve=300,M=42,N=t(o({__name:`burndown`,setup(t){let{sprints:o,burndown:N,sprintCommit:P,md:F,now:I,sprintById:L,storyById:He,SCOPE_LABEL:R}=r(),z=v(``),Ue=g(()=>[...o.value].reverse().map(e=>({label:`${e.id} · ${e.name}`,value:e.id,icon:`i-lucide-calendar-range`}))),B=g(()=>L.value.get(z.value)??o.value[o.value.length-1]),V=g(()=>B.value?N(B.value):{total:0,days:[]});p(()=>{z.value&&!L.value.has(z.value)&&(z.value=``),!z.value&&o.value.length&&(z.value=o.value[o.value.length-1].id)});let H=g(()=>V.value.days.length||1),U=g(()=>V.value.total||1),W=e=>M+e*896/(H.value-1||1),G=e=>258-e*216/U.value,K=e=>V.value.days.map((t,n)=>`${W(n)},${G(t[e])}`).join(` `),We=g(()=>{let e=V.value.days.map((e,t)=>`${W(t)},${G(e.actual)}`).join(` `),t=V.value.days.length-1;return`M${W(0)},${G(0)} L${e.replaceAll(` `,` L`)} L${W(t)},${G(0)} Z`}),q=g(()=>V.value.days.findIndex(e=>e.date===I)),J=g(()=>V.value.days.find(e=>e.date===I)??V.value.days[V.value.days.length-1]),Y=g(()=>J.value?.actual??0),X=g(()=>J.value?.ideal??0),Z=g(()=>Math.round((Y.value-X.value)*10)/10),Q=g(()=>{let e=B.value;return e?(e.stories??[]).map(e=>He.value.get(e)).filter(Boolean).filter(t=>t.scopeChange&&t.scopeChange.at>=e.start&&t.scopeChange.at<=e.end).map(e=>({id:e.id,title:e.title,at:e.scopeChange.at,kind:e.scopeChange.kind,reason:e.scopeChange.reason,points:e.points,idx:V.value.days.findIndex(t=>t.date===e.scopeChange.at)})).filter(e=>e.idx>=0):[]}),Ge=g(()=>new Set(Q.value.map(e=>e.at))),$=g(()=>[...o.value].reverse().map(e=>{let t=e.start<=I&&e.end>=I;return{id:e.id,name:e.name,period:`${F(e.start)} ~ ${F(e.end)}`,stories:(e.stories??[]).length,commit:P(e),capacity:e.capacity,status:t?`进行中`:e.end<I?`已结束`:`未开始`,tone:t?`tag-primary`:e.end<I?`tag-neutral`:`tag-info`}}));return(t,r)=>{let o=ee,p=te,g=ne,v=re;return s(),f(`div`,null,[u(`div`,le,[u(`div`,{class:h([`kpi`,(`cardToneClass`in t?t.cardToneClass:i(n))(0)])},[l(o,{tone:(`cardTone`in t?t.cardTone:i(e))(0),size:`sm`},null,8,[`tone`]),r[1]||=u(`p`,{class:`k`},`剩余故事点`,-1),u(`p`,ue,[y(c(i(Y)),1),u(`small`,null,`/ `+c(i(V).total),1)])],2),u(`div`,{class:h([`kpi`,(`cardToneClass`in t?t.cardToneClass:i(n))(1)])},[l(o,{tone:(`cardTone`in t?t.cardTone:i(e))(1),size:`sm`},null,8,[`tone`]),r[3]||=u(`p`,{class:`k`},`理想剩余(今天)`,-1),u(`p`,de,[y(c(i(X)),1),r[2]||=u(`small`,null,`点`,-1)])],2),u(`div`,{class:h([`kpi`,(`cardToneClass`in t?t.cardToneClass:i(n))(2)])},[l(o,{tone:(`cardTone`in t?t.cardTone:i(e))(2),size:`sm`},null,8,[`tone`]),r[5]||=u(`p`,{class:`k`},`偏差`,-1),u(`p`,{class:h([`v`,{bad:i(Z)>0,good:i(Z)<=0}])},[y(c(i(Z)>0?`+`+i(Z):i(Z)),1),r[4]||=u(`small`,null,`点`,-1)],2)],2),u(`div`,{class:h([`kpi`,(`cardToneClass`in t?t.cardToneClass:i(n))(3)])},[l(o,{tone:(`cardTone`in t?t.cardTone:i(e))(3),size:`sm`},null,8,[`tone`]),r[6]||=u(`p`,{class:`k`},`承诺 / 容量`,-1),u(`p`,fe,[y(c(i(B)?i(P)(i(B)):0),1),u(`small`,null,`/ `+c(i(B)?.capacity??0),1)])],2),u(`div`,{class:h([`kpi`,(`cardToneClass`in t?t.cardToneClass:i(n))(4)])},[l(o,{tone:(`cardTone`in t?t.cardTone:i(e))(4),size:`sm`},null,8,[`tone`]),r[8]||=u(`p`,{class:`k`},`范围变更`,-1),u(`p`,pe,[y(c(i(Q).length),1),r[7]||=u(`small`,null,`次`,-1)])],2)]),i(B)?(s(),f(`div`,me,[u(`div`,he,[u(`div`,ge,[u(`h2`,_e,c(i(B).name),1),u(`p`,ve,c(i(B).id)+` · `+c(i(F)(i(B).start))+` ~ `+c(i(F)(i(B).end)),1),u(`p`,ye,c(i(B).goal),1)]),l(p,{modelValue:i(z),"onUpdate:modelValue":r[0]||=e=>ae(z)?z.value=e:null,items:i(Ue),icon:`i-lucide-calendar-range`,"aria-label":`选择迭代`,class:`bd-select`},null,8,[`modelValue`,`items`])]),u(`div`,be,[r[10]||=_(`<div class="chart-legend" data-v-8a03a4f8><span class="lg" data-v-8a03a4f8><i class="sw actual" data-v-8a03a4f8></i>实际剩余</span><span class="lg" data-v-8a03a4f8><i class="sw ideal" data-v-8a03a4f8></i>理想线</span><span class="lg" data-v-8a03a4f8><i class="sw scope" data-v-8a03a4f8></i>范围变更</span></div>`,1),(s(),f(`svg`,{viewBox:`0 0 ${Be} ${Ve}`,class:`chart`,role:`img`},[r[9]||=_(`<defs data-v-8a03a4f8><linearGradient id="bd-line" x1="0" y1="0" x2="1" y2="0" data-v-8a03a4f8><stop offset="0%" stop-color="#8a63f7" data-v-8a03a4f8></stop><stop offset="100%" stop-color="#c3aefb" data-v-8a03a4f8></stop></linearGradient><linearGradient id="bd-area" x1="0" y1="0" x2="0" y2="1" data-v-8a03a4f8><stop offset="0%" stop-color="#8a63f7" stop-opacity="0.16" data-v-8a03a4f8></stop><stop offset="100%" stop-color="#8a63f7" stop-opacity="0" data-v-8a03a4f8></stop></linearGradient></defs>`,1),u(`g`,null,[(s(),f(d,null,a([0,.25,.5,.75,1],e=>u(`line`,{key:`grid`+e,x1:M,y1:G(i(U)*e),x2:938,y2:G(i(U)*e),stroke:`#f1f0ea`,"stroke-width":`1`},null,8,Se)),64)),(s(),f(d,null,a([0,.25,.5,.75,1],e=>u(`text`,{key:`gl`+e,x:32,y:G(i(U)*e)+3.5,"text-anchor":`end`,"font-size":`9.5`,fill:`#b0b4ba`},c(Math.round(i(U)*e)),9,b)),64))]),u(`path`,{d:i(We),fill:`url(#bd-area)`},null,8,x),u(`path`,{d:`M${W(0)},${G(i(U))} L${W(i(H)-1)},${G(0)}`,stroke:`#cdc9d8`,"stroke-width":`1.4`,"stroke-dasharray":`5 5`,fill:`none`},null,8,S),u(`polyline`,{points:K(`actual`),stroke:`url(#bd-line)`,"stroke-width":`2.6`,fill:`none`,"stroke-linejoin":`round`,"stroke-linecap":`round`},null,8,C),(s(!0),f(d,null,a(i(V).days,(e,t)=>(s(),f(`circle`,{key:e.date,cx:W(t),cy:G(e.actual),r:`3`,fill:`#fff`,stroke:`#8a63f7`,"stroke-width":`1.8`},null,8,w))),128)),i(q)>=0?(s(),f(`line`,{key:0,x1:W(i(q)),y1:34,x2:W(i(q)),y2:G(0),stroke:`#cf4759`,"stroke-dasharray":`3 3`,"stroke-width":`1.2`,opacity:`0.7`},null,8,T)):m(``,!0),i(q)>=0?(s(),f(`text`,{key:1,x:W(i(q)),y:28,"text-anchor":`middle`,"font-size":`9.5`,fill:`#a5382f`},`今天`,8,E)):m(``,!0),(s(!0),f(d,null,a(i(V).days,(e,t)=>se((s(),f(`text`,{key:`t`+e.date,x:W(t),y:286,"text-anchor":`middle`,"font-size":`9.5`,fill:`#b0b4ba`},c(i(F)(e.date)),9,D)),[[ce,t%Math.ceil(i(H)/10)===0]])),128)),(s(!0),f(d,null,a(i(Q),e=>(s(),f(`g`,{key:e.at+e.id},[u(`title`,null,c(e.id)+` `+c(e.title)+`:`+c(i(R)[e.kind])+`(`+c(e.at)+`,`+c(e.points)+` 点)—— `+c(e.reason),1),u(`line`,{x1:W(e.idx),y1:36,x2:W(e.idx),y2:G(0),stroke:`#3f7fd4`,"stroke-dasharray":`4 3`,"stroke-width":`1.2`,opacity:`0.8`},null,8,O),u(`circle`,{cx:W(e.idx),cy:34,r:`3`,fill:`#3f7fd4`},null,8,k)]))),128))],8,xe))]),u(`div`,A,[(s(!0),f(d,null,a(i(V).days,e=>(s(),f(`div`,{key:`row`+e.date,class:h([`cell`,{today:e.date===i(I),future:e.date>i(I),scope:i(Ge).has(e.date)}])},[u(`span`,j,c(i(F)(e.date)),1),u(`span`,Ce,c(e.actual),1),u(`span`,we,c(e.ideal),1),u(`i`,{class:`underline`,style:ie({width:(i(U)?e.actual/i(U)*100:0)+`%`})},null,4)],2))),128))]),r[12]||=u(`p`,{class:`foot dim`},`每格:日期 / 实际剩余 / 理想剩余`,-1),i(Q).length?(s(),f(`div`,Te,[u(`p`,Ee,[l(g,{name:`i-lucide-git-branch`,class:`size-3`}),y(`本迭代范围变更(`+c(i(Q).length)+`)`,1)]),u(`ul`,null,[(s(!0),f(d,null,a(i(Q),e=>(s(),f(`li`,{key:e.id},[u(`span`,De,c(i(R)[e.kind]),1),l(v,{to:`/story/${e.id}`,class:`mono link`},{default:oe(()=>[y(c(e.id),1)]),_:2},1032,[`to`]),u(`span`,null,c(e.title),1),u(`span`,Oe,`· `+c(e.at)+` · `+c(e.points)+` 点 · `+c(e.reason),1)]))),128))]),r[11]||=u(`p`,{class:`foot dim`},`竖线标出的那几天,实际剩余没有按理想线下滑,是插了活而不是团队拖。`,-1)])):m(``,!0)])):(s(),f(`div`,ke,[l(g,{name:`i-lucide-info`,class:`size-4`}),r[13]||=y(`还没有迭代数据。 `,-1)])),u(`div`,Ae,[u(`div`,je,[r[14]||=u(`h2`,{class:`h2`},`迭代对照`,-1),u(`span`,Me,c(i($).length),1),r[15]||=u(`span`,{class:`dim tip`},`点一行切换上面的燃尽图`,-1)]),u(`div`,Ne,[u(`table`,Pe,[r[16]||=u(`thead`,null,[u(`tr`,null,[u(`th`,null,`迭代`),u(`th`,null,`名称`),u(`th`,null,`周期`),u(`th`,{class:`r`},`故事`),u(`th`,{class:`r`},`承诺 / 容量`),u(`th`,null,`状态`)])],-1),u(`tbody`,null,[(s(!0),f(d,null,a(i($),e=>(s(),f(`tr`,{key:e.id,class:h({on:e.id===i(z)}),onClick:t=>z.value=e.id},[u(`td`,Ie,c(e.id),1),u(`td`,null,c(e.name),1),u(`td`,Le,c(e.period),1),u(`td`,Re,c(e.stories),1),u(`td`,ze,c(e.commit)+`/`+c(e.capacity),1),u(`td`,null,[u(`span`,{class:h([`tag`,e.tone])},c(e.status),3)])],10,Fe))),128))])])])])])}}}),[[`__scopeId`,`data-v-8a03a4f8`]]);export{N as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./P6qlvBHA.js";import{At as t,U as n,Xt as r,m as i,q as a,qt as o,u as s,y as c}from"./BxuBMtk_.js";import{n as l,t as u}from"./BE6t7Q2m.js";var d={base:`*:first:mt-0 *:last:mb-0 *:my-1.5`},f={__name:`ProseTabsItem`,props:{label:{type:String,required:!0},description:{type:String,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(f){let p=l(`prose.tabsItem`,f),m=e(),h=s(()=>u({extend:d,...m.ui?.prose?.tabsItem||{}}));return(e,s)=>(n(),i(`div`,{class:o(h.value({class:[t(p).ui?.base,t(p).class]}))},[a(e.$slots,`default`,{},()=>[c(r(t(p).description),1)])],2))}};export{f as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./P6qlvBHA.js";import{At as t,U as n,m as r,q as i,qt as a,u as o}from"./BxuBMtk_.js";import{n as s,t as c}from"./BE6t7Q2m.js";var l={base:``},u={__name:`ProseTbody`,props:{class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(u){let d=s(`prose.tbody`,u),f=e(),p=o(()=>c({extend:l,...f.ui?.prose?.tbody||{}}));return(e,o)=>(n(),r(`tbody`,{class:a(p.value({class:[t(d).ui?.base,t(d).class]}))},[i(e.$slots,`default`)],2))}};export{u as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as e}from"./CFCM18fF.js";import{t}from"./P6qlvBHA.js";import{At as n,U as r,b as i,d as a,m as o,q as s,qt as c,u as l}from"./BxuBMtk_.js";import{n as u,t as d}from"./BE6t7Q2m.js";import{t as f}from"./DJM7u8P3.js";var p={slots:{base:[`relative text-2xl text-highlighted font-bold mt-12 mb-6 scroll-mt-[calc(48px+45px+var(--ui-header-height))] lg:scroll-mt-[calc(48px+var(--ui-header-height))] [&>a]:rounded-sm [&>a]:outline-primary/25 [&>a]:focus-visible:outline-3 [&>a>code]:border-dashed hover:[&>a>code]:border-primary hover:[&>a>code]:text-primary [&>a>code]:text-xl/7 [&>a>code]:font-bold`,`[&>a>code]:transition-colors`],leading:[`absolute -ms-8 top-1 opacity-0 group-hover:opacity-100 group-focus:opacity-100 p-1 bg-elevated group-hover:text-primary group-focus:text-primary rounded-md hidden lg:flex text-muted`,`transition`],leadingIcon:`size-4 shrink-0`,link:`group lg:after:absolute lg:after:inset-y-0 lg:after:-inset-s-2 lg:after:w-2`}},m=[`id`],h=[`href`],g={__name:`ProseH2`,props:{id:{type:String,required:!1},anchor:{type:Boolean,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(g){let _=u(`prose.h2`,g),v=t(),{headings:y}=e().public?.mdc||{},b=l(()=>d({extend:p,...v.ui?.prose?.h2||{}})()),x=l(()=>_.id&&(_.anchor??(typeof y?.anchorLinks==`boolean`?y.anchorLinks:y?.anchorLinks?.h2)??!1));return(e,t)=>(r(),o(`h2`,{id:n(_).id,class:c(b.value.base({class:[n(_).ui?.base,n(_).class]}))},[n(_).id&&x.value?(r(),o(`a`,{key:0,href:`#${n(_).id}`,class:c(b.value.link({class:n(_).ui?.link}))},[a(`span`,{class:c(b.value.leading({class:n(_).ui?.leading}))},[i(f,{name:n(v).ui.icons.hash,class:c(b.value.leadingIcon({class:n(_).ui?.leadingIcon}))},null,8,[`name`,`class`])],2),s(e.$slots,`default`)],10,h)):s(e.$slots,`default`,{},void 0,void 0,1)],10,m))}};export{g as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./DJM7u8P3.js";import{t}from"./CI0scS-N.js";import{i as ee,s as n,t as r}from"#entry";import{At as i,K as a,S as o,U as s,Xt as c,Yt as l,b as u,d,f,i as p,lt as m,m as h,p as g,qt as _,u as v,y}from"./BxuBMtk_.js";var te={class:`card hero`},ne={class:`chips`},re={class:`tag tag-ghost`},ie=[`title`],ae=[`title`],oe={class:`tag tag-neutral`},se={key:3,class:`tag tag-primary mono`},ce=[`title`],le={class:`story-title`},ue={class:`narrative`},de={class:`facts`},fe={class:`fact`},pe={class:`fact`},me={class:`fact`},he={class:`fact`},ge={class:`fact`},b={class:`mono`},x={class:`fact`},S={class:`mono`},C={class:`dim`},w={class:`fact`},T={class:`mono`},E={key:0,class:`fact`},D={class:`hero-foot`},O={class:`dim`},k={class:`bar`},A={class:`cols`},j={key:0,class:`card block`},M={class:`card-hd`},N={class:`h2`},P={class:`card-bd bug`},F={class:`steps`},I={key:1,class:`card block`},L={class:`card-hd`},_e={class:`h2`},ve={class:`card-bd`},ye={key:0,class:`callout`},be={key:1,class:`dep-row`},xe={key:2,class:`dep-row`},Se={class:`card block`},Ce={class:`card-hd`},we={class:`h2`},Te={class:`tag tag-neutral`},Ee={class:`card-bd`},De={key:0,class:`ac`},Oe={class:`ac-row`},ke={class:`ac-row`},Ae={class:`ac-row`},je={key:0,class:`ac-row verify`},Me={key:1,class:`dim`},Ne={key:0,class:`card block`},Pe={class:`card-hd`},Fe={class:`h2`},Ie={class:`tag tag-neutral`},Le={class:`card-bd dg-links`},Re={class:`tag tag-neutral`},ze={key:0,class:`tag tag-warning`},Be={class:`mono dim`},Ve={class:`card-hd task-hd`},He={class:`tag tag-ghost`},Ue={class:`tag tag-neutral`},We={class:`task-title`},Ge={class:`dim entries-ct`},Ke={key:0,class:`files mono dim`},qe={class:`card-bd`},Je={key:0,class:`entries`},Ye={class:`entry-hd`},Xe={class:`date mono dim`},Ze={class:`tag tag-neutral mono result`},Qe={class:`note`},$e={key:0,class:`cmd mono`},et={key:1,class:`efiles dim mono`},tt={key:1,class:`dim`},nt={class:`pager`},rt={class:`pg-k`},it={class:`pg-t`},at={key:1,class:`pg-empty`},ot={class:`pg-k`},st={class:`pg-t`},ct={key:1,class:`callout warn`},R=ee(o({__name:`[id]`,setup(ee){let o=r(),{storyById:R,stories:z,epicById:lt,sprintById:ut,journalByTask:dt,actualRange:B,progress:V,milestoneOfStory:ft,STATE_LABEL:pt,STATE_COLOR:mt,TASK_LABEL:ht,TASK_COLOR:gt,KIND_LABEL:_t,MS_LABEL:vt,md:H,diffDays:yt,wsjf:bt,dependentsOf:U,TYPE_LABEL:xt,TYPE_COLOR:St,TYPE_ICON:Ct,PRIORITY_COLOR:wt,SEVERITY_LABEL:W,SEVERITY_COLOR:G,SCOPE_LABEL:K,storyDiagrams:q,staleDiagrams:J,DIAGRAM_KIND_LABEL:Tt,DIAGRAM_KIND_ICON:Et,DIAGRAM_KIND_DOT:Dt}=n(),Y=v(()=>R.value.get(String(o.value?.params?.id))),X=v(()=>z.value.findIndex(e=>e.id===Y.value?.id)),Z=v(()=>X.value>0?z.value[X.value-1]:null),Q=v(()=>X.value>=0&&X.value<z.value.length-1?z.value[X.value+1]:null),$=e=>dt.value.get(e)?.entries??[],Ot={red:`RED 失败测试`,green:`GREEN 让测试通过`,refactor:`REFACTOR 重构`},kt={red:`tag-error`,green:`tag-success`,refactor:`tag-primary`};return(ee,n)=>{let r=e,o=t;return s(),h(`div`,null,[i(Y)?(s(),h(p,{key:0},[u(o,{to:`/`,class:`btn btn-quiet btn-sm back`},{default:m(()=>[u(r,{name:`i-lucide-arrow-left`,class:`size-3.5`}),n[0]||=y(`返回看板 `,-1)]),_:1}),d(`article`,te,[d(`div`,ne,[d(`span`,re,c(i(Y).id),1),d(`span`,{class:_([`tag`,`tag-${i(mt)[i(Y).status]}`])},c(i(pt)[i(Y).status]??i(Y).status),3),d(`span`,{class:_([`tag`,`tag-${i(St)[i(Y).type]}`])},[u(r,{name:i(Ct)[i(Y).type],class:`size-3`},null,8,[`name`]),y(c(i(xt)[i(Y).type]),1)],2),d(`span`,{class:_([`tag`,`tag-${i(wt)[i(Y).priority]}`])},c(i(Y).priority),3),i(Y).bug?(s(),h(`span`,{key:0,class:_([`tag`,`tag-${i(G)[i(Y).bug.severity]}`])},[u(r,{name:`i-lucide-bug`,class:`size-3`}),y(c(i(W)[i(Y).bug.severity]),1)],2)):g(``,!0),i(Y).blocked?(s(),h(`span`,{key:1,class:`tag tag-error tag-dot`,title:i(Y).blocked.reason},`阻塞`,8,ie)):g(``,!0),i(Y).scopeChange?(s(),h(`span`,{key:2,class:`tag tag-info`,title:`${i(K)[i(Y).scopeChange.kind]}(${i(Y).scopeChange.at}):${i(Y).scopeChange.reason}`},c(i(K)[i(Y).scopeChange.kind])+` · `+c(i(Y).scopeChange.at),9,ae)):g(``,!0),d(`span`,oe,[u(r,{name:`i-lucide-layers`,class:`size-3`}),y(c(i(Y).epicId)+` `+c(i(lt).get(i(Y).epicId)?.title),1)]),i(Y).sprintId?(s(),h(`span`,se,[u(r,{name:`i-lucide-calendar-range`,class:`size-3`}),y(c(i(Y).sprintId),1)])):g(``,!0),(s(!0),h(p,null,a(i(ft)(i(Y).id),e=>(s(),h(`span`,{key:e.id,class:_([`tag`,e.kind===`mvp`?`tag-mint`:`tag-neutral`]),title:`${e.id} · ${e.criteria}`},c(i(_t)[e.kind])+` `+c(e.id)+` · `+c(i(vt)[e.status]),11,ce))),128))]),d(`h1`,le,c(i(Y).title),1),d(`p`,ue,c(i(Y).narrative),1),d(`div`,de,[d(`div`,fe,[n[1]||=d(`span`,{class:`k`},`点数`,-1),d(`b`,null,c(i(Y).points),1)]),d(`div`,pe,[n[2]||=d(`span`,{class:`k`},`价值`,-1),d(`b`,null,c(i(Y).value),1)]),d(`div`,me,[n[3]||=d(`span`,{class:`k`},`WSJF`,-1),d(`b`,null,c(i(bt)(i(Y))),1)]),d(`div`,he,[n[4]||=d(`span`,{class:`k`},`任务`,-1),d(`b`,null,c(i(V)(i(Y)).done)+`/`+c(i(V)(i(Y)).total),1)]),d(`div`,ge,[n[5]||=d(`span`,{class:`k`},`计划`,-1),d(`b`,b,c(i(Y).schedule?`${i(H)(i(Y).schedule.start)} ~ ${i(H)(i(Y).schedule.end)}`:`未排期`),1)]),d(`div`,x,[n[6]||=d(`span`,{class:`k`},`实际`,-1),d(`b`,S,[i(B)(i(Y))?(s(),h(p,{key:0},[y(c(i(H)(i(B)(i(Y)).start))+` ~ `+c(i(H)(i(B)(i(Y)).end))+` `,1),d(`small`,C,`(`+c(i(yt)(i(B)(i(Y)).start,i(B)(i(Y)).end)+1)+` 天)`,1)],64)):(s(),h(p,{key:1},[y(`—`)],64))])]),d(`div`,w,[n[7]||=d(`span`,{class:`k`},`创建`,-1),d(`b`,T,c(i(Y).created),1)]),i(Y).sprintId?(s(),h(`div`,E,[n[8]||=d(`span`,{class:`k`},`所属迭代`,-1),d(`b`,null,c(i(ut).get(i(Y).sprintId)?.name),1)])):g(``,!0)]),d(`div`,D,[d(`span`,O,`任务完成度 `+c(i(V)(i(Y)).pct)+`%`,1),d(`div`,k,[d(`i`,{style:l({width:i(V)(i(Y)).pct+`%`})},null,4)])])]),d(`div`,A,[i(Y).bug?(s(),h(`article`,j,[d(`div`,M,[d(`h2`,N,[u(r,{name:`i-lucide-bug`,class:`size-3.5`}),n[9]||=y(`缺陷详情`,-1)]),d(`span`,{class:_([`tag`,`tag-${i(G)[i(Y).bug.severity]}`])},c(i(W)[i(Y).bug.severity]),3)]),d(`div`,P,[d(`div`,null,[n[10]||=d(`span`,{class:`lbl`},`影响环境`,-1),d(`p`,null,c(i(Y).bug.environment),1)]),d(`div`,null,[n[11]||=d(`span`,{class:`lbl`},`复现步骤`,-1),d(`p`,F,c(i(Y).bug.steps),1)])])])):g(``,!0),i(Y).blocked||i(Y).dependsOn?.length||i(U)(i(Y).id).length?(s(),h(`article`,I,[d(`div`,L,[d(`h2`,_e,[u(r,{name:`i-lucide-git-branch`,class:`size-3.5`}),n[12]||=y(`依赖与阻塞`,-1)])]),d(`div`,ve,[i(Y).blocked?(s(),h(`div`,ye,[u(r,{name:`i-lucide-octagon-alert`,class:`size-4`}),d(`div`,null,[n[13]||=d(`b`,null,`当前被阻塞`,-1),d(`p`,null,c(i(Y).blocked.reason)+`(自 `+c(i(Y).blocked.since)+` 起)`,1)])])):g(``,!0),i(Y).dependsOn?.length?(s(),h(`div`,be,[n[14]||=d(`span`,{class:`lbl`},`依赖`,-1),(s(!0),h(p,null,a(i(Y).dependsOn,e=>(s(),f(o,{key:e,to:`/story/${e}`,class:`dep`},{default:m(()=>[u(r,{name:`i-lucide-arrow-left`,class:`size-3`}),y(c(e)+` `+c(i(R).get(e)?.title??``),1)]),_:2},1032,[`to`]))),128))])):g(``,!0),i(U)(i(Y).id).length?(s(),h(`div`,xe,[n[15]||=d(`span`,{class:`lbl`},`被依赖`,-1),(s(!0),h(p,null,a(i(U)(i(Y).id),e=>(s(),f(o,{key:e.id,to:`/story/${e.id}`,class:`dep ghost`},{default:m(()=>[y(c(e.id)+` `+c(e.title),1),u(r,{name:`i-lucide-arrow-right`,class:`size-3`})]),_:2},1032,[`to`]))),128))])):g(``,!0)])])):g(``,!0)]),d(`article`,Se,[d(`div`,Ce,[d(`h2`,we,[u(r,{name:`i-lucide-list-checks`,class:`size-3.5`}),n[16]||=y(`验收标准`,-1)]),d(`span`,Te,c(i(Y).acceptance?.length??0)+` 条`,1)]),d(`div`,Ee,[i(Y).acceptance?.length?(s(),h(`ol`,De,[(s(!0),h(p,null,a(i(Y).acceptance,(e,t)=>(s(),h(`li`,{key:t},[d(`div`,Oe,[n[17]||=d(`span`,{class:`tag tag-neutral gw`},`Given`,-1),d(`span`,null,c(e.given),1)]),d(`div`,ke,[n[18]||=d(`span`,{class:`tag tag-info gw`},`When`,-1),d(`span`,null,c(e.when),1)]),d(`div`,Ae,[n[19]||=d(`span`,{class:`tag tag-success gw`},`Then`,-1),d(`span`,null,c(e.then),1)]),e.verifyBy?.length?(s(),h(`div`,je,[n[20]||=d(`span`,{class:`dim`},`由谁验证`,-1),(s(!0),h(p,null,a(e.verifyBy,e=>(s(),h(`span`,{key:e,class:`tag tag-ghost`},c(e),1))),128))])):g(``,!0)]))),128))])):(s(),h(`p`,Me,`还没有验收标准(草稿阶段允许为空,进迭代前必须补)。`))])]),(i(q).get(i(Y).id)??[]).length?(s(),h(`article`,Ne,[d(`div`,Pe,[d(`h2`,Fe,[u(r,{name:`i-lucide-network`,class:`size-3.5`}),n[21]||=y(`架构图例`,-1)]),d(`span`,Ie,c((i(q).get(i(Y).id)??[]).length)+` 张`,1),n[22]||=d(`span`,{class:`dim tip`},`点开在看板里预览`,-1)]),d(`div`,Le,[(s(!0),h(p,null,a(i(q).get(i(Y).id),e=>(s(),f(o,{key:e.id,to:`/diagrams?focus=${e.id}`,class:`dg-link`},{default:m(()=>[u(r,{name:i(Et)[e.kind],class:`size-3.5`,style:l({color:i(Dt)[e.kind]})},null,8,[`name`,`style`]),d(`b`,null,c(e.title),1),d(`span`,Re,c(i(Tt)[e.kind]),1),i(J).has(e.id)?(s(),h(`span`,ze,`可能过期`)):g(``,!0),d(`span`,Be,c(e.id)+` · `+c(i(H)(e.updatedAt)),1)]),_:2},1032,[`to`]))),128))])])):g(``,!0),(s(!0),h(p,null,a(i(Y).tasks,e=>(s(),h(`article`,{key:e.id,class:`card block`},[d(`div`,Ve,[d(`span`,He,c(e.id),1),d(`span`,Ue,c(e.type),1),d(`span`,{class:_([`tag`,`tag-${i(gt)[e.status]}`])},c(i(ht)[e.status]),3),d(`b`,We,c(e.title),1),d(`span`,Ge,c($(e.id).length)+` 条记录`,1)]),e.files?.length?(s(),h(`p`,Ke,c(e.files.join(` · `)),1)):g(``,!0),d(`div`,qe,[$(e.id).length?(s(),h(`div`,Je,[(s(!0),h(p,null,a($(e.id),(e,t)=>(s(),h(`div`,{key:t,class:_([`entry`,e.phase])},[d(`div`,Ye,[d(`span`,{class:_([`tag`,kt[e.phase]])},c(Ot[e.phase]),3),d(`span`,Xe,c(i(H)(e.date)),1),d(`span`,Ze,c(e.result),1)]),d(`p`,Qe,c(e.note),1),e.testCommand?(s(),h(`p`,$e,[u(r,{name:`i-lucide-terminal`,class:`size-3`}),y(c(e.testCommand),1)])):g(``,!0),e.files?.length?(s(),h(`p`,et,c(e.files.join(`, `)),1)):g(``,!0)],2))),128))])):(s(),h(`p`,tt,`还没有实施记录(未开工)。`))])]))),128)),d(`div`,nt,[i(Z)?(s(),f(o,{key:0,to:`/story/${i(Z).id}`,class:`pg`},{default:m(()=>[d(`span`,rt,[u(r,{name:`i-lucide-arrow-left`,class:`size-3.5`}),n[23]||=y(`上一个`,-1)]),d(`span`,it,c(i(Z).id)+` `+c(i(Z).title),1)]),_:1},8,[`to`])):(s(),h(`span`,at)),i(Q)?(s(),f(o,{key:2,to:`/story/${i(Q).id}`,class:`pg right`},{default:m(()=>[d(`span`,ot,[n[24]||=y(`下一个`,-1),u(r,{name:`i-lucide-arrow-right`,class:`size-3.5`})]),d(`span`,st,c(i(Q).id)+` `+c(i(Q).title),1)]),_:1},8,[`to`])):g(``,!0)])],64)):(s(),h(`div`,ct,[u(r,{name:`i-lucide-search-x`,class:`size-4`}),n[25]||=y(`没找到这个故事,可能 id 写错了。 `,-1)]))])}}}),[[`__scopeId`,`data-v-8602d523`]]);export{R as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./P6qlvBHA.js";import{At as t,U as n,f as r,lt as i,q as a,qt as o,u as s}from"./BxuBMtk_.js";import{n as c,t as l}from"./BE6t7Q2m.js";import{t as u}from"./CXG7GZes.js";var d={base:[`text-primary border-b border-transparent hover:border-primary focus-visible:border-transparent font-medium focus-visible:rounded-xs outline-primary/25 focus-visible:outline-3 focus-visible:has-[>code]:outline-0 has-[>code]:border-b-0 [&>code]:border-dashed [&>code]:outline-primary/25 focus-visible:[&>code]:outline-3 hover:[&>code]:border-primary hover:[&>code]:text-primary focus-visible:[&>code]:border-primary focus-visible:[&>code]:text-primary`,`transition-colors [&>code]:transition-colors`]},f={__name:`ProseA`,props:{href:{type:String,required:!1},target:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(f){let p=c(`prose.a`,f),m=e(),h=s(()=>l({extend:d,...m.ui?.prose?.a||{}}));return(e,s)=>(n(),r(u,{href:t(p).href,target:t(p).target,class:o(h.value({class:[t(p).ui?.base,t(p).class]})),raw:``},{default:i(()=>[a(e.$slots,`default`)]),_:3},8,[`href`,`target`,`class`]))}};export{f as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./P6qlvBHA.js";import{At as t,U as n,m as r,q as i,qt as a,u as o}from"./BxuBMtk_.js";import{n as s,t as c}from"./BE6t7Q2m.js";var l={base:`list-disc ps-6 my-5 marker:text-(--ui-border-accented)`},u={__name:`ProseUl`,props:{class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(u){let d=s(`prose.ul`,u),f=e(),p=o(()=>c({extend:l,...f.ui?.prose?.ul||{}}));return(e,o)=>(n(),r(`ul`,{class:a(p.value({class:[t(d).ui?.base,t(d).class]}))},[i(e.$slots,`default`)],2))}};export{u as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{q as e}from"./BxuBMtk_.js";var t=[`p`,`h1`,`h2`,`h3`,`h4`,`h5`,`h6`,`li`];function n(e,t){return e.type===t||typeof e.type==`object`&&e.type.tag===t}function r(e){return n(e,`text`)||n(e,Symbol.for(`v-txt`))}function i(e){return Array.isArray(e.children)||typeof e.children==`string`?e.children:typeof e.children?.default==`function`?e.children.default():[]}function a(e){if(!e)return``;if(Array.isArray(e))return e.map(a).join(``);if(r(e))return e.children||``;let t=i(e);return Array.isArray(t)?t.map(a).filter(Boolean).join(``):``}function o(e,r=[]){if(Array.isArray(e))return e.flatMap(e=>o(e,r));let a=e;return r.some(t=>t===`*`||n(e,t))&&(a=i(e)||e,!Array.isArray(a)&&t.some(t=>n(e,t))&&(a=[a])),a}function s(e,t=[]){return e=Array.isArray(e)?e:[e],t.length?e.flatMap(e=>s(o(e,[t[0]]),t.slice(1))).filter(e=>!(r(e)&&a(e).trim()===``)):e}function c(e,t=[]){return typeof t==`string`&&(t=t.split(/[,\s]/).map(e=>e.trim()).filter(Boolean)),t.length?s(e,t).reduce((e,t)=>(r(t)?typeof e[e.length-1]==`string`?e[e.length-1]+=t.children:e.push(t.children):e.push(t),e),[]):e}var l=(t,n,r,...i)=>t[n]?e({...t,[n]:()=>c(t[n](),r?.unwrap||r?.mdcUnwrap||r?.comarkUnwrap)},n,r,...i):e(t,n,r,...i);export{l as t};
|