@thxgg/steward 0.1.25 → 0.1.26

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.
Files changed (187) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{Bc2V3wPK.js → B2ow85x_.js} +2 -2
  3. package/.output/public/_nuxt/{U78rMDmo.js → B6CbIr08.js} +1 -1
  4. package/.output/public/_nuxt/{BknRrWsw.js → BLQAF8wp.js} +1 -1
  5. package/.output/public/_nuxt/BXuwtOqb.js +1 -0
  6. package/.output/public/_nuxt/CAMiEhze.js +1 -0
  7. package/.output/public/_nuxt/{BRQ9Cxaw.js → CIBCqZF5.js} +1 -1
  8. package/.output/public/_nuxt/Ce0-nlm9.js +1 -0
  9. package/.output/public/_nuxt/{T11EuTtn.js → ConzneVY.js} +1 -1
  10. package/.output/public/_nuxt/D0qxz_Pn.js +1310 -0
  11. package/.output/public/_nuxt/D3PDtLSF.js +3 -0
  12. package/.output/public/_nuxt/{C73kduX-.js → DdKC0UAK.js} +1 -1
  13. package/.output/public/_nuxt/Detail.BGdvrJGh.css +1 -0
  14. package/.output/public/_nuxt/{C53_p0K1.js → Dkh9ic1y.js} +1 -1
  15. package/.output/public/_nuxt/LEjJTR7-.js +1 -0
  16. package/.output/public/_nuxt/{BTmXUZ_s.js → UqZfMfrZ.js} +1 -1
  17. package/.output/public/_nuxt/builds/latest.json +1 -1
  18. package/.output/public/_nuxt/builds/meta/25438e34-19a2-421d-aede-53fd18f1ccd4.json +1 -0
  19. package/.output/public/_nuxt/dckrK0oj.js +1 -0
  20. package/.output/public/_nuxt/entry.DT4p6_uW.css +1 -0
  21. package/.output/public/_nuxt/pIWeVmPw.js +1 -0
  22. package/.output/public/_nuxt/xrHaPo1U.js +60 -0
  23. package/.output/server/chunks/build/{Detail-DMMUwTWr.mjs → Detail-rpcemNXe.mjs} +674 -481
  24. package/.output/server/chunks/build/Detail-rpcemNXe.mjs.map +1 -0
  25. package/.output/server/chunks/build/DiffViewer-styles.B1FB5NJj.mjs +8 -0
  26. package/.output/server/chunks/build/DiffViewer-styles.B1FB5NJj.mjs.map +1 -0
  27. package/.output/server/chunks/build/{_prd_-ByugK4Yi.mjs → _prd_-CeibvZOH.mjs} +67 -233
  28. package/.output/server/chunks/build/_prd_-CeibvZOH.mjs.map +1 -0
  29. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  30. package/.output/server/chunks/build/{default-BKKgG7HJ.mjs → default-iq8SaDDN.mjs} +3 -3
  31. package/.output/server/chunks/build/default-iq8SaDDN.mjs.map +1 -0
  32. package/.output/server/chunks/build/{error-404-Bf6kdO80.mjs → error-404-DFale9A5.mjs} +2 -2
  33. package/.output/server/chunks/build/error-404-DFale9A5.mjs.map +1 -0
  34. package/.output/server/chunks/build/{index-DE1tjHAd.mjs → index-Po00RvHm.mjs} +2 -2
  35. package/.output/server/chunks/build/index-Po00RvHm.mjs.map +1 -0
  36. package/.output/server/chunks/build/{nuxt-link-SvT1nf8Z.mjs → nuxt-link-B4oWFn7n.mjs} +2 -2
  37. package/.output/server/chunks/build/nuxt-link-B4oWFn7n.mjs.map +1 -0
  38. package/.output/server/chunks/build/{repo-graph-DzT45gSB.mjs → repo-graph-BQVFpA-w.mjs} +5 -4
  39. package/.output/server/chunks/build/repo-graph-BQVFpA-w.mjs.map +1 -0
  40. package/.output/server/chunks/build/server.mjs +7 -7
  41. package/.output/server/chunks/build/styles.mjs +4 -5
  42. package/.output/server/chunks/build/{usePrd-hXZOmvAv.mjs → usePrd-Bb6jlnNZ.mjs} +2 -2
  43. package/.output/server/chunks/build/usePrd-Bb6jlnNZ.mjs.map +1 -0
  44. package/.output/server/chunks/nitro/nitro.mjs +663 -660
  45. package/.output/server/node_modules/@pierre/diffs/dist/components/File.js +324 -0
  46. package/.output/server/node_modules/@pierre/diffs/dist/components/FileDiff.js +395 -0
  47. package/.output/server/node_modules/@pierre/diffs/dist/components/FileStream.js +161 -0
  48. package/.output/server/node_modules/@pierre/diffs/dist/components/web-components.js +25 -0
  49. package/.output/server/node_modules/@pierre/diffs/dist/constants.js +23 -0
  50. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/areLanguagesAttached.js +11 -0
  51. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/attachResolvedLanguages.js +20 -0
  52. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/cleanUpResolvedLanguages.js +11 -0
  53. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/constants.js +8 -0
  54. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/getResolvedLanguages.js +16 -0
  55. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/getResolvedOrResolveLanguage.js +11 -0
  56. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/hasResolvedLanguages.js +11 -0
  57. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/resolveLanguage.js +30 -0
  58. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/resolveLanguages.js +25 -0
  59. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/shared_highlighter.js +71 -0
  60. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/areThemesAttached.js +12 -0
  61. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/attachResolvedThemes.js +24 -0
  62. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/cleanUpResolvedThemes.js +11 -0
  63. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/constants.js +9 -0
  64. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/getResolvedOrResolveTheme.js +11 -0
  65. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/getResolvedThemes.js +16 -0
  66. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/hasResolvedThemes.js +11 -0
  67. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/registerCustomCSSVariableTheme.js +18 -0
  68. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/registerCustomTheme.js +14 -0
  69. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/resolveTheme.js +35 -0
  70. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/resolveThemes.js +21 -0
  71. package/.output/server/node_modules/@pierre/diffs/dist/index.js +84 -0
  72. package/.output/server/node_modules/@pierre/diffs/dist/managers/LineSelectionManager.js +282 -0
  73. package/.output/server/node_modules/@pierre/diffs/dist/managers/MouseEventManager.js +244 -0
  74. package/.output/server/node_modules/@pierre/diffs/dist/managers/ResizeManager.js +132 -0
  75. package/.output/server/node_modules/@pierre/diffs/dist/managers/ScrollSyncManager.js +62 -0
  76. package/.output/server/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.js +32 -0
  77. package/.output/server/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js +655 -0
  78. package/.output/server/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js +243 -0
  79. package/.output/server/node_modules/@pierre/diffs/dist/shiki-stream/stream.js +32 -0
  80. package/.output/server/node_modules/@pierre/diffs/dist/shiki-stream/tokenizer.js +71 -0
  81. package/.output/server/node_modules/@pierre/diffs/dist/sprite.js +55 -0
  82. package/.output/server/node_modules/@pierre/diffs/dist/style.js +6 -0
  83. package/.output/server/node_modules/@pierre/diffs/dist/themes/pierre-dark.js +1328 -0
  84. package/.output/server/node_modules/@pierre/diffs/dist/themes/pierre-light.js +1328 -0
  85. package/.output/server/node_modules/@pierre/diffs/dist/utils/areFilesEqual.js +8 -0
  86. package/.output/server/node_modules/@pierre/diffs/dist/utils/areObjectsEqual.js +18 -0
  87. package/.output/server/node_modules/@pierre/diffs/dist/utils/areOptionsEqual.js +12 -0
  88. package/.output/server/node_modules/@pierre/diffs/dist/utils/areSelectionsEqual.js +8 -0
  89. package/.output/server/node_modules/@pierre/diffs/dist/utils/areThemesEqual.js +9 -0
  90. package/.output/server/node_modules/@pierre/diffs/dist/utils/cleanLastNewline.js +8 -0
  91. package/.output/server/node_modules/@pierre/diffs/dist/utils/createAnnotationElement.js +21 -0
  92. package/.output/server/node_modules/@pierre/diffs/dist/utils/createAnnotationWrapperNode.js +12 -0
  93. package/.output/server/node_modules/@pierre/diffs/dist/utils/createCodeNode.js +12 -0
  94. package/.output/server/node_modules/@pierre/diffs/dist/utils/createEmptyRowBuffer.js +16 -0
  95. package/.output/server/node_modules/@pierre/diffs/dist/utils/createFileHeaderElement.js +84 -0
  96. package/.output/server/node_modules/@pierre/diffs/dist/utils/createHoverContentNode.js +15 -0
  97. package/.output/server/node_modules/@pierre/diffs/dist/utils/createNoNewlineElement.js +24 -0
  98. package/.output/server/node_modules/@pierre/diffs/dist/utils/createPreElement.js +28 -0
  99. package/.output/server/node_modules/@pierre/diffs/dist/utils/createRowNodes.js +20 -0
  100. package/.output/server/node_modules/@pierre/diffs/dist/utils/createSeparator.js +69 -0
  101. package/.output/server/node_modules/@pierre/diffs/dist/utils/createSpanNodeFromToken.js +13 -0
  102. package/.output/server/node_modules/@pierre/diffs/dist/utils/createStyleElement.js +19 -0
  103. package/.output/server/node_modules/@pierre/diffs/dist/utils/createTransformerWithState.js +56 -0
  104. package/.output/server/node_modules/@pierre/diffs/dist/utils/createUnsafeCSSStyleNode.js +12 -0
  105. package/.output/server/node_modules/@pierre/diffs/dist/utils/cssWrappers.js +21 -0
  106. package/.output/server/node_modules/@pierre/diffs/dist/utils/diffAcceptRejectHunk.js +82 -0
  107. package/.output/server/node_modules/@pierre/diffs/dist/utils/formatCSSVariablePrefix.js +8 -0
  108. package/.output/server/node_modules/@pierre/diffs/dist/utils/getFiletypeFromFileName.js +343 -0
  109. package/.output/server/node_modules/@pierre/diffs/dist/utils/getHighlighterOptions.js +13 -0
  110. package/.output/server/node_modules/@pierre/diffs/dist/utils/getHighlighterThemeStyles.js +40 -0
  111. package/.output/server/node_modules/@pierre/diffs/dist/utils/getHunkSeparatorSlotName.js +8 -0
  112. package/.output/server/node_modules/@pierre/diffs/dist/utils/getIconForType.js +15 -0
  113. package/.output/server/node_modules/@pierre/diffs/dist/utils/getLineAnnotationName.js +8 -0
  114. package/.output/server/node_modules/@pierre/diffs/dist/utils/getLineEndingType.js +11 -0
  115. package/.output/server/node_modules/@pierre/diffs/dist/utils/getLineNodes.js +15 -0
  116. package/.output/server/node_modules/@pierre/diffs/dist/utils/getSingularPatch.js +20 -0
  117. package/.output/server/node_modules/@pierre/diffs/dist/utils/getThemes.js +16 -0
  118. package/.output/server/node_modules/@pierre/diffs/dist/utils/getTotalLineCountFromHunks.js +10 -0
  119. package/.output/server/node_modules/@pierre/diffs/dist/utils/hast_utils.js +42 -0
  120. package/.output/server/node_modules/@pierre/diffs/dist/utils/isWorkerContext.js +8 -0
  121. package/.output/server/node_modules/@pierre/diffs/dist/utils/parseDiffDecorations.js +34 -0
  122. package/.output/server/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js +23 -0
  123. package/.output/server/node_modules/@pierre/diffs/dist/utils/parseLineType.js +17 -0
  124. package/.output/server/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js +211 -0
  125. package/.output/server/node_modules/@pierre/diffs/dist/utils/prerenderHTMLIfNecessary.js +10 -0
  126. package/.output/server/node_modules/@pierre/diffs/dist/utils/processLine.js +42 -0
  127. package/.output/server/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.js +339 -0
  128. package/.output/server/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.js +52 -0
  129. package/.output/server/node_modules/@pierre/diffs/dist/utils/setLanguageOverride.js +11 -0
  130. package/.output/server/node_modules/@pierre/diffs/dist/utils/setWrapperNodeProps.js +29 -0
  131. package/.output/server/node_modules/@pierre/diffs/package.json +89 -0
  132. package/.output/server/node_modules/@shikijs/transformers/dist/index.mjs +831 -0
  133. package/.output/server/node_modules/@shikijs/transformers/package.json +37 -0
  134. package/.output/server/node_modules/diff/libesm/convert/dmp.js +21 -0
  135. package/.output/server/node_modules/diff/libesm/convert/xml.js +31 -0
  136. package/.output/server/node_modules/diff/libesm/diff/array.js +16 -0
  137. package/.output/server/node_modules/diff/libesm/diff/base.js +253 -0
  138. package/.output/server/node_modules/diff/libesm/diff/character.js +7 -0
  139. package/.output/server/node_modules/diff/libesm/diff/css.js +10 -0
  140. package/.output/server/node_modules/diff/libesm/diff/json.js +78 -0
  141. package/.output/server/node_modules/diff/libesm/diff/line.js +65 -0
  142. package/.output/server/node_modules/diff/libesm/diff/sentence.js +43 -0
  143. package/.output/server/node_modules/diff/libesm/diff/word.js +296 -0
  144. package/.output/server/node_modules/diff/libesm/index.js +30 -0
  145. package/.output/server/node_modules/diff/libesm/package.json +1 -0
  146. package/.output/server/node_modules/diff/libesm/patch/apply.js +257 -0
  147. package/.output/server/node_modules/diff/libesm/patch/create.js +228 -0
  148. package/.output/server/node_modules/diff/libesm/patch/line-endings.js +44 -0
  149. package/.output/server/node_modules/diff/libesm/patch/parse.js +147 -0
  150. package/.output/server/node_modules/diff/libesm/patch/reverse.js +23 -0
  151. package/.output/server/node_modules/diff/libesm/util/distance-iterator.js +37 -0
  152. package/.output/server/node_modules/diff/libesm/util/params.js +14 -0
  153. package/.output/server/node_modules/diff/libesm/util/string.js +128 -0
  154. package/.output/server/node_modules/diff/package.json +132 -0
  155. package/.output/server/package.json +4 -1
  156. package/dist/server/utils/git.js +8 -6
  157. package/package.json +2 -1
  158. package/.output/public/_nuxt/6tINjQEd.js +0 -141
  159. package/.output/public/_nuxt/B2mIQf5X.js +0 -3
  160. package/.output/public/_nuxt/C0BBSDJ7.js +0 -1
  161. package/.output/public/_nuxt/CN46Bgts.js +0 -1
  162. package/.output/public/_nuxt/CTJgb0zb.js +0 -1
  163. package/.output/public/_nuxt/Cce168lk.js +0 -30
  164. package/.output/public/_nuxt/CyVSeLw5.js +0 -1
  165. package/.output/public/_nuxt/Detail.CYc96mGf.css +0 -1
  166. package/.output/public/_nuxt/ZNypZshD.js +0 -13
  167. package/.output/public/_nuxt/builds/meta/9ce7f1bc-d5e2-47bf-8026-f4910c257b2e.json +0 -1
  168. package/.output/public/_nuxt/entry.Bw0CE6Iz.css +0 -1
  169. package/.output/public/_nuxt/pYJYAY-W.js +0 -60
  170. package/.output/server/chunks/build/Detail-DMMUwTWr.mjs.map +0 -1
  171. package/.output/server/chunks/build/DiffViewer-styles-1.mjs-d2dQvARr.mjs +0 -4
  172. package/.output/server/chunks/build/DiffViewer-styles-1.mjs-d2dQvARr.mjs.map +0 -1
  173. package/.output/server/chunks/build/DiffViewer-styles-2.mjs-X6QKNjM0.mjs +0 -4
  174. package/.output/server/chunks/build/DiffViewer-styles-2.mjs-X6QKNjM0.mjs.map +0 -1
  175. package/.output/server/chunks/build/DiffViewer-styles.0AbHFl6N.mjs +0 -8
  176. package/.output/server/chunks/build/DiffViewer-styles.0AbHFl6N.mjs.map +0 -1
  177. package/.output/server/chunks/build/DiffViewer-styles.BDwAqkTk.mjs +0 -8
  178. package/.output/server/chunks/build/DiffViewer-styles.BDwAqkTk.mjs.map +0 -1
  179. package/.output/server/chunks/build/DiffViewer-styles.DRJh5Ui4.mjs +0 -10
  180. package/.output/server/chunks/build/DiffViewer-styles.DRJh5Ui4.mjs.map +0 -1
  181. package/.output/server/chunks/build/_prd_-ByugK4Yi.mjs.map +0 -1
  182. package/.output/server/chunks/build/default-BKKgG7HJ.mjs.map +0 -1
  183. package/.output/server/chunks/build/error-404-Bf6kdO80.mjs.map +0 -1
  184. package/.output/server/chunks/build/index-DE1tjHAd.mjs.map +0 -1
  185. package/.output/server/chunks/build/nuxt-link-SvT1nf8Z.mjs.map +0 -1
  186. package/.output/server/chunks/build/repo-graph-DzT45gSB.mjs.map +0 -1
  187. package/.output/server/chunks/build/usePrd-hXZOmvAv.mjs.map +0 -1
