scrum-skills 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -101,7 +101,7 @@ npx scrum-skills serve # → http://localhost:4173
101
101
  | 页面 | 内容 |
102
102
  |---|---|
103
103
  | `/` 看板 | 六列(草稿/就绪/进行中/评审/完成/已取消),按史诗/里程碑筛选,按优先级或 WSJF 重排;卡片带类型、阻塞、范围变更标记 |
104
- | `/last-change` 最后更新 | 渲染 `agile/last-change.json`:故事/任务变更清单、额外做的事、验证结果、调试入口与账号、测试前准备、逐条测试场景、说明与遗留;点「查看历史」按 git 提交翻看任一版本(只读,顶部页签可在最新/历史间切换);没有该文件时给空状态 |
104
+ | `/last-change` 最后更新 | 渲染 `agile/last-change.json`:故事/任务变更清单、额外做的事、验证结果、调试入口与账号、测试前准备、逐条测试场景、说明与遗留;变更清单抬头可「复制变更信息」(生成 Conventional Commits 提交信息)或「自动提交」(看清信息与文件清单后 `git add -A` + `git commit`,只提交到本地、不 push);点「查看历史」按 git 提交翻看任一版本(只读,顶部页签可在最新/历史间切换);没有该文件时给空状态 |
105
105
  | `/epics` 史诗与目标 | 每个史诗的关键结果(KR)进度、故事完成度、阻塞与缺陷统计 |
106
106
  | `/gantt` 甘特图 | 迭代分带,浅色条=计划、实心条=journal 推出的实际执行区间,菱形=里程碑,依赖与阻塞清单 |
107
107
  | `/milestones` 里程碑 / MVP | 按 kind 分组,显示达成口径、挂的故事、剩余天数 |
@@ -186,7 +186,7 @@ AGILE_DIR=/别的项目 pnpm dev # 看别的项目的数据
186
186
 
187
187
  pnpm build # 构建看板静态产物 → assets/board
188
188
  pnpm validate # 只校验数据
189
- pnpm test # 回归测试(校验器 / 看板皮肤与配色 / 布局回归 / 卡片操作 / 项目目录 / 最后更新页与历史版本 / 交付说明写入策略 / AI 服务与面板,159 个用例)
189
+ pnpm test # 回归测试(校验器 / 看板皮肤与配色 / 布局回归 / 卡片操作 / 项目目录 / 最后更新页与历史版本 / 交付说明写入策略 / 提交信息与自动提交 / AI 服务与面板,179 个用例)
190
190
  pnpm serve # 起看板(读目标目录的 agile/,同时提供 /api/ai)
191
191
  ```
192
192
 
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/CkF353aX.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CkF353aX.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/CkF353aX.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"d7f0931f-32b3-4c23-b05f-7cbf5851b226",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793369477277,false]</script></body></html>
1
+ <!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/pIF8vEtK.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/pIF8vEtK.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/pIF8vEtK.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"4a212bd2-438f-4b26-b8f3-57db47ca0799",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793371120777,false]</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/CkF353aX.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CkF353aX.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/CkF353aX.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"d7f0931f-32b3-4c23-b05f-7cbf5851b226",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793369477277,false]</script></body></html>
1
+ <!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/pIF8vEtK.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/pIF8vEtK.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/pIF8vEtK.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"4a212bd2-438f-4b26-b8f3-57db47ca0799",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793371120777,false]</script></body></html>
@@ -0,0 +1,3 @@
1
+ import{D as e,E as t,Ht as n,On as r,T as i,Zn as a,_ as o,b as s,bt as c,ct as l,er as ee,g as u,it as d,k as te,mt as f,o as p,qt as ne,tr as m,tt as re,u as ie,v as h,vn as g,y as _}from"./DZo3dYLJ.js";import{w as v}from"./51OWHj8c.js";import{t as ae}from"./CJ2mz0WY.js";import{t as oe}from"./rlePnzpc.js";import{O as y,i as se,s as ce}from"#entry";var le={added:`新增`,updated:`状态变更`,removed:`移除`},ue=`更新交付记录`,b=`变更`,x=e=>typeof e==`string`?e.replace(/\s+/g,` `).trim():``;function de(e){let t=Array.isArray(e?.changes)?e.changes:[],n=x(e?.title)||ue,r=t.some(e=>e?.action===`added`)?`feat`:`chore`,i=[];for(let e of t){let t=x(e?.id);if(!t)continue;let n=x(e.title)||x(e.note),r=le[e.action]||x(e.action)||b;e.action===`updated`&&(x(e.from)||x(e.to))&&(r+=` ${x(e.from)||`—`} → ${x(e.to)||`—`}`),i.push(`- ${t}${n?` ${n}`:``}(${r})`)}return i.length?`${r}: ${n}\n\n${i.join(`
2
+ `)}`:`${r}: ${n}`}var fe={class:`rule-top`},pe={class:`rule-ic`},me={class:`rule-state`},he={class:`mono`},ge={key:0},_e={class:`rule-cases`},ve={class:`case-when`},ye={class:`case-then`},be={key:1,class:`lc-hist-bar`},xe={class:`hist-badge`},Se={class:`hist-readonly mono`},Ce=[`title`,`disabled`,`onClick`],we={key:2,class:`card lc-empty`},Te={class:`em-ic`},Ee={key:3,class:`lc`},De={class:`lc-hero`},Oe={class:`hero-body`},ke={class:`hero-kicker`},Ae={class:`k-date mono`},je={key:0,class:`k-time mono`},Me={key:1,class:`k-today`},Ne=[`title`],Pe={class:`hero-title`},Fe={key:0,class:`hero-sum`},Ie={class:`hero-meta`},Le={class:`hero-aside`},Re={class:`ring-in`},ze={class:`lc-nav`,"aria-label":`分区导航`},Be=[`href`,`onClick`],Ve={class:`lc-nav-lb`},He={class:`lc-nav-ct`},Ue={id:`lc-changes`,class:`card sec`},We={class:`s-hd`},Ge={class:`s-ic`},Ke={class:`s-count`},qe={key:0,class:`sec-empty dim`},Je={key:1,class:`tbl-wrap`},Ye={class:`tbl lc-tbl`},Xe={class:`ent`},Ze={class:`ent-top`},Qe={key:0,class:`ent-title`},$e={key:0,class:`flow mono`},et={class:`fl`},tt={class:`fl`},nt={class:`cell-note`},rt={class:`chips`},it=[`title`],at={key:0,class:`dim`},ot={class:`two`},st={id:`lc-extras`,class:`card sec`},ct={class:`s-hd`},lt={class:`s-ic`},ut={class:`s-count`},dt={class:`sec-bd lc-extras`},ft={key:0,class:`dim`},pt={class:`x-body`},mt={class:`x-title`},ht={key:0,class:`x-detail`},gt={key:1,class:`chips x-files`},_t=[`title`],vt={id:`lc-checks`,class:`card sec`},yt={class:`s-hd`},bt={class:`s-ic tone-mint`},xt={class:`s-count`},St={class:`sec-bd lc-checks`},Ct={key:0,class:`dim`},wt={class:`v-body`},Tt={class:`v-what`},Et={key:0,class:`v-detail`},Dt={key:0,id:`lc-access`,class:`card sec lc-access`},Ot={class:`s-hd`},kt={class:`s-ic tone-sky`},At={class:`s-count`},jt={class:`sec-bd acc-grid`},Mt={key:0,class:`acc-col`},Nt={class:`u-head`},Pt=[`href`],Ft={class:`u-label`},It=[`onClick`],Lt={class:`u-url mono`},Rt={key:0,class:`u-note`},zt={key:1,class:`acc-col`},Bt={class:`a-head`},Vt={key:0,class:`a-role`},Ht={class:`a-user mono`},Ut=[`onClick`],Wt={class:`a-line`},Gt={key:0,class:`a-pass mono`},Kt={key:1,class:`a-none dim`},qt={key:0,class:`a-note`},Jt={key:1,id:`lc-prep`,class:`card sec lc-prep`},Yt={class:`s-hd`},Xt={class:`s-ic tone-amber`},Zt={class:`s-count`},Qt={class:`steps`},$t={class:`step-bd`},en={class:`step-text`},tn={key:0,class:`cmd-row`},nn={class:`cmd mono`},rn=[`onClick`],an={key:1,class:`step-note`},on={id:`lc-scenarios`,class:`lc-sc-sec`},sn={class:`s-hd solo`},cn={class:`s-ic tone-mint`},ln={class:`s-count`},un={key:0,class:`dim sec-empty`},dn={key:1,class:`lc-sc-grid`},fn={class:`sc-hd`},pn={class:`sc-id mono`},mn={class:`sc-title`},hn={key:0,class:`sc-body`},gn={class:`lc-sc-steps`},_n={class:`sc-acc`},vn={class:`sc-acc-h`},yn={class:`sc-acc-t`},bn={key:0,class:`sc-foot`},xn={key:0},Sn={key:1,class:`sc-ids`},Cn={class:`two`},wn={id:`lc-notes`,class:`card sec`},Tn={class:`s-hd`},En={class:`s-ic`},Dn={class:`s-count`},On={class:`sec-bd`},kn={key:0,class:`dim`},An={key:1,class:`lc-notes`},jn={key:0,id:`lc-open`,class:`card sec sec-warn`},Mn={class:`s-hd`},Nn={class:`s-ic`},Pn={class:`s-count`},Fn={class:`sec-bd`},In={class:`lc-notes warn`},Ln={class:`lc-hist`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`lc-hist-title`},Rn={class:`lc-hist-hd`},zn={class:`lc-hist-hd-txt`},Bn={class:`lc-hist-sub`},Vn={key:0,class:`lc-hist-err`},Hn={key:1,class:`lc-hist-hint dim`},Un={key:2,class:`lc-hist-list`},Wn=[`disabled`,`onClick`],Gn={class:`hist-item-main`},Kn={class:`mono`},qn={class:`mono hist-item-hash`},Jn={key:0,class:`lc-hist-hint dim`},Yn={class:`lc-hist-ft`},Xn={class:`lc-hist lc-commit`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`lc-commit-title`},Zn={class:`lc-hist-hd`},Qn=[`disabled`],$n={key:0,class:`cm-done`},er={class:`cm-done-ic`},tr={class:`cm-done-bd`},nr={class:`cm-done-t`},rr={class:`mono`},ir={class:`cm-done-s`},ar={class:`cm-done-n`},or={key:1,class:`cm-body`},sr={class:`cm-msg mono`},cr={class:`micro`},lr={key:0,class:`cm-hint dim`},ur={key:1,class:`cm-hint warn`},dr={key:2,class:`cm-hint warn`},fr={key:3,class:`cm-hint dim`},pr={key:4,class:`cm-files`},mr=[`title`],hr={key:2,class:`lc-hist-err`},gr={class:`lc-hist-ft`},_r={class:`dim`},vr={class:`cm-acts`},yr=[`disabled`],br=[`disabled`],S=se(te({__name:`last-change`,setup(te){let{lastChange:se,lastChangeGit:le,refresh:ue}=ce(),b=g(null),x=u(()=>b.value?.doc?.lastChange??se.value),S=u(()=>le.value),C=g([]),w=g(!1),T=g(!1),E=g(``),D=g(!1),xr=u(()=>b.value?[b.value]:[]);async function Sr(){if(!T.value){T.value=!0,E.value=``;try{let e=await y(`/api/agile/last-change/history`);C.value=e.entries??[]}catch(e){E.value=e?.data?.error||e?.message||`读不到 git 历史`}finally{T.value=!1}}}async function O(){w.value=!0,C.value.length||await Sr()}async function k(e){if(!D.value){D.value=!0,E.value=``;try{b.value=await y(`/api/agile/last-change/revision`,{query:{hash:e.hash}}),w.value=!1,window.scrollTo({top:0,behavior:`smooth`})}catch(e){E.value=e?.data?.error||e?.message||`取不到这个版本`}finally{D.value=!1}}}function Cr(){b.value=null,window.scrollTo({top:0,behavior:`smooth`})}let A=g(null);n(b,async()=>{await re(),A.value?.querySelector(`.hist-tab.on`)?.scrollIntoView({inline:`nearest`,block:`nearest`})});function j(e){e.key===`Escape`&&(J.value?$():w.value&&=!1)}l(()=>window.addEventListener(`keydown`,j)),d(()=>window.removeEventListener(`keydown`,j));let wr={committed:{text:`已提交`,tone:`ok`},dirty:{text:`未提交改动`,tone:`warn`},untracked:{text:`未纳入版本库`,tone:`warn`},"no-git":{text:`非 git 仓库`,tone:`neutral`},missing:{text:`尚未生成`,tone:`neutral`}},M=u(()=>wr[S.value?.state??`missing`]??wr.missing),Tr=[{key:`committed`,when:`已提交`,then:`下次写入整份覆盖;上一版留在 git 历史里,点「查看历史」随时翻回来`},{key:`pending`,when:`未提交`,then:`下次写入合并:新交付接在旧记录后面,不冲掉还没入库的内容`}],Er=u(()=>{let e=S.value?.state;return e===`committed`?`committed`:e===`dirty`||e===`untracked`||e===`no-git`?`pending`:``}),Dr=u(()=>(x.value?.mergedFrom?.length??0)+1),Or=u(()=>(x.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=u(()=>x.value?.changes??[]),P=u(()=>de(x.value??{})),F=u(()=>x.value?.extras??[]),I=u(()=>x.value?.verification??[]),L=u(()=>x.value?.scenarios??[]),R=u(()=>x.value?.preparation??[]),z=u(()=>x.value?.notes??[]),B=u(()=>x.value?.open??[]),V=u(()=>x.value?.access?.urls??[]),H=u(()=>x.value?.access?.accounts??[]),U=u(()=>I.value.filter(e=>e.result===`pass`).length),Nr=u(()=>I.value.length>0&&U.value===I.value.length),Pr=u(()=>I.value.length?Math.round(U.value/I.value.length*100):0),Fr=u(()=>[...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=u(()=>[{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=u(()=>(x.value?.at??``).slice(0,10)),Br=u(()=>{let e=(x.value?.at??``).slice(10).replace(/^[T ]/,``);return/^\d{2}:\d{2}/.test(e)?e:``}),Vr=u(()=>!!G.value&&G.value===zr),K=g(``);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=g(!1),Y=g(!1),X=g(``),Z=g(null),Q=g(null),Hr=u(()=>!!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 y(`/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 y(`/api/projects`);Q.value=await y(`/api/agile/git/commit`,{method:`POST`,headers:{"x-project-token":e},body:{message:P.value}}),await ue()}catch(e){X.value=e?.data?.error||e?.message||`提交失败`}finally{Y.value=!1}}}return(n,l)=>{let u=oe,d=ae;return f(),s(p,null,[r(b)?(f(),s(`div`,be,[o(`span`,xe,[e(u,{name:`i-lucide-history`,class:`hist-badge-ic`}),l[8]||=t(`历史版本`,-1)]),o(`span`,Se,[t(`只读 · `+m(r(b).short),1),r(b).date?(f(),s(p,{key:0},[t(` · `+m(r(b).date),1)],64)):_(``,!0)]),o(`div`,{ref_key:`tabsRef`,ref:A,class:`lc-hist-tabs`},[o(`button`,{class:`hist-tab`,onClick:Cr},`最新`),(f(!0),s(p,null,c(r(xr),e=>(f(),s(`button`,{key:e.hash,class:a([`hist-tab`,{on:r(b)?.hash===e.hash}]),title:`${e.date} ${e.subject??``}`,disabled:r(D),onClick:t=>k(e)},[t(m(e.short),1),o(`i`,null,m(e.date.slice(5,16)),1)],10,Ce))),128))],512),o(`button`,{class:`rule-btn`,onClick:O},[e(u,{name:`i-lucide-list`,class:`rule-btn-ic`}),l[9]||=t(`选择历史…`,-1)])])):(f(),s(`div`,{key:0,class:a([`lc-rule`,`is-${r(M).tone}`])},[o(`div`,fe,[o(`span`,pe,[e(u,{name:`i-lucide-git-branch`,class:`rule-svg`})]),l[6]||=o(`b`,{class:`rule-title`},`写入规则`,-1),l[7]||=o(`span`,{class:`rule-file mono`},`agile/last-change.json`,-1),o(`span`,me,[o(`i`,{class:a([`rule-dot`,`tone-${r(M).tone}`])},null,2),t(` 当前 `+m(r(M).text),1),r(S)?.state===`committed`&&r(S).hash?(f(),s(p,{key:0},[l[4]||=t(` · `,-1),o(`span`,he,m(r(S).hash),1)],64)):_(``,!0)]),o(`button`,{class:`rule-btn`,onClick:O},[e(u,{name:`i-lucide-history`,class:`rule-btn-ic`}),l[5]||=t(`查看历史 `,-1),r(C).length?(f(),s(`i`,ge,m(r(C).length),1)):_(``,!0)])]),o(`ul`,_e,[(f(),s(p,null,c(Tr,t=>o(`li`,{key:t.key,class:a([`rule-case`,{on:r(Er)===t.key}])},[o(`span`,ve,m(t.when),1),e(u,{name:`i-lucide-arrow-right`,class:`case-arrow`}),o(`span`,ye,m(t.then),1)],2)),64))])],2)),r(x)?(f(),s(`div`,Ee,[o(`header`,De,[o(`div`,Oe,[o(`p`,ke,[l[11]||=o(`span`,{class:`k-dot`},null,-1),l[12]||=t(`最近一次交付 `,-1),l[13]||=o(`span`,{class:`k-sep`},null,-1),o(`span`,Ae,m(r(G)),1),r(Br)?(f(),s(`span`,je,m(r(Br)),1)):_(``,!0),r(Vr)?(f(),s(`span`,Me,`今天`)):_(``,!0),r(x).merged?(f(),s(`span`,{key:2,class:`k-merged`,title:r(Or)},`合并记录 · `+m(r(Dr))+` 次交付`,9,Ne)):_(``,!0)]),o(`h2`,Pe,m(r(x).title),1),r(x).summary?(f(),s(`p`,Fe,m(r(x).summary),1)):_(``,!0),o(`div`,Ie,[o(`span`,null,[o(`b`,null,m(r(N).length),1),l[14]||=t(` 处变更`,-1)]),l[19]||=o(`i`,{class:`meta-sep`},null,-1),o(`span`,null,[o(`b`,null,m(r(Fr).length),1),l[15]||=t(` 个文件`,-1)]),l[20]||=o(`i`,{class:`meta-sep`},null,-1),o(`span`,null,[o(`b`,null,m(r(L).length),1),l[16]||=t(` 条测试场景`,-1)]),r(F).length?(f(),s(p,{key:0},[l[18]||=o(`i`,{class:`meta-sep`},null,-1),o(`span`,null,[o(`b`,null,m(r(F).length),1),l[17]||=t(` 项额外工作`,-1)])],64)):_(``,!0)])]),o(`div`,Le,[o(`div`,{class:a([`ring`,{warn:r(I).length&&!r(Nr)}]),style:ee({"--pct":r(Pr)})},[o(`div`,Re,[o(`b`,null,[t(m(r(U)),1),o(`small`,null,`/`+m(r(I).length||0),1)]),o(`span`,null,m(r(I).length?r(Nr)?`验证全通过`:`有未通过项`:`无验证记录`),1)])],6)])]),o(`nav`,ze,[(f(!0),s(p,null,c(r(Lr),t=>(f(),s(`a`,{key:t.id,class:a([`lc-nav-link`,`tone-${t.tone}`]),href:`#${t.id}`,onClick:v(e=>Rr(t.id),[`prevent`])},[e(u,{name:t.icon,class:`lc-nav-ic`},null,8,[`name`]),o(`span`,Ve,m(t.label),1),o(`b`,He,m(t.count),1)],10,Be))),128))]),o(`section`,Ue,[o(`div`,We,[o(`span`,Ge,[e(u,{name:`i-lucide-git-commit-horizontal`,class:`s-svg`})]),l[22]||=o(`h2`,{class:`s-title`},`变更清单`,-1),o(`span`,Ke,m(r(N).length),1),l[23]||=o(`span`,{class:`s-hint`},`故事与任务各自是新增还是状态变更、动过哪些文件`,-1),r(N).length?(f(),s(`button`,{key:0,class:a([`rule-btn s-copy`,{ok:r(K)===`commit`}]),title:`按 Conventional Commits 生成:首行是标题,正文每条变更带编号与名称`,onClick:l[0]||=e=>q(r(P),`commit`)},[e(u,{name:r(K)===`commit`?`i-lucide-check`:`i-lucide-clipboard-copy`,class:`rule-btn-ic`},null,8,[`name`]),t(` `+m(r(K)===`commit`?`已复制`:`复制变更信息`),1)],2)):_(``,!0),!r(b)&&r(N).length?(f(),s(`button`,{key:1,class:`rule-btn s-commit`,title:`把这次交付整份提交进本地仓库:git add -A + git commit,不 push`,onClick:Ur},[e(u,{name:`i-lucide-git-commit-vertical`,class:`rule-btn-ic`}),l[21]||=t(`自动提交 `,-1)])):_(``,!0)]),r(N).length?(f(),s(`div`,Je,[o(`table`,Ye,[l[25]||=o(`colgroup`,null,[o(`col`,{class:`c-ent`}),o(`col`,{class:`c-act`}),o(`col`),o(`col`,{class:`c-file`})],-1),l[26]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`条目`),o(`th`,null,`变更`),o(`th`,null,`变更内容`),o(`th`,null,`涉及文件`)])],-1),o(`tbody`,null,[(f(!0),s(p,null,c(r(N),(n,r)=>(f(),s(`tr`,{key:`${n.kind}-${n.id}-${r}`},[o(`td`,null,[o(`div`,Xe,[o(`div`,Ze,[o(`span`,{class:a([`kind`,`kind-${n.kind}`])},m(Ar[n.kind]??n.kind),3),e(d,{to:`/story/${Ir(n)}`,class:`ent-id mono`},{default:ne(()=>[t(m(n.id),1)]),_:2},1032,[`to`])]),n.title?(f(),s(`p`,Qe,m(n.title),1)):_(``,!0)])]),o(`td`,null,[o(`span`,{class:a([`act`,`act-${n.action}`])},m(kr[n.action]??n.action),3),n.from||n.to?(f(),s(`p`,$e,[o(`span`,et,m(n.from??`—`),1),l[24]||=o(`i`,null,`→`,-1),o(`span`,tt,m(n.to??`—`),1)])):_(``,!0)]),o(`td`,nt,m(n.note??`—`),1),o(`td`,null,[o(`div`,rt,[(f(!0),s(p,null,c(n.files,e=>(f(),s(`span`,{key:e,class:`fchip mono`,title:e},m(e),9,it))),128)),n.files?.length?_(``,!0):(f(),s(`span`,at,`—`))])])]))),128))])])])):(f(),s(`p`,qe,`这次没有涉及任何故事或任务。`))]),o(`div`,ot,[o(`section`,st,[o(`div`,ct,[o(`span`,lt,[e(u,{name:`i-lucide-sparkles`,class:`s-svg`})]),l[27]||=o(`h2`,{class:`s-title`},`额外做的事`,-1),o(`span`,ut,m(r(F).length),1)]),o(`div`,dt,[r(F).length?_(``,!0):(f(),s(`p`,ft,`没有计划外的改动。`)),(f(!0),s(p,null,c(r(F),(e,t)=>(f(),s(`article`,{key:t,class:`x-item`},[l[28]||=o(`span`,{class:`x-mark`},null,-1),o(`div`,pt,[o(`p`,mt,m(e.title),1),e.detail?(f(),s(`p`,ht,m(e.detail),1)):_(``,!0),e.files?.length?(f(),s(`div`,gt,[(f(!0),s(p,null,c(e.files,e=>(f(),s(`span`,{key:e,class:`fchip mono`,title:e},m(e),9,_t))),128))])):_(``,!0)])]))),128))])]),o(`section`,vt,[o(`div`,yt,[o(`span`,bt,[e(u,{name:`i-lucide-badge-check`,class:`s-svg`})]),l[29]||=o(`h2`,{class:`s-title`},`验证结果`,-1),o(`span`,xt,m(r(U))+`/`+m(r(I).length),1)]),o(`div`,St,[r(I).length?_(``,!0):(f(),s(`p`,Ct,`这次没有留下验证记录。`)),(f(!0),s(p,null,c(r(I),(t,n)=>(f(),s(`div`,{key:n,class:`v-item`},[o(`span`,{class:a([`v-ic`,`v-${t.result}`])},[e(u,{name:Mr[t.result]??`i-lucide-circle`,class:`v-svg`},null,8,[`name`])],2),o(`div`,wt,[o(`p`,Tt,m(t.what),1),t.detail?(f(),s(`p`,Et,m(t.detail),1)):_(``,!0)]),o(`span`,{class:a([`v-res`,`v-${t.result}`])},m(jr[t.result]??t.result),3)]))),128))])])]),r(V).length||r(H).length?(f(),s(`section`,Dt,[o(`div`,Ot,[o(`span`,kt,[e(u,{name:`i-lucide-key-round`,class:`s-svg`})]),l[30]||=o(`h2`,{class:`s-title`},`调试入口与账号`,-1),o(`span`,At,m(r(V).length+r(H).length),1),l[31]||=o(`span`,{class:`s-hint`},`照着这一栏就能自己跑起来点一遍`,-1)]),o(`div`,jt,[r(V).length?(f(),s(`div`,Mt,[l[32]||=o(`p`,{class:`micro`},`访问地址`,-1),(f(!0),s(p,null,c(r(V),(n,i)=>(f(),s(`div`,{key:i,class:`u-item`},[o(`div`,Nt,[o(`a`,{href:n.url,target:`_blank`,rel:`noreferrer`,class:`u-link`},[o(`span`,Ft,m(n.label??`入口`),1),e(u,{name:`i-lucide-arrow-up-right`,class:`u-go`})],8,Pt),o(`button`,{class:a([`cpy`,{ok:r(K)===`url-${i}`}]),onClick:e=>q(n.url,`url-${i}`)},[e(u,{name:r(K)===`url-${i}`?`i-lucide-check`:`i-lucide-copy`,class:`cpy-ic`},null,8,[`name`]),t(` `+m(r(K)===`url-${i}`?`已复制`:`复制`),1)],10,It)]),o(`p`,Lt,m(n.url),1),n.note?(f(),s(`p`,Rt,m(n.note),1)):_(``,!0)]))),128))])):_(``,!0),r(H).length?(f(),s(`div`,zt,[l[34]||=o(`p`,{class:`micro`},`账号密码`,-1),(f(!0),s(p,null,c(r(H),(n,i)=>(f(),s(`div`,{key:i,class:`a-item`},[o(`div`,Bt,[n.role?(f(),s(`span`,Vt,m(n.role),1)):_(``,!0),o(`span`,Ht,m(n.username),1),o(`button`,{class:a([`cpy`,{ok:r(K)===`acc-${i}`}]),onClick:e=>q(n.password?`账号:${n.username}\n密码:${n.password}`:n.username,`acc-${i}`)},[e(u,{name:r(K)===`acc-${i}`?`i-lucide-check`:`i-lucide-copy`,class:`cpy-ic`},null,8,[`name`]),t(` `+m(r(K)===`acc-${i}`?`已复制`:`复制`),1)],10,Ut)]),o(`div`,Wt,[l[33]||=o(`span`,{class:`a-key`},`密码`,-1),n.password?(f(),s(`span`,Gt,m(n.password),1)):(f(),s(`span`,Kt,`无密码 / 走单点登录`))]),n.note?(f(),s(`p`,qt,m(n.note),1)):_(``,!0)]))),128))])):_(``,!0)])])):_(``,!0),r(R).length?(f(),s(`section`,Jt,[o(`div`,Yt,[o(`span`,Xt,[e(u,{name:`i-lucide-terminal-square`,class:`s-svg`})]),l[35]||=o(`h2`,{class:`s-title`},`测试前准备`,-1),o(`span`,Zt,m(r(R).length),1),l[36]||=o(`span`,{class:`s-hint`},`按顺序做完这些再开始点,命令可直接复制`,-1)]),o(`ol`,Qt,[(f(!0),s(p,null,c(r(R),(n,i)=>(f(),s(`li`,{key:i},[o(`div`,$t,[o(`p`,en,m(n.step),1),n.command?(f(),s(`div`,tn,[o(`code`,nn,m(n.command),1),o(`button`,{class:a([`cpy`,{ok:r(K)===`cmd-${i}`}]),onClick:e=>q(n.command??``,`cmd-${i}`)},[e(u,{name:r(K)===`cmd-${i}`?`i-lucide-check`:`i-lucide-copy`,class:`cpy-ic`},null,8,[`name`]),t(` `+m(r(K)===`cmd-${i}`?`已复制`:`复制`),1)],10,rn)])):_(``,!0),n.note?(f(),s(`p`,an,m(n.note),1)):_(``,!0)])]))),128))])])):_(``,!0),o(`section`,on,[o(`div`,sn,[o(`span`,cn,[e(u,{name:`i-lucide-flask-conical`,class:`s-svg`})]),l[37]||=o(`h2`,{class:`s-title`},`测试场景`,-1),o(`span`,ln,m(r(L).length),1),l[38]||=o(`span`,{class:`s-hint`},`一条一段:照着步骤走,末尾那句就是验收标准`,-1)]),r(L).length?(f(),s(`div`,dn,[(f(!0),s(p,null,c(r(L),(n,r)=>(f(),s(`article`,{key:n.id??r,class:`sc lc-sc`},[o(`header`,fn,[o(`span`,pn,m(n.id??`TC-${r+1}`),1),o(`h3`,mn,m(n.title),1)]),n.steps?.length?(f(),s(`div`,hn,[l[39]||=o(`p`,{class:`micro`},`测试步骤`,-1),o(`ol`,gn,[(f(!0),s(p,null,c(n.steps,(e,t)=>(f(),s(`li`,{key:t},m(e),1))),128))])])):_(``,!0),o(`div`,_n,[o(`p`,vn,[e(u,{name:`i-lucide-badge-check`,class:`sc-acc-ic`}),l[40]||=t(`验收标准`,-1)]),o(`p`,yn,m(n.expect),1),n.acceptance||n.storyIds?.length?(f(),s(`div`,bn,[n.acceptance?(f(),s(`span`,xn,`对应验收:`+m(n.acceptance),1)):_(``,!0),n.storyIds?.length?(f(),s(`span`,Sn,[(f(!0),s(p,null,c(n.storyIds,e=>(f(),h(d,{key:e,to:`/story/${e}`,class:`ent-id mono`},{default:ne(()=>[t(m(e),1)]),_:2},1032,[`to`]))),128))])):_(``,!0)])):_(``,!0)])]))),128))])):(f(),s(`p`,un,`这次没有单独列测试场景。`))]),o(`div`,Cn,[o(`section`,wn,[o(`div`,Tn,[o(`span`,En,[e(u,{name:`i-lucide-message-square-more`,class:`s-svg`})]),l[41]||=o(`h2`,{class:`s-title`},`说明`,-1),o(`span`,Dn,m(r(z).length),1)]),o(`div`,On,[r(z).length?(f(),s(`ul`,An,[(f(!0),s(p,null,c(r(z),(e,t)=>(f(),s(`li`,{key:t},m(e),1))),128))])):(f(),s(`p`,kn,`没有额外说明。`))])]),r(B).length?(f(),s(`section`,jn,[o(`div`,Mn,[o(`span`,Nn,[e(u,{name:`i-lucide-list-todo`,class:`s-svg`})]),l[42]||=o(`h2`,{class:`s-title`},`还没做的`,-1),o(`span`,Pn,m(r(B).length),1)]),o(`div`,Fn,[o(`ul`,In,[(f(!0),s(p,null,c(r(B),(e,t)=>(f(),s(`li`,{key:t},m(e),1))),128))])])])):_(``,!0)])])):(f(),s(`div`,we,[o(`span`,Te,[e(u,{name:`i-lucide-clipboard-list`,class:`em-svg`})]),l[10]||=i(`<h2 class="em-title" data-v-0c6b2b03>还没有交付记录</h2><p class="em-sub" data-v-0c6b2b03> 每完成一项功能,AI 都要把「改了哪些故事与任务、额外做了什么、验了什么、怎么测」 写进下面这个文件,这一页就会自动排出来。 </p><p class="em-path mono" data-v-0c6b2b03>agile/last-change.json</p><p class="em-note" data-v-0c6b2b03> 每次只保留最近一次(覆盖写,不追加)· 格式见 <span class="mono" data-v-0c6b2b03>.agents/skills/scrum-planning/references/schema.md</span> 第 4 节 </p>`,4)])),(f(),h(ie,{to:`body`},[r(w)?(f(),s(`div`,{key:0,class:`lc-hist-mask`,onClick:l[3]||=v(e=>w.value=!1,[`self`])},[o(`div`,Ln,[o(`header`,Rn,[o(`div`,zn,[l[46]||=o(`h3`,{id:`lc-hist-title`,class:`lc-hist-title`},`历史版本`,-1),o(`p`,Bn,[l[43]||=t(` 从 git 里读 `,-1),l[44]||=o(`span`,{class:`mono`},`agile/last-change.json`,-1),l[45]||=t(` 的提交记录 `,-1),r(C).length?(f(),s(p,{key:0},[t(`· 共 `+m(r(C).length)+` 版`,1)],64)):_(``,!0)])]),o(`button`,{class:`lc-hist-x`,"aria-label":`关闭`,onClick:l[1]||=e=>w.value=!1},[e(u,{name:`i-lucide-x`,class:`lc-hist-x-ic`})])]),r(E)?(f(),s(`p`,Vn,m(r(E)),1)):r(T)?(f(),s(`div`,Hn,`正在读 git 历史…`)):(f(),s(`div`,Un,[(f(!0),s(p,null,c(r(C),(e,t)=>(f(),s(`button`,{key:e.hash,class:a([`hist-item`,{on:r(b)?.hash===e.hash}]),disabled:r(D),onClick:t=>k(e)},[o(`span`,{class:a([`hist-item-dot`,{live:t===0}])},null,2),o(`span`,Gn,[o(`b`,null,m(e.subject||`(没有提交说明)`),1),o(`i`,Kn,m(e.date),1)]),o(`span`,qn,m(e.short),1)],10,Wn))),128)),r(C).length?_(``,!0):(f(),s(`p`,Jn,` 这个文件还没有提交记录 —— 先 commit 一次,历史里才会出现版本。 `))])),o(`footer`,Yn,[l[47]||=o(`span`,{class:`dim`},`选一个版本即可在页面上只读查看,不会改动文件。`,-1),o(`button`,{class:`hist-close`,onClick:l[2]||=e=>w.value=!1},`关闭`)])])])):_(``,!0)])),(f(),h(ie,{to:`body`},[r(J)?(f(),s(`div`,{key:0,class:`lc-hist-mask`,onClick:v($,[`self`])},[o(`div`,Xn,[o(`header`,Zn,[l[48]||=o(`div`,{class:`lc-hist-hd-txt`},[o(`h3`,{id:`lc-commit-title`,class:`lc-hist-title`},`提交这次交付`),o(`p`,{class:`lc-hist-sub`},[t(` 将执行 `),o(`span`,{class:`mono`},`git add -A`),t(` + `),o(`span`,{class:`mono`},`git commit`),t(`,只提交到本地,不 push `)])],-1),o(`button`,{class:`lc-hist-x`,"aria-label":`关闭`,disabled:r(Y),onClick:$},[e(u,{name:`i-lucide-x`,class:`lc-hist-x-ic`})],8,Qn)]),r(Q)?(f(),s(`div`,$n,[o(`span`,er,[e(u,{name:`i-lucide-check`,class:`cm-done-svg`})]),o(`div`,tr,[o(`p`,nr,[l[49]||=t(`已提交 `,-1),o(`span`,rr,m(r(Q).hash),1)]),o(`p`,ir,m(r(Q).subject),1),o(`p`,ar,m(r(Q).files)+` 个文件 · 分支 `+m(r(Q).branch??`分离头指针`),1)])])):(f(),s(`div`,or,[l[51]||=o(`p`,{class:`micro`},`提交信息`,-1),o(`pre`,sr,m(r(P)),1),o(`p`,cr,[l[50]||=t(` 将提交的文件`,-1),r(Z)?(f(),s(p,{key:0},[t(` · `+m(r(Z).files.length),1)],64)):_(``,!0)]),!r(Z)&&!r(X)?(f(),s(`p`,lr,`正在读 git 状态…`)):r(Z)&&!r(Z).isRepo?(f(),s(`p`,ur,`这个目录不是 git 仓库,没法自动提交。`)):r(Z)?.blocked?(f(),s(`p`,dr,m(r(Z).blocked),1)):r(Z)?.files.length?(f(),s(`ul`,pr,[(f(!0),s(p,null,c(r(Z).files,e=>(f(),s(`li`,{key:e.path,class:`cm-file`},[o(`span`,{class:a([`cm-code`,e.code===`??`?`cm-new`:`cm-mod`])},m(e.code),3),o(`span`,{class:`mono cm-path`,title:e.path},m(e.path),9,mr)]))),128))])):(f(),s(`p`,fr,`没有未提交的改动,不需要提交。`))])),r(X)?(f(),s(`p`,hr,m(r(X)),1)):_(``,!0),o(`footer`,gr,[o(`span`,_r,m(r(Z)?.branch?`当前分支 ${r(Z).branch}`:`提交后工作区应当是干净的`),1),o(`span`,vr,[o(`button`,{class:`hist-close`,disabled:r(Y),onClick:$},m(r(Q)?`关闭`:`取消`),9,yr),r(Q)?_(``,!0):(f(),s(`button`,{key:0,class:`cm-go`,disabled:!r(Hr),onClick:Wr},m(r(Y)?`提交中…`:`确认提交`),9,br))])])])])):_(``,!0)]))],64)}}}),[[`__scopeId`,`data-v-0c6b2b03`]]);export{S as default};
@@ -1 +1 @@
1
- {"id":"d7f0931f-32b3-4c23-b05f-7cbf5851b226","timestamp":1793369473533}
1
+ {"id":"4a212bd2-438f-4b26-b8f3-57db47ca0799","timestamp":1793371116856}
@@ -0,0 +1 @@
1
+ {"id":"4a212bd2-438f-4b26-b8f3-57db47ca0799","timestamp":1793371116856,"prerendered":[]}
@@ -0,0 +1 @@
1
+ .lc[data-v-0c6b2b03]{gap:14px;display:grid}.lc [id^=lc-][data-v-0c6b2b03]{scroll-margin-top:14px}.lc-nav[data-v-0c6b2b03]{flex-wrap:wrap;gap:6px;padding:0 2px;display:flex}.lc-nav-link[data-v-0c6b2b03]{border:1px solid var(--nv-line,var(--line));background:var(--nv-bg,#fff);height:28px;color:var(--nv-ink,var(--ink-3));border-radius:999px;align-items:center;gap:6px;padding:0 9px;font-size:11.4px;font-weight:580;transition:box-shadow .16s,transform .16s;display:inline-flex}.lc-nav-link.tone-violet[data-v-0c6b2b03]{--nv-bg:var(--violet-soft);--nv-line:var(--violet-line);--nv-ink:var(--violet-ink)}.lc-nav-link.tone-peach[data-v-0c6b2b03]{--nv-bg:var(--peach);--nv-line:var(--peach-line);--nv-ink:#a5382f}.lc-nav-link.tone-mint[data-v-0c6b2b03]{--nv-bg:#f0fbdf;--nv-line:#dcf0bb;--nv-ink:#4f6f24}.lc-nav-link.tone-sky[data-v-0c6b2b03]{--nv-bg:#eef5fd;--nv-line:var(--sky-line);--nv-ink:#2c5f96}.lc-nav-link.tone-amber[data-v-0c6b2b03]{--nv-bg:#fdf4e2;--nv-line:var(--amber-line);--nv-ink:#8a6116}.lc-nav-link.tone-teal[data-v-0c6b2b03]{--nv-bg:#e4f6f3;--nv-line:#bce5de;--nv-ink:#1f6f63}.lc-nav-link.tone-slate[data-v-0c6b2b03]{--nv-bg:var(--sunken);--nv-line:var(--line-2);--nv-ink:var(--ink-2)}.lc-nav-link.tone-rose[data-v-0c6b2b03]{--nv-bg:#fdeceb;--nv-line:var(--rose-line);--nv-ink:#b23a4b}.lc-nav-link[data-v-0c6b2b03]:hover{box-shadow:0 7px 16px -12px var(--nv-ink,#8a8a8a);transform:translateY(-1px)}.lc-nav-ic[data-v-0c6b2b03]{opacity:.72;flex:none;width:13px;height:13px}.act[data-v-0c6b2b03],.ent-id[data-v-0c6b2b03],.fchip[data-v-0c6b2b03],.fl[data-v-0c6b2b03],.lc-nav-lb[data-v-0c6b2b03],.ring-in span[data-v-0c6b2b03],.rule-state[data-v-0c6b2b03],.s-title[data-v-0c6b2b03],.u-url[data-v-0c6b2b03]{white-space:nowrap}.lc-nav-ct[data-v-0c6b2b03]{min-width:16px;color:inherit;text-align:center;font-variant-numeric:tabular-nums;background:#ffffffd1;border-radius:999px;flex:none;padding:0 5px;font-size:9.6px;font-weight:700;line-height:15px}.lc-nav-link:hover .lc-nav-ct[data-v-0c6b2b03]{background:#fff}.lc-rule[data-v-0c6b2b03]{border:1px solid var(--line);box-shadow:var(--shadow-1);background:linear-gradient(#fbfaff,#fff);border-radius:14px;gap:7px;margin-bottom:14px;padding:10px 13px 11px;display:grid}.rule-top[data-v-0c6b2b03]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rule-ic[data-v-0c6b2b03]{border:1px solid var(--violet-line);background:var(--violet-soft);width:26px;height:26px;color:var(--violet-ink);border-radius:9px;flex:none;place-items:center;display:grid}.rule-svg[data-v-0c6b2b03]{width:14px;height:14px}.rule-title[data-v-0c6b2b03]{letter-spacing:.01em;color:var(--ink);font-size:12px;font-weight:680}.rule-file[data-v-0c6b2b03]{color:var(--ink-4);font-size:10px}.rule-state[data-v-0c6b2b03]{border:1px solid var(--line-2);height:22px;color:var(--ink-2);background:#fff;border-radius:999px;align-items:center;gap:5px;margin-left:auto;padding:0 9px;font-size:10.4px;font-weight:640;display:inline-flex}.rule-state .mono[data-v-0c6b2b03]{color:var(--ink-3);font-size:9.8px;font-weight:560}.rule-dot[data-v-0c6b2b03]{background:var(--ink-4);border-radius:999px;flex:none;width:6px;height:6px}.rule-dot.tone-ok[data-v-0c6b2b03]{background:#74a53c;box-shadow:0 0 0 3px #74a53c24}.rule-dot.tone-warn[data-v-0c6b2b03]{background:#d79a2b;box-shadow:0 0 0 3px #d79a2b24}.rule-dot.tone-neutral[data-v-0c6b2b03]{background:#b3b1aa;box-shadow:0 0 0 3px #b3b1aa24}.rule-cases[data-v-0c6b2b03]{gap:3px;margin:0;padding:0;list-style:none;display:grid}.rule-case[data-v-0c6b2b03]{color:var(--ink-3);border:1px solid #0000;border-radius:9px;align-items:baseline;gap:7px;padding:4px 9px;font-size:11.2px;line-height:1.55;display:flex}.rule-case.on[data-v-0c6b2b03]{color:var(--ink-2);background:var(--sunken)}.case-when[data-v-0c6b2b03]{flex:none;min-width:40px;font-weight:680}.rule-case.on .case-when[data-v-0c6b2b03]{color:var(--ink)}.case-arrow[data-v-0c6b2b03]{width:11px;height:11px;color:var(--ink-4);flex:none;align-self:center}.rule-case.on .case-arrow[data-v-0c6b2b03]{color:var(--ink-3)}.case-then[data-v-0c6b2b03],.hero-body[data-v-0c6b2b03],.two[data-v-0c6b2b03]>*{min-width:0}.is-ok .rule-ic[data-v-0c6b2b03]{color:#4f6f24;background:#f0fbdf;border-color:#dcf0bb}.is-ok .rule-case.on[data-v-0c6b2b03]{background:#f4fbea;border-color:#dcf0bb}.is-warn .rule-ic[data-v-0c6b2b03]{color:#8a6116;background:#fdf4e2;border-color:#f3e2b8}.is-warn .rule-case.on[data-v-0c6b2b03]{background:#fdf6e8;border-color:#f3e2b8}.sec[data-v-0c6b2b03]{border-radius:20px;overflow:hidden}.two[data-v-0c6b2b03]{flex-wrap:wrap;align-items:stretch;gap:14px;display:flex}.two[data-v-0c6b2b03]>*{flex:336px}.s-hd[data-v-0c6b2b03]{align-items:center;gap:9px;padding:13px 18px 12px;display:flex}.s-hd.solo[data-v-0c6b2b03]{padding:2px 2px 0}.s-ic[data-v-0c6b2b03]{border:1px solid var(--violet-line);background:var(--violet-soft);width:26px;height:26px;color:var(--violet-ink);border-radius:9px;flex:none;place-items:center;display:grid}.s-ic.tone-mint[data-v-0c6b2b03]{color:#4f6f24;background:#f0fbdf;border-color:#dcf0bb}.s-ic.tone-amber[data-v-0c6b2b03]{color:#8a6116;background:#fdf4e2;border-color:#f3e2b8}.s-ic.tone-sky[data-v-0c6b2b03]{color:#2c5f96;background:#eef5fd;border-color:#d7e6f9}.s-svg[data-v-0c6b2b03]{width:14px;height:14px}.s-title[data-v-0c6b2b03]{letter-spacing:-.012em;font-size:14px;font-weight:650}.s-count[data-v-0c6b2b03]{border:1px solid var(--line-2);background:var(--sunken);color:var(--ink-3);border-radius:999px;flex:none;padding:0 6px;font-size:10px;font-weight:660;line-height:16px}.s-hint[data-v-0c6b2b03]{color:var(--ink-4);text-align:right;margin-left:auto;font-size:11px}.s-copy[data-v-0c6b2b03]{margin-left:2px}.s-copy.ok[data-v-0c6b2b03]{color:#47762b;background:#e9f8dd;border-color:#d5efc2}.rule-btn.s-commit[data-v-0c6b2b03]{border-color:var(--ink-card);background:var(--ink-card);color:#fff}.rule-btn.s-commit[data-v-0c6b2b03]:hover{color:#fff;background:#000;border-color:#000}.s-commit .rule-btn-ic[data-v-0c6b2b03]{color:#fff;opacity:.88}.sec-bd[data-v-0c6b2b03],.sec-empty[data-v-0c6b2b03]{padding:0 18px 16px}.sec-empty[data-v-0c6b2b03]{font-size:12px}.micro[data-v-0c6b2b03]{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);font-size:9.6px;font-weight:660}.lc-hero[data-v-0c6b2b03]{isolation:isolate;background:radial-gradient(120% 150% at 0 0,#fdfbff,#fff0 52%),radial-gradient(100% 140% at 100% 110%,#ece1ff,#ece1ff00 60%),linear-gradient(152deg,#f8f4ff,#f1eaff 64%,#faf7ff);border:1px solid #e6dcfb;border-radius:24px;align-items:center;gap:26px;padding:20px 22px;display:flex;position:relative;overflow:hidden}.lc-hero[data-v-0c6b2b03]:after{content:"";filter:blur(6px);z-index:-1;background:radial-gradient(circle,#8b68f229,#8b68f200 70%);border-radius:50%;width:240px;height:240px;position:absolute;bottom:-90px;right:-70px}.hero-body[data-v-0c6b2b03]{flex:1}.hero-kicker[data-v-0c6b2b03]{letter-spacing:.1em;text-transform:uppercase;color:#7a63b8;align-items:center;gap:8px;font-size:10px;font-weight:680;display:flex}.k-dot[data-v-0c6b2b03]{background:var(--violet);border-radius:999px;width:6px;height:6px;box-shadow:0 0 0 3px #6d4ff024}.k-sep[data-v-0c6b2b03]{background:#dbd0f6;width:1px;height:10px}.k-date[data-v-0c6b2b03]{text-transform:none;color:#6f5aa8;font-size:10.6px;font-weight:600}.k-date[data-v-0c6b2b03],.k-time[data-v-0c6b2b03]{letter-spacing:.02em}.k-time[data-v-0c6b2b03]{color:var(--ink-3);font-variant-numeric:tabular-nums;align-items:center;gap:5px;font-size:10.4px;font-weight:620;display:inline-flex}.k-time[data-v-0c6b2b03]:before{content:"";background:#c9bce6;border-radius:999px;width:3px;height:3px}.k-today[data-v-0c6b2b03]{border:1px solid var(--violet-line);letter-spacing:.06em;color:var(--violet-ink);background:#fff}.k-merged[data-v-0c6b2b03],.k-today[data-v-0c6b2b03]{border-radius:999px;padding:0 6px;font-size:9.4px;line-height:15px}.k-merged[data-v-0c6b2b03]{color:#8a6116;letter-spacing:.03em;text-transform:none;cursor:help;background:#fdf4e2;border:1px solid #f3e2b8}.hero-title[data-v-0c6b2b03]{letter-spacing:-.026em;color:#241b3f;margin:9px 0 0;font-size:21px;font-weight:665;line-height:1.34}.hero-sum[data-v-0c6b2b03]{color:#574c72;max-width:92ch;margin-top:7px;font-size:12.8px;line-height:1.68}.hero-meta[data-v-0c6b2b03]{color:#6b5f85;flex-wrap:wrap;align-items:center;gap:11px;margin-top:13px;font-size:11.4px;display:flex}.hero-meta b[data-v-0c6b2b03]{color:#2c2246;margin-right:2px;font-weight:690}.meta-sep[data-v-0c6b2b03]{background:#c3b4e2;border-radius:999px;width:3px;height:3px}.hero-aside[data-v-0c6b2b03]{flex:none;justify-items:center;display:grid}.ring[data-v-0c6b2b03]{--pct:0;background:conic-gradient(from -90deg,#7f5cf2 calc(var(--pct) * 1%),#e7dffa 0);border-radius:50%;place-items:center;width:98px;height:98px;display:grid;box-shadow:0 10px 26px -18px #5836ba8c}.ring.warn[data-v-0c6b2b03]{background:conic-gradient(from -90deg,#dfa437 calc(var(--pct) * 1%),#f4e8d2 0)}.ring-in[data-v-0c6b2b03]{text-align:center;background:#fff;border-radius:50%;place-content:center;gap:1px;width:78px;height:78px;display:grid}.ring-in b[data-v-0c6b2b03]{letter-spacing:-.03em;color:#2a1f47;font-size:17px;font-weight:680;line-height:1.15}.ring-in b small[data-v-0c6b2b03]{letter-spacing:0;color:var(--ink-4);font-size:10.5px;font-weight:600}.ring-in span[data-v-0c6b2b03]{letter-spacing:.04em;color:var(--ink-3);font-size:9.2px}.tbl-wrap[data-v-0c6b2b03]{padding:0 8px 8px;overflow-x:auto}.lc-tbl[data-v-0c6b2b03]{min-width:640px}.lc-tbl .c-ent[data-v-0c6b2b03]{width:246px}.lc-tbl .c-act[data-v-0c6b2b03]{width:92px}.lc-tbl .c-file[data-v-0c6b2b03]{width:218px}.lc-tbl thead th[data-v-0c6b2b03]{border-bottom:1px solid var(--line);letter-spacing:.1em;padding:6px 12px 8px;font-size:9.4px;font-weight:660}.lc-tbl tbody tr[data-v-0c6b2b03]{cursor:default}.lc-tbl tbody td[data-v-0c6b2b03]{border-top:0;border-bottom:1px solid var(--line);vertical-align:top;padding:11px 12px 12px}.lc-tbl tbody tr:last-child td[data-v-0c6b2b03]{border-bottom:0}.lc-tbl tbody tr:hover td[data-v-0c6b2b03]{background:#fbfaff}.ent-top[data-v-0c6b2b03]{align-items:center;gap:6px;display:flex}.kind[data-v-0c6b2b03]{letter-spacing:.03em;border-radius:5px;flex:none;padding:0 5px;font-size:9.4px;font-weight:680;line-height:15px}.kind-story[data-v-0c6b2b03]{color:#5433cf;background:#efe9fe}.kind-task[data-v-0c6b2b03]{color:#6b6f77;background:#f1f1ee}.ent-id[data-v-0c6b2b03]{color:#6d5aa8;font-size:10.6px}.ent-id[data-v-0c6b2b03]:hover{color:var(--violet-ink);text-underline-offset:2px;text-decoration:underline}.ent-title[data-v-0c6b2b03]{color:var(--ink);margin-top:4px;font-size:12.5px;font-weight:590;line-height:1.5}.act[data-v-0c6b2b03]{border-radius:999px;padding:0 7px;font-size:10px;font-weight:660;line-height:17px;display:inline-block}.act-added[data-v-0c6b2b03]{color:#46742a;background:#e9f8dd}.act-updated[data-v-0c6b2b03]{color:#2a5f9e;background:#e8f1fd}.act-removed[data-v-0c6b2b03]{color:#a83a32;background:#fdeae9}.flow[data-v-0c6b2b03]{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:3px;margin-top:5px;font-size:10px;line-height:1.4;display:flex}.flow i[data-v-0c6b2b03]{color:var(--ink-4);font-style:normal}.cell-note[data-v-0c6b2b03]{color:var(--ink-2);font-size:12.1px;line-height:1.62}.chips[data-v-0c6b2b03]{flex-wrap:wrap;gap:4px;display:flex}.fchip[data-v-0c6b2b03]{border:1px solid var(--line-2);background:var(--sunken);max-width:100%;color:var(--ink-2);text-overflow:ellipsis;border-radius:5px;padding:0 5px;font-size:9.9px;line-height:16px;overflow:hidden}.lc-extras[data-v-0c6b2b03]{display:grid}.x-item[data-v-0c6b2b03]{border-top:1px dashed var(--line-2);gap:9px;padding:11px 0;display:flex}.x-item[data-v-0c6b2b03]:first-child{border-top:0;padding-top:0}.x-mark[data-v-0c6b2b03]{background:#b9a5f5;border-radius:999px;flex:none;width:5px;height:5px;margin-top:7px;box-shadow:0 0 0 3px #b9a5f529}.step-bd[data-v-0c6b2b03],.u-link[data-v-0c6b2b03],.v-body[data-v-0c6b2b03],.x-body[data-v-0c6b2b03]{min-width:0}.x-title[data-v-0c6b2b03]{font-size:12.4px;font-weight:600;line-height:1.55}.x-detail[data-v-0c6b2b03]{color:var(--ink-2);margin-top:3px;font-size:11.8px;line-height:1.62}.x-files[data-v-0c6b2b03]{margin-top:6px}.lc-checks[data-v-0c6b2b03]{display:grid}.v-item[data-v-0c6b2b03]{border-top:1px dashed var(--line-2);align-items:flex-start;gap:9px;padding:10px 0;display:flex}.v-item[data-v-0c6b2b03]:first-child{border-top:0;padding-top:0}.v-ic[data-v-0c6b2b03]{border-radius:7px;flex:none;place-items:center;width:20px;height:20px;margin-top:1px;display:grid}.u-go[data-v-0c6b2b03],.v-svg[data-v-0c6b2b03]{width:12px;height:12px}.v-ic.v-pass[data-v-0c6b2b03]{color:#4b7a2c;background:#e9f8dd}.v-ic.v-fail[data-v-0c6b2b03]{color:#ab3a32;background:#fdeae9}.v-ic.v-partial[data-v-0c6b2b03]{color:#8a6116;background:#fdf3dd}.v-ic.v-skipped[data-v-0c6b2b03]{color:#82868e;background:#f1f1ee}.v-body[data-v-0c6b2b03]{flex:1}.v-what[data-v-0c6b2b03]{word-break:break-word;font-size:12.2px;font-weight:590;line-height:1.5}.v-detail[data-v-0c6b2b03]{color:var(--ink-3);margin-top:2px;font-size:11.4px;line-height:1.55}.v-res[data-v-0c6b2b03]{letter-spacing:.02em;flex:none;margin-top:2px;font-size:10.2px;font-weight:660}.v-res.v-pass[data-v-0c6b2b03]{color:#4b7a2c}.v-res.v-fail[data-v-0c6b2b03]{color:#ab3a32}.v-res.v-partial[data-v-0c6b2b03]{color:#8a6116}.v-res.v-skipped[data-v-0c6b2b03]{color:#82868e}.acc-grid[data-v-0c6b2b03]{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;gap:16px 22px;display:grid}.acc-col[data-v-0c6b2b03]{align-content:start;gap:9px;display:grid}.a-item[data-v-0c6b2b03],.u-item[data-v-0c6b2b03]{border-radius:var(--r-md);border:1px solid var(--line);background:var(--sunken-2);padding:10px 12px;transition:border-color .14s,background .14s}.a-item[data-v-0c6b2b03]:hover,.u-item[data-v-0c6b2b03]:hover{border-color:var(--line-3);background:#fff}.a-head[data-v-0c6b2b03],.u-head[data-v-0c6b2b03]{align-items:center;gap:6px;display:flex}.u-link[data-v-0c6b2b03]{align-items:center;gap:4px;display:inline-flex}.u-label[data-v-0c6b2b03]{font-size:12.2px;font-weight:640}.u-go[data-v-0c6b2b03]{color:var(--violet);flex:none;transition:transform .14s}.u-link:hover .u-go[data-v-0c6b2b03]{transform:translate(1px,-1px)}.u-link:hover .u-label[data-v-0c6b2b03]{color:var(--violet-ink)}.u-url[data-v-0c6b2b03]{color:var(--sky);text-overflow:ellipsis;margin-top:3px;font-size:11.3px;overflow:hidden}.u-note[data-v-0c6b2b03]{color:var(--ink-3);margin-top:3px;font-size:10.9px;line-height:1.5}.a-role[data-v-0c6b2b03]{border:1px solid var(--violet-line);background:var(--violet-soft);color:var(--violet-ink);letter-spacing:.03em;border-radius:999px;padding:0 6px;font-size:9.6px;font-weight:680;line-height:16px}.a-user[data-v-0c6b2b03]{color:var(--ink);font-size:11.8px}.a-line[data-v-0c6b2b03]{align-items:center;gap:8px;margin-top:6px;display:flex}.a-key[data-v-0c6b2b03]{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);font-size:9.4px;font-weight:660}.a-pass[data-v-0c6b2b03]{border:1px solid var(--line-2);color:var(--ink);background:#fff;border-radius:6px;padding:1px 7px;font-size:11.4px}.a-none[data-v-0c6b2b03]{font-size:11.2px}.a-note[data-v-0c6b2b03]{margin-top:5px;font-size:10.9px}.a-note[data-v-0c6b2b03],.cpy[data-v-0c6b2b03]{color:var(--ink-3)}.cpy[data-v-0c6b2b03]{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;flex:none;align-items:center;gap:4px;height:23px;margin-left:auto;padding:0 8px;font-size:10.6px;font-weight:600;transition:background .14s,border-color .14s,color .14s;display:inline-flex}.cpy[data-v-0c6b2b03]:hover{border-color:var(--line-2);color:var(--ink);background:#fff}.cpy.ok[data-v-0c6b2b03]{color:#47762b;background:#e9f8dd;border-color:#d5efc2}.cpy-ic[data-v-0c6b2b03]{width:11px;height:11px}.steps[data-v-0c6b2b03]{counter-reset:st;gap:13px;margin:0;padding:2px 18px 16px;list-style:none;display:grid}.steps>li[data-v-0c6b2b03]{counter-increment:st;padding-left:33px;position:relative}.steps>li[data-v-0c6b2b03]:before{content:counter(st);border:1px solid var(--violet-line);width:22px;height:22px;color:var(--violet-ink);background:#fff;border-radius:999px;place-items:center;font-size:10.4px;font-weight:700;display:grid;position:absolute;top:0;left:0}.steps>li[data-v-0c6b2b03]:not(:last-child):after{content:"";background:linear-gradient(#ded2fb,#efeaf9);width:1px;position:absolute;top:26px;bottom:-13px;left:10.5px}.step-text[data-v-0c6b2b03]{padding-top:1px;font-size:12.5px;font-weight:590;line-height:1.5}.cmd-row[data-v-0c6b2b03]{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.cmd[data-v-0c6b2b03]{color:#f4f3ef;white-space:pre-wrap;word-break:break-all;background:#1b1c20;border-radius:7px;padding:4px 9px;font-size:11.1px;line-height:1.5}.cmd-row .cpy[data-v-0c6b2b03]{margin-left:0}.step-note[data-v-0c6b2b03]{color:var(--ink-3);margin-top:4px;font-size:11.2px;line-height:1.55}.lc-sc-sec[data-v-0c6b2b03]{gap:11px;display:grid}.lc-sc-grid[data-v-0c6b2b03]{flex-wrap:wrap;align-items:stretch;gap:12px;display:flex}.lc-sc-grid[data-v-0c6b2b03]>*{flex:330px;min-width:0}.sc[data-v-0c6b2b03]{border-radius:var(--r-lg);border:1px solid var(--line);box-shadow:var(--shadow-1);background:#fff;flex-direction:column;transition:transform .16s,box-shadow .16s,border-color .16s;display:flex;overflow:hidden}.sc[data-v-0c6b2b03]:hover{border-color:#e3d9f8;transform:translateY(-1px);box-shadow:0 16px 34px -26px #231a3d73}.sc-hd[data-v-0c6b2b03]{align-items:flex-start;gap:8px;padding:12px 14px 9px;display:flex}.sc-id[data-v-0c6b2b03]{border:1px solid var(--line-2);background:var(--sunken);color:var(--ink-3);border-radius:5px;flex:none;margin-top:1px;padding:0 5px;font-size:9.6px;font-weight:660;line-height:16px}.sc-title[data-v-0c6b2b03]{letter-spacing:-.008em;font-size:12.9px;font-weight:630;line-height:1.45}.sc-body[data-v-0c6b2b03]{padding:0 14px 10px}.lc-sc-steps[data-v-0c6b2b03]{counter-reset:ss;gap:5px;margin:6px 0 0;padding:0;list-style:none;display:grid}.lc-sc-steps li[data-v-0c6b2b03]{counter-increment:ss;color:var(--ink-2);padding-left:19px;font-size:12px;line-height:1.55;position:relative}.lc-sc-steps li[data-v-0c6b2b03]:before{content:counter(ss) ".";color:#a58cf8;font-variant-numeric:tabular-nums;font-size:10.6px;font-weight:680;position:absolute;top:0;left:0}.sc-acc[data-v-0c6b2b03]{border-top:1px dashed var(--line-2);background:linear-gradient(#fbfdf6,#fff);margin-top:auto;padding:10px 14px 12px}.sc-acc-h[data-v-0c6b2b03]{letter-spacing:.1em;text-transform:uppercase;color:#6b7a45;align-items:center;gap:4px;font-size:9.4px;font-weight:700;display:flex}.sc-acc-ic[data-v-0c6b2b03]{flex:none;width:11px;height:11px}.sc-acc-t[data-v-0c6b2b03]{color:#33401c;margin-top:4px;font-size:12px;line-height:1.62}.sc-foot[data-v-0c6b2b03]{color:var(--ink-4);flex-wrap:wrap;align-items:center;gap:10px;margin-top:7px;font-size:10.6px;display:flex}.sc-ids[data-v-0c6b2b03]{gap:6px;display:flex}.lc-notes[data-v-0c6b2b03]{gap:8px;margin:0;padding:0;list-style:none;display:grid}.lc-notes li[data-v-0c6b2b03]{color:var(--ink-2);padding-left:13px;font-size:12.1px;line-height:1.66;position:relative}.lc-notes li[data-v-0c6b2b03]:before{content:"";background:#c3b2f7;border-radius:999px;width:4.5px;height:4.5px;position:absolute;top:7.5px;left:1px}.lc-notes.warn li[data-v-0c6b2b03]:before{background:#e8bb5e}.sec-warn .s-ic[data-v-0c6b2b03]{color:#8a6116;background:#fdf4e2;border-color:#f3e2b8}.lc-empty[data-v-0c6b2b03]{text-align:center;border-radius:24px;justify-items:center;gap:9px;padding:52px 24px 46px;display:grid}.em-ic[data-v-0c6b2b03]{background:var(--grad-lilac);width:48px;height:48px;color:var(--violet-ink);border:1px solid #dbcdfb;border-radius:16px;place-items:center;display:grid}.em-svg[data-v-0c6b2b03]{width:21px;height:21px}.em-title[data-v-0c6b2b03]{letter-spacing:-.02em;margin-top:2px;font-size:16px;font-weight:660}.em-sub[data-v-0c6b2b03]{max-width:54ch;font-size:12.6px;line-height:1.7}.em-path[data-v-0c6b2b03],.em-sub[data-v-0c6b2b03]{color:var(--ink-2)}.em-path[data-v-0c6b2b03]{border:1px dashed var(--line-3);background:var(--sunken);border-radius:999px;margin-top:3px;padding:4px 12px;font-size:11.4px}.em-note[data-v-0c6b2b03]{color:var(--ink-4);font-size:11px}.rule-btn[data-v-0c6b2b03]{border:1px solid var(--line-2);height:24px;color:var(--ink-2);cursor:pointer;background:#fff;border-radius:999px;flex:none;align-items:center;gap:4px;padding:0 9px;font-size:10.8px;font-weight:620;transition:border-color .14s,color .14s,background .14s;display:inline-flex}.rule-btn[data-v-0c6b2b03]:hover{border-color:var(--violet-line);background:var(--violet-soft);color:var(--violet-ink)}.rule-btn i[data-v-0c6b2b03]{background:var(--sunken);color:var(--ink-3);border-radius:999px;padding:0 4px;font-size:9.4px;font-style:normal;line-height:15px}.hist-badge-ic[data-v-0c6b2b03],.rule-btn-ic[data-v-0c6b2b03]{width:12px;height:12px}.lc-hist-bar[data-v-0c6b2b03]{box-shadow:var(--shadow-1);background:linear-gradient(#faf7ff,#fff);border-radius:14px;flex-wrap:wrap;gap:10px;margin-bottom:14px;padding:9px 12px;display:flex}.hist-badge[data-v-0c6b2b03],.lc-hist-bar[data-v-0c6b2b03]{border:1px solid var(--violet-line);align-items:center}.hist-badge[data-v-0c6b2b03]{background:var(--violet-soft);color:var(--violet-ink);border-radius:999px;flex:none;gap:4px;padding:1px 8px;font-size:10.4px;font-weight:680;line-height:18px;display:inline-flex}.hist-readonly[data-v-0c6b2b03]{color:var(--ink-4);flex:none;font-size:10.2px}.lc-hist-tabs[data-v-0c6b2b03]{flex:1;align-items:center;gap:4px;min-width:0;padding:1px 0;display:flex;overflow-x:auto}.lc-hist-tabs[data-v-0c6b2b03]::-webkit-scrollbar{height:3px}.lc-hist-tabs[data-v-0c6b2b03]::-webkit-scrollbar-thumb{background:#dcd8ef;border-radius:999px}.hist-tab[data-v-0c6b2b03]{border:1px solid var(--line-2);height:24px;color:var(--ink-2);cursor:pointer;white-space:nowrap;background:#fff;border-radius:999px;flex:none;align-items:center;gap:4px;padding:0 9px;font-size:10.6px;font-weight:620;transition:background .14s,border-color .14s,color .14s;display:inline-flex}.hist-tab[data-v-0c6b2b03]:hover{border-color:var(--violet-line);color:var(--violet-ink)}.hist-tab.on[data-v-0c6b2b03]{border-color:var(--violet);background:var(--violet-soft);color:var(--violet-ink);font-weight:680}.hist-tab i[data-v-0c6b2b03]{color:var(--ink-4);font-size:9.2px;font-style:normal;font-weight:560}.hist-tab.on i[data-v-0c6b2b03]{color:#7a63b8}.lc-hist-mask[data-v-0c6b2b03]{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#14121e6b;place-items:center;padding:24px;animation:.14s lc-fade-0c6b2b03;display:grid;position:fixed;inset:0}.lc-hist[data-v-0c6b2b03]{border:1px solid var(--line);background:#fff;border-radius:20px;flex-direction:column;width:min(680px,100%);max-height:calc(min(76vh,720px));animation:.16s lc-pop-0c6b2b03;display:flex;overflow:hidden;box-shadow:0 40px 80px -40px #14121e8c}@keyframes lc-fade-0c6b2b03{0%{opacity:0}to{opacity:1}}@keyframes lc-pop-0c6b2b03{0%{opacity:0;transform:translateY(6px)scale(.99)}to{opacity:1;transform:none}}.lc-hist-hd[data-v-0c6b2b03]{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:16px 18px 12px;display:flex}.lc-hist-hd-txt[data-v-0c6b2b03]{min-width:0}.lc-hist-title[data-v-0c6b2b03]{letter-spacing:-.015em;font-size:15px;font-weight:660}.lc-hist-sub[data-v-0c6b2b03]{color:var(--ink-3);margin-top:3px;font-size:11.2px}.lc-hist-x[data-v-0c6b2b03]{width:26px;height:26px;color:var(--ink-3);cursor:pointer;border-radius:9px;flex:none;place-items:center;margin-left:auto;transition:background .14s,color .14s;display:grid}.lc-hist-x[data-v-0c6b2b03]:hover{background:var(--sunken);color:var(--ink)}.lc-hist-x-ic[data-v-0c6b2b03]{width:14px;height:14px}.lc-hist-list[data-v-0c6b2b03]{gap:2px;padding:8px;display:grid;overflow-y:auto}.hist-item[data-v-0c6b2b03]{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;width:100%;padding:9px 11px;transition:background .14s,border-color .14s;display:flex}.hist-item[data-v-0c6b2b03]:hover{background:var(--sunken-2);border-color:var(--line)}.hist-item.on[data-v-0c6b2b03]{background:var(--violet-soft);border-color:var(--violet-line)}.hist-item[data-v-0c6b2b03]:disabled{opacity:.6;cursor:wait}.hist-item-dot[data-v-0c6b2b03]{background:#d3cfe6;border-radius:999px;flex:none;width:6px;height:6px}.hist-item-dot.live[data-v-0c6b2b03]{background:#6aa844;box-shadow:0 0 0 3px #6aa84429}.hist-item-main[data-v-0c6b2b03]{flex:1;gap:2px;min-width:0;display:grid}.hist-item-main b[data-v-0c6b2b03]{text-overflow:ellipsis;white-space:nowrap;font-size:12.4px;font-weight:600;overflow:hidden}.hist-item-main i[data-v-0c6b2b03]{color:var(--ink-4);font-size:10.2px;font-style:normal}.hist-item-hash[data-v-0c6b2b03]{border:1px solid var(--line-2);color:var(--ink-3);background:#fff;border-radius:6px;flex:none;padding:0 6px;font-size:9.8px;line-height:16px}.lc-hist-hint[data-v-0c6b2b03]{text-align:center;padding:18px 12px;font-size:12px}.lc-hist-err[data-v-0c6b2b03]{border-radius:var(--r-md);color:#a5382f;background:#fdeae7;border:1px solid #f6d2cb;margin:12px 18px;padding:9px 11px;font-size:11.8px}.lc-hist-ft[data-v-0c6b2b03]{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:11px 18px;font-size:10.8px;display:flex}.hist-close[data-v-0c6b2b03]{border:1px solid var(--ink-card);background:var(--ink-card);color:#fff;cursor:pointer;border-radius:999px;flex:none;height:26px;padding:0 12px;font-size:11px;font-weight:620}.hist-close[data-v-0c6b2b03]:hover{background:#000}.lc-commit[data-v-0c6b2b03]{width:min(640px,100%)}.cm-body[data-v-0c6b2b03]{gap:7px;padding:12px 18px 14px;display:grid;overflow-y:auto}.cm-msg[data-v-0c6b2b03]{background:var(--sunken);color:var(--ink-2);white-space:pre-wrap;word-break:break-word;padding:10px 12px;font-size:11.4px;line-height:1.68;overflow:auto}.cm-files[data-v-0c6b2b03],.cm-msg[data-v-0c6b2b03]{border-radius:var(--r-md);border:1px solid var(--line-2);max-height:168px;margin:0}.cm-files[data-v-0c6b2b03]{background:#fff;gap:0;padding:0;list-style:none;display:grid;overflow-y:auto}.cm-file[data-v-0c6b2b03]{border-top:1px dashed var(--line-2);align-items:baseline;gap:7px;padding:5px 10px;display:flex}.cm-file[data-v-0c6b2b03]:first-child{border-top:0}.cm-code[data-v-0c6b2b03]{text-align:center;border-radius:4px;flex:none;min-width:20px;padding:0 4px;font-size:9.4px;font-weight:700;line-height:15px}.cm-new[data-v-0c6b2b03]{color:#46742a;background:#e9f8dd}.cm-mod[data-v-0c6b2b03]{color:#2a5f9e;background:#e8f1fd}.cm-path[data-v-0c6b2b03]{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;font-size:10.9px;overflow:hidden}.cm-hint[data-v-0c6b2b03]{margin:0;font-size:11.6px;line-height:1.55}.cm-hint.warn[data-v-0c6b2b03]{color:#a5382f}.cm-done[data-v-0c6b2b03]{gap:10px;padding:16px 18px 18px;display:flex}.cm-done-ic[data-v-0c6b2b03]{color:#4b7a2c;background:#e9f8dd;border:1px solid #d5efc2;border-radius:10px;flex:none;place-items:center;width:30px;height:30px;display:grid}.cm-done-svg[data-v-0c6b2b03]{width:16px;height:16px}.cm-done-bd[data-v-0c6b2b03]{min-width:0}.cm-done-t[data-v-0c6b2b03]{font-size:13.4px;font-weight:660}.cm-done-s[data-v-0c6b2b03]{color:var(--ink-2);margin-top:3px;font-size:12.2px;line-height:1.55}.cm-done-n[data-v-0c6b2b03]{color:var(--ink-4);margin-top:4px;font-size:10.8px}.cm-acts[data-v-0c6b2b03]{align-items:center;gap:8px;display:inline-flex}.cm-go[data-v-0c6b2b03]{border:1px solid var(--violet);background:var(--violet);color:#fff;cursor:pointer;border-radius:999px;flex:none;height:26px;padding:0 14px;font-size:11.4px;font-weight:620;transition:filter .14s}.cm-go[data-v-0c6b2b03]:hover:not(:disabled){filter:brightness(1.08)}.cm-go[data-v-0c6b2b03]:disabled{opacity:.45;cursor:not-allowed}.hist-close[data-v-0c6b2b03]:disabled{opacity:.5;cursor:not-allowed}@media (width<=900px){.lc-hero[data-v-0c6b2b03]{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:4px 14px;padding:18px;display:grid}.hero-body[data-v-0c6b2b03]{grid-column:1}.hero-aside[data-v-0c6b2b03]{grid-area:1/2}.ring[data-v-0c6b2b03]{width:72px;height:72px}.ring-in[data-v-0c6b2b03]{width:58px;height:58px}.ring-in b[data-v-0c6b2b03]{font-size:14px}.ring-in span[data-v-0c6b2b03]{font-size:8.2px}.s-hint[data-v-0c6b2b03]{display:none}.s-copy[data-v-0c6b2b03]{margin-left:auto}.s-hd[data-v-0c6b2b03]{padding:12px 14px 10px}.sec-bd[data-v-0c6b2b03],.sec-empty[data-v-0c6b2b03],.steps[data-v-0c6b2b03]{padding-left:14px;padding-right:14px}}@media (width<=700px){.hist-readonly[data-v-0c6b2b03]{display:none}.lc-hist-bar .rule-btn[data-v-0c6b2b03]{order:2;margin-left:auto}.lc-hist-tabs[data-v-0c6b2b03]{flex-basis:100%;order:3}}@media (width<=560px){.lc-rule[data-v-0c6b2b03]{padding:10px 12px}.ring-in span[data-v-0c6b2b03],.rule-file[data-v-0c6b2b03]{display:none}.lc-hero[data-v-0c6b2b03]{gap:4px 10px;padding:15px}.hero-title[data-v-0c6b2b03]{letter-spacing:-.02em;font-size:17.5px}.hero-sum[data-v-0c6b2b03]{font-size:12.2px;line-height:1.62}.hero-meta[data-v-0c6b2b03]{gap:8px;margin-top:10px;font-size:10.8px}.ring[data-v-0c6b2b03]{width:56px;height:56px}.ring-in[data-v-0c6b2b03]{width:46px;height:46px}.ring-in b[data-v-0c6b2b03]{font-size:12.5px}.s-title[data-v-0c6b2b03]{font-size:13.2px}}
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DRlQgul3.js","./DZo3dYLJ.js","./CJ2mz0WY.js","./D2O8Q8x9.js","./DSaWoFHS.js","./C7K0R7F-.js","./51OWHj8c.js","./rlePnzpc.js","./DEfLc7p3.js","./DK3Fl9T5.js","./ChG76uh9.js","./Csqgy925.js","./CuJUHLl8.js","./B_SlFcWp.js","./_id_.B2NDKSlX.css","./CvLiA4_O.js","./BDcnzXHq.js","./B3jkABw9.js","./6gFtTBwm.js","./Cm9lkUvP.js","./DLkAKotw.js","./Vo4wMbnS.js","./CK9_veoz.js","./Bb3Limos.js","./Dtsa-1NS.js","./Ci0qbkgh.js","./BuOKDFiJ.js","./D3YCAmfu.js","./Bi9Axj3V.js","./DfR3IZN_.js","./EYTShbt4.js","./BgLeKwx0.js","./C9StZL3D.js","./BPTrRhcw.js","./burndown.Do6IbM6o.css","./COf6E6h4.js","./epics.Dmessplu.css","./DRPlYvb3.js","./gantt.Dmp00GUo.css","./DrprggWq.js","./last-change.8FndoiOt.css","./P9x67aq2.js","./milestones.U0xKCsEo.css","./BodFvto3.js","./pages.Dbj2IVk8.css","./C8vL692X.js","./DnDHGSYI.js","./DHihWhf5.js","./Cz6rZcLK.js","./1eqboJxR.js","./CQTvWh4i.js","./Dx1wcYFo.js","./DqZgF3hU.js","./vwxaNGfc.js","./2K7ag6ES.js","./BaG8y0Wt.js","./CqoQ__I_.js","./BpWeHLuN.js","./D2FhHl1o.js","./DWO9c9yp.js","./V0uynWE2.js","./CJMBJQuf.js","./DbHiyab-.js","./Cvs12oA0.js","./CMUi2-Lj.js","./CK-lOYG9.js","./DIc8yx98.js","./DSLbmoWa.js","./CLBcBrYf.js","./BDK2Hj7B.js","./D75vbfSb.js","./uKzCKCTq.js","./CgDTd7jS.js","./CPCUMJnF.js","./D99LbGfb.js","./DajA-Tkt.js","./Dg2LiqmN.js","./yh6sf_D5.js","./DqcxvfbD.js","./CyEXFe3V.js","./assMu_Wn.js","./DpXJ_tCU.js","./Du91iq0p.js","./DsA2lVci.js","./D5CE81jK.js","./DhuleNnm.js","./BmxvtaMq.js","./DF-nsa1Z.js","./Dc7Ql6eE.js","./ZngEd3HB.js","./MaXJprwN.js","./Dd9ZukPU.js","./CSEEUF8S.js","./D_S6N7_b.js","./CPcKlmSm.js","./CGI_ZV79.js","./C40iTe-x.js","./CSSb154I.js","./B5n2_jZN.js","./error-404.BFmXOnCT.css","./ZVTqot-_.js","./error-500.BZ-DdjQ6.css"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./DK3Fl9T5.js";import{_ as t,b as n,c as r,f as i,h as a,i as o,m as s,n as c,o as l,s as u,t as d,u as f,v as p,y as m}from"./D2O8Q8x9.js";import{$ as h,$n as g,B as _,Cn as v,D as y,E as b,En as x,Ft as S,Gt as C,Ht as w,J as T,L as E,Lt as ee,Nt as te,O as D,On as O,Pt as ne,Q as re,Rt as ie,Tn as ae,Un as oe,Ut as se,Yt as ce,Z as le,Zn as k,_ as A,b as j,bt as M,ct as ue,er as de,et as N,fn as fe,ft as pe,g as P,gn as me,gt as he,it as ge,jt as _e,k as F,l as ve,ln as ye,mt as I,o as L,pn as be,qt as R,rt as xe,s as Se,st as Ce,tr as z,tt as we,u as Te,un as Ee,v as B,vn as V,w as De,wn as Oe,wt as ke,xn as Ae,xt as H,y as U,yn as je,z as W}from"./DZo3dYLJ.js";import{C as Me,S as Ne,a as Pe,i as Fe,t as Ie,w as Le}from"./51OWHj8c.js";import{n as Re,r as ze,t as Be}from"./B3jkABw9.js";import{a as Ve,c as He,d as Ue,h as We,i as Ge,o as Ke,p as qe,s as Je,t as Ye}from"./DSaWoFHS.js";import{$ as Xe,A as Ze,B as Qe,C as $e,D as et,E as tt,F as nt,G as rt,H as it,I as at,J as ot,K as st,L as ct,M as lt,N as ut,O as dt,P as ft,Q as pt,R as mt,S as ht,T as gt,U as _t,V as vt,W as yt,X as bt,Y as xt,Z as St,_ as Ct,_t as wt,a as Tt,b as Et,ct as Dt,d as Ot,dt as kt,et as At,f as jt,ft as Mt,g as Nt,h as Pt,i as Ft,it as It,j as Lt,k as Rt,lt as zt,m as Bt,mt as Vt,nt as Ht,o as Ut,ot as Wt,p as Gt,pt as Kt,q as qt,r as Jt,rt as Yt,s as Xt,t as Zt,tt as Qt,ut as $t,v as en,vt as tn,w as nn,x as rn,y as an,z as on}from"./C7K0R7F-.js";import{a as sn,c as cn,d as ln,f as un,i as dn,l as fn,n as pn,o as mn,r as hn,s as gn,t as _n,u as vn}from"./ChG76uh9.js";import{a as yn,o as bn,r as xn,s as Sn,t as Cn}from"./CJ2mz0WY.js";import{r as wn}from"./Csqgy925.js";import{a as Tn,c as En,i as Dn,o as On,r as kn,s as An}from"./DEfLc7p3.js";import{c as jn,d as Mn,h as Nn,i as Pn,l as Fn,m as In,n as Ln,s as Rn,t as zn}from"./6gFtTBwm.js";import{n as Bn,r as Vn,t as Hn}from"./DLkAKotw.js";import{n as Un}from"./Bb3Limos.js";import{C as Wn,T as Gn,a as Kn,b as qn,g as Jn,h as Yn,m as Xn,p as Zn,r as Qn}from"./CuJUHLl8.js";import{c as $n,i as er,l as tr,o as nr,p as rr,r as ir,s as ar,t as or}from"./Vo4wMbnS.js";import{t as sr}from"./CK9_veoz.js";import{S as cr,_ as lr,a as ur,c as dr,d as fr,f as pr,g as mr,h as hr,i as gr,l as _r,m as vr,n as yr,o as br,p as xr,r as Sr,s as Cr,t as wr,u as Tr,v as Er,x as Dr,y as Or}from"./Dtsa-1NS.js";import{t as kr}from"./Ci0qbkgh.js";import{n as Ar,t as jr}from"./BuOKDFiJ.js";import{t as G}from"./D3YCAmfu.js";import{t as Mr}from"./B_SlFcWp.js";import{t as Nr}from"./C9StZL3D.js";import{t as Pr}from"./Bi9Axj3V.js";import{i as Fr,n as Ir,t as Lr}from"./BPTrRhcw.js";import{t as Rr}from"./rlePnzpc.js";import{a as zr,i as Br,n as Vr,r as Hr,t as Ur}from"./BgLeKwx0.js";import{i as Wr,n as Gr,t as Kr}from"./DfR3IZN_.js";import{n as qr,t as Jr}from"./EYTShbt4.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var Yr=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,Xr=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,Zr=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function Qr(e,t){if(e===`__proto__`||e===`constructor`&&t&&typeof t==`object`&&`prototype`in t)$r(e);else return t}function $r(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`)}function ei(e,t={}){if(typeof e!=`string`)return e;if(e[0]===`"`&&e[e.length-1]===`"`&&e.indexOf(`\\`)===-1)return e.slice(1,-1);let n=e.trim();if(n.length<=9)switch(n.toLowerCase()){case`true`:return!0;case`false`:return!1;case`undefined`:return;case`null`:return null;case`nan`:return NaN;case`infinity`:return 1/0;case`-infinity`:return-1/0}if(!Zr.test(e)){if(t.strict)throw SyntaxError(`[destr] Invalid JSON`);return e}try{if(Yr.test(e)||Xr.test(e)){if(t.strict)throw Error(`[destr] Possible prototype pollution`);return JSON.parse(e,Qr)}return JSON.parse(e)}catch(n){if(t.strict)throw n;return e}}var ti=class extends Error{constructor(e,t){super(e,t),this.name=`FetchError`,t?.cause&&!this.cause&&(this.cause=t.cause)}};function ni(e){let t=e.error?.message||e.error?.toString()||``,n=e.request?.method||e.options?.method||`GET`,r=e.request?.url||String(e.request)||`/`,i=new ti(`${`[${n}] ${JSON.stringify(r)}`}: ${e.response?`${e.response.status} ${e.response.statusText}`:`<no response>`}${t?` ${t}`:``}`,e.error?{cause:e.error}:void 0);for(let t of[`request`,`options`,`response`])Object.defineProperty(i,t,{get(){return e[t]}});for(let[t,n]of[[`data`,`_data`],[`status`,`status`],[`statusCode`,`status`],[`statusText`,`statusText`],[`statusMessage`,`statusText`]])Object.defineProperty(i,t,{get(){return e.response&&e.response[n]}});return i}var ri=new Set(Object.freeze([`PATCH`,`POST`,`PUT`,`DELETE`]));function ii(e=`GET`){return ri.has(e.toUpperCase())}function ai(e){if(e===void 0)return!1;let t=typeof e;return t===`string`||t===`number`||t===`boolean`||t===null?!0:t===`object`?Array.isArray(e)?!0:e.buffer||e instanceof FormData||e instanceof URLSearchParams?!1:e.constructor&&e.constructor.name===`Object`||typeof e.toJSON==`function`:!1}var oi=new Set([`image/svg`,`application/xml`,`application/xhtml`,`application/html`]),si=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function ci(e=``){if(!e)return`json`;let t=e.split(`;`).shift()||``;return si.test(t)?`json`:t===`text/event-stream`?`stream`:oi.has(t)||t.startsWith(`text/`)?`text`:`blob`}function li(e,t,n,r){let i=ui(t?.headers??e?.headers,n?.headers,r),a;return(n?.query||n?.params||t?.params||t?.query)&&(a={...n?.params,...n?.query,...t?.params,...t?.query}),{...n,...t,query:a,params:a,headers:i}}function ui(e,t,n){if(!t)return new n(e);let r=new n(t);if(e)for(let[t,i]of Symbol.iterator in e||Array.isArray(e)?e:new n(e))r.set(t,i);return r}async function di(e,t){if(t){if(Array.isArray(t))for(let n of t)await n(e);else await t(e)}}var fi=new Set([408,409,425,429,500,502,503,504]),pi=new Set([101,204,205,304]);function mi(e={}){let{fetch:t=globalThis.fetch,Headers:n=globalThis.Headers,AbortController:r=globalThis.AbortController}=e;async function i(e){let t=e.error&&e.error.name===`AbortError`&&!e.options.timeout||!1;if(e.options.retry!==!1&&!t){let t;t=typeof e.options.retry==`number`?e.options.retry:+!ii(e.options.method);let n=e.response&&e.response.status||500;if(t>0&&(Array.isArray(e.options.retryStatusCodes)?e.options.retryStatusCodes.includes(n):fi.has(n))){let n=typeof e.options.retryDelay==`function`?e.options.retryDelay(e):e.options.retryDelay||0;return n>0&&await new Promise(e=>setTimeout(e,n)),a(e.request,{...e.options,retry:t-1})}}let n=ni(e);throw Error.captureStackTrace&&Error.captureStackTrace(n,a),n}let a=async function(a,o={}){let s={request:a,options:li(a,o,e.defaults,n),response:void 0,error:void 0};if(s.options.method&&(s.options.method=s.options.method.toUpperCase()),s.options.onRequest&&(await di(s,s.options.onRequest),s.options.headers instanceof n||(s.options.headers=new n(s.options.headers||{}))),typeof s.request==`string`&&(s.options.baseURL&&(s.request=Ue(s.request,s.options.baseURL)),s.options.query&&(s.request=qe(s.request,s.options.query),delete s.options.query),`query`in s.options&&delete s.options.query,`params`in s.options&&delete s.options.params),s.options.body&&ii(s.options.method)){if(ai(s.options.body)){let e=s.options.headers.get(`content-type`);typeof s.options.body!=`string`&&(s.options.body=e===`application/x-www-form-urlencoded`?new URLSearchParams(s.options.body).toString():JSON.stringify(s.options.body)),e||s.options.headers.set(`content-type`,`application/json`),s.options.headers.has(`accept`)||s.options.headers.set(`accept`,`application/json`)}else(`pipeTo`in s.options.body&&typeof s.options.body.pipeTo==`function`||typeof s.options.body.pipe==`function`)&&(`duplex`in s.options||(s.options.duplex=`half`))}let c;if(!s.options.signal&&s.options.timeout){let e=new r;c=setTimeout(()=>{let t=Error(`[TimeoutError]: The operation was aborted due to timeout`);t.name=`TimeoutError`,t.code=23,e.abort(t)},s.options.timeout),s.options.signal=e.signal}try{s.response=await t(s.request,s.options)}catch(e){return s.error=e,s.options.onRequestError&&await di(s,s.options.onRequestError),await i(s)}finally{c&&clearTimeout(c)}if((s.response.body||s.response._bodyInit)&&!pi.has(s.response.status)&&s.options.method!==`HEAD`){let e=(s.options.parseResponse?`json`:s.options.responseType)||ci(s.response.headers.get(`content-type`)||``);switch(e){case`json`:{let e=await s.response.text(),t=s.options.parseResponse||ei;s.response._data=t(e);break}case`stream`:s.response._data=s.response.body||s.response._bodyInit;break;default:s.response._data=await s.response[e]()}}return s.options.onResponse&&await di(s,s.options.onResponse),!s.options.ignoreResponseError&&s.response.status>=400&&s.response.status<600?(s.options.onResponseError&&await di(s,s.options.onResponseError),await i(s)):s.response},o=async function(e,t){return(await a(e,t))._data};return o.raw=a,o.native=(...e)=>t(...e),o.create=(t={},n={})=>mi({...e,...n,defaults:{...e.defaults,...n.defaults,...t}}),o}var hi=(function(){if(typeof globalThis<`u`)return globalThis;if(typeof self<`u`)return self;if(typeof window<`u`)return window;if(typeof global<`u`)return global;throw Error(`unable to locate global object`)})(),gi=hi.fetch?(...e)=>hi.fetch(...e):()=>Promise.reject(Error(`[ofetch] global.fetch is not supported!`)),_i=hi.Headers,vi=hi.AbortController,yi=mi({fetch:gi,Headers:_i,AbortController:vi}),bi=()=>window?.__NUXT__?.config||window?.useNuxtApp?.().payload?.config,xi=()=>bi().app,Si=()=>xi().baseURL,Ci=()=>xi().buildAssetsDir,wi=(...e)=>Je(Ti(),Ci(),...e),Ti=(...e)=>{let t=xi(),n=t.cdnURL||t.baseURL;return e.length?Je(n,...e):n};globalThis.__buildAssetsURL=wi,globalThis.__publicAssetsURL=Ti,globalThis.$fetch||(globalThis.$fetch=yi.create({baseURL:Si()}));var Ei=globalThis.$fetch;`global`in globalThis||(globalThis.global=globalThis);function Di(e,t){t.push(r),e.vueApp.use(t);let n=!0,i=()=>{n=!1,t.render()};t.hooks?.hook(`dom:beforeRender`,e=>{e.shouldRender=!n}),e.hooks.hook(`page:start`,()=>{n=!0}),e.hooks.hook(`page:finish`,()=>{e.isHydrating||i()}),e.hooks.hook(`app:error`,i),e.hooks.hook(`app:suspense:resolve`,i);let a=t.push.bind(t);t.push=((t,n)=>{let r=a(t,n),i=r.dispose.bind(r);return r.dispose=()=>{let t=e[`~transitionPromise`];t?t.finally(i):i()},r})}function Oi(e,t){if(typeof t==`function`&&t.key&&e.plugins.has(t.key))return;let n=typeof t==`function`?t(e):t,r=n.key||String(e.plugins.size+1);if(!e.plugins.get(r)){e.plugins.set(r,n);for(let t in n.hooks||{})e.hooks?.hook(t,n.hooks[t])}}function ki(e,t={}){let n=!t.document,r=new Map,i={_entryCount:1,_h:0,plugins:new Map,resolvedOptions:t,ssr:n,entries:r,hooks:void 0,render:()=>e(i),use:e=>Oi(i,e),push(e,t){let a=t?._index??i._entryCount++,o=t?{...t}:{};delete o.head,delete o.onRendered,delete o._index;let s={_i:a,input:e,options:o};return r.set(a,s),{_i:a,dispose(){r.delete(a)},patch(e){n?(s.input=e,delete s._tags):s._pending=e,r.has(a)||r.set(a,s)}}}};return t.init?.forEach(e=>e&&i.push(e)),i}function Ai(e,t,n){let r=e.push,i=e;i.ssr=!1,i.hooks=t,i.dirty=!!i.dirty,i.use=e=>Oi(i,e),i.render=()=>n(i);function a(){t.callHook(`entries:updated`,i),i._b||i.render()}return i.invalidate=()=>{for(let e of i.entries.values())delete e._tags;i.dirty=!0,a()},i.push=(n,o)=>{let s=o?.onRendered?t.hook(`dom:rendered`,o.onRendered):void 0,c=r(n,o),l=e.entries.get(c._i);return l&&(l._o=n),i.dirty=!0,a(),{_i:c._i,patch(e){c.patch(e),i.dirty=!0,a()},dispose(){s?.(),e.entries.has(c._i)&&(c.dispose(),i.invalidate())}}},i}var ji=/\s+/;function Mi(e={}){return t=>Fi(t,e)}function Ni(e){for(let t of e.entries.values())if(t._pending!==void 0)return!0;return!1}function Pi(e,t){let n={_d:t,_t:t.title,_e:new Map([[`htmlAttrs`,t.documentElement],[`bodyAttrs`,t.body]]),_p:{},_s:{},_l:new Map};for(let t of e.entries.values())if(t._o!==void 0){let e=t._o;for(let t of[`bodyAttrs`,`htmlAttrs`]){let r=e[t]?.class;if(typeof r==`string`){let e=n._e.get(t);for(let i of r.split(ji))i&&(n._p[`${t}:attr:class:${i}`]=()=>e.classList.remove(i))}}}return n}function Fi(e,t={}){let n=t.document||e.resolvedOptions.document,r=e._dom;if(!n||e._du||r&&r._d===n&&!e.dirty&&!Ni(e))return!1;let i=n.defaultView;e._du=!0;let a=!1;try{let o=function(e,t,n){d._s[e]=!n&&f[e]||t,delete f[e]},s=function(e,t,n,r,i,a){let s=`${e}:event:${t}`,c=d._l.get(s);if(c&&c[0]===a&&c[1]===n&&c[2]===r){o(s,c[4]);return}c?.[4]();let l=`data-${t}`,u=(e=>r.call(i,e)),f=()=>{a.removeEventListener(n,u),i.getAttribute(l)===``&&i.removeAttribute(l),d._l.get(s)?.[3]===u&&d._l.delete(s)};a.addEventListener(n,u),d._l.set(s,[a,n,r,u,f]),i.setAttribute(l,``),o(s,f,!0)},c=function({id:e,$el:t,tag:n}){if(d._e.set(e,t),!n.tag.endsWith(`Attrs`)){let r=n.textContent;r!=null&&r!==``&&(r!==t.textContent&&(t.textContent=r),o(`${e}:text`,()=>{t.textContent===r&&(t.textContent=``)},!0));let i=n.innerHTML;i!=null&&i!==``&&(i!==t.innerHTML&&(t.innerHTML=i),o(`${e}:html`,()=>{t.innerHTML===i&&(t.innerHTML=``)},!0));let a=`${e}:el`;o(a,f[a]||(()=>{t?.remove(),d._e.delete(e)}))}for(let r in n.props){let a=n.props[r];if(r[0]===`o`&&r[1]===`n`&&typeof a==`function`){let o=r.slice(2);t?.dataset?.[`${r}fired`]&&a.call(t,new((i?.Event)||Event)(o)),s(e,r,o,a,t,n.tag===`bodyAttrs`&&i?i:t);continue}let c=`${e}:attr:${r}`;if(r===`class`&&a)for(let e of a){let n=`${c}:${e}`;o(n,f[n]||(()=>t.classList.remove(e))),t.classList.contains(e)||t.classList.add(e)}else if(r===`style`&&a)for(let[e,n]of a){let r=`${c}:${e}`;o(r,f[r]||(()=>t.style.removeProperty(e))),t.style.setProperty(e,n)}else a!==!1&&a!==null&&(t.getAttribute(r)!==a&&t.setAttribute(r,a===!0?``:String(a)),o(c,f[c]||(()=>t.removeAttribute(r))))}},l={shouldRender:!0,tags:[]};if(fn(e,`dom:beforeRender`,l),!l.shouldRender)return!1;let u=r;if(u?._d!==n){if(u){for(let e in u._s)u._s[e]();for(let e in u._p)u._p[e]();u._s=u._p={},u._e.clear(),u._l.clear()}u=void 0}u?u._p=u._s:u=Pi(e,n),u._s={};let d=u,f=d._p,p=[],m={};e.dirty=!1;let h=cn(e,t.tagWeight?{tagWeight:t.tagWeight}:void 0),g=[],_={};for(let e of h){let t=_[e._d]||0,r=(t?`${e._d}:${t}`:e._d)||e._h,i={tag:e,id:r,shouldRender:!0};e.tag===`meta`&&e._d&&mn(e._d)&&(_[e._d]=t+1),g.push(i),e.tag===`title`?(n.title=e.textContent,o(`title:`,()=>n.title=d._t)):(i.$el=d._e.get(r),i.$el?c(i):ln.has(e.tag)&&p.push(i))}if(p.length){let e=new Set(d._e.values());for(let t of[...n.body.children,...n.head.children]){let n=t.tagName.toLowerCase();if(!ln.has(n)||e.has(t))continue;let r={innerHTML:t.innerHTML};for(let e of t.getAttributeNames())r[e]=t.getAttribute(e);let i=gn({tag:n,props:{}},r);i.key=t.getAttribute(`data-hid`)||void 0;let a=dn(i)||sn(i),o=a,s=1;for(;d._e.has(o);)o=`${a}:${s++}`;d._e.set(o,t)}}for(let e of p){let t=d._e.get(e.id);e.$el=t||n.createElement(e.tag.tag),c(e),t||(m[e.tag.tagPosition||`head`]??=n.createDocumentFragment()).appendChild(e.$el)}m.head&&n.head.appendChild(m.head),m.bodyOpen&&n.body.insertBefore(m.bodyOpen,n.body.firstChild),m.bodyClose&&n.body.appendChild(m.bodyClose);for(let e in f)f[e]();e._dom=d,a=!0,fn(e,`dom:rendered`,{renders:g})}catch(t){throw e.dirty=!0,t}finally{e._du=!1}return a&&(e.dirty||Ni(e))&&Fi(e,t),a}var Ii=e=>typeof e.tagPriority==`number`?e.tagPriority:100+(un[e.tagPriority]||0);function Li(e={}){e.document=e.document||(typeof window<`u`?document:void 0);let t=e.render||Mi({document:e.document}),n=Ai(ki(t,{document:e.document,propResolvers:e.propResolvers,_tagWeight:Ii,init:[]}),vn(e.hooks),t);return e.plugins?.forEach(e=>n.use(e)),e.init?.forEach(e=>e&&n.push(e)),n}function Ri(e,t){return t&&typeof e==`function`&&(e.key=t),e}var zi=/\\/g,Bi=/</g,Vi=/"/g,Hi=/%\w+(?:\.\w+)?/g,Ui=`%separator`;function Wi(e,t,n=!1){let r;if(t===`s`||t===`pageTitle`)r=e.pageTitle;else if(t.includes(`.`)){let n=t.indexOf(`.`);r=e[t.substring(0,n)]?.[t.substring(n+1)]}else r=e[t];if(r!==void 0){let e=String(typeof r==`number`?r:r||``);return n?e.replace(zi,`\\\\`).replace(Bi,`\\u003C`).replace(Vi,`\\"`):e}}function Gi(e,t,n,r=!1){if(typeof e!=`string`||!e.includes(`%`))return e;let i=e;try{i=decodeURI(e)}catch{}let a=i.match(Hi);if(!a)return e;let o=e.includes(Ui);return e=e.replace(Hi,e=>{if(e===Ui||!a.includes(e))return e;let n=Wi(t,e.slice(1),r);return n===void 0?e:n}).trim(),o&&(e=e.split(Ui).map(e=>e.trim()).filter(e=>e!==``).join(n?` ${n} `:` `)),e}var Ki=(e,t)=>e._w===t._w?e._p-t._p:e._w-t._w,qi=e=>e.includes(`:key`)?e:e.split(`:`).join(`:key:`),Ji=Ri({key:`aliasSorting`,hooks:{"tags:resolve":e=>{let t=!1;for(let n of e.tags){let r=n.tagPriority;if(!r)continue;let i=String(r);if(i.startsWith(`before:`)){let r=qi(i.slice(7)),a=e.tagMap.get(r);a&&(typeof a.tagPriority==`number`&&(n.tagPriority=a.tagPriority),n._p=a._p-1,t=!0)}else if(i.startsWith(`after:`)){let r=qi(i.slice(6)),a=e.tagMap.get(r);a&&(typeof a.tagPriority==`number`&&(n.tagPriority=a.tagPriority),n._p=a._p+1,t=!0)}}t&&(e.tags=e.tags.sort(Ki))}}}),Yi=Ri({key:`deprecations`,hooks:{"entries:normalize":({tags:e})=>{for(let t of e)t.props.children&&(t.innerHTML=t.props.children,delete t.props.children),t.props.hid&&(t.key=t.props.hid,delete t.props.hid),t.props.vmid&&(t.key=t.props.vmid,delete t.props.vmid),`body`in t.props&&(t.props.body&&(t.tagPosition=`bodyClose`),delete t.props.body),t.props.renderPriority!=null&&(t.tagPriority=t.props.renderPriority,delete t.props.renderPriority)}}});function Xi(e){return typeof e?.then==`function`}var Zi=256;function Qi(e,t){if(t===e.length)return;if(t===Zi){let n=Array(e.length),r=!1;for(;t<e.length;t++){let i=ea(e[t]);n[t]=i,r||=Xi(i)}return r?n:void 0}let n=ea(e[t]);if(Xi(n)){let r=Array(e.length);r[t]=n;for(let n=t+1;n<e.length;n++)r[n]=ea(e[n]);return r}let r=Qi(e,t+1);return r&&(r[t]=n),r}function $i(e,t,n){if(n===t.length)return;if(n===Zi){let r=Array(t.length),i=!1;for(;n<t.length;n++){let a=ea(e[t[n]]);r[n]=a,i||=Xi(a)}return i?r:void 0}let r=ea(e[t[n]]);if(Xi(r)){let i=Array(t.length);i[n]=r;for(let r=n+1;r<t.length;r++)i[r]=ea(e[t[r]]);return i}let i=$i(e,t,n+1);return i&&(i[n]=r),i}function ea(e){if(typeof e==`function`)return e;if(Xi(e))return Promise.resolve(e).then(ea);if(Array.isArray(e)){let t=Qi(e,0);return t?Promise.all(t):e}if(e?.constructor===Object){let t=Object.keys(e),n=$i(e,t,0);if(n)return Promise.all(n).then(e=>Object.fromEntries(t.map((t,n)=>[t,e[n]])))}return e}var ta=Ri(e=>{let t=new WeakMap;return{key:`promises`,hooks:{"entries:resolve":n=>{for(let r=n.entries.length-1;r>=0;r--){let i=n.entries[r],a=i.input;if(t.get(i)===a){n.entries.splice(r,1);continue}let o=ea(a);Xi(o)?(t.set(i,a),n.entries.splice(r,1),Promise.resolve(o).then(n=>{t.get(i)===a&&(t.delete(i),i.input=n,delete i._tags,e.invalidate?.())},()=>{t.get(i)===a&&t.delete(i)})):t.delete(i)}}}}},`promises`),na={meta:`content`,link:`href`,htmlAttrs:`lang`},ra=[`innerHTML`,`textContent`];function ia(e,t,n,r=!1){return typeof e==`string`&&e.includes(`%`)?Gi(e,t,n,r):e}var aa=Ri(e=>({key:`template-params`,hooks:{"tags:resolve":({tagMap:t,tags:n})=>{let r=t.get(`templateParams`)?.props||{},i=r.separator||`|`;delete r.separator,r.pageTitle=ia(r.pageTitle||e._title||``,r,i);for(let e of n){if(e.processTemplateParams===!1)continue;let t=na[e.tag];if(t&&typeof e.props[t]==`string`)e.props[t]=ia(e.props[t],r,i);else if(e.processTemplateParams||e.tag===`titleTemplate`||e.tag===`title`)for(let t of ra)typeof e[t]==`string`&&(e[t]=ia(e[t],r,i,e.tag===`script`&&typeof e.props.type==`string`&&e.props.type.endsWith(`json`)))}e._templateParams=r,e._separator=i},"tags:afterResolve":({tagMap:t})=>{let n=t.get(`title`);n?.textContent&&n.processTemplateParams!==!1&&(n.textContent=ia(n.textContent,e._templateParams,e._separator))}}}),`template-params`);function oa(e={}){let t=Mi(),n,r=0;return n=Li({render:()=>{let e=++r;setTimeout(()=>{e===r&&t(n)},0)},...e}),n.install=hn(n),n}var sa={disableDefaults:!0,plugins:[Yi,ta,aa,Ji]},ca=o({name:`nuxt:head`,enforce:`pre`,setup(e){Di(e,oa(sa))}}),la=/(:\w+)\([^)]+\)/g,ua=/(:\w+)[?+*]/g,da=/:\w+/g,fa=(e,t)=>t.path.replace(la,`$1`).replace(ua,`$1`).replace(da,t=>e.params[t.slice(1)]?.toString()||``),pa=(e,t)=>{let n=e.route.matched.find(t=>t.components?.default===e.Component.type),r=t??n?.meta.key??(n&&fa(e.route,n));return typeof r==`function`?r(e.route):r},ma=(e,t)=>({default:()=>e?_(Se,e===!0?{}:e,t):t});function ha(e){return Array.isArray(e)?e:[e]}var ga=()=>({}),_a=()=>location.protocol+`//`+location.host;function va(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),bt(n,``)}return bt(n,e)+r+i}function ya(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=va(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:Bt.pop,direction:u?u>0?jt.forward:jt.back:jt.unknown})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(Ct({},e.state,{scroll:en()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function ba(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?en():null}}function xa(e){let{history:t,location:n}=window,r={value:va(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:_a()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,Ct({},t.state,ba(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=Ct({},i.value,t.state,{forward:e,scroll:en()});a(o.current,o,!0),a(e,Ct({},ba(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function Sa(e){e=on(e);let t=xa(e),n=ya(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=Ct({location:``,base:e,go:r,createHref:an.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var Ca=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.Group=2]=`Group`,e}({}),wa=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.ParamRegExp=2]=`ParamRegExp`,e[e.ParamRegExpEnd=3]=`ParamRegExpEnd`,e[e.EscapeNext=4]=`EscapeNext`,e}(wa||{}),Ta={type:Ca.Static,value:``},Ea=/[a-zA-Z0-9_]/;function Da(e){if(!e)return[[]];if(e===`/`)return[[Ta]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=wa.Static,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===wa.Static?a.push({type:Ca.Static,value:l}):n===wa.Param||n===wa.ParamRegExp||n===wa.ParamRegExpEnd?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:Ca.Param,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;s<e.length;)if(c=e[s++],c===`\\`&&n!==wa.ParamRegExp)r=n,n=wa.EscapeNext;else switch(n){case wa.Static:c===`/`?(l&&d(),o()):c===`:`?(d(),n=wa.Param):f();break;case wa.EscapeNext:f(),n=r;break;case wa.Param:c===`(`?n=wa.ParamRegExp:Ea.test(c)?f():(d(),n=wa.Static,c!==`*`&&c!==`?`&&c!==`+`&&s--);break;case wa.ParamRegExp:c===`)`?u[u.length-1]==`\\`?u=u.slice(0,-1)+c:n=wa.ParamRegExpEnd:u+=c;break;case wa.ParamRegExpEnd:d(),n=wa.Static,c!==`*`&&c!==`?`&&c!==`+`&&s--,u=``;break;default:t(`Unknown state`)}return n===wa.ParamRegExp&&t(`Unfinished custom RegExp for param "${l}"`),d(),o(),i}var Oa=`[^/]+?`,ka={sensitive:!1,strict:!1,start:!0,end:!0},Aa=function(e){return e[e._multiplier=10]=`_multiplier`,e[e.Root=90]=`Root`,e[e.Segment=40]=`Segment`,e[e.SubSegment=30]=`SubSegment`,e[e.Static=40]=`Static`,e[e.Dynamic=20]=`Dynamic`,e[e.BonusCustomRegExp=10]=`BonusCustomRegExp`,e[e.BonusWildcard=-50]=`BonusWildcard`,e[e.BonusRepeatable=-20]=`BonusRepeatable`,e[e.BonusOptional=-8]=`BonusOptional`,e[e.BonusStrict=.7000000000000001]=`BonusStrict`,e[e.BonusCaseSensitive=.25]=`BonusCaseSensitive`,e}(Aa||{}),ja=/[.+*?^${}()[\]/\\]/g;function Ma(e,t){let n=Ct({},ka,t),r=[],i=n.start?`^`:``,a=[];for(let t of e){let e=t.length?[]:[Aa.Root];n.strict&&!t.length&&(i+=`/`);for(let r=0;r<t.length;r++){let o=t[r],s=Aa.Segment+(n.sensitive?Aa.BonusCaseSensitive:0);if(o.type===Ca.Static)r||(i+=`/`),i+=o.value.replace(ja,`\\$&`),s+=Aa.Static;else if(o.type===Ca.Param){let{value:e,repeatable:n,optional:c,regexp:l}=o;a.push({name:e,repeatable:n,optional:c});let u=l||Oa;if(u!==Oa){s+=Aa.BonusCustomRegExp;try{`${u}`}catch(t){throw Error(`Invalid custom RegExp for param "${e}" (${u}): `+t.message)}}let d=n?`((?:${u})(?:/(?:${u}))*)`:`(${u})`;r||(d=c&&t.length<2?`(?:/${d})`:`/`+d),c&&(d+=`?`),i+=d,s+=Aa.Dynamic,c&&(s+=Aa.BonusOptional),n&&(s+=Aa.BonusRepeatable),u===`.*`&&(s+=Aa.BonusWildcard)}e.push(s)}r.push(e)}if(n.strict&&n.end){let e=r.length-1;r[e][r[e].length-1]+=Aa.BonusStrict}n.strict||(i+=`/?`),n.end?i+=`$`:n.strict&&!i.endsWith(`/`)&&(i+=`(?:/|$)`);let o=new RegExp(i,n.sensitive?``:`i`);function s(e){let t=e.match(o),n={};if(!t)return null;for(let e=1;e<t.length;e++){let r=t[e]||``,i=a[e-1];n[i.name]=r&&i.repeatable?r.split(`/`):r}return n}function c(t){let n=``,r=!1;for(let i of e){r&&n.endsWith(`/`)||(n+=`/`),r=!1;for(let e of i)if(e.type===Ca.Static)n+=e.value;else if(e.type===Ca.Param){let{value:a,repeatable:o,optional:s}=e,c=a in t?t[a]:``;if(Rt(c)&&!o)throw Error(`Provided param "${a}" is an array but it is not repeatable (* or + modifiers)`);let l=Rt(c)?c.join(`/`):c;if(!l){if(s)i.length<2&&(n.endsWith(`/`)?n=n.slice(0,-1):r=!0);else throw Error(`Missing required param "${a}"`)}n+=l}}return n||`/`}return{re:o,score:r,keys:a,parse:s,stringify:c}}function Na(e,t){let n=0;for(;n<e.length&&n<t.length;){let r=t[n]-e[n];if(r)return r;n++}return e.length<t.length?e.length===1&&e[0]===Aa.Static+Aa.Segment?-1:1:e.length>t.length?t.length===1&&t[0]===Aa.Static+Aa.Segment?1:-1:0}function Pa(e,t){let n=0,r=e.score,i=t.score;for(;n<r.length&&n<i.length;){let e=Na(r[n],i[n]);if(e)return e;n++}if(Math.abs(i.length-r.length)===1){if(Fa(r))return 1;if(Fa(i))return-1}return i.length-r.length}function Fa(e){let t=e[e.length-1];return e.length>0&&t[t.length-1]<0}var Ia={strict:!1,end:!0,sensitive:!1};function La(e,t,n){let r=Ma(Da(e.path),n),i=Ct(r,{record:e,parent:t,children:[],alias:[]});return t&&!i.record.aliasOf==!t.record.aliasOf&&t.children.push(i),i}function Ra(e,t){let n=[],r=new Map;t=ct(Ia,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=Ba(e);s.aliasOf=r&&r.record;let l=ct(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(Ba(Ct({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=La(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!Ha(d)&&o(e.name)),Ka(d)&&c(d),s.children){let e=s.children;for(let t=0;t<e.length;t++)a(e[t],d,r&&r.children[t])}r||=d}return f?()=>{o(f)}:mt}function o(e){if(lt(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=Wa(e,n);n.splice(t,0,e),e.record.name&&!Ha(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw Et(Ot.MATCHER_NOT_FOUND,{location:e});s=i.record.name,a=Ct(za(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&za(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name);else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw Et(Ot.MATCHER_NOT_FOUND,{location:e,currentLocation:t});s=i.record.name,a=Ct({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:Ua(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function za(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Ba(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Va(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Va(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function Ha(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Ua(e){return e.reduce((e,t)=>Ct(e,t.meta),{})}function Wa(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;Pa(e,t[i])<0?r=i:n=i+1}let i=Ga(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function Ga(e){let t=e;for(;t=t.parent;)if(Ka(t)&&Pa(e,t)===0)return t}function Ka({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function qa(e){let t=T(yt),n=T(_t),r=P(()=>{let n=O(e.to);return t.resolve(n)}),i=P(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(nt.bind(null,i));if(o>-1)return o;let s=Qa(e[t-2]);return t>1&&Qa(i)===s&&a[a.length-1].path!==s?a.findIndex(nt.bind(null,e[t-2])):o}),a=P(()=>i.value>-1&&Za(n.params,r.value.params)),o=P(()=>i.value>-1&&i.value===n.matched.length-1&&ft(n.params,r.value.params));function s(n={}){if(Xa(n)){let n=t[O(e.replace)?`replace`:`push`](O(e.to)).catch(mt);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:P(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function Ja(e){return e.length===1?e[0]:e}var Ya=F({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:qa,setup(e,{slots:t}){let n=me(qa(e)),{options:r}=T(yt),i=P(()=>({[$a(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[$a(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&Ja(t.default(n));return e.custom?r:_(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function Xa(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(e.button===void 0||e.button===0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Za(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!Rt(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function Qa(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var $a=(e,t,n)=>e??t??n,eo=F({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=T(rt),i=P(()=>e.route||r.value),a=T(pt,0),o=P(()=>{let e=O(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=P(()=>i.value.matched[o.value]);he(pt,P(()=>o.value+1)),he(at,s),he(rt,i);let c=V();return w(()=>[c.value,s.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),!e||!t||i&&nt(t,i)&&r||(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=i.value,a=e.name,o=s.value,l=o&&o.components[a];if(!l)return to(n.default,{Component:l,route:r});let u=o.props[a],d=u?u===!0?r.params:typeof u==`function`?u(r):u:null,f=_(l,Ct({},d,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[a]=null)},ref:c}));return to(n.default,{Component:f,route:r})||f}}});function to(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var no=eo;function ro(e){let t=Ra(e.routes,e),n=e.parseQuery||vt,r=e.stringifyQuery||ot,i=e.history,a=St(),o=St(),s=St(),c=Ae(Pt),l=Pt;Ze&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let u=Nt.bind(null,e=>``+e),d=Nt.bind(null,$e),f=Nt.bind(null,rn);function p(e,n){let r,i;return lt(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function m(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function h(){return t.getRoutes().map(e=>e.record)}function g(e){return!!t.getRecordMatcher(e)}function _(e,a){if(a=Ct({},a||c.value),typeof e==`string`){let r=it(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return Ct(r,o,{params:f(o.params),hash:rn(r.hash),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=Ct({},e,{path:it(n,e.path,a.path).path});else{let t=Ct({},e.params);for(let e in t)t[e]??delete t[e];o=Ct({},e,{params:d(t)}),a.params=d(a.params)}let s=t.resolve(o,a),l=e.hash||``;s.params=u(f(s.params));let p=xt(r,Ct({},e,{hash:ht(l),path:s.path})),m=i.createHref(p);return Ct({fullPath:p,hash:l,query:r===ot?Qe(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function v(e){return typeof e==`string`?it(n,e,c.value.path):Ct({},e)}function y(e,t){if(l!==e)return Et(Ot.NAVIGATION_CANCELLED,{from:t,to:e})}function b(e){return C(e)}function x(e){return b(Ct(v(e),{replace:!0}))}function S(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=v(i):{path:i},i.params={}),Ct({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function C(e,t){let n=l=_(e),i=c.value,a=e.state,o=e.force,s=e.replace===!0,u=S(n,i);if(u)return C(Ct(v(u),{state:typeof u==`object`?Ct({},a,u.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&ut(r,i,n)&&(f=Et(Ot.NAVIGATION_DUPLICATED,{to:d,from:i}),le(i,i,!0,!1)),(f?Promise.resolve(f):E(d,i)).catch(e=>Lt(e)?Lt(e,Ot.NAVIGATION_GUARD_REDIRECT)?e:ce(e):oe(e,d,i)).then(e=>{if(e){if(Lt(e,Ot.NAVIGATION_GUARD_REDIRECT))return C(Ct({replace:s},v(e.to),{state:typeof e.to==`object`?Ct({},a,e.to.state):a,force:o}),t||d)}else e=te(d,i,!0,s,a);return ee(d,i,e),e})}function w(e,t){let n=y(e,t);return n?Promise.reject(n):Promise.resolve()}function T(e){let t=j.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function E(e,t){let n,[r,i,s]=nn(e,t);n=gt(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(dt(r,e,t))});let c=w.bind(null,e,t);return n.push(c),ue(n).then(()=>{n=[];for(let r of a.list())n.push(dt(r,e,t));return n.push(c),ue(n)}).then(()=>{n=gt(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(dt(r,e,t))});return n.push(c),ue(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter){if(Rt(r.beforeEnter))for(let i of r.beforeEnter)n.push(dt(i,e,t));else n.push(dt(r.beforeEnter,e,t))}return n.push(c),ue(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=gt(s,`beforeRouteEnter`,e,t,T),n.push(c),ue(n))).then(()=>{n=[];for(let r of o.list())n.push(dt(r,e,t));return n.push(c),ue(n)}).catch(e=>Lt(e,Ot.NAVIGATION_CANCELLED)?e:Promise.reject(e))}function ee(e,t,n){s.list().forEach(r=>T(()=>r(e,t,n)))}function te(e,t,n,r,a){let o=y(e,t);if(o)return o;let s=t===Pt,l=Ze?history.state:{};n&&(r||s?i.replace(e.fullPath,Ct({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,le(e,t,n,s),ce()}let D;function ne(){D||=i.listen((e,t,n)=>{if(!M.listening)return;let r=_(e),a=S(r,M.currentRoute.value);if(a){C(Ct(a,{replace:!0,force:!0}),r).catch(mt);return}l=r;let o=c.value;Ze&&st(et(o.fullPath,n.delta),en()),E(r,o).catch(e=>Lt(e,Ot.NAVIGATION_ABORTED|Ot.NAVIGATION_CANCELLED)?e:Lt(e,Ot.NAVIGATION_GUARD_REDIRECT)?(C(Ct(v(e.to),{force:!0}),r).then(e=>{Lt(e,Ot.NAVIGATION_ABORTED|Ot.NAVIGATION_DUPLICATED)&&!n.delta&&n.type===Bt.pop&&i.go(-1,!1)}).catch(mt),Promise.reject()):(n.delta&&i.go(-n.delta,!1),oe(e,r,o))).then(e=>{e||=te(r,o,!1),e&&(n.delta&&!Lt(e,Ot.NAVIGATION_CANCELLED)?i.go(-n.delta,!1):n.type===Bt.pop&&Lt(e,Ot.NAVIGATION_ABORTED|Ot.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),ee(r,o,e)}).catch(mt)})}let re=St(),ie=St(),ae;function oe(e,t,n){ce(e);let r=ie.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function se(){return ae&&c.value!==Pt?Promise.resolve():new Promise((e,t)=>{re.add([e,t])})}function ce(e){return ae||(ae=!e,ne(),re.list().forEach(([t,n])=>e?n(e):t()),re.reset()),e}function le(t,n,r,i){let{scrollBehavior:a}=e;if(!Ze||!a)return Promise.resolve();let o=!r&&tt(et(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return we().then(()=>a(t,n,o)).then(e=>e&&qt(e)).catch(e=>oe(e,t,n))}let k=e=>i.go(e),A,j=new Set,M={currentRoute:c,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:h,resolve:_,options:e,push:b,replace:x,go:k,back:()=>k(-1),forward:()=>k(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:ie.add,isReady:se,install(e){e.component(`RouterLink`,Ya),e.component(`RouterView`,no),e.config.globalProperties.$router=M,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>O(c)}),Ze&&!A&&c.value===Pt&&(A=!0,b(i.location).catch(e=>{}));let t={};for(let e in Pt)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(yt,M),e.provide(_t,je(t)),e.provide(rt,c);let n=e.unmount;j.add(e),e.unmount=function(){j.delete(e),j.size<1&&(l=Pt,D&&D(),D=null,c.value=Pt,A=!1,ae=!1),n()}}};function ue(e){return e.reduce((e,t)=>e.then(()=>T(t)),Promise.resolve())}return M}var io=It(async e=>{if(!e.meta?.validate)return;let t=await Promise.resolve(e.meta.validate(e));if(t!==!0)return wt({fatal:!0,status:t&&(t.status||t.statusCode)||404,statusText:t&&(t.statusText||t.statusMessage)||`Page Not Found: ${e.fullPath}`,data:{path:e.fullPath}})}),ao=n({docsBase:p,reporters:m}),oo=`modulepreload`,so=function(e,t){return new URL(e,t).href},co={},lo=function(e){return e.pathname.endsWith(`.css`)},uo=function(e,t,n){if(t in e)return e[t];let r=n();if(!r){e[t]=void 0;return}let i=r.then(()=>{e[t]=void 0},n=>{throw e[t]=void 0,n});return e[t]=i,i},K=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=so(t,n);let r=s(t),i=lo(r);return uo(co,r.href,()=>{if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let t=document.createElement(`link`);if(t.rel=i?`stylesheet`:oo,i||(t.as=`script`),t.crossOrigin=``,t.href=r.href,a&&t.setAttribute(`nonce`,a),document.head.appendChild(t),i)return new Promise((e,n)=>{t.addEventListener(`load`,e),t.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${r}`)))})})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},fo=Ei;function po(e){return ga(e)}var mo;function ho(){let e;return e=fo(wi(`builds/meta/${u().app.buildId}.json`),{responseType:`json`}).then(e=>{if(!e||typeof e!=`object`||!Array.isArray(e.prerendered))throw ao.NUXT_E5004();return e}),mo=e,e.catch(t=>{mo===e&&(mo=void 0),ao.NUXT_E5002({cause:t})}),e}function go(){return mo||ho()}function _o(e){let t=typeof e==`string`?e:e.path;try{return po(t)}catch(e){return ao.NUXT_E5003({path:t,cause:e}),{}}}var vo=[io,It(e=>{let t=_o({path:e.path});if(t.redirect){let n=t.redirect.includes(`#`)?t.redirect:t.redirect+e.hash;return Kt(n)?(window.location.href=n,!1):n}})],yo={},bo=[{name:`story-id`,path:`/story/:id()`,component:()=>K(()=>import(`./DRlQgul3.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]),import.meta.url)},{name:`burndown`,path:`/burndown`,component:()=>K(()=>import(`./CvLiA4_O.js`),__vite__mapDeps([15,1,6,2,3,4,5,16,17,9,18,11,19,20,21,12,22,23,24,25,26,27,13,28,7,8,10,29,30,31,32,33,34]),import.meta.url)},{name:`epics`,path:`/epics`,component:()=>K(()=>import(`./COf6E6h4.js`),__vite__mapDeps([35,1,2,3,4,5,6,7,8,9,10,11,12,13,36]),import.meta.url)},{name:`gantt`,path:`/gantt`,component:()=>K(()=>import(`./DRPlYvb3.js`),__vite__mapDeps([37,1,2,3,4,5,6,7,8,9,10,11,12,13,38]),import.meta.url)},{name:`last-change`,path:`/last-change`,component:()=>K(()=>import(`./DrprggWq.js`),__vite__mapDeps([39,1,6,2,3,4,5,7,8,9,10,11,12,13,40]),import.meta.url)},{name:`milestones`,path:`/milestones`,component:()=>K(()=>import(`./P9x67aq2.js`),__vite__mapDeps([41,1,2,3,4,5,6,7,8,9,10,11,12,13,42]),import.meta.url)},{name:`index`,path:`/`,component:()=>K(()=>import(`./BodFvto3.js`),__vite__mapDeps([43,1,6,2,3,4,5,16,17,9,18,11,19,20,21,12,22,23,24,25,26,27,13,28,7,8,10,29,30,31,32,33,44]),import.meta.url)}],xo=/\/(?=$|[?#])/;function So(e,t,n){let{pathname:r,search:i,hash:a}=t,o=e.indexOf(`#`);if(o>-1){let t=a.includes(e.slice(o))?e.slice(o).length:1,n=a.slice(t);return n[0]!==`/`&&(n=`/`+n),We(n,``)}let s=We(r,e),c=!n||Ve(s,n)?s:n;return c+(c.includes(`?`)?``:i)+a}var Co=o({name:`nuxt:router`,enforce:`pre`,async setup(e){let t=u().app.baseURL,n=Sn.history?.(t)??Sa(t),r=Sn.routes?await Sn.routes(bo)??bo:bo,i,a=ro({...Sn,scrollBehavior:(e,t,n)=>{if(t===Pt)i=n;else if(Sn.scrollBehavior){if(a.options.scrollBehavior=Sn.scrollBehavior,`scrollRestoration`in window.history){let e=a.beforeEach(()=>{e(),window.history.scrollRestoration=`manual`})}return Sn.scrollBehavior(e,Pt,i||n)}},history:n,routes:r});`scrollRestoration`in window.history&&(window.history.scrollRestoration=`auto`),e.vueApp.use(a);let o=Ae(a.currentRoute.value);a.afterEach((e,t)=>{o.value=t}),Object.defineProperty(e.vueApp.config.globalProperties,"previousRoute",{get:()=>o.value});let s=So(t,window.location,e.payload.path),c=We(window.location.pathname,t),l=Ae(a.currentRoute.value),d=()=>{l.value=a.currentRoute.value};a.afterEach((e,t)=>{let n=e.matched.at(-1)?.components?.default,r=t.matched.at(-1)?.components?.default;n===r?pa({route:e,Component:{type:n}})===pa({route:t,Component:{type:r}})&&d():e.matched.length<t.matched.length&&e.matched.every((e,n)=>e.components?.default===t.matched[n]?.components?.default)&&d()});let f={sync:d};for(let e in l.value)Object.defineProperty(f,e,{get:()=>l.value[e],enumerable:!0});e._route=je(f),e._middleware||={global:[],named:{}};let p=Yt();a.afterEach(async(t,n,r)=>{delete e._processingMiddleware,!e.isHydrating&&p.value&&!Lt(r,Gt.aborted|Gt.cancelled)&&await e.runWithContext(Qt),r&&await e.callHook(`page:loading:end`)}),a.onError(async()=>{delete e._processingMiddleware,await e.callHook(`page:loading:end`)});try{await a.isReady()}catch(t){await At(e,t)}let m=s===a.currentRoute.value.fullPath?a.currentRoute.value:a.resolve(s),h=a.currentRoute.value.fullPath,g=e.isHydrating&&e.payload.prerenderedAt&&e.payload.path&&s.replace(xo,``)!==e.payload.path.replace(xo,``)&&Ve(a.currentRoute.value.path,e.payload.path);d();function _(r){!e.isHydrating&&r.fullPath!==So(t,window.location)&&n.push(r.fullPath)}a.beforeEach(t=>{if(!e.isHydrating&&ga(t.path).noScripts)return window.location.assign(a.resolve(t.fullPath).href),!1}),a.beforeResolve(e=>{if(e.matched.length||Ve(e.path,c))return;let n=new URL(Ue(e.fullPath,t),window.location.href);if(n.origin===window.location.origin)return window.location.assign(n),!1});let v=e.payload.state._layout;return a.beforeEach(async(t,n)=>{await e.callHook(`page:loading:start`),t.meta=me(t.meta),e.isHydrating&&v&&!ye(t.meta.layout)&&(t.meta.layout=v),e._processingMiddleware=!0;{let r=new Set([...vo,...e._middleware.global]);for(let e of t.matched){let t=e.meta.middleware;if(t)for(let e of ha(t))r.add(e)}let i=_o({path:t.path});if(i.appMiddleware)for(let e in i.appMiddleware)i.appMiddleware[e]?r.add(e):r.delete(e);for(let i of r){let r=typeof i==`string`?e._middleware.named[i]||await yo[i]?.().then(e=>e.default||e):i;if(!r)throw $t.NUXT_E2004({entry:String(i),validMiddleware:void 0});try{let i=await e.runWithContext(()=>r(t,n));if(!e.payload.serverRendered&&e.isHydrating&&(i===!1||i instanceof Error)){let t=i||wt({status:404,statusText:`Page Not Found: ${s}`});return await e.runWithContext(()=>Ht(t)),!1}if(i===!0)continue;if(i===!1)return i;if(i)return tn(i)&&i.fatal&&(await e.runWithContext(()=>Ht(i)),_(t)),i}catch(n){let r=wt(n);return r.fatal&&(await e.runWithContext(()=>Ht(r)),_(t)),r}}}}),a.afterEach((t,n,r)=>{if(t.matched.length===0&&!p.value&&!Lt(r,Gt.aborted|Gt.cancelled))return e.runWithContext(()=>Ht(wt({status:404,fatal:!1,statusText:`Page not found: ${t.fullPath}`,data:{path:t.fullPath}})))}),e.hooks.hookOnce(`app:created`,async()=>{try{if(`name`in m&&(m.name=void 0),a.currentRoute.value.fullPath===h){if(g){let t=a.resolve(e.payload.path);`name`in t&&(t.name=void 0),await a.replace({...t,force:!0});let n=()=>{if(!e[`~restoreDeferredRoute`])return;e[`~restoreDeferredRoute`]=void 0;let t=a.currentRoute,n=a.resolve(s);n.matched.at(-1)===t.value.matched.at(-1)&&(n.meta=t.value.meta),t.value=n,d(),a.replace({...m,force:!0}).catch(()=>{})};e[`~restoreDeferredRoute`]=n,e.hooks.hookOnce(`app:suspense:resolve`,n)}else await a.replace({...m,force:!0})}a.options.scrollBehavior=Sn.scrollBehavior}catch(t){await At(e,t)}}),{provide:{router:a}}}}),wo=o(()=>{let e=zt();Zt(()=>{e.beforeResolve(async()=>{await new Promise(e=>{setTimeout(e,100),requestAnimationFrame(()=>{setTimeout(e,0)})})})})}),To=o(e=>{let t;async function n(){let r;try{r=await go()}catch(e){let t=e;if(!(`status`in t&&(t.status===404||t.status===403)))throw t}t&&clearTimeout(t),t=setTimeout(n,s);try{let n=await Ei(wi(`builds/latest.json`)+`?${Date.now()}`);n.id!==r?.id&&(e.hooks.callHook(`app:manifest:update`,n),t&&clearTimeout(t))}catch{}}Zt(()=>{t=setTimeout(n,s)})});function Eo(e={}){let t=e.path||window.location.pathname,n=new URL(t,window.location.href);if(n.host!==window.location.host)throw $t.NUXT_E2010({path:t});if(n.protocol&&Ke(n.protocol))throw $t.NUXT_E2002({toPath:t,protocol:n.protocol});let r={};try{r=JSON.parse(sessionStorage.getItem(`nuxt:reload`)||`{}`)}catch{}if(e.force||r?.path!==t||r?.expires<Date.now()){try{sessionStorage.setItem(`nuxt:reload`,JSON.stringify({path:t,expires:Date.now()+(e.ttl??1e4)}))}catch{}if(e.persistState)try{sessionStorage.setItem(`nuxt:reload:state`,JSON.stringify({state:l().payload.state}))}catch{}window.location.pathname===t?window.location.reload():window.location.href=t}}var Do=o({name:`nuxt:chunk-reload-crawler`,setup(e){let t=!0;e.hooks.hookOnce(`app:suspense:resolve`,()=>{t=!1}),e.hook(`app:chunkError`,()=>{t&&Vt(navigator.userAgent)&&Eo()})}}),Oo=o({name:`nuxt:chunk-reload`,setup(e){let t=zt(),n=u(),r=new Set;t.beforeEach(()=>{r.clear()}),e.hook(`app:chunkError`,({error:e})=>{r.add(e)});function i(e){Eo({path:He(n.app.baseURL,e.fullPath),persistState:!0})}e.hook(`app:manifest:update`,()=>{t.beforeResolve(i)}),t.onError((e,t)=>{r.has(e)&&i(t)})}}),ko=o({name:`nuxt:island-link-navigation`,setup(e){}}),Ao=Ei;function jo(){return Ao}function Mo(e,t){return typeof e==`object`?e?.[t]:e}var No=o({name:`@nuxt/icon`,setup(){let e=u(),t=wn().icon,n=jo(),r=n.native;On.setFetch((e,t)=>{let n=globalThis.$fetch?.native;return(r||n||globalThis.fetch)(e,t)});let i=Mo(t.provider,`client`),a=[];if(i===`server`){let n=e.app?.baseURL?.replace(/\/$/,``)??``;a.push(n+(t.localApiEndpoint||`/api/_nuxt_icon`)),(t.fallbackToApi===!0||t.fallbackToApi===`client-only`)&&a.push(t.iconifyApiEndpoint)}else i===`none`?On.setFetch(()=>Promise.resolve(new Response)):a.push(t.iconifyApiEndpoint);async function o(e,t){try{let r=await n(a[0]+`/`+t+`.json`,{query:{icons:e.join(`,`)}});if(!r||r.prefix!==t||!r.icons)throw Error(`Invalid data`+JSON.stringify(r));return r}catch(e){return console.error(`Failed to load custom icons`,e),null}}async function s(e,t){let n=[[]],r=0;for(let t of e){let e=encodeURIComponent(t).length;r+e>2e3&&n.at(-1).length&&(n.push([]),r=0),n.at(-1).push(t),r+=e+1}let i=(await Promise.all(n.map(e=>o(e,t)))).filter(e=>!!e);return i.length?i.reduce((e,t)=>({...e,...t,icons:{...e.icons,...t.icons},aliases:{...e.aliases,...t.aliases}})):null}An(``,{resources:a});for(let e of t.customCollections||[])e&&En(s,e)}}),Po=D(()=>K(()=>import(`./C8vL692X.js`).then(e=>e.default||e.default||e),__vite__mapDeps([45,1,11,3,4,18,31,5,6,2,12,22,13]),import.meta.url)),Fo=D(()=>K(()=>import(`./DnDHGSYI.js`).then(e=>e.default||e.default||e),__vite__mapDeps([46,1,6,17,9,18,4,11,3,47,12,21,22,25,26,27,7,8,5,10,13]),import.meta.url)),Io=D(()=>K(()=>import(`./Cz6rZcLK.js`).then(e=>e.default||e.default||e),__vite__mapDeps([48,1,11,3,4,18]),import.meta.url)),Lo=D(()=>K(()=>import(`./1eqboJxR.js`).then(e=>e.default||e.default||e),__vite__mapDeps([49,1,11,3,4,18,50,51,22,7,8,9,5,6,10,12,13,29]),import.meta.url)),Ro=D(()=>K(()=>import(`./DqZgF3hU.js`).then(e=>e.default||e.default||e),__vite__mapDeps([52,1,11,3,4,18]),import.meta.url)),zo=D(()=>K(()=>import(`./vwxaNGfc.js`).then(e=>e.default||e.default||e),__vite__mapDeps([53,1,11,3,4,18,7,8,9,5,6,10,12,13,31,2,22,50]),import.meta.url)),Bo=D(()=>K(()=>import(`./2K7ag6ES.js`).then(e=>e.default||e.default||e),__vite__mapDeps([54,1,11,3,4,18,7,8,9,5,6,10,12,13,31,2,22,50]),import.meta.url)),Vo=D(()=>K(()=>import(`./BaG8y0Wt.js`).then(e=>e.default||e.default||e),__vite__mapDeps([55,1,11,3,4,18]),import.meta.url)),Ho=D(()=>K(()=>import(`./CqoQ__I_.js`).then(e=>e.default||e.default||e),__vite__mapDeps([56,1,11,3,4,18]),import.meta.url)),Uo=D(()=>K(()=>import(`./BpWeHLuN.js`).then(e=>e.default||e.default||e),__vite__mapDeps([57,1,11,3,4,18,30,12,26,7,8,9,5,6,10,13,31,2,22,29]),import.meta.url)),Wo=D(()=>K(()=>import(`./D2FhHl1o.js`).then(e=>e.default||e.default||e),__vite__mapDeps([58,1,11,3,4,18,59,6,17,9,21,12,22,25,27,32,60,20,33,61,7,8,5,10,13]),import.meta.url)),Go=D(()=>K(()=>import(`./CJMBJQuf.js`).then(e=>e.default||e.default||e),__vite__mapDeps([61,1,4,11,3,7,8,9,5,6,10,12,13]),import.meta.url)),Ko=D(()=>K(()=>import(`./DbHiyab-.js`).then(e=>e.default||e.default||e),__vite__mapDeps([62,1,11,3,4,18]),import.meta.url)),qo=D(()=>K(()=>import(`./Cvs12oA0.js`).then(e=>e.default||e.default||e),__vite__mapDeps([63,1,6,11,3,4,19,18,20,21,12,22,23,25,17,9,33,60,27,7,8,5,10,13,61]),import.meta.url)),Jo=D(()=>K(()=>import(`./CMUi2-Lj.js`).then(e=>e.default||e.default||e),__vite__mapDeps([64,1,11,3,4,18,12,26,7,8,9,5,6,10,13]),import.meta.url)),Yo=D(()=>K(()=>import(`./CK-lOYG9.js`).then(e=>e.default||e.default||e),__vite__mapDeps([65,1,11,3,4,18]),import.meta.url)),Xo=D(()=>K(()=>import(`./DIc8yx98.js`).then(e=>e.default||e.default||e),__vite__mapDeps([66,1,11,3,4,18,22,50]),import.meta.url)),Zo=D(()=>K(()=>import(`./DSLbmoWa.js`).then(e=>e.default||e.default||e),__vite__mapDeps([67,1,11,3,4,18,22]),import.meta.url)),Qo=D(()=>K(()=>import(`./CLBcBrYf.js`).then(e=>e.default||e.default||e),__vite__mapDeps([68,3,1,11,4,18]),import.meta.url)),$o=D(()=>K(()=>import(`./BDK2Hj7B.js`).then(e=>e.default||e.default||e),__vite__mapDeps([69,3,1,11,4,18,7,8,9,5,6,10,12,13]),import.meta.url)),es=D(()=>K(()=>import(`./D75vbfSb.js`).then(e=>e.default||e.default||e),__vite__mapDeps([70,3,1,11,4,18,7,8,9,5,6,10,12,13]),import.meta.url)),ts=D(()=>K(()=>import(`./uKzCKCTq.js`).then(e=>e.default||e.default||e),__vite__mapDeps([71,3,1,11,4,18]),import.meta.url)),ns=D(()=>K(()=>import(`./CgDTd7jS.js`).then(e=>e.default||e.default||e),__vite__mapDeps([72,1,11,3,4,18]),import.meta.url)),rs=D(()=>K(()=>import(`./CPCUMJnF.js`).then(e=>e.default||e.default||e),__vite__mapDeps([73,1,11,3,4,18,7,8,9,5,6,10,12,13]),import.meta.url)),is=D(()=>K(()=>import(`./D99LbGfb.js`).then(e=>e.default||e.default||e),__vite__mapDeps([74,3,1,6,17,9,18,4,11,21,12,22,27]),import.meta.url)),as=D(()=>K(()=>import(`./DajA-Tkt.js`).then(e=>e.default||e.default||e),__vite__mapDeps([75,1,11,3,4,18]),import.meta.url)),os=D(()=>K(()=>import(`./Dg2LiqmN.js`).then(e=>e.default||e.default||e),__vite__mapDeps([76,1,11,3,4,18]),import.meta.url)),ss=D(()=>K(()=>import(`./yh6sf_D5.js`).then(e=>e.default||e.default||e),__vite__mapDeps([77,1,11,3,4,18]),import.meta.url)),cs=D(()=>K(()=>import(`./DqcxvfbD.js`).then(e=>e.default||e.default||e),__vite__mapDeps([78,1,11,3,4,18]),import.meta.url)),ls=D(()=>K(()=>import(`./CyEXFe3V.js`).then(e=>e.default||e.default||e),__vite__mapDeps([79,1,11,3,4,18,21,12,30,26,7,8,9,5,6,10,13,31,2,22,29,61]),import.meta.url)),us=D(()=>K(()=>import(`./assMu_Wn.js`).then(e=>e.default||e.default||e),__vite__mapDeps([80,1,11,3,4,18,21,12,7,8,9,5,6,10,13,30,26,31,2,22,29]),import.meta.url)),ds=D(()=>K(()=>import(`./DpXJ_tCU.js`).then(e=>e.default||e.default||e),__vite__mapDeps([81,1]),import.meta.url)),fs=D(()=>K(()=>import(`./Du91iq0p.js`).then(e=>e.default||e.default||e),__vite__mapDeps([82,1,11,3,4,18]),import.meta.url)),ps=D(()=>K(()=>import(`./DsA2lVci.js`).then(e=>e.default||e.default||e),__vite__mapDeps([83,1,11,3,4,18]),import.meta.url)),ms=D(()=>K(()=>import(`./D5CE81jK.js`).then(e=>e.default||e.default||e),__vite__mapDeps([84,1,11,3,4,18]),import.meta.url)),hs=D(()=>K(()=>import(`./DhuleNnm.js`).then(e=>e.default||e.default||e),__vite__mapDeps([85,1,11,3,4,18,12,26,59,6,17,9,21,22,25,27,32,60,20,33,7,8,5,10,13,29,51]),import.meta.url)),gs=D(()=>K(()=>import(`./BmxvtaMq.js`).then(e=>e.default||e.default||e),__vite__mapDeps([86,1,11,3,4,18]),import.meta.url)),_s=D(()=>K(()=>import(`./DF-nsa1Z.js`).then(e=>e.default||e.default||e),__vite__mapDeps([87,1,11,3,4,18]),import.meta.url)),vs=D(()=>K(()=>import(`./Dc7Ql6eE.js`).then(e=>e.default||e.default||e),__vite__mapDeps([88,1,11,3,4,18]),import.meta.url)),ys=D(()=>K(()=>import(`./ZngEd3HB.js`).then(e=>e.default||e.default||e),__vite__mapDeps([89,1,11,3,4,18]),import.meta.url)),bs=D(()=>K(()=>import(`./MaXJprwN.js`).then(e=>e.default||e.default||e),__vite__mapDeps([90,1,11,3,4,18]),import.meta.url)),xs=D(()=>K(()=>import(`./Dd9ZukPU.js`).then(e=>e.default||e.default||e),__vite__mapDeps([91,1,11,3,4,18]),import.meta.url)),Ss=D(()=>K(()=>import(`./CSEEUF8S.js`).then(e=>e.default||e.default||e),__vite__mapDeps([92,1,11,3,4,18]),import.meta.url)),Cs=D(()=>K(()=>import(`./D_S6N7_b.js`).then(e=>e.default||e.default||e),__vite__mapDeps([93,1,11,3,4,50,53,18,7,8,9,5,6,10,12,13,31,2,22]),import.meta.url)),ws=D(()=>K(()=>import(`./CPcKlmSm.js`).then(e=>e.default||e.default||e),__vite__mapDeps([94,1,11,3,4,50,53,18,7,8,9,5,6,10,12,13,31,2,22]),import.meta.url)),Ts=D(()=>K(()=>import(`./CGI_ZV79.js`).then(e=>e.default||e.default||e),__vite__mapDeps([95,1,11,3,4,50,53,18,7,8,9,5,6,10,12,13,31,2,22]),import.meta.url)),Es=D(()=>K(()=>import(`./C40iTe-x.js`).then(e=>e.default||e.default||e),__vite__mapDeps([96,1,11,3,4,50,53,18,7,8,9,5,6,10,12,13,31,2,22]),import.meta.url)),Ds=D(()=>K(()=>import(`./DEfLc7p3.js`).then(e=>e.n).then(e=>e.default||e.default||e),__vite__mapDeps([8,9,3,1,5,6,4,10,11]),import.meta.url)),Os=[[`ProseA`,Po],[`ProseAccordion`,Fo],[`ProseAccordionItem`,Io],[`ProseBadge`,Lo],[`ProseBlockquote`,Ro],[`ProseCallout`,zo],[`ProseCard`,Bo],[`ProseCardGroup`,Vo],[`ProseCode`,Ho],[`ProseCodeCollapse`,Uo],[`ProseCodeGroup`,Wo],[`ProseCodeIcon`,Go],[`ProseCodePreview`,Ko],[`ProseCodeTree`,qo],[`ProseCollapsible`,Jo],[`ProseEm`,Yo],[`ProseField`,Xo],[`ProseFieldGroup`,Zo],[`ProseH1`,Qo],[`ProseH2`,$o],[`ProseH3`,es],[`ProseH4`,ts],[`ProseHr`,ns],[`ProseIcon`,rs],[`ProseImg`,is],[`ProseKbd`,as],[`ProseLi`,os],[`ProseOl`,ss],[`ProseP`,cs],[`ProsePre`,ls],[`ProsePrompt`,us],[`ProseScript`,ds],[`ProseSteps`,fs],[`ProseStrong`,ps],[`ProseTable`,ms],[`ProseTabs`,hs],[`ProseTabsItem`,gs],[`ProseTbody`,_s],[`ProseTd`,vs],[`ProseTh`,ys],[`ProseThead`,bs],[`ProseTr`,xs],[`ProseUl`,Ss],[`ProseCaution`,Cs],[`ProseNote`,ws],[`ProseTip`,Ts],[`ProseWarning`,Es],[`Icon`,Ds]],ks=o({name:`nuxt:global-components`,setup(e){for(let[t,n]of Os)e.vueApp.component(t,n),e.vueApp.component(`Lazy`+t,n)}}),As={},js=[`route`,`payload`,`island`,`hint`],Ms=12,Ns={route:8,payload:8,island:4,hint:8};function Ps(e={}){let t={...Ns,...e.concurrency},n=e.total??Ms,r=e.canPrefetch,i=e.defer,a={route:[],payload:[],island:[],hint:[]},o=js.map(e=>a[e]),s=new WeakSet,c=new Map,l={route:0,payload:0,island:0,hint:0},u=0,d=new Map,f=new AbortController,p=new AbortController;p.abort();function m(e){c.get(e.key)===e&&c.delete(e.key)}function h(e){m(e),Promise.resolve().then(()=>e.run(p.signal,!1)).catch(()=>{})}function g(){if(!r||r())for(;u<n;){let e=js.find(e=>a[e].length&&l[e]<t[e]);if(!e)return;let n=a[e].shift();_(n,s.delete(n))}}function _(e,t){let n=e.scope===`app`?f:new AbortController;e.scope===`navigation`&&d.set(e,n),l[e.priority]++,u++;let r=!1,a=()=>{r||(r=!0,l[e.priority]--,u--,d.delete(e),m(e),g())};n.signal.addEventListener(`abort`,a,{once:!0});let o=()=>Promise.resolve().then(()=>e.run(n.signal,t)).then(a,a);i?i(o,t,e.priority):o()}let v=(e,t)=>t!==void 0&&e.group===t&&e.priority!==`hint`;return{schedule(e){let t=[];for(let n of Array.isArray(e)?e:[e])c.has(n.key)?h(n):(c.set(n.key,n),t.push(n));for(let e=t.length-1;e>=0;e--)a[t[e].priority].unshift(t[e]);g()},promote(e){for(let t of o){let n=[],r=[];for(let i of t)i.group===e&&s.add(i),(i.group===e?n:r).push(i);t.length=0,t.push(...n,...r)}g()},reset(e){for(let t of o)for(let n=t.length-1;n>=0;n--){let r=t[n];r.scope===`navigation`&&!v(r,e)&&(t.splice(n,1),h(r))}for(let[t,n]of[...d])v(t,e)||n.abort();g()},resume:g}}var Fs=1e3;function Is(e,t,n){if(t||n===`route`)return e();let r=globalThis.scheduler;r?.postTask?r.postTask(e,{priority:`background`}).catch(()=>{}):Jt(e,{timeout:Fs})}function Ls(e=l()){if(e._prefetch)return e._prefetch;let t=!1,n=Ps({canPrefetch:()=>yn()&&!t&&document.visibilityState!==`hidden`,defer:Is});e._prefetch=n,navigator.connection?.addEventListener?.(`change`,()=>n.resume()),document.addEventListener(`visibilitychange`,()=>n.resume());let r=e.$router;return r.beforeEach(()=>{t=!0}),r.afterEach(e=>{t=!1,n.reset(bn(e.fullPath))}),r.onError(()=>{t=!1,n.resume()}),n}var Rs=o({name:`nuxt:prefetch`,setup(e){let t=zt();e.hooks.hook(`app:mounted`,()=>{t.beforeEach(async e=>{let t=e?.meta?.layout;typeof t==`string`&&t in As&&await xn(As[t])})});let{schedule:n}=Ls(e);e.hooks.hook(`link:prefetch`,async e=>{if(Ge(e))return;let r=t.resolve(e);if(!r)return;let i=r.meta.layout,a=ha(r.meta.middleware).filter(e=>typeof e==`string`);n({key:`route:chunks:${e}`,priority:`route`,scope:`navigation`,group:bn(e),run:e=>{if(e.aborted)return;let t=[];for(let e of a){let n=yo[e];typeof n==`function`&&t.push(n())}return typeof i==`string`&&i in As&&t.push(xn(As[i])),Promise.all(t).catch(()=>{})}})})}}),zs={inherit:`inherit`,current:`currentcolor`,transparent:`transparent`,black:`#000`,white:`#fff`,slate:{50:`oklch(98.4% 0.003 247.858)`,100:`oklch(96.8% 0.007 247.896)`,200:`oklch(92.9% 0.013 255.508)`,300:`oklch(86.9% 0.022 252.894)`,400:`oklch(70.4% 0.04 256.788)`,500:`oklch(55.4% 0.046 257.417)`,600:`oklch(44.6% 0.043 257.281)`,700:`oklch(37.2% 0.044 257.287)`,800:`oklch(27.9% 0.041 260.031)`,900:`oklch(20.8% 0.042 265.755)`,950:`oklch(12.9% 0.042 264.695)`},gray:{50:`oklch(98.5% 0.002 247.839)`,100:`oklch(96.7% 0.003 264.542)`,200:`oklch(92.8% 0.006 264.531)`,300:`oklch(87.2% 0.01 258.338)`,400:`oklch(70.7% 0.022 261.325)`,500:`oklch(55.1% 0.027 264.364)`,600:`oklch(44.6% 0.03 256.802)`,700:`oklch(37.3% 0.034 259.733)`,800:`oklch(27.8% 0.033 256.848)`,900:`oklch(21% 0.034 264.665)`,950:`oklch(13% 0.028 261.692)`},zinc:{50:`oklch(98.5% 0 none)`,100:`oklch(96.7% 0.001 286.375)`,200:`oklch(92% 0.004 286.32)`,300:`oklch(87.1% 0.006 286.286)`,400:`oklch(70.5% 0.015 286.067)`,500:`oklch(55.2% 0.016 285.938)`,600:`oklch(44.2% 0.017 285.786)`,700:`oklch(37% 0.013 285.805)`,800:`oklch(27.4% 0.006 286.033)`,900:`oklch(21% 0.006 285.885)`,950:`oklch(14.1% 0.005 285.823)`},neutral:{50:`oklch(98.5% 0 none)`,100:`oklch(97% 0 none)`,200:`oklch(92.2% 0 none)`,300:`oklch(87% 0 none)`,400:`oklch(70.8% 0 none)`,500:`oklch(55.6% 0 none)`,600:`oklch(43.9% 0 none)`,700:`oklch(37.1% 0 none)`,800:`oklch(26.9% 0 none)`,900:`oklch(20.5% 0 none)`,950:`oklch(14.5% 0 none)`},stone:{50:`oklch(98.5% 0.001 106.423)`,100:`oklch(97% 0.001 106.424)`,200:`oklch(92.3% 0.003 48.717)`,300:`oklch(86.9% 0.005 56.366)`,400:`oklch(70.9% 0.01 56.259)`,500:`oklch(55.3% 0.013 58.071)`,600:`oklch(44.4% 0.011 73.639)`,700:`oklch(37.4% 0.01 67.558)`,800:`oklch(26.8% 0.007 34.298)`,900:`oklch(21.6% 0.006 56.043)`,950:`oklch(14.7% 0.004 49.25)`},mauve:{50:`oklch(98.5% 0 none)`,100:`oklch(96% 0.003 325.6)`,200:`oklch(92.2% 0.005 325.62)`,300:`oklch(86.5% 0.012 325.68)`,400:`oklch(71.1% 0.019 323.02)`,500:`oklch(54.2% 0.034 322.5)`,600:`oklch(43.5% 0.029 321.78)`,700:`oklch(36.4% 0.029 323.89)`,800:`oklch(26.3% 0.024 320.12)`,900:`oklch(21.2% 0.019 322.12)`,950:`oklch(14.5% 0.008 326)`},olive:{50:`oklch(98.8% 0.003 106.5)`,100:`oklch(96.6% 0.005 106.5)`,200:`oklch(93% 0.007 106.5)`,300:`oklch(88% 0.011 106.6)`,400:`oklch(73.7% 0.021 106.9)`,500:`oklch(58% 0.031 107.3)`,600:`oklch(46.6% 0.025 107.3)`,700:`oklch(39.4% 0.023 107.4)`,800:`oklch(28.6% 0.016 107.4)`,900:`oklch(22.8% 0.013 107.4)`,950:`oklch(15.3% 0.006 107.1)`},mist:{50:`oklch(98.7% 0.002 197.1)`,100:`oklch(96.3% 0.002 197.1)`,200:`oklch(92.5% 0.005 214.3)`,300:`oklch(87.2% 0.007 219.6)`,400:`oklch(72.3% 0.014 214.4)`,500:`oklch(56% 0.021 213.5)`,600:`oklch(45% 0.017 213.2)`,700:`oklch(37.8% 0.015 216)`,800:`oklch(27.5% 0.011 216.9)`,900:`oklch(21.8% 0.008 223.9)`,950:`oklch(14.8% 0.004 228.8)`},taupe:{50:`oklch(98.6% 0.002 67.8)`,100:`oklch(96% 0.002 17.2)`,200:`oklch(92.2% 0.005 34.3)`,300:`oklch(86.8% 0.007 39.5)`,400:`oklch(71.4% 0.014 41.2)`,500:`oklch(54.7% 0.021 43.1)`,600:`oklch(43.8% 0.017 39.3)`,700:`oklch(36.7% 0.016 35.7)`,800:`oklch(26.8% 0.011 36.5)`,900:`oklch(21.4% 0.009 43.1)`,950:`oklch(14.7% 0.004 49.3)`},red:{50:`oklch(97.1% 0.013 17.38)`,100:`oklch(93.6% 0.032 17.717)`,200:`oklch(88.5% 0.062 18.334)`,300:`oklch(80.8% 0.114 19.571)`,400:`oklch(70.4% 0.191 22.216)`,500:`oklch(63.7% 0.237 25.331)`,600:`oklch(57.7% 0.245 27.325)`,700:`oklch(50.5% 0.213 27.518)`,800:`oklch(44.4% 0.177 26.899)`,900:`oklch(39.6% 0.141 25.723)`,950:`oklch(25.8% 0.092 26.042)`},orange:{50:`oklch(98% 0.016 73.684)`,100:`oklch(95.4% 0.038 75.164)`,200:`oklch(90.1% 0.076 70.697)`,300:`oklch(83.7% 0.128 66.29)`,400:`oklch(75% 0.183 55.934)`,500:`oklch(70.5% 0.213 47.604)`,600:`oklch(64.6% 0.222 41.116)`,700:`oklch(55.3% 0.195 38.402)`,800:`oklch(47% 0.157 37.304)`,900:`oklch(40.8% 0.123 38.172)`,950:`oklch(26.6% 0.079 36.259)`},amber:{50:`oklch(98.7% 0.022 95.277)`,100:`oklch(96.2% 0.059 95.617)`,200:`oklch(92.4% 0.12 95.746)`,300:`oklch(87.9% 0.169 91.605)`,400:`oklch(82.8% 0.189 84.429)`,500:`oklch(76.9% 0.188 70.08)`,600:`oklch(66.6% 0.179 58.318)`,700:`oklch(55.5% 0.163 48.998)`,800:`oklch(47.3% 0.137 46.201)`,900:`oklch(41.4% 0.112 45.904)`,950:`oklch(27.9% 0.077 45.635)`},yellow:{50:`oklch(98.7% 0.026 102.212)`,100:`oklch(97.3% 0.071 103.193)`,200:`oklch(94.5% 0.129 101.54)`,300:`oklch(90.5% 0.182 98.111)`,400:`oklch(85.2% 0.199 91.936)`,500:`oklch(79.5% 0.184 86.047)`,600:`oklch(68.1% 0.162 75.834)`,700:`oklch(55.4% 0.135 66.442)`,800:`oklch(47.6% 0.114 61.907)`,900:`oklch(42.1% 0.095 57.708)`,950:`oklch(28.6% 0.066 53.813)`},lime:{50:`oklch(98.6% 0.031 120.757)`,100:`oklch(96.7% 0.067 122.328)`,200:`oklch(93.8% 0.127 124.321)`,300:`oklch(89.7% 0.196 126.665)`,400:`oklch(84.1% 0.238 128.85)`,500:`oklch(76.8% 0.233 130.85)`,600:`oklch(64.8% 0.2 131.684)`,700:`oklch(53.2% 0.157 131.589)`,800:`oklch(45.3% 0.124 130.933)`,900:`oklch(40.5% 0.101 131.063)`,950:`oklch(27.4% 0.072 132.109)`},green:{50:`oklch(98.2% 0.018 155.826)`,100:`oklch(96.2% 0.044 156.743)`,200:`oklch(92.5% 0.084 155.995)`,300:`oklch(87.1% 0.15 154.449)`,400:`oklch(79.2% 0.209 151.711)`,500:`oklch(72.3% 0.219 149.579)`,600:`oklch(62.7% 0.194 149.214)`,700:`oklch(52.7% 0.154 150.069)`,800:`oklch(44.8% 0.119 151.328)`,900:`oklch(39.3% 0.095 152.535)`,950:`oklch(26.6% 0.065 152.934)`},emerald:{50:`oklch(97.9% 0.021 166.113)`,100:`oklch(95% 0.052 163.051)`,200:`oklch(90.5% 0.093 164.15)`,300:`oklch(84.5% 0.143 164.978)`,400:`oklch(76.5% 0.177 163.223)`,500:`oklch(69.6% 0.17 162.48)`,600:`oklch(59.6% 0.145 163.225)`,700:`oklch(50.8% 0.118 165.612)`,800:`oklch(43.2% 0.095 166.913)`,900:`oklch(37.8% 0.077 168.94)`,950:`oklch(26.2% 0.051 172.552)`},teal:{50:`oklch(98.4% 0.014 180.72)`,100:`oklch(95.3% 0.051 180.801)`,200:`oklch(91% 0.096 180.426)`,300:`oklch(85.5% 0.138 181.071)`,400:`oklch(77.7% 0.152 181.912)`,500:`oklch(70.4% 0.14 182.503)`,600:`oklch(60% 0.118 184.704)`,700:`oklch(51.1% 0.096 186.391)`,800:`oklch(43.7% 0.078 188.216)`,900:`oklch(38.6% 0.063 188.416)`,950:`oklch(27.7% 0.046 192.524)`},cyan:{50:`oklch(98.4% 0.019 200.873)`,100:`oklch(95.6% 0.045 203.388)`,200:`oklch(91.7% 0.08 205.041)`,300:`oklch(86.5% 0.127 207.078)`,400:`oklch(78.9% 0.154 211.53)`,500:`oklch(71.5% 0.143 215.221)`,600:`oklch(60.9% 0.126 221.723)`,700:`oklch(52% 0.105 223.128)`,800:`oklch(45% 0.085 224.283)`,900:`oklch(39.8% 0.07 227.392)`,950:`oklch(30.2% 0.056 229.695)`},sky:{50:`oklch(97.7% 0.013 236.62)`,100:`oklch(95.1% 0.026 236.824)`,200:`oklch(90.1% 0.058 230.902)`,300:`oklch(82.8% 0.111 230.318)`,400:`oklch(74.6% 0.16 232.661)`,500:`oklch(68.5% 0.169 237.323)`,600:`oklch(58.8% 0.158 241.966)`,700:`oklch(50% 0.134 242.749)`,800:`oklch(44.3% 0.11 240.79)`,900:`oklch(39.1% 0.09 240.876)`,950:`oklch(29.3% 0.066 243.157)`},blue:{50:`oklch(97% 0.014 254.604)`,100:`oklch(93.2% 0.032 255.585)`,200:`oklch(88.2% 0.059 254.128)`,300:`oklch(80.9% 0.105 251.813)`,400:`oklch(70.7% 0.165 254.624)`,500:`oklch(62.3% 0.214 259.815)`,600:`oklch(54.6% 0.245 262.881)`,700:`oklch(48.8% 0.243 264.376)`,800:`oklch(42.4% 0.199 265.638)`,900:`oklch(37.9% 0.146 265.522)`,950:`oklch(28.2% 0.091 267.935)`},indigo:{50:`oklch(96.2% 0.018 272.314)`,100:`oklch(93% 0.034 272.788)`,200:`oklch(87% 0.065 274.039)`,300:`oklch(78.5% 0.115 274.713)`,400:`oklch(67.3% 0.182 276.935)`,500:`oklch(58.5% 0.233 277.117)`,600:`oklch(51.1% 0.262 276.966)`,700:`oklch(45.7% 0.24 277.023)`,800:`oklch(39.8% 0.195 277.366)`,900:`oklch(35.9% 0.144 278.697)`,950:`oklch(25.7% 0.09 281.288)`},violet:{50:`oklch(96.9% 0.016 293.756)`,100:`oklch(94.3% 0.029 294.588)`,200:`oklch(89.4% 0.057 293.283)`,300:`oklch(81.1% 0.111 293.571)`,400:`oklch(70.2% 0.183 293.541)`,500:`oklch(60.6% 0.25 292.717)`,600:`oklch(54.1% 0.281 293.009)`,700:`oklch(49.1% 0.27 292.581)`,800:`oklch(43.2% 0.232 292.759)`,900:`oklch(38% 0.189 293.745)`,950:`oklch(28.3% 0.141 291.089)`},purple:{50:`oklch(97.7% 0.014 308.299)`,100:`oklch(94.6% 0.033 307.174)`,200:`oklch(90.2% 0.063 306.703)`,300:`oklch(82.7% 0.119 306.383)`,400:`oklch(71.4% 0.203 305.504)`,500:`oklch(62.7% 0.265 303.9)`,600:`oklch(55.8% 0.288 302.321)`,700:`oklch(49.6% 0.265 301.924)`,800:`oklch(43.8% 0.218 303.724)`,900:`oklch(38.1% 0.176 304.987)`,950:`oklch(29.1% 0.149 302.717)`},fuchsia:{50:`oklch(97.7% 0.017 320.058)`,100:`oklch(95.2% 0.037 318.852)`,200:`oklch(90.3% 0.076 319.62)`,300:`oklch(83.3% 0.145 321.434)`,400:`oklch(74% 0.238 322.16)`,500:`oklch(66.7% 0.295 322.15)`,600:`oklch(59.1% 0.293 322.896)`,700:`oklch(51.8% 0.253 323.949)`,800:`oklch(45.2% 0.211 324.591)`,900:`oklch(40.1% 0.17 325.612)`,950:`oklch(29.3% 0.136 325.661)`},pink:{50:`oklch(97.1% 0.014 343.198)`,100:`oklch(94.8% 0.028 342.258)`,200:`oklch(89.9% 0.061 343.231)`,300:`oklch(82.3% 0.12 346.018)`,400:`oklch(71.8% 0.202 349.761)`,500:`oklch(65.6% 0.241 354.308)`,600:`oklch(59.2% 0.249 0.584)`,700:`oklch(52.5% 0.223 3.958)`,800:`oklch(45.9% 0.187 3.815)`,900:`oklch(40.8% 0.153 2.432)`,950:`oklch(28.4% 0.109 3.907)`},rose:{50:`oklch(96.9% 0.015 12.422)`,100:`oklch(94.1% 0.03 12.58)`,200:`oklch(89.2% 0.058 10.001)`,300:`oklch(81% 0.117 11.638)`,400:`oklch(71.2% 0.194 13.428)`,500:`oklch(64.5% 0.246 16.439)`,600:`oklch(58.6% 0.253 17.585)`,700:`oklch(51.4% 0.222 16.935)`,800:`oklch(45.5% 0.188 13.697)`,900:`oklch(41% 0.159 10.272)`,950:`oklch(27.1% 0.105 12.094)`}},Bs=[50,100,200,300,400,500,600,700,800,900,950];function Vs(e,t){return e in zs&&typeof zs[e]==`object`&&t in zs[e]?zs[e][t]:``}function Hs(e,t,n){let r=n?`${n}-`:``;return`${Bs.map(n=>`--ui-color-${e}-${n}: var(--${r}color-${t===`neutral`?`old-neutral`:t}-${n}, ${Vs(t,n)});`).join(`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DRlQgul3.js","./DZo3dYLJ.js","./CJ2mz0WY.js","./D2O8Q8x9.js","./DSaWoFHS.js","./C7K0R7F-.js","./51OWHj8c.js","./rlePnzpc.js","./DEfLc7p3.js","./DK3Fl9T5.js","./ChG76uh9.js","./Csqgy925.js","./CuJUHLl8.js","./B_SlFcWp.js","./_id_.B2NDKSlX.css","./CvLiA4_O.js","./BDcnzXHq.js","./B3jkABw9.js","./6gFtTBwm.js","./Cm9lkUvP.js","./DLkAKotw.js","./Vo4wMbnS.js","./CK9_veoz.js","./Bb3Limos.js","./Dtsa-1NS.js","./Ci0qbkgh.js","./BuOKDFiJ.js","./D3YCAmfu.js","./Bi9Axj3V.js","./DfR3IZN_.js","./EYTShbt4.js","./BgLeKwx0.js","./C9StZL3D.js","./BPTrRhcw.js","./burndown.Do6IbM6o.css","./COf6E6h4.js","./epics.Dmessplu.css","./DRPlYvb3.js","./gantt.Dmp00GUo.css","./S08nFESZ.js","./last-change.1Su4GrCN.css","./P9x67aq2.js","./milestones.U0xKCsEo.css","./BodFvto3.js","./pages.Dbj2IVk8.css","./C8vL692X.js","./DnDHGSYI.js","./DHihWhf5.js","./Cz6rZcLK.js","./1eqboJxR.js","./CQTvWh4i.js","./Dx1wcYFo.js","./DqZgF3hU.js","./vwxaNGfc.js","./2K7ag6ES.js","./BaG8y0Wt.js","./CqoQ__I_.js","./BpWeHLuN.js","./D2FhHl1o.js","./DWO9c9yp.js","./V0uynWE2.js","./CJMBJQuf.js","./DbHiyab-.js","./Cvs12oA0.js","./CMUi2-Lj.js","./CK-lOYG9.js","./DIc8yx98.js","./DSLbmoWa.js","./CLBcBrYf.js","./BDK2Hj7B.js","./D75vbfSb.js","./uKzCKCTq.js","./CgDTd7jS.js","./CPCUMJnF.js","./D99LbGfb.js","./DajA-Tkt.js","./Dg2LiqmN.js","./yh6sf_D5.js","./DqcxvfbD.js","./CyEXFe3V.js","./assMu_Wn.js","./DpXJ_tCU.js","./Du91iq0p.js","./DsA2lVci.js","./D5CE81jK.js","./DhuleNnm.js","./BmxvtaMq.js","./DF-nsa1Z.js","./Dc7Ql6eE.js","./ZngEd3HB.js","./MaXJprwN.js","./Dd9ZukPU.js","./CSEEUF8S.js","./D_S6N7_b.js","./CPcKlmSm.js","./CGI_ZV79.js","./C40iTe-x.js","./CSSb154I.js","./B5n2_jZN.js","./error-404.BFmXOnCT.css","./ZVTqot-_.js","./error-500.BZ-DdjQ6.css"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./DK3Fl9T5.js";import{_ as t,b as n,c as r,f as i,h as a,i as o,m as s,n as c,o as l,s as u,t as d,u as f,v as p,y as m}from"./D2O8Q8x9.js";import{$ as h,$n as g,B as _,Cn as v,D as y,E as b,En as x,Ft as S,Gt as C,Ht as w,J as T,L as E,Lt as ee,Nt as te,O as D,On as O,Pt as ne,Q as re,Rt as ie,Tn as ae,Un as oe,Ut as se,Yt as ce,Z as le,Zn as k,_ as A,b as j,bt as M,ct as ue,er as de,et as N,fn as fe,ft as pe,g as P,gn as me,gt as he,it as ge,jt as _e,k as F,l as ve,ln as ye,mt as I,o as L,pn as be,qt as R,rt as xe,s as Se,st as Ce,tr as z,tt as we,u as Te,un as Ee,v as B,vn as V,w as De,wn as Oe,wt as ke,xn as Ae,xt as H,y as U,yn as je,z as W}from"./DZo3dYLJ.js";import{C as Me,S as Ne,a as Pe,i as Fe,t as Ie,w as Le}from"./51OWHj8c.js";import{n as Re,r as ze,t as Be}from"./B3jkABw9.js";import{a as Ve,c as He,d as Ue,h as We,i as Ge,o as Ke,p as qe,s as Je,t as Ye}from"./DSaWoFHS.js";import{$ as Xe,A as Ze,B as Qe,C as $e,D as et,E as tt,F as nt,G as rt,H as it,I as at,J as ot,K as st,L as ct,M as lt,N as ut,O as dt,P as ft,Q as pt,R as mt,S as ht,T as gt,U as _t,V as vt,W as yt,X as bt,Y as xt,Z as St,_ as Ct,_t as wt,a as Tt,b as Et,ct as Dt,d as Ot,dt as kt,et as At,f as jt,ft as Mt,g as Nt,h as Pt,i as Ft,it as It,j as Lt,k as Rt,lt as zt,m as Bt,mt as Vt,nt as Ht,o as Ut,ot as Wt,p as Gt,pt as Kt,q as qt,r as Jt,rt as Yt,s as Xt,t as Zt,tt as Qt,ut as $t,v as en,vt as tn,w as nn,x as rn,y as an,z as on}from"./C7K0R7F-.js";import{a as sn,c as cn,d as ln,f as un,i as dn,l as fn,n as pn,o as mn,r as hn,s as gn,t as _n,u as vn}from"./ChG76uh9.js";import{a as yn,o as bn,r as xn,s as Sn,t as Cn}from"./CJ2mz0WY.js";import{r as wn}from"./Csqgy925.js";import{a as Tn,c as En,i as Dn,o as On,r as kn,s as An}from"./DEfLc7p3.js";import{c as jn,d as Mn,h as Nn,i as Pn,l as Fn,m as In,n as Ln,s as Rn,t as zn}from"./6gFtTBwm.js";import{n as Bn,r as Vn,t as Hn}from"./DLkAKotw.js";import{n as Un}from"./Bb3Limos.js";import{C as Wn,T as Gn,a as Kn,b as qn,g as Jn,h as Yn,m as Xn,p as Zn,r as Qn}from"./CuJUHLl8.js";import{c as $n,i as er,l as tr,o as nr,p as rr,r as ir,s as ar,t as or}from"./Vo4wMbnS.js";import{t as sr}from"./CK9_veoz.js";import{S as cr,_ as lr,a as ur,c as dr,d as fr,f as pr,g as mr,h as hr,i as gr,l as _r,m as vr,n as yr,o as br,p as xr,r as Sr,s as Cr,t as wr,u as Tr,v as Er,x as Dr,y as Or}from"./Dtsa-1NS.js";import{t as kr}from"./Ci0qbkgh.js";import{n as Ar,t as jr}from"./BuOKDFiJ.js";import{t as G}from"./D3YCAmfu.js";import{t as Mr}from"./B_SlFcWp.js";import{t as Nr}from"./C9StZL3D.js";import{t as Pr}from"./Bi9Axj3V.js";import{i as Fr,n as Ir,t as Lr}from"./BPTrRhcw.js";import{t as Rr}from"./rlePnzpc.js";import{a as zr,i as Br,n as Vr,r as Hr,t as Ur}from"./BgLeKwx0.js";import{i as Wr,n as Gr,t as Kr}from"./DfR3IZN_.js";import{n as qr,t as Jr}from"./EYTShbt4.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var Yr=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,Xr=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,Zr=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function Qr(e,t){if(e===`__proto__`||e===`constructor`&&t&&typeof t==`object`&&`prototype`in t)$r(e);else return t}function $r(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`)}function ei(e,t={}){if(typeof e!=`string`)return e;if(e[0]===`"`&&e[e.length-1]===`"`&&e.indexOf(`\\`)===-1)return e.slice(1,-1);let n=e.trim();if(n.length<=9)switch(n.toLowerCase()){case`true`:return!0;case`false`:return!1;case`undefined`:return;case`null`:return null;case`nan`:return NaN;case`infinity`:return 1/0;case`-infinity`:return-1/0}if(!Zr.test(e)){if(t.strict)throw SyntaxError(`[destr] Invalid JSON`);return e}try{if(Yr.test(e)||Xr.test(e)){if(t.strict)throw Error(`[destr] Possible prototype pollution`);return JSON.parse(e,Qr)}return JSON.parse(e)}catch(n){if(t.strict)throw n;return e}}var ti=class extends Error{constructor(e,t){super(e,t),this.name=`FetchError`,t?.cause&&!this.cause&&(this.cause=t.cause)}};function ni(e){let t=e.error?.message||e.error?.toString()||``,n=e.request?.method||e.options?.method||`GET`,r=e.request?.url||String(e.request)||`/`,i=new ti(`${`[${n}] ${JSON.stringify(r)}`}: ${e.response?`${e.response.status} ${e.response.statusText}`:`<no response>`}${t?` ${t}`:``}`,e.error?{cause:e.error}:void 0);for(let t of[`request`,`options`,`response`])Object.defineProperty(i,t,{get(){return e[t]}});for(let[t,n]of[[`data`,`_data`],[`status`,`status`],[`statusCode`,`status`],[`statusText`,`statusText`],[`statusMessage`,`statusText`]])Object.defineProperty(i,t,{get(){return e.response&&e.response[n]}});return i}var ri=new Set(Object.freeze([`PATCH`,`POST`,`PUT`,`DELETE`]));function ii(e=`GET`){return ri.has(e.toUpperCase())}function ai(e){if(e===void 0)return!1;let t=typeof e;return t===`string`||t===`number`||t===`boolean`||t===null?!0:t===`object`?Array.isArray(e)?!0:e.buffer||e instanceof FormData||e instanceof URLSearchParams?!1:e.constructor&&e.constructor.name===`Object`||typeof e.toJSON==`function`:!1}var oi=new Set([`image/svg`,`application/xml`,`application/xhtml`,`application/html`]),si=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function ci(e=``){if(!e)return`json`;let t=e.split(`;`).shift()||``;return si.test(t)?`json`:t===`text/event-stream`?`stream`:oi.has(t)||t.startsWith(`text/`)?`text`:`blob`}function li(e,t,n,r){let i=ui(t?.headers??e?.headers,n?.headers,r),a;return(n?.query||n?.params||t?.params||t?.query)&&(a={...n?.params,...n?.query,...t?.params,...t?.query}),{...n,...t,query:a,params:a,headers:i}}function ui(e,t,n){if(!t)return new n(e);let r=new n(t);if(e)for(let[t,i]of Symbol.iterator in e||Array.isArray(e)?e:new n(e))r.set(t,i);return r}async function di(e,t){if(t){if(Array.isArray(t))for(let n of t)await n(e);else await t(e)}}var fi=new Set([408,409,425,429,500,502,503,504]),pi=new Set([101,204,205,304]);function mi(e={}){let{fetch:t=globalThis.fetch,Headers:n=globalThis.Headers,AbortController:r=globalThis.AbortController}=e;async function i(e){let t=e.error&&e.error.name===`AbortError`&&!e.options.timeout||!1;if(e.options.retry!==!1&&!t){let t;t=typeof e.options.retry==`number`?e.options.retry:+!ii(e.options.method);let n=e.response&&e.response.status||500;if(t>0&&(Array.isArray(e.options.retryStatusCodes)?e.options.retryStatusCodes.includes(n):fi.has(n))){let n=typeof e.options.retryDelay==`function`?e.options.retryDelay(e):e.options.retryDelay||0;return n>0&&await new Promise(e=>setTimeout(e,n)),a(e.request,{...e.options,retry:t-1})}}let n=ni(e);throw Error.captureStackTrace&&Error.captureStackTrace(n,a),n}let a=async function(a,o={}){let s={request:a,options:li(a,o,e.defaults,n),response:void 0,error:void 0};if(s.options.method&&(s.options.method=s.options.method.toUpperCase()),s.options.onRequest&&(await di(s,s.options.onRequest),s.options.headers instanceof n||(s.options.headers=new n(s.options.headers||{}))),typeof s.request==`string`&&(s.options.baseURL&&(s.request=Ue(s.request,s.options.baseURL)),s.options.query&&(s.request=qe(s.request,s.options.query),delete s.options.query),`query`in s.options&&delete s.options.query,`params`in s.options&&delete s.options.params),s.options.body&&ii(s.options.method)){if(ai(s.options.body)){let e=s.options.headers.get(`content-type`);typeof s.options.body!=`string`&&(s.options.body=e===`application/x-www-form-urlencoded`?new URLSearchParams(s.options.body).toString():JSON.stringify(s.options.body)),e||s.options.headers.set(`content-type`,`application/json`),s.options.headers.has(`accept`)||s.options.headers.set(`accept`,`application/json`)}else(`pipeTo`in s.options.body&&typeof s.options.body.pipeTo==`function`||typeof s.options.body.pipe==`function`)&&(`duplex`in s.options||(s.options.duplex=`half`))}let c;if(!s.options.signal&&s.options.timeout){let e=new r;c=setTimeout(()=>{let t=Error(`[TimeoutError]: The operation was aborted due to timeout`);t.name=`TimeoutError`,t.code=23,e.abort(t)},s.options.timeout),s.options.signal=e.signal}try{s.response=await t(s.request,s.options)}catch(e){return s.error=e,s.options.onRequestError&&await di(s,s.options.onRequestError),await i(s)}finally{c&&clearTimeout(c)}if((s.response.body||s.response._bodyInit)&&!pi.has(s.response.status)&&s.options.method!==`HEAD`){let e=(s.options.parseResponse?`json`:s.options.responseType)||ci(s.response.headers.get(`content-type`)||``);switch(e){case`json`:{let e=await s.response.text(),t=s.options.parseResponse||ei;s.response._data=t(e);break}case`stream`:s.response._data=s.response.body||s.response._bodyInit;break;default:s.response._data=await s.response[e]()}}return s.options.onResponse&&await di(s,s.options.onResponse),!s.options.ignoreResponseError&&s.response.status>=400&&s.response.status<600?(s.options.onResponseError&&await di(s,s.options.onResponseError),await i(s)):s.response},o=async function(e,t){return(await a(e,t))._data};return o.raw=a,o.native=(...e)=>t(...e),o.create=(t={},n={})=>mi({...e,...n,defaults:{...e.defaults,...n.defaults,...t}}),o}var hi=(function(){if(typeof globalThis<`u`)return globalThis;if(typeof self<`u`)return self;if(typeof window<`u`)return window;if(typeof global<`u`)return global;throw Error(`unable to locate global object`)})(),gi=hi.fetch?(...e)=>hi.fetch(...e):()=>Promise.reject(Error(`[ofetch] global.fetch is not supported!`)),_i=hi.Headers,vi=hi.AbortController,yi=mi({fetch:gi,Headers:_i,AbortController:vi}),bi=()=>window?.__NUXT__?.config||window?.useNuxtApp?.().payload?.config,xi=()=>bi().app,Si=()=>xi().baseURL,Ci=()=>xi().buildAssetsDir,wi=(...e)=>Je(Ti(),Ci(),...e),Ti=(...e)=>{let t=xi(),n=t.cdnURL||t.baseURL;return e.length?Je(n,...e):n};globalThis.__buildAssetsURL=wi,globalThis.__publicAssetsURL=Ti,globalThis.$fetch||(globalThis.$fetch=yi.create({baseURL:Si()}));var Ei=globalThis.$fetch;`global`in globalThis||(globalThis.global=globalThis);function Di(e,t){t.push(r),e.vueApp.use(t);let n=!0,i=()=>{n=!1,t.render()};t.hooks?.hook(`dom:beforeRender`,e=>{e.shouldRender=!n}),e.hooks.hook(`page:start`,()=>{n=!0}),e.hooks.hook(`page:finish`,()=>{e.isHydrating||i()}),e.hooks.hook(`app:error`,i),e.hooks.hook(`app:suspense:resolve`,i);let a=t.push.bind(t);t.push=((t,n)=>{let r=a(t,n),i=r.dispose.bind(r);return r.dispose=()=>{let t=e[`~transitionPromise`];t?t.finally(i):i()},r})}function Oi(e,t){if(typeof t==`function`&&t.key&&e.plugins.has(t.key))return;let n=typeof t==`function`?t(e):t,r=n.key||String(e.plugins.size+1);if(!e.plugins.get(r)){e.plugins.set(r,n);for(let t in n.hooks||{})e.hooks?.hook(t,n.hooks[t])}}function ki(e,t={}){let n=!t.document,r=new Map,i={_entryCount:1,_h:0,plugins:new Map,resolvedOptions:t,ssr:n,entries:r,hooks:void 0,render:()=>e(i),use:e=>Oi(i,e),push(e,t){let a=t?._index??i._entryCount++,o=t?{...t}:{};delete o.head,delete o.onRendered,delete o._index;let s={_i:a,input:e,options:o};return r.set(a,s),{_i:a,dispose(){r.delete(a)},patch(e){n?(s.input=e,delete s._tags):s._pending=e,r.has(a)||r.set(a,s)}}}};return t.init?.forEach(e=>e&&i.push(e)),i}function Ai(e,t,n){let r=e.push,i=e;i.ssr=!1,i.hooks=t,i.dirty=!!i.dirty,i.use=e=>Oi(i,e),i.render=()=>n(i);function a(){t.callHook(`entries:updated`,i),i._b||i.render()}return i.invalidate=()=>{for(let e of i.entries.values())delete e._tags;i.dirty=!0,a()},i.push=(n,o)=>{let s=o?.onRendered?t.hook(`dom:rendered`,o.onRendered):void 0,c=r(n,o),l=e.entries.get(c._i);return l&&(l._o=n),i.dirty=!0,a(),{_i:c._i,patch(e){c.patch(e),i.dirty=!0,a()},dispose(){s?.(),e.entries.has(c._i)&&(c.dispose(),i.invalidate())}}},i}var ji=/\s+/;function Mi(e={}){return t=>Fi(t,e)}function Ni(e){for(let t of e.entries.values())if(t._pending!==void 0)return!0;return!1}function Pi(e,t){let n={_d:t,_t:t.title,_e:new Map([[`htmlAttrs`,t.documentElement],[`bodyAttrs`,t.body]]),_p:{},_s:{},_l:new Map};for(let t of e.entries.values())if(t._o!==void 0){let e=t._o;for(let t of[`bodyAttrs`,`htmlAttrs`]){let r=e[t]?.class;if(typeof r==`string`){let e=n._e.get(t);for(let i of r.split(ji))i&&(n._p[`${t}:attr:class:${i}`]=()=>e.classList.remove(i))}}}return n}function Fi(e,t={}){let n=t.document||e.resolvedOptions.document,r=e._dom;if(!n||e._du||r&&r._d===n&&!e.dirty&&!Ni(e))return!1;let i=n.defaultView;e._du=!0;let a=!1;try{let o=function(e,t,n){d._s[e]=!n&&f[e]||t,delete f[e]},s=function(e,t,n,r,i,a){let s=`${e}:event:${t}`,c=d._l.get(s);if(c&&c[0]===a&&c[1]===n&&c[2]===r){o(s,c[4]);return}c?.[4]();let l=`data-${t}`,u=(e=>r.call(i,e)),f=()=>{a.removeEventListener(n,u),i.getAttribute(l)===``&&i.removeAttribute(l),d._l.get(s)?.[3]===u&&d._l.delete(s)};a.addEventListener(n,u),d._l.set(s,[a,n,r,u,f]),i.setAttribute(l,``),o(s,f,!0)},c=function({id:e,$el:t,tag:n}){if(d._e.set(e,t),!n.tag.endsWith(`Attrs`)){let r=n.textContent;r!=null&&r!==``&&(r!==t.textContent&&(t.textContent=r),o(`${e}:text`,()=>{t.textContent===r&&(t.textContent=``)},!0));let i=n.innerHTML;i!=null&&i!==``&&(i!==t.innerHTML&&(t.innerHTML=i),o(`${e}:html`,()=>{t.innerHTML===i&&(t.innerHTML=``)},!0));let a=`${e}:el`;o(a,f[a]||(()=>{t?.remove(),d._e.delete(e)}))}for(let r in n.props){let a=n.props[r];if(r[0]===`o`&&r[1]===`n`&&typeof a==`function`){let o=r.slice(2);t?.dataset?.[`${r}fired`]&&a.call(t,new((i?.Event)||Event)(o)),s(e,r,o,a,t,n.tag===`bodyAttrs`&&i?i:t);continue}let c=`${e}:attr:${r}`;if(r===`class`&&a)for(let e of a){let n=`${c}:${e}`;o(n,f[n]||(()=>t.classList.remove(e))),t.classList.contains(e)||t.classList.add(e)}else if(r===`style`&&a)for(let[e,n]of a){let r=`${c}:${e}`;o(r,f[r]||(()=>t.style.removeProperty(e))),t.style.setProperty(e,n)}else a!==!1&&a!==null&&(t.getAttribute(r)!==a&&t.setAttribute(r,a===!0?``:String(a)),o(c,f[c]||(()=>t.removeAttribute(r))))}},l={shouldRender:!0,tags:[]};if(fn(e,`dom:beforeRender`,l),!l.shouldRender)return!1;let u=r;if(u?._d!==n){if(u){for(let e in u._s)u._s[e]();for(let e in u._p)u._p[e]();u._s=u._p={},u._e.clear(),u._l.clear()}u=void 0}u?u._p=u._s:u=Pi(e,n),u._s={};let d=u,f=d._p,p=[],m={};e.dirty=!1;let h=cn(e,t.tagWeight?{tagWeight:t.tagWeight}:void 0),g=[],_={};for(let e of h){let t=_[e._d]||0,r=(t?`${e._d}:${t}`:e._d)||e._h,i={tag:e,id:r,shouldRender:!0};e.tag===`meta`&&e._d&&mn(e._d)&&(_[e._d]=t+1),g.push(i),e.tag===`title`?(n.title=e.textContent,o(`title:`,()=>n.title=d._t)):(i.$el=d._e.get(r),i.$el?c(i):ln.has(e.tag)&&p.push(i))}if(p.length){let e=new Set(d._e.values());for(let t of[...n.body.children,...n.head.children]){let n=t.tagName.toLowerCase();if(!ln.has(n)||e.has(t))continue;let r={innerHTML:t.innerHTML};for(let e of t.getAttributeNames())r[e]=t.getAttribute(e);let i=gn({tag:n,props:{}},r);i.key=t.getAttribute(`data-hid`)||void 0;let a=dn(i)||sn(i),o=a,s=1;for(;d._e.has(o);)o=`${a}:${s++}`;d._e.set(o,t)}}for(let e of p){let t=d._e.get(e.id);e.$el=t||n.createElement(e.tag.tag),c(e),t||(m[e.tag.tagPosition||`head`]??=n.createDocumentFragment()).appendChild(e.$el)}m.head&&n.head.appendChild(m.head),m.bodyOpen&&n.body.insertBefore(m.bodyOpen,n.body.firstChild),m.bodyClose&&n.body.appendChild(m.bodyClose);for(let e in f)f[e]();e._dom=d,a=!0,fn(e,`dom:rendered`,{renders:g})}catch(t){throw e.dirty=!0,t}finally{e._du=!1}return a&&(e.dirty||Ni(e))&&Fi(e,t),a}var Ii=e=>typeof e.tagPriority==`number`?e.tagPriority:100+(un[e.tagPriority]||0);function Li(e={}){e.document=e.document||(typeof window<`u`?document:void 0);let t=e.render||Mi({document:e.document}),n=Ai(ki(t,{document:e.document,propResolvers:e.propResolvers,_tagWeight:Ii,init:[]}),vn(e.hooks),t);return e.plugins?.forEach(e=>n.use(e)),e.init?.forEach(e=>e&&n.push(e)),n}function Ri(e,t){return t&&typeof e==`function`&&(e.key=t),e}var zi=/\\/g,Bi=/</g,Vi=/"/g,Hi=/%\w+(?:\.\w+)?/g,Ui=`%separator`;function Wi(e,t,n=!1){let r;if(t===`s`||t===`pageTitle`)r=e.pageTitle;else if(t.includes(`.`)){let n=t.indexOf(`.`);r=e[t.substring(0,n)]?.[t.substring(n+1)]}else r=e[t];if(r!==void 0){let e=String(typeof r==`number`?r:r||``);return n?e.replace(zi,`\\\\`).replace(Bi,`\\u003C`).replace(Vi,`\\"`):e}}function Gi(e,t,n,r=!1){if(typeof e!=`string`||!e.includes(`%`))return e;let i=e;try{i=decodeURI(e)}catch{}let a=i.match(Hi);if(!a)return e;let o=e.includes(Ui);return e=e.replace(Hi,e=>{if(e===Ui||!a.includes(e))return e;let n=Wi(t,e.slice(1),r);return n===void 0?e:n}).trim(),o&&(e=e.split(Ui).map(e=>e.trim()).filter(e=>e!==``).join(n?` ${n} `:` `)),e}var Ki=(e,t)=>e._w===t._w?e._p-t._p:e._w-t._w,qi=e=>e.includes(`:key`)?e:e.split(`:`).join(`:key:`),Ji=Ri({key:`aliasSorting`,hooks:{"tags:resolve":e=>{let t=!1;for(let n of e.tags){let r=n.tagPriority;if(!r)continue;let i=String(r);if(i.startsWith(`before:`)){let r=qi(i.slice(7)),a=e.tagMap.get(r);a&&(typeof a.tagPriority==`number`&&(n.tagPriority=a.tagPriority),n._p=a._p-1,t=!0)}else if(i.startsWith(`after:`)){let r=qi(i.slice(6)),a=e.tagMap.get(r);a&&(typeof a.tagPriority==`number`&&(n.tagPriority=a.tagPriority),n._p=a._p+1,t=!0)}}t&&(e.tags=e.tags.sort(Ki))}}}),Yi=Ri({key:`deprecations`,hooks:{"entries:normalize":({tags:e})=>{for(let t of e)t.props.children&&(t.innerHTML=t.props.children,delete t.props.children),t.props.hid&&(t.key=t.props.hid,delete t.props.hid),t.props.vmid&&(t.key=t.props.vmid,delete t.props.vmid),`body`in t.props&&(t.props.body&&(t.tagPosition=`bodyClose`),delete t.props.body),t.props.renderPriority!=null&&(t.tagPriority=t.props.renderPriority,delete t.props.renderPriority)}}});function Xi(e){return typeof e?.then==`function`}var Zi=256;function Qi(e,t){if(t===e.length)return;if(t===Zi){let n=Array(e.length),r=!1;for(;t<e.length;t++){let i=ea(e[t]);n[t]=i,r||=Xi(i)}return r?n:void 0}let n=ea(e[t]);if(Xi(n)){let r=Array(e.length);r[t]=n;for(let n=t+1;n<e.length;n++)r[n]=ea(e[n]);return r}let r=Qi(e,t+1);return r&&(r[t]=n),r}function $i(e,t,n){if(n===t.length)return;if(n===Zi){let r=Array(t.length),i=!1;for(;n<t.length;n++){let a=ea(e[t[n]]);r[n]=a,i||=Xi(a)}return i?r:void 0}let r=ea(e[t[n]]);if(Xi(r)){let i=Array(t.length);i[n]=r;for(let r=n+1;r<t.length;r++)i[r]=ea(e[t[r]]);return i}let i=$i(e,t,n+1);return i&&(i[n]=r),i}function ea(e){if(typeof e==`function`)return e;if(Xi(e))return Promise.resolve(e).then(ea);if(Array.isArray(e)){let t=Qi(e,0);return t?Promise.all(t):e}if(e?.constructor===Object){let t=Object.keys(e),n=$i(e,t,0);if(n)return Promise.all(n).then(e=>Object.fromEntries(t.map((t,n)=>[t,e[n]])))}return e}var ta=Ri(e=>{let t=new WeakMap;return{key:`promises`,hooks:{"entries:resolve":n=>{for(let r=n.entries.length-1;r>=0;r--){let i=n.entries[r],a=i.input;if(t.get(i)===a){n.entries.splice(r,1);continue}let o=ea(a);Xi(o)?(t.set(i,a),n.entries.splice(r,1),Promise.resolve(o).then(n=>{t.get(i)===a&&(t.delete(i),i.input=n,delete i._tags,e.invalidate?.())},()=>{t.get(i)===a&&t.delete(i)})):t.delete(i)}}}}},`promises`),na={meta:`content`,link:`href`,htmlAttrs:`lang`},ra=[`innerHTML`,`textContent`];function ia(e,t,n,r=!1){return typeof e==`string`&&e.includes(`%`)?Gi(e,t,n,r):e}var aa=Ri(e=>({key:`template-params`,hooks:{"tags:resolve":({tagMap:t,tags:n})=>{let r=t.get(`templateParams`)?.props||{},i=r.separator||`|`;delete r.separator,r.pageTitle=ia(r.pageTitle||e._title||``,r,i);for(let e of n){if(e.processTemplateParams===!1)continue;let t=na[e.tag];if(t&&typeof e.props[t]==`string`)e.props[t]=ia(e.props[t],r,i);else if(e.processTemplateParams||e.tag===`titleTemplate`||e.tag===`title`)for(let t of ra)typeof e[t]==`string`&&(e[t]=ia(e[t],r,i,e.tag===`script`&&typeof e.props.type==`string`&&e.props.type.endsWith(`json`)))}e._templateParams=r,e._separator=i},"tags:afterResolve":({tagMap:t})=>{let n=t.get(`title`);n?.textContent&&n.processTemplateParams!==!1&&(n.textContent=ia(n.textContent,e._templateParams,e._separator))}}}),`template-params`);function oa(e={}){let t=Mi(),n,r=0;return n=Li({render:()=>{let e=++r;setTimeout(()=>{e===r&&t(n)},0)},...e}),n.install=hn(n),n}var sa={disableDefaults:!0,plugins:[Yi,ta,aa,Ji]},ca=o({name:`nuxt:head`,enforce:`pre`,setup(e){Di(e,oa(sa))}}),la=/(:\w+)\([^)]+\)/g,ua=/(:\w+)[?+*]/g,da=/:\w+/g,fa=(e,t)=>t.path.replace(la,`$1`).replace(ua,`$1`).replace(da,t=>e.params[t.slice(1)]?.toString()||``),pa=(e,t)=>{let n=e.route.matched.find(t=>t.components?.default===e.Component.type),r=t??n?.meta.key??(n&&fa(e.route,n));return typeof r==`function`?r(e.route):r},ma=(e,t)=>({default:()=>e?_(Se,e===!0?{}:e,t):t});function ha(e){return Array.isArray(e)?e:[e]}var ga=()=>({}),_a=()=>location.protocol+`//`+location.host;function va(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),bt(n,``)}return bt(n,e)+r+i}function ya(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=va(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:Bt.pop,direction:u?u>0?jt.forward:jt.back:jt.unknown})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(Ct({},e.state,{scroll:en()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function ba(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?en():null}}function xa(e){let{history:t,location:n}=window,r={value:va(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:_a()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,Ct({},t.state,ba(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=Ct({},i.value,t.state,{forward:e,scroll:en()});a(o.current,o,!0),a(e,Ct({},ba(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function Sa(e){e=on(e);let t=xa(e),n=ya(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=Ct({location:``,base:e,go:r,createHref:an.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var Ca=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.Group=2]=`Group`,e}({}),wa=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.ParamRegExp=2]=`ParamRegExp`,e[e.ParamRegExpEnd=3]=`ParamRegExpEnd`,e[e.EscapeNext=4]=`EscapeNext`,e}(wa||{}),Ta={type:Ca.Static,value:``},Ea=/[a-zA-Z0-9_]/;function Da(e){if(!e)return[[]];if(e===`/`)return[[Ta]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=wa.Static,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===wa.Static?a.push({type:Ca.Static,value:l}):n===wa.Param||n===wa.ParamRegExp||n===wa.ParamRegExpEnd?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:Ca.Param,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;s<e.length;)if(c=e[s++],c===`\\`&&n!==wa.ParamRegExp)r=n,n=wa.EscapeNext;else switch(n){case wa.Static:c===`/`?(l&&d(),o()):c===`:`?(d(),n=wa.Param):f();break;case wa.EscapeNext:f(),n=r;break;case wa.Param:c===`(`?n=wa.ParamRegExp:Ea.test(c)?f():(d(),n=wa.Static,c!==`*`&&c!==`?`&&c!==`+`&&s--);break;case wa.ParamRegExp:c===`)`?u[u.length-1]==`\\`?u=u.slice(0,-1)+c:n=wa.ParamRegExpEnd:u+=c;break;case wa.ParamRegExpEnd:d(),n=wa.Static,c!==`*`&&c!==`?`&&c!==`+`&&s--,u=``;break;default:t(`Unknown state`)}return n===wa.ParamRegExp&&t(`Unfinished custom RegExp for param "${l}"`),d(),o(),i}var Oa=`[^/]+?`,ka={sensitive:!1,strict:!1,start:!0,end:!0},Aa=function(e){return e[e._multiplier=10]=`_multiplier`,e[e.Root=90]=`Root`,e[e.Segment=40]=`Segment`,e[e.SubSegment=30]=`SubSegment`,e[e.Static=40]=`Static`,e[e.Dynamic=20]=`Dynamic`,e[e.BonusCustomRegExp=10]=`BonusCustomRegExp`,e[e.BonusWildcard=-50]=`BonusWildcard`,e[e.BonusRepeatable=-20]=`BonusRepeatable`,e[e.BonusOptional=-8]=`BonusOptional`,e[e.BonusStrict=.7000000000000001]=`BonusStrict`,e[e.BonusCaseSensitive=.25]=`BonusCaseSensitive`,e}(Aa||{}),ja=/[.+*?^${}()[\]/\\]/g;function Ma(e,t){let n=Ct({},ka,t),r=[],i=n.start?`^`:``,a=[];for(let t of e){let e=t.length?[]:[Aa.Root];n.strict&&!t.length&&(i+=`/`);for(let r=0;r<t.length;r++){let o=t[r],s=Aa.Segment+(n.sensitive?Aa.BonusCaseSensitive:0);if(o.type===Ca.Static)r||(i+=`/`),i+=o.value.replace(ja,`\\$&`),s+=Aa.Static;else if(o.type===Ca.Param){let{value:e,repeatable:n,optional:c,regexp:l}=o;a.push({name:e,repeatable:n,optional:c});let u=l||Oa;if(u!==Oa){s+=Aa.BonusCustomRegExp;try{`${u}`}catch(t){throw Error(`Invalid custom RegExp for param "${e}" (${u}): `+t.message)}}let d=n?`((?:${u})(?:/(?:${u}))*)`:`(${u})`;r||(d=c&&t.length<2?`(?:/${d})`:`/`+d),c&&(d+=`?`),i+=d,s+=Aa.Dynamic,c&&(s+=Aa.BonusOptional),n&&(s+=Aa.BonusRepeatable),u===`.*`&&(s+=Aa.BonusWildcard)}e.push(s)}r.push(e)}if(n.strict&&n.end){let e=r.length-1;r[e][r[e].length-1]+=Aa.BonusStrict}n.strict||(i+=`/?`),n.end?i+=`$`:n.strict&&!i.endsWith(`/`)&&(i+=`(?:/|$)`);let o=new RegExp(i,n.sensitive?``:`i`);function s(e){let t=e.match(o),n={};if(!t)return null;for(let e=1;e<t.length;e++){let r=t[e]||``,i=a[e-1];n[i.name]=r&&i.repeatable?r.split(`/`):r}return n}function c(t){let n=``,r=!1;for(let i of e){r&&n.endsWith(`/`)||(n+=`/`),r=!1;for(let e of i)if(e.type===Ca.Static)n+=e.value;else if(e.type===Ca.Param){let{value:a,repeatable:o,optional:s}=e,c=a in t?t[a]:``;if(Rt(c)&&!o)throw Error(`Provided param "${a}" is an array but it is not repeatable (* or + modifiers)`);let l=Rt(c)?c.join(`/`):c;if(!l){if(s)i.length<2&&(n.endsWith(`/`)?n=n.slice(0,-1):r=!0);else throw Error(`Missing required param "${a}"`)}n+=l}}return n||`/`}return{re:o,score:r,keys:a,parse:s,stringify:c}}function Na(e,t){let n=0;for(;n<e.length&&n<t.length;){let r=t[n]-e[n];if(r)return r;n++}return e.length<t.length?e.length===1&&e[0]===Aa.Static+Aa.Segment?-1:1:e.length>t.length?t.length===1&&t[0]===Aa.Static+Aa.Segment?1:-1:0}function Pa(e,t){let n=0,r=e.score,i=t.score;for(;n<r.length&&n<i.length;){let e=Na(r[n],i[n]);if(e)return e;n++}if(Math.abs(i.length-r.length)===1){if(Fa(r))return 1;if(Fa(i))return-1}return i.length-r.length}function Fa(e){let t=e[e.length-1];return e.length>0&&t[t.length-1]<0}var Ia={strict:!1,end:!0,sensitive:!1};function La(e,t,n){let r=Ma(Da(e.path),n),i=Ct(r,{record:e,parent:t,children:[],alias:[]});return t&&!i.record.aliasOf==!t.record.aliasOf&&t.children.push(i),i}function Ra(e,t){let n=[],r=new Map;t=ct(Ia,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=Ba(e);s.aliasOf=r&&r.record;let l=ct(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(Ba(Ct({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=La(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!Ha(d)&&o(e.name)),Ka(d)&&c(d),s.children){let e=s.children;for(let t=0;t<e.length;t++)a(e[t],d,r&&r.children[t])}r||=d}return f?()=>{o(f)}:mt}function o(e){if(lt(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=Wa(e,n);n.splice(t,0,e),e.record.name&&!Ha(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw Et(Ot.MATCHER_NOT_FOUND,{location:e});s=i.record.name,a=Ct(za(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&za(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name);else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw Et(Ot.MATCHER_NOT_FOUND,{location:e,currentLocation:t});s=i.record.name,a=Ct({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:Ua(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function za(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Ba(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Va(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Va(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function Ha(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Ua(e){return e.reduce((e,t)=>Ct(e,t.meta),{})}function Wa(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;Pa(e,t[i])<0?r=i:n=i+1}let i=Ga(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function Ga(e){let t=e;for(;t=t.parent;)if(Ka(t)&&Pa(e,t)===0)return t}function Ka({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function qa(e){let t=T(yt),n=T(_t),r=P(()=>{let n=O(e.to);return t.resolve(n)}),i=P(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(nt.bind(null,i));if(o>-1)return o;let s=Qa(e[t-2]);return t>1&&Qa(i)===s&&a[a.length-1].path!==s?a.findIndex(nt.bind(null,e[t-2])):o}),a=P(()=>i.value>-1&&Za(n.params,r.value.params)),o=P(()=>i.value>-1&&i.value===n.matched.length-1&&ft(n.params,r.value.params));function s(n={}){if(Xa(n)){let n=t[O(e.replace)?`replace`:`push`](O(e.to)).catch(mt);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:P(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function Ja(e){return e.length===1?e[0]:e}var Ya=F({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:qa,setup(e,{slots:t}){let n=me(qa(e)),{options:r}=T(yt),i=P(()=>({[$a(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[$a(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&Ja(t.default(n));return e.custom?r:_(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function Xa(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(e.button===void 0||e.button===0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Za(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!Rt(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function Qa(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var $a=(e,t,n)=>e??t??n,eo=F({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=T(rt),i=P(()=>e.route||r.value),a=T(pt,0),o=P(()=>{let e=O(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=P(()=>i.value.matched[o.value]);he(pt,P(()=>o.value+1)),he(at,s),he(rt,i);let c=V();return w(()=>[c.value,s.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),!e||!t||i&&nt(t,i)&&r||(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=i.value,a=e.name,o=s.value,l=o&&o.components[a];if(!l)return to(n.default,{Component:l,route:r});let u=o.props[a],d=u?u===!0?r.params:typeof u==`function`?u(r):u:null,f=_(l,Ct({},d,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[a]=null)},ref:c}));return to(n.default,{Component:f,route:r})||f}}});function to(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var no=eo;function ro(e){let t=Ra(e.routes,e),n=e.parseQuery||vt,r=e.stringifyQuery||ot,i=e.history,a=St(),o=St(),s=St(),c=Ae(Pt),l=Pt;Ze&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let u=Nt.bind(null,e=>``+e),d=Nt.bind(null,$e),f=Nt.bind(null,rn);function p(e,n){let r,i;return lt(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function m(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function h(){return t.getRoutes().map(e=>e.record)}function g(e){return!!t.getRecordMatcher(e)}function _(e,a){if(a=Ct({},a||c.value),typeof e==`string`){let r=it(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return Ct(r,o,{params:f(o.params),hash:rn(r.hash),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=Ct({},e,{path:it(n,e.path,a.path).path});else{let t=Ct({},e.params);for(let e in t)t[e]??delete t[e];o=Ct({},e,{params:d(t)}),a.params=d(a.params)}let s=t.resolve(o,a),l=e.hash||``;s.params=u(f(s.params));let p=xt(r,Ct({},e,{hash:ht(l),path:s.path})),m=i.createHref(p);return Ct({fullPath:p,hash:l,query:r===ot?Qe(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function v(e){return typeof e==`string`?it(n,e,c.value.path):Ct({},e)}function y(e,t){if(l!==e)return Et(Ot.NAVIGATION_CANCELLED,{from:t,to:e})}function b(e){return C(e)}function x(e){return b(Ct(v(e),{replace:!0}))}function S(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=v(i):{path:i},i.params={}),Ct({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function C(e,t){let n=l=_(e),i=c.value,a=e.state,o=e.force,s=e.replace===!0,u=S(n,i);if(u)return C(Ct(v(u),{state:typeof u==`object`?Ct({},a,u.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&ut(r,i,n)&&(f=Et(Ot.NAVIGATION_DUPLICATED,{to:d,from:i}),le(i,i,!0,!1)),(f?Promise.resolve(f):E(d,i)).catch(e=>Lt(e)?Lt(e,Ot.NAVIGATION_GUARD_REDIRECT)?e:ce(e):oe(e,d,i)).then(e=>{if(e){if(Lt(e,Ot.NAVIGATION_GUARD_REDIRECT))return C(Ct({replace:s},v(e.to),{state:typeof e.to==`object`?Ct({},a,e.to.state):a,force:o}),t||d)}else e=te(d,i,!0,s,a);return ee(d,i,e),e})}function w(e,t){let n=y(e,t);return n?Promise.reject(n):Promise.resolve()}function T(e){let t=j.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function E(e,t){let n,[r,i,s]=nn(e,t);n=gt(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(dt(r,e,t))});let c=w.bind(null,e,t);return n.push(c),ue(n).then(()=>{n=[];for(let r of a.list())n.push(dt(r,e,t));return n.push(c),ue(n)}).then(()=>{n=gt(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(dt(r,e,t))});return n.push(c),ue(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter){if(Rt(r.beforeEnter))for(let i of r.beforeEnter)n.push(dt(i,e,t));else n.push(dt(r.beforeEnter,e,t))}return n.push(c),ue(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=gt(s,`beforeRouteEnter`,e,t,T),n.push(c),ue(n))).then(()=>{n=[];for(let r of o.list())n.push(dt(r,e,t));return n.push(c),ue(n)}).catch(e=>Lt(e,Ot.NAVIGATION_CANCELLED)?e:Promise.reject(e))}function ee(e,t,n){s.list().forEach(r=>T(()=>r(e,t,n)))}function te(e,t,n,r,a){let o=y(e,t);if(o)return o;let s=t===Pt,l=Ze?history.state:{};n&&(r||s?i.replace(e.fullPath,Ct({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,le(e,t,n,s),ce()}let D;function ne(){D||=i.listen((e,t,n)=>{if(!M.listening)return;let r=_(e),a=S(r,M.currentRoute.value);if(a){C(Ct(a,{replace:!0,force:!0}),r).catch(mt);return}l=r;let o=c.value;Ze&&st(et(o.fullPath,n.delta),en()),E(r,o).catch(e=>Lt(e,Ot.NAVIGATION_ABORTED|Ot.NAVIGATION_CANCELLED)?e:Lt(e,Ot.NAVIGATION_GUARD_REDIRECT)?(C(Ct(v(e.to),{force:!0}),r).then(e=>{Lt(e,Ot.NAVIGATION_ABORTED|Ot.NAVIGATION_DUPLICATED)&&!n.delta&&n.type===Bt.pop&&i.go(-1,!1)}).catch(mt),Promise.reject()):(n.delta&&i.go(-n.delta,!1),oe(e,r,o))).then(e=>{e||=te(r,o,!1),e&&(n.delta&&!Lt(e,Ot.NAVIGATION_CANCELLED)?i.go(-n.delta,!1):n.type===Bt.pop&&Lt(e,Ot.NAVIGATION_ABORTED|Ot.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),ee(r,o,e)}).catch(mt)})}let re=St(),ie=St(),ae;function oe(e,t,n){ce(e);let r=ie.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function se(){return ae&&c.value!==Pt?Promise.resolve():new Promise((e,t)=>{re.add([e,t])})}function ce(e){return ae||(ae=!e,ne(),re.list().forEach(([t,n])=>e?n(e):t()),re.reset()),e}function le(t,n,r,i){let{scrollBehavior:a}=e;if(!Ze||!a)return Promise.resolve();let o=!r&&tt(et(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return we().then(()=>a(t,n,o)).then(e=>e&&qt(e)).catch(e=>oe(e,t,n))}let k=e=>i.go(e),A,j=new Set,M={currentRoute:c,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:h,resolve:_,options:e,push:b,replace:x,go:k,back:()=>k(-1),forward:()=>k(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:ie.add,isReady:se,install(e){e.component(`RouterLink`,Ya),e.component(`RouterView`,no),e.config.globalProperties.$router=M,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>O(c)}),Ze&&!A&&c.value===Pt&&(A=!0,b(i.location).catch(e=>{}));let t={};for(let e in Pt)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(yt,M),e.provide(_t,je(t)),e.provide(rt,c);let n=e.unmount;j.add(e),e.unmount=function(){j.delete(e),j.size<1&&(l=Pt,D&&D(),D=null,c.value=Pt,A=!1,ae=!1),n()}}};function ue(e){return e.reduce((e,t)=>e.then(()=>T(t)),Promise.resolve())}return M}var io=It(async e=>{if(!e.meta?.validate)return;let t=await Promise.resolve(e.meta.validate(e));if(t!==!0)return wt({fatal:!0,status:t&&(t.status||t.statusCode)||404,statusText:t&&(t.statusText||t.statusMessage)||`Page Not Found: ${e.fullPath}`,data:{path:e.fullPath}})}),ao=n({docsBase:p,reporters:m}),oo=`modulepreload`,so=function(e,t){return new URL(e,t).href},co={},lo=function(e){return e.pathname.endsWith(`.css`)},uo=function(e,t,n){if(t in e)return e[t];let r=n();if(!r){e[t]=void 0;return}let i=r.then(()=>{e[t]=void 0},n=>{throw e[t]=void 0,n});return e[t]=i,i},K=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=so(t,n);let r=s(t),i=lo(r);return uo(co,r.href,()=>{if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let t=document.createElement(`link`);if(t.rel=i?`stylesheet`:oo,i||(t.as=`script`),t.crossOrigin=``,t.href=r.href,a&&t.setAttribute(`nonce`,a),document.head.appendChild(t),i)return new Promise((e,n)=>{t.addEventListener(`load`,e),t.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${r}`)))})})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},fo=Ei;function po(e){return ga(e)}var mo;function ho(){let e;return e=fo(wi(`builds/meta/${u().app.buildId}.json`),{responseType:`json`}).then(e=>{if(!e||typeof e!=`object`||!Array.isArray(e.prerendered))throw ao.NUXT_E5004();return e}),mo=e,e.catch(t=>{mo===e&&(mo=void 0),ao.NUXT_E5002({cause:t})}),e}function go(){return mo||ho()}function _o(e){let t=typeof e==`string`?e:e.path;try{return po(t)}catch(e){return ao.NUXT_E5003({path:t,cause:e}),{}}}var vo=[io,It(e=>{let t=_o({path:e.path});if(t.redirect){let n=t.redirect.includes(`#`)?t.redirect:t.redirect+e.hash;return Kt(n)?(window.location.href=n,!1):n}})],yo={},bo=[{name:`story-id`,path:`/story/:id()`,component:()=>K(()=>import(`./DRlQgul3.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]),import.meta.url)},{name:`burndown`,path:`/burndown`,component:()=>K(()=>import(`./CvLiA4_O.js`),__vite__mapDeps([15,1,6,2,3,4,5,16,17,9,18,11,19,20,21,12,22,23,24,25,26,27,13,28,7,8,10,29,30,31,32,33,34]),import.meta.url)},{name:`epics`,path:`/epics`,component:()=>K(()=>import(`./COf6E6h4.js`),__vite__mapDeps([35,1,2,3,4,5,6,7,8,9,10,11,12,13,36]),import.meta.url)},{name:`gantt`,path:`/gantt`,component:()=>K(()=>import(`./DRPlYvb3.js`),__vite__mapDeps([37,1,2,3,4,5,6,7,8,9,10,11,12,13,38]),import.meta.url)},{name:`last-change`,path:`/last-change`,component:()=>K(()=>import(`./S08nFESZ.js`),__vite__mapDeps([39,1,6,2,3,4,5,7,8,9,10,11,12,13,40]),import.meta.url)},{name:`milestones`,path:`/milestones`,component:()=>K(()=>import(`./P9x67aq2.js`),__vite__mapDeps([41,1,2,3,4,5,6,7,8,9,10,11,12,13,42]),import.meta.url)},{name:`index`,path:`/`,component:()=>K(()=>import(`./BodFvto3.js`),__vite__mapDeps([43,1,6,2,3,4,5,16,17,9,18,11,19,20,21,12,22,23,24,25,26,27,13,28,7,8,10,29,30,31,32,33,44]),import.meta.url)}],xo=/\/(?=$|[?#])/;function So(e,t,n){let{pathname:r,search:i,hash:a}=t,o=e.indexOf(`#`);if(o>-1){let t=a.includes(e.slice(o))?e.slice(o).length:1,n=a.slice(t);return n[0]!==`/`&&(n=`/`+n),We(n,``)}let s=We(r,e),c=!n||Ve(s,n)?s:n;return c+(c.includes(`?`)?``:i)+a}var Co=o({name:`nuxt:router`,enforce:`pre`,async setup(e){let t=u().app.baseURL,n=Sn.history?.(t)??Sa(t),r=Sn.routes?await Sn.routes(bo)??bo:bo,i,a=ro({...Sn,scrollBehavior:(e,t,n)=>{if(t===Pt)i=n;else if(Sn.scrollBehavior){if(a.options.scrollBehavior=Sn.scrollBehavior,`scrollRestoration`in window.history){let e=a.beforeEach(()=>{e(),window.history.scrollRestoration=`manual`})}return Sn.scrollBehavior(e,Pt,i||n)}},history:n,routes:r});`scrollRestoration`in window.history&&(window.history.scrollRestoration=`auto`),e.vueApp.use(a);let o=Ae(a.currentRoute.value);a.afterEach((e,t)=>{o.value=t}),Object.defineProperty(e.vueApp.config.globalProperties,"previousRoute",{get:()=>o.value});let s=So(t,window.location,e.payload.path),c=We(window.location.pathname,t),l=Ae(a.currentRoute.value),d=()=>{l.value=a.currentRoute.value};a.afterEach((e,t)=>{let n=e.matched.at(-1)?.components?.default,r=t.matched.at(-1)?.components?.default;n===r?pa({route:e,Component:{type:n}})===pa({route:t,Component:{type:r}})&&d():e.matched.length<t.matched.length&&e.matched.every((e,n)=>e.components?.default===t.matched[n]?.components?.default)&&d()});let f={sync:d};for(let e in l.value)Object.defineProperty(f,e,{get:()=>l.value[e],enumerable:!0});e._route=je(f),e._middleware||={global:[],named:{}};let p=Yt();a.afterEach(async(t,n,r)=>{delete e._processingMiddleware,!e.isHydrating&&p.value&&!Lt(r,Gt.aborted|Gt.cancelled)&&await e.runWithContext(Qt),r&&await e.callHook(`page:loading:end`)}),a.onError(async()=>{delete e._processingMiddleware,await e.callHook(`page:loading:end`)});try{await a.isReady()}catch(t){await At(e,t)}let m=s===a.currentRoute.value.fullPath?a.currentRoute.value:a.resolve(s),h=a.currentRoute.value.fullPath,g=e.isHydrating&&e.payload.prerenderedAt&&e.payload.path&&s.replace(xo,``)!==e.payload.path.replace(xo,``)&&Ve(a.currentRoute.value.path,e.payload.path);d();function _(r){!e.isHydrating&&r.fullPath!==So(t,window.location)&&n.push(r.fullPath)}a.beforeEach(t=>{if(!e.isHydrating&&ga(t.path).noScripts)return window.location.assign(a.resolve(t.fullPath).href),!1}),a.beforeResolve(e=>{if(e.matched.length||Ve(e.path,c))return;let n=new URL(Ue(e.fullPath,t),window.location.href);if(n.origin===window.location.origin)return window.location.assign(n),!1});let v=e.payload.state._layout;return a.beforeEach(async(t,n)=>{await e.callHook(`page:loading:start`),t.meta=me(t.meta),e.isHydrating&&v&&!ye(t.meta.layout)&&(t.meta.layout=v),e._processingMiddleware=!0;{let r=new Set([...vo,...e._middleware.global]);for(let e of t.matched){let t=e.meta.middleware;if(t)for(let e of ha(t))r.add(e)}let i=_o({path:t.path});if(i.appMiddleware)for(let e in i.appMiddleware)i.appMiddleware[e]?r.add(e):r.delete(e);for(let i of r){let r=typeof i==`string`?e._middleware.named[i]||await yo[i]?.().then(e=>e.default||e):i;if(!r)throw $t.NUXT_E2004({entry:String(i),validMiddleware:void 0});try{let i=await e.runWithContext(()=>r(t,n));if(!e.payload.serverRendered&&e.isHydrating&&(i===!1||i instanceof Error)){let t=i||wt({status:404,statusText:`Page Not Found: ${s}`});return await e.runWithContext(()=>Ht(t)),!1}if(i===!0)continue;if(i===!1)return i;if(i)return tn(i)&&i.fatal&&(await e.runWithContext(()=>Ht(i)),_(t)),i}catch(n){let r=wt(n);return r.fatal&&(await e.runWithContext(()=>Ht(r)),_(t)),r}}}}),a.afterEach((t,n,r)=>{if(t.matched.length===0&&!p.value&&!Lt(r,Gt.aborted|Gt.cancelled))return e.runWithContext(()=>Ht(wt({status:404,fatal:!1,statusText:`Page not found: ${t.fullPath}`,data:{path:t.fullPath}})))}),e.hooks.hookOnce(`app:created`,async()=>{try{if(`name`in m&&(m.name=void 0),a.currentRoute.value.fullPath===h){if(g){let t=a.resolve(e.payload.path);`name`in t&&(t.name=void 0),await a.replace({...t,force:!0});let n=()=>{if(!e[`~restoreDeferredRoute`])return;e[`~restoreDeferredRoute`]=void 0;let t=a.currentRoute,n=a.resolve(s);n.matched.at(-1)===t.value.matched.at(-1)&&(n.meta=t.value.meta),t.value=n,d(),a.replace({...m,force:!0}).catch(()=>{})};e[`~restoreDeferredRoute`]=n,e.hooks.hookOnce(`app:suspense:resolve`,n)}else await a.replace({...m,force:!0})}a.options.scrollBehavior=Sn.scrollBehavior}catch(t){await At(e,t)}}),{provide:{router:a}}}}),wo=o(()=>{let e=zt();Zt(()=>{e.beforeResolve(async()=>{await new Promise(e=>{setTimeout(e,100),requestAnimationFrame(()=>{setTimeout(e,0)})})})})}),To=o(e=>{let t;async function n(){let r;try{r=await go()}catch(e){let t=e;if(!(`status`in t&&(t.status===404||t.status===403)))throw t}t&&clearTimeout(t),t=setTimeout(n,s);try{let n=await Ei(wi(`builds/latest.json`)+`?${Date.now()}`);n.id!==r?.id&&(e.hooks.callHook(`app:manifest:update`,n),t&&clearTimeout(t))}catch{}}Zt(()=>{t=setTimeout(n,s)})});function Eo(e={}){let t=e.path||window.location.pathname,n=new URL(t,window.location.href);if(n.host!==window.location.host)throw $t.NUXT_E2010({path:t});if(n.protocol&&Ke(n.protocol))throw $t.NUXT_E2002({toPath:t,protocol:n.protocol});let r={};try{r=JSON.parse(sessionStorage.getItem(`nuxt:reload`)||`{}`)}catch{}if(e.force||r?.path!==t||r?.expires<Date.now()){try{sessionStorage.setItem(`nuxt:reload`,JSON.stringify({path:t,expires:Date.now()+(e.ttl??1e4)}))}catch{}if(e.persistState)try{sessionStorage.setItem(`nuxt:reload:state`,JSON.stringify({state:l().payload.state}))}catch{}window.location.pathname===t?window.location.reload():window.location.href=t}}var Do=o({name:`nuxt:chunk-reload-crawler`,setup(e){let t=!0;e.hooks.hookOnce(`app:suspense:resolve`,()=>{t=!1}),e.hook(`app:chunkError`,()=>{t&&Vt(navigator.userAgent)&&Eo()})}}),Oo=o({name:`nuxt:chunk-reload`,setup(e){let t=zt(),n=u(),r=new Set;t.beforeEach(()=>{r.clear()}),e.hook(`app:chunkError`,({error:e})=>{r.add(e)});function i(e){Eo({path:He(n.app.baseURL,e.fullPath),persistState:!0})}e.hook(`app:manifest:update`,()=>{t.beforeResolve(i)}),t.onError((e,t)=>{r.has(e)&&i(t)})}}),ko=o({name:`nuxt:island-link-navigation`,setup(e){}}),Ao=Ei;function jo(){return Ao}function Mo(e,t){return typeof e==`object`?e?.[t]:e}var No=o({name:`@nuxt/icon`,setup(){let e=u(),t=wn().icon,n=jo(),r=n.native;On.setFetch((e,t)=>{let n=globalThis.$fetch?.native;return(r||n||globalThis.fetch)(e,t)});let i=Mo(t.provider,`client`),a=[];if(i===`server`){let n=e.app?.baseURL?.replace(/\/$/,``)??``;a.push(n+(t.localApiEndpoint||`/api/_nuxt_icon`)),(t.fallbackToApi===!0||t.fallbackToApi===`client-only`)&&a.push(t.iconifyApiEndpoint)}else i===`none`?On.setFetch(()=>Promise.resolve(new Response)):a.push(t.iconifyApiEndpoint);async function o(e,t){try{let r=await n(a[0]+`/`+t+`.json`,{query:{icons:e.join(`,`)}});if(!r||r.prefix!==t||!r.icons)throw Error(`Invalid data`+JSON.stringify(r));return r}catch(e){return console.error(`Failed to load custom icons`,e),null}}async function s(e,t){let n=[[]],r=0;for(let t of e){let e=encodeURIComponent(t).length;r+e>2e3&&n.at(-1).length&&(n.push([]),r=0),n.at(-1).push(t),r+=e+1}let i=(await Promise.all(n.map(e=>o(e,t)))).filter(e=>!!e);return i.length?i.reduce((e,t)=>({...e,...t,icons:{...e.icons,...t.icons},aliases:{...e.aliases,...t.aliases}})):null}An(``,{resources:a});for(let e of t.customCollections||[])e&&En(s,e)}}),Po=D(()=>K(()=>import(`./C8vL692X.js`).then(e=>e.default||e.default||e),__vite__mapDeps([45,1,11,3,4,18,31,5,6,2,12,22,13]),import.meta.url)),Fo=D(()=>K(()=>import(`./DnDHGSYI.js`).then(e=>e.default||e.default||e),__vite__mapDeps([46,1,6,17,9,18,4,11,3,47,12,21,22,25,26,27,7,8,5,10,13]),import.meta.url)),Io=D(()=>K(()=>import(`./Cz6rZcLK.js`).then(e=>e.default||e.default||e),__vite__mapDeps([48,1,11,3,4,18]),import.meta.url)),Lo=D(()=>K(()=>import(`./1eqboJxR.js`).then(e=>e.default||e.default||e),__vite__mapDeps([49,1,11,3,4,18,50,51,22,7,8,9,5,6,10,12,13,29]),import.meta.url)),Ro=D(()=>K(()=>import(`./DqZgF3hU.js`).then(e=>e.default||e.default||e),__vite__mapDeps([52,1,11,3,4,18]),import.meta.url)),zo=D(()=>K(()=>import(`./vwxaNGfc.js`).then(e=>e.default||e.default||e),__vite__mapDeps([53,1,11,3,4,18,7,8,9,5,6,10,12,13,31,2,22,50]),import.meta.url)),Bo=D(()=>K(()=>import(`./2K7ag6ES.js`).then(e=>e.default||e.default||e),__vite__mapDeps([54,1,11,3,4,18,7,8,9,5,6,10,12,13,31,2,22,50]),import.meta.url)),Vo=D(()=>K(()=>import(`./BaG8y0Wt.js`).then(e=>e.default||e.default||e),__vite__mapDeps([55,1,11,3,4,18]),import.meta.url)),Ho=D(()=>K(()=>import(`./CqoQ__I_.js`).then(e=>e.default||e.default||e),__vite__mapDeps([56,1,11,3,4,18]),import.meta.url)),Uo=D(()=>K(()=>import(`./BpWeHLuN.js`).then(e=>e.default||e.default||e),__vite__mapDeps([57,1,11,3,4,18,30,12,26,7,8,9,5,6,10,13,31,2,22,29]),import.meta.url)),Wo=D(()=>K(()=>import(`./D2FhHl1o.js`).then(e=>e.default||e.default||e),__vite__mapDeps([58,1,11,3,4,18,59,6,17,9,21,12,22,25,27,32,60,20,33,61,7,8,5,10,13]),import.meta.url)),Go=D(()=>K(()=>import(`./CJMBJQuf.js`).then(e=>e.default||e.default||e),__vite__mapDeps([61,1,4,11,3,7,8,9,5,6,10,12,13]),import.meta.url)),Ko=D(()=>K(()=>import(`./DbHiyab-.js`).then(e=>e.default||e.default||e),__vite__mapDeps([62,1,11,3,4,18]),import.meta.url)),qo=D(()=>K(()=>import(`./Cvs12oA0.js`).then(e=>e.default||e.default||e),__vite__mapDeps([63,1,6,11,3,4,19,18,20,21,12,22,23,25,17,9,33,60,27,7,8,5,10,13,61]),import.meta.url)),Jo=D(()=>K(()=>import(`./CMUi2-Lj.js`).then(e=>e.default||e.default||e),__vite__mapDeps([64,1,11,3,4,18,12,26,7,8,9,5,6,10,13]),import.meta.url)),Yo=D(()=>K(()=>import(`./CK-lOYG9.js`).then(e=>e.default||e.default||e),__vite__mapDeps([65,1,11,3,4,18]),import.meta.url)),Xo=D(()=>K(()=>import(`./DIc8yx98.js`).then(e=>e.default||e.default||e),__vite__mapDeps([66,1,11,3,4,18,22,50]),import.meta.url)),Zo=D(()=>K(()=>import(`./DSLbmoWa.js`).then(e=>e.default||e.default||e),__vite__mapDeps([67,1,11,3,4,18,22]),import.meta.url)),Qo=D(()=>K(()=>import(`./CLBcBrYf.js`).then(e=>e.default||e.default||e),__vite__mapDeps([68,3,1,11,4,18]),import.meta.url)),$o=D(()=>K(()=>import(`./BDK2Hj7B.js`).then(e=>e.default||e.default||e),__vite__mapDeps([69,3,1,11,4,18,7,8,9,5,6,10,12,13]),import.meta.url)),es=D(()=>K(()=>import(`./D75vbfSb.js`).then(e=>e.default||e.default||e),__vite__mapDeps([70,3,1,11,4,18,7,8,9,5,6,10,12,13]),import.meta.url)),ts=D(()=>K(()=>import(`./uKzCKCTq.js`).then(e=>e.default||e.default||e),__vite__mapDeps([71,3,1,11,4,18]),import.meta.url)),ns=D(()=>K(()=>import(`./CgDTd7jS.js`).then(e=>e.default||e.default||e),__vite__mapDeps([72,1,11,3,4,18]),import.meta.url)),rs=D(()=>K(()=>import(`./CPCUMJnF.js`).then(e=>e.default||e.default||e),__vite__mapDeps([73,1,11,3,4,18,7,8,9,5,6,10,12,13]),import.meta.url)),is=D(()=>K(()=>import(`./D99LbGfb.js`).then(e=>e.default||e.default||e),__vite__mapDeps([74,3,1,6,17,9,18,4,11,21,12,22,27]),import.meta.url)),as=D(()=>K(()=>import(`./DajA-Tkt.js`).then(e=>e.default||e.default||e),__vite__mapDeps([75,1,11,3,4,18]),import.meta.url)),os=D(()=>K(()=>import(`./Dg2LiqmN.js`).then(e=>e.default||e.default||e),__vite__mapDeps([76,1,11,3,4,18]),import.meta.url)),ss=D(()=>K(()=>import(`./yh6sf_D5.js`).then(e=>e.default||e.default||e),__vite__mapDeps([77,1,11,3,4,18]),import.meta.url)),cs=D(()=>K(()=>import(`./DqcxvfbD.js`).then(e=>e.default||e.default||e),__vite__mapDeps([78,1,11,3,4,18]),import.meta.url)),ls=D(()=>K(()=>import(`./CyEXFe3V.js`).then(e=>e.default||e.default||e),__vite__mapDeps([79,1,11,3,4,18,21,12,30,26,7,8,9,5,6,10,13,31,2,22,29,61]),import.meta.url)),us=D(()=>K(()=>import(`./assMu_Wn.js`).then(e=>e.default||e.default||e),__vite__mapDeps([80,1,11,3,4,18,21,12,7,8,9,5,6,10,13,30,26,31,2,22,29]),import.meta.url)),ds=D(()=>K(()=>import(`./DpXJ_tCU.js`).then(e=>e.default||e.default||e),__vite__mapDeps([81,1]),import.meta.url)),fs=D(()=>K(()=>import(`./Du91iq0p.js`).then(e=>e.default||e.default||e),__vite__mapDeps([82,1,11,3,4,18]),import.meta.url)),ps=D(()=>K(()=>import(`./DsA2lVci.js`).then(e=>e.default||e.default||e),__vite__mapDeps([83,1,11,3,4,18]),import.meta.url)),ms=D(()=>K(()=>import(`./D5CE81jK.js`).then(e=>e.default||e.default||e),__vite__mapDeps([84,1,11,3,4,18]),import.meta.url)),hs=D(()=>K(()=>import(`./DhuleNnm.js`).then(e=>e.default||e.default||e),__vite__mapDeps([85,1,11,3,4,18,12,26,59,6,17,9,21,22,25,27,32,60,20,33,7,8,5,10,13,29,51]),import.meta.url)),gs=D(()=>K(()=>import(`./BmxvtaMq.js`).then(e=>e.default||e.default||e),__vite__mapDeps([86,1,11,3,4,18]),import.meta.url)),_s=D(()=>K(()=>import(`./DF-nsa1Z.js`).then(e=>e.default||e.default||e),__vite__mapDeps([87,1,11,3,4,18]),import.meta.url)),vs=D(()=>K(()=>import(`./Dc7Ql6eE.js`).then(e=>e.default||e.default||e),__vite__mapDeps([88,1,11,3,4,18]),import.meta.url)),ys=D(()=>K(()=>import(`./ZngEd3HB.js`).then(e=>e.default||e.default||e),__vite__mapDeps([89,1,11,3,4,18]),import.meta.url)),bs=D(()=>K(()=>import(`./MaXJprwN.js`).then(e=>e.default||e.default||e),__vite__mapDeps([90,1,11,3,4,18]),import.meta.url)),xs=D(()=>K(()=>import(`./Dd9ZukPU.js`).then(e=>e.default||e.default||e),__vite__mapDeps([91,1,11,3,4,18]),import.meta.url)),Ss=D(()=>K(()=>import(`./CSEEUF8S.js`).then(e=>e.default||e.default||e),__vite__mapDeps([92,1,11,3,4,18]),import.meta.url)),Cs=D(()=>K(()=>import(`./D_S6N7_b.js`).then(e=>e.default||e.default||e),__vite__mapDeps([93,1,11,3,4,50,53,18,7,8,9,5,6,10,12,13,31,2,22]),import.meta.url)),ws=D(()=>K(()=>import(`./CPcKlmSm.js`).then(e=>e.default||e.default||e),__vite__mapDeps([94,1,11,3,4,50,53,18,7,8,9,5,6,10,12,13,31,2,22]),import.meta.url)),Ts=D(()=>K(()=>import(`./CGI_ZV79.js`).then(e=>e.default||e.default||e),__vite__mapDeps([95,1,11,3,4,50,53,18,7,8,9,5,6,10,12,13,31,2,22]),import.meta.url)),Es=D(()=>K(()=>import(`./C40iTe-x.js`).then(e=>e.default||e.default||e),__vite__mapDeps([96,1,11,3,4,50,53,18,7,8,9,5,6,10,12,13,31,2,22]),import.meta.url)),Ds=D(()=>K(()=>import(`./DEfLc7p3.js`).then(e=>e.n).then(e=>e.default||e.default||e),__vite__mapDeps([8,9,3,1,5,6,4,10,11]),import.meta.url)),Os=[[`ProseA`,Po],[`ProseAccordion`,Fo],[`ProseAccordionItem`,Io],[`ProseBadge`,Lo],[`ProseBlockquote`,Ro],[`ProseCallout`,zo],[`ProseCard`,Bo],[`ProseCardGroup`,Vo],[`ProseCode`,Ho],[`ProseCodeCollapse`,Uo],[`ProseCodeGroup`,Wo],[`ProseCodeIcon`,Go],[`ProseCodePreview`,Ko],[`ProseCodeTree`,qo],[`ProseCollapsible`,Jo],[`ProseEm`,Yo],[`ProseField`,Xo],[`ProseFieldGroup`,Zo],[`ProseH1`,Qo],[`ProseH2`,$o],[`ProseH3`,es],[`ProseH4`,ts],[`ProseHr`,ns],[`ProseIcon`,rs],[`ProseImg`,is],[`ProseKbd`,as],[`ProseLi`,os],[`ProseOl`,ss],[`ProseP`,cs],[`ProsePre`,ls],[`ProsePrompt`,us],[`ProseScript`,ds],[`ProseSteps`,fs],[`ProseStrong`,ps],[`ProseTable`,ms],[`ProseTabs`,hs],[`ProseTabsItem`,gs],[`ProseTbody`,_s],[`ProseTd`,vs],[`ProseTh`,ys],[`ProseThead`,bs],[`ProseTr`,xs],[`ProseUl`,Ss],[`ProseCaution`,Cs],[`ProseNote`,ws],[`ProseTip`,Ts],[`ProseWarning`,Es],[`Icon`,Ds]],ks=o({name:`nuxt:global-components`,setup(e){for(let[t,n]of Os)e.vueApp.component(t,n),e.vueApp.component(`Lazy`+t,n)}}),As={},js=[`route`,`payload`,`island`,`hint`],Ms=12,Ns={route:8,payload:8,island:4,hint:8};function Ps(e={}){let t={...Ns,...e.concurrency},n=e.total??Ms,r=e.canPrefetch,i=e.defer,a={route:[],payload:[],island:[],hint:[]},o=js.map(e=>a[e]),s=new WeakSet,c=new Map,l={route:0,payload:0,island:0,hint:0},u=0,d=new Map,f=new AbortController,p=new AbortController;p.abort();function m(e){c.get(e.key)===e&&c.delete(e.key)}function h(e){m(e),Promise.resolve().then(()=>e.run(p.signal,!1)).catch(()=>{})}function g(){if(!r||r())for(;u<n;){let e=js.find(e=>a[e].length&&l[e]<t[e]);if(!e)return;let n=a[e].shift();_(n,s.delete(n))}}function _(e,t){let n=e.scope===`app`?f:new AbortController;e.scope===`navigation`&&d.set(e,n),l[e.priority]++,u++;let r=!1,a=()=>{r||(r=!0,l[e.priority]--,u--,d.delete(e),m(e),g())};n.signal.addEventListener(`abort`,a,{once:!0});let o=()=>Promise.resolve().then(()=>e.run(n.signal,t)).then(a,a);i?i(o,t,e.priority):o()}let v=(e,t)=>t!==void 0&&e.group===t&&e.priority!==`hint`;return{schedule(e){let t=[];for(let n of Array.isArray(e)?e:[e])c.has(n.key)?h(n):(c.set(n.key,n),t.push(n));for(let e=t.length-1;e>=0;e--)a[t[e].priority].unshift(t[e]);g()},promote(e){for(let t of o){let n=[],r=[];for(let i of t)i.group===e&&s.add(i),(i.group===e?n:r).push(i);t.length=0,t.push(...n,...r)}g()},reset(e){for(let t of o)for(let n=t.length-1;n>=0;n--){let r=t[n];r.scope===`navigation`&&!v(r,e)&&(t.splice(n,1),h(r))}for(let[t,n]of[...d])v(t,e)||n.abort();g()},resume:g}}var Fs=1e3;function Is(e,t,n){if(t||n===`route`)return e();let r=globalThis.scheduler;r?.postTask?r.postTask(e,{priority:`background`}).catch(()=>{}):Jt(e,{timeout:Fs})}function Ls(e=l()){if(e._prefetch)return e._prefetch;let t=!1,n=Ps({canPrefetch:()=>yn()&&!t&&document.visibilityState!==`hidden`,defer:Is});e._prefetch=n,navigator.connection?.addEventListener?.(`change`,()=>n.resume()),document.addEventListener(`visibilitychange`,()=>n.resume());let r=e.$router;return r.beforeEach(()=>{t=!0}),r.afterEach(e=>{t=!1,n.reset(bn(e.fullPath))}),r.onError(()=>{t=!1,n.resume()}),n}var Rs=o({name:`nuxt:prefetch`,setup(e){let t=zt();e.hooks.hook(`app:mounted`,()=>{t.beforeEach(async e=>{let t=e?.meta?.layout;typeof t==`string`&&t in As&&await xn(As[t])})});let{schedule:n}=Ls(e);e.hooks.hook(`link:prefetch`,async e=>{if(Ge(e))return;let r=t.resolve(e);if(!r)return;let i=r.meta.layout,a=ha(r.meta.middleware).filter(e=>typeof e==`string`);n({key:`route:chunks:${e}`,priority:`route`,scope:`navigation`,group:bn(e),run:e=>{if(e.aborted)return;let t=[];for(let e of a){let n=yo[e];typeof n==`function`&&t.push(n())}return typeof i==`string`&&i in As&&t.push(xn(As[i])),Promise.all(t).catch(()=>{})}})})}}),zs={inherit:`inherit`,current:`currentcolor`,transparent:`transparent`,black:`#000`,white:`#fff`,slate:{50:`oklch(98.4% 0.003 247.858)`,100:`oklch(96.8% 0.007 247.896)`,200:`oklch(92.9% 0.013 255.508)`,300:`oklch(86.9% 0.022 252.894)`,400:`oklch(70.4% 0.04 256.788)`,500:`oklch(55.4% 0.046 257.417)`,600:`oklch(44.6% 0.043 257.281)`,700:`oklch(37.2% 0.044 257.287)`,800:`oklch(27.9% 0.041 260.031)`,900:`oklch(20.8% 0.042 265.755)`,950:`oklch(12.9% 0.042 264.695)`},gray:{50:`oklch(98.5% 0.002 247.839)`,100:`oklch(96.7% 0.003 264.542)`,200:`oklch(92.8% 0.006 264.531)`,300:`oklch(87.2% 0.01 258.338)`,400:`oklch(70.7% 0.022 261.325)`,500:`oklch(55.1% 0.027 264.364)`,600:`oklch(44.6% 0.03 256.802)`,700:`oklch(37.3% 0.034 259.733)`,800:`oklch(27.8% 0.033 256.848)`,900:`oklch(21% 0.034 264.665)`,950:`oklch(13% 0.028 261.692)`},zinc:{50:`oklch(98.5% 0 none)`,100:`oklch(96.7% 0.001 286.375)`,200:`oklch(92% 0.004 286.32)`,300:`oklch(87.1% 0.006 286.286)`,400:`oklch(70.5% 0.015 286.067)`,500:`oklch(55.2% 0.016 285.938)`,600:`oklch(44.2% 0.017 285.786)`,700:`oklch(37% 0.013 285.805)`,800:`oklch(27.4% 0.006 286.033)`,900:`oklch(21% 0.006 285.885)`,950:`oklch(14.1% 0.005 285.823)`},neutral:{50:`oklch(98.5% 0 none)`,100:`oklch(97% 0 none)`,200:`oklch(92.2% 0 none)`,300:`oklch(87% 0 none)`,400:`oklch(70.8% 0 none)`,500:`oklch(55.6% 0 none)`,600:`oklch(43.9% 0 none)`,700:`oklch(37.1% 0 none)`,800:`oklch(26.9% 0 none)`,900:`oklch(20.5% 0 none)`,950:`oklch(14.5% 0 none)`},stone:{50:`oklch(98.5% 0.001 106.423)`,100:`oklch(97% 0.001 106.424)`,200:`oklch(92.3% 0.003 48.717)`,300:`oklch(86.9% 0.005 56.366)`,400:`oklch(70.9% 0.01 56.259)`,500:`oklch(55.3% 0.013 58.071)`,600:`oklch(44.4% 0.011 73.639)`,700:`oklch(37.4% 0.01 67.558)`,800:`oklch(26.8% 0.007 34.298)`,900:`oklch(21.6% 0.006 56.043)`,950:`oklch(14.7% 0.004 49.25)`},mauve:{50:`oklch(98.5% 0 none)`,100:`oklch(96% 0.003 325.6)`,200:`oklch(92.2% 0.005 325.62)`,300:`oklch(86.5% 0.012 325.68)`,400:`oklch(71.1% 0.019 323.02)`,500:`oklch(54.2% 0.034 322.5)`,600:`oklch(43.5% 0.029 321.78)`,700:`oklch(36.4% 0.029 323.89)`,800:`oklch(26.3% 0.024 320.12)`,900:`oklch(21.2% 0.019 322.12)`,950:`oklch(14.5% 0.008 326)`},olive:{50:`oklch(98.8% 0.003 106.5)`,100:`oklch(96.6% 0.005 106.5)`,200:`oklch(93% 0.007 106.5)`,300:`oklch(88% 0.011 106.6)`,400:`oklch(73.7% 0.021 106.9)`,500:`oklch(58% 0.031 107.3)`,600:`oklch(46.6% 0.025 107.3)`,700:`oklch(39.4% 0.023 107.4)`,800:`oklch(28.6% 0.016 107.4)`,900:`oklch(22.8% 0.013 107.4)`,950:`oklch(15.3% 0.006 107.1)`},mist:{50:`oklch(98.7% 0.002 197.1)`,100:`oklch(96.3% 0.002 197.1)`,200:`oklch(92.5% 0.005 214.3)`,300:`oklch(87.2% 0.007 219.6)`,400:`oklch(72.3% 0.014 214.4)`,500:`oklch(56% 0.021 213.5)`,600:`oklch(45% 0.017 213.2)`,700:`oklch(37.8% 0.015 216)`,800:`oklch(27.5% 0.011 216.9)`,900:`oklch(21.8% 0.008 223.9)`,950:`oklch(14.8% 0.004 228.8)`},taupe:{50:`oklch(98.6% 0.002 67.8)`,100:`oklch(96% 0.002 17.2)`,200:`oklch(92.2% 0.005 34.3)`,300:`oklch(86.8% 0.007 39.5)`,400:`oklch(71.4% 0.014 41.2)`,500:`oklch(54.7% 0.021 43.1)`,600:`oklch(43.8% 0.017 39.3)`,700:`oklch(36.7% 0.016 35.7)`,800:`oklch(26.8% 0.011 36.5)`,900:`oklch(21.4% 0.009 43.1)`,950:`oklch(14.7% 0.004 49.3)`},red:{50:`oklch(97.1% 0.013 17.38)`,100:`oklch(93.6% 0.032 17.717)`,200:`oklch(88.5% 0.062 18.334)`,300:`oklch(80.8% 0.114 19.571)`,400:`oklch(70.4% 0.191 22.216)`,500:`oklch(63.7% 0.237 25.331)`,600:`oklch(57.7% 0.245 27.325)`,700:`oklch(50.5% 0.213 27.518)`,800:`oklch(44.4% 0.177 26.899)`,900:`oklch(39.6% 0.141 25.723)`,950:`oklch(25.8% 0.092 26.042)`},orange:{50:`oklch(98% 0.016 73.684)`,100:`oklch(95.4% 0.038 75.164)`,200:`oklch(90.1% 0.076 70.697)`,300:`oklch(83.7% 0.128 66.29)`,400:`oklch(75% 0.183 55.934)`,500:`oklch(70.5% 0.213 47.604)`,600:`oklch(64.6% 0.222 41.116)`,700:`oklch(55.3% 0.195 38.402)`,800:`oklch(47% 0.157 37.304)`,900:`oklch(40.8% 0.123 38.172)`,950:`oklch(26.6% 0.079 36.259)`},amber:{50:`oklch(98.7% 0.022 95.277)`,100:`oklch(96.2% 0.059 95.617)`,200:`oklch(92.4% 0.12 95.746)`,300:`oklch(87.9% 0.169 91.605)`,400:`oklch(82.8% 0.189 84.429)`,500:`oklch(76.9% 0.188 70.08)`,600:`oklch(66.6% 0.179 58.318)`,700:`oklch(55.5% 0.163 48.998)`,800:`oklch(47.3% 0.137 46.201)`,900:`oklch(41.4% 0.112 45.904)`,950:`oklch(27.9% 0.077 45.635)`},yellow:{50:`oklch(98.7% 0.026 102.212)`,100:`oklch(97.3% 0.071 103.193)`,200:`oklch(94.5% 0.129 101.54)`,300:`oklch(90.5% 0.182 98.111)`,400:`oklch(85.2% 0.199 91.936)`,500:`oklch(79.5% 0.184 86.047)`,600:`oklch(68.1% 0.162 75.834)`,700:`oklch(55.4% 0.135 66.442)`,800:`oklch(47.6% 0.114 61.907)`,900:`oklch(42.1% 0.095 57.708)`,950:`oklch(28.6% 0.066 53.813)`},lime:{50:`oklch(98.6% 0.031 120.757)`,100:`oklch(96.7% 0.067 122.328)`,200:`oklch(93.8% 0.127 124.321)`,300:`oklch(89.7% 0.196 126.665)`,400:`oklch(84.1% 0.238 128.85)`,500:`oklch(76.8% 0.233 130.85)`,600:`oklch(64.8% 0.2 131.684)`,700:`oklch(53.2% 0.157 131.589)`,800:`oklch(45.3% 0.124 130.933)`,900:`oklch(40.5% 0.101 131.063)`,950:`oklch(27.4% 0.072 132.109)`},green:{50:`oklch(98.2% 0.018 155.826)`,100:`oklch(96.2% 0.044 156.743)`,200:`oklch(92.5% 0.084 155.995)`,300:`oklch(87.1% 0.15 154.449)`,400:`oklch(79.2% 0.209 151.711)`,500:`oklch(72.3% 0.219 149.579)`,600:`oklch(62.7% 0.194 149.214)`,700:`oklch(52.7% 0.154 150.069)`,800:`oklch(44.8% 0.119 151.328)`,900:`oklch(39.3% 0.095 152.535)`,950:`oklch(26.6% 0.065 152.934)`},emerald:{50:`oklch(97.9% 0.021 166.113)`,100:`oklch(95% 0.052 163.051)`,200:`oklch(90.5% 0.093 164.15)`,300:`oklch(84.5% 0.143 164.978)`,400:`oklch(76.5% 0.177 163.223)`,500:`oklch(69.6% 0.17 162.48)`,600:`oklch(59.6% 0.145 163.225)`,700:`oklch(50.8% 0.118 165.612)`,800:`oklch(43.2% 0.095 166.913)`,900:`oklch(37.8% 0.077 168.94)`,950:`oklch(26.2% 0.051 172.552)`},teal:{50:`oklch(98.4% 0.014 180.72)`,100:`oklch(95.3% 0.051 180.801)`,200:`oklch(91% 0.096 180.426)`,300:`oklch(85.5% 0.138 181.071)`,400:`oklch(77.7% 0.152 181.912)`,500:`oklch(70.4% 0.14 182.503)`,600:`oklch(60% 0.118 184.704)`,700:`oklch(51.1% 0.096 186.391)`,800:`oklch(43.7% 0.078 188.216)`,900:`oklch(38.6% 0.063 188.416)`,950:`oklch(27.7% 0.046 192.524)`},cyan:{50:`oklch(98.4% 0.019 200.873)`,100:`oklch(95.6% 0.045 203.388)`,200:`oklch(91.7% 0.08 205.041)`,300:`oklch(86.5% 0.127 207.078)`,400:`oklch(78.9% 0.154 211.53)`,500:`oklch(71.5% 0.143 215.221)`,600:`oklch(60.9% 0.126 221.723)`,700:`oklch(52% 0.105 223.128)`,800:`oklch(45% 0.085 224.283)`,900:`oklch(39.8% 0.07 227.392)`,950:`oklch(30.2% 0.056 229.695)`},sky:{50:`oklch(97.7% 0.013 236.62)`,100:`oklch(95.1% 0.026 236.824)`,200:`oklch(90.1% 0.058 230.902)`,300:`oklch(82.8% 0.111 230.318)`,400:`oklch(74.6% 0.16 232.661)`,500:`oklch(68.5% 0.169 237.323)`,600:`oklch(58.8% 0.158 241.966)`,700:`oklch(50% 0.134 242.749)`,800:`oklch(44.3% 0.11 240.79)`,900:`oklch(39.1% 0.09 240.876)`,950:`oklch(29.3% 0.066 243.157)`},blue:{50:`oklch(97% 0.014 254.604)`,100:`oklch(93.2% 0.032 255.585)`,200:`oklch(88.2% 0.059 254.128)`,300:`oklch(80.9% 0.105 251.813)`,400:`oklch(70.7% 0.165 254.624)`,500:`oklch(62.3% 0.214 259.815)`,600:`oklch(54.6% 0.245 262.881)`,700:`oklch(48.8% 0.243 264.376)`,800:`oklch(42.4% 0.199 265.638)`,900:`oklch(37.9% 0.146 265.522)`,950:`oklch(28.2% 0.091 267.935)`},indigo:{50:`oklch(96.2% 0.018 272.314)`,100:`oklch(93% 0.034 272.788)`,200:`oklch(87% 0.065 274.039)`,300:`oklch(78.5% 0.115 274.713)`,400:`oklch(67.3% 0.182 276.935)`,500:`oklch(58.5% 0.233 277.117)`,600:`oklch(51.1% 0.262 276.966)`,700:`oklch(45.7% 0.24 277.023)`,800:`oklch(39.8% 0.195 277.366)`,900:`oklch(35.9% 0.144 278.697)`,950:`oklch(25.7% 0.09 281.288)`},violet:{50:`oklch(96.9% 0.016 293.756)`,100:`oklch(94.3% 0.029 294.588)`,200:`oklch(89.4% 0.057 293.283)`,300:`oklch(81.1% 0.111 293.571)`,400:`oklch(70.2% 0.183 293.541)`,500:`oklch(60.6% 0.25 292.717)`,600:`oklch(54.1% 0.281 293.009)`,700:`oklch(49.1% 0.27 292.581)`,800:`oklch(43.2% 0.232 292.759)`,900:`oklch(38% 0.189 293.745)`,950:`oklch(28.3% 0.141 291.089)`},purple:{50:`oklch(97.7% 0.014 308.299)`,100:`oklch(94.6% 0.033 307.174)`,200:`oklch(90.2% 0.063 306.703)`,300:`oklch(82.7% 0.119 306.383)`,400:`oklch(71.4% 0.203 305.504)`,500:`oklch(62.7% 0.265 303.9)`,600:`oklch(55.8% 0.288 302.321)`,700:`oklch(49.6% 0.265 301.924)`,800:`oklch(43.8% 0.218 303.724)`,900:`oklch(38.1% 0.176 304.987)`,950:`oklch(29.1% 0.149 302.717)`},fuchsia:{50:`oklch(97.7% 0.017 320.058)`,100:`oklch(95.2% 0.037 318.852)`,200:`oklch(90.3% 0.076 319.62)`,300:`oklch(83.3% 0.145 321.434)`,400:`oklch(74% 0.238 322.16)`,500:`oklch(66.7% 0.295 322.15)`,600:`oklch(59.1% 0.293 322.896)`,700:`oklch(51.8% 0.253 323.949)`,800:`oklch(45.2% 0.211 324.591)`,900:`oklch(40.1% 0.17 325.612)`,950:`oklch(29.3% 0.136 325.661)`},pink:{50:`oklch(97.1% 0.014 343.198)`,100:`oklch(94.8% 0.028 342.258)`,200:`oklch(89.9% 0.061 343.231)`,300:`oklch(82.3% 0.12 346.018)`,400:`oklch(71.8% 0.202 349.761)`,500:`oklch(65.6% 0.241 354.308)`,600:`oklch(59.2% 0.249 0.584)`,700:`oklch(52.5% 0.223 3.958)`,800:`oklch(45.9% 0.187 3.815)`,900:`oklch(40.8% 0.153 2.432)`,950:`oklch(28.4% 0.109 3.907)`},rose:{50:`oklch(96.9% 0.015 12.422)`,100:`oklch(94.1% 0.03 12.58)`,200:`oklch(89.2% 0.058 10.001)`,300:`oklch(81% 0.117 11.638)`,400:`oklch(71.2% 0.194 13.428)`,500:`oklch(64.5% 0.246 16.439)`,600:`oklch(58.6% 0.253 17.585)`,700:`oklch(51.4% 0.222 16.935)`,800:`oklch(45.5% 0.188 13.697)`,900:`oklch(41% 0.159 10.272)`,950:`oklch(27.1% 0.105 12.094)`}},Bs=[50,100,200,300,400,500,600,700,800,900,950];function Vs(e,t){return e in zs&&typeof zs[e]==`object`&&t in zs[e]?zs[e][t]:``}function Hs(e,t,n){let r=n?`${n}-`:``;return`${Bs.map(n=>`--ui-color-${e}-${n}: var(--${r}color-${t===`neutral`?`old-neutral`:t}-${n}, ${Vs(t,n)});`).join(`
3
3
  `)}`}function Us(e,t){return`--ui-${e}: var(--ui-color-${e}-${t});`}function Ws(){document.querySelector(`[data-nuxt-ui-colors]`)?.remove()}var Gs=[ca,Co,wo,To,Do,Oo,ko,No,ks,Rs,o(()=>{let e=wn(),t=l(),n=P(()=>{let{neutral:t,...n}=e.ui.colors,r=e.ui.prefix;return`@layer theme {
4
4
  :root, :host {
5
5
  ${Object.entries(e.ui.colors).map(([e,t])=>Hs(e,t,r)).join(`
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/CkF353aX.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CkF353aX.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/CkF353aX.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"d7f0931f-32b3-4c23-b05f-7cbf5851b226",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793369477275,false]</script></body></html>
1
+ <!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/pIF8vEtK.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/pIF8vEtK.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/pIF8vEtK.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"4a212bd2-438f-4b26-b8f3-57db47ca0799",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793371120775,false]</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/CkF353aX.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CkF353aX.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/CkF353aX.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"d7f0931f-32b3-4c23-b05f-7cbf5851b226",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793369477276,false]</script></body></html>
1
+ <!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/pIF8vEtK.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/pIF8vEtK.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/pIF8vEtK.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"4a212bd2-438f-4b26-b8f3-57db47ca0799",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793371120776,false]</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/CkF353aX.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CkF353aX.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/CkF353aX.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"d7f0931f-32b3-4c23-b05f-7cbf5851b226",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793369477276,false]</script></body></html>
1
+ <!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/pIF8vEtK.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/pIF8vEtK.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/pIF8vEtK.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"4a212bd2-438f-4b26-b8f3-57db47ca0799",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793371120777,false]</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/CkF353aX.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CkF353aX.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/CkF353aX.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"d7f0931f-32b3-4c23-b05f-7cbf5851b226",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793369477277,false]</script></body></html>
1
+ <!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/pIF8vEtK.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/pIF8vEtK.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/pIF8vEtK.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"4a212bd2-438f-4b26-b8f3-57db47ca0799",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793371120778,false]</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/CkF353aX.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CkF353aX.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/CkF353aX.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"d7f0931f-32b3-4c23-b05f-7cbf5851b226",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793369477276,false]</script></body></html>
1
+ <!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/pIF8vEtK.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/pIF8vEtK.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/pIF8vEtK.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"4a212bd2-438f-4b26-b8f3-57db47ca0799",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793371120777,false]</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/CkF353aX.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CkF353aX.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/CkF353aX.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"d7f0931f-32b3-4c23-b05f-7cbf5851b226",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793369477276,false]</script></body></html>
1
+ <!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>敏捷看板</title><script type="importmap">{"imports":{"#entry":"/_nuxt/pIF8vEtK.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.Dx3CNA--.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/pIF8vEtK.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DK3Fl9T5.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D2O8Q8x9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DZo3dYLJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/51OWHj8c.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B3jkABw9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/6gFtTBwm.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DSaWoFHS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Csqgy925.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C7K0R7F-.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/ChG76uh9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CJ2mz0WY.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DEfLc7p3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DLkAKotw.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Vo4wMbnS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CuJUHLl8.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CK9_veoz.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bb3Limos.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dtsa-1NS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Ci0qbkgh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BuOKDFiJ.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D3YCAmfu.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/B_SlFcWp.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bi9Axj3V.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/rlePnzpc.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/DfR3IZN_.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/EYTShbt4.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BgLeKwx0.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C9StZL3D.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/BPTrRhcw.js"><script type="module" src="/_nuxt/pIF8vEtK.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CSSb154I.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DHihWhf5.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.BFmXOnCT.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B5n2_jZN.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BZ-DdjQ6.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/ZVTqot-_.js"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/favicon.svg"></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"4a212bd2-438f-4b26-b8f3-57db47ca0799",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1793371120777,false]</script></body></html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "scrum-skills",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "结构化敏捷开发管理 skills + CLI:AI 对话产出结构化敏捷数据,TDD 驱动实施,Nuxt 看板可视化",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -0,0 +1,216 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * 「自动提交」:把这次交付整份提交进本地仓库(git add -A + git commit)。
4
+ *
5
+ * 只提交,不 push、不改任何文件内容。所以这里的全部力气都花在「别在错误的时机动手」:
6
+ * · 不是 git 仓库 / 分离头指针 / 正在合并、摘取、回滚、变基 / 工作区有冲突 → 拒绝并说清原因;
7
+ * · 工作区干净 → 拒绝,不造空提交;
8
+ * · 提交信息首行必须是 Conventional Commits(feat: / fix: / chore: …),非法时连 git add 都不做。
9
+ *
10
+ * 用法(CLI 调试;看板走 /api/agile/git/* 两个接口):
11
+ * node tools/git-commit.mjs status [目录]
12
+ * node tools/git-commit.mjs commit <信息文件|-> [目录]
13
+ */
14
+ import { existsSync, readFileSync } from 'node:fs';
15
+ import { resolve } from 'node:path';
16
+ import { execFileSync } from 'node:child_process';
17
+ import { pathToFileURL } from 'node:url';
18
+
19
+ const TIMEOUT = 30000;
20
+ const MAX_MESSAGE = 8000;
21
+
22
+ /** 首行:type(scope)!: 内容。`!` 留给破坏性变更 */
23
+ export const CONVENTIONAL_RE =
24
+ /^(feat|fix|chore|docs|style|refactor|perf|test|build|ci|revert)(\([^()\n]{1,32}\))?!?: \S/;
25
+
26
+ /** 这些文件还在,说明仓库卡在某个多步操作中间,这时候提交会把半截状态钉进历史 */
27
+ const IN_PROGRESS = [
28
+ ['MERGE_HEAD', '正在合并(MERGE_HEAD 还在),先把冲突处理完再提交'],
29
+ ['CHERRY_PICK_HEAD', '正在摘取提交(CHERRY_PICK_HEAD 还在),先处理完再提交'],
30
+ ['REVERT_HEAD', '正在回滚提交(REVERT_HEAD 还在),先处理完再提交'],
31
+ ['rebase-merge', '正在变基(rebase-merge 还在),先处理完再提交'],
32
+ ['rebase-apply', '正在变基或应用补丁(rebase-apply 还在),先处理完再提交'],
33
+ ];
34
+
35
+ const CONFLICT_CODES = new Set(['DD', 'AU', 'UD', 'UA', 'DU', 'AA', 'UU']);
36
+
37
+ /**
38
+ * 统一走 execFileSync:参数按数组传,不经过 shell,中文路径也不被转义。
39
+ * (git 默认会把非 ASCII 路径写成 "\346\226\207" 这种转义,看板上读不了)
40
+ */
41
+ const git = (root, args, opts = {}) =>
42
+ execFileSync('git', ['-c', 'core.quotepath=false', '-C', root, ...args], {
43
+ encoding: 'utf8',
44
+ stdio: ['ignore', 'pipe', 'pipe'],
45
+ timeout: TIMEOUT,
46
+ windowsHide: true,
47
+ ...opts,
48
+ });
49
+
50
+ const stderrOf = e => String(e?.stderr ?? e?.message ?? '').trim();
51
+
52
+ const parseStatusLine = line => ({
53
+ code: line.slice(0, 2).trim(),
54
+ path: line.slice(3).replace(/^"(.*)"$/, '$1'),
55
+ });
56
+
57
+ /**
58
+ * 提交前预览:这个目录能不能提交、提交了会带走哪些文件。
59
+ * 永远不抛错——看板要把它整个显示出来,包括「不是仓库」这种情况。
60
+ */
61
+ export function commitPreview(root = process.cwd()) {
62
+ const dir = resolve(root);
63
+ const base = { root: dir, isRepo: false, branch: null, blocked: null, files: [], clean: true, conflicted: false };
64
+
65
+ let inside = '';
66
+ try {
67
+ inside = git(dir, ['rev-parse', '--is-inside-work-tree']).trim();
68
+ } catch {
69
+ return base;
70
+ }
71
+ if (inside !== 'true') return base;
72
+
73
+ let branch = null;
74
+ try {
75
+ branch = git(dir, ['rev-parse', '--abbrev-ref', 'HEAD']).trim() || null;
76
+ } catch {
77
+ // 空仓库还没有 HEAD:不算错误,首次提交照样能做
78
+ }
79
+ const detached = branch === 'HEAD';
80
+
81
+ let gitDir = '';
82
+ try {
83
+ gitDir = git(dir, ['rev-parse', '--absolute-git-dir']).trim();
84
+ } catch {}
85
+
86
+ let files = [];
87
+ try {
88
+ files = git(dir, ['status', '--porcelain=v1', '-uall'])
89
+ .split('\n')
90
+ .filter(Boolean)
91
+ .map(parseStatusLine);
92
+ } catch {
93
+ files = [];
94
+ }
95
+ const conflicted = files.some(f => CONFLICT_CODES.has(f.code));
96
+
97
+ const inProgress = gitDir ? IN_PROGRESS.find(([name]) => existsSync(resolve(gitDir, name))) : null;
98
+ let blocked = null;
99
+ if (inProgress) blocked = inProgress[1];
100
+ else if (detached) blocked = '当前是分离头指针(detached HEAD),在这里提交会丢,先切回分支';
101
+ else if (conflicted) blocked = '工作区里还有冲突(UU / AA / DD),先把冲突解决完再提交';
102
+
103
+ return {
104
+ ...base,
105
+ isRepo: true,
106
+ branch: detached ? null : branch,
107
+ blocked,
108
+ files,
109
+ clean: files.length === 0,
110
+ conflicted,
111
+ };
112
+ }
113
+
114
+ /**
115
+ * 提交信息归一:CRLF → LF、去掉行尾空白、压掉连续空行。
116
+ * 首行必须符合 Conventional Commits,空信息直接拒——不然会写出一个没意义的提交。
117
+ */
118
+ export function normalizeCommitMessage(message) {
119
+ const text = String(message ?? '')
120
+ .replace(/\r\n?/g, '\n')
121
+ .replace(/[ \t]+$/gm, '')
122
+ .replace(/\n{3,}/g, '\n\n')
123
+ .trim();
124
+ if (!text) throw new Error('提交信息是空的:先在弹窗里看清这次改了什么');
125
+ const subject = text.split('\n')[0];
126
+ if (!CONVENTIONAL_RE.test(subject)) {
127
+ throw new Error(`提交信息首行要符合 Conventional Commits(形如 "feat: 一句话"),现在是「${subject.slice(0, 40)}」`);
128
+ }
129
+ if (text.length > MAX_MESSAGE) throw new Error(`提交信息太长了(${text.length} 字符,上限 ${MAX_MESSAGE}),删掉一些再提交`);
130
+ return text;
131
+ }
132
+
133
+ /**
134
+ * 真提交:add -A → commit -F -(多行信息走 stdin,避开 shell 引号)→ 回短 hash。
135
+ * 任何一步失败都抛出人话,看板原样显示。
136
+ */
137
+ export function commitAll(root = process.cwd(), message = '') {
138
+ const dir = resolve(root);
139
+ const text = normalizeCommitMessage(message);
140
+
141
+ const preview = commitPreview(dir);
142
+ if (!preview.isRepo) throw new Error('这个目录不是 git 仓库,没法自动提交(先 git init)');
143
+ if (preview.blocked) throw new Error(preview.blocked);
144
+ if (preview.clean) throw new Error('没有未提交的改动,不需要提交');
145
+
146
+ try {
147
+ git(dir, ['add', '-A']);
148
+ } catch (e) {
149
+ throw new Error(`git add 失败:${stderrOf(e) || '未知原因'}`);
150
+ }
151
+
152
+ try {
153
+ git(dir, ['commit', '-F', '-'], { stdio: ['pipe', 'pipe', 'pipe'], input: text });
154
+ } catch (e) {
155
+ const err = stderrOf(e);
156
+ if (/who are you|auto-detect email|user\.name|user\.email/i.test(err)) {
157
+ throw new Error('git 还没配提交身份,先跑:git config user.name "你的名字"、git config user.email "你的邮箱"');
158
+ }
159
+ throw new Error(`git commit 失败:${err || '未知原因'}`);
160
+ }
161
+
162
+ const hash = git(dir, ['rev-parse', '--short', 'HEAD']).trim();
163
+ return {
164
+ hash,
165
+ subject: text.split('\n')[0],
166
+ branch: preview.branch,
167
+ files: preview.files.length,
168
+ };
169
+ }
170
+
171
+ function main() {
172
+ const [cmd, ...rest] = process.argv.slice(2);
173
+ const positional = rest.filter(a => !a.startsWith('--'));
174
+
175
+ if (cmd === 'status') {
176
+ const p = commitPreview(positional[0] ?? process.cwd());
177
+ if (!p.isRepo) {
178
+ console.log('· 不是 git 仓库(没法自动提交)');
179
+ process.exit(2);
180
+ }
181
+ console.log(`· 分支: ${p.branch ?? '(分离头指针)'}`);
182
+ console.log(`· 待提交: ${p.files.length} 个文件`);
183
+ for (const f of p.files) console.log(` ${f.code.padEnd(2)} ${f.path}`);
184
+ if (p.blocked) console.log(`· 现在不能提交: ${p.blocked}`);
185
+ process.exit(p.blocked ? 3 : 0);
186
+ }
187
+
188
+ if (cmd === 'commit') {
189
+ const src = positional[0];
190
+ if (!src) {
191
+ console.error('用法: node tools/git-commit.mjs commit <信息文件|-> [目录]');
192
+ process.exit(1);
193
+ }
194
+ let message;
195
+ try {
196
+ message = src === '-' ? readFileSync(0, 'utf8') : readFileSync(resolve(src), 'utf8');
197
+ } catch (e) {
198
+ console.error(`✘ 读不到提交信息文件: ${e.message}`);
199
+ process.exit(3);
200
+ }
201
+ try {
202
+ const r = commitAll(positional[1] ?? process.cwd(), message);
203
+ console.log(`✔ 已提交 ${r.hash} · ${r.files} 个文件 · 分支 ${r.branch ?? '(分离头指针)'}`);
204
+ return;
205
+ } catch (e) {
206
+ console.error(`✘ ${e.message}`);
207
+ process.exit(4);
208
+ }
209
+ }
210
+
211
+ console.error('用法:\n node tools/git-commit.mjs status [目录]\n node tools/git-commit.mjs commit <信息文件|-> [目录]');
212
+ process.exit(1);
213
+ }
214
+
215
+ const entry = process.argv[1] ? pathToFileURL(resolve(process.argv[1])).href : '';
216
+ if (entry && entry === import.meta.url) main();
@@ -7,6 +7,7 @@ import { randomBytes } from 'node:crypto';
7
7
  import { fileURLToPath } from 'node:url';
8
8
  import { createAgileTools } from './agile-tools.mjs';
9
9
  import { checkLastChange, listLastChangeHistory, readLastChangeAt } from './last-change.mjs';
10
+ import { commitAll, commitPreview } from './git-commit.mjs';
10
11
 
11
12
  const exec = promisify(execFile);
12
13
  const validator = fileURLToPath(new URL('./validate.mjs', import.meta.url));
@@ -158,7 +159,13 @@ export function createProjects({ root, store = defaultStore, pick = pickDirector
158
159
  tools.patch({ file: 'backlog', patches, reason: `看板卡片操作:${from} → ${to}` });
159
160
  return { id, from, to };
160
161
  };
161
- return { list, read, open, select, setStoryStatus };
162
+ /**
163
+ * 「自动提交」:提交信息由看板按交付记录生成后整份带上来,这里只负责执行。
164
+ * 生成器只有一份(apps/board/app/utils/commit-message.js)——复制按钮与自动提交用的是同一段文本,
165
+ * 不会出现「复制的和提交的不一样」。tools/ 不 import 看板源码,发布包里也就不用带 apps/。
166
+ */
167
+ const commit = ({ message } = {}) => commitAll(current, message);
168
+ return { list, read, open, select, setStoryStatus, commit };
162
169
  }
163
170
 
164
171
  export async function handleProjectApi(projects, { method, path, headers, body }) {
@@ -178,12 +185,20 @@ export async function handleProjectApi(projects, { method, path, headers, body }
178
185
  if (method === 'GET' && url.pathname === '/api/agile/last-change/revision') {
179
186
  return { status: 200, body: readLastChangeAt(projects.list().root, url.searchParams.get('hash')) };
180
187
  }
188
+ // 自动提交前的预览(能不能提交、会带走哪些文件):只读,同样不要 token
189
+ if (method === 'GET' && url.pathname === '/api/agile/git/status') {
190
+ return { status: 200, body: commitPreview(projects.list().root) };
191
+ }
181
192
  if (method !== 'POST') return { status: 405, body: { error: '不支持的请求方法。' } };
182
193
  if (headers['x-project-token'] !== projects.list().token) return denied();
183
194
  // 看板卡片的退回 / 下一步 / 取消:改的是当前打开项目的 backlog.json
184
195
  if (url.pathname === '/api/agile/story-status') {
185
196
  return { status: 200, body: projects.setStoryStatus({ id: body?.id, action: body?.action }) };
186
197
  }
198
+ // 自动提交:真跑 git add -A + git commit(不 push)
199
+ if (url.pathname === '/api/agile/git/commit') {
200
+ return { status: 200, body: projects.commit({ message: body?.message }) };
201
+ }
187
202
  if (url.pathname === '/api/projects/select') return { status: 200, body: await projects.select() };
188
203
  if (url.pathname === '/api/projects/open') {
189
204
  if (!projects.list().recent.includes(body?.root)) throw new Error('该项目不在最近列表中,请选择文件夹。');
@@ -1,3 +0,0 @@
1
- import{D as e,E as t,Ht as n,On as r,T as i,Zn as a,_ as o,b as s,bt as c,ct as l,er as ee,g as u,it as d,k as te,mt as f,o as p,qt as m,tr as h,tt as ne,u as re,v as g,vn as _,y as v}from"./DZo3dYLJ.js";import{w as y}from"./51OWHj8c.js";import{t as ie}from"./CJ2mz0WY.js";import{t as ae}from"./rlePnzpc.js";import{O as b,i as x,s as oe}from"#entry";var S={added:`新增`,updated:`状态变更`,removed:`移除`},C=`更新交付记录`,w=`变更`,T=e=>typeof e==`string`?e.replace(/\s+/g,` `).trim():``;function se(e){let t=Array.isArray(e?.changes)?e.changes:[],n=T(e?.title)||C,r=t.some(e=>e?.action===`added`)?`feat`:`chore`,i=[];for(let e of t){let t=T(e?.id);if(!t)continue;let n=T(e.title)||T(e.note),r=S[e.action]||T(e.action)||w;e.action===`updated`&&(T(e.from)||T(e.to))&&(r+=` ${T(e.from)||`—`} → ${T(e.to)||`—`}`),i.push(`- ${t}${n?` ${n}`:``}(${r})`)}return i.length?`${r}: ${n}\n\n${i.join(`
2
- `)}`:`${r}: ${n}`}var ce={class:`rule-top`},le={class:`rule-ic`},ue={class:`rule-state`},de={class:`mono`},fe={key:0},pe={class:`rule-cases`},me={class:`case-when`},he={class:`case-then`},ge={key:1,class:`lc-hist-bar`},_e={class:`hist-badge`},ve={class:`hist-readonly mono`},ye=[`title`,`disabled`,`onClick`],be={key:2,class:`card lc-empty`},xe={class:`em-ic`},Se={key:3,class:`lc`},Ce={class:`lc-hero`},we={class:`hero-body`},Te={class:`hero-kicker`},Ee={class:`k-date mono`},De={key:0,class:`k-time mono`},Oe={key:1,class:`k-today`},ke=[`title`],Ae={class:`hero-title`},je={key:0,class:`hero-sum`},Me={class:`hero-meta`},Ne={class:`hero-aside`},Pe={class:`ring-in`},Fe={class:`lc-nav`,"aria-label":`分区导航`},Ie=[`href`,`onClick`],Le={class:`lc-nav-lb`},Re={class:`lc-nav-ct`},ze={id:`lc-changes`,class:`card sec`},Be={class:`s-hd`},Ve={class:`s-ic`},He={class:`s-count`},Ue={key:0,class:`sec-empty dim`},We={key:1,class:`tbl-wrap`},Ge={class:`tbl lc-tbl`},Ke={class:`ent`},qe={class:`ent-top`},Je={key:0,class:`ent-title`},Ye={key:0,class:`flow mono`},Xe={class:`fl`},Ze={class:`fl`},Qe={class:`cell-note`},$e={class:`chips`},et=[`title`],tt={key:0,class:`dim`},nt={class:`two`},rt={id:`lc-extras`,class:`card sec`},it={class:`s-hd`},at={class:`s-ic`},ot={class:`s-count`},st={class:`sec-bd lc-extras`},ct={key:0,class:`dim`},lt={class:`x-body`},ut={class:`x-title`},dt={key:0,class:`x-detail`},ft={key:1,class:`chips x-files`},pt=[`title`],mt={id:`lc-checks`,class:`card sec`},ht={class:`s-hd`},gt={class:`s-ic tone-mint`},_t={class:`s-count`},vt={class:`sec-bd lc-checks`},yt={key:0,class:`dim`},bt={class:`v-body`},xt={class:`v-what`},St={key:0,class:`v-detail`},Ct={key:0,id:`lc-access`,class:`card sec lc-access`},wt={class:`s-hd`},Tt={class:`s-ic tone-sky`},Et={class:`s-count`},Dt={class:`sec-bd acc-grid`},Ot={key:0,class:`acc-col`},kt={class:`u-head`},At=[`href`],jt={class:`u-label`},Mt=[`onClick`],Nt={class:`u-url mono`},Pt={key:0,class:`u-note`},Ft={key:1,class:`acc-col`},It={class:`a-head`},Lt={key:0,class:`a-role`},Rt={class:`a-user mono`},zt=[`onClick`],Bt={class:`a-line`},Vt={key:0,class:`a-pass mono`},Ht={key:1,class:`a-none dim`},Ut={key:0,class:`a-note`},Wt={key:1,id:`lc-prep`,class:`card sec lc-prep`},Gt={class:`s-hd`},Kt={class:`s-ic tone-amber`},qt={class:`s-count`},Jt={class:`steps`},Yt={class:`step-bd`},Xt={class:`step-text`},Zt={key:0,class:`cmd-row`},Qt={class:`cmd mono`},$t=[`onClick`],en={key:1,class:`step-note`},tn={id:`lc-scenarios`,class:`lc-sc-sec`},nn={class:`s-hd solo`},rn={class:`s-ic tone-mint`},an={class:`s-count`},on={key:0,class:`dim sec-empty`},sn={key:1,class:`lc-sc-grid`},cn={class:`sc-hd`},ln={class:`sc-id mono`},un={class:`sc-title`},dn={key:0,class:`sc-body`},fn={class:`lc-sc-steps`},pn={class:`sc-acc`},mn={class:`sc-acc-h`},hn={class:`sc-acc-t`},gn={key:0,class:`sc-foot`},_n={key:0},vn={key:1,class:`sc-ids`},yn={class:`two`},bn={id:`lc-notes`,class:`card sec`},xn={class:`s-hd`},Sn={class:`s-ic`},Cn={class:`s-count`},wn={class:`sec-bd`},Tn={key:0,class:`dim`},En={key:1,class:`lc-notes`},Dn={key:0,id:`lc-open`,class:`card sec sec-warn`},On={class:`s-hd`},kn={class:`s-ic`},An={class:`s-count`},jn={class:`sec-bd`},Mn={class:`lc-notes warn`},Nn={class:`lc-hist`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`lc-hist-title`},Pn={class:`lc-hist-hd`},Fn={class:`lc-hist-hd-txt`},In={class:`lc-hist-sub`},Ln={key:0,class:`lc-hist-err`},Rn={key:1,class:`lc-hist-hint dim`},zn={key:2,class:`lc-hist-list`},Bn=[`disabled`,`onClick`],Vn={class:`hist-item-main`},Hn={class:`mono`},Un={class:`mono hist-item-hash`},Wn={key:0,class:`lc-hist-hint dim`},Gn={class:`lc-hist-ft`},E=x(te({__name:`last-change`,setup(te){let{lastChange:x,lastChangeGit:S}=oe(),C=_(null),w=u(()=>C.value?.doc?.lastChange??x.value),T=u(()=>S.value),E=_([]),D=_(!1),O=_(!1),k=_(``),A=_(!1),Kn=u(()=>C.value?[C.value]:[]);async function qn(){if(!O.value){O.value=!0,k.value=``;try{let e=await b(`/api/agile/last-change/history`);E.value=e.entries??[]}catch(e){k.value=e?.data?.error||e?.message||`读不到 git 历史`}finally{O.value=!1}}}async function j(){D.value=!0,E.value.length||await qn()}async function M(e){if(!A.value){A.value=!0,k.value=``;try{C.value=await b(`/api/agile/last-change/revision`,{query:{hash:e.hash}}),D.value=!1,window.scrollTo({top:0,behavior:`smooth`})}catch(e){k.value=e?.data?.error||e?.message||`取不到这个版本`}finally{A.value=!1}}}function Jn(){C.value=null,window.scrollTo({top:0,behavior:`smooth`})}let N=_(null);n(C,async()=>{await ne(),N.value?.querySelector(`.hist-tab.on`)?.scrollIntoView({inline:`nearest`,block:`nearest`})});function P(e){e.key===`Escape`&&D.value&&(D.value=!1)}l(()=>window.addEventListener(`keydown`,P)),d(()=>window.removeEventListener(`keydown`,P));let F={committed:{text:`已提交`,tone:`ok`},dirty:{text:`未提交改动`,tone:`warn`},untracked:{text:`未纳入版本库`,tone:`warn`},"no-git":{text:`非 git 仓库`,tone:`neutral`},missing:{text:`尚未生成`,tone:`neutral`}},I=u(()=>F[T.value?.state??`missing`]??F.missing),Yn=[{key:`committed`,when:`已提交`,then:`下次写入整份覆盖;上一版留在 git 历史里,点「查看历史」随时翻回来`},{key:`pending`,when:`未提交`,then:`下次写入合并:新交付接在旧记录后面,不冲掉还没入库的内容`}],Xn=u(()=>{let e=T.value?.state;return e===`committed`?`committed`:e===`dirty`||e===`untracked`||e===`no-git`?`pending`:``}),Zn=u(()=>(w.value?.mergedFrom?.length??0)+1),Qn=u(()=>(w.value?.mergedFrom??[]).map(e=>`${e.at??``} ${e.title??``}`.trim()).filter(Boolean).join(`
3
- `)),$n={added:`新增`,updated:`状态变更`,removed:`移除`},er={story:`故事`,task:`任务`},tr={pass:`通过`,fail:`失败`,partial:`部分`,skipped:`未跑`},nr={pass:`i-lucide-check`,fail:`i-lucide-x`,partial:`i-lucide-minus`,skipped:`i-lucide-minus`},L=u(()=>w.value?.changes??[]),rr=u(()=>se(w.value??{})),R=u(()=>w.value?.extras??[]),z=u(()=>w.value?.verification??[]),B=u(()=>w.value?.scenarios??[]),V=u(()=>w.value?.preparation??[]),H=u(()=>w.value?.notes??[]),U=u(()=>w.value?.open??[]),W=u(()=>w.value?.access?.urls??[]),G=u(()=>w.value?.access?.accounts??[]),K=u(()=>z.value.filter(e=>e.result===`pass`).length),q=u(()=>z.value.length>0&&K.value===z.value.length),ir=u(()=>z.value.length?Math.round(K.value/z.value.length*100):0),ar=u(()=>[...new Set([...L.value.flatMap(e=>e.files??[]),...R.value.flatMap(e=>e.files??[])])]),or=e=>e.kind===`story`?e.id:e.id.replace(/-T\d+$/,``),sr=u(()=>[{id:`lc-changes`,label:`变更清单`,icon:`i-lucide-git-commit-horizontal`,count:`${L.value.length}`,tone:`violet`},{id:`lc-extras`,label:`额外做的事`,icon:`i-lucide-sparkles`,count:`${R.value.length}`,tone:`peach`},{id:`lc-checks`,label:`验证结果`,icon:`i-lucide-badge-check`,count:`${K.value}/${z.value.length}`,tone:`mint`},...W.value.length||G.value.length?[{id:`lc-access`,label:`调试入口与账号`,icon:`i-lucide-key-round`,count:`${W.value.length+G.value.length}`,tone:`sky`}]:[],...V.value.length?[{id:`lc-prep`,label:`测试前准备`,icon:`i-lucide-terminal-square`,count:`${V.value.length}`,tone:`amber`}]:[],{id:`lc-scenarios`,label:`测试场景`,icon:`i-lucide-flask-conical`,count:`${B.value.length}`,tone:`teal`},{id:`lc-notes`,label:`说明`,icon:`i-lucide-message-square-more`,count:`${H.value.length}`,tone:`slate`},...U.value.length?[{id:`lc-open`,label:`还没做的`,icon:`i-lucide-list-todo`,count:`${U.value.length}`,tone:`rose`}]:[]]);function J(e){let t=document.getElementById(e);t&&(t.scrollIntoView({behavior:`smooth`,block:`start`}),history.replaceState(null,``,`#${e}`))}let Y=new Date,cr=`${Y.getFullYear()}-${String(Y.getMonth()+1).padStart(2,`0`)}-${String(Y.getDate()).padStart(2,`0`)}`,X=u(()=>(w.value?.at??``).slice(0,10)),Z=u(()=>{let e=(w.value?.at??``).slice(10).replace(/^[T ]/,``);return/^\d{2}:\d{2}/.test(e)?e:``}),lr=u(()=>!!X.value&&X.value===cr),Q=_(``);async function $(e,t){try{await navigator.clipboard.writeText(e),Q.value=t,setTimeout(()=>{Q.value===t&&(Q.value=``)},1600)}catch{Q.value=``}}return(n,l)=>{let u=ae,d=ie;return f(),s(p,null,[r(C)?(f(),s(`div`,ge,[o(`span`,_e,[e(u,{name:`i-lucide-history`,class:`hist-badge-ic`}),l[8]||=t(`历史版本`,-1)]),o(`span`,ve,[t(`只读 · `+h(r(C).short),1),r(C).date?(f(),s(p,{key:0},[t(` · `+h(r(C).date),1)],64)):v(``,!0)]),o(`div`,{ref_key:`tabsRef`,ref:N,class:`lc-hist-tabs`},[o(`button`,{class:`hist-tab`,onClick:Jn},`最新`),(f(!0),s(p,null,c(r(Kn),e=>(f(),s(`button`,{key:e.hash,class:a([`hist-tab`,{on:r(C)?.hash===e.hash}]),title:`${e.date} ${e.subject??``}`,disabled:r(A),onClick:t=>M(e)},[t(h(e.short),1),o(`i`,null,h(e.date.slice(5,16)),1)],10,ye))),128))],512),o(`button`,{class:`rule-btn`,onClick:j},[e(u,{name:`i-lucide-list`,class:`rule-btn-ic`}),l[9]||=t(`选择历史…`,-1)])])):(f(),s(`div`,{key:0,class:a([`lc-rule`,`is-${r(I).tone}`])},[o(`div`,ce,[o(`span`,le,[e(u,{name:`i-lucide-git-branch`,class:`rule-svg`})]),l[6]||=o(`b`,{class:`rule-title`},`写入规则`,-1),l[7]||=o(`span`,{class:`rule-file mono`},`agile/last-change.json`,-1),o(`span`,ue,[o(`i`,{class:a([`rule-dot`,`tone-${r(I).tone}`])},null,2),t(` 当前 `+h(r(I).text),1),r(T)?.state===`committed`&&r(T).hash?(f(),s(p,{key:0},[l[4]||=t(` · `,-1),o(`span`,de,h(r(T).hash),1)],64)):v(``,!0)]),o(`button`,{class:`rule-btn`,onClick:j},[e(u,{name:`i-lucide-history`,class:`rule-btn-ic`}),l[5]||=t(`查看历史 `,-1),r(E).length?(f(),s(`i`,fe,h(r(E).length),1)):v(``,!0)])]),o(`ul`,pe,[(f(),s(p,null,c(Yn,t=>o(`li`,{key:t.key,class:a([`rule-case`,{on:r(Xn)===t.key}])},[o(`span`,me,h(t.when),1),e(u,{name:`i-lucide-arrow-right`,class:`case-arrow`}),o(`span`,he,h(t.then),1)],2)),64))])],2)),r(w)?(f(),s(`div`,Se,[o(`header`,Ce,[o(`div`,we,[o(`p`,Te,[l[11]||=o(`span`,{class:`k-dot`},null,-1),l[12]||=t(`最近一次交付 `,-1),l[13]||=o(`span`,{class:`k-sep`},null,-1),o(`span`,Ee,h(r(X)),1),r(Z)?(f(),s(`span`,De,h(r(Z)),1)):v(``,!0),r(lr)?(f(),s(`span`,Oe,`今天`)):v(``,!0),r(w).merged?(f(),s(`span`,{key:2,class:`k-merged`,title:r(Qn)},`合并记录 · `+h(r(Zn))+` 次交付`,9,ke)):v(``,!0)]),o(`h2`,Ae,h(r(w).title),1),r(w).summary?(f(),s(`p`,je,h(r(w).summary),1)):v(``,!0),o(`div`,Me,[o(`span`,null,[o(`b`,null,h(r(L).length),1),l[14]||=t(` 处变更`,-1)]),l[19]||=o(`i`,{class:`meta-sep`},null,-1),o(`span`,null,[o(`b`,null,h(r(ar).length),1),l[15]||=t(` 个文件`,-1)]),l[20]||=o(`i`,{class:`meta-sep`},null,-1),o(`span`,null,[o(`b`,null,h(r(B).length),1),l[16]||=t(` 条测试场景`,-1)]),r(R).length?(f(),s(p,{key:0},[l[18]||=o(`i`,{class:`meta-sep`},null,-1),o(`span`,null,[o(`b`,null,h(r(R).length),1),l[17]||=t(` 项额外工作`,-1)])],64)):v(``,!0)])]),o(`div`,Ne,[o(`div`,{class:a([`ring`,{warn:r(z).length&&!r(q)}]),style:ee({"--pct":r(ir)})},[o(`div`,Pe,[o(`b`,null,[t(h(r(K)),1),o(`small`,null,`/`+h(r(z).length||0),1)]),o(`span`,null,h(r(z).length?r(q)?`验证全通过`:`有未通过项`:`无验证记录`),1)])],6)])]),o(`nav`,Fe,[(f(!0),s(p,null,c(r(sr),t=>(f(),s(`a`,{key:t.id,class:a([`lc-nav-link`,`tone-${t.tone}`]),href:`#${t.id}`,onClick:y(e=>J(t.id),[`prevent`])},[e(u,{name:t.icon,class:`lc-nav-ic`},null,8,[`name`]),o(`span`,Le,h(t.label),1),o(`b`,Re,h(t.count),1)],10,Ie))),128))]),o(`section`,ze,[o(`div`,Be,[o(`span`,Ve,[e(u,{name:`i-lucide-git-commit-horizontal`,class:`s-svg`})]),l[21]||=o(`h2`,{class:`s-title`},`变更清单`,-1),o(`span`,He,h(r(L).length),1),l[22]||=o(`span`,{class:`s-hint`},`故事与任务各自是新增还是状态变更、动过哪些文件`,-1),r(L).length?(f(),s(`button`,{key:0,class:a([`rule-btn s-copy`,{ok:r(Q)===`commit`}]),title:`按 Conventional Commits 生成:首行是标题,正文每条变更带编号与名称`,onClick:l[0]||=e=>$(r(rr),`commit`)},[e(u,{name:r(Q)===`commit`?`i-lucide-check`:`i-lucide-clipboard-copy`,class:`rule-btn-ic`},null,8,[`name`]),t(` `+h(r(Q)===`commit`?`已复制`:`复制变更信息`),1)],2)):v(``,!0)]),r(L).length?(f(),s(`div`,We,[o(`table`,Ge,[l[24]||=o(`colgroup`,null,[o(`col`,{class:`c-ent`}),o(`col`,{class:`c-act`}),o(`col`),o(`col`,{class:`c-file`})],-1),l[25]||=o(`thead`,null,[o(`tr`,null,[o(`th`,null,`条目`),o(`th`,null,`变更`),o(`th`,null,`变更内容`),o(`th`,null,`涉及文件`)])],-1),o(`tbody`,null,[(f(!0),s(p,null,c(r(L),(n,r)=>(f(),s(`tr`,{key:`${n.kind}-${n.id}-${r}`},[o(`td`,null,[o(`div`,Ke,[o(`div`,qe,[o(`span`,{class:a([`kind`,`kind-${n.kind}`])},h(er[n.kind]??n.kind),3),e(d,{to:`/story/${or(n)}`,class:`ent-id mono`},{default:m(()=>[t(h(n.id),1)]),_:2},1032,[`to`])]),n.title?(f(),s(`p`,Je,h(n.title),1)):v(``,!0)])]),o(`td`,null,[o(`span`,{class:a([`act`,`act-${n.action}`])},h($n[n.action]??n.action),3),n.from||n.to?(f(),s(`p`,Ye,[o(`span`,Xe,h(n.from??`—`),1),l[23]||=o(`i`,null,`→`,-1),o(`span`,Ze,h(n.to??`—`),1)])):v(``,!0)]),o(`td`,Qe,h(n.note??`—`),1),o(`td`,null,[o(`div`,$e,[(f(!0),s(p,null,c(n.files,e=>(f(),s(`span`,{key:e,class:`fchip mono`,title:e},h(e),9,et))),128)),n.files?.length?v(``,!0):(f(),s(`span`,tt,`—`))])])]))),128))])])])):(f(),s(`p`,Ue,`这次没有涉及任何故事或任务。`))]),o(`div`,nt,[o(`section`,rt,[o(`div`,it,[o(`span`,at,[e(u,{name:`i-lucide-sparkles`,class:`s-svg`})]),l[26]||=o(`h2`,{class:`s-title`},`额外做的事`,-1),o(`span`,ot,h(r(R).length),1)]),o(`div`,st,[r(R).length?v(``,!0):(f(),s(`p`,ct,`没有计划外的改动。`)),(f(!0),s(p,null,c(r(R),(e,t)=>(f(),s(`article`,{key:t,class:`x-item`},[l[27]||=o(`span`,{class:`x-mark`},null,-1),o(`div`,lt,[o(`p`,ut,h(e.title),1),e.detail?(f(),s(`p`,dt,h(e.detail),1)):v(``,!0),e.files?.length?(f(),s(`div`,ft,[(f(!0),s(p,null,c(e.files,e=>(f(),s(`span`,{key:e,class:`fchip mono`,title:e},h(e),9,pt))),128))])):v(``,!0)])]))),128))])]),o(`section`,mt,[o(`div`,ht,[o(`span`,gt,[e(u,{name:`i-lucide-badge-check`,class:`s-svg`})]),l[28]||=o(`h2`,{class:`s-title`},`验证结果`,-1),o(`span`,_t,h(r(K))+`/`+h(r(z).length),1)]),o(`div`,vt,[r(z).length?v(``,!0):(f(),s(`p`,yt,`这次没有留下验证记录。`)),(f(!0),s(p,null,c(r(z),(t,n)=>(f(),s(`div`,{key:n,class:`v-item`},[o(`span`,{class:a([`v-ic`,`v-${t.result}`])},[e(u,{name:nr[t.result]??`i-lucide-circle`,class:`v-svg`},null,8,[`name`])],2),o(`div`,bt,[o(`p`,xt,h(t.what),1),t.detail?(f(),s(`p`,St,h(t.detail),1)):v(``,!0)]),o(`span`,{class:a([`v-res`,`v-${t.result}`])},h(tr[t.result]??t.result),3)]))),128))])])]),r(W).length||r(G).length?(f(),s(`section`,Ct,[o(`div`,wt,[o(`span`,Tt,[e(u,{name:`i-lucide-key-round`,class:`s-svg`})]),l[29]||=o(`h2`,{class:`s-title`},`调试入口与账号`,-1),o(`span`,Et,h(r(W).length+r(G).length),1),l[30]||=o(`span`,{class:`s-hint`},`照着这一栏就能自己跑起来点一遍`,-1)]),o(`div`,Dt,[r(W).length?(f(),s(`div`,Ot,[l[31]||=o(`p`,{class:`micro`},`访问地址`,-1),(f(!0),s(p,null,c(r(W),(n,i)=>(f(),s(`div`,{key:i,class:`u-item`},[o(`div`,kt,[o(`a`,{href:n.url,target:`_blank`,rel:`noreferrer`,class:`u-link`},[o(`span`,jt,h(n.label??`入口`),1),e(u,{name:`i-lucide-arrow-up-right`,class:`u-go`})],8,At),o(`button`,{class:a([`cpy`,{ok:r(Q)===`url-${i}`}]),onClick:e=>$(n.url,`url-${i}`)},[e(u,{name:r(Q)===`url-${i}`?`i-lucide-check`:`i-lucide-copy`,class:`cpy-ic`},null,8,[`name`]),t(` `+h(r(Q)===`url-${i}`?`已复制`:`复制`),1)],10,Mt)]),o(`p`,Nt,h(n.url),1),n.note?(f(),s(`p`,Pt,h(n.note),1)):v(``,!0)]))),128))])):v(``,!0),r(G).length?(f(),s(`div`,Ft,[l[33]||=o(`p`,{class:`micro`},`账号密码`,-1),(f(!0),s(p,null,c(r(G),(n,i)=>(f(),s(`div`,{key:i,class:`a-item`},[o(`div`,It,[n.role?(f(),s(`span`,Lt,h(n.role),1)):v(``,!0),o(`span`,Rt,h(n.username),1),o(`button`,{class:a([`cpy`,{ok:r(Q)===`acc-${i}`}]),onClick:e=>$(n.password?`账号:${n.username}\n密码:${n.password}`:n.username,`acc-${i}`)},[e(u,{name:r(Q)===`acc-${i}`?`i-lucide-check`:`i-lucide-copy`,class:`cpy-ic`},null,8,[`name`]),t(` `+h(r(Q)===`acc-${i}`?`已复制`:`复制`),1)],10,zt)]),o(`div`,Bt,[l[32]||=o(`span`,{class:`a-key`},`密码`,-1),n.password?(f(),s(`span`,Vt,h(n.password),1)):(f(),s(`span`,Ht,`无密码 / 走单点登录`))]),n.note?(f(),s(`p`,Ut,h(n.note),1)):v(``,!0)]))),128))])):v(``,!0)])])):v(``,!0),r(V).length?(f(),s(`section`,Wt,[o(`div`,Gt,[o(`span`,Kt,[e(u,{name:`i-lucide-terminal-square`,class:`s-svg`})]),l[34]||=o(`h2`,{class:`s-title`},`测试前准备`,-1),o(`span`,qt,h(r(V).length),1),l[35]||=o(`span`,{class:`s-hint`},`按顺序做完这些再开始点,命令可直接复制`,-1)]),o(`ol`,Jt,[(f(!0),s(p,null,c(r(V),(n,i)=>(f(),s(`li`,{key:i},[o(`div`,Yt,[o(`p`,Xt,h(n.step),1),n.command?(f(),s(`div`,Zt,[o(`code`,Qt,h(n.command),1),o(`button`,{class:a([`cpy`,{ok:r(Q)===`cmd-${i}`}]),onClick:e=>$(n.command??``,`cmd-${i}`)},[e(u,{name:r(Q)===`cmd-${i}`?`i-lucide-check`:`i-lucide-copy`,class:`cpy-ic`},null,8,[`name`]),t(` `+h(r(Q)===`cmd-${i}`?`已复制`:`复制`),1)],10,$t)])):v(``,!0),n.note?(f(),s(`p`,en,h(n.note),1)):v(``,!0)])]))),128))])])):v(``,!0),o(`section`,tn,[o(`div`,nn,[o(`span`,rn,[e(u,{name:`i-lucide-flask-conical`,class:`s-svg`})]),l[36]||=o(`h2`,{class:`s-title`},`测试场景`,-1),o(`span`,an,h(r(B).length),1),l[37]||=o(`span`,{class:`s-hint`},`一条一段:照着步骤走,末尾那句就是验收标准`,-1)]),r(B).length?(f(),s(`div`,sn,[(f(!0),s(p,null,c(r(B),(n,r)=>(f(),s(`article`,{key:n.id??r,class:`sc lc-sc`},[o(`header`,cn,[o(`span`,ln,h(n.id??`TC-${r+1}`),1),o(`h3`,un,h(n.title),1)]),n.steps?.length?(f(),s(`div`,dn,[l[38]||=o(`p`,{class:`micro`},`测试步骤`,-1),o(`ol`,fn,[(f(!0),s(p,null,c(n.steps,(e,t)=>(f(),s(`li`,{key:t},h(e),1))),128))])])):v(``,!0),o(`div`,pn,[o(`p`,mn,[e(u,{name:`i-lucide-badge-check`,class:`sc-acc-ic`}),l[39]||=t(`验收标准`,-1)]),o(`p`,hn,h(n.expect),1),n.acceptance||n.storyIds?.length?(f(),s(`div`,gn,[n.acceptance?(f(),s(`span`,_n,`对应验收:`+h(n.acceptance),1)):v(``,!0),n.storyIds?.length?(f(),s(`span`,vn,[(f(!0),s(p,null,c(n.storyIds,e=>(f(),g(d,{key:e,to:`/story/${e}`,class:`ent-id mono`},{default:m(()=>[t(h(e),1)]),_:2},1032,[`to`]))),128))])):v(``,!0)])):v(``,!0)])]))),128))])):(f(),s(`p`,on,`这次没有单独列测试场景。`))]),o(`div`,yn,[o(`section`,bn,[o(`div`,xn,[o(`span`,Sn,[e(u,{name:`i-lucide-message-square-more`,class:`s-svg`})]),l[40]||=o(`h2`,{class:`s-title`},`说明`,-1),o(`span`,Cn,h(r(H).length),1)]),o(`div`,wn,[r(H).length?(f(),s(`ul`,En,[(f(!0),s(p,null,c(r(H),(e,t)=>(f(),s(`li`,{key:t},h(e),1))),128))])):(f(),s(`p`,Tn,`没有额外说明。`))])]),r(U).length?(f(),s(`section`,Dn,[o(`div`,On,[o(`span`,kn,[e(u,{name:`i-lucide-list-todo`,class:`s-svg`})]),l[41]||=o(`h2`,{class:`s-title`},`还没做的`,-1),o(`span`,An,h(r(U).length),1)]),o(`div`,jn,[o(`ul`,Mn,[(f(!0),s(p,null,c(r(U),(e,t)=>(f(),s(`li`,{key:t},h(e),1))),128))])])])):v(``,!0)])])):(f(),s(`div`,be,[o(`span`,xe,[e(u,{name:`i-lucide-clipboard-list`,class:`em-svg`})]),l[10]||=i(`<h2 class="em-title" data-v-0bbfea97>还没有交付记录</h2><p class="em-sub" data-v-0bbfea97> 每完成一项功能,AI 都要把「改了哪些故事与任务、额外做了什么、验了什么、怎么测」 写进下面这个文件,这一页就会自动排出来。 </p><p class="em-path mono" data-v-0bbfea97>agile/last-change.json</p><p class="em-note" data-v-0bbfea97> 每次只保留最近一次(覆盖写,不追加)· 格式见 <span class="mono" data-v-0bbfea97>.agents/skills/scrum-planning/references/schema.md</span> 第 4 节 </p>`,4)])),(f(),g(re,{to:`body`},[r(D)?(f(),s(`div`,{key:0,class:`lc-hist-mask`,onClick:l[3]||=y(e=>D.value=!1,[`self`])},[o(`div`,Nn,[o(`header`,Pn,[o(`div`,Fn,[l[45]||=o(`h3`,{id:`lc-hist-title`,class:`lc-hist-title`},`历史版本`,-1),o(`p`,In,[l[42]||=t(` 从 git 里读 `,-1),l[43]||=o(`span`,{class:`mono`},`agile/last-change.json`,-1),l[44]||=t(` 的提交记录 `,-1),r(E).length?(f(),s(p,{key:0},[t(`· 共 `+h(r(E).length)+` 版`,1)],64)):v(``,!0)])]),o(`button`,{class:`lc-hist-x`,"aria-label":`关闭`,onClick:l[1]||=e=>D.value=!1},[e(u,{name:`i-lucide-x`,class:`lc-hist-x-ic`})])]),r(k)?(f(),s(`p`,Ln,h(r(k)),1)):r(O)?(f(),s(`div`,Rn,`正在读 git 历史…`)):(f(),s(`div`,zn,[(f(!0),s(p,null,c(r(E),(e,t)=>(f(),s(`button`,{key:e.hash,class:a([`hist-item`,{on:r(C)?.hash===e.hash}]),disabled:r(A),onClick:t=>M(e)},[o(`span`,{class:a([`hist-item-dot`,{live:t===0}])},null,2),o(`span`,Vn,[o(`b`,null,h(e.subject||`(没有提交说明)`),1),o(`i`,Hn,h(e.date),1)]),o(`span`,Un,h(e.short),1)],10,Bn))),128)),r(E).length?v(``,!0):(f(),s(`p`,Wn,` 这个文件还没有提交记录 —— 先 commit 一次,历史里才会出现版本。 `))])),o(`footer`,Gn,[l[46]||=o(`span`,{class:`dim`},`选一个版本即可在页面上只读查看,不会改动文件。`,-1),o(`button`,{class:`hist-close`,onClick:l[2]||=e=>D.value=!1},`关闭`)])])])):v(``,!0)]))],64)}}}),[[`__scopeId`,`data-v-0bbfea97`]]);export{E as default};
@@ -1 +0,0 @@
1
- {"id":"d7f0931f-32b3-4c23-b05f-7cbf5851b226","timestamp":1793369473533,"prerendered":[]}
@@ -1 +0,0 @@
1
- .lc[data-v-0bbfea97]{gap:14px;display:grid}.lc [id^=lc-][data-v-0bbfea97]{scroll-margin-top:14px}.lc-nav[data-v-0bbfea97]{flex-wrap:wrap;gap:6px;padding:0 2px;display:flex}.lc-nav-link[data-v-0bbfea97]{border:1px solid var(--nv-line,var(--line));background:var(--nv-bg,#fff);height:28px;color:var(--nv-ink,var(--ink-3));border-radius:999px;align-items:center;gap:6px;padding:0 9px;font-size:11.4px;font-weight:580;transition:box-shadow .16s,transform .16s;display:inline-flex}.lc-nav-link.tone-violet[data-v-0bbfea97]{--nv-bg:var(--violet-soft);--nv-line:var(--violet-line);--nv-ink:var(--violet-ink)}.lc-nav-link.tone-peach[data-v-0bbfea97]{--nv-bg:var(--peach);--nv-line:var(--peach-line);--nv-ink:#a5382f}.lc-nav-link.tone-mint[data-v-0bbfea97]{--nv-bg:#f0fbdf;--nv-line:#dcf0bb;--nv-ink:#4f6f24}.lc-nav-link.tone-sky[data-v-0bbfea97]{--nv-bg:#eef5fd;--nv-line:var(--sky-line);--nv-ink:#2c5f96}.lc-nav-link.tone-amber[data-v-0bbfea97]{--nv-bg:#fdf4e2;--nv-line:var(--amber-line);--nv-ink:#8a6116}.lc-nav-link.tone-teal[data-v-0bbfea97]{--nv-bg:#e4f6f3;--nv-line:#bce5de;--nv-ink:#1f6f63}.lc-nav-link.tone-slate[data-v-0bbfea97]{--nv-bg:var(--sunken);--nv-line:var(--line-2);--nv-ink:var(--ink-2)}.lc-nav-link.tone-rose[data-v-0bbfea97]{--nv-bg:#fdeceb;--nv-line:var(--rose-line);--nv-ink:#b23a4b}.lc-nav-link[data-v-0bbfea97]:hover{box-shadow:0 7px 16px -12px var(--nv-ink,#8a8a8a);transform:translateY(-1px)}.lc-nav-ic[data-v-0bbfea97]{opacity:.72;flex:none;width:13px;height:13px}.act[data-v-0bbfea97],.ent-id[data-v-0bbfea97],.fchip[data-v-0bbfea97],.fl[data-v-0bbfea97],.lc-nav-lb[data-v-0bbfea97],.ring-in span[data-v-0bbfea97],.rule-state[data-v-0bbfea97],.s-title[data-v-0bbfea97],.u-url[data-v-0bbfea97]{white-space:nowrap}.lc-nav-ct[data-v-0bbfea97]{min-width:16px;color:inherit;text-align:center;font-variant-numeric:tabular-nums;background:#ffffffd1;border-radius:999px;flex:none;padding:0 5px;font-size:9.6px;font-weight:700;line-height:15px}.lc-nav-link:hover .lc-nav-ct[data-v-0bbfea97]{background:#fff}.lc-rule[data-v-0bbfea97]{border:1px solid var(--line);box-shadow:var(--shadow-1);background:linear-gradient(#fbfaff,#fff);border-radius:14px;gap:7px;margin-bottom:14px;padding:10px 13px 11px;display:grid}.rule-top[data-v-0bbfea97]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rule-ic[data-v-0bbfea97]{border:1px solid var(--violet-line);background:var(--violet-soft);width:26px;height:26px;color:var(--violet-ink);border-radius:9px;flex:none;place-items:center;display:grid}.rule-svg[data-v-0bbfea97]{width:14px;height:14px}.rule-title[data-v-0bbfea97]{letter-spacing:.01em;color:var(--ink);font-size:12px;font-weight:680}.rule-file[data-v-0bbfea97]{color:var(--ink-4);font-size:10px}.rule-state[data-v-0bbfea97]{border:1px solid var(--line-2);height:22px;color:var(--ink-2);background:#fff;border-radius:999px;align-items:center;gap:5px;margin-left:auto;padding:0 9px;font-size:10.4px;font-weight:640;display:inline-flex}.rule-state .mono[data-v-0bbfea97]{color:var(--ink-3);font-size:9.8px;font-weight:560}.rule-dot[data-v-0bbfea97]{background:var(--ink-4);border-radius:999px;flex:none;width:6px;height:6px}.rule-dot.tone-ok[data-v-0bbfea97]{background:#74a53c;box-shadow:0 0 0 3px #74a53c24}.rule-dot.tone-warn[data-v-0bbfea97]{background:#d79a2b;box-shadow:0 0 0 3px #d79a2b24}.rule-dot.tone-neutral[data-v-0bbfea97]{background:#b3b1aa;box-shadow:0 0 0 3px #b3b1aa24}.rule-cases[data-v-0bbfea97]{gap:3px;margin:0;padding:0;list-style:none;display:grid}.rule-case[data-v-0bbfea97]{color:var(--ink-3);border:1px solid #0000;border-radius:9px;align-items:baseline;gap:7px;padding:4px 9px;font-size:11.2px;line-height:1.55;display:flex}.rule-case.on[data-v-0bbfea97]{color:var(--ink-2);background:var(--sunken)}.case-when[data-v-0bbfea97]{flex:none;min-width:40px;font-weight:680}.rule-case.on .case-when[data-v-0bbfea97]{color:var(--ink)}.case-arrow[data-v-0bbfea97]{width:11px;height:11px;color:var(--ink-4);flex:none;align-self:center}.rule-case.on .case-arrow[data-v-0bbfea97]{color:var(--ink-3)}.case-then[data-v-0bbfea97],.hero-body[data-v-0bbfea97],.two[data-v-0bbfea97]>*{min-width:0}.is-ok .rule-ic[data-v-0bbfea97]{color:#4f6f24;background:#f0fbdf;border-color:#dcf0bb}.is-ok .rule-case.on[data-v-0bbfea97]{background:#f4fbea;border-color:#dcf0bb}.is-warn .rule-ic[data-v-0bbfea97]{color:#8a6116;background:#fdf4e2;border-color:#f3e2b8}.is-warn .rule-case.on[data-v-0bbfea97]{background:#fdf6e8;border-color:#f3e2b8}.sec[data-v-0bbfea97]{border-radius:20px;overflow:hidden}.two[data-v-0bbfea97]{flex-wrap:wrap;align-items:stretch;gap:14px;display:flex}.two[data-v-0bbfea97]>*{flex:336px}.s-hd[data-v-0bbfea97]{align-items:center;gap:9px;padding:13px 18px 12px;display:flex}.s-hd.solo[data-v-0bbfea97]{padding:2px 2px 0}.s-ic[data-v-0bbfea97]{border:1px solid var(--violet-line);background:var(--violet-soft);width:26px;height:26px;color:var(--violet-ink);border-radius:9px;flex:none;place-items:center;display:grid}.s-ic.tone-mint[data-v-0bbfea97]{color:#4f6f24;background:#f0fbdf;border-color:#dcf0bb}.s-ic.tone-amber[data-v-0bbfea97]{color:#8a6116;background:#fdf4e2;border-color:#f3e2b8}.s-ic.tone-sky[data-v-0bbfea97]{color:#2c5f96;background:#eef5fd;border-color:#d7e6f9}.s-svg[data-v-0bbfea97]{width:14px;height:14px}.s-title[data-v-0bbfea97]{letter-spacing:-.012em;font-size:14px;font-weight:650}.s-count[data-v-0bbfea97]{border:1px solid var(--line-2);background:var(--sunken);color:var(--ink-3);border-radius:999px;flex:none;padding:0 6px;font-size:10px;font-weight:660;line-height:16px}.s-hint[data-v-0bbfea97]{color:var(--ink-4);text-align:right;margin-left:auto;font-size:11px}.s-copy[data-v-0bbfea97]{margin-left:2px}.s-copy.ok[data-v-0bbfea97]{color:#47762b;background:#e9f8dd;border-color:#d5efc2}.sec-bd[data-v-0bbfea97],.sec-empty[data-v-0bbfea97]{padding:0 18px 16px}.sec-empty[data-v-0bbfea97]{font-size:12px}.micro[data-v-0bbfea97]{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);font-size:9.6px;font-weight:660}.lc-hero[data-v-0bbfea97]{isolation:isolate;background:radial-gradient(120% 150% at 0 0,#fdfbff,#fff0 52%),radial-gradient(100% 140% at 100% 110%,#ece1ff,#ece1ff00 60%),linear-gradient(152deg,#f8f4ff,#f1eaff 64%,#faf7ff);border:1px solid #e6dcfb;border-radius:24px;align-items:center;gap:26px;padding:20px 22px;display:flex;position:relative;overflow:hidden}.lc-hero[data-v-0bbfea97]:after{content:"";filter:blur(6px);z-index:-1;background:radial-gradient(circle,#8b68f229,#8b68f200 70%);border-radius:50%;width:240px;height:240px;position:absolute;bottom:-90px;right:-70px}.hero-body[data-v-0bbfea97]{flex:1}.hero-kicker[data-v-0bbfea97]{letter-spacing:.1em;text-transform:uppercase;color:#7a63b8;align-items:center;gap:8px;font-size:10px;font-weight:680;display:flex}.k-dot[data-v-0bbfea97]{background:var(--violet);border-radius:999px;width:6px;height:6px;box-shadow:0 0 0 3px #6d4ff024}.k-sep[data-v-0bbfea97]{background:#dbd0f6;width:1px;height:10px}.k-date[data-v-0bbfea97]{text-transform:none;color:#6f5aa8;font-size:10.6px;font-weight:600}.k-date[data-v-0bbfea97],.k-time[data-v-0bbfea97]{letter-spacing:.02em}.k-time[data-v-0bbfea97]{color:var(--ink-3);font-variant-numeric:tabular-nums;align-items:center;gap:5px;font-size:10.4px;font-weight:620;display:inline-flex}.k-time[data-v-0bbfea97]:before{content:"";background:#c9bce6;border-radius:999px;width:3px;height:3px}.k-today[data-v-0bbfea97]{border:1px solid var(--violet-line);letter-spacing:.06em;color:var(--violet-ink);background:#fff}.k-merged[data-v-0bbfea97],.k-today[data-v-0bbfea97]{border-radius:999px;padding:0 6px;font-size:9.4px;line-height:15px}.k-merged[data-v-0bbfea97]{color:#8a6116;letter-spacing:.03em;text-transform:none;cursor:help;background:#fdf4e2;border:1px solid #f3e2b8}.hero-title[data-v-0bbfea97]{letter-spacing:-.026em;color:#241b3f;margin:9px 0 0;font-size:21px;font-weight:665;line-height:1.34}.hero-sum[data-v-0bbfea97]{color:#574c72;max-width:92ch;margin-top:7px;font-size:12.8px;line-height:1.68}.hero-meta[data-v-0bbfea97]{color:#6b5f85;flex-wrap:wrap;align-items:center;gap:11px;margin-top:13px;font-size:11.4px;display:flex}.hero-meta b[data-v-0bbfea97]{color:#2c2246;margin-right:2px;font-weight:690}.meta-sep[data-v-0bbfea97]{background:#c3b4e2;border-radius:999px;width:3px;height:3px}.hero-aside[data-v-0bbfea97]{flex:none;justify-items:center;display:grid}.ring[data-v-0bbfea97]{--pct:0;background:conic-gradient(from -90deg,#7f5cf2 calc(var(--pct) * 1%),#e7dffa 0);border-radius:50%;place-items:center;width:98px;height:98px;display:grid;box-shadow:0 10px 26px -18px #5836ba8c}.ring.warn[data-v-0bbfea97]{background:conic-gradient(from -90deg,#dfa437 calc(var(--pct) * 1%),#f4e8d2 0)}.ring-in[data-v-0bbfea97]{text-align:center;background:#fff;border-radius:50%;place-content:center;gap:1px;width:78px;height:78px;display:grid}.ring-in b[data-v-0bbfea97]{letter-spacing:-.03em;color:#2a1f47;font-size:17px;font-weight:680;line-height:1.15}.ring-in b small[data-v-0bbfea97]{letter-spacing:0;color:var(--ink-4);font-size:10.5px;font-weight:600}.ring-in span[data-v-0bbfea97]{letter-spacing:.04em;color:var(--ink-3);font-size:9.2px}.tbl-wrap[data-v-0bbfea97]{padding:0 8px 8px;overflow-x:auto}.lc-tbl[data-v-0bbfea97]{min-width:640px}.lc-tbl .c-ent[data-v-0bbfea97]{width:246px}.lc-tbl .c-act[data-v-0bbfea97]{width:92px}.lc-tbl .c-file[data-v-0bbfea97]{width:218px}.lc-tbl thead th[data-v-0bbfea97]{border-bottom:1px solid var(--line);letter-spacing:.1em;padding:6px 12px 8px;font-size:9.4px;font-weight:660}.lc-tbl tbody tr[data-v-0bbfea97]{cursor:default}.lc-tbl tbody td[data-v-0bbfea97]{border-top:0;border-bottom:1px solid var(--line);vertical-align:top;padding:11px 12px 12px}.lc-tbl tbody tr:last-child td[data-v-0bbfea97]{border-bottom:0}.lc-tbl tbody tr:hover td[data-v-0bbfea97]{background:#fbfaff}.ent-top[data-v-0bbfea97]{align-items:center;gap:6px;display:flex}.kind[data-v-0bbfea97]{letter-spacing:.03em;border-radius:5px;flex:none;padding:0 5px;font-size:9.4px;font-weight:680;line-height:15px}.kind-story[data-v-0bbfea97]{color:#5433cf;background:#efe9fe}.kind-task[data-v-0bbfea97]{color:#6b6f77;background:#f1f1ee}.ent-id[data-v-0bbfea97]{color:#6d5aa8;font-size:10.6px}.ent-id[data-v-0bbfea97]:hover{color:var(--violet-ink);text-underline-offset:2px;text-decoration:underline}.ent-title[data-v-0bbfea97]{color:var(--ink);margin-top:4px;font-size:12.5px;font-weight:590;line-height:1.5}.act[data-v-0bbfea97]{border-radius:999px;padding:0 7px;font-size:10px;font-weight:660;line-height:17px;display:inline-block}.act-added[data-v-0bbfea97]{color:#46742a;background:#e9f8dd}.act-updated[data-v-0bbfea97]{color:#2a5f9e;background:#e8f1fd}.act-removed[data-v-0bbfea97]{color:#a83a32;background:#fdeae9}.flow[data-v-0bbfea97]{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:3px;margin-top:5px;font-size:10px;line-height:1.4;display:flex}.flow i[data-v-0bbfea97]{color:var(--ink-4);font-style:normal}.cell-note[data-v-0bbfea97]{color:var(--ink-2);font-size:12.1px;line-height:1.62}.chips[data-v-0bbfea97]{flex-wrap:wrap;gap:4px;display:flex}.fchip[data-v-0bbfea97]{border:1px solid var(--line-2);background:var(--sunken);max-width:100%;color:var(--ink-2);text-overflow:ellipsis;border-radius:5px;padding:0 5px;font-size:9.9px;line-height:16px;overflow:hidden}.lc-extras[data-v-0bbfea97]{display:grid}.x-item[data-v-0bbfea97]{border-top:1px dashed var(--line-2);gap:9px;padding:11px 0;display:flex}.x-item[data-v-0bbfea97]:first-child{border-top:0;padding-top:0}.x-mark[data-v-0bbfea97]{background:#b9a5f5;border-radius:999px;flex:none;width:5px;height:5px;margin-top:7px;box-shadow:0 0 0 3px #b9a5f529}.step-bd[data-v-0bbfea97],.u-link[data-v-0bbfea97],.v-body[data-v-0bbfea97],.x-body[data-v-0bbfea97]{min-width:0}.x-title[data-v-0bbfea97]{font-size:12.4px;font-weight:600;line-height:1.55}.x-detail[data-v-0bbfea97]{color:var(--ink-2);margin-top:3px;font-size:11.8px;line-height:1.62}.x-files[data-v-0bbfea97]{margin-top:6px}.lc-checks[data-v-0bbfea97]{display:grid}.v-item[data-v-0bbfea97]{border-top:1px dashed var(--line-2);align-items:flex-start;gap:9px;padding:10px 0;display:flex}.v-item[data-v-0bbfea97]:first-child{border-top:0;padding-top:0}.v-ic[data-v-0bbfea97]{border-radius:7px;flex:none;place-items:center;width:20px;height:20px;margin-top:1px;display:grid}.u-go[data-v-0bbfea97],.v-svg[data-v-0bbfea97]{width:12px;height:12px}.v-ic.v-pass[data-v-0bbfea97]{color:#4b7a2c;background:#e9f8dd}.v-ic.v-fail[data-v-0bbfea97]{color:#ab3a32;background:#fdeae9}.v-ic.v-partial[data-v-0bbfea97]{color:#8a6116;background:#fdf3dd}.v-ic.v-skipped[data-v-0bbfea97]{color:#82868e;background:#f1f1ee}.v-body[data-v-0bbfea97]{flex:1}.v-what[data-v-0bbfea97]{word-break:break-word;font-size:12.2px;font-weight:590;line-height:1.5}.v-detail[data-v-0bbfea97]{color:var(--ink-3);margin-top:2px;font-size:11.4px;line-height:1.55}.v-res[data-v-0bbfea97]{letter-spacing:.02em;flex:none;margin-top:2px;font-size:10.2px;font-weight:660}.v-res.v-pass[data-v-0bbfea97]{color:#4b7a2c}.v-res.v-fail[data-v-0bbfea97]{color:#ab3a32}.v-res.v-partial[data-v-0bbfea97]{color:#8a6116}.v-res.v-skipped[data-v-0bbfea97]{color:#82868e}.acc-grid[data-v-0bbfea97]{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;gap:16px 22px;display:grid}.acc-col[data-v-0bbfea97]{align-content:start;gap:9px;display:grid}.a-item[data-v-0bbfea97],.u-item[data-v-0bbfea97]{border-radius:var(--r-md);border:1px solid var(--line);background:var(--sunken-2);padding:10px 12px;transition:border-color .14s,background .14s}.a-item[data-v-0bbfea97]:hover,.u-item[data-v-0bbfea97]:hover{border-color:var(--line-3);background:#fff}.a-head[data-v-0bbfea97],.u-head[data-v-0bbfea97]{align-items:center;gap:6px;display:flex}.u-link[data-v-0bbfea97]{align-items:center;gap:4px;display:inline-flex}.u-label[data-v-0bbfea97]{font-size:12.2px;font-weight:640}.u-go[data-v-0bbfea97]{color:var(--violet);flex:none;transition:transform .14s}.u-link:hover .u-go[data-v-0bbfea97]{transform:translate(1px,-1px)}.u-link:hover .u-label[data-v-0bbfea97]{color:var(--violet-ink)}.u-url[data-v-0bbfea97]{color:var(--sky);text-overflow:ellipsis;margin-top:3px;font-size:11.3px;overflow:hidden}.u-note[data-v-0bbfea97]{color:var(--ink-3);margin-top:3px;font-size:10.9px;line-height:1.5}.a-role[data-v-0bbfea97]{border:1px solid var(--violet-line);background:var(--violet-soft);color:var(--violet-ink);letter-spacing:.03em;border-radius:999px;padding:0 6px;font-size:9.6px;font-weight:680;line-height:16px}.a-user[data-v-0bbfea97]{color:var(--ink);font-size:11.8px}.a-line[data-v-0bbfea97]{align-items:center;gap:8px;margin-top:6px;display:flex}.a-key[data-v-0bbfea97]{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);font-size:9.4px;font-weight:660}.a-pass[data-v-0bbfea97]{border:1px solid var(--line-2);color:var(--ink);background:#fff;border-radius:6px;padding:1px 7px;font-size:11.4px}.a-none[data-v-0bbfea97]{font-size:11.2px}.a-note[data-v-0bbfea97]{margin-top:5px;font-size:10.9px}.a-note[data-v-0bbfea97],.cpy[data-v-0bbfea97]{color:var(--ink-3)}.cpy[data-v-0bbfea97]{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;flex:none;align-items:center;gap:4px;height:23px;margin-left:auto;padding:0 8px;font-size:10.6px;font-weight:600;transition:background .14s,border-color .14s,color .14s;display:inline-flex}.cpy[data-v-0bbfea97]:hover{border-color:var(--line-2);color:var(--ink);background:#fff}.cpy.ok[data-v-0bbfea97]{color:#47762b;background:#e9f8dd;border-color:#d5efc2}.cpy-ic[data-v-0bbfea97]{width:11px;height:11px}.steps[data-v-0bbfea97]{counter-reset:st;gap:13px;margin:0;padding:2px 18px 16px;list-style:none;display:grid}.steps>li[data-v-0bbfea97]{counter-increment:st;padding-left:33px;position:relative}.steps>li[data-v-0bbfea97]:before{content:counter(st);border:1px solid var(--violet-line);width:22px;height:22px;color:var(--violet-ink);background:#fff;border-radius:999px;place-items:center;font-size:10.4px;font-weight:700;display:grid;position:absolute;top:0;left:0}.steps>li[data-v-0bbfea97]:not(:last-child):after{content:"";background:linear-gradient(#ded2fb,#efeaf9);width:1px;position:absolute;top:26px;bottom:-13px;left:10.5px}.step-text[data-v-0bbfea97]{padding-top:1px;font-size:12.5px;font-weight:590;line-height:1.5}.cmd-row[data-v-0bbfea97]{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.cmd[data-v-0bbfea97]{color:#f4f3ef;white-space:pre-wrap;word-break:break-all;background:#1b1c20;border-radius:7px;padding:4px 9px;font-size:11.1px;line-height:1.5}.cmd-row .cpy[data-v-0bbfea97]{margin-left:0}.step-note[data-v-0bbfea97]{color:var(--ink-3);margin-top:4px;font-size:11.2px;line-height:1.55}.lc-sc-sec[data-v-0bbfea97]{gap:11px;display:grid}.lc-sc-grid[data-v-0bbfea97]{flex-wrap:wrap;align-items:stretch;gap:12px;display:flex}.lc-sc-grid[data-v-0bbfea97]>*{flex:330px;min-width:0}.sc[data-v-0bbfea97]{border-radius:var(--r-lg);border:1px solid var(--line);box-shadow:var(--shadow-1);background:#fff;flex-direction:column;transition:transform .16s,box-shadow .16s,border-color .16s;display:flex;overflow:hidden}.sc[data-v-0bbfea97]:hover{border-color:#e3d9f8;transform:translateY(-1px);box-shadow:0 16px 34px -26px #231a3d73}.sc-hd[data-v-0bbfea97]{align-items:flex-start;gap:8px;padding:12px 14px 9px;display:flex}.sc-id[data-v-0bbfea97]{border:1px solid var(--line-2);background:var(--sunken);color:var(--ink-3);border-radius:5px;flex:none;margin-top:1px;padding:0 5px;font-size:9.6px;font-weight:660;line-height:16px}.sc-title[data-v-0bbfea97]{letter-spacing:-.008em;font-size:12.9px;font-weight:630;line-height:1.45}.sc-body[data-v-0bbfea97]{padding:0 14px 10px}.lc-sc-steps[data-v-0bbfea97]{counter-reset:ss;gap:5px;margin:6px 0 0;padding:0;list-style:none;display:grid}.lc-sc-steps li[data-v-0bbfea97]{counter-increment:ss;color:var(--ink-2);padding-left:19px;font-size:12px;line-height:1.55;position:relative}.lc-sc-steps li[data-v-0bbfea97]:before{content:counter(ss) ".";color:#a58cf8;font-variant-numeric:tabular-nums;font-size:10.6px;font-weight:680;position:absolute;top:0;left:0}.sc-acc[data-v-0bbfea97]{border-top:1px dashed var(--line-2);background:linear-gradient(#fbfdf6,#fff);margin-top:auto;padding:10px 14px 12px}.sc-acc-h[data-v-0bbfea97]{letter-spacing:.1em;text-transform:uppercase;color:#6b7a45;align-items:center;gap:4px;font-size:9.4px;font-weight:700;display:flex}.sc-acc-ic[data-v-0bbfea97]{flex:none;width:11px;height:11px}.sc-acc-t[data-v-0bbfea97]{color:#33401c;margin-top:4px;font-size:12px;line-height:1.62}.sc-foot[data-v-0bbfea97]{color:var(--ink-4);flex-wrap:wrap;align-items:center;gap:10px;margin-top:7px;font-size:10.6px;display:flex}.sc-ids[data-v-0bbfea97]{gap:6px;display:flex}.lc-notes[data-v-0bbfea97]{gap:8px;margin:0;padding:0;list-style:none;display:grid}.lc-notes li[data-v-0bbfea97]{color:var(--ink-2);padding-left:13px;font-size:12.1px;line-height:1.66;position:relative}.lc-notes li[data-v-0bbfea97]:before{content:"";background:#c3b2f7;border-radius:999px;width:4.5px;height:4.5px;position:absolute;top:7.5px;left:1px}.lc-notes.warn li[data-v-0bbfea97]:before{background:#e8bb5e}.sec-warn .s-ic[data-v-0bbfea97]{color:#8a6116;background:#fdf4e2;border-color:#f3e2b8}.lc-empty[data-v-0bbfea97]{text-align:center;border-radius:24px;justify-items:center;gap:9px;padding:52px 24px 46px;display:grid}.em-ic[data-v-0bbfea97]{background:var(--grad-lilac);width:48px;height:48px;color:var(--violet-ink);border:1px solid #dbcdfb;border-radius:16px;place-items:center;display:grid}.em-svg[data-v-0bbfea97]{width:21px;height:21px}.em-title[data-v-0bbfea97]{letter-spacing:-.02em;margin-top:2px;font-size:16px;font-weight:660}.em-sub[data-v-0bbfea97]{max-width:54ch;font-size:12.6px;line-height:1.7}.em-path[data-v-0bbfea97],.em-sub[data-v-0bbfea97]{color:var(--ink-2)}.em-path[data-v-0bbfea97]{border:1px dashed var(--line-3);background:var(--sunken);border-radius:999px;margin-top:3px;padding:4px 12px;font-size:11.4px}.em-note[data-v-0bbfea97]{color:var(--ink-4);font-size:11px}.rule-btn[data-v-0bbfea97]{border:1px solid var(--line-2);height:24px;color:var(--ink-2);cursor:pointer;background:#fff;border-radius:999px;flex:none;align-items:center;gap:4px;padding:0 9px;font-size:10.8px;font-weight:620;transition:border-color .14s,color .14s,background .14s;display:inline-flex}.rule-btn[data-v-0bbfea97]:hover{border-color:var(--violet-line);background:var(--violet-soft);color:var(--violet-ink)}.rule-btn i[data-v-0bbfea97]{background:var(--sunken);color:var(--ink-3);border-radius:999px;padding:0 4px;font-size:9.4px;font-style:normal;line-height:15px}.hist-badge-ic[data-v-0bbfea97],.rule-btn-ic[data-v-0bbfea97]{width:12px;height:12px}.lc-hist-bar[data-v-0bbfea97]{box-shadow:var(--shadow-1);background:linear-gradient(#faf7ff,#fff);border-radius:14px;flex-wrap:wrap;gap:10px;margin-bottom:14px;padding:9px 12px;display:flex}.hist-badge[data-v-0bbfea97],.lc-hist-bar[data-v-0bbfea97]{border:1px solid var(--violet-line);align-items:center}.hist-badge[data-v-0bbfea97]{background:var(--violet-soft);color:var(--violet-ink);border-radius:999px;flex:none;gap:4px;padding:1px 8px;font-size:10.4px;font-weight:680;line-height:18px;display:inline-flex}.hist-readonly[data-v-0bbfea97]{color:var(--ink-4);flex:none;font-size:10.2px}.lc-hist-tabs[data-v-0bbfea97]{flex:1;align-items:center;gap:4px;min-width:0;padding:1px 0;display:flex;overflow-x:auto}.lc-hist-tabs[data-v-0bbfea97]::-webkit-scrollbar{height:3px}.lc-hist-tabs[data-v-0bbfea97]::-webkit-scrollbar-thumb{background:#dcd8ef;border-radius:999px}.hist-tab[data-v-0bbfea97]{border:1px solid var(--line-2);height:24px;color:var(--ink-2);cursor:pointer;white-space:nowrap;background:#fff;border-radius:999px;flex:none;align-items:center;gap:4px;padding:0 9px;font-size:10.6px;font-weight:620;transition:background .14s,border-color .14s,color .14s;display:inline-flex}.hist-tab[data-v-0bbfea97]:hover{border-color:var(--violet-line);color:var(--violet-ink)}.hist-tab.on[data-v-0bbfea97]{border-color:var(--violet);background:var(--violet-soft);color:var(--violet-ink);font-weight:680}.hist-tab i[data-v-0bbfea97]{color:var(--ink-4);font-size:9.2px;font-style:normal;font-weight:560}.hist-tab.on i[data-v-0bbfea97]{color:#7a63b8}.lc-hist-mask[data-v-0bbfea97]{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#14121e6b;place-items:center;padding:24px;animation:.14s lc-fade-0bbfea97;display:grid;position:fixed;inset:0}.lc-hist[data-v-0bbfea97]{border:1px solid var(--line);background:#fff;border-radius:20px;flex-direction:column;width:min(680px,100%);max-height:calc(min(76vh,720px));animation:.16s lc-pop-0bbfea97;display:flex;overflow:hidden;box-shadow:0 40px 80px -40px #14121e8c}@keyframes lc-fade-0bbfea97{0%{opacity:0}to{opacity:1}}@keyframes lc-pop-0bbfea97{0%{opacity:0;transform:translateY(6px)scale(.99)}to{opacity:1;transform:none}}.lc-hist-hd[data-v-0bbfea97]{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:16px 18px 12px;display:flex}.lc-hist-hd-txt[data-v-0bbfea97]{min-width:0}.lc-hist-title[data-v-0bbfea97]{letter-spacing:-.015em;font-size:15px;font-weight:660}.lc-hist-sub[data-v-0bbfea97]{color:var(--ink-3);margin-top:3px;font-size:11.2px}.lc-hist-x[data-v-0bbfea97]{width:26px;height:26px;color:var(--ink-3);cursor:pointer;border-radius:9px;flex:none;place-items:center;margin-left:auto;transition:background .14s,color .14s;display:grid}.lc-hist-x[data-v-0bbfea97]:hover{background:var(--sunken);color:var(--ink)}.lc-hist-x-ic[data-v-0bbfea97]{width:14px;height:14px}.lc-hist-list[data-v-0bbfea97]{gap:2px;padding:8px;display:grid;overflow-y:auto}.hist-item[data-v-0bbfea97]{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;width:100%;padding:9px 11px;transition:background .14s,border-color .14s;display:flex}.hist-item[data-v-0bbfea97]:hover{background:var(--sunken-2);border-color:var(--line)}.hist-item.on[data-v-0bbfea97]{background:var(--violet-soft);border-color:var(--violet-line)}.hist-item[data-v-0bbfea97]:disabled{opacity:.6;cursor:wait}.hist-item-dot[data-v-0bbfea97]{background:#d3cfe6;border-radius:999px;flex:none;width:6px;height:6px}.hist-item-dot.live[data-v-0bbfea97]{background:#6aa844;box-shadow:0 0 0 3px #6aa84429}.hist-item-main[data-v-0bbfea97]{flex:1;gap:2px;min-width:0;display:grid}.hist-item-main b[data-v-0bbfea97]{text-overflow:ellipsis;white-space:nowrap;font-size:12.4px;font-weight:600;overflow:hidden}.hist-item-main i[data-v-0bbfea97]{color:var(--ink-4);font-size:10.2px;font-style:normal}.hist-item-hash[data-v-0bbfea97]{border:1px solid var(--line-2);color:var(--ink-3);background:#fff;border-radius:6px;flex:none;padding:0 6px;font-size:9.8px;line-height:16px}.lc-hist-hint[data-v-0bbfea97]{text-align:center;padding:18px 12px;font-size:12px}.lc-hist-err[data-v-0bbfea97]{border-radius:var(--r-md);color:#a5382f;background:#fdeae7;border:1px solid #f6d2cb;margin:12px 18px;padding:9px 11px;font-size:11.8px}.lc-hist-ft[data-v-0bbfea97]{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:11px 18px;font-size:10.8px;display:flex}.hist-close[data-v-0bbfea97]{border:1px solid var(--ink-card);background:var(--ink-card);color:#fff;cursor:pointer;border-radius:999px;flex:none;height:26px;padding:0 12px;font-size:11px;font-weight:620}.hist-close[data-v-0bbfea97]:hover{background:#000}@media (width<=900px){.lc-hero[data-v-0bbfea97]{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:4px 14px;padding:18px;display:grid}.hero-body[data-v-0bbfea97]{grid-column:1}.hero-aside[data-v-0bbfea97]{grid-area:1/2}.ring[data-v-0bbfea97]{width:72px;height:72px}.ring-in[data-v-0bbfea97]{width:58px;height:58px}.ring-in b[data-v-0bbfea97]{font-size:14px}.ring-in span[data-v-0bbfea97]{font-size:8.2px}.s-hint[data-v-0bbfea97]{display:none}.s-copy[data-v-0bbfea97]{margin-left:auto}.s-hd[data-v-0bbfea97]{padding:12px 14px 10px}.sec-bd[data-v-0bbfea97],.sec-empty[data-v-0bbfea97],.steps[data-v-0bbfea97]{padding-left:14px;padding-right:14px}}@media (width<=700px){.hist-readonly[data-v-0bbfea97]{display:none}.lc-hist-bar .rule-btn[data-v-0bbfea97]{order:2;margin-left:auto}.lc-hist-tabs[data-v-0bbfea97]{flex-basis:100%;order:3}}@media (width<=560px){.lc-rule[data-v-0bbfea97]{padding:10px 12px}.ring-in span[data-v-0bbfea97],.rule-file[data-v-0bbfea97]{display:none}.lc-hero[data-v-0bbfea97]{gap:4px 10px;padding:15px}.hero-title[data-v-0bbfea97]{letter-spacing:-.02em;font-size:17.5px}.hero-sum[data-v-0bbfea97]{font-size:12.2px;line-height:1.62}.hero-meta[data-v-0bbfea97]{gap:8px;margin-top:10px;font-size:10.8px}.ring[data-v-0bbfea97]{width:56px;height:56px}.ring-in[data-v-0bbfea97]{width:46px;height:46px}.ring-in b[data-v-0bbfea97]{font-size:12.5px}.s-title[data-v-0bbfea97]{font-size:13.2px}}