@@ -1 +1 @@
1
- import{s as B,l as e,a0 as Dt,g as E,k as pe,o as u,x as _,L as q,c as S,n as F,F as se,r as le,v as ot,B as ye,w as c,y as V,q as C,b as p,G as _e,p as $e,ac as Pt,z as ie,A as fe,ad as Tt,ae as Le,a as d,H as oe,t as O,d as G,E as It,af as Ot,j as nt,M as Ke,ag as Mt,ah as Vt,m as Ce,J as Ae,K as Be,a1 as Lt,aa as Fe,ai as lt,ab as Ft,_ as qt,aj as zt,ak as jt}from"./Bc2V3wPK.js";import{c as me,m as qe,h as Kt,f as rt,d as Ue,P as re,g as Oe,l as Ut,B as ce,u as De,o as Ht,b as it,r as te,e as W,a as He,F as ze,n as Nt}from"./CN46Bgts.js";import{r as Gt,V as Wt,u as Qt,c as be,a as Pe,b as Ne,s as Jt,L as ut,f as Xt,g as Yt,q as dt,h as Zt,p as ea,o as ta,j as aa,k as sa,l as oa,m as na,d as ve,S as la,G as ct,C as ra,R as pt,B as Ze,t as ia,v as Ge,w as ft,x as mt,y as vt,X as ht,e as Te,z as ua,A as da,E as ca,i as pa,K as fa}from"./B2mIQf5X.js";import{F as ma,I as va,a as je}from"./C0BBSDJ7.js";import{b as We,u as Qe,g as ha,A as ga}from"./CyVSeLw5.js";import{_ as ya}from"./CTJgb0zb.js";const _a=me("archive",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]]);const ba=me("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);const gt=me("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);const yt=me("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]);const xa=me("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);const _t=me("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);const wa=me("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);function ka(s,t,a){const n=s.findIndex(r=>qe(r,t)),l=s.findIndex(r=>qe(r,a));if(n===-1||l===-1)return[];const[i,o]=[n,l].sort((r,f)=>r-f);return s.slice(i,o+1)}function Ca(s){const t=B(()=>e(s)),a=B(()=>new Intl.Collator("en",{usage:"search",...t.value}));return{startsWith:(o,r)=>r.length===0?!0:(o=o.normalize("NFC"),r=r.normalize("NFC"),a.value.compare(o.slice(0,r.length),r)===0),endsWith:(o,r)=>r.length===0?!0:(o=o.normalize("NFC"),r=r.normalize("NFC"),a.value.compare(o.slice(-r.length),r)===0),contains:(o,r)=>{if(r.length===0)return!0;o=o.normalize("NFC"),r=r.normalize("NFC");let f=0;const h=r.length;for(;f+h<=o.length;f++){const b=o.slice(f,f+h);if(a.value.compare(r,b)===0)return!0}return!1}}}function bt(s){return B(()=>Dt(s)?!!Kt(s)?.closest("form"):!0)}function Sa(){return{ALT:"Alt",ARROW_DOWN:"ArrowDown",ARROW_LEFT:"ArrowLeft",ARROW_RIGHT:"ArrowRight",ARROW_UP:"ArrowUp",BACKSPACE:"Backspace",CAPS_LOCK:"CapsLock",CONTROL:"Control",DELETE:"Delete",END:"End",ENTER:"Enter",ESCAPE:"Escape",F1:"F1",F10:"F10",F11:"F11",F12:"F12",F2:"F2",F3:"F3",F4:"F4",F5:"F5",F6:"F6",F7:"F7",F8:"F8",F9:"F9",HOME:"Home",META:"Meta",PAGE_DOWN:"PageDown",PAGE_UP:"PageUp",SHIFT:"Shift",SPACE:" ",TAB:"Tab",CTRL:"Control",ASTERISK:"*",SPACE_CODE:"Space"}}function $a(s){const t=rt("",1e3);return{search:t,handleTypeaheadSearch:(l,i)=>{t.value=t.value+l;{const o=Gt(),r=i.map(v=>({...v,textValue:v.value?.textValue??v.ref.textContent?.trim()??""})),f=r.find(v=>v.ref===o),h=r.map(v=>v.textValue),b=Ea(h,t.value,f?.textValue),m=r.find(v=>v.textValue===b);return m&&m.ref.focus(),m?.ref}},resetTypeahead:()=>{t.value=""}}}function Ra(s,t){return s.map((a,n)=>s[(t+n)%s.length])}function Ea(s,t,a){const l=t.length>1&&Array.from(t).every(h=>h===t[0])?t[0]:t,i=a?s.indexOf(a):-1;let o=Ra(s,Math.max(i,0));l.length===1&&(o=o.filter(h=>h!==a));const f=o.find(h=>h.toLowerCase().startsWith(l.toLowerCase()));return f!==a?f:void 0}var Aa=E({inheritAttrs:!1,__name:"VisuallyHiddenInputBubble",props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:"fully-hidden"}},setup(s){const t=s,{primitiveElement:a,currentElement:n}=We(),l=B(()=>t.checked??t.value);return pe(l,(i,o)=>{if(!n.value)return;const r=n.value,f=window.HTMLInputElement.prototype,b=Object.getOwnPropertyDescriptor(f,"value").set;if(b&&i!==o){const m=new Event("input",{bubbles:!0}),v=new Event("change",{bubbles:!0});b.call(r,i),r.dispatchEvent(m),r.dispatchEvent(v)}}),(i,o)=>(u(),_(Wt,q({ref_key:"primitiveElement",ref:a},{...t,...i.$attrs},{as:"input"}),null,16))}}),et=Aa,Ba=E({inheritAttrs:!1,__name:"VisuallyHiddenInput",props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:"fully-hidden"}},setup(s){const t=s,a=B(()=>typeof t.value=="object"&&Array.isArray(t.value)&&t.value.length===0&&t.required),n=B(()=>typeof t.value=="string"||typeof t.value=="number"||typeof t.value=="boolean"||t.value===null||t.value===void 0?[{name:t.name,value:t.value}]:typeof t.value=="object"&&Array.isArray(t.value)?t.value.flatMap((l,i)=>typeof l=="object"?Object.entries(l).map(([o,r])=>({name:`${t.name}[${i}][${o}]`,value:r})):{name:`${t.name}[${i}]`,value:l}):t.value!==null&&typeof t.value=="object"&&!Array.isArray(t.value)?Object.entries(t.value).map(([l,i])=>({name:`${t.name}[${l}]`,value:i})):[]);return(l,i)=>(u(),S(se,null,[F(" We render single input if it's required "),a.value?(u(),_(et,q({key:l.name},{...t,...l.$attrs},{name:l.name,value:l.value}),null,16,["name","value"])):(u(!0),S(se,{key:1},le(n.value,o=>(u(),_(et,q({key:o.name},{ref_for:!0},{...t,...l.$attrs},{name:o.name,value:o.value}),null,16,["name","value"]))),128))],2112))}}),xt=Ba;function Da(s,t,a){return s===void 0?!1:Array.isArray(s)?s.some(n=>Se(n,t,a)):Se(s,t,a)}function Se(s,t,a){return s===void 0||t===void 0?!1:typeof s=="string"?s===t:typeof a=="function"?a(s,t):typeof a=="string"?s?.[a]===t?.[a]:qe(s,t)}const[Je,Pa]=be("ListboxRoot");var Ta=E({__name:"ListboxRoot",props:{modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},multiple:{type:Boolean,required:!1},orientation:{type:String,required:!1,default:"vertical"},dir:{type:String,required:!1},disabled:{type:Boolean,required:!1},selectionBehavior:{type:String,required:!1,default:"toggle"},highlightOnHover:{type:Boolean,required:!1},by:{type:[String,Function],required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue","highlight","entryFocus","leave"],setup(s,{expose:t,emit:a}){const n=s,l=a,{multiple:i,highlightOnHover:o,orientation:r,disabled:f,selectionBehavior:h,dir:b}=ot(n),{getItems:m}=Qe({isProvider:!0}),{handleTypeaheadSearch:v}=$a(),{primitiveElement:k,currentElement:g}=We(),P=Sa(),J=Qt(b),Z=bt(g),j=C(),w=C(!1),$=C(!0),A=Ue(n,"modelValue",l,{defaultValue:n.defaultValue??(i.value?[]:void 0),passive:n.modelValue===void 0,deep:!0});function X(y){if(w.value=!0,n.multiple){const R=Array.isArray(A.value)?[...A.value]:[],D=R.findIndex(H=>Se(H,y,n.by));n.selectionBehavior==="toggle"?(D===-1?R.push(y):R.splice(D,1),A.value=R):(A.value=[y],j.value=y)}else n.selectionBehavior==="toggle"&&Se(A.value,y,n.by)?A.value=void 0:A.value=y;setTimeout(()=>{w.value=!1},1)}const M=C(null),ee=C(null),Q=C(!1),ue=C(!1),he=Oe(),ae=Oe(),N=Oe();function Y(){return m().map(y=>y.ref).filter(y=>y.dataset.disabled!=="")}function K(y,R=!0){if(!y)return;M.value=y,$.value&&M.value.focus(),R&&M.value.scrollIntoView({block:"nearest"});const D=m().find(H=>H.ref===y);l("highlight",D)}function ne(y){if(Q.value)N.trigger(y);else{const R=m().find(D=>Se(D.value,y,n.by));R&&(M.value=R.ref,K(R.ref))}}function T(y){M.value&&M.value.isConnected&&(y.preventDefault(),y.stopPropagation(),ue.value||M.value.click())}function z(y){if($.value){if(w.value=!0,Q.value)ae.trigger(y);else{const R=y.altKey||y.ctrlKey||y.metaKey;if(R&&y.key==="a"&&i.value){const D=m(),H=D.map(ge=>ge.value);A.value=[...H],y.preventDefault(),K(D[D.length-1].ref)}else if(!R){const D=v(y.key,m());D&&K(D)}}setTimeout(()=>{w.value=!1},1)}}function U(){ue.value=!0}function I(){ye(()=>{ue.value=!1})}function x(){ye(()=>{const y=new KeyboardEvent("keydown",{key:"PageUp"});Xe(y)})}function L(y){const R=M.value;R?.isConnected&&(ee.value=R),M.value=null,l("leave",y)}function xe(y){const R=new CustomEvent("listbox.entryFocus",{bubbles:!1,cancelable:!0});if(y.currentTarget?.dispatchEvent(R),l("entryFocus",R),!R.defaultPrevented)if(ee.value)K(ee.value);else{const D=Y()?.[0];K(D)}}function Xe(y){const R=ha(y,r.value,J.value);if(!R)return;let D=Y();if(M.value){if(R==="last")D.reverse();else if(R==="prev"||R==="next"){R==="prev"&&D.reverse();const H=D.indexOf(M.value);D=D.slice(H+1)}At(y,D[0])}if(D.length){const H=!M.value&&R==="prev"?D.length-1:0;K(D[H])}if(Q.value)return ae.trigger(y)}function At(y,R){if(!(Q.value||n.selectionBehavior!=="replace"||!i.value||!Array.isArray(A.value)||(y.altKey||y.ctrlKey||y.metaKey)&&!y.shiftKey)&&y.shiftKey){const H=m().filter(we=>we.ref.dataset.disabled!=="");let ge=H.find(we=>we.ref===R)?.value;if(y.key===P.END?ge=H[H.length-1].value:y.key===P.HOME&&(ge=H[0].value),!ge||!j.value)return;const Bt=ka(H.map(we=>we.value),j.value,ge);A.value=Bt}}async function Ye(y){if(await ye(),Q.value)he.trigger(y);else{const R=Y(),D=R.find(H=>H.dataset.state==="checked");D?K(D):R.length&&K(R[0])}}return pe(A,()=>{w.value||ye(()=>{Ye()})},{immediate:!0,deep:!0}),t({highlightedElement:M,highlightItem:ne,highlightFirstItem:x,highlightSelected:Ye,getItems:m}),Pa({modelValue:A,onValueChange:X,multiple:i,orientation:r,dir:J,disabled:f,highlightOnHover:o,highlightedElement:M,isVirtual:Q,virtualFocusHook:he,virtualKeydownHook:ae,virtualHighlightHook:N,by:n.by,firstValue:j,selectionBehavior:h,focusable:$,onLeave:L,onEnter:xe,changeHighlight:K,onKeydownEnter:T,onKeydownNavigation:Xe,onKeydownTypeAhead:z,onCompositionStart:U,onCompositionEnd:I,highlightFirstItem:x}),(y,R)=>(u(),_(e(re),{ref_key:"primitiveElement",ref:k,as:y.as,"as-child":y.asChild,dir:e(J),"data-disabled":e(f)?"":void 0,onPointerleave:L,onFocusout:R[0]||(R[0]=async D=>{const H=D.relatedTarget||D.target;await ye(),M.value&&e(g)&&!e(g).contains(H)&&L(D)})},{default:c(()=>[V(y.$slots,"default",{modelValue:e(A)}),e(Z)&&y.name?(u(),_(e(xt),{key:0,name:y.name,value:e(A),disabled:e(f),required:y.required},null,8,["name","value","disabled","required"])):F("v-if",!0)]),_:3},8,["as","as-child","dir","data-disabled"]))}}),Ia=Ta,Oa=E({__name:"ListboxContent",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(s){const{CollectionSlot:t}=Qe(),a=Je(),n=rt(!1,10);return(l,i)=>(u(),_(e(t),null,{default:c(()=>[p(e(re),{role:"listbox",as:l.as,"as-child":l.asChild,tabindex:e(a).focusable.value?e(a).highlightedElement.value?"-1":"0":"-1","aria-orientation":e(a).orientation.value,"aria-multiselectable":!!e(a).multiple.value,"data-orientation":e(a).orientation.value,onMousedown:i[0]||(i[0]=$e(o=>n.value=!0,["left"])),onFocus:i[1]||(i[1]=o=>{e(n)||e(a).onEnter(o)}),onKeydown:[i[2]||(i[2]=_e(o=>{e(a).orientation.value==="vertical"&&(o.key==="ArrowLeft"||o.key==="ArrowRight")||e(a).orientation.value==="horizontal"&&(o.key==="ArrowUp"||o.key==="ArrowDown")||(o.preventDefault(),e(a).focusable.value&&e(a).onKeydownNavigation(o))},["down","up","left","right","home","end"])),_e(e(a).onKeydownEnter,["enter"]),e(a).onKeydownTypeAhead]},{default:c(()=>[V(l.$slots,"default")]),_:3},8,["as","as-child","tabindex","aria-orientation","aria-multiselectable","data-orientation","onKeydown"])]),_:3}))}}),Ma=Oa,Va=E({__name:"ListboxFilter",props:{modelValue:{type:String,required:!1},autoFocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"input"}},emits:["update:modelValue"],setup(s,{emit:t}){const a=s,l=Ue(a,"modelValue",t,{defaultValue:"",passive:a.modelValue===void 0}),i=Je(),{primitiveElement:o,currentElement:r}=We(),f=B(()=>a.disabled||i.disabled.value||!1),h=C();return Pt(()=>h.value=i.highlightedElement.value?.id),ie(()=>{i.focusable.value=!1,setTimeout(()=>{a.autoFocus&&r.value?.focus()},1)}),fe(()=>{i.focusable.value=!0}),(b,m)=>(u(),_(e(re),{ref_key:"primitiveElement",ref:o,as:b.as,"as-child":b.asChild,value:e(l),disabled:f.value?"":void 0,"data-disabled":f.value?"":void 0,"aria-disabled":f.value??void 0,"aria-activedescendant":h.value,type:"text",onKeydown:[_e($e(e(i).onKeydownNavigation,["prevent"]),["down","up","home","end"]),_e(e(i).onKeydownEnter,["enter"])],onInput:m[0]||(m[0]=v=>{l.value=v.target.value,e(i).highlightFirstItem()}),onCompositionstart:e(i).onCompositionStart,onCompositionend:e(i).onCompositionEnd},{default:c(()=>[V(b.$slots,"default",{modelValue:e(l)})]),_:3},8,["as","as-child","value","disabled","data-disabled","aria-disabled","aria-activedescendant","onKeydown","onCompositionstart","onCompositionend"]))}}),La=Va;const[Fa,qa]=be("ListboxGroup");var za=E({__name:"ListboxGroup",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(s){const t=s,a=Pe(void 0,"reka-listbox-group");return qa({id:a}),(n,l)=>(u(),_(e(re),q({role:"group"},t,{"aria-labelledby":e(a)}),{default:c(()=>[V(n.$slots,"default")]),_:3},16,["aria-labelledby"]))}}),ja=za,Ka=E({__name:"ListboxGroupLabel",props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},setup(s){const t=s,a=Fa({id:""});return(n,l)=>(u(),_(e(re),q(t,{id:e(a).id}),{default:c(()=>[V(n.$slots,"default")]),_:3},16,["id"]))}}),Ua=Ka;const Ha="listbox.select",[An,Na]=be("ListboxItem");var Ga=E({__name:"ListboxItem",props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},emits:["select"],setup(s,{emit:t}){const a=s,n=t,l=Pe(void 0,"reka-listbox-item"),{CollectionItem:i}=Qe(),{forwardRef:o,currentElement:r}=Ne(),f=Je(),h=B(()=>r.value===f.highlightedElement.value),b=B(()=>Da(f.modelValue.value,a.value,f.by)),m=B(()=>f.disabled.value||a.disabled);async function v(g){n("select",g),!g?.defaultPrevented&&!m.value&&g&&(f.onValueChange(a.value),f.changeHighlight(r.value))}function k(g){const P={originalEvent:g,value:a.value};Jt(Ha,v,P)}return Na({isSelected:b}),(g,P)=>(u(),_(e(i),{value:g.value},{default:c(()=>[Tt([h.value,b.value],()=>p(e(re),q({id:e(l)},g.$attrs,{ref:e(o),role:"option",tabindex:e(f).focusable.value?h.value?"0":"-1":-1,"aria-selected":b.value,as:g.as,"as-child":g.asChild,disabled:m.value?"":void 0,"data-disabled":m.value?"":void 0,"data-highlighted":h.value?"":void 0,"data-state":b.value?"checked":"unchecked",onClick:k,onKeydown:_e($e(k,["prevent"]),["space"]),onPointermove:P[0]||(P[0]=()=>{e(f).highlightedElement.value!==e(r)&&e(f).highlightOnHover.value&&!e(f).focusable.value&&e(f).changeHighlight(e(r),!1)})}),{default:c(()=>[V(g.$slots,"default")]),_:3},16,["id","tabindex","aria-selected","as","as-child","disabled","data-disabled","data-highlighted","data-state","onKeydown"]),P,1)]),_:3},8,["value"]))}}),Wa=Ga;const[Qa,Ja]=be("SwitchRoot");var Xa=E({__name:"SwitchRoot",props:{defaultValue:{type:Boolean,required:!1},modelValue:{type:[Boolean,null],required:!1,default:void 0},disabled:{type:Boolean,required:!1},id:{type:String,required:!1},value:{type:String,required:!1,default:"on"},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue"],setup(s,{emit:t}){const a=s,n=t,{disabled:l}=ot(a),i=Ue(a,"modelValue",n,{defaultValue:a.defaultValue,passive:a.modelValue===void 0});function o(){l.value||(i.value=!i.value)}const{forwardRef:r,currentElement:f}=Ne(),h=bt(f),b=B(()=>a.id&&f.value?document.querySelector(`[for="${a.id}"]`)?.innerText:void 0);return Ja({modelValue:i,toggleCheck:o,disabled:l}),(m,v)=>(u(),_(e(re),q(m.$attrs,{id:m.id,ref:e(r),role:"switch",type:m.as==="button"?"button":void 0,value:m.value,"aria-label":m.$attrs["aria-label"]||b.value,"aria-checked":e(i),"aria-required":m.required,"data-state":e(i)?"checked":"unchecked","data-disabled":e(l)?"":void 0,"as-child":m.asChild,as:m.as,disabled:e(l),onClick:o,onKeydown:_e($e(o,["prevent"]),["enter"])}),{default:c(()=>[V(m.$slots,"default",{modelValue:e(i)}),e(h)&&m.name?(u(),_(e(xt),{key:0,type:"checkbox",name:m.name,disabled:e(l),required:m.required,value:m.value,checked:!!e(i)},null,8,["name","disabled","required","value","checked"])):F("v-if",!0)]),_:3},16,["id","type","value","aria-label","aria-checked","aria-required","data-state","data-disabled","as-child","as","disabled","onKeydown"]))}}),Ya=Xa,Za=E({__name:"SwitchThumb",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(s){const t=Qa();return Ne(),(a,n)=>(u(),_(e(re),{"data-state":e(t).modelValue?.value?"checked":"unchecked","data-disabled":e(t).disabled.value?"":void 0,"as-child":a.asChild,as:a.as},{default:c(()=>[V(a.$slots,"default")]),_:3},8,["data-state","data-disabled","as-child","as"]))}}),es=Za;const wt=globalThis.setInterval,ts=700,as={state:"idle",version:"progress-json-v2",startedAt:null,completedAt:null,totalRows:0,processedRows:0,migratedRows:0,failedRows:0,currentSlug:null,errorMessage:null,percent:0};let ke=null,Me=!1,Re=0;function ss(){const s=Le("state-migration:status",()=>({...as})),t=Le("state-migration:initialized",()=>!1),a=B(()=>s.value.state==="running"||s.value.state==="failed");async function n(){if(!Me){Me=!0;try{const o=await $fetch("/api/state-migration/status",{query:{_:Date.now()}});s.value=o,t.value=!0,o.state==="completed"&&i()}catch{t.value=!0}finally{Me=!1}}}function l(){ke||(ke=wt(()=>{n()},ts))}function i(){ke&&(clearInterval(ke),ke=null)}return ie(()=>{Re+=1,n(),l()}),fe(()=>{Re=Math.max(0,Re-1),Re===0&&i()}),{status:s,initialized:t,isBlocking:a,refreshStatus:n}}const os={key:0,class:"fixed inset-0 z-[110] flex items-center justify-center bg-[radial-gradient(circle_at_18%_20%,oklch(0.92_0.03_218_/_0.65),transparent_52%),radial-gradient(circle_at_82%_80%,oklch(0.95_0.04_40_/_0.5),transparent_46%),oklch(0.17_0.02_240_/_0.72)] px-4 backdrop-blur-sm",role:"alert","aria-live":"assertive","aria-busy":"true"},ns={class:"w-full max-w-xl rounded-2xl border border-border/70 bg-background/95 p-6 shadow-2xl md:p-7"},ls={class:"mb-4 flex items-start gap-3"},rs={class:"flex size-11 shrink-0 items-center justify-center rounded-xl border border-border bg-muted/60"},is={class:"space-y-1"},us={class:"text-xl font-semibold tracking-tight"},ds={class:"space-y-3 rounded-xl border border-border/80 bg-card/70 p-4"},cs={class:"flex items-center justify-between gap-3 text-sm"},ps={class:"inline-flex items-center gap-1.5 text-muted-foreground"},fs={class:"font-medium tabular-nums"},ms={class:"h-2 overflow-hidden rounded-full border border-border/70 bg-muted/60"},vs={class:"text-sm text-muted-foreground"},hs={key:0,class:"mt-4 flex items-center justify-end"},gs=E({__name:"StateMigrationOverlay",setup(s){const{status:t,initialized:a,isBlocking:n,refreshStatus:l}=ss(),i=Ut("(prefers-reduced-motion: reduce)"),o=B(()=>Math.max(0,Math.min(100,t.value.percent))),r=B(()=>`${o.value}%`),f=B(()=>{const m=t.value.totalRows,v=t.value.processedRows;return m<=0?"Preparing migration...":`${v} of ${m} PRD states migrated`}),h=B(()=>t.value.state==="failed"?t.value.errorMessage||"Migration failed before completion.":t.value.currentSlug?`Migrating ${t.value.currentSlug}`:"Preparing migration steps"),b=B(()=>a.value&&n.value);return(m,v)=>(u(),_(Ot,{"enter-active-class":"transition-all duration-300 ease-[var(--ease-out-cubic)] motion-reduce:transition-none","enter-from-class":"opacity-0 scale-[0.98]","leave-active-class":"transition-all duration-200 ease-[var(--ease-out-cubic)] motion-reduce:transition-none","leave-to-class":"opacity-0"},{default:c(()=>[e(b)?(u(),S("div",os,[d("div",ns,[d("div",ls,[d("div",rs,[e(t).state==="running"?(u(),_(e(ut),{key:0,class:oe(["size-5 text-primary",e(i)?"":"animate-spin"])},null,8,["class"])):(u(),_(e(Xt),{key:1,class:"size-5 text-destructive"}))]),d("div",is,[v[0]||(v[0]=d("p",{class:"text-sm font-semibold uppercase tracking-[0.09em] text-muted-foreground"},"Data upgrade",-1)),d("h2",us,O(e(t).state==="running"?"One-time migration in progress":"Migration needs attention"),1),v[1]||(v[1]=d("p",{class:"text-sm text-muted-foreground"}," Steward is upgrading legacy PRD progress data to the latest format. This runs once per local database. ",-1))])]),d("div",ds,[d("div",cs,[d("span",ps,[p(e(ba),{class:"size-3.5"}),G(" "+O(e(f)),1)]),d("span",fs,O(e(o))+"%",1)]),d("div",ms,[d("div",{class:oe(["migration-progress-fill h-full rounded-full motion-reduce:transition-none",e(i)?"":"migration-progress-fill--animated"]),style:It({width:e(r)})},null,6)]),d("p",vs,O(e(h)),1)]),e(t).state==="failed"?(u(),S("div",hs,[p(e(ce),{size:"sm",variant:"outline",onClick:e(l)},{default:c(()=>[...v[2]||(v[2]=[G(" Retry status check ",-1)])]),_:1},8,["onClick"])])):F("",!0)])])):F("",!0)]),_:1}))}}),ys=Object.assign(gs,{__name:"LayoutStateMigrationOverlay"}),_s={class:"flex items-center gap-2 truncate"},bs={class:"truncate"},xs={key:0,class:"absolute top-full right-0 z-[9999] mt-1 w-[280px] rounded-md border bg-popover p-1 text-popover-foreground shadow-md"},ws={class:"max-h-[200px] overflow-y-auto"},ks=["aria-selected","onClick"],Cs={class:"flex flex-1 flex-col gap-0.5 overflow-hidden text-left"},Ss={class:"truncate font-medium"},$s={class:"truncate text-xs text-muted-foreground"},Rs=["onClick"],Es={key:1,class:"px-2 py-1.5 text-sm text-muted-foreground"},As={key:2,class:"my-1 h-px bg-border"},Bs={class:"space-y-2"},Ds={class:"flex gap-2"},Ps={key:0,class:"text-sm text-destructive"},Ts={key:0,class:"space-y-2 rounded-md border p-3"},Is={class:"flex items-center gap-2 text-sm"},Os=["disabled"],Ms={class:"flex-1 truncate font-mono text-xs text-muted-foreground"},Vs={class:"max-h-[200px] overflow-y-auto"},Ls={key:0,class:"py-2 text-center text-sm text-muted-foreground"},Fs={key:1,class:"py-2 text-center text-sm text-muted-foreground"},qs=["onClick"],zs={class:"truncate"},js={key:0},Ks={key:1},Us=E({__name:"RepoSelector",setup(s,{expose:t}){const a=nt(),n=Ke(),{repos:l,currentRepo:i,currentRepoId:o,selectRepo:r,addRepo:f,removeRepo:h}=De(),{showSuccess:b}=it(),m=Le("prd-show-archived",()=>!1),v=C(!1),k=C(""),g=C(null);Ht(g,()=>{v.value&&(v.value=!1,k.value="")}),pe(()=>n.fullPath,()=>{v.value=!1,k.value=""});async function P(I){r(I),v.value=!1,k.value="";try{const x=await J(I);x?a.push(`/${I}/${x}`):a.push("/")}catch{a.push("/")}}async function J(I){return(await $fetch(`/api/repos/${I}/prds`,{query:m.value?{includeArchived:"1"}:void 0}))?.[0]?.slug||null}function Z(){v.value=!1,ae.value=!0}const j=C(!1),w=C(""),$=C(null),A=C([]),X=C(!1),M=B(()=>!!$.value&&$.value!==w.value);async function ee(I){X.value=!0;try{const x=await $fetch("/api/browse",{query:{path:I||w.value||void 0}});w.value=x.current,$.value=x.parent,A.value=x.directories}catch{}finally{X.value=!1}}function Q(){j.value=!0,ee(N.value||void 0)}function ue(I){N.value=I,j.value=!1,Y.value=null}function he(){const I=$.value;!M.value||!I||ee(I)}const ae=C(!1),N=C(""),Y=C(null),K=C(!1),ne=B(()=>{if(!k.value)return l.value;const I=k.value.toLowerCase();return l.value?.filter(x=>x.name.toLowerCase().includes(I)||x.path.toLowerCase().includes(I))??[]});async function T(){if(!N.value.trim()){Y.value="Please enter a repository path";return}K.value=!0,Y.value=null;try{const I=await f(N.value.trim());if(ae.value=!1,N.value="",b("Repository added",I?.name||"Successfully added repository"),I?.id)try{const x=await J(I.id);x&&a.push(`/${I.id}/${x}`)}catch{}}catch(I){if(I instanceof Error){const x=I;Y.value=x.data?.message||I.message}else Y.value="Failed to add repository"}finally{K.value=!1}}async function z(I,x){I.stopPropagation(),await h(x)}function U(){ae.value=!1,N.value="",Y.value=null}return t({openAddDialog:()=>{ae.value=!0}}),(I,x)=>(u(),S("div",{ref_key:"dropdownRef",ref:g,class:"relative"},[d("button",{type:"button",class:"inline-flex h-8 w-[200px] items-center justify-between gap-2 rounded-md border border-input bg-background px-3 text-sm font-normal ring-offset-background transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",onClick:x[0]||(x[0]=L=>v.value=!e(v))},[d("span",_s,[p(e(ma),{class:"size-4 shrink-0 text-muted-foreground"}),d("span",bs,O(e(i)?.name??"Select repository"),1)]),p(e(Yt),{class:"size-4 shrink-0 opacity-50"})]),e(v)?(u(),S("div",xs,[Mt(d("input",{"onUpdate:modelValue":x[1]||(x[1]=L=>Ce(k)?k.value=L:null),type:"text",placeholder:"Search repositories...",class:"mb-1 h-9 w-full rounded-md border border-input bg-background px-3 text-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"},null,512),[[Vt,e(k)]]),d("div",ws,[e(ne)?.length?(u(!0),S(se,{key:0},le(e(ne),L=>(u(),S("div",{key:L.id,class:"group flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground cursor-pointer",role:"option","aria-selected":e(o)===L.id,onClick:xe=>P(L.id)},[p(e(dt),{class:oe(["size-4 shrink-0",e(o)===L.id?"opacity-100":"opacity-0"])},null,8,["class"]),d("div",Cs,[d("span",Ss,O(L.name),1),d("span",$s,O(L.path),1)]),d("button",{type:"button",class:"ml-auto opacity-0 group-hover:opacity-100 p-1 hover:bg-destructive/10 rounded transition-opacity",title:"Remove repository",onClick:xe=>z(xe,L.id)},[p(e(wa),{class:"size-3.5 text-destructive"})],8,Rs)],8,ks))),128)):(u(),S("div",Es," No repositories found. ")),e(ne)?.length?(u(),S("div",As)):F("",!0),d("button",{type:"button",class:"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm text-muted-foreground hover:bg-accent hover:text-accent-foreground",onClick:Z},[p(e(Zt),{class:"size-4"}),x[5]||(x[5]=d("span",null,"Add repository...",-1))])])])):F("",!0),p(e(ea),{open:e(ae),"onUpdate:open":x[4]||(x[4]=L=>ae.value=L)},{default:c(()=>[p(e(ta),{side:"right",class:"flex h-full flex-col",onEscapeKeyDown:U},{default:c(()=>[p(e(aa),{class:"px-6"},{default:c(()=>[p(e(sa),null,{default:c(()=>[...x[6]||(x[6]=[G("Add Repository",-1)])]),_:1}),p(e(oa),null,{default:c(()=>[...x[7]||(x[7]=[G(" Enter the absolute path to a repository containing PRD documents. ",-1)])]),_:1})]),_:1}),d("form",{id:"add-repo-form",class:"min-h-0 flex-1 space-y-4 overflow-y-auto px-6",onSubmit:$e(T,["prevent"])},[d("div",Bs,[x[8]||(x[8]=d("label",{for:"repo-path",class:"text-sm font-medium"}," Repository Path ",-1)),d("div",Ds,[p(e(va),{id:"repo-path",modelValue:e(N),"onUpdate:modelValue":x[2]||(x[2]=L=>Ce(N)?N.value=L:null),placeholder:"/path/to/your/project","aria-invalid":!!e(Y),disabled:e(K),class:"flex-1"},null,8,["modelValue","aria-invalid","disabled"]),p(e(ce),{type:"button",variant:"outline",size:"icon",disabled:e(K),onClick:Q},{default:c(()=>[p(e(je),{class:"size-4"})]),_:1},8,["disabled"])]),e(Y)?(u(),S("p",Ps,O(e(Y)),1)):F("",!0),x[9]||(x[9]=d("p",{class:"text-xs text-muted-foreground"},[G(" The repository should contain a "),d("code",{class:"rounded bg-muted px-1"},"docs/prd/"),G(" directory with markdown files. ")],-1))]),e(j)?(u(),S("div",Ts,[d("div",Is,[d("button",{type:"button",class:"inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-xs text-muted-foreground hover:bg-accent hover:text-foreground disabled:pointer-events-none disabled:opacity-50",disabled:!e(M),onClick:he},[p(e(ga),{class:"size-3"}),x[10]||(x[10]=G(" Up ",-1))],8,Os),d("span",Ms,O(e(w)),1),p(e(ce),{type:"button",variant:"ghost",size:"sm",class:"h-7 text-xs",onClick:x[3]||(x[3]=L=>ue(e(w)))},{default:c(()=>[...x[11]||(x[11]=[G(" Select ",-1)])]),_:1})]),d("div",Vs,[e(X)?(u(),S("div",Ls," Loading... ")):e(A).length?(u(!0),S(se,{key:2},le(e(A),L=>(u(),S("button",{key:L.path,type:"button",class:"flex w-full items-center gap-2 rounded px-2 py-1 text-sm hover:bg-accent",onClick:xe=>ee(L.path)},[p(e(je),{class:"size-4 text-muted-foreground"}),d("span",zs,O(L.name),1)],8,qs))),128)):(u(),S("div",Fs," No subdirectories "))])])):F("",!0)],32),p(e(na),{class:"px-6 pb-6"},{default:c(()=>[p(e(ce),{type:"button",variant:"outline",disabled:e(K),onClick:U},{default:c(()=>[...x[12]||(x[12]=[G(" Cancel ",-1)])]),_:1},8,["disabled"]),p(e(ce),{type:"submit",form:"add-repo-form",disabled:e(K)},{default:c(()=>[e(K)?(u(),S("span",js,"Adding...")):(u(),S("span",Ks,"Add Repository"))]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["open"])],512))}}),Hs=Object.assign(Us,{__name:"LayoutRepoSelector"}),Ns=E({__name:"Switch",props:{defaultValue:{type:Boolean},modelValue:{type:[Boolean,null]},disabled:{type:Boolean},id:{},value:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},class:{}},emits:["update:modelValue"],setup(s,{emit:t}){const a=s,n=t,l=te(a,"class"),i=ve(l,n);return(o,r)=>(u(),_(e(Ya),q({"data-slot":"switch"},e(i),{class:e(W)("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-colors duration-150 ease-[var(--ease-out-cubic)] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 motion-reduce:transition-none",a.class)}),{default:c(f=>[p(e(es),{"data-slot":"switch-thumb",class:oe(e(W)("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform duration-150 ease-[var(--ease-in-out-cubic)] will-change-transform motion-reduce:transition-none data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0"))},{default:c(()=>[V(o.$slots,"thumb",Ae(Be(f)))]),_:2},1032,["class"])]),_:3},16,["class"]))}}),Gs=Object.assign(Ns,{__name:"UiSwitch"}),Ws={class:"flex h-full w-64 flex-col border-r border-border bg-background"},Qs={class:"p-2"},Js={class:"flex h-10 items-center justify-between gap-2 px-2"},Xs={class:"flex items-center gap-2 whitespace-nowrap text-xs text-muted-foreground"},Ys={key:1,class:"flex items-center justify-center py-8"},Zs={key:2,class:"px-2 py-8 text-center"},eo={key:3,class:"px-2 py-8 text-center"},to={key:4,class:"px-2 py-8 text-center"},ao={class:"mt-2 text-sm text-muted-foreground"},so={class:"mt-1 text-xs text-muted-foreground/70"},oo={key:5,class:"space-y-1"},no={class:"flex-1 truncate"},lo=E({__name:"Sidebar",setup(s){const t=Ke(),{prds:a,prdsStatus:n,showArchived:l,setShowArchived:i,refreshPrds:o}=He(),{currentRepoId:r}=De(),f=B(()=>t.params.prd);function h(v){return f.value===v}const b=B(()=>r.value?`/${r.value}/repo-graph`:"/"),m=B(()=>r.value?t.path===`/${r.value}/repo-graph`:!1);return(v,k)=>{const g=ya;return u(),S("aside",Ws,[p(e(la),{class:"flex-1"},{default:c(()=>[d("div",Qs,[e(r)?(u(),_(g,{key:0,to:e(b),class:oe(["group mb-2 flex items-center gap-3 rounded-md px-3 py-2 text-sm transition-colors",[e(m)?"bg-accent text-accent-foreground":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"]])},{default:c(()=>[p(e(ct),{class:"size-4 shrink-0"}),k[0]||(k[0]=d("span",{class:"flex-1 truncate"},"Repo Graph",-1))]),_:1},8,["to","class"])):F("",!0),d("div",Js,[k[2]||(k[2]=d("h2",{class:"text-sm font-medium text-muted-foreground"},"Documents",-1)),d("div",Xs,[k[1]||(k[1]=d("span",{id:"sidebar-show-archived-label"},"Show archived",-1)),p(e(Gs),{"model-value":e(l),"aria-labelledby":"sidebar-show-archived-label","onUpdate:modelValue":e(i)},null,8,["model-value","onUpdate:modelValue"])])]),e(n)==="pending"?(u(),S("div",Ys,[p(e(ut),{class:"size-5 animate-spin text-muted-foreground"})])):e(r)?e(n)==="error"?(u(),S("div",eo,[p(e(ra),{class:"mx-auto size-8 text-destructive/50"}),k[5]||(k[5]=d("p",{class:"mt-2 text-sm text-muted-foreground"}," Failed to load PRDs ",-1)),p(e(ce),{variant:"ghost",size:"sm",class:"mt-2",onClick:e(o)},{default:c(()=>[p(e(pt),{class:"mr-1 size-3"}),k[4]||(k[4]=G(" Retry ",-1))]),_:1},8,["onClick"])])):e(a)?.length?(u(),S("nav",oo,[(u(!0),S(se,null,le(e(a),P=>(u(),_(g,{key:P.slug,to:`/${e(r)}/${P.slug}`,class:oe(["group flex items-center gap-3 rounded-md px-3 py-2 text-sm transition-colors",[h(P.slug)?"bg-accent text-accent-foreground":P.archived?"text-muted-foreground/75 hover:bg-accent/40 hover:text-foreground":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"]])},{default:c(()=>[p(e(ze),{class:"size-4 shrink-0"}),d("span",no,O(P.name),1),P.archived?(u(),_(e(Ze),{key:0,variant:"outline",class:"shrink-0 text-[10px] uppercase tracking-wide"},{default:c(()=>[...k[6]||(k[6]=[G(" Archived ",-1)])]),_:1})):F("",!0),P.hasState&&P.taskCount?(u(),_(e(Ze),{key:1,variant:"secondary",class:"shrink-0 text-xs"},{default:c(()=>[G(O(P.completedCount??0)+"/"+O(P.taskCount),1)]),_:2},1024)):F("",!0)]),_:2},1032,["to","class"]))),128))])):(u(),S("div",to,[p(e(ze),{class:"mx-auto size-8 text-muted-foreground/50"}),d("p",ao,O(e(l)?"No PRDs found":"No active PRDs found"),1),d("p",so,O(e(l)?"Add .md files to docs/prd/":"Archived PRDs are hidden. Use the archive toggle above."),1)])):(u(),S("div",Zs,[...k[3]||(k[3]=[d("p",{class:"text-sm text-muted-foreground"}," Select a repository to view PRDs ",-1)])]))])]),_:1})])}}}),ro=Object.assign(lo,{__name:"LayoutSidebar"}),io=E({__name:"Command",props:{modelValue:{default:""},defaultValue:{},multiple:{type:Boolean},orientation:{},dir:{},disabled:{type:Boolean},selectionBehavior:{},highlightOnHover:{type:Boolean},by:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},class:{},defaultSearch:{default:""}},emits:["update:modelValue","highlight","entryFocus","leave"],setup(s,{emit:t}){const a=s,n=t,l=te(a,"class"),i=ve(l,n),o=C(new Map),r=C(new Map),{contains:f}=Ca({sensitivity:"base"}),h=Lt({search:a.defaultSearch||"",filtered:{count:0,items:new Map,groups:new Set}});pe(()=>a.defaultSearch,m=>{m!==void 0&&(h.search=m)});function b(){if(!h.search){h.filtered.count=o.value.size;return}h.filtered.groups=new Set;let m=0;for(const[v,k]of o.value){const g=f(k,h.search);h.filtered.items.set(v,g?1:0),g&&m++}for(const[v,k]of r.value)for(const g of k)if(h.filtered.items.get(g)>0){h.filtered.groups.add(v);break}h.filtered.count=m}return pe(()=>h.search,()=>{b()}),pe(()=>o.value.size,()=>{h.search&&b()}),Mo({allItems:o,allGroups:r,filterState:h}),(m,v)=>(u(),_(e(Ia),q({"data-slot":"command"},e(i),{class:e(W)("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",a.class)}),{default:c(()=>[V(m.$slots,"default")]),_:3},16,["class"]))}}),uo=Object.assign(io,{__name:"UiCommand"}),co=E({__name:"Dialog",props:{open:{type:Boolean},defaultOpen:{type:Boolean},modal:{type:Boolean}},emits:["update:open"],setup(s,{emit:t}){const l=ve(s,t);return(i,o)=>(u(),_(e(ia),q({"data-slot":"dialog"},e(l)),{default:c(r=>[V(i.$slots,"default",Ae(Be(r)))]),_:3},16))}}),kt=Object.assign(co,{__name:"UiDialog"}),po=E({__name:"DialogClose",props:{asChild:{type:Boolean},as:{}},setup(s){const t=s;return(a,n)=>(u(),_(e(Ge),q({"data-slot":"dialog-close"},t),{default:c(()=>[V(a.$slots,"default")]),_:3},16))}});Object.assign(po,{__name:"UiDialogClose"});const fo=E({__name:"DialogOverlay",props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(s){const t=s,a=te(t,"class");return(n,l)=>(u(),_(e(ft),q({"data-slot":"dialog-overlay"},e(a),{class:e(W)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80",t.class)}),{default:c(()=>[V(n.$slots,"default")]),_:3},16,["class"]))}}),mo=Object.assign(fo,{__name:"UiDialogOverlay"}),vo=E({inheritAttrs:!1,__name:"DialogContent",props:{forceMount:{type:Boolean},disableOutsidePointerEvents:{type:Boolean},asChild:{type:Boolean},as:{},class:{},showCloseButton:{type:Boolean,default:!0}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(s,{emit:t}){const a=s,n=t,l=te(a,"class"),i=ve(l,n);return(o,r)=>(u(),_(e(mt),null,{default:c(()=>[p(mo),p(e(vt),q({"data-slot":"dialog-content"},{...o.$attrs,...e(i)},{class:e(W)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",a.class)}),{default:c(()=>[V(o.$slots,"default"),s.showCloseButton?(u(),_(e(Ge),{key:0,"data-slot":"dialog-close",class:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"},{default:c(()=>[p(e(ht)),r[0]||(r[0]=d("span",{class:"sr-only"},"Close",-1))]),_:1})):F("",!0)]),_:3},16,["class"])]),_:3}))}}),Ct=Object.assign(vo,{__name:"UiDialogContent"}),ho=E({__name:"DialogDescription",props:{asChild:{type:Boolean},as:{},class:{}},setup(s){const t=s,a=te(t,"class"),n=Te(a);return(l,i)=>(u(),_(e(ua),q({"data-slot":"dialog-description"},e(n),{class:e(W)("text-muted-foreground text-sm",t.class)}),{default:c(()=>[V(l.$slots,"default")]),_:3},16,["class"]))}}),St=Object.assign(ho,{__name:"UiDialogDescription"}),go=E({__name:"DialogFooter",props:{class:{}},setup(s){const t=s;return(a,n)=>(u(),S("div",{"data-slot":"dialog-footer",class:oe(e(W)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",t.class))},[V(a.$slots,"default")],2))}});Object.assign(go,{__name:"UiDialogFooter"});const yo=E({__name:"DialogHeader",props:{class:{}},setup(s){const t=s;return(a,n)=>(u(),S("div",{"data-slot":"dialog-header",class:oe(e(W)("flex flex-col gap-2 text-center sm:text-left",t.class))},[V(a.$slots,"default")],2))}}),$t=Object.assign(yo,{__name:"UiDialogHeader"}),_o=E({inheritAttrs:!1,__name:"DialogScrollContent",props:{forceMount:{type:Boolean},disableOutsidePointerEvents:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(s,{emit:t}){const a=s,n=t,l=te(a,"class"),i=ve(l,n);return(o,r)=>(u(),_(e(mt),null,{default:c(()=>[p(e(ft),{class:"fixed inset-0 z-50 grid place-items-center overflow-y-auto bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"},{default:c(()=>[p(e(vt),q({class:e(W)("relative z-50 grid w-full max-w-lg my-8 gap-4 border border-border bg-background p-6 shadow-lg duration-200 sm:rounded-lg md:w-full",a.class)},{...o.$attrs,...e(i)},{onPointerDownOutside:r[0]||(r[0]=f=>{const h=f.detail.originalEvent,b=h.target;(h.offsetX>b.clientWidth||h.offsetY>b.clientHeight)&&f.preventDefault()})}),{default:c(()=>[V(o.$slots,"default"),p(e(Ge),{class:"absolute top-4 right-4 p-0.5 transition-colors rounded-md hover:bg-secondary"},{default:c(()=>[p(e(ht),{class:"w-4 h-4"}),r[1]||(r[1]=d("span",{class:"sr-only"},"Close",-1))]),_:1})]),_:3},16,["class"])]),_:3})]),_:3}))}});Object.assign(_o,{__name:"UiDialogScrollContent"});const bo=E({__name:"DialogTitle",props:{asChild:{type:Boolean},as:{},class:{}},setup(s){const t=s,a=te(t,"class"),n=Te(a);return(l,i)=>(u(),_(e(da),q({"data-slot":"dialog-title"},e(n),{class:e(W)("text-lg leading-none font-semibold",t.class)}),{default:c(()=>[V(l.$slots,"default")]),_:3},16,["class"]))}}),Rt=Object.assign(bo,{__name:"UiDialogTitle"}),xo=E({__name:"DialogTrigger",props:{asChild:{type:Boolean},as:{}},setup(s){const t=s;return(a,n)=>(u(),_(e(ca),q({"data-slot":"dialog-trigger"},t),{default:c(()=>[V(a.$slots,"default")]),_:3},16))}});Object.assign(xo,{__name:"UiDialogTrigger"});const wo=E({__name:"CommandDialog",props:{open:{type:Boolean},defaultOpen:{type:Boolean},modal:{type:Boolean},title:{default:"Command Palette"},description:{default:"Search for a command to run..."},defaultSearch:{default:""}},emits:["update:open"],setup(s,{emit:t}){const l=ve(s,t);return(i,o)=>(u(),_(e(kt),Ae(Be(e(l))),{default:c(r=>[p(e(Ct),{class:"overflow-hidden p-0","show-close-button":!1},{default:c(()=>[p(e($t),{class:"sr-only"},{default:c(()=>[p(e(Rt),null,{default:c(()=>[G(O(s.title),1)]),_:1}),p(e(St),null,{default:c(()=>[G(O(s.description),1)]),_:1})]),_:1}),p(uo,{"default-search":s.defaultSearch},{default:c(()=>[V(i.$slots,"default",Ae(Be(r)))]),_:2},1032,["default-search"])]),_:2},1024)]),_:3},16))}}),ko=Object.assign(wo,{__name:"UiCommandDialog"}),Co=E({__name:"CommandEmpty",props:{asChild:{type:Boolean},as:{},class:{}},setup(s){const t=s,a=te(t,"class"),{filterState:n}=Ie(),l=B(()=>!!n.search&&n.filtered.count===0);return(i,o)=>l.value?(u(),_(e(re),q({key:0,"data-slot":"command-empty"},e(a),{class:e(W)("py-6 text-center text-sm",t.class)}),{default:c(()=>[V(i.$slots,"default")]),_:3},16,["class"])):F("",!0)}}),So=Object.assign(Co,{__name:"UiCommandEmpty"}),$o=E({__name:"CommandGroup",props:{asChild:{type:Boolean},as:{},class:{},heading:{}},setup(s){const t=s,a=te(t,"class"),{allGroups:n,filterState:l}=Ie(),i=Pe(),o=B(()=>l.search?l.filtered.groups.has(i):!0);return Lo({id:i}),ie(()=>{n.value.has(i)||n.value.set(i,new Set)}),fe(()=>{n.value.delete(i)}),(r,f)=>(u(),_(e(ja),q(e(a),{id:e(i),"data-slot":"command-group",class:e(W)("text-foreground overflow-hidden p-1",t.class),hidden:o.value?void 0:!0}),{default:c(()=>[s.heading?(u(),_(e(Ua),{key:0,"data-slot":"command-group-heading",class:"px-2 py-1.5 text-xs font-medium text-muted-foreground"},{default:c(()=>[G(O(s.heading),1)]),_:1})):F("",!0),V(r.$slots,"default")]),_:3},16,["id","class","hidden"]))}}),Ve=Object.assign($o,{__name:"UiCommandGroup"}),Ro={"data-slot":"command-input-wrapper",class:"flex h-9 items-center gap-2 border-b px-3"},Eo=E({inheritAttrs:!1,__name:"CommandInput",props:{modelValue:{},autoFocus:{type:Boolean},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(s){const t=s,a=te(t,"class"),n=Te(a),{filterState:l}=Ie(),i=C(null);return ie(()=>{ye(()=>{const o=i.value?.$el;if(o&&l.search){const r=l.search.length;o.setSelectionRange(r,r)}})}),(o,r)=>(u(),S("div",Ro,[p(e(xa),{class:"size-4 shrink-0 opacity-50"}),p(e(La),q({ref_key:"inputRef",ref:i},{...e(n),...o.$attrs},{modelValue:e(l).search,"onUpdate:modelValue":r[0]||(r[0]=f=>e(l).search=f),"data-slot":"command-input","auto-focus":"",class:e(W)("placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",t.class)}),null,16,["modelValue","class"])]))}}),Ao=Object.assign(Eo,{__name:"UiCommandInput"}),Bo=E({__name:"CommandItem",props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},emits:["select"],setup(s,{emit:t}){const a=s,n=t,l=te(a,"class"),i=ve(l,n),o=Pe(),{filterState:r,allItems:f,allGroups:h}=Ie(),b=Vo(),m=B(()=>{if(r.search){const g=r.filtered.items.get(o);return g===void 0?!0:g>0}else return!0}),v=C(),k=Nt(v);return ie(()=>{if(!(k.value instanceof HTMLElement))return;f.value.set(o,k.value.textContent??a.value?.toString()??"");const g=b?.id;g&&(h.value.has(g)?h.value.get(g)?.add(o):h.value.set(g,new Set([o])))}),fe(()=>{f.value.delete(o)}),(g,P)=>m.value?(u(),_(e(Wa),q({key:0},e(i),{id:e(o),ref_key:"itemRef",ref:v,"data-slot":"command-item",class:e(W)("data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",a.class),onSelect:P[0]||(P[0]=()=>{e(r).search=""})}),{default:c(()=>[V(g.$slots,"default")]),_:3},16,["id","class"])):F("",!0)}}),de=Object.assign(Bo,{__name:"UiCommandItem"}),Do={role:"presentation"},Po=E({__name:"CommandList",props:{asChild:{type:Boolean},as:{},class:{}},setup(s){const t=s,a=te(t,"class"),n=Te(a);return(l,i)=>(u(),_(e(Ma),q({"data-slot":"command-list"},e(n),{class:e(W)("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto scrollbar-none",t.class)}),{default:c(()=>[d("div",Do,[V(l.$slots,"default")])]),_:3},16,["class"]))}}),To=Object.assign(Po,{__name:"UiCommandList"}),Io=E({__name:"CommandSeparator",props:{orientation:{},decorative:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(s){const t=s,a=te(t,"class");return(n,l)=>(u(),_(e(pa),q({"data-slot":"command-separator"},e(a),{class:e(W)("bg-border -mx-1 h-px",t.class)}),{default:c(()=>[V(n.$slots,"default")]),_:3},16,["class"]))}}),tt=Object.assign(Io,{__name:"UiCommandSeparator"}),Oo=E({__name:"CommandShortcut",props:{class:{}},setup(s){const t=s;return(a,n)=>(u(),S("span",{"data-slot":"command-shortcut",class:oe(e(W)("text-muted-foreground ml-auto text-xs tracking-widest",t.class))},[V(a.$slots,"default")],2))}});Object.assign(Oo,{__name:"UiCommandShortcut"});const[Ie,Mo]=be("Command"),[Vo,Lo]=be("CommandGroup"),Fo={class:"flex items-center gap-1"},qo={key:0,class:"text-[10px] uppercase tracking-wide text-muted-foreground"},zo={class:"flex-1"},jo={class:"flex-1"},Ko={class:"ml-auto flex items-center gap-1"},Uo={class:"inline-flex h-5 min-w-5 items-center justify-center rounded border border-border bg-muted px-1.5 font-mono text-[10px] text-muted-foreground"},Ho={class:"flex-1"},No={class:"ml-auto flex items-center gap-1"},Go={class:"inline-flex h-5 min-w-5 items-center justify-center rounded border border-border bg-muted px-1.5 font-mono text-[10px] text-muted-foreground"},Wo={class:"ml-auto flex items-center gap-1"},Qo={class:"inline-flex h-5 min-w-5 items-center justify-center rounded border border-border bg-muted px-1.5 font-mono text-[10px] text-muted-foreground"},Jo={class:"flex-1"},Xo=E({__name:"CommandPalette",props:{open:{type:Boolean,default:!1},openModifiers:{},filter:{default:""},filterModifiers:{}},emits:Ft(["openShortcutsHelp"],["update:open","update:filter"]),setup(s,{emit:t}){const a=Fe(s,"open"),n=Fe(s,"filter"),l=t,i=nt(),{themeMode:o,cycleThemeMode:r}=lt(),{prds:f,showArchived:h,toggleShowArchived:b}=He(),{repos:m,currentRepoId:v,selectRepo:k,refreshGitRepos:g}=De(),{showSuccess:P,showError:J}=it(),Z=["document","board","graph"],j={document:"Document",board:"Task Board",graph:"Graph"},w=C("document");{const T=localStorage.getItem("prd-viewer-tab");(T==="document"||T==="board"||T==="graph")&&(w.value=T)}function $(T){T.key!=="prd-viewer-tab"||!T.newValue||(T.newValue==="document"||T.newValue==="board"||T.newValue==="graph")&&(w.value=T.newValue)}ie(()=>{window.addEventListener("storage",$)}),fe(()=>{window.removeEventListener("storage",$)});const A=B(()=>{const T=Z.indexOf(w.value),z=T>=0?T:0;return Z[(z+1)%Z.length]}),X=B(()=>j[A.value]);function M(T){v.value&&(i.push(`/${v.value}/${T}`),a.value=!1)}function ee(T){k(T),i.push("/"),a.value=!1}function Q(){r(),a.value=!1}function ue(){const T=A.value;w.value=T,localStorage.setItem("prd-viewer-tab",T),window.dispatchEvent(new StorageEvent("storage",{key:"prd-viewer-tab",newValue:T})),a.value=!1}function he(){a.value=!1,l("openShortcutsHelp")}function ae(){b(),a.value=!1}const N=C(!1);async function Y(){if(!(!v.value||N.value)){N.value=!0,a.value=!1;try{const T=await g(v.value);P(`Discovered ${T.discovered} git repositories`)}catch{J("Failed to refresh git repos")}finally{N.value=!1}}}pe(a,T=>{T||(n.value="")});const K=B(()=>navigator.platform.toUpperCase().indexOf("MAC")>=0),ne=B(()=>K.value?"⌘":"Ctrl");return(T,z)=>(u(),_(e(ko),{open:a.value,"onUpdate:open":z[0]||(z[0]=U=>a.value=U),"default-search":n.value},{default:c(()=>[p(e(Ao),{placeholder:"Type a command or search..."}),p(e(To),null,{default:c(()=>[p(e(So),null,{default:c(()=>[...z[1]||(z[1]=[G("No results found.",-1)])]),_:1}),e(f)?.length?(u(),_(e(Ve),{key:0,heading:"Documents"},{default:c(()=>[(u(!0),S(se,null,le(e(f),U=>(u(),_(e(de),{key:U.slug,value:`PRD: ${U.name}`,onSelect:I=>M(U.slug)},{default:c(()=>[p(e(ze),{class:"size-4"}),d("span",Fo,[d("span",null,O(U.name),1),U.archived?(u(),S("span",qo,"Archived")):F("",!0)])]),_:2},1032,["value","onSelect"]))),128))]),_:1})):F("",!0),e(f)?.length&&e(m)?.length?(u(),_(e(tt),{key:1})):F("",!0),e(m)?.length?(u(),_(e(Ve),{key:2,heading:"Repositories"},{default:c(()=>[(u(!0),S(se,null,le(e(m),U=>(u(),_(e(de),{key:U.id,value:`repo-${U.id} ${U.name}`,onSelect:I=>ee(U.id)},{default:c(()=>[p(e(je),{class:"size-4"}),d("span",zo,O(U.name),1),U.id===e(v)?(u(),_(e(dt),{key:0,class:"size-4 text-primary"})):F("",!0)]),_:2},1032,["value","onSelect"]))),128))]),_:1})):F("",!0),e(m)?.length?(u(),_(e(tt),{key:3})):F("",!0),p(e(Ve),{heading:"Actions"},{default:c(()=>[p(e(de),{value:"cycle-theme light dark system",onSelect:Q},{default:c(()=>[e(o)==="system"?(u(),_(e(gt),{key:0,class:"size-4"})):e(o)==="light"?(u(),_(e(_t),{key:1,class:"size-4"})):(u(),_(e(yt),{key:2,class:"size-4"})),d("span",jo,"Cycle theme mode ("+O(e(o))+")",1),d("div",Ko,[d("kbd",Uo,O(e(ne)),1),z[2]||(z[2]=d("kbd",{class:"inline-flex h-5 min-w-5 items-center justify-center rounded border border-border bg-muted px-1.5 font-mono text-[10px] text-muted-foreground"},".",-1))])]),_:1}),p(e(de),{value:`switch-tab ${e(X).toLowerCase()}`,onSelect:ue},{default:c(()=>[p(e(ct),{class:"size-4"}),d("span",Ho,"Switch to "+O(e(X)),1),d("div",No,[d("kbd",Go,O(e(ne)),1),z[3]||(z[3]=d("kbd",{class:"inline-flex h-5 min-w-5 items-center justify-center rounded border border-border bg-muted px-1.5 font-mono text-[10px] text-muted-foreground"},"\\",-1))])]),_:1},8,["value"]),p(e(de),{value:"keyboard shortcuts help",onSelect:he},{default:c(()=>[p(e(fa),{class:"size-4"}),z[5]||(z[5]=d("span",{class:"flex-1"},"Keyboard shortcuts",-1)),d("div",Wo,[d("kbd",Qo,O(e(ne)),1),z[4]||(z[4]=d("kbd",{class:"inline-flex h-5 min-w-5 items-center justify-center rounded border border-border bg-muted px-1.5 font-mono text-[10px] text-muted-foreground"},"/",-1))])]),_:1}),e(v)?(u(),_(e(de),{key:0,value:"refresh git repos rescan discover",disabled:e(N),onSelect:Y},{default:c(()=>[p(e(pt),{class:oe(["size-4",{"animate-spin":e(N)}])},null,8,["class"]),z[6]||(z[6]=d("span",{class:"flex-1"},"Refresh git repos",-1))]),_:1},8,["disabled"])):F("",!0),p(e(de),{value:"toggle archived documents",onSelect:ae},{default:c(()=>[p(e(_a),{class:"size-4"}),d("span",Jo,O(e(h)?"Hide archived documents":"Show archived documents"),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["open","default-search"]))}}),Yo=Object.assign(Xo,{__name:"CommandPalette"}),Zo={class:"space-y-6"},en={class:"mb-3 text-sm font-medium text-muted-foreground"},tn={class:"space-y-2"},an={class:"text-sm"},sn={class:"flex items-center gap-1"},on=E({__name:"ShortcutsHelp",props:{open:{type:Boolean,default:!1},openModifiers:{}},emits:["update:open"],setup(s){const t=Fe(s,"open"),a=B(()=>navigator.platform.toUpperCase().indexOf("MAC")>=0),n=B(()=>a.value?"⌘":"Ctrl"),l=B(()=>[{name:"Navigation",shortcuts:[{keys:[n.value,"K"],description:"Open command palette"},{keys:[n.value,"J"],description:"Quick jump to document"}]},{name:"Actions",shortcuts:[{keys:[n.value,"."],description:"Cycle theme mode (light/dark/system)"},{keys:[n.value,"\\"],description:"Cycle Document, Task Board, and Graph tabs"},{keys:[n.value,","],description:"Add repository"}]},{name:"Help",shortcuts:[{keys:[n.value,"/"],description:"Show this help"},{keys:["Esc"],description:"Close dialog or palette"}]}]);return(i,o)=>(u(),_(e(kt),{open:t.value,"onUpdate:open":o[0]||(o[0]=r=>t.value=r)},{default:c(()=>[p(e(Ct),{class:"max-w-md"},{default:c(()=>[p(e($t),null,{default:c(()=>[p(e(Rt),null,{default:c(()=>[...o[1]||(o[1]=[G("Keyboard Shortcuts",-1)])]),_:1}),p(e(St),null,{default:c(()=>[...o[2]||(o[2]=[G(" Quick reference for available keyboard shortcuts. ",-1)])]),_:1})]),_:1}),d("div",Zo,[(u(!0),S(se,null,le(e(l),r=>(u(),S("div",{key:r.name},[d("h3",en,O(r.name),1),d("div",tn,[(u(!0),S(se,null,le(r.shortcuts,f=>(u(),S("div",{key:f.description,class:"flex items-center justify-between"},[d("span",an,O(f.description),1),d("div",sn,[(u(!0),S(se,null,le(f.keys,(h,b)=>(u(),S("kbd",{key:b,class:"inline-flex h-5 min-w-5 items-center justify-center rounded border border-border bg-muted px-1.5 font-mono text-xs font-medium text-muted-foreground"},O(h),1))),128))])]))),128))])]))),128))])]),_:1})]),_:1},8,["open"]))}}),nn=Object.assign(on,{__name:"ShortcutsHelp"});function Et(){const s=document.activeElement;if(!s)return!1;const t=s.tagName.toLowerCase();return t==="input"||t==="textarea"||s.getAttribute("contenteditable")==="true"||s.getAttribute("role")==="textbox"}function ln(s){const t=s.toLowerCase().split("+"),a=t.pop()||"";return{meta:t.includes("meta"),ctrl:t.includes("ctrl"),shift:t.includes("shift"),alt:t.includes("alt"),key:a}}function rn(s,t){const a=s.key.toLowerCase();let n=a===t.key;return t.key==="\\"&&(n=a==="\\"||s.code==="Backslash"),t.key==="/"&&(n=a==="/"||s.code==="Slash"),t.key==="."&&(n=a==="."||s.code==="Period"),t.key===","&&(n=a===","||s.code==="Comma"),n&&s.metaKey===t.meta&&s.ctrlKey===t.ctrl&&s.shiftKey===t.shift&&s.altKey===t.alt}const Ee=[];let at=!1;function un(s){for(const t of Ee)if(rn(s,t.combo)){if(!t.allowInInput&&Et())continue;s.preventDefault(),s.stopPropagation(),t.handler();return}}function st(){at||(document.addEventListener("keydown",un,{capture:!0}),at=!0)}function dn(){ie(()=>{st()});function s(a,n,l){const o={combo:ln(a),handler:n,allowInInput:l?.allowInInput??!1};Ee.push(o),st(),fe(()=>{const r=Ee.indexOf(o);r>-1&&Ee.splice(r,1)})}function t(){return Et()}return{onShortcut:s,isInputFocused:t}}const cn=2e3,pn=2e3;function fn(s){return!s.instanceId||!s.buildId?null:`${s.buildId}:${s.instanceId}`}function mn(s){const t=C(null),a=C(!1),n=C(null),l=C(null),i=C(null),o=C(null),r=C(!1),f=C(!1),h=C(!1);function b(){l.value&&(clearTimeout(l.value),l.value=null)}function m(){i.value&&(clearInterval(i.value),i.value=null)}async function v(){try{const w=await $fetch(`/api/runtime?_=${Date.now()}`);return fn(w)}catch{return null}}async function k(){o.value===null&&(o.value=await v())}async function g(){if(!(r.value||h.value)){r.value=!0;try{const w=await v();if(!w)return;if(!o.value){o.value=w;return}w!==o.value&&(h.value=!0,window.location.reload())}finally{r.value=!1}}}function P(){i.value||(i.value=wt(()=>{g()},pn))}function J(){l.value||(l.value=setTimeout(()=>{l.value=null,Z()},cn))}function Z(){if(!t.value)try{const w=new EventSource("/api/watch");w.onopen=async()=>{a.value=!0,n.value=null,b(),m(),f.value&&(f.value=!1,await g())},w.onmessage=$=>{try{const A=JSON.parse($.data);s(A)}catch{}},w.onerror=()=>{a.value=!1,n.value="Connection lost",f.value=!0,t.value===w&&(w.close(),t.value=null),P(),J()},t.value=w}catch{n.value="Failed to connect",P(),J()}}function j(){b(),m(),f.value=!1,t.value&&(t.value.close(),t.value=null,a.value=!1)}return ie(async()=>{await k(),Z()}),fe(()=>{j()}),{isConnected:a,error:n,connect:Z,disconnect:j}}const vn={class:"min-h-screen bg-background text-foreground"},hn={class:"fixed top-0 left-0 right-0 z-50 h-14 border-b border-border bg-background/95 backdrop-blur-sm supports-[backdrop-filter]:bg-background/80"},gn={class:"flex h-full items-center justify-between px-4 md:px-6"},yn={class:"flex items-center gap-3"},_n={class:"hidden text-xs text-muted-foreground md:inline"},bn={class:"flex items-center gap-3"},xn={class:"flex h-screen pt-14"},wn={class:"flex-1 overflow-auto"},Bn=E({__name:"default",setup(s){const{themeMode:t,cycleThemeMode:a}=lt(),{refreshPrds:n}=He(),{currentRepoId:l}=De(),i=Ke(),o=jt(),r=B(()=>o.public.stewardVersion||"0.0.0"),f=B(()=>o.public.stewardPackageName||"steward"),h=C(null);qt("fileChangeEvent",h);const b=C(!1),m=C(""),v=C(!1),k=C(null),{onShortcut:g}=dn();g("Meta+k",()=>{b.value=!0}),g("Ctrl+k",()=>{b.value=!0}),g("Meta+j",()=>{m.value="PRD: ",b.value=!0}),g("Ctrl+j",()=>{m.value="PRD: ",b.value=!0});function P(){const w=["document","board","graph"],$=localStorage.getItem("prd-viewer-tab")||"document",A=w.indexOf($),X=A>=0?A:0,M=w[(X+1)%w.length]??"document";localStorage.setItem("prd-viewer-tab",M),window.dispatchEvent(new StorageEvent("storage",{key:"prd-viewer-tab",newValue:M}))}g("Meta+\\",P),g("Ctrl+\\",P);function J(){a()}g("Meta+.",J),g("Ctrl+.",J);function Z(){k.value?.openAddDialog()}g("Meta+,",Z),g("Ctrl+,",Z);function j(){v.value=!0}return g("Meta+/",j),g("Ctrl+/",j),g("Meta+Shift+/",j),g("Ctrl+Shift+/",j),mn(w=>{if(w.type==="connected"||!w.category)return;const $=w.category;if(w.repoId!==l.value)return;($==="prd"||$==="tasks")&&n();const A=i.params.prd,X=$==="tasks"||$==="progress",M=$==="prd"&&(!A||w.path?.includes(`/${A}.`)),ee=!!A&&X&&w.path?.includes(`/${A}/`);(X||M||ee)&&(h.value={category:$,path:w.path,timestamp:Date.now()})}),(w,$)=>{const A=ys,X=Hs,M=zt,ee=ro;return u(),S("div",vn,[p(A),p(Yo,{open:e(b),"onUpdate:open":$[0]||($[0]=Q=>Ce(b)?b.value=Q:null),filter:e(m),"onUpdate:filter":$[1]||($[1]=Q=>Ce(m)?m.value=Q:null),onOpenShortcutsHelp:j},null,8,["open","filter"]),p(nn,{open:e(v),"onUpdate:open":$[2]||($[2]=Q=>Ce(v)?v.value=Q:null)},null,8,["open"]),d("header",hn,[d("div",gn,[d("div",yn,[$[3]||($[3]=d("h1",{class:"text-lg font-semibold tracking-tight"}," PRD Viewer ",-1)),d("span",_n,O(e(f))+" v"+O(e(r)),1)]),p(M,null,{fallback:c(()=>[...$[5]||($[5]=[d("div",{class:"flex items-center gap-3"},[d("div",{class:"h-8 w-[200px] animate-pulse rounded-md bg-muted"}),d("div",{class:"size-9 animate-pulse rounded-md bg-muted"})],-1)])]),default:c(()=>[d("div",bn,[p(X,{ref_key:"repoSelectorRef",ref:k},null,512),p(e(ce),{variant:"ghost",size:"icon",class:"size-9",onClick:J},{default:c(()=>[e(t)==="system"?(u(),_(e(gt),{key:0,class:"size-4"})):e(t)==="light"?(u(),_(e(_t),{key:1,class:"size-4"})):(u(),_(e(yt),{key:2,class:"size-4"})),$[4]||($[4]=d("span",{class:"sr-only"},"Cycle theme mode",-1))]),_:1})])]),_:1})])]),d("div",xn,[p(M,null,{fallback:c(()=>[...$[6]||($[6]=[d("aside",{class:"flex h-full w-64 flex-col border-r border-border bg-background"},[d("div",{class:"flex h-12 items-center border-b border-border px-4"},[d("div",{class:"h-4 w-20 animate-pulse rounded bg-muted"})]),d("div",{class:"flex-1 p-2 space-y-2"},[d("div",{class:"h-9 animate-pulse rounded-md bg-muted"}),d("div",{class:"h-9 animate-pulse rounded-md bg-muted"}),d("div",{class:"h-9 animate-pulse rounded-md bg-muted"})])],-1)])]),default:c(()=>[p(ee)]),_:1}),d("main",wn,[V(w.$slots,"default")])])])}}});export{Bn as default};
1
+ import{s as B,l as e,a1 as Dt,g as E,k as pe,o as u,v as _,I as q,c as S,n as L,F as se,r as le,E as ot,G as ye,w as c,x as V,q as C,b as p,Q as _e,p as $e,ad as Pt,B as ie,C as fe,ae as Tt,af as Fe,a as d,y as oe,t as O,d as G,N as It,ag as Ot,j as nt,A as Ke,ah as Mt,ai as Vt,m as Ce,R as Ae,S as Be,a2 as Ft,ab as Le,a9 as lt,ac as Lt,$ as qt,aj as zt,ak as jt}from"./B2ow85x_.js";import{c as me,m as qe,f as Kt,r as rt,g as Ue,P as re,e as Oe,k as Ut,B as ce,u as De,o as Ht,b as it,l as te,d as W,a as He,F as ze,n as Nt}from"./CAMiEhze.js";import{x as Gt,V as Wt,y as Ne,a as Ge,u as Qt,g as Jt,c as be,d as Pe,e as We,z as Xt,L as ut,j as Yt,k as Zt,v as dt,l as ea,t as ta,s as aa,n as sa,o as oa,p as na,q as la,i as ve,S as ra,G as ct,C as ia,R as pt,B as Ze,A as ua,F as Qe,H as ft,I as mt,J as vt,X as ht,h as Te,M as da,N as ca,O as pa,m as fa,K as ma}from"./D3PDtLSF.js";import{F as va,I as ha,a as je}from"./pIWeVmPw.js";import{A as ga}from"./Ce0-nlm9.js";import{_ as ya}from"./LEjJTR7-.js";const _a=me("archive",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]]);const ba=me("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);const gt=me("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);const yt=me("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]);const xa=me("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);const _t=me("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);const wa=me("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);function ka(s,t,a){const n=s.findIndex(r=>qe(r,t)),l=s.findIndex(r=>qe(r,a));if(n===-1||l===-1)return[];const[i,o]=[n,l].sort((r,f)=>r-f);return s.slice(i,o+1)}function Ca(s){const t=B(()=>e(s)),a=B(()=>new Intl.Collator("en",{usage:"search",...t.value}));return{startsWith:(o,r)=>r.length===0?!0:(o=o.normalize("NFC"),r=r.normalize("NFC"),a.value.compare(o.slice(0,r.length),r)===0),endsWith:(o,r)=>r.length===0?!0:(o=o.normalize("NFC"),r=r.normalize("NFC"),a.value.compare(o.slice(-r.length),r)===0),contains:(o,r)=>{if(r.length===0)return!0;o=o.normalize("NFC"),r=r.normalize("NFC");let f=0;const h=r.length;for(;f+h<=o.length;f++){const b=o.slice(f,f+h);if(a.value.compare(r,b)===0)return!0}return!1}}}function bt(s){return B(()=>Dt(s)?!!Kt(s)?.closest("form"):!0)}function Sa(){return{ALT:"Alt",ARROW_DOWN:"ArrowDown",ARROW_LEFT:"ArrowLeft",ARROW_RIGHT:"ArrowRight",ARROW_UP:"ArrowUp",BACKSPACE:"Backspace",CAPS_LOCK:"CapsLock",CONTROL:"Control",DELETE:"Delete",END:"End",ENTER:"Enter",ESCAPE:"Escape",F1:"F1",F10:"F10",F11:"F11",F12:"F12",F2:"F2",F3:"F3",F4:"F4",F5:"F5",F6:"F6",F7:"F7",F8:"F8",F9:"F9",HOME:"Home",META:"Meta",PAGE_DOWN:"PageDown",PAGE_UP:"PageUp",SHIFT:"Shift",SPACE:" ",TAB:"Tab",CTRL:"Control",ASTERISK:"*",SPACE_CODE:"Space"}}function $a(s){const t=rt("",1e3);return{search:t,handleTypeaheadSearch:(l,i)=>{t.value=t.value+l;{const o=Gt(),r=i.map(v=>({...v,textValue:v.value?.textValue??v.ref.textContent?.trim()??""})),f=r.find(v=>v.ref===o),h=r.map(v=>v.textValue),b=Ea(h,t.value,f?.textValue),m=r.find(v=>v.textValue===b);return m&&m.ref.focus(),m?.ref}},resetTypeahead:()=>{t.value=""}}}function Ra(s,t){return s.map((a,n)=>s[(t+n)%s.length])}function Ea(s,t,a){const l=t.length>1&&Array.from(t).every(h=>h===t[0])?t[0]:t,i=a?s.indexOf(a):-1;let o=Ra(s,Math.max(i,0));l.length===1&&(o=o.filter(h=>h!==a));const f=o.find(h=>h.toLowerCase().startsWith(l.toLowerCase()));return f!==a?f:void 0}var Aa=E({inheritAttrs:!1,__name:"VisuallyHiddenInputBubble",props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:"fully-hidden"}},setup(s){const t=s,{primitiveElement:a,currentElement:n}=Ne(),l=B(()=>t.checked??t.value);return pe(l,(i,o)=>{if(!n.value)return;const r=n.value,f=window.HTMLInputElement.prototype,b=Object.getOwnPropertyDescriptor(f,"value").set;if(b&&i!==o){const m=new Event("input",{bubbles:!0}),v=new Event("change",{bubbles:!0});b.call(r,i),r.dispatchEvent(m),r.dispatchEvent(v)}}),(i,o)=>(u(),_(Wt,q({ref_key:"primitiveElement",ref:a},{...t,...i.$attrs},{as:"input"}),null,16))}}),et=Aa,Ba=E({inheritAttrs:!1,__name:"VisuallyHiddenInput",props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:"fully-hidden"}},setup(s){const t=s,a=B(()=>typeof t.value=="object"&&Array.isArray(t.value)&&t.value.length===0&&t.required),n=B(()=>typeof t.value=="string"||typeof t.value=="number"||typeof t.value=="boolean"||t.value===null||t.value===void 0?[{name:t.name,value:t.value}]:typeof t.value=="object"&&Array.isArray(t.value)?t.value.flatMap((l,i)=>typeof l=="object"?Object.entries(l).map(([o,r])=>({name:`${t.name}[${i}][${o}]`,value:r})):{name:`${t.name}[${i}]`,value:l}):t.value!==null&&typeof t.value=="object"&&!Array.isArray(t.value)?Object.entries(t.value).map(([l,i])=>({name:`${t.name}[${l}]`,value:i})):[]);return(l,i)=>(u(),S(se,null,[L(" We render single input if it's required "),a.value?(u(),_(et,q({key:l.name},{...t,...l.$attrs},{name:l.name,value:l.value}),null,16,["name","value"])):(u(!0),S(se,{key:1},le(n.value,o=>(u(),_(et,q({key:o.name},{ref_for:!0},{...t,...l.$attrs},{name:o.name,value:o.value}),null,16,["name","value"]))),128))],2112))}}),xt=Ba;function Da(s,t,a){return s===void 0?!1:Array.isArray(s)?s.some(n=>Se(n,t,a)):Se(s,t,a)}function Se(s,t,a){return s===void 0||t===void 0?!1:typeof s=="string"?s===t:typeof a=="function"?a(s,t):typeof a=="string"?s?.[a]===t?.[a]:qe(s,t)}const[Je,Pa]=be("ListboxRoot");var Ta=E({__name:"ListboxRoot",props:{modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},multiple:{type:Boolean,required:!1},orientation:{type:String,required:!1,default:"vertical"},dir:{type:String,required:!1},disabled:{type:Boolean,required:!1},selectionBehavior:{type:String,required:!1,default:"toggle"},highlightOnHover:{type:Boolean,required:!1},by:{type:[String,Function],required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue","highlight","entryFocus","leave"],setup(s,{expose:t,emit:a}){const n=s,l=a,{multiple:i,highlightOnHover:o,orientation:r,disabled:f,selectionBehavior:h,dir:b}=ot(n),{getItems:m}=Ge({isProvider:!0}),{handleTypeaheadSearch:v}=$a(),{primitiveElement:k,currentElement:g}=Ne(),P=Sa(),J=Qt(b),Z=bt(g),j=C(),w=C(!1),$=C(!0),A=Ue(n,"modelValue",l,{defaultValue:n.defaultValue??(i.value?[]:void 0),passive:n.modelValue===void 0,deep:!0});function X(y){if(w.value=!0,n.multiple){const R=Array.isArray(A.value)?[...A.value]:[],D=R.findIndex(H=>Se(H,y,n.by));n.selectionBehavior==="toggle"?(D===-1?R.push(y):R.splice(D,1),A.value=R):(A.value=[y],j.value=y)}else n.selectionBehavior==="toggle"&&Se(A.value,y,n.by)?A.value=void 0:A.value=y;setTimeout(()=>{w.value=!1},1)}const M=C(null),ee=C(null),Q=C(!1),ue=C(!1),he=Oe(),ae=Oe(),N=Oe();function Y(){return m().map(y=>y.ref).filter(y=>y.dataset.disabled!=="")}function K(y,R=!0){if(!y)return;M.value=y,$.value&&M.value.focus(),R&&M.value.scrollIntoView({block:"nearest"});const D=m().find(H=>H.ref===y);l("highlight",D)}function ne(y){if(Q.value)N.trigger(y);else{const R=m().find(D=>Se(D.value,y,n.by));R&&(M.value=R.ref,K(R.ref))}}function T(y){M.value&&M.value.isConnected&&(y.preventDefault(),y.stopPropagation(),ue.value||M.value.click())}function z(y){if($.value){if(w.value=!0,Q.value)ae.trigger(y);else{const R=y.altKey||y.ctrlKey||y.metaKey;if(R&&y.key==="a"&&i.value){const D=m(),H=D.map(ge=>ge.value);A.value=[...H],y.preventDefault(),K(D[D.length-1].ref)}else if(!R){const D=v(y.key,m());D&&K(D)}}setTimeout(()=>{w.value=!1},1)}}function U(){ue.value=!0}function I(){ye(()=>{ue.value=!1})}function x(){ye(()=>{const y=new KeyboardEvent("keydown",{key:"PageUp"});Xe(y)})}function F(y){const R=M.value;R?.isConnected&&(ee.value=R),M.value=null,l("leave",y)}function xe(y){const R=new CustomEvent("listbox.entryFocus",{bubbles:!1,cancelable:!0});if(y.currentTarget?.dispatchEvent(R),l("entryFocus",R),!R.defaultPrevented)if(ee.value)K(ee.value);else{const D=Y()?.[0];K(D)}}function Xe(y){const R=Jt(y,r.value,J.value);if(!R)return;let D=Y();if(M.value){if(R==="last")D.reverse();else if(R==="prev"||R==="next"){R==="prev"&&D.reverse();const H=D.indexOf(M.value);D=D.slice(H+1)}At(y,D[0])}if(D.length){const H=!M.value&&R==="prev"?D.length-1:0;K(D[H])}if(Q.value)return ae.trigger(y)}function At(y,R){if(!(Q.value||n.selectionBehavior!=="replace"||!i.value||!Array.isArray(A.value)||(y.altKey||y.ctrlKey||y.metaKey)&&!y.shiftKey)&&y.shiftKey){const H=m().filter(we=>we.ref.dataset.disabled!=="");let ge=H.find(we=>we.ref===R)?.value;if(y.key===P.END?ge=H[H.length-1].value:y.key===P.HOME&&(ge=H[0].value),!ge||!j.value)return;const Bt=ka(H.map(we=>we.value),j.value,ge);A.value=Bt}}async function Ye(y){if(await ye(),Q.value)he.trigger(y);else{const R=Y(),D=R.find(H=>H.dataset.state==="checked");D?K(D):R.length&&K(R[0])}}return pe(A,()=>{w.value||ye(()=>{Ye()})},{immediate:!0,deep:!0}),t({highlightedElement:M,highlightItem:ne,highlightFirstItem:x,highlightSelected:Ye,getItems:m}),Pa({modelValue:A,onValueChange:X,multiple:i,orientation:r,dir:J,disabled:f,highlightOnHover:o,highlightedElement:M,isVirtual:Q,virtualFocusHook:he,virtualKeydownHook:ae,virtualHighlightHook:N,by:n.by,firstValue:j,selectionBehavior:h,focusable:$,onLeave:F,onEnter:xe,changeHighlight:K,onKeydownEnter:T,onKeydownNavigation:Xe,onKeydownTypeAhead:z,onCompositionStart:U,onCompositionEnd:I,highlightFirstItem:x}),(y,R)=>(u(),_(e(re),{ref_key:"primitiveElement",ref:k,as:y.as,"as-child":y.asChild,dir:e(J),"data-disabled":e(f)?"":void 0,onPointerleave:F,onFocusout:R[0]||(R[0]=async D=>{const H=D.relatedTarget||D.target;await ye(),M.value&&e(g)&&!e(g).contains(H)&&F(D)})},{default:c(()=>[V(y.$slots,"default",{modelValue:e(A)}),e(Z)&&y.name?(u(),_(e(xt),{key:0,name:y.name,value:e(A),disabled:e(f),required:y.required},null,8,["name","value","disabled","required"])):L("v-if",!0)]),_:3},8,["as","as-child","dir","data-disabled"]))}}),Ia=Ta,Oa=E({__name:"ListboxContent",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(s){const{CollectionSlot:t}=Ge(),a=Je(),n=rt(!1,10);return(l,i)=>(u(),_(e(t),null,{default:c(()=>[p(e(re),{role:"listbox",as:l.as,"as-child":l.asChild,tabindex:e(a).focusable.value?e(a).highlightedElement.value?"-1":"0":"-1","aria-orientation":e(a).orientation.value,"aria-multiselectable":!!e(a).multiple.value,"data-orientation":e(a).orientation.value,onMousedown:i[0]||(i[0]=$e(o=>n.value=!0,["left"])),onFocus:i[1]||(i[1]=o=>{e(n)||e(a).onEnter(o)}),onKeydown:[i[2]||(i[2]=_e(o=>{e(a).orientation.value==="vertical"&&(o.key==="ArrowLeft"||o.key==="ArrowRight")||e(a).orientation.value==="horizontal"&&(o.key==="ArrowUp"||o.key==="ArrowDown")||(o.preventDefault(),e(a).focusable.value&&e(a).onKeydownNavigation(o))},["down","up","left","right","home","end"])),_e(e(a).onKeydownEnter,["enter"]),e(a).onKeydownTypeAhead]},{default:c(()=>[V(l.$slots,"default")]),_:3},8,["as","as-child","tabindex","aria-orientation","aria-multiselectable","data-orientation","onKeydown"])]),_:3}))}}),Ma=Oa,Va=E({__name:"ListboxFilter",props:{modelValue:{type:String,required:!1},autoFocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"input"}},emits:["update:modelValue"],setup(s,{emit:t}){const a=s,l=Ue(a,"modelValue",t,{defaultValue:"",passive:a.modelValue===void 0}),i=Je(),{primitiveElement:o,currentElement:r}=Ne(),f=B(()=>a.disabled||i.disabled.value||!1),h=C();return Pt(()=>h.value=i.highlightedElement.value?.id),ie(()=>{i.focusable.value=!1,setTimeout(()=>{a.autoFocus&&r.value?.focus()},1)}),fe(()=>{i.focusable.value=!0}),(b,m)=>(u(),_(e(re),{ref_key:"primitiveElement",ref:o,as:b.as,"as-child":b.asChild,value:e(l),disabled:f.value?"":void 0,"data-disabled":f.value?"":void 0,"aria-disabled":f.value??void 0,"aria-activedescendant":h.value,type:"text",onKeydown:[_e($e(e(i).onKeydownNavigation,["prevent"]),["down","up","home","end"]),_e(e(i).onKeydownEnter,["enter"])],onInput:m[0]||(m[0]=v=>{l.value=v.target.value,e(i).highlightFirstItem()}),onCompositionstart:e(i).onCompositionStart,onCompositionend:e(i).onCompositionEnd},{default:c(()=>[V(b.$slots,"default",{modelValue:e(l)})]),_:3},8,["as","as-child","value","disabled","data-disabled","aria-disabled","aria-activedescendant","onKeydown","onCompositionstart","onCompositionend"]))}}),Fa=Va;const[La,qa]=be("ListboxGroup");var za=E({__name:"ListboxGroup",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(s){const t=s,a=Pe(void 0,"reka-listbox-group");return qa({id:a}),(n,l)=>(u(),_(e(re),q({role:"group"},t,{"aria-labelledby":e(a)}),{default:c(()=>[V(n.$slots,"default")]),_:3},16,["aria-labelledby"]))}}),ja=za,Ka=E({__name:"ListboxGroupLabel",props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},setup(s){const t=s,a=La({id:""});return(n,l)=>(u(),_(e(re),q(t,{id:e(a).id}),{default:c(()=>[V(n.$slots,"default")]),_:3},16,["id"]))}}),Ua=Ka;const Ha="listbox.select",[An,Na]=be("ListboxItem");var Ga=E({__name:"ListboxItem",props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},emits:["select"],setup(s,{emit:t}){const a=s,n=t,l=Pe(void 0,"reka-listbox-item"),{CollectionItem:i}=Ge(),{forwardRef:o,currentElement:r}=We(),f=Je(),h=B(()=>r.value===f.highlightedElement.value),b=B(()=>Da(f.modelValue.value,a.value,f.by)),m=B(()=>f.disabled.value||a.disabled);async function v(g){n("select",g),!g?.defaultPrevented&&!m.value&&g&&(f.onValueChange(a.value),f.changeHighlight(r.value))}function k(g){const P={originalEvent:g,value:a.value};Xt(Ha,v,P)}return Na({isSelected:b}),(g,P)=>(u(),_(e(i),{value:g.value},{default:c(()=>[Tt([h.value,b.value],()=>p(e(re),q({id:e(l)},g.$attrs,{ref:e(o),role:"option",tabindex:e(f).focusable.value?h.value?"0":"-1":-1,"aria-selected":b.value,as:g.as,"as-child":g.asChild,disabled:m.value?"":void 0,"data-disabled":m.value?"":void 0,"data-highlighted":h.value?"":void 0,"data-state":b.value?"checked":"unchecked",onClick:k,onKeydown:_e($e(k,["prevent"]),["space"]),onPointermove:P[0]||(P[0]=()=>{e(f).highlightedElement.value!==e(r)&&e(f).highlightOnHover.value&&!e(f).focusable.value&&e(f).changeHighlight(e(r),!1)})}),{default:c(()=>[V(g.$slots,"default")]),_:3},16,["id","tabindex","aria-selected","as","as-child","disabled","data-disabled","data-highlighted","data-state","onKeydown"]),P,1)]),_:3},8,["value"]))}}),Wa=Ga;const[Qa,Ja]=be("SwitchRoot");var Xa=E({__name:"SwitchRoot",props:{defaultValue:{type:Boolean,required:!1},modelValue:{type:[Boolean,null],required:!1,default:void 0},disabled:{type:Boolean,required:!1},id:{type:String,required:!1},value:{type:String,required:!1,default:"on"},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue"],setup(s,{emit:t}){const a=s,n=t,{disabled:l}=ot(a),i=Ue(a,"modelValue",n,{defaultValue:a.defaultValue,passive:a.modelValue===void 0});function o(){l.value||(i.value=!i.value)}const{forwardRef:r,currentElement:f}=We(),h=bt(f),b=B(()=>a.id&&f.value?document.querySelector(`[for="${a.id}"]`)?.innerText:void 0);return Ja({modelValue:i,toggleCheck:o,disabled:l}),(m,v)=>(u(),_(e(re),q(m.$attrs,{id:m.id,ref:e(r),role:"switch",type:m.as==="button"?"button":void 0,value:m.value,"aria-label":m.$attrs["aria-label"]||b.value,"aria-checked":e(i),"aria-required":m.required,"data-state":e(i)?"checked":"unchecked","data-disabled":e(l)?"":void 0,"as-child":m.asChild,as:m.as,disabled:e(l),onClick:o,onKeydown:_e($e(o,["prevent"]),["enter"])}),{default:c(()=>[V(m.$slots,"default",{modelValue:e(i)}),e(h)&&m.name?(u(),_(e(xt),{key:0,type:"checkbox",name:m.name,disabled:e(l),required:m.required,value:m.value,checked:!!e(i)},null,8,["name","disabled","required","value","checked"])):L("v-if",!0)]),_:3},16,["id","type","value","aria-label","aria-checked","aria-required","data-state","data-disabled","as-child","as","disabled","onKeydown"]))}}),Ya=Xa,Za=E({__name:"SwitchThumb",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(s){const t=Qa();return We(),(a,n)=>(u(),_(e(re),{"data-state":e(t).modelValue?.value?"checked":"unchecked","data-disabled":e(t).disabled.value?"":void 0,"as-child":a.asChild,as:a.as},{default:c(()=>[V(a.$slots,"default")]),_:3},8,["data-state","data-disabled","as-child","as"]))}}),es=Za;const wt=globalThis.setInterval,ts=700,as={state:"idle",version:"progress-json-v2",startedAt:null,completedAt:null,totalRows:0,processedRows:0,migratedRows:0,failedRows:0,currentSlug:null,errorMessage:null,percent:0};let ke=null,Me=!1,Re=0;function ss(){const s=Fe("state-migration:status",()=>({...as})),t=Fe("state-migration:initialized",()=>!1),a=B(()=>s.value.state==="running"||s.value.state==="failed");async function n(){if(!Me){Me=!0;try{const o=await $fetch("/api/state-migration/status",{query:{_:Date.now()}});s.value=o,t.value=!0,o.state==="completed"&&i()}catch{t.value=!0}finally{Me=!1}}}function l(){ke||(ke=wt(()=>{n()},ts))}function i(){ke&&(clearInterval(ke),ke=null)}return ie(()=>{Re+=1,n(),l()}),fe(()=>{Re=Math.max(0,Re-1),Re===0&&i()}),{status:s,initialized:t,isBlocking:a,refreshStatus:n}}const os={key:0,class:"fixed inset-0 z-[110] flex items-center justify-center bg-[radial-gradient(circle_at_18%_20%,oklch(0.92_0.03_218_/_0.65),transparent_52%),radial-gradient(circle_at_82%_80%,oklch(0.95_0.04_40_/_0.5),transparent_46%),oklch(0.17_0.02_240_/_0.72)] px-4 backdrop-blur-sm",role:"alert","aria-live":"assertive","aria-busy":"true"},ns={class:"w-full max-w-xl rounded-2xl border border-border/70 bg-background/95 p-6 shadow-2xl md:p-7"},ls={class:"mb-4 flex items-start gap-3"},rs={class:"flex size-11 shrink-0 items-center justify-center rounded-xl border border-border bg-muted/60"},is={class:"space-y-1"},us={class:"text-xl font-semibold tracking-tight"},ds={class:"space-y-3 rounded-xl border border-border/80 bg-card/70 p-4"},cs={class:"flex items-center justify-between gap-3 text-sm"},ps={class:"inline-flex items-center gap-1.5 text-muted-foreground"},fs={class:"font-medium tabular-nums"},ms={class:"h-2 overflow-hidden rounded-full border border-border/70 bg-muted/60"},vs={class:"text-sm text-muted-foreground"},hs={key:0,class:"mt-4 flex items-center justify-end"},gs=E({__name:"StateMigrationOverlay",setup(s){const{status:t,initialized:a,isBlocking:n,refreshStatus:l}=ss(),i=Ut("(prefers-reduced-motion: reduce)"),o=B(()=>Math.max(0,Math.min(100,t.value.percent))),r=B(()=>`${o.value}%`),f=B(()=>{const m=t.value.totalRows,v=t.value.processedRows;return m<=0?"Preparing migration...":`${v} of ${m} PRD states migrated`}),h=B(()=>t.value.state==="failed"?t.value.errorMessage||"Migration failed before completion.":t.value.currentSlug?`Migrating ${t.value.currentSlug}`:"Preparing migration steps"),b=B(()=>a.value&&n.value);return(m,v)=>(u(),_(Ot,{"enter-active-class":"transition-all duration-300 ease-[var(--ease-out-cubic)] motion-reduce:transition-none","enter-from-class":"opacity-0 scale-[0.98]","leave-active-class":"transition-all duration-200 ease-[var(--ease-out-cubic)] motion-reduce:transition-none","leave-to-class":"opacity-0"},{default:c(()=>[e(b)?(u(),S("div",os,[d("div",ns,[d("div",ls,[d("div",rs,[e(t).state==="running"?(u(),_(e(ut),{key:0,class:oe(["size-5 text-primary",e(i)?"":"animate-spin"])},null,8,["class"])):(u(),_(e(Yt),{key:1,class:"size-5 text-destructive"}))]),d("div",is,[v[0]||(v[0]=d("p",{class:"text-sm font-semibold uppercase tracking-[0.09em] text-muted-foreground"},"Data upgrade",-1)),d("h2",us,O(e(t).state==="running"?"One-time migration in progress":"Migration needs attention"),1),v[1]||(v[1]=d("p",{class:"text-sm text-muted-foreground"}," Steward is upgrading legacy PRD progress data to the latest format. This runs once per local database. ",-1))])]),d("div",ds,[d("div",cs,[d("span",ps,[p(e(ba),{class:"size-3.5"}),G(" "+O(e(f)),1)]),d("span",fs,O(e(o))+"%",1)]),d("div",ms,[d("div",{class:oe(["migration-progress-fill h-full rounded-full motion-reduce:transition-none",e(i)?"":"migration-progress-fill--animated"]),style:It({width:e(r)})},null,6)]),d("p",vs,O(e(h)),1)]),e(t).state==="failed"?(u(),S("div",hs,[p(e(ce),{size:"sm",variant:"outline",onClick:e(l)},{default:c(()=>[...v[2]||(v[2]=[G(" Retry status check ",-1)])]),_:1},8,["onClick"])])):L("",!0)])])):L("",!0)]),_:1}))}}),ys=Object.assign(gs,{__name:"LayoutStateMigrationOverlay"}),_s={class:"flex items-center gap-2 truncate"},bs={class:"truncate"},xs={key:0,class:"absolute top-full right-0 z-[9999] mt-1 w-[280px] rounded-md border bg-popover p-1 text-popover-foreground shadow-md"},ws={class:"max-h-[200px] overflow-y-auto"},ks=["aria-selected","onClick"],Cs={class:"flex flex-1 flex-col gap-0.5 overflow-hidden text-left"},Ss={class:"truncate font-medium"},$s={class:"truncate text-xs text-muted-foreground"},Rs=["onClick"],Es={key:1,class:"px-2 py-1.5 text-sm text-muted-foreground"},As={key:2,class:"my-1 h-px bg-border"},Bs={class:"space-y-2"},Ds={class:"flex gap-2"},Ps={key:0,class:"text-sm text-destructive"},Ts={key:0,class:"space-y-2 rounded-md border p-3"},Is={class:"flex items-center gap-2 text-sm"},Os=["disabled"],Ms={class:"flex-1 truncate font-mono text-xs text-muted-foreground"},Vs={class:"max-h-[200px] overflow-y-auto"},Fs={key:0,class:"py-2 text-center text-sm text-muted-foreground"},Ls={key:1,class:"py-2 text-center text-sm text-muted-foreground"},qs=["onClick"],zs={class:"truncate"},js={key:0},Ks={key:1},Us=E({__name:"RepoSelector",setup(s,{expose:t}){const a=nt(),n=Ke(),{repos:l,currentRepo:i,currentRepoId:o,selectRepo:r,addRepo:f,removeRepo:h}=De(),{showSuccess:b}=it(),m=Fe("prd-show-archived",()=>!1),v=C(!1),k=C(""),g=C(null);Ht(g,()=>{v.value&&(v.value=!1,k.value="")}),pe(()=>n.fullPath,()=>{v.value=!1,k.value=""});async function P(I){r(I),v.value=!1,k.value="";try{const x=await J(I);x?a.push(`/${I}/${x}`):a.push("/")}catch{a.push("/")}}async function J(I){return(await $fetch(`/api/repos/${I}/prds`,{query:m.value?{includeArchived:"1"}:void 0}))?.[0]?.slug||null}function Z(){v.value=!1,ae.value=!0}const j=C(!1),w=C(""),$=C(null),A=C([]),X=C(!1),M=B(()=>!!$.value&&$.value!==w.value);async function ee(I){X.value=!0;try{const x=await $fetch("/api/browse",{query:{path:I||w.value||void 0}});w.value=x.current,$.value=x.parent,A.value=x.directories}catch{}finally{X.value=!1}}function Q(){j.value=!0,ee(N.value||void 0)}function ue(I){N.value=I,j.value=!1,Y.value=null}function he(){const I=$.value;!M.value||!I||ee(I)}const ae=C(!1),N=C(""),Y=C(null),K=C(!1),ne=B(()=>{if(!k.value)return l.value;const I=k.value.toLowerCase();return l.value?.filter(x=>x.name.toLowerCase().includes(I)||x.path.toLowerCase().includes(I))??[]});async function T(){if(!N.value.trim()){Y.value="Please enter a repository path";return}K.value=!0,Y.value=null;try{const I=await f(N.value.trim());if(ae.value=!1,N.value="",b("Repository added",I?.name||"Successfully added repository"),I?.id)try{const x=await J(I.id);x&&a.push(`/${I.id}/${x}`)}catch{}}catch(I){if(I instanceof Error){const x=I;Y.value=x.data?.message||I.message}else Y.value="Failed to add repository"}finally{K.value=!1}}async function z(I,x){I.stopPropagation(),await h(x)}function U(){ae.value=!1,N.value="",Y.value=null}return t({openAddDialog:()=>{ae.value=!0}}),(I,x)=>(u(),S("div",{ref_key:"dropdownRef",ref:g,class:"relative"},[d("button",{type:"button",class:"inline-flex h-8 w-[200px] items-center justify-between gap-2 rounded-md border border-input bg-background px-3 text-sm font-normal ring-offset-background transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",onClick:x[0]||(x[0]=F=>v.value=!e(v))},[d("span",_s,[p(e(va),{class:"size-4 shrink-0 text-muted-foreground"}),d("span",bs,O(e(i)?.name??"Select repository"),1)]),p(e(Zt),{class:"size-4 shrink-0 opacity-50"})]),e(v)?(u(),S("div",xs,[Mt(d("input",{"onUpdate:modelValue":x[1]||(x[1]=F=>Ce(k)?k.value=F:null),type:"text",placeholder:"Search repositories...",class:"mb-1 h-9 w-full rounded-md border border-input bg-background px-3 text-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"},null,512),[[Vt,e(k)]]),d("div",ws,[e(ne)?.length?(u(!0),S(se,{key:0},le(e(ne),F=>(u(),S("div",{key:F.id,class:"group flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground cursor-pointer",role:"option","aria-selected":e(o)===F.id,onClick:xe=>P(F.id)},[p(e(dt),{class:oe(["size-4 shrink-0",e(o)===F.id?"opacity-100":"opacity-0"])},null,8,["class"]),d("div",Cs,[d("span",Ss,O(F.name),1),d("span",$s,O(F.path),1)]),d("button",{type:"button",class:"ml-auto opacity-0 group-hover:opacity-100 p-1 hover:bg-destructive/10 rounded transition-opacity",title:"Remove repository",onClick:xe=>z(xe,F.id)},[p(e(wa),{class:"size-3.5 text-destructive"})],8,Rs)],8,ks))),128)):(u(),S("div",Es," No repositories found. ")),e(ne)?.length?(u(),S("div",As)):L("",!0),d("button",{type:"button",class:"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm text-muted-foreground hover:bg-accent hover:text-accent-foreground",onClick:Z},[p(e(ea),{class:"size-4"}),x[5]||(x[5]=d("span",null,"Add repository...",-1))])])])):L("",!0),p(e(ta),{open:e(ae),"onUpdate:open":x[4]||(x[4]=F=>ae.value=F)},{default:c(()=>[p(e(aa),{side:"right",class:"flex h-full flex-col",onEscapeKeyDown:U},{default:c(()=>[p(e(sa),{class:"px-6"},{default:c(()=>[p(e(oa),null,{default:c(()=>[...x[6]||(x[6]=[G("Add Repository",-1)])]),_:1}),p(e(na),null,{default:c(()=>[...x[7]||(x[7]=[G(" Enter the absolute path to a repository containing PRD documents. ",-1)])]),_:1})]),_:1}),d("form",{id:"add-repo-form",class:"min-h-0 flex-1 space-y-4 overflow-y-auto px-6",onSubmit:$e(T,["prevent"])},[d("div",Bs,[x[8]||(x[8]=d("label",{for:"repo-path",class:"text-sm font-medium"}," Repository Path ",-1)),d("div",Ds,[p(e(ha),{id:"repo-path",modelValue:e(N),"onUpdate:modelValue":x[2]||(x[2]=F=>Ce(N)?N.value=F:null),placeholder:"/path/to/your/project","aria-invalid":!!e(Y),disabled:e(K),class:"flex-1"},null,8,["modelValue","aria-invalid","disabled"]),p(e(ce),{type:"button",variant:"outline",size:"icon",disabled:e(K),onClick:Q},{default:c(()=>[p(e(je),{class:"size-4"})]),_:1},8,["disabled"])]),e(Y)?(u(),S("p",Ps,O(e(Y)),1)):L("",!0),x[9]||(x[9]=d("p",{class:"text-xs text-muted-foreground"},[G(" The repository should contain a "),d("code",{class:"rounded bg-muted px-1"},"docs/prd/"),G(" directory with markdown files. ")],-1))]),e(j)?(u(),S("div",Ts,[d("div",Is,[d("button",{type:"button",class:"inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-xs text-muted-foreground hover:bg-accent hover:text-foreground disabled:pointer-events-none disabled:opacity-50",disabled:!e(M),onClick:he},[p(e(ga),{class:"size-3"}),x[10]||(x[10]=G(" Up ",-1))],8,Os),d("span",Ms,O(e(w)),1),p(e(ce),{type:"button",variant:"ghost",size:"sm",class:"h-7 text-xs",onClick:x[3]||(x[3]=F=>ue(e(w)))},{default:c(()=>[...x[11]||(x[11]=[G(" Select ",-1)])]),_:1})]),d("div",Vs,[e(X)?(u(),S("div",Fs," Loading... ")):e(A).length?(u(!0),S(se,{key:2},le(e(A),F=>(u(),S("button",{key:F.path,type:"button",class:"flex w-full items-center gap-2 rounded px-2 py-1 text-sm hover:bg-accent",onClick:xe=>ee(F.path)},[p(e(je),{class:"size-4 text-muted-foreground"}),d("span",zs,O(F.name),1)],8,qs))),128)):(u(),S("div",Ls," No subdirectories "))])])):L("",!0)],32),p(e(la),{class:"px-6 pb-6"},{default:c(()=>[p(e(ce),{type:"button",variant:"outline",disabled:e(K),onClick:U},{default:c(()=>[...x[12]||(x[12]=[G(" Cancel ",-1)])]),_:1},8,["disabled"]),p(e(ce),{type:"submit",form:"add-repo-form",disabled:e(K)},{default:c(()=>[e(K)?(u(),S("span",js,"Adding...")):(u(),S("span",Ks,"Add Repository"))]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["open"])],512))}}),Hs=Object.assign(Us,{__name:"LayoutRepoSelector"}),Ns=E({__name:"Switch",props:{defaultValue:{type:Boolean},modelValue:{type:[Boolean,null]},disabled:{type:Boolean},id:{},value:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},class:{}},emits:["update:modelValue"],setup(s,{emit:t}){const a=s,n=t,l=te(a,"class"),i=ve(l,n);return(o,r)=>(u(),_(e(Ya),q({"data-slot":"switch"},e(i),{class:e(W)("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-colors duration-150 ease-[var(--ease-out-cubic)] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 motion-reduce:transition-none",a.class)}),{default:c(f=>[p(e(es),{"data-slot":"switch-thumb",class:oe(e(W)("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform duration-150 ease-[var(--ease-in-out-cubic)] will-change-transform motion-reduce:transition-none data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0"))},{default:c(()=>[V(o.$slots,"thumb",Ae(Be(f)))]),_:2},1032,["class"])]),_:3},16,["class"]))}}),Gs=Object.assign(Ns,{__name:"UiSwitch"}),Ws={class:"flex h-full w-64 flex-col border-r border-border bg-background"},Qs={class:"p-2"},Js={class:"flex h-10 items-center justify-between gap-2 px-2"},Xs={class:"flex items-center gap-2 whitespace-nowrap text-xs text-muted-foreground"},Ys={key:1,class:"flex items-center justify-center py-8"},Zs={key:2,class:"px-2 py-8 text-center"},eo={key:3,class:"px-2 py-8 text-center"},to={key:4,class:"px-2 py-8 text-center"},ao={class:"mt-2 text-sm text-muted-foreground"},so={class:"mt-1 text-xs text-muted-foreground/70"},oo={key:5,class:"space-y-1"},no={class:"flex-1 truncate"},lo=E({__name:"Sidebar",setup(s){const t=Ke(),{prds:a,prdsStatus:n,showArchived:l,setShowArchived:i,refreshPrds:o}=He(),{currentRepoId:r}=De(),f=B(()=>t.params.prd);function h(v){return f.value===v}const b=B(()=>r.value?`/${r.value}/repo-graph`:"/"),m=B(()=>r.value?t.path===`/${r.value}/repo-graph`:!1);return(v,k)=>{const g=ya;return u(),S("aside",Ws,[p(e(ra),{class:"flex-1"},{default:c(()=>[d("div",Qs,[e(r)?(u(),_(g,{key:0,to:e(b),class:oe(["group mb-2 flex items-center gap-3 rounded-md px-3 py-2 text-sm transition-colors",[e(m)?"bg-accent text-accent-foreground":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"]])},{default:c(()=>[p(e(ct),{class:"size-4 shrink-0"}),k[0]||(k[0]=d("span",{class:"flex-1 truncate"},"Repo Graph",-1))]),_:1},8,["to","class"])):L("",!0),d("div",Js,[k[2]||(k[2]=d("h2",{class:"text-sm font-medium text-muted-foreground"},"Documents",-1)),d("div",Xs,[k[1]||(k[1]=d("span",{id:"sidebar-show-archived-label"},"Show archived",-1)),p(e(Gs),{"model-value":e(l),"aria-labelledby":"sidebar-show-archived-label","onUpdate:modelValue":e(i)},null,8,["model-value","onUpdate:modelValue"])])]),e(n)==="pending"?(u(),S("div",Ys,[p(e(ut),{class:"size-5 animate-spin text-muted-foreground"})])):e(r)?e(n)==="error"?(u(),S("div",eo,[p(e(ia),{class:"mx-auto size-8 text-destructive/50"}),k[5]||(k[5]=d("p",{class:"mt-2 text-sm text-muted-foreground"}," Failed to load PRDs ",-1)),p(e(ce),{variant:"ghost",size:"sm",class:"mt-2",onClick:e(o)},{default:c(()=>[p(e(pt),{class:"mr-1 size-3"}),k[4]||(k[4]=G(" Retry ",-1))]),_:1},8,["onClick"])])):e(a)?.length?(u(),S("nav",oo,[(u(!0),S(se,null,le(e(a),P=>(u(),_(g,{key:P.slug,to:`/${e(r)}/${P.slug}`,class:oe(["group flex items-center gap-3 rounded-md px-3 py-2 text-sm transition-colors",[h(P.slug)?"bg-accent text-accent-foreground":P.archived?"text-muted-foreground/75 hover:bg-accent/40 hover:text-foreground":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"]])},{default:c(()=>[p(e(ze),{class:"size-4 shrink-0"}),d("span",no,O(P.name),1),P.archived?(u(),_(e(Ze),{key:0,variant:"outline",class:"shrink-0 text-[10px] uppercase tracking-wide"},{default:c(()=>[...k[6]||(k[6]=[G(" Archived ",-1)])]),_:1})):L("",!0),P.hasState&&P.taskCount?(u(),_(e(Ze),{key:1,variant:"secondary",class:"shrink-0 text-xs"},{default:c(()=>[G(O(P.completedCount??0)+"/"+O(P.taskCount),1)]),_:2},1024)):L("",!0)]),_:2},1032,["to","class"]))),128))])):(u(),S("div",to,[p(e(ze),{class:"mx-auto size-8 text-muted-foreground/50"}),d("p",ao,O(e(l)?"No PRDs found":"No active PRDs found"),1),d("p",so,O(e(l)?"Add .md files to docs/prd/":"Archived PRDs are hidden. Use the archive toggle above."),1)])):(u(),S("div",Zs,[...k[3]||(k[3]=[d("p",{class:"text-sm text-muted-foreground"}," Select a repository to view PRDs ",-1)])]))])]),_:1})])}}}),ro=Object.assign(lo,{__name:"LayoutSidebar"}),io=E({__name:"Command",props:{modelValue:{default:""},defaultValue:{},multiple:{type:Boolean},orientation:{},dir:{},disabled:{type:Boolean},selectionBehavior:{},highlightOnHover:{type:Boolean},by:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},class:{},defaultSearch:{default:""}},emits:["update:modelValue","highlight","entryFocus","leave"],setup(s,{emit:t}){const a=s,n=t,l=te(a,"class"),i=ve(l,n),o=C(new Map),r=C(new Map),{contains:f}=Ca({sensitivity:"base"}),h=Ft({search:a.defaultSearch||"",filtered:{count:0,items:new Map,groups:new Set}});pe(()=>a.defaultSearch,m=>{m!==void 0&&(h.search=m)});function b(){if(!h.search){h.filtered.count=o.value.size;return}h.filtered.groups=new Set;let m=0;for(const[v,k]of o.value){const g=f(k,h.search);h.filtered.items.set(v,g?1:0),g&&m++}for(const[v,k]of r.value)for(const g of k)if(h.filtered.items.get(g)>0){h.filtered.groups.add(v);break}h.filtered.count=m}return pe(()=>h.search,()=>{b()}),pe(()=>o.value.size,()=>{h.search&&b()}),Mo({allItems:o,allGroups:r,filterState:h}),(m,v)=>(u(),_(e(Ia),q({"data-slot":"command"},e(i),{class:e(W)("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",a.class)}),{default:c(()=>[V(m.$slots,"default")]),_:3},16,["class"]))}}),uo=Object.assign(io,{__name:"UiCommand"}),co=E({__name:"Dialog",props:{open:{type:Boolean},defaultOpen:{type:Boolean},modal:{type:Boolean}},emits:["update:open"],setup(s,{emit:t}){const l=ve(s,t);return(i,o)=>(u(),_(e(ua),q({"data-slot":"dialog"},e(l)),{default:c(r=>[V(i.$slots,"default",Ae(Be(r)))]),_:3},16))}}),kt=Object.assign(co,{__name:"UiDialog"}),po=E({__name:"DialogClose",props:{asChild:{type:Boolean},as:{}},setup(s){const t=s;return(a,n)=>(u(),_(e(Qe),q({"data-slot":"dialog-close"},t),{default:c(()=>[V(a.$slots,"default")]),_:3},16))}});Object.assign(po,{__name:"UiDialogClose"});const fo=E({__name:"DialogOverlay",props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(s){const t=s,a=te(t,"class");return(n,l)=>(u(),_(e(ft),q({"data-slot":"dialog-overlay"},e(a),{class:e(W)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80",t.class)}),{default:c(()=>[V(n.$slots,"default")]),_:3},16,["class"]))}}),mo=Object.assign(fo,{__name:"UiDialogOverlay"}),vo=E({inheritAttrs:!1,__name:"DialogContent",props:{forceMount:{type:Boolean},disableOutsidePointerEvents:{type:Boolean},asChild:{type:Boolean},as:{},class:{},showCloseButton:{type:Boolean,default:!0}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(s,{emit:t}){const a=s,n=t,l=te(a,"class"),i=ve(l,n);return(o,r)=>(u(),_(e(mt),null,{default:c(()=>[p(mo),p(e(vt),q({"data-slot":"dialog-content"},{...o.$attrs,...e(i)},{class:e(W)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",a.class)}),{default:c(()=>[V(o.$slots,"default"),s.showCloseButton?(u(),_(e(Qe),{key:0,"data-slot":"dialog-close",class:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"},{default:c(()=>[p(e(ht)),r[0]||(r[0]=d("span",{class:"sr-only"},"Close",-1))]),_:1})):L("",!0)]),_:3},16,["class"])]),_:3}))}}),Ct=Object.assign(vo,{__name:"UiDialogContent"}),ho=E({__name:"DialogDescription",props:{asChild:{type:Boolean},as:{},class:{}},setup(s){const t=s,a=te(t,"class"),n=Te(a);return(l,i)=>(u(),_(e(da),q({"data-slot":"dialog-description"},e(n),{class:e(W)("text-muted-foreground text-sm",t.class)}),{default:c(()=>[V(l.$slots,"default")]),_:3},16,["class"]))}}),St=Object.assign(ho,{__name:"UiDialogDescription"}),go=E({__name:"DialogFooter",props:{class:{}},setup(s){const t=s;return(a,n)=>(u(),S("div",{"data-slot":"dialog-footer",class:oe(e(W)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",t.class))},[V(a.$slots,"default")],2))}});Object.assign(go,{__name:"UiDialogFooter"});const yo=E({__name:"DialogHeader",props:{class:{}},setup(s){const t=s;return(a,n)=>(u(),S("div",{"data-slot":"dialog-header",class:oe(e(W)("flex flex-col gap-2 text-center sm:text-left",t.class))},[V(a.$slots,"default")],2))}}),$t=Object.assign(yo,{__name:"UiDialogHeader"}),_o=E({inheritAttrs:!1,__name:"DialogScrollContent",props:{forceMount:{type:Boolean},disableOutsidePointerEvents:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(s,{emit:t}){const a=s,n=t,l=te(a,"class"),i=ve(l,n);return(o,r)=>(u(),_(e(mt),null,{default:c(()=>[p(e(ft),{class:"fixed inset-0 z-50 grid place-items-center overflow-y-auto bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"},{default:c(()=>[p(e(vt),q({class:e(W)("relative z-50 grid w-full max-w-lg my-8 gap-4 border border-border bg-background p-6 shadow-lg duration-200 sm:rounded-lg md:w-full",a.class)},{...o.$attrs,...e(i)},{onPointerDownOutside:r[0]||(r[0]=f=>{const h=f.detail.originalEvent,b=h.target;(h.offsetX>b.clientWidth||h.offsetY>b.clientHeight)&&f.preventDefault()})}),{default:c(()=>[V(o.$slots,"default"),p(e(Qe),{class:"absolute top-4 right-4 p-0.5 transition-colors rounded-md hover:bg-secondary"},{default:c(()=>[p(e(ht),{class:"w-4 h-4"}),r[1]||(r[1]=d("span",{class:"sr-only"},"Close",-1))]),_:1})]),_:3},16,["class"])]),_:3})]),_:3}))}});Object.assign(_o,{__name:"UiDialogScrollContent"});const bo=E({__name:"DialogTitle",props:{asChild:{type:Boolean},as:{},class:{}},setup(s){const t=s,a=te(t,"class"),n=Te(a);return(l,i)=>(u(),_(e(ca),q({"data-slot":"dialog-title"},e(n),{class:e(W)("text-lg leading-none font-semibold",t.class)}),{default:c(()=>[V(l.$slots,"default")]),_:3},16,["class"]))}}),Rt=Object.assign(bo,{__name:"UiDialogTitle"}),xo=E({__name:"DialogTrigger",props:{asChild:{type:Boolean},as:{}},setup(s){const t=s;return(a,n)=>(u(),_(e(pa),q({"data-slot":"dialog-trigger"},t),{default:c(()=>[V(a.$slots,"default")]),_:3},16))}});Object.assign(xo,{__name:"UiDialogTrigger"});const wo=E({__name:"CommandDialog",props:{open:{type:Boolean},defaultOpen:{type:Boolean},modal:{type:Boolean},title:{default:"Command Palette"},description:{default:"Search for a command to run..."},defaultSearch:{default:""}},emits:["update:open"],setup(s,{emit:t}){const l=ve(s,t);return(i,o)=>(u(),_(e(kt),Ae(Be(e(l))),{default:c(r=>[p(e(Ct),{class:"overflow-hidden p-0","show-close-button":!1},{default:c(()=>[p(e($t),{class:"sr-only"},{default:c(()=>[p(e(Rt),null,{default:c(()=>[G(O(s.title),1)]),_:1}),p(e(St),null,{default:c(()=>[G(O(s.description),1)]),_:1})]),_:1}),p(uo,{"default-search":s.defaultSearch},{default:c(()=>[V(i.$slots,"default",Ae(Be(r)))]),_:2},1032,["default-search"])]),_:2},1024)]),_:3},16))}}),ko=Object.assign(wo,{__name:"UiCommandDialog"}),Co=E({__name:"CommandEmpty",props:{asChild:{type:Boolean},as:{},class:{}},setup(s){const t=s,a=te(t,"class"),{filterState:n}=Ie(),l=B(()=>!!n.search&&n.filtered.count===0);return(i,o)=>l.value?(u(),_(e(re),q({key:0,"data-slot":"command-empty"},e(a),{class:e(W)("py-6 text-center text-sm",t.class)}),{default:c(()=>[V(i.$slots,"default")]),_:3},16,["class"])):L("",!0)}}),So=Object.assign(Co,{__name:"UiCommandEmpty"}),$o=E({__name:"CommandGroup",props:{asChild:{type:Boolean},as:{},class:{},heading:{}},setup(s){const t=s,a=te(t,"class"),{allGroups:n,filterState:l}=Ie(),i=Pe(),o=B(()=>l.search?l.filtered.groups.has(i):!0);return Fo({id:i}),ie(()=>{n.value.has(i)||n.value.set(i,new Set)}),fe(()=>{n.value.delete(i)}),(r,f)=>(u(),_(e(ja),q(e(a),{id:e(i),"data-slot":"command-group",class:e(W)("text-foreground overflow-hidden p-1",t.class),hidden:o.value?void 0:!0}),{default:c(()=>[s.heading?(u(),_(e(Ua),{key:0,"data-slot":"command-group-heading",class:"px-2 py-1.5 text-xs font-medium text-muted-foreground"},{default:c(()=>[G(O(s.heading),1)]),_:1})):L("",!0),V(r.$slots,"default")]),_:3},16,["id","class","hidden"]))}}),Ve=Object.assign($o,{__name:"UiCommandGroup"}),Ro={"data-slot":"command-input-wrapper",class:"flex h-9 items-center gap-2 border-b px-3"},Eo=E({inheritAttrs:!1,__name:"CommandInput",props:{modelValue:{},autoFocus:{type:Boolean},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(s){const t=s,a=te(t,"class"),n=Te(a),{filterState:l}=Ie(),i=C(null);return ie(()=>{ye(()=>{const o=i.value?.$el;if(o&&l.search){const r=l.search.length;o.setSelectionRange(r,r)}})}),(o,r)=>(u(),S("div",Ro,[p(e(xa),{class:"size-4 shrink-0 opacity-50"}),p(e(Fa),q({ref_key:"inputRef",ref:i},{...e(n),...o.$attrs},{modelValue:e(l).search,"onUpdate:modelValue":r[0]||(r[0]=f=>e(l).search=f),"data-slot":"command-input","auto-focus":"",class:e(W)("placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",t.class)}),null,16,["modelValue","class"])]))}}),Ao=Object.assign(Eo,{__name:"UiCommandInput"}),Bo=E({__name:"CommandItem",props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},emits:["select"],setup(s,{emit:t}){const a=s,n=t,l=te(a,"class"),i=ve(l,n),o=Pe(),{filterState:r,allItems:f,allGroups:h}=Ie(),b=Vo(),m=B(()=>{if(r.search){const g=r.filtered.items.get(o);return g===void 0?!0:g>0}else return!0}),v=C(),k=Nt(v);return ie(()=>{if(!(k.value instanceof HTMLElement))return;f.value.set(o,k.value.textContent??a.value?.toString()??"");const g=b?.id;g&&(h.value.has(g)?h.value.get(g)?.add(o):h.value.set(g,new Set([o])))}),fe(()=>{f.value.delete(o)}),(g,P)=>m.value?(u(),_(e(Wa),q({key:0},e(i),{id:e(o),ref_key:"itemRef",ref:v,"data-slot":"command-item",class:e(W)("data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",a.class),onSelect:P[0]||(P[0]=()=>{e(r).search=""})}),{default:c(()=>[V(g.$slots,"default")]),_:3},16,["id","class"])):L("",!0)}}),de=Object.assign(Bo,{__name:"UiCommandItem"}),Do={role:"presentation"},Po=E({__name:"CommandList",props:{asChild:{type:Boolean},as:{},class:{}},setup(s){const t=s,a=te(t,"class"),n=Te(a);return(l,i)=>(u(),_(e(Ma),q({"data-slot":"command-list"},e(n),{class:e(W)("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto scrollbar-none",t.class)}),{default:c(()=>[d("div",Do,[V(l.$slots,"default")])]),_:3},16,["class"]))}}),To=Object.assign(Po,{__name:"UiCommandList"}),Io=E({__name:"CommandSeparator",props:{orientation:{},decorative:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(s){const t=s,a=te(t,"class");return(n,l)=>(u(),_(e(fa),q({"data-slot":"command-separator"},e(a),{class:e(W)("bg-border -mx-1 h-px",t.class)}),{default:c(()=>[V(n.$slots,"default")]),_:3},16,["class"]))}}),tt=Object.assign(Io,{__name:"UiCommandSeparator"}),Oo=E({__name:"CommandShortcut",props:{class:{}},setup(s){const t=s;return(a,n)=>(u(),S("span",{"data-slot":"command-shortcut",class:oe(e(W)("text-muted-foreground ml-auto text-xs tracking-widest",t.class))},[V(a.$slots,"default")],2))}});Object.assign(Oo,{__name:"UiCommandShortcut"});const[Ie,Mo]=be("Command"),[Vo,Fo]=be("CommandGroup"),Lo={class:"flex items-center gap-1"},qo={key:0,class:"text-[10px] uppercase tracking-wide text-muted-foreground"},zo={class:"flex-1"},jo={class:"flex-1"},Ko={class:"ml-auto flex items-center gap-1"},Uo={class:"inline-flex h-5 min-w-5 items-center justify-center rounded border border-border bg-muted px-1.5 font-mono text-[10px] text-muted-foreground"},Ho={class:"flex-1"},No={class:"ml-auto flex items-center gap-1"},Go={class:"inline-flex h-5 min-w-5 items-center justify-center rounded border border-border bg-muted px-1.5 font-mono text-[10px] text-muted-foreground"},Wo={class:"ml-auto flex items-center gap-1"},Qo={class:"inline-flex h-5 min-w-5 items-center justify-center rounded border border-border bg-muted px-1.5 font-mono text-[10px] text-muted-foreground"},Jo={class:"flex-1"},Xo=E({__name:"CommandPalette",props:{open:{type:Boolean,default:!1},openModifiers:{},filter:{default:""},filterModifiers:{}},emits:Lt(["openShortcutsHelp"],["update:open","update:filter"]),setup(s,{emit:t}){const a=Le(s,"open"),n=Le(s,"filter"),l=t,i=nt(),{themeMode:o,cycleThemeMode:r}=lt(),{prds:f,showArchived:h,toggleShowArchived:b}=He(),{repos:m,currentRepoId:v,selectRepo:k,refreshGitRepos:g}=De(),{showSuccess:P,showError:J}=it(),Z=["document","board","graph"],j={document:"Document",board:"Task Board",graph:"Graph"},w=C("document");{const T=localStorage.getItem("prd-viewer-tab");(T==="document"||T==="board"||T==="graph")&&(w.value=T)}function $(T){T.key!=="prd-viewer-tab"||!T.newValue||(T.newValue==="document"||T.newValue==="board"||T.newValue==="graph")&&(w.value=T.newValue)}ie(()=>{window.addEventListener("storage",$)}),fe(()=>{window.removeEventListener("storage",$)});const A=B(()=>{const T=Z.indexOf(w.value),z=T>=0?T:0;return Z[(z+1)%Z.length]}),X=B(()=>j[A.value]);function M(T){v.value&&(i.push(`/${v.value}/${T}`),a.value=!1)}function ee(T){k(T),i.push("/"),a.value=!1}function Q(){r(),a.value=!1}function ue(){const T=A.value;w.value=T,localStorage.setItem("prd-viewer-tab",T),window.dispatchEvent(new StorageEvent("storage",{key:"prd-viewer-tab",newValue:T})),a.value=!1}function he(){a.value=!1,l("openShortcutsHelp")}function ae(){b(),a.value=!1}const N=C(!1);async function Y(){if(!(!v.value||N.value)){N.value=!0,a.value=!1;try{const T=await g(v.value);P(`Discovered ${T.discovered} git repositories`)}catch{J("Failed to refresh git repos")}finally{N.value=!1}}}pe(a,T=>{T||(n.value="")});const K=B(()=>navigator.platform.toUpperCase().indexOf("MAC")>=0),ne=B(()=>K.value?"⌘":"Ctrl");return(T,z)=>(u(),_(e(ko),{open:a.value,"onUpdate:open":z[0]||(z[0]=U=>a.value=U),"default-search":n.value},{default:c(()=>[p(e(Ao),{placeholder:"Type a command or search..."}),p(e(To),null,{default:c(()=>[p(e(So),null,{default:c(()=>[...z[1]||(z[1]=[G("No results found.",-1)])]),_:1}),e(f)?.length?(u(),_(e(Ve),{key:0,heading:"Documents"},{default:c(()=>[(u(!0),S(se,null,le(e(f),U=>(u(),_(e(de),{key:U.slug,value:`PRD: ${U.name}`,onSelect:I=>M(U.slug)},{default:c(()=>[p(e(ze),{class:"size-4"}),d("span",Lo,[d("span",null,O(U.name),1),U.archived?(u(),S("span",qo,"Archived")):L("",!0)])]),_:2},1032,["value","onSelect"]))),128))]),_:1})):L("",!0),e(f)?.length&&e(m)?.length?(u(),_(e(tt),{key:1})):L("",!0),e(m)?.length?(u(),_(e(Ve),{key:2,heading:"Repositories"},{default:c(()=>[(u(!0),S(se,null,le(e(m),U=>(u(),_(e(de),{key:U.id,value:`repo-${U.id} ${U.name}`,onSelect:I=>ee(U.id)},{default:c(()=>[p(e(je),{class:"size-4"}),d("span",zo,O(U.name),1),U.id===e(v)?(u(),_(e(dt),{key:0,class:"size-4 text-primary"})):L("",!0)]),_:2},1032,["value","onSelect"]))),128))]),_:1})):L("",!0),e(m)?.length?(u(),_(e(tt),{key:3})):L("",!0),p(e(Ve),{heading:"Actions"},{default:c(()=>[p(e(de),{value:"cycle-theme light dark system",onSelect:Q},{default:c(()=>[e(o)==="system"?(u(),_(e(gt),{key:0,class:"size-4"})):e(o)==="light"?(u(),_(e(_t),{key:1,class:"size-4"})):(u(),_(e(yt),{key:2,class:"size-4"})),d("span",jo,"Cycle theme mode ("+O(e(o))+")",1),d("div",Ko,[d("kbd",Uo,O(e(ne)),1),z[2]||(z[2]=d("kbd",{class:"inline-flex h-5 min-w-5 items-center justify-center rounded border border-border bg-muted px-1.5 font-mono text-[10px] text-muted-foreground"},".",-1))])]),_:1}),p(e(de),{value:`switch-tab ${e(X).toLowerCase()}`,onSelect:ue},{default:c(()=>[p(e(ct),{class:"size-4"}),d("span",Ho,"Switch to "+O(e(X)),1),d("div",No,[d("kbd",Go,O(e(ne)),1),z[3]||(z[3]=d("kbd",{class:"inline-flex h-5 min-w-5 items-center justify-center rounded border border-border bg-muted px-1.5 font-mono text-[10px] text-muted-foreground"},"\\",-1))])]),_:1},8,["value"]),p(e(de),{value:"keyboard shortcuts help",onSelect:he},{default:c(()=>[p(e(ma),{class:"size-4"}),z[5]||(z[5]=d("span",{class:"flex-1"},"Keyboard shortcuts",-1)),d("div",Wo,[d("kbd",Qo,O(e(ne)),1),z[4]||(z[4]=d("kbd",{class:"inline-flex h-5 min-w-5 items-center justify-center rounded border border-border bg-muted px-1.5 font-mono text-[10px] text-muted-foreground"},"/",-1))])]),_:1}),e(v)?(u(),_(e(de),{key:0,value:"refresh git repos rescan discover",disabled:e(N),onSelect:Y},{default:c(()=>[p(e(pt),{class:oe(["size-4",{"animate-spin":e(N)}])},null,8,["class"]),z[6]||(z[6]=d("span",{class:"flex-1"},"Refresh git repos",-1))]),_:1},8,["disabled"])):L("",!0),p(e(de),{value:"toggle archived documents",onSelect:ae},{default:c(()=>[p(e(_a),{class:"size-4"}),d("span",Jo,O(e(h)?"Hide archived documents":"Show archived documents"),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["open","default-search"]))}}),Yo=Object.assign(Xo,{__name:"CommandPalette"}),Zo={class:"space-y-6"},en={class:"mb-3 text-sm font-medium text-muted-foreground"},tn={class:"space-y-2"},an={class:"text-sm"},sn={class:"flex items-center gap-1"},on=E({__name:"ShortcutsHelp",props:{open:{type:Boolean,default:!1},openModifiers:{}},emits:["update:open"],setup(s){const t=Le(s,"open"),a=B(()=>navigator.platform.toUpperCase().indexOf("MAC")>=0),n=B(()=>a.value?"⌘":"Ctrl"),l=B(()=>[{name:"Navigation",shortcuts:[{keys:[n.value,"K"],description:"Open command palette"},{keys:[n.value,"J"],description:"Quick jump to document"}]},{name:"Actions",shortcuts:[{keys:[n.value,"."],description:"Cycle theme mode (light/dark/system)"},{keys:[n.value,"\\"],description:"Cycle Document, Task Board, and Graph tabs"},{keys:[n.value,","],description:"Add repository"}]},{name:"Help",shortcuts:[{keys:[n.value,"/"],description:"Show this help"},{keys:["Esc"],description:"Close dialog or palette"}]}]);return(i,o)=>(u(),_(e(kt),{open:t.value,"onUpdate:open":o[0]||(o[0]=r=>t.value=r)},{default:c(()=>[p(e(Ct),{class:"max-w-md"},{default:c(()=>[p(e($t),null,{default:c(()=>[p(e(Rt),null,{default:c(()=>[...o[1]||(o[1]=[G("Keyboard Shortcuts",-1)])]),_:1}),p(e(St),null,{default:c(()=>[...o[2]||(o[2]=[G(" Quick reference for available keyboard shortcuts. ",-1)])]),_:1})]),_:1}),d("div",Zo,[(u(!0),S(se,null,le(e(l),r=>(u(),S("div",{key:r.name},[d("h3",en,O(r.name),1),d("div",tn,[(u(!0),S(se,null,le(r.shortcuts,f=>(u(),S("div",{key:f.description,class:"flex items-center justify-between"},[d("span",an,O(f.description),1),d("div",sn,[(u(!0),S(se,null,le(f.keys,(h,b)=>(u(),S("kbd",{key:b,class:"inline-flex h-5 min-w-5 items-center justify-center rounded border border-border bg-muted px-1.5 font-mono text-xs font-medium text-muted-foreground"},O(h),1))),128))])]))),128))])]))),128))])]),_:1})]),_:1},8,["open"]))}}),nn=Object.assign(on,{__name:"ShortcutsHelp"});function Et(){const s=document.activeElement;if(!s)return!1;const t=s.tagName.toLowerCase();return t==="input"||t==="textarea"||s.getAttribute("contenteditable")==="true"||s.getAttribute("role")==="textbox"}function ln(s){const t=s.toLowerCase().split("+"),a=t.pop()||"";return{meta:t.includes("meta"),ctrl:t.includes("ctrl"),shift:t.includes("shift"),alt:t.includes("alt"),key:a}}function rn(s,t){const a=s.key.toLowerCase();let n=a===t.key;return t.key==="\\"&&(n=a==="\\"||s.code==="Backslash"),t.key==="/"&&(n=a==="/"||s.code==="Slash"),t.key==="."&&(n=a==="."||s.code==="Period"),t.key===","&&(n=a===","||s.code==="Comma"),n&&s.metaKey===t.meta&&s.ctrlKey===t.ctrl&&s.shiftKey===t.shift&&s.altKey===t.alt}const Ee=[];let at=!1;function un(s){for(const t of Ee)if(rn(s,t.combo)){if(!t.allowInInput&&Et())continue;s.preventDefault(),s.stopPropagation(),t.handler();return}}function st(){at||(document.addEventListener("keydown",un,{capture:!0}),at=!0)}function dn(){ie(()=>{st()});function s(a,n,l){const o={combo:ln(a),handler:n,allowInInput:l?.allowInInput??!1};Ee.push(o),st(),fe(()=>{const r=Ee.indexOf(o);r>-1&&Ee.splice(r,1)})}function t(){return Et()}return{onShortcut:s,isInputFocused:t}}const cn=2e3,pn=2e3;function fn(s){return!s.instanceId||!s.buildId?null:`${s.buildId}:${s.instanceId}`}function mn(s){const t=C(null),a=C(!1),n=C(null),l=C(null),i=C(null),o=C(null),r=C(!1),f=C(!1),h=C(!1);function b(){l.value&&(clearTimeout(l.value),l.value=null)}function m(){i.value&&(clearInterval(i.value),i.value=null)}async function v(){try{const w=await $fetch(`/api/runtime?_=${Date.now()}`);return fn(w)}catch{return null}}async function k(){o.value===null&&(o.value=await v())}async function g(){if(!(r.value||h.value)){r.value=!0;try{const w=await v();if(!w)return;if(!o.value){o.value=w;return}w!==o.value&&(h.value=!0,window.location.reload())}finally{r.value=!1}}}function P(){i.value||(i.value=wt(()=>{g()},pn))}function J(){l.value||(l.value=setTimeout(()=>{l.value=null,Z()},cn))}function Z(){if(!t.value)try{const w=new EventSource("/api/watch");w.onopen=async()=>{a.value=!0,n.value=null,b(),m(),f.value&&(f.value=!1,await g())},w.onmessage=$=>{try{const A=JSON.parse($.data);s(A)}catch{}},w.onerror=()=>{a.value=!1,n.value="Connection lost",f.value=!0,t.value===w&&(w.close(),t.value=null),P(),J()},t.value=w}catch{n.value="Failed to connect",P(),J()}}function j(){b(),m(),f.value=!1,t.value&&(t.value.close(),t.value=null,a.value=!1)}return ie(async()=>{await k(),Z()}),fe(()=>{j()}),{isConnected:a,error:n,connect:Z,disconnect:j}}const vn={class:"min-h-screen bg-background text-foreground"},hn={class:"fixed top-0 left-0 right-0 z-50 h-14 border-b border-border bg-background/95 backdrop-blur-sm supports-[backdrop-filter]:bg-background/80"},gn={class:"flex h-full items-center justify-between px-4 md:px-6"},yn={class:"flex items-center gap-3"},_n={class:"hidden text-xs text-muted-foreground md:inline"},bn={class:"flex items-center gap-3"},xn={class:"flex h-screen pt-14"},wn={class:"flex-1 overflow-auto"},Bn=E({__name:"default",setup(s){const{themeMode:t,cycleThemeMode:a}=lt(),{refreshPrds:n}=He(),{currentRepoId:l}=De(),i=Ke(),o=jt(),r=B(()=>o.public.stewardVersion||"0.0.0"),f=B(()=>o.public.stewardPackageName||"steward"),h=C(null);qt("fileChangeEvent",h);const b=C(!1),m=C(""),v=C(!1),k=C(null),{onShortcut:g}=dn();g("Meta+k",()=>{b.value=!0}),g("Ctrl+k",()=>{b.value=!0}),g("Meta+j",()=>{m.value="PRD: ",b.value=!0}),g("Ctrl+j",()=>{m.value="PRD: ",b.value=!0});function P(){const w=["document","board","graph"],$=localStorage.getItem("prd-viewer-tab")||"document",A=w.indexOf($),X=A>=0?A:0,M=w[(X+1)%w.length]??"document";localStorage.setItem("prd-viewer-tab",M),window.dispatchEvent(new StorageEvent("storage",{key:"prd-viewer-tab",newValue:M}))}g("Meta+\\",P),g("Ctrl+\\",P);function J(){a()}g("Meta+.",J),g("Ctrl+.",J);function Z(){k.value?.openAddDialog()}g("Meta+,",Z),g("Ctrl+,",Z);function j(){v.value=!0}return g("Meta+/",j),g("Ctrl+/",j),g("Meta+Shift+/",j),g("Ctrl+Shift+/",j),mn(w=>{if(w.type==="connected"||!w.category)return;const $=w.category;if(w.repoId!==l.value)return;($==="prd"||$==="tasks")&&n();const A=i.params.prd,X=$==="tasks"||$==="progress",M=$==="prd"&&(!A||w.path?.includes(`/${A}.`)),ee=!!A&&X&&w.path?.includes(`/${A}/`);(X||M||ee)&&(h.value={category:$,path:w.path,timestamp:Date.now()})}),(w,$)=>{const A=ys,X=Hs,M=zt,ee=ro;return u(),S("div",vn,[p(A),p(Yo,{open:e(b),"onUpdate:open":$[0]||($[0]=Q=>Ce(b)?b.value=Q:null),filter:e(m),"onUpdate:filter":$[1]||($[1]=Q=>Ce(m)?m.value=Q:null),onOpenShortcutsHelp:j},null,8,["open","filter"]),p(nn,{open:e(v),"onUpdate:open":$[2]||($[2]=Q=>Ce(v)?v.value=Q:null)},null,8,["open"]),d("header",hn,[d("div",gn,[d("div",yn,[$[3]||($[3]=d("h1",{class:"text-lg font-semibold tracking-tight"}," PRD Viewer ",-1)),d("span",_n,O(e(f))+" v"+O(e(r)),1)]),p(M,null,{fallback:c(()=>[...$[5]||($[5]=[d("div",{class:"flex items-center gap-3"},[d("div",{class:"h-8 w-[200px] animate-pulse rounded-md bg-muted"}),d("div",{class:"size-9 animate-pulse rounded-md bg-muted"})],-1)])]),default:c(()=>[d("div",bn,[p(X,{ref_key:"repoSelectorRef",ref:k},null,512),p(e(ce),{variant:"ghost",size:"icon",class:"size-9",onClick:J},{default:c(()=>[e(t)==="system"?(u(),_(e(gt),{key:0,class:"size-4"})):e(t)==="light"?(u(),_(e(_t),{key:1,class:"size-4"})):(u(),_(e(yt),{key:2,class:"size-4"})),$[4]||($[4]=d("span",{class:"sr-only"},"Cycle theme mode",-1))]),_:1})])]),_:1})])]),d("div",xn,[p(M,null,{fallback:c(()=>[...$[6]||($[6]=[d("aside",{class:"flex h-full w-64 flex-col border-r border-border bg-background"},[d("div",{class:"flex h-12 items-center border-b border-border px-4"},[d("div",{class:"h-4 w-20 animate-pulse rounded bg-muted"})]),d("div",{class:"flex-1 p-2 space-y-2"},[d("div",{class:"h-9 animate-pulse rounded-md bg-muted"}),d("div",{class:"h-9 animate-pulse rounded-md bg-muted"}),d("div",{class:"h-9 animate-pulse rounded-md bg-muted"})])],-1)])]),default:c(()=>[p(ee)]),_:1}),d("main",wn,[V(w.$slots,"default")])])])}}});export{Bn as default};