@thxgg/steward 0.1.14 → 0.1.16

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 (55) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{C_NevjZD.js → BSA0RJ-H.js} +1 -1
  3. package/.output/public/_nuxt/{BubpH_wW.js → BWVTacYj.js} +1 -1
  4. package/.output/public/_nuxt/{CMu9GKTH.js → Bibm_IDv.js} +2 -2
  5. package/.output/public/_nuxt/{wbj-mIhK.js → CVJh28bx.js} +1 -1
  6. package/.output/public/_nuxt/{BDqHART1.js → CxHOXVf6.js} +1 -1
  7. package/.output/public/_nuxt/CyZuidLG.js +60 -0
  8. package/.output/public/_nuxt/{qt5OEWHC.js → D0op9E2g.js} +1 -1
  9. package/.output/public/_nuxt/{CVvrkZkq.js → DX8awZaa.js} +1 -1
  10. package/.output/public/_nuxt/Detail.z33AHKev.css +1 -0
  11. package/.output/public/_nuxt/{C2HGkiSP.js → DiTJUZOC.js} +1 -1
  12. package/.output/public/_nuxt/{nYTZJhvT.js → Dum5qplW.js} +1 -1
  13. package/.output/public/_nuxt/{BPeTf9dd.js → T_3JE9C-.js} +1 -1
  14. package/.output/public/_nuxt/WOI2tLsR.js +42 -0
  15. package/.output/public/_nuxt/builds/latest.json +1 -1
  16. package/.output/public/_nuxt/builds/meta/029070b0-b8e2-4988-84f4-d0c9ff55c998.json +1 -0
  17. package/.output/public/_nuxt/{B-5VWizU.js → odRGDGwj.js} +1 -1
  18. package/.output/public/_nuxt/{qKRNa41x.js → wbjFvimm.js} +1 -1
  19. package/.output/public/_nuxt/{uTyw4SRK.js → ynmyrfyT.js} +1 -1
  20. package/.output/server/chunks/build/{Detail-DC-KJQ1f.mjs → Detail-CUfU85GY.mjs} +26 -26
  21. package/.output/server/chunks/build/Detail-CUfU85GY.mjs.map +1 -0
  22. package/.output/server/chunks/build/DiffViewer-styles-1.mjs-CS8FTppg.mjs +4 -0
  23. package/.output/server/chunks/build/DiffViewer-styles-1.mjs-CS8FTppg.mjs.map +1 -0
  24. package/.output/server/chunks/build/DiffViewer-styles.AUfwwelI.mjs +10 -0
  25. package/.output/server/chunks/build/DiffViewer-styles.AUfwwelI.mjs.map +1 -0
  26. package/.output/server/chunks/build/DiffViewer-styles.D_it8zfk.mjs +8 -0
  27. package/.output/server/chunks/build/DiffViewer-styles.D_it8zfk.mjs.map +1 -0
  28. package/.output/server/chunks/build/{_prd_-C1C4GAhW.mjs → _prd_-CeVnQzOV.mjs} +3 -3
  29. package/.output/server/chunks/build/_prd_-CeVnQzOV.mjs.map +1 -0
  30. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  31. package/.output/server/chunks/build/{repo-graph-CTEkxiYd.mjs → repo-graph-CHNl58mY.mjs} +3 -3
  32. package/.output/server/chunks/build/repo-graph-CHNl58mY.mjs.map +1 -0
  33. package/.output/server/chunks/build/server.mjs +2 -2
  34. package/.output/server/chunks/build/styles.mjs +2 -2
  35. package/.output/server/chunks/nitro/nitro.mjs +598 -598
  36. package/.output/server/package.json +1 -1
  37. package/README.md +10 -1
  38. package/dist/host/src/mcp.js +2 -0
  39. package/dist/host/src/prompts.js +127 -0
  40. package/docs/MCP.md +13 -1
  41. package/package.json +1 -1
  42. package/.output/public/_nuxt/-k8zG74W.js +0 -61
  43. package/.output/public/_nuxt/BMAq0QVD.js +0 -42
  44. package/.output/public/_nuxt/Detail.CzXXlavD.css +0 -1
  45. package/.output/public/_nuxt/builds/meta/b57a8fc3-6a38-4f58-b2ae-54768412ea40.json +0 -1
  46. package/.output/server/chunks/build/Detail-DC-KJQ1f.mjs.map +0 -1
  47. package/.output/server/chunks/build/DiffViewer-styles-1.mjs-D0sb4vsK.mjs +0 -4
  48. package/.output/server/chunks/build/DiffViewer-styles-1.mjs-D0sb4vsK.mjs.map +0 -1
  49. package/.output/server/chunks/build/DiffViewer-styles.CkSjCQ0r.mjs +0 -10
  50. package/.output/server/chunks/build/DiffViewer-styles.CkSjCQ0r.mjs.map +0 -1
  51. package/.output/server/chunks/build/DiffViewer-styles.FJJuYjYB.mjs +0 -8
  52. package/.output/server/chunks/build/DiffViewer-styles.FJJuYjYB.mjs.map +0 -1
  53. package/.output/server/chunks/build/_prd_-C1C4GAhW.mjs.map +0 -1
  54. package/.output/server/chunks/build/repo-graph-CTEkxiYd.mjs.map +0 -1
  55. package/.output/server/node_modules/shiki/dist/bundle-web.mjs +0 -366
@@ -1 +1 @@
1
- {"id":"b57a8fc3-6a38-4f58-b2ae-54768412ea40","timestamp":1771882728288}
1
+ {"id":"029070b0-b8e2-4988-84f4-d0c9ff55c998","timestamp":1771932607416}
@@ -0,0 +1 @@
1
+ {"id":"029070b0-b8e2-4988-84f4-d0c9ff55c998","timestamp":1771932607416,"prerendered":[]}
@@ -1 +1 @@
1
- import{s as O,l as e,a1 as bt,g as D,k as ne,o as u,x as g,L as q,c as S,n as U,F as te,r as se,v as xt,B as fe,w as p,y as L,q as C,b as m,G as be,p as ke,ac as wt,z as re,A as ve,ad as Ct,j as Qe,M as Me,a as c,t as z,ae as kt,af as St,m as ye,H as le,d as J,a2 as $t,J as Ie,K as Pe,aa as Te,ag as Xe,ab as Et,$ as Rt,ah as Dt}from"./CMu9GKTH.js";import{c as xe,m as Fe,h as At,f as Ye,d as Ze,P as ie,g as Ae,u as Se,o as Bt,B as me,b as et,a as Ve,F as Oe,r as Z,e as Q,n as It}from"./qt5OEWHC.js";import{q as Pt,V as Tt,u as Ft,c as we,a as $e,b as Ot,r as Lt,f as Mt,p as tt,g as Vt,o as zt,n as qt,i as jt,j as Kt,k as Ht,l as Ut,S as Nt,G as st,L as Gt,C as Wt,R as at,B as Jt,d as he,s as Qt,t as ze,v as ot,w as nt,x as lt,X as rt,e as Ee,y as Xt,z as Yt,A as Zt,h as es,K as ts}from"./C_NevjZD.js";import{F as ss,I as as,a as Le}from"./qKRNa41x.js";import{b as qe,u as je,g as os,A as ns}from"./C2HGkiSP.js";import{_ as ls}from"./wbj-mIhK.js";const it=xe("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 ut=xe("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 rs=xe("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);const dt=xe("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 is=xe("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 us(a,t,s){const o=a.findIndex(l=>Fe(l,t)),i=a.findIndex(l=>Fe(l,s));if(o===-1||i===-1)return[];const[r,n]=[o,i].sort((l,f)=>l-f);return a.slice(r,n+1)}function ds(a){const t=O(()=>e(a)),s=O(()=>new Intl.Collator("en",{usage:"search",...t.value}));return{startsWith:(n,l)=>l.length===0?!0:(n=n.normalize("NFC"),l=l.normalize("NFC"),s.value.compare(n.slice(0,l.length),l)===0),endsWith:(n,l)=>l.length===0?!0:(n=n.normalize("NFC"),l=l.normalize("NFC"),s.value.compare(n.slice(-l.length),l)===0),contains:(n,l)=>{if(l.length===0)return!0;n=n.normalize("NFC"),l=l.normalize("NFC");let f=0;const v=l.length;for(;f+v<=n.length;f++){const y=n.slice(f,f+v);if(s.value.compare(l,y)===0)return!0}return!1}}}function cs(a){return O(()=>bt(a)?!!At(a)?.closest("form"):!0)}function ps(){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 fs(a){const t=Ye("",1e3);return{search:t,handleTypeaheadSearch:(i,r)=>{t.value=t.value+i;{const n=Pt(),l=r.map(_=>({..._,textValue:_.value?.textValue??_.ref.textContent?.trim()??""})),f=l.find(_=>_.ref===n),v=l.map(_=>_.textValue),y=vs(v,t.value,f?.textValue),d=l.find(_=>_.textValue===y);return d&&d.ref.focus(),d?.ref}},resetTypeahead:()=>{t.value=""}}}function ms(a,t){return a.map((s,o)=>a[(t+o)%a.length])}function vs(a,t,s){const i=t.length>1&&Array.from(t).every(v=>v===t[0])?t[0]:t,r=s?a.indexOf(s):-1;let n=ms(a,Math.max(r,0));i.length===1&&(n=n.filter(v=>v!==s));const f=n.find(v=>v.toLowerCase().startsWith(i.toLowerCase()));return f!==s?f:void 0}var hs=D({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(a){const t=a,{primitiveElement:s,currentElement:o}=qe(),i=O(()=>t.checked??t.value);return ne(i,(r,n)=>{if(!o.value)return;const l=o.value,f=window.HTMLInputElement.prototype,y=Object.getOwnPropertyDescriptor(f,"value").set;if(y&&r!==n){const d=new Event("input",{bubbles:!0}),_=new Event("change",{bubbles:!0});y.call(l,r),l.dispatchEvent(d),l.dispatchEvent(_)}}),(r,n)=>(u(),g(Tt,q({ref_key:"primitiveElement",ref:s},{...t,...r.$attrs},{as:"input"}),null,16))}}),Ne=hs,gs=D({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(a){const t=a,s=O(()=>typeof t.value=="object"&&Array.isArray(t.value)&&t.value.length===0&&t.required),o=O(()=>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((i,r)=>typeof i=="object"?Object.entries(i).map(([n,l])=>({name:`${t.name}[${r}][${n}]`,value:l})):{name:`${t.name}[${r}]`,value:i}):t.value!==null&&typeof t.value=="object"&&!Array.isArray(t.value)?Object.entries(t.value).map(([i,r])=>({name:`${t.name}[${i}]`,value:r})):[]);return(i,r)=>(u(),S(te,null,[U(" We render single input if it's required "),s.value?(u(),g(Ne,q({key:i.name},{...t,...i.$attrs},{name:i.name,value:i.value}),null,16,["name","value"])):(u(!0),S(te,{key:1},se(o.value,n=>(u(),g(Ne,q({key:n.name},{ref_for:!0},{...t,...i.$attrs},{name:n.name,value:n.value}),null,16,["name","value"]))),128))],2112))}}),ys=gs;function _s(a,t,s){return a===void 0?!1:Array.isArray(a)?a.some(o=>_e(o,t,s)):_e(a,t,s)}function _e(a,t,s){return a===void 0||t===void 0?!1:typeof a=="string"?a===t:typeof s=="function"?s(a,t):typeof s=="string"?a?.[s]===t?.[s]:Fe(a,t)}const[Ke,bs]=we("ListboxRoot");var xs=D({__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(a,{expose:t,emit:s}){const o=a,i=s,{multiple:r,highlightOnHover:n,orientation:l,disabled:f,selectionBehavior:v,dir:y}=xt(o),{getItems:d}=je({isProvider:!0}),{handleTypeaheadSearch:_}=fs(),{primitiveElement:A,currentElement:w}=qe(),T=ps(),F=Ft(y),b=cs(w),M=C(),R=C(!1),j=C(!0),B=Ze(o,"modelValue",i,{defaultValue:o.defaultValue??(r.value?[]:void 0),passive:o.modelValue===void 0,deep:!0});function ae(h){if(R.value=!0,o.multiple){const k=Array.isArray(B.value)?[...B.value]:[],E=k.findIndex(H=>_e(H,h,o.by));o.selectionBehavior==="toggle"?(E===-1?k.push(h):k.splice(E,1),B.value=k):(B.value=[h],M.value=h)}else o.selectionBehavior==="toggle"&&_e(B.value,h,o.by)?B.value=void 0:B.value=h;setTimeout(()=>{R.value=!1},1)}const K=C(null),oe=C(null),ee=C(!1),G=C(!1),X=Ae(),W=Ae(),Y=Ae();function $(){return d().map(h=>h.ref).filter(h=>h.dataset.disabled!=="")}function I(h,k=!0){if(!h)return;K.value=h,j.value&&K.value.focus(),k&&K.value.scrollIntoView({block:"nearest"});const E=d().find(H=>H.ref===h);i("highlight",E)}function N(h){if(ee.value)Y.trigger(h);else{const k=d().find(E=>_e(E.value,h,o.by));k&&(K.value=k.ref,I(k.ref))}}function ue(h){K.value&&K.value.isConnected&&(h.preventDefault(),h.stopPropagation(),G.value||K.value.click())}function V(h){if(j.value){if(R.value=!0,ee.value)W.trigger(h);else{const k=h.altKey||h.ctrlKey||h.metaKey;if(k&&h.key==="a"&&r.value){const E=d(),H=E.map(ce=>ce.value);B.value=[...H],h.preventDefault(),I(E[E.length-1].ref)}else if(!k){const E=_(h.key,d());E&&I(E)}}setTimeout(()=>{R.value=!1},1)}}function x(){G.value=!0}function P(){fe(()=>{G.value=!1})}function de(){fe(()=>{const h=new KeyboardEvent("keydown",{key:"PageUp"});He(h)})}function De(h){const k=K.value;k?.isConnected&&(oe.value=k),K.value=null,i("leave",h)}function gt(h){const k=new CustomEvent("listbox.entryFocus",{bubbles:!1,cancelable:!0});if(h.currentTarget?.dispatchEvent(k),i("entryFocus",k),!k.defaultPrevented)if(oe.value)I(oe.value);else{const E=$()?.[0];I(E)}}function He(h){const k=os(h,l.value,F.value);if(!k)return;let E=$();if(K.value){if(k==="last")E.reverse();else if(k==="prev"||k==="next"){k==="prev"&&E.reverse();const H=E.indexOf(K.value);E=E.slice(H+1)}yt(h,E[0])}if(E.length){const H=!K.value&&k==="prev"?E.length-1:0;I(E[H])}if(ee.value)return W.trigger(h)}function yt(h,k){if(!(ee.value||o.selectionBehavior!=="replace"||!r.value||!Array.isArray(B.value)||(h.altKey||h.ctrlKey||h.metaKey)&&!h.shiftKey)&&h.shiftKey){const H=d().filter(ge=>ge.ref.dataset.disabled!=="");let ce=H.find(ge=>ge.ref===k)?.value;if(h.key===T.END?ce=H[H.length-1].value:h.key===T.HOME&&(ce=H[0].value),!ce||!M.value)return;const _t=us(H.map(ge=>ge.value),M.value,ce);B.value=_t}}async function Ue(h){if(await fe(),ee.value)X.trigger(h);else{const k=$(),E=k.find(H=>H.dataset.state==="checked");E?I(E):k.length&&I(k[0])}}return ne(B,()=>{R.value||fe(()=>{Ue()})},{immediate:!0,deep:!0}),t({highlightedElement:K,highlightItem:N,highlightFirstItem:de,highlightSelected:Ue,getItems:d}),bs({modelValue:B,onValueChange:ae,multiple:r,orientation:l,dir:F,disabled:f,highlightOnHover:n,highlightedElement:K,isVirtual:ee,virtualFocusHook:X,virtualKeydownHook:W,virtualHighlightHook:Y,by:o.by,firstValue:M,selectionBehavior:v,focusable:j,onLeave:De,onEnter:gt,changeHighlight:I,onKeydownEnter:ue,onKeydownNavigation:He,onKeydownTypeAhead:V,onCompositionStart:x,onCompositionEnd:P,highlightFirstItem:de}),(h,k)=>(u(),g(e(ie),{ref_key:"primitiveElement",ref:A,as:h.as,"as-child":h.asChild,dir:e(F),"data-disabled":e(f)?"":void 0,onPointerleave:De,onFocusout:k[0]||(k[0]=async E=>{const H=E.relatedTarget||E.target;await fe(),K.value&&e(w)&&!e(w).contains(H)&&De(E)})},{default:p(()=>[L(h.$slots,"default",{modelValue:e(B)}),e(b)&&h.name?(u(),g(e(ys),{key:0,name:h.name,value:e(B),disabled:e(f),required:h.required},null,8,["name","value","disabled","required"])):U("v-if",!0)]),_:3},8,["as","as-child","dir","data-disabled"]))}}),ws=xs,Cs=D({__name:"ListboxContent",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(a){const{CollectionSlot:t}=je(),s=Ke(),o=Ye(!1,10);return(i,r)=>(u(),g(e(t),null,{default:p(()=>[m(e(ie),{role:"listbox",as:i.as,"as-child":i.asChild,tabindex:e(s).focusable.value?e(s).highlightedElement.value?"-1":"0":"-1","aria-orientation":e(s).orientation.value,"aria-multiselectable":!!e(s).multiple.value,"data-orientation":e(s).orientation.value,onMousedown:r[0]||(r[0]=ke(n=>o.value=!0,["left"])),onFocus:r[1]||(r[1]=n=>{e(o)||e(s).onEnter(n)}),onKeydown:[r[2]||(r[2]=be(n=>{e(s).orientation.value==="vertical"&&(n.key==="ArrowLeft"||n.key==="ArrowRight")||e(s).orientation.value==="horizontal"&&(n.key==="ArrowUp"||n.key==="ArrowDown")||(n.preventDefault(),e(s).focusable.value&&e(s).onKeydownNavigation(n))},["down","up","left","right","home","end"])),be(e(s).onKeydownEnter,["enter"]),e(s).onKeydownTypeAhead]},{default:p(()=>[L(i.$slots,"default")]),_:3},8,["as","as-child","tabindex","aria-orientation","aria-multiselectable","data-orientation","onKeydown"])]),_:3}))}}),ks=Cs,Ss=D({__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(a,{emit:t}){const s=a,i=Ze(s,"modelValue",t,{defaultValue:"",passive:s.modelValue===void 0}),r=Ke(),{primitiveElement:n,currentElement:l}=qe(),f=O(()=>s.disabled||r.disabled.value||!1),v=C();return wt(()=>v.value=r.highlightedElement.value?.id),re(()=>{r.focusable.value=!1,setTimeout(()=>{s.autoFocus&&l.value?.focus()},1)}),ve(()=>{r.focusable.value=!0}),(y,d)=>(u(),g(e(ie),{ref_key:"primitiveElement",ref:n,as:y.as,"as-child":y.asChild,value:e(i),disabled:f.value?"":void 0,"data-disabled":f.value?"":void 0,"aria-disabled":f.value??void 0,"aria-activedescendant":v.value,type:"text",onKeydown:[be(ke(e(r).onKeydownNavigation,["prevent"]),["down","up","home","end"]),be(e(r).onKeydownEnter,["enter"])],onInput:d[0]||(d[0]=_=>{i.value=_.target.value,e(r).highlightFirstItem()}),onCompositionstart:e(r).onCompositionStart,onCompositionend:e(r).onCompositionEnd},{default:p(()=>[L(y.$slots,"default",{modelValue:e(i)})]),_:3},8,["as","as-child","value","disabled","data-disabled","aria-disabled","aria-activedescendant","onKeydown","onCompositionstart","onCompositionend"]))}}),$s=Ss;const[Es,Rs]=we("ListboxGroup");var Ds=D({__name:"ListboxGroup",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(a){const t=a,s=$e(void 0,"reka-listbox-group");return Rs({id:s}),(o,i)=>(u(),g(e(ie),q({role:"group"},t,{"aria-labelledby":e(s)}),{default:p(()=>[L(o.$slots,"default")]),_:3},16,["aria-labelledby"]))}}),As=Ds,Bs=D({__name:"ListboxGroupLabel",props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},setup(a){const t=a,s=Es({id:""});return(o,i)=>(u(),g(e(ie),q(t,{id:e(s).id}),{default:p(()=>[L(o.$slots,"default")]),_:3},16,["id"]))}}),Is=Bs;const Ps="listbox.select",[Oo,Ts]=we("ListboxItem");var Fs=D({__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(a,{emit:t}){const s=a,o=t,i=$e(void 0,"reka-listbox-item"),{CollectionItem:r}=je(),{forwardRef:n,currentElement:l}=Ot(),f=Ke(),v=O(()=>l.value===f.highlightedElement.value),y=O(()=>_s(f.modelValue.value,s.value,f.by)),d=O(()=>f.disabled.value||s.disabled);async function _(w){o("select",w),!w?.defaultPrevented&&!d.value&&w&&(f.onValueChange(s.value),f.changeHighlight(l.value))}function A(w){const T={originalEvent:w,value:s.value};Lt(Ps,_,T)}return Ts({isSelected:y}),(w,T)=>(u(),g(e(r),{value:w.value},{default:p(()=>[Ct([v.value,y.value],()=>m(e(ie),q({id:e(i)},w.$attrs,{ref:e(n),role:"option",tabindex:e(f).focusable.value?v.value?"0":"-1":-1,"aria-selected":y.value,as:w.as,"as-child":w.asChild,disabled:d.value?"":void 0,"data-disabled":d.value?"":void 0,"data-highlighted":v.value?"":void 0,"data-state":y.value?"checked":"unchecked",onClick:A,onKeydown:be(ke(A,["prevent"]),["space"]),onPointermove:T[0]||(T[0]=()=>{e(f).highlightedElement.value!==e(l)&&e(f).highlightOnHover.value&&!e(f).focusable.value&&e(f).changeHighlight(e(l),!1)})}),{default:p(()=>[L(w.$slots,"default")]),_:3},16,["id","tabindex","aria-selected","as","as-child","disabled","data-disabled","data-highlighted","data-state","onKeydown"]),T,1)]),_:3},8,["value"]))}}),Os=Fs;const Ls={class:"flex items-center gap-2 truncate"},Ms={class:"truncate"},Vs={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"},zs={class:"max-h-[200px] overflow-y-auto"},qs=["aria-selected","onClick"],js={class:"flex flex-1 flex-col gap-0.5 overflow-hidden text-left"},Ks={class:"truncate font-medium"},Hs={class:"truncate text-xs text-muted-foreground"},Us=["onClick"],Ns={key:1,class:"px-2 py-1.5 text-sm text-muted-foreground"},Gs={key:2,class:"my-1 h-px bg-border"},Ws={class:"space-y-2"},Js={class:"flex gap-2"},Qs={key:0,class:"text-sm text-destructive"},Xs={key:0,class:"space-y-2 rounded-md border p-3"},Ys={class:"flex items-center gap-2 text-sm"},Zs=["disabled"],ea={class:"flex-1 truncate font-mono text-xs text-muted-foreground"},ta={class:"max-h-[200px] overflow-y-auto"},sa={key:0,class:"py-2 text-center text-sm text-muted-foreground"},aa={key:1,class:"py-2 text-center text-sm text-muted-foreground"},oa=["onClick"],na={class:"truncate"},la={key:0},ra={key:1},ia=D({__name:"RepoSelector",setup(a,{expose:t}){const s=Qe(),o=Me(),{repos:i,currentRepo:r,currentRepoId:n,selectRepo:l,addRepo:f,removeRepo:v}=Se(),{showSuccess:y}=et(),d=C(!1),_=C(""),A=C(null);Bt(A,()=>{d.value&&(d.value=!1,_.value="")}),ne(()=>o.fullPath,()=>{d.value=!1,_.value=""});async function w(V){l(V),d.value=!1,_.value="";try{const P=(await $fetch(`/api/repos/${V}/prds`))?.[0];P?s.push(`/${V}/${P.slug}`):s.push("/")}catch{s.push("/")}}function T(){d.value=!1,G.value=!0}const F=C(!1),b=C(""),M=C(""),R=C([]),j=C(!1),B=O(()=>!!M.value&&M.value!==b.value);async function ae(V){j.value=!0;try{const x=await $fetch("/api/browse",{query:{path:V||b.value||void 0}});b.value=x.current,M.value=x.parent,R.value=x.directories}catch{}finally{j.value=!1}}function K(){F.value=!0,ae(X.value||void 0)}function oe(V){X.value=V,F.value=!1,W.value=null}function ee(){B.value&&ae(M.value)}const G=C(!1),X=C(""),W=C(null),Y=C(!1),$=O(()=>{if(!_.value)return i.value;const V=_.value.toLowerCase();return i.value?.filter(x=>x.name.toLowerCase().includes(V)||x.path.toLowerCase().includes(V))??[]});async function I(){if(!X.value.trim()){W.value="Please enter a repository path";return}Y.value=!0,W.value=null;try{const V=await f(X.value.trim());if(G.value=!1,X.value="",y("Repository added",V?.name||"Successfully added repository"),V?.id)try{const P=(await $fetch(`/api/repos/${V.id}/prds`))?.[0];P&&s.push(`/${V.id}/${P.slug}`)}catch{}}catch(V){if(V instanceof Error){const x=V;W.value=x.data?.message||V.message}else W.value="Failed to add repository"}finally{Y.value=!1}}async function N(V,x){V.stopPropagation(),await v(x)}function ue(){G.value=!1,X.value="",W.value=null}return t({openAddDialog:()=>{G.value=!0}}),(V,x)=>(u(),S("div",{ref_key:"dropdownRef",ref:A,class:"relative"},[c("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]=P=>d.value=!e(d))},[c("span",Ls,[m(e(ss),{class:"size-4 shrink-0 text-muted-foreground"}),c("span",Ms,z(e(r)?.name??"Select repository"),1)]),m(e(Mt),{class:"size-4 shrink-0 opacity-50"})]),e(d)?(u(),S("div",Vs,[kt(c("input",{"onUpdate:modelValue":x[1]||(x[1]=P=>ye(_)?_.value=P: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),[[St,e(_)]]),c("div",zs,[e($)?.length?(u(!0),S(te,{key:0},se(e($),P=>(u(),S("div",{key:P.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(n)===P.id,onClick:de=>w(P.id)},[m(e(tt),{class:le(["size-4 shrink-0",e(n)===P.id?"opacity-100":"opacity-0"])},null,8,["class"]),c("div",js,[c("span",Ks,z(P.name),1),c("span",Hs,z(P.path),1)]),c("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:de=>N(de,P.id)},[m(e(is),{class:"size-3.5 text-destructive"})],8,Us)],8,qs))),128)):(u(),S("div",Ns," No repositories found. ")),e($)?.length?(u(),S("div",Gs)):U("",!0),c("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:T},[m(e(Vt),{class:"size-4"}),x[5]||(x[5]=c("span",null,"Add repository...",-1))])])])):U("",!0),m(e(zt),{open:e(G),"onUpdate:open":x[4]||(x[4]=P=>G.value=P)},{default:p(()=>[m(e(qt),{side:"right",class:"flex h-full flex-col",onEscapeKeyDown:ue},{default:p(()=>[m(e(jt),{class:"px-6"},{default:p(()=>[m(e(Kt),null,{default:p(()=>[...x[6]||(x[6]=[J("Add Repository",-1)])]),_:1}),m(e(Ht),null,{default:p(()=>[...x[7]||(x[7]=[J(" Enter the absolute path to a repository containing PRD documents. ",-1)])]),_:1})]),_:1}),c("form",{id:"add-repo-form",class:"min-h-0 flex-1 space-y-4 overflow-y-auto px-6",onSubmit:ke(I,["prevent"])},[c("div",Ws,[x[8]||(x[8]=c("label",{for:"repo-path",class:"text-sm font-medium"}," Repository Path ",-1)),c("div",Js,[m(e(as),{id:"repo-path",modelValue:e(X),"onUpdate:modelValue":x[2]||(x[2]=P=>ye(X)?X.value=P:null),placeholder:"/path/to/your/project","aria-invalid":!!e(W),disabled:e(Y),class:"flex-1"},null,8,["modelValue","aria-invalid","disabled"]),m(e(me),{type:"button",variant:"outline",size:"icon",disabled:e(Y),onClick:K},{default:p(()=>[m(e(Le),{class:"size-4"})]),_:1},8,["disabled"])]),e(W)?(u(),S("p",Qs,z(e(W)),1)):U("",!0),x[9]||(x[9]=c("p",{class:"text-xs text-muted-foreground"},[J(" The repository should contain a "),c("code",{class:"rounded bg-muted px-1"},"docs/prd/"),J(" directory with markdown files. ")],-1))]),e(F)?(u(),S("div",Xs,[c("div",Ys,[c("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(B),onClick:ee},[m(e(ns),{class:"size-3"}),x[10]||(x[10]=J(" Up ",-1))],8,Zs),c("span",ea,z(e(b)),1),m(e(me),{type:"button",variant:"ghost",size:"sm",class:"h-7 text-xs",onClick:x[3]||(x[3]=P=>oe(e(b)))},{default:p(()=>[...x[11]||(x[11]=[J(" Select ",-1)])]),_:1})]),c("div",ta,[e(j)?(u(),S("div",sa," Loading... ")):e(R).length?(u(!0),S(te,{key:2},se(e(R),P=>(u(),S("button",{key:P.path,type:"button",class:"flex w-full items-center gap-2 rounded px-2 py-1 text-sm hover:bg-accent",onClick:de=>ae(P.path)},[m(e(Le),{class:"size-4 text-muted-foreground"}),c("span",na,z(P.name),1)],8,oa))),128)):(u(),S("div",aa," No subdirectories "))])])):U("",!0)],32),m(e(Ut),{class:"px-6 pb-6"},{default:p(()=>[m(e(me),{type:"button",variant:"outline",disabled:e(Y),onClick:ue},{default:p(()=>[...x[12]||(x[12]=[J(" Cancel ",-1)])]),_:1},8,["disabled"]),m(e(me),{type:"submit",form:"add-repo-form",disabled:e(Y)},{default:p(()=>[e(Y)?(u(),S("span",la,"Adding...")):(u(),S("span",ra,"Add Repository"))]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["open"])],512))}}),ua=Object.assign(ia,{__name:"LayoutRepoSelector"}),da={class:"flex h-full w-64 flex-col border-r border-border bg-background"},ca={class:"p-2"},pa={key:1,class:"flex items-center justify-center py-8"},fa={key:2,class:"px-2 py-8 text-center"},ma={key:3,class:"px-2 py-8 text-center"},va={key:4,class:"px-2 py-8 text-center"},ha={key:5,class:"space-y-1"},ga={class:"flex-1 truncate"},ya=D({__name:"Sidebar",setup(a){const t=Me(),{prds:s,prdsStatus:o,refreshPrds:i}=Ve(),{currentRepoId:r}=Se(),n=O(()=>t.params.prd);function l(y){return n.value===y}const f=O(()=>r.value?`/${r.value}/repo-graph`:"/"),v=O(()=>r.value?t.path===`/${r.value}/repo-graph`:!1);return(y,d)=>{const _=ls;return u(),S("aside",da,[m(e(Nt),{class:"flex-1"},{default:p(()=>[c("div",ca,[e(r)?(u(),g(_,{key:0,to:e(f),class:le(["group mb-2 flex items-center gap-3 rounded-md px-3 py-2 text-sm transition-colors",[e(v)?"bg-accent text-accent-foreground":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"]])},{default:p(()=>[m(e(st),{class:"size-4 shrink-0"}),d[0]||(d[0]=c("span",{class:"flex-1 truncate"},"Repo Graph",-1))]),_:1},8,["to","class"])):U("",!0),d[6]||(d[6]=c("h2",{class:"flex h-10 items-center px-2 text-sm font-medium text-muted-foreground"},"Documents",-1)),e(o)==="pending"?(u(),S("div",pa,[m(e(Gt),{class:"size-5 animate-spin text-muted-foreground"})])):e(r)?e(o)==="error"?(u(),S("div",ma,[m(e(Wt),{class:"mx-auto size-8 text-destructive/50"}),d[3]||(d[3]=c("p",{class:"mt-2 text-sm text-muted-foreground"}," Failed to load PRDs ",-1)),m(e(me),{variant:"ghost",size:"sm",class:"mt-2",onClick:e(i)},{default:p(()=>[m(e(at),{class:"mr-1 size-3"}),d[2]||(d[2]=J(" Retry ",-1))]),_:1},8,["onClick"])])):e(s)?.length?(u(),S("nav",ha,[(u(!0),S(te,null,se(e(s),A=>(u(),g(_,{key:A.slug,to:`/${e(r)}/${A.slug}`,class:le(["group flex items-center gap-3 rounded-md px-3 py-2 text-sm transition-colors",[l(A.slug)?"bg-accent text-accent-foreground":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"]])},{default:p(()=>[m(e(Oe),{class:"size-4 shrink-0"}),c("span",ga,z(A.name),1),A.hasState&&A.taskCount?(u(),g(e(Jt),{key:0,variant:"secondary",class:"shrink-0 text-xs"},{default:p(()=>[J(z(A.completedCount??0)+"/"+z(A.taskCount),1)]),_:2},1024)):U("",!0)]),_:2},1032,["to","class"]))),128))])):(u(),S("div",va,[m(e(Oe),{class:"mx-auto size-8 text-muted-foreground/50"}),d[4]||(d[4]=c("p",{class:"mt-2 text-sm text-muted-foreground"}," No PRDs found ",-1)),d[5]||(d[5]=c("p",{class:"mt-1 text-xs text-muted-foreground/70"}," Add .md files to docs/prd/ ",-1))])):(u(),S("div",fa,[...d[1]||(d[1]=[c("p",{class:"text-sm text-muted-foreground"}," Select a repository to view PRDs ",-1)])]))])]),_:1})])}}}),_a=Object.assign(ya,{__name:"LayoutSidebar"}),ba=D({__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(a,{emit:t}){const s=a,o=t,i=Z(s,"class"),r=he(i,o),n=C(new Map),l=C(new Map),{contains:f}=ds({sensitivity:"base"}),v=$t({search:s.defaultSearch||"",filtered:{count:0,items:new Map,groups:new Set}});ne(()=>s.defaultSearch,d=>{d!==void 0&&(v.search=d)});function y(){if(!v.search){v.filtered.count=n.value.size;return}v.filtered.groups=new Set;let d=0;for(const[_,A]of n.value){const w=f(A,v.search);v.filtered.items.set(_,w?1:0),w&&d++}for(const[_,A]of l.value)for(const w of A)if(v.filtered.items.get(w)>0){v.filtered.groups.add(_);break}v.filtered.count=d}return ne(()=>v.search,()=>{y()}),ne(()=>n.value.size,()=>{v.search&&y()}),Ga({allItems:n,allGroups:l,filterState:v}),(d,_)=>(u(),g(e(ws),q({"data-slot":"command"},e(r),{class:e(Q)("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",s.class)}),{default:p(()=>[L(d.$slots,"default")]),_:3},16,["class"]))}}),xa=Object.assign(ba,{__name:"UiCommand"}),wa=D({__name:"Dialog",props:{open:{type:Boolean},defaultOpen:{type:Boolean},modal:{type:Boolean}},emits:["update:open"],setup(a,{emit:t}){const i=he(a,t);return(r,n)=>(u(),g(e(Qt),q({"data-slot":"dialog"},e(i)),{default:p(l=>[L(r.$slots,"default",Ie(Pe(l)))]),_:3},16))}}),ct=Object.assign(wa,{__name:"UiDialog"}),Ca=D({__name:"DialogClose",props:{asChild:{type:Boolean},as:{}},setup(a){const t=a;return(s,o)=>(u(),g(e(ze),q({"data-slot":"dialog-close"},t),{default:p(()=>[L(s.$slots,"default")]),_:3},16))}});Object.assign(Ca,{__name:"UiDialogClose"});const ka=D({__name:"DialogOverlay",props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(a){const t=a,s=Z(t,"class");return(o,i)=>(u(),g(e(ot),q({"data-slot":"dialog-overlay"},e(s),{class:e(Q)("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:p(()=>[L(o.$slots,"default")]),_:3},16,["class"]))}}),Sa=Object.assign(ka,{__name:"UiDialogOverlay"}),$a=D({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(a,{emit:t}){const s=a,o=t,i=Z(s,"class"),r=he(i,o);return(n,l)=>(u(),g(e(nt),null,{default:p(()=>[m(Sa),m(e(lt),q({"data-slot":"dialog-content"},{...n.$attrs,...e(r)},{class:e(Q)("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",s.class)}),{default:p(()=>[L(n.$slots,"default"),a.showCloseButton?(u(),g(e(ze),{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:p(()=>[m(e(rt)),l[0]||(l[0]=c("span",{class:"sr-only"},"Close",-1))]),_:1})):U("",!0)]),_:3},16,["class"])]),_:3}))}}),pt=Object.assign($a,{__name:"UiDialogContent"}),Ea=D({__name:"DialogDescription",props:{asChild:{type:Boolean},as:{},class:{}},setup(a){const t=a,s=Z(t,"class"),o=Ee(s);return(i,r)=>(u(),g(e(Xt),q({"data-slot":"dialog-description"},e(o),{class:e(Q)("text-muted-foreground text-sm",t.class)}),{default:p(()=>[L(i.$slots,"default")]),_:3},16,["class"]))}}),ft=Object.assign(Ea,{__name:"UiDialogDescription"}),Ra=D({__name:"DialogFooter",props:{class:{}},setup(a){const t=a;return(s,o)=>(u(),S("div",{"data-slot":"dialog-footer",class:le(e(Q)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",t.class))},[L(s.$slots,"default")],2))}});Object.assign(Ra,{__name:"UiDialogFooter"});const Da=D({__name:"DialogHeader",props:{class:{}},setup(a){const t=a;return(s,o)=>(u(),S("div",{"data-slot":"dialog-header",class:le(e(Q)("flex flex-col gap-2 text-center sm:text-left",t.class))},[L(s.$slots,"default")],2))}}),mt=Object.assign(Da,{__name:"UiDialogHeader"}),Aa=D({inheritAttrs:!1,__name:"DialogScrollContent",props:{forceMount:{type:Boolean},disableOutsidePointerEvents:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(a,{emit:t}){const s=a,o=t,i=Z(s,"class"),r=he(i,o);return(n,l)=>(u(),g(e(nt),null,{default:p(()=>[m(e(ot),{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:p(()=>[m(e(lt),q({class:e(Q)("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",s.class)},{...n.$attrs,...e(r)},{onPointerDownOutside:l[0]||(l[0]=f=>{const v=f.detail.originalEvent,y=v.target;(v.offsetX>y.clientWidth||v.offsetY>y.clientHeight)&&f.preventDefault()})}),{default:p(()=>[L(n.$slots,"default"),m(e(ze),{class:"absolute top-4 right-4 p-0.5 transition-colors rounded-md hover:bg-secondary"},{default:p(()=>[m(e(rt),{class:"w-4 h-4"}),l[1]||(l[1]=c("span",{class:"sr-only"},"Close",-1))]),_:1})]),_:3},16,["class"])]),_:3})]),_:3}))}});Object.assign(Aa,{__name:"UiDialogScrollContent"});const Ba=D({__name:"DialogTitle",props:{asChild:{type:Boolean},as:{},class:{}},setup(a){const t=a,s=Z(t,"class"),o=Ee(s);return(i,r)=>(u(),g(e(Yt),q({"data-slot":"dialog-title"},e(o),{class:e(Q)("text-lg leading-none font-semibold",t.class)}),{default:p(()=>[L(i.$slots,"default")]),_:3},16,["class"]))}}),vt=Object.assign(Ba,{__name:"UiDialogTitle"}),Ia=D({__name:"DialogTrigger",props:{asChild:{type:Boolean},as:{}},setup(a){const t=a;return(s,o)=>(u(),g(e(Zt),q({"data-slot":"dialog-trigger"},t),{default:p(()=>[L(s.$slots,"default")]),_:3},16))}});Object.assign(Ia,{__name:"UiDialogTrigger"});const Pa=D({__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(a,{emit:t}){const i=he(a,t);return(r,n)=>(u(),g(e(ct),Ie(Pe(e(i))),{default:p(l=>[m(e(pt),{class:"overflow-hidden p-0","show-close-button":!1},{default:p(()=>[m(e(mt),{class:"sr-only"},{default:p(()=>[m(e(vt),null,{default:p(()=>[J(z(a.title),1)]),_:1}),m(e(ft),null,{default:p(()=>[J(z(a.description),1)]),_:1})]),_:1}),m(xa,{"default-search":a.defaultSearch},{default:p(()=>[L(r.$slots,"default",Ie(Pe(l)))]),_:2},1032,["default-search"])]),_:2},1024)]),_:3},16))}}),Ta=Object.assign(Pa,{__name:"UiCommandDialog"}),Fa=D({__name:"CommandEmpty",props:{asChild:{type:Boolean},as:{},class:{}},setup(a){const t=a,s=Z(t,"class"),{filterState:o}=Re(),i=O(()=>!!o.search&&o.filtered.count===0);return(r,n)=>i.value?(u(),g(e(ie),q({key:0,"data-slot":"command-empty"},e(s),{class:e(Q)("py-6 text-center text-sm",t.class)}),{default:p(()=>[L(r.$slots,"default")]),_:3},16,["class"])):U("",!0)}}),Oa=Object.assign(Fa,{__name:"UiCommandEmpty"}),La=D({__name:"CommandGroup",props:{asChild:{type:Boolean},as:{},class:{},heading:{}},setup(a){const t=a,s=Z(t,"class"),{allGroups:o,filterState:i}=Re(),r=$e(),n=O(()=>i.search?i.filtered.groups.has(r):!0);return Ja({id:r}),re(()=>{o.value.has(r)||o.value.set(r,new Set)}),ve(()=>{o.value.delete(r)}),(l,f)=>(u(),g(e(As),q(e(s),{id:e(r),"data-slot":"command-group",class:e(Q)("text-foreground overflow-hidden p-1",t.class),hidden:n.value?void 0:!0}),{default:p(()=>[a.heading?(u(),g(e(Is),{key:0,"data-slot":"command-group-heading",class:"px-2 py-1.5 text-xs font-medium text-muted-foreground"},{default:p(()=>[J(z(a.heading),1)]),_:1})):U("",!0),L(l.$slots,"default")]),_:3},16,["id","class","hidden"]))}}),Be=Object.assign(La,{__name:"UiCommandGroup"}),Ma={"data-slot":"command-input-wrapper",class:"flex h-9 items-center gap-2 border-b px-3"},Va=D({inheritAttrs:!1,__name:"CommandInput",props:{modelValue:{},autoFocus:{type:Boolean},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(a){const t=a,s=Z(t,"class"),o=Ee(s),{filterState:i}=Re(),r=C(null);return re(()=>{fe(()=>{const n=r.value?.$el;if(n&&i.search){const l=i.search.length;n.setSelectionRange(l,l)}})}),(n,l)=>(u(),S("div",Ma,[m(e(rs),{class:"size-4 shrink-0 opacity-50"}),m(e($s),q({ref_key:"inputRef",ref:r},{...e(o),...n.$attrs},{modelValue:e(i).search,"onUpdate:modelValue":l[0]||(l[0]=f=>e(i).search=f),"data-slot":"command-input","auto-focus":"",class:e(Q)("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"])]))}}),za=Object.assign(Va,{__name:"UiCommandInput"}),qa=D({__name:"CommandItem",props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},emits:["select"],setup(a,{emit:t}){const s=a,o=t,i=Z(s,"class"),r=he(i,o),n=$e(),{filterState:l,allItems:f,allGroups:v}=Re(),y=Wa(),d=O(()=>{if(l.search){const w=l.filtered.items.get(n);return w===void 0?!0:w>0}else return!0}),_=C(),A=It(_);return re(()=>{if(!(A.value instanceof HTMLElement))return;f.value.set(n,A.value.textContent??s.value?.toString()??"");const w=y?.id;w&&(v.value.has(w)?v.value.get(w)?.add(n):v.value.set(w,new Set([n])))}),ve(()=>{f.value.delete(n)}),(w,T)=>d.value?(u(),g(e(Os),q({key:0},e(r),{id:e(n),ref_key:"itemRef",ref:_,"data-slot":"command-item",class:e(Q)("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",s.class),onSelect:T[0]||(T[0]=()=>{e(l).search=""})}),{default:p(()=>[L(w.$slots,"default")]),_:3},16,["id","class"])):U("",!0)}}),pe=Object.assign(qa,{__name:"UiCommandItem"}),ja={role:"presentation"},Ka=D({__name:"CommandList",props:{asChild:{type:Boolean},as:{},class:{}},setup(a){const t=a,s=Z(t,"class"),o=Ee(s);return(i,r)=>(u(),g(e(ks),q({"data-slot":"command-list"},e(o),{class:e(Q)("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto scrollbar-none",t.class)}),{default:p(()=>[c("div",ja,[L(i.$slots,"default")])]),_:3},16,["class"]))}}),Ha=Object.assign(Ka,{__name:"UiCommandList"}),Ua=D({__name:"CommandSeparator",props:{orientation:{},decorative:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(a){const t=a,s=Z(t,"class");return(o,i)=>(u(),g(e(es),q({"data-slot":"command-separator"},e(s),{class:e(Q)("bg-border -mx-1 h-px",t.class)}),{default:p(()=>[L(o.$slots,"default")]),_:3},16,["class"]))}}),Ge=Object.assign(Ua,{__name:"UiCommandSeparator"}),Na=D({__name:"CommandShortcut",props:{class:{}},setup(a){const t=a;return(s,o)=>(u(),S("span",{"data-slot":"command-shortcut",class:le(e(Q)("text-muted-foreground ml-auto text-xs tracking-widest",t.class))},[L(s.$slots,"default")],2))}});Object.assign(Na,{__name:"UiCommandShortcut"});const[Re,Ga]=we("Command"),[Wa,Ja]=we("CommandGroup"),Qa={class:"flex-1"},Xa={class:"flex-1"},Ya={class:"ml-auto flex items-center gap-1"},Za={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"},eo={class:"flex-1"},to={class:"ml-auto flex items-center gap-1"},so={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"},ao={class:"ml-auto flex items-center gap-1"},oo={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"},no=D({__name:"CommandPalette",props:{open:{type:Boolean,default:!1},openModifiers:{},filter:{default:""},filterModifiers:{}},emits:Et(["openShortcutsHelp"],["update:open","update:filter"]),setup(a,{emit:t}){const s=Te(a,"open"),o=Te(a,"filter"),i=t,r=Qe(),{themeMode:n,cycleThemeMode:l}=Xe(),{prds:f}=Ve(),{repos:v,currentRepoId:y,selectRepo:d,refreshGitRepos:_}=Se(),{showSuccess:A,showError:w}=et(),T=["document","board","graph"],F={document:"Document",board:"Task Board",graph:"Graph"},b=C("document");{const $=localStorage.getItem("prd-viewer-tab");($==="document"||$==="board"||$==="graph")&&(b.value=$)}function M($){$.key!=="prd-viewer-tab"||!$.newValue||($.newValue==="document"||$.newValue==="board"||$.newValue==="graph")&&(b.value=$.newValue)}re(()=>{window.addEventListener("storage",M)}),ve(()=>{window.removeEventListener("storage",M)});const R=O(()=>{const $=T.indexOf(b.value),I=$>=0?$:0;return T[(I+1)%T.length]}),j=O(()=>F[R.value]);function B($){y.value&&(r.push(`/${y.value}/${$}`),s.value=!1)}function ae($){d($),r.push("/"),s.value=!1}function K(){l(),s.value=!1}function oe(){const $=R.value;b.value=$,localStorage.setItem("prd-viewer-tab",$),window.dispatchEvent(new StorageEvent("storage",{key:"prd-viewer-tab",newValue:$})),s.value=!1}function ee(){s.value=!1,i("openShortcutsHelp")}const G=C(!1);async function X(){if(!(!y.value||G.value)){G.value=!0,s.value=!1;try{const $=await _(y.value);A(`Discovered ${$.discovered} git repositories`)}catch{w("Failed to refresh git repos")}finally{G.value=!1}}}ne(s,$=>{$||(o.value="")});const W=O(()=>navigator.platform.toUpperCase().indexOf("MAC")>=0),Y=O(()=>W.value?"⌘":"Ctrl");return($,I)=>(u(),g(e(Ta),{open:s.value,"onUpdate:open":I[0]||(I[0]=N=>s.value=N),"default-search":o.value},{default:p(()=>[m(e(za),{placeholder:"Type a command or search..."}),m(e(Ha),null,{default:p(()=>[m(e(Oa),null,{default:p(()=>[...I[1]||(I[1]=[J("No results found.",-1)])]),_:1}),e(f)?.length?(u(),g(e(Be),{key:0,heading:"Documents"},{default:p(()=>[(u(!0),S(te,null,se(e(f),N=>(u(),g(e(pe),{key:N.slug,value:`PRD: ${N.name}`,onSelect:ue=>B(N.slug)},{default:p(()=>[m(e(Oe),{class:"size-4"}),c("span",null,z(N.name),1)]),_:2},1032,["value","onSelect"]))),128))]),_:1})):U("",!0),e(f)?.length&&e(v)?.length?(u(),g(e(Ge),{key:1})):U("",!0),e(v)?.length?(u(),g(e(Be),{key:2,heading:"Repositories"},{default:p(()=>[(u(!0),S(te,null,se(e(v),N=>(u(),g(e(pe),{key:N.id,value:`repo-${N.id} ${N.name}`,onSelect:ue=>ae(N.id)},{default:p(()=>[m(e(Le),{class:"size-4"}),c("span",Qa,z(N.name),1),N.id===e(y)?(u(),g(e(tt),{key:0,class:"size-4 text-primary"})):U("",!0)]),_:2},1032,["value","onSelect"]))),128))]),_:1})):U("",!0),e(v)?.length?(u(),g(e(Ge),{key:3})):U("",!0),m(e(Be),{heading:"Actions"},{default:p(()=>[m(e(pe),{value:"cycle-theme light dark system",onSelect:K},{default:p(()=>[e(n)==="system"?(u(),g(e(it),{key:0,class:"size-4"})):e(n)==="light"?(u(),g(e(dt),{key:1,class:"size-4"})):(u(),g(e(ut),{key:2,class:"size-4"})),c("span",Xa,"Cycle theme mode ("+z(e(n))+")",1),c("div",Ya,[c("kbd",Za,z(e(Y)),1),I[2]||(I[2]=c("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}),m(e(pe),{value:`switch-tab ${e(j).toLowerCase()}`,onSelect:oe},{default:p(()=>[m(e(st),{class:"size-4"}),c("span",eo,"Switch to "+z(e(j)),1),c("div",to,[c("kbd",so,z(e(Y)),1),I[3]||(I[3]=c("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"]),m(e(pe),{value:"keyboard shortcuts help",onSelect:ee},{default:p(()=>[m(e(ts),{class:"size-4"}),I[5]||(I[5]=c("span",{class:"flex-1"},"Keyboard shortcuts",-1)),c("div",ao,[c("kbd",oo,z(e(Y)),1),I[4]||(I[4]=c("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(y)?(u(),g(e(pe),{key:0,value:"refresh git repos rescan discover",disabled:e(G),onSelect:X},{default:p(()=>[m(e(at),{class:le(["size-4",{"animate-spin":e(G)}])},null,8,["class"]),I[6]||(I[6]=c("span",{class:"flex-1"},"Refresh git repos",-1))]),_:1},8,["disabled"])):U("",!0)]),_:1})]),_:1})]),_:1},8,["open","default-search"]))}}),lo=Object.assign(no,{__name:"CommandPalette"}),ro={class:"space-y-6"},io={class:"mb-3 text-sm font-medium text-muted-foreground"},uo={class:"space-y-2"},co={class:"text-sm"},po={class:"flex items-center gap-1"},fo=D({__name:"ShortcutsHelp",props:{open:{type:Boolean,default:!1},openModifiers:{}},emits:["update:open"],setup(a){const t=Te(a,"open"),s=O(()=>navigator.platform.toUpperCase().indexOf("MAC")>=0),o=O(()=>s.value?"⌘":"Ctrl"),i=O(()=>[{name:"Navigation",shortcuts:[{keys:[o.value,"K"],description:"Open command palette"},{keys:[o.value,"J"],description:"Quick jump to document"}]},{name:"Actions",shortcuts:[{keys:[o.value,"."],description:"Cycle theme mode (light/dark/system)"},{keys:[o.value,"\\"],description:"Cycle Document, Task Board, and Graph tabs"},{keys:[o.value,","],description:"Add repository"}]},{name:"Help",shortcuts:[{keys:[o.value,"/"],description:"Show this help"},{keys:["Esc"],description:"Close dialog or palette"}]}]);return(r,n)=>(u(),g(e(ct),{open:t.value,"onUpdate:open":n[0]||(n[0]=l=>t.value=l)},{default:p(()=>[m(e(pt),{class:"max-w-md"},{default:p(()=>[m(e(mt),null,{default:p(()=>[m(e(vt),null,{default:p(()=>[...n[1]||(n[1]=[J("Keyboard Shortcuts",-1)])]),_:1}),m(e(ft),null,{default:p(()=>[...n[2]||(n[2]=[J(" Quick reference for available keyboard shortcuts. ",-1)])]),_:1})]),_:1}),c("div",ro,[(u(!0),S(te,null,se(e(i),l=>(u(),S("div",{key:l.name},[c("h3",io,z(l.name),1),c("div",uo,[(u(!0),S(te,null,se(l.shortcuts,f=>(u(),S("div",{key:f.description,class:"flex items-center justify-between"},[c("span",co,z(f.description),1),c("div",po,[(u(!0),S(te,null,se(f.keys,(v,y)=>(u(),S("kbd",{key:y,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"},z(v),1))),128))])]))),128))])]))),128))])]),_:1})]),_:1},8,["open"]))}}),mo=Object.assign(fo,{__name:"ShortcutsHelp"});function ht(){const a=document.activeElement;if(!a)return!1;const t=a.tagName.toLowerCase();return t==="input"||t==="textarea"||a.getAttribute("contenteditable")==="true"||a.getAttribute("role")==="textbox"}function vo(a){const t=a.toLowerCase().split("+"),s=t.pop()||"";return{meta:t.includes("meta"),ctrl:t.includes("ctrl"),shift:t.includes("shift"),alt:t.includes("alt"),key:s}}function ho(a,t){const s=a.key.toLowerCase();let o=s===t.key;return t.key==="\\"&&(o=s==="\\"||a.code==="Backslash"),t.key==="/"&&(o=s==="/"||a.code==="Slash"),t.key==="."&&(o=s==="."||a.code==="Period"),t.key===","&&(o=s===","||a.code==="Comma"),o&&a.metaKey===t.meta&&a.ctrlKey===t.ctrl&&a.shiftKey===t.shift&&a.altKey===t.alt}const Ce=[];let We=!1;function go(a){for(const t of Ce)if(ho(a,t.combo)){if(!t.allowInInput&&ht())continue;a.preventDefault(),a.stopPropagation(),t.handler();return}}function Je(){We||(document.addEventListener("keydown",go,{capture:!0}),We=!0)}function yo(){re(()=>{Je()});function a(s,o,i){const n={combo:vo(s),handler:o,allowInInput:i?.allowInInput??!1};Ce.push(n),Je(),ve(()=>{const l=Ce.indexOf(n);l>-1&&Ce.splice(l,1)})}function t(){return ht()}return{onShortcut:a,isInputFocused:t}}const _o=globalThis.setInterval,bo=2e3,xo=2e3;function wo(a){return!a.instanceId||!a.buildId?null:`${a.buildId}:${a.instanceId}`}function Co(a){const t=C(null),s=C(!1),o=C(null),i=C(null),r=C(null),n=C(null),l=C(!1),f=C(!1),v=C(!1);function y(){i.value&&(clearTimeout(i.value),i.value=null)}function d(){r.value&&(clearInterval(r.value),r.value=null)}async function _(){try{const R=await $fetch(`/api/runtime?_=${Date.now()}`);return wo(R)}catch{return null}}async function A(){n.value===null&&(n.value=await _())}async function w(){if(!(l.value||v.value)){l.value=!0;try{const R=await _();if(!R)return;if(!n.value){n.value=R;return}R!==n.value&&(v.value=!0,window.location.reload())}finally{l.value=!1}}}function T(){r.value||(r.value=_o(()=>{w()},xo))}function F(){i.value||(i.value=setTimeout(()=>{i.value=null,b()},bo))}function b(){if(!t.value)try{const R=new EventSource("/api/watch");R.onopen=async()=>{s.value=!0,o.value=null,y(),d(),f.value&&(f.value=!1,await w())},R.onmessage=j=>{try{const B=JSON.parse(j.data);a(B)}catch{}},R.onerror=()=>{s.value=!1,o.value="Connection lost",f.value=!0,t.value===R&&(R.close(),t.value=null),T(),F()},t.value=R}catch{o.value="Failed to connect",T(),F()}}function M(){y(),d(),f.value=!1,t.value&&(t.value.close(),t.value=null,s.value=!1)}return re(async()=>{await A(),b()}),ve(()=>{M()}),{isConnected:s,error:o,connect:b,disconnect:M}}const ko={class:"min-h-screen bg-background text-foreground"},So={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"},$o={class:"flex h-full items-center justify-between px-4 md:px-6"},Eo={class:"flex items-center gap-3"},Ro={class:"flex h-screen pt-14"},Do={class:"flex-1 overflow-auto"},Lo=D({__name:"default",setup(a){const{themeMode:t,cycleThemeMode:s}=Xe(),{refreshPrds:o}=Ve(),{currentRepoId:i}=Se(),r=Me(),n=C(null);Rt("fileChangeEvent",n);const l=C(!1),f=C(""),v=C(!1),y=C(null),{onShortcut:d}=yo();d("Meta+k",()=>{l.value=!0}),d("Ctrl+k",()=>{l.value=!0}),d("Meta+j",()=>{f.value="PRD: ",l.value=!0}),d("Ctrl+j",()=>{f.value="PRD: ",l.value=!0});function _(){const F=["document","board","graph"],b=localStorage.getItem("prd-viewer-tab")||"document",M=F.indexOf(b),R=M>=0?M:0,j=F[(R+1)%F.length]??"document";localStorage.setItem("prd-viewer-tab",j),window.dispatchEvent(new StorageEvent("storage",{key:"prd-viewer-tab",newValue:j}))}d("Meta+\\",_),d("Ctrl+\\",_);function A(){s()}d("Meta+.",A),d("Ctrl+.",A);function w(){y.value?.openAddDialog()}d("Meta+,",w),d("Ctrl+,",w);function T(){v.value=!0}return d("Meta+/",T),d("Ctrl+/",T),d("Meta+Shift+/",T),d("Ctrl+Shift+/",T),Co(F=>{if(F.type==="connected"||!F.category)return;const b=F.category;if(F.repoId!==i.value)return;(b==="prd"||b==="tasks")&&o();const M=r.params.prd;if(M){const R=b==="prd"&&F.path?.includes(`/${M}.`),j=(b==="tasks"||b==="progress")&&F.path?.includes(`/${M}/`);(R||j||(b==="tasks"||b==="progress"))&&(n.value={category:b,path:F.path,timestamp:Date.now()})}}),(F,b)=>{const M=ua,R=Dt,j=_a;return u(),S("div",ko,[m(lo,{open:e(l),"onUpdate:open":b[0]||(b[0]=B=>ye(l)?l.value=B:null),filter:e(f),"onUpdate:filter":b[1]||(b[1]=B=>ye(f)?f.value=B:null),onOpenShortcutsHelp:T},null,8,["open","filter"]),m(mo,{open:e(v),"onUpdate:open":b[2]||(b[2]=B=>ye(v)?v.value=B:null)},null,8,["open"]),c("header",So,[c("div",$o,[b[5]||(b[5]=c("div",{class:"flex items-center gap-4"},[c("h1",{class:"text-lg font-semibold tracking-tight"}," PRD Viewer ")],-1)),m(R,null,{fallback:p(()=>[...b[4]||(b[4]=[c("div",{class:"flex items-center gap-3"},[c("div",{class:"h-8 w-[200px] animate-pulse rounded-md bg-muted"}),c("div",{class:"size-9 animate-pulse rounded-md bg-muted"})],-1)])]),default:p(()=>[c("div",Eo,[m(M,{ref_key:"repoSelectorRef",ref:y},null,512),m(e(me),{variant:"ghost",size:"icon",class:"size-9",onClick:A},{default:p(()=>[e(t)==="system"?(u(),g(e(it),{key:0,class:"size-4"})):e(t)==="light"?(u(),g(e(dt),{key:1,class:"size-4"})):(u(),g(e(ut),{key:2,class:"size-4"})),b[3]||(b[3]=c("span",{class:"sr-only"},"Cycle theme mode",-1))]),_:1})])]),_:1})])]),c("div",Ro,[m(R,null,{fallback:p(()=>[...b[6]||(b[6]=[c("aside",{class:"flex h-full w-64 flex-col border-r border-border bg-background"},[c("div",{class:"flex h-12 items-center border-b border-border px-4"},[c("div",{class:"h-4 w-20 animate-pulse rounded bg-muted"})]),c("div",{class:"flex-1 p-2 space-y-2"},[c("div",{class:"h-9 animate-pulse rounded-md bg-muted"}),c("div",{class:"h-9 animate-pulse rounded-md bg-muted"}),c("div",{class:"h-9 animate-pulse rounded-md bg-muted"})])],-1)])]),default:p(()=>[m(j)]),_:1}),c("main",Do,[L(F.$slots,"default")])])])}}});export{Lo as default};
1
+ import{s as O,l as e,a1 as bt,g as D,k as ne,o as u,x as g,L as q,c as S,n as U,F as te,r as se,v as xt,B as fe,w as p,y as L,q as C,b as m,G as be,p as ke,ac as wt,z as re,A as ve,ad as Ct,j as Qe,M as Me,a as c,t as z,ae as kt,af as St,m as ye,H as le,d as J,a2 as $t,J as Ie,K as Pe,aa as Te,ag as Xe,ab as Et,$ as Rt,ah as Dt}from"./Bibm_IDv.js";import{c as xe,m as Fe,h as At,f as Ye,d as Ze,P as ie,g as Ae,u as Se,o as Bt,B as me,b as et,a as Ve,F as Oe,r as Z,e as Q,n as It}from"./D0op9E2g.js";import{q as Pt,V as Tt,u as Ft,c as we,a as $e,b as Ot,r as Lt,f as Mt,p as tt,g as Vt,o as zt,n as qt,i as jt,j as Kt,k as Ht,l as Ut,S as Nt,G as st,L as Gt,C as Wt,R as at,B as Jt,d as he,s as Qt,t as ze,v as ot,w as nt,x as lt,X as rt,e as Ee,y as Xt,z as Yt,A as Zt,h as es,K as ts}from"./BSA0RJ-H.js";import{F as ss,I as as,a as Le}from"./wbjFvimm.js";import{b as qe,u as je,g as os,A as ns}from"./DiTJUZOC.js";import{_ as ls}from"./CVJh28bx.js";const it=xe("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 ut=xe("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 rs=xe("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);const dt=xe("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 is=xe("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 us(a,t,s){const o=a.findIndex(l=>Fe(l,t)),i=a.findIndex(l=>Fe(l,s));if(o===-1||i===-1)return[];const[r,n]=[o,i].sort((l,f)=>l-f);return a.slice(r,n+1)}function ds(a){const t=O(()=>e(a)),s=O(()=>new Intl.Collator("en",{usage:"search",...t.value}));return{startsWith:(n,l)=>l.length===0?!0:(n=n.normalize("NFC"),l=l.normalize("NFC"),s.value.compare(n.slice(0,l.length),l)===0),endsWith:(n,l)=>l.length===0?!0:(n=n.normalize("NFC"),l=l.normalize("NFC"),s.value.compare(n.slice(-l.length),l)===0),contains:(n,l)=>{if(l.length===0)return!0;n=n.normalize("NFC"),l=l.normalize("NFC");let f=0;const v=l.length;for(;f+v<=n.length;f++){const y=n.slice(f,f+v);if(s.value.compare(l,y)===0)return!0}return!1}}}function cs(a){return O(()=>bt(a)?!!At(a)?.closest("form"):!0)}function ps(){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 fs(a){const t=Ye("",1e3);return{search:t,handleTypeaheadSearch:(i,r)=>{t.value=t.value+i;{const n=Pt(),l=r.map(_=>({..._,textValue:_.value?.textValue??_.ref.textContent?.trim()??""})),f=l.find(_=>_.ref===n),v=l.map(_=>_.textValue),y=vs(v,t.value,f?.textValue),d=l.find(_=>_.textValue===y);return d&&d.ref.focus(),d?.ref}},resetTypeahead:()=>{t.value=""}}}function ms(a,t){return a.map((s,o)=>a[(t+o)%a.length])}function vs(a,t,s){const i=t.length>1&&Array.from(t).every(v=>v===t[0])?t[0]:t,r=s?a.indexOf(s):-1;let n=ms(a,Math.max(r,0));i.length===1&&(n=n.filter(v=>v!==s));const f=n.find(v=>v.toLowerCase().startsWith(i.toLowerCase()));return f!==s?f:void 0}var hs=D({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(a){const t=a,{primitiveElement:s,currentElement:o}=qe(),i=O(()=>t.checked??t.value);return ne(i,(r,n)=>{if(!o.value)return;const l=o.value,f=window.HTMLInputElement.prototype,y=Object.getOwnPropertyDescriptor(f,"value").set;if(y&&r!==n){const d=new Event("input",{bubbles:!0}),_=new Event("change",{bubbles:!0});y.call(l,r),l.dispatchEvent(d),l.dispatchEvent(_)}}),(r,n)=>(u(),g(Tt,q({ref_key:"primitiveElement",ref:s},{...t,...r.$attrs},{as:"input"}),null,16))}}),Ne=hs,gs=D({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(a){const t=a,s=O(()=>typeof t.value=="object"&&Array.isArray(t.value)&&t.value.length===0&&t.required),o=O(()=>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((i,r)=>typeof i=="object"?Object.entries(i).map(([n,l])=>({name:`${t.name}[${r}][${n}]`,value:l})):{name:`${t.name}[${r}]`,value:i}):t.value!==null&&typeof t.value=="object"&&!Array.isArray(t.value)?Object.entries(t.value).map(([i,r])=>({name:`${t.name}[${i}]`,value:r})):[]);return(i,r)=>(u(),S(te,null,[U(" We render single input if it's required "),s.value?(u(),g(Ne,q({key:i.name},{...t,...i.$attrs},{name:i.name,value:i.value}),null,16,["name","value"])):(u(!0),S(te,{key:1},se(o.value,n=>(u(),g(Ne,q({key:n.name},{ref_for:!0},{...t,...i.$attrs},{name:n.name,value:n.value}),null,16,["name","value"]))),128))],2112))}}),ys=gs;function _s(a,t,s){return a===void 0?!1:Array.isArray(a)?a.some(o=>_e(o,t,s)):_e(a,t,s)}function _e(a,t,s){return a===void 0||t===void 0?!1:typeof a=="string"?a===t:typeof s=="function"?s(a,t):typeof s=="string"?a?.[s]===t?.[s]:Fe(a,t)}const[Ke,bs]=we("ListboxRoot");var xs=D({__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(a,{expose:t,emit:s}){const o=a,i=s,{multiple:r,highlightOnHover:n,orientation:l,disabled:f,selectionBehavior:v,dir:y}=xt(o),{getItems:d}=je({isProvider:!0}),{handleTypeaheadSearch:_}=fs(),{primitiveElement:A,currentElement:w}=qe(),T=ps(),F=Ft(y),b=cs(w),M=C(),R=C(!1),j=C(!0),B=Ze(o,"modelValue",i,{defaultValue:o.defaultValue??(r.value?[]:void 0),passive:o.modelValue===void 0,deep:!0});function ae(h){if(R.value=!0,o.multiple){const k=Array.isArray(B.value)?[...B.value]:[],E=k.findIndex(H=>_e(H,h,o.by));o.selectionBehavior==="toggle"?(E===-1?k.push(h):k.splice(E,1),B.value=k):(B.value=[h],M.value=h)}else o.selectionBehavior==="toggle"&&_e(B.value,h,o.by)?B.value=void 0:B.value=h;setTimeout(()=>{R.value=!1},1)}const K=C(null),oe=C(null),ee=C(!1),G=C(!1),X=Ae(),W=Ae(),Y=Ae();function $(){return d().map(h=>h.ref).filter(h=>h.dataset.disabled!=="")}function I(h,k=!0){if(!h)return;K.value=h,j.value&&K.value.focus(),k&&K.value.scrollIntoView({block:"nearest"});const E=d().find(H=>H.ref===h);i("highlight",E)}function N(h){if(ee.value)Y.trigger(h);else{const k=d().find(E=>_e(E.value,h,o.by));k&&(K.value=k.ref,I(k.ref))}}function ue(h){K.value&&K.value.isConnected&&(h.preventDefault(),h.stopPropagation(),G.value||K.value.click())}function V(h){if(j.value){if(R.value=!0,ee.value)W.trigger(h);else{const k=h.altKey||h.ctrlKey||h.metaKey;if(k&&h.key==="a"&&r.value){const E=d(),H=E.map(ce=>ce.value);B.value=[...H],h.preventDefault(),I(E[E.length-1].ref)}else if(!k){const E=_(h.key,d());E&&I(E)}}setTimeout(()=>{R.value=!1},1)}}function x(){G.value=!0}function P(){fe(()=>{G.value=!1})}function de(){fe(()=>{const h=new KeyboardEvent("keydown",{key:"PageUp"});He(h)})}function De(h){const k=K.value;k?.isConnected&&(oe.value=k),K.value=null,i("leave",h)}function gt(h){const k=new CustomEvent("listbox.entryFocus",{bubbles:!1,cancelable:!0});if(h.currentTarget?.dispatchEvent(k),i("entryFocus",k),!k.defaultPrevented)if(oe.value)I(oe.value);else{const E=$()?.[0];I(E)}}function He(h){const k=os(h,l.value,F.value);if(!k)return;let E=$();if(K.value){if(k==="last")E.reverse();else if(k==="prev"||k==="next"){k==="prev"&&E.reverse();const H=E.indexOf(K.value);E=E.slice(H+1)}yt(h,E[0])}if(E.length){const H=!K.value&&k==="prev"?E.length-1:0;I(E[H])}if(ee.value)return W.trigger(h)}function yt(h,k){if(!(ee.value||o.selectionBehavior!=="replace"||!r.value||!Array.isArray(B.value)||(h.altKey||h.ctrlKey||h.metaKey)&&!h.shiftKey)&&h.shiftKey){const H=d().filter(ge=>ge.ref.dataset.disabled!=="");let ce=H.find(ge=>ge.ref===k)?.value;if(h.key===T.END?ce=H[H.length-1].value:h.key===T.HOME&&(ce=H[0].value),!ce||!M.value)return;const _t=us(H.map(ge=>ge.value),M.value,ce);B.value=_t}}async function Ue(h){if(await fe(),ee.value)X.trigger(h);else{const k=$(),E=k.find(H=>H.dataset.state==="checked");E?I(E):k.length&&I(k[0])}}return ne(B,()=>{R.value||fe(()=>{Ue()})},{immediate:!0,deep:!0}),t({highlightedElement:K,highlightItem:N,highlightFirstItem:de,highlightSelected:Ue,getItems:d}),bs({modelValue:B,onValueChange:ae,multiple:r,orientation:l,dir:F,disabled:f,highlightOnHover:n,highlightedElement:K,isVirtual:ee,virtualFocusHook:X,virtualKeydownHook:W,virtualHighlightHook:Y,by:o.by,firstValue:M,selectionBehavior:v,focusable:j,onLeave:De,onEnter:gt,changeHighlight:I,onKeydownEnter:ue,onKeydownNavigation:He,onKeydownTypeAhead:V,onCompositionStart:x,onCompositionEnd:P,highlightFirstItem:de}),(h,k)=>(u(),g(e(ie),{ref_key:"primitiveElement",ref:A,as:h.as,"as-child":h.asChild,dir:e(F),"data-disabled":e(f)?"":void 0,onPointerleave:De,onFocusout:k[0]||(k[0]=async E=>{const H=E.relatedTarget||E.target;await fe(),K.value&&e(w)&&!e(w).contains(H)&&De(E)})},{default:p(()=>[L(h.$slots,"default",{modelValue:e(B)}),e(b)&&h.name?(u(),g(e(ys),{key:0,name:h.name,value:e(B),disabled:e(f),required:h.required},null,8,["name","value","disabled","required"])):U("v-if",!0)]),_:3},8,["as","as-child","dir","data-disabled"]))}}),ws=xs,Cs=D({__name:"ListboxContent",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(a){const{CollectionSlot:t}=je(),s=Ke(),o=Ye(!1,10);return(i,r)=>(u(),g(e(t),null,{default:p(()=>[m(e(ie),{role:"listbox",as:i.as,"as-child":i.asChild,tabindex:e(s).focusable.value?e(s).highlightedElement.value?"-1":"0":"-1","aria-orientation":e(s).orientation.value,"aria-multiselectable":!!e(s).multiple.value,"data-orientation":e(s).orientation.value,onMousedown:r[0]||(r[0]=ke(n=>o.value=!0,["left"])),onFocus:r[1]||(r[1]=n=>{e(o)||e(s).onEnter(n)}),onKeydown:[r[2]||(r[2]=be(n=>{e(s).orientation.value==="vertical"&&(n.key==="ArrowLeft"||n.key==="ArrowRight")||e(s).orientation.value==="horizontal"&&(n.key==="ArrowUp"||n.key==="ArrowDown")||(n.preventDefault(),e(s).focusable.value&&e(s).onKeydownNavigation(n))},["down","up","left","right","home","end"])),be(e(s).onKeydownEnter,["enter"]),e(s).onKeydownTypeAhead]},{default:p(()=>[L(i.$slots,"default")]),_:3},8,["as","as-child","tabindex","aria-orientation","aria-multiselectable","data-orientation","onKeydown"])]),_:3}))}}),ks=Cs,Ss=D({__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(a,{emit:t}){const s=a,i=Ze(s,"modelValue",t,{defaultValue:"",passive:s.modelValue===void 0}),r=Ke(),{primitiveElement:n,currentElement:l}=qe(),f=O(()=>s.disabled||r.disabled.value||!1),v=C();return wt(()=>v.value=r.highlightedElement.value?.id),re(()=>{r.focusable.value=!1,setTimeout(()=>{s.autoFocus&&l.value?.focus()},1)}),ve(()=>{r.focusable.value=!0}),(y,d)=>(u(),g(e(ie),{ref_key:"primitiveElement",ref:n,as:y.as,"as-child":y.asChild,value:e(i),disabled:f.value?"":void 0,"data-disabled":f.value?"":void 0,"aria-disabled":f.value??void 0,"aria-activedescendant":v.value,type:"text",onKeydown:[be(ke(e(r).onKeydownNavigation,["prevent"]),["down","up","home","end"]),be(e(r).onKeydownEnter,["enter"])],onInput:d[0]||(d[0]=_=>{i.value=_.target.value,e(r).highlightFirstItem()}),onCompositionstart:e(r).onCompositionStart,onCompositionend:e(r).onCompositionEnd},{default:p(()=>[L(y.$slots,"default",{modelValue:e(i)})]),_:3},8,["as","as-child","value","disabled","data-disabled","aria-disabled","aria-activedescendant","onKeydown","onCompositionstart","onCompositionend"]))}}),$s=Ss;const[Es,Rs]=we("ListboxGroup");var Ds=D({__name:"ListboxGroup",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(a){const t=a,s=$e(void 0,"reka-listbox-group");return Rs({id:s}),(o,i)=>(u(),g(e(ie),q({role:"group"},t,{"aria-labelledby":e(s)}),{default:p(()=>[L(o.$slots,"default")]),_:3},16,["aria-labelledby"]))}}),As=Ds,Bs=D({__name:"ListboxGroupLabel",props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},setup(a){const t=a,s=Es({id:""});return(o,i)=>(u(),g(e(ie),q(t,{id:e(s).id}),{default:p(()=>[L(o.$slots,"default")]),_:3},16,["id"]))}}),Is=Bs;const Ps="listbox.select",[Oo,Ts]=we("ListboxItem");var Fs=D({__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(a,{emit:t}){const s=a,o=t,i=$e(void 0,"reka-listbox-item"),{CollectionItem:r}=je(),{forwardRef:n,currentElement:l}=Ot(),f=Ke(),v=O(()=>l.value===f.highlightedElement.value),y=O(()=>_s(f.modelValue.value,s.value,f.by)),d=O(()=>f.disabled.value||s.disabled);async function _(w){o("select",w),!w?.defaultPrevented&&!d.value&&w&&(f.onValueChange(s.value),f.changeHighlight(l.value))}function A(w){const T={originalEvent:w,value:s.value};Lt(Ps,_,T)}return Ts({isSelected:y}),(w,T)=>(u(),g(e(r),{value:w.value},{default:p(()=>[Ct([v.value,y.value],()=>m(e(ie),q({id:e(i)},w.$attrs,{ref:e(n),role:"option",tabindex:e(f).focusable.value?v.value?"0":"-1":-1,"aria-selected":y.value,as:w.as,"as-child":w.asChild,disabled:d.value?"":void 0,"data-disabled":d.value?"":void 0,"data-highlighted":v.value?"":void 0,"data-state":y.value?"checked":"unchecked",onClick:A,onKeydown:be(ke(A,["prevent"]),["space"]),onPointermove:T[0]||(T[0]=()=>{e(f).highlightedElement.value!==e(l)&&e(f).highlightOnHover.value&&!e(f).focusable.value&&e(f).changeHighlight(e(l),!1)})}),{default:p(()=>[L(w.$slots,"default")]),_:3},16,["id","tabindex","aria-selected","as","as-child","disabled","data-disabled","data-highlighted","data-state","onKeydown"]),T,1)]),_:3},8,["value"]))}}),Os=Fs;const Ls={class:"flex items-center gap-2 truncate"},Ms={class:"truncate"},Vs={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"},zs={class:"max-h-[200px] overflow-y-auto"},qs=["aria-selected","onClick"],js={class:"flex flex-1 flex-col gap-0.5 overflow-hidden text-left"},Ks={class:"truncate font-medium"},Hs={class:"truncate text-xs text-muted-foreground"},Us=["onClick"],Ns={key:1,class:"px-2 py-1.5 text-sm text-muted-foreground"},Gs={key:2,class:"my-1 h-px bg-border"},Ws={class:"space-y-2"},Js={class:"flex gap-2"},Qs={key:0,class:"text-sm text-destructive"},Xs={key:0,class:"space-y-2 rounded-md border p-3"},Ys={class:"flex items-center gap-2 text-sm"},Zs=["disabled"],ea={class:"flex-1 truncate font-mono text-xs text-muted-foreground"},ta={class:"max-h-[200px] overflow-y-auto"},sa={key:0,class:"py-2 text-center text-sm text-muted-foreground"},aa={key:1,class:"py-2 text-center text-sm text-muted-foreground"},oa=["onClick"],na={class:"truncate"},la={key:0},ra={key:1},ia=D({__name:"RepoSelector",setup(a,{expose:t}){const s=Qe(),o=Me(),{repos:i,currentRepo:r,currentRepoId:n,selectRepo:l,addRepo:f,removeRepo:v}=Se(),{showSuccess:y}=et(),d=C(!1),_=C(""),A=C(null);Bt(A,()=>{d.value&&(d.value=!1,_.value="")}),ne(()=>o.fullPath,()=>{d.value=!1,_.value=""});async function w(V){l(V),d.value=!1,_.value="";try{const P=(await $fetch(`/api/repos/${V}/prds`))?.[0];P?s.push(`/${V}/${P.slug}`):s.push("/")}catch{s.push("/")}}function T(){d.value=!1,G.value=!0}const F=C(!1),b=C(""),M=C(""),R=C([]),j=C(!1),B=O(()=>!!M.value&&M.value!==b.value);async function ae(V){j.value=!0;try{const x=await $fetch("/api/browse",{query:{path:V||b.value||void 0}});b.value=x.current,M.value=x.parent,R.value=x.directories}catch{}finally{j.value=!1}}function K(){F.value=!0,ae(X.value||void 0)}function oe(V){X.value=V,F.value=!1,W.value=null}function ee(){B.value&&ae(M.value)}const G=C(!1),X=C(""),W=C(null),Y=C(!1),$=O(()=>{if(!_.value)return i.value;const V=_.value.toLowerCase();return i.value?.filter(x=>x.name.toLowerCase().includes(V)||x.path.toLowerCase().includes(V))??[]});async function I(){if(!X.value.trim()){W.value="Please enter a repository path";return}Y.value=!0,W.value=null;try{const V=await f(X.value.trim());if(G.value=!1,X.value="",y("Repository added",V?.name||"Successfully added repository"),V?.id)try{const P=(await $fetch(`/api/repos/${V.id}/prds`))?.[0];P&&s.push(`/${V.id}/${P.slug}`)}catch{}}catch(V){if(V instanceof Error){const x=V;W.value=x.data?.message||V.message}else W.value="Failed to add repository"}finally{Y.value=!1}}async function N(V,x){V.stopPropagation(),await v(x)}function ue(){G.value=!1,X.value="",W.value=null}return t({openAddDialog:()=>{G.value=!0}}),(V,x)=>(u(),S("div",{ref_key:"dropdownRef",ref:A,class:"relative"},[c("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]=P=>d.value=!e(d))},[c("span",Ls,[m(e(ss),{class:"size-4 shrink-0 text-muted-foreground"}),c("span",Ms,z(e(r)?.name??"Select repository"),1)]),m(e(Mt),{class:"size-4 shrink-0 opacity-50"})]),e(d)?(u(),S("div",Vs,[kt(c("input",{"onUpdate:modelValue":x[1]||(x[1]=P=>ye(_)?_.value=P: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),[[St,e(_)]]),c("div",zs,[e($)?.length?(u(!0),S(te,{key:0},se(e($),P=>(u(),S("div",{key:P.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(n)===P.id,onClick:de=>w(P.id)},[m(e(tt),{class:le(["size-4 shrink-0",e(n)===P.id?"opacity-100":"opacity-0"])},null,8,["class"]),c("div",js,[c("span",Ks,z(P.name),1),c("span",Hs,z(P.path),1)]),c("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:de=>N(de,P.id)},[m(e(is),{class:"size-3.5 text-destructive"})],8,Us)],8,qs))),128)):(u(),S("div",Ns," No repositories found. ")),e($)?.length?(u(),S("div",Gs)):U("",!0),c("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:T},[m(e(Vt),{class:"size-4"}),x[5]||(x[5]=c("span",null,"Add repository...",-1))])])])):U("",!0),m(e(zt),{open:e(G),"onUpdate:open":x[4]||(x[4]=P=>G.value=P)},{default:p(()=>[m(e(qt),{side:"right",class:"flex h-full flex-col",onEscapeKeyDown:ue},{default:p(()=>[m(e(jt),{class:"px-6"},{default:p(()=>[m(e(Kt),null,{default:p(()=>[...x[6]||(x[6]=[J("Add Repository",-1)])]),_:1}),m(e(Ht),null,{default:p(()=>[...x[7]||(x[7]=[J(" Enter the absolute path to a repository containing PRD documents. ",-1)])]),_:1})]),_:1}),c("form",{id:"add-repo-form",class:"min-h-0 flex-1 space-y-4 overflow-y-auto px-6",onSubmit:ke(I,["prevent"])},[c("div",Ws,[x[8]||(x[8]=c("label",{for:"repo-path",class:"text-sm font-medium"}," Repository Path ",-1)),c("div",Js,[m(e(as),{id:"repo-path",modelValue:e(X),"onUpdate:modelValue":x[2]||(x[2]=P=>ye(X)?X.value=P:null),placeholder:"/path/to/your/project","aria-invalid":!!e(W),disabled:e(Y),class:"flex-1"},null,8,["modelValue","aria-invalid","disabled"]),m(e(me),{type:"button",variant:"outline",size:"icon",disabled:e(Y),onClick:K},{default:p(()=>[m(e(Le),{class:"size-4"})]),_:1},8,["disabled"])]),e(W)?(u(),S("p",Qs,z(e(W)),1)):U("",!0),x[9]||(x[9]=c("p",{class:"text-xs text-muted-foreground"},[J(" The repository should contain a "),c("code",{class:"rounded bg-muted px-1"},"docs/prd/"),J(" directory with markdown files. ")],-1))]),e(F)?(u(),S("div",Xs,[c("div",Ys,[c("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(B),onClick:ee},[m(e(ns),{class:"size-3"}),x[10]||(x[10]=J(" Up ",-1))],8,Zs),c("span",ea,z(e(b)),1),m(e(me),{type:"button",variant:"ghost",size:"sm",class:"h-7 text-xs",onClick:x[3]||(x[3]=P=>oe(e(b)))},{default:p(()=>[...x[11]||(x[11]=[J(" Select ",-1)])]),_:1})]),c("div",ta,[e(j)?(u(),S("div",sa," Loading... ")):e(R).length?(u(!0),S(te,{key:2},se(e(R),P=>(u(),S("button",{key:P.path,type:"button",class:"flex w-full items-center gap-2 rounded px-2 py-1 text-sm hover:bg-accent",onClick:de=>ae(P.path)},[m(e(Le),{class:"size-4 text-muted-foreground"}),c("span",na,z(P.name),1)],8,oa))),128)):(u(),S("div",aa," No subdirectories "))])])):U("",!0)],32),m(e(Ut),{class:"px-6 pb-6"},{default:p(()=>[m(e(me),{type:"button",variant:"outline",disabled:e(Y),onClick:ue},{default:p(()=>[...x[12]||(x[12]=[J(" Cancel ",-1)])]),_:1},8,["disabled"]),m(e(me),{type:"submit",form:"add-repo-form",disabled:e(Y)},{default:p(()=>[e(Y)?(u(),S("span",la,"Adding...")):(u(),S("span",ra,"Add Repository"))]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["open"])],512))}}),ua=Object.assign(ia,{__name:"LayoutRepoSelector"}),da={class:"flex h-full w-64 flex-col border-r border-border bg-background"},ca={class:"p-2"},pa={key:1,class:"flex items-center justify-center py-8"},fa={key:2,class:"px-2 py-8 text-center"},ma={key:3,class:"px-2 py-8 text-center"},va={key:4,class:"px-2 py-8 text-center"},ha={key:5,class:"space-y-1"},ga={class:"flex-1 truncate"},ya=D({__name:"Sidebar",setup(a){const t=Me(),{prds:s,prdsStatus:o,refreshPrds:i}=Ve(),{currentRepoId:r}=Se(),n=O(()=>t.params.prd);function l(y){return n.value===y}const f=O(()=>r.value?`/${r.value}/repo-graph`:"/"),v=O(()=>r.value?t.path===`/${r.value}/repo-graph`:!1);return(y,d)=>{const _=ls;return u(),S("aside",da,[m(e(Nt),{class:"flex-1"},{default:p(()=>[c("div",ca,[e(r)?(u(),g(_,{key:0,to:e(f),class:le(["group mb-2 flex items-center gap-3 rounded-md px-3 py-2 text-sm transition-colors",[e(v)?"bg-accent text-accent-foreground":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"]])},{default:p(()=>[m(e(st),{class:"size-4 shrink-0"}),d[0]||(d[0]=c("span",{class:"flex-1 truncate"},"Repo Graph",-1))]),_:1},8,["to","class"])):U("",!0),d[6]||(d[6]=c("h2",{class:"flex h-10 items-center px-2 text-sm font-medium text-muted-foreground"},"Documents",-1)),e(o)==="pending"?(u(),S("div",pa,[m(e(Gt),{class:"size-5 animate-spin text-muted-foreground"})])):e(r)?e(o)==="error"?(u(),S("div",ma,[m(e(Wt),{class:"mx-auto size-8 text-destructive/50"}),d[3]||(d[3]=c("p",{class:"mt-2 text-sm text-muted-foreground"}," Failed to load PRDs ",-1)),m(e(me),{variant:"ghost",size:"sm",class:"mt-2",onClick:e(i)},{default:p(()=>[m(e(at),{class:"mr-1 size-3"}),d[2]||(d[2]=J(" Retry ",-1))]),_:1},8,["onClick"])])):e(s)?.length?(u(),S("nav",ha,[(u(!0),S(te,null,se(e(s),A=>(u(),g(_,{key:A.slug,to:`/${e(r)}/${A.slug}`,class:le(["group flex items-center gap-3 rounded-md px-3 py-2 text-sm transition-colors",[l(A.slug)?"bg-accent text-accent-foreground":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"]])},{default:p(()=>[m(e(Oe),{class:"size-4 shrink-0"}),c("span",ga,z(A.name),1),A.hasState&&A.taskCount?(u(),g(e(Jt),{key:0,variant:"secondary",class:"shrink-0 text-xs"},{default:p(()=>[J(z(A.completedCount??0)+"/"+z(A.taskCount),1)]),_:2},1024)):U("",!0)]),_:2},1032,["to","class"]))),128))])):(u(),S("div",va,[m(e(Oe),{class:"mx-auto size-8 text-muted-foreground/50"}),d[4]||(d[4]=c("p",{class:"mt-2 text-sm text-muted-foreground"}," No PRDs found ",-1)),d[5]||(d[5]=c("p",{class:"mt-1 text-xs text-muted-foreground/70"}," Add .md files to docs/prd/ ",-1))])):(u(),S("div",fa,[...d[1]||(d[1]=[c("p",{class:"text-sm text-muted-foreground"}," Select a repository to view PRDs ",-1)])]))])]),_:1})])}}}),_a=Object.assign(ya,{__name:"LayoutSidebar"}),ba=D({__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(a,{emit:t}){const s=a,o=t,i=Z(s,"class"),r=he(i,o),n=C(new Map),l=C(new Map),{contains:f}=ds({sensitivity:"base"}),v=$t({search:s.defaultSearch||"",filtered:{count:0,items:new Map,groups:new Set}});ne(()=>s.defaultSearch,d=>{d!==void 0&&(v.search=d)});function y(){if(!v.search){v.filtered.count=n.value.size;return}v.filtered.groups=new Set;let d=0;for(const[_,A]of n.value){const w=f(A,v.search);v.filtered.items.set(_,w?1:0),w&&d++}for(const[_,A]of l.value)for(const w of A)if(v.filtered.items.get(w)>0){v.filtered.groups.add(_);break}v.filtered.count=d}return ne(()=>v.search,()=>{y()}),ne(()=>n.value.size,()=>{v.search&&y()}),Ga({allItems:n,allGroups:l,filterState:v}),(d,_)=>(u(),g(e(ws),q({"data-slot":"command"},e(r),{class:e(Q)("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",s.class)}),{default:p(()=>[L(d.$slots,"default")]),_:3},16,["class"]))}}),xa=Object.assign(ba,{__name:"UiCommand"}),wa=D({__name:"Dialog",props:{open:{type:Boolean},defaultOpen:{type:Boolean},modal:{type:Boolean}},emits:["update:open"],setup(a,{emit:t}){const i=he(a,t);return(r,n)=>(u(),g(e(Qt),q({"data-slot":"dialog"},e(i)),{default:p(l=>[L(r.$slots,"default",Ie(Pe(l)))]),_:3},16))}}),ct=Object.assign(wa,{__name:"UiDialog"}),Ca=D({__name:"DialogClose",props:{asChild:{type:Boolean},as:{}},setup(a){const t=a;return(s,o)=>(u(),g(e(ze),q({"data-slot":"dialog-close"},t),{default:p(()=>[L(s.$slots,"default")]),_:3},16))}});Object.assign(Ca,{__name:"UiDialogClose"});const ka=D({__name:"DialogOverlay",props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(a){const t=a,s=Z(t,"class");return(o,i)=>(u(),g(e(ot),q({"data-slot":"dialog-overlay"},e(s),{class:e(Q)("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:p(()=>[L(o.$slots,"default")]),_:3},16,["class"]))}}),Sa=Object.assign(ka,{__name:"UiDialogOverlay"}),$a=D({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(a,{emit:t}){const s=a,o=t,i=Z(s,"class"),r=he(i,o);return(n,l)=>(u(),g(e(nt),null,{default:p(()=>[m(Sa),m(e(lt),q({"data-slot":"dialog-content"},{...n.$attrs,...e(r)},{class:e(Q)("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",s.class)}),{default:p(()=>[L(n.$slots,"default"),a.showCloseButton?(u(),g(e(ze),{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:p(()=>[m(e(rt)),l[0]||(l[0]=c("span",{class:"sr-only"},"Close",-1))]),_:1})):U("",!0)]),_:3},16,["class"])]),_:3}))}}),pt=Object.assign($a,{__name:"UiDialogContent"}),Ea=D({__name:"DialogDescription",props:{asChild:{type:Boolean},as:{},class:{}},setup(a){const t=a,s=Z(t,"class"),o=Ee(s);return(i,r)=>(u(),g(e(Xt),q({"data-slot":"dialog-description"},e(o),{class:e(Q)("text-muted-foreground text-sm",t.class)}),{default:p(()=>[L(i.$slots,"default")]),_:3},16,["class"]))}}),ft=Object.assign(Ea,{__name:"UiDialogDescription"}),Ra=D({__name:"DialogFooter",props:{class:{}},setup(a){const t=a;return(s,o)=>(u(),S("div",{"data-slot":"dialog-footer",class:le(e(Q)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",t.class))},[L(s.$slots,"default")],2))}});Object.assign(Ra,{__name:"UiDialogFooter"});const Da=D({__name:"DialogHeader",props:{class:{}},setup(a){const t=a;return(s,o)=>(u(),S("div",{"data-slot":"dialog-header",class:le(e(Q)("flex flex-col gap-2 text-center sm:text-left",t.class))},[L(s.$slots,"default")],2))}}),mt=Object.assign(Da,{__name:"UiDialogHeader"}),Aa=D({inheritAttrs:!1,__name:"DialogScrollContent",props:{forceMount:{type:Boolean},disableOutsidePointerEvents:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(a,{emit:t}){const s=a,o=t,i=Z(s,"class"),r=he(i,o);return(n,l)=>(u(),g(e(nt),null,{default:p(()=>[m(e(ot),{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:p(()=>[m(e(lt),q({class:e(Q)("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",s.class)},{...n.$attrs,...e(r)},{onPointerDownOutside:l[0]||(l[0]=f=>{const v=f.detail.originalEvent,y=v.target;(v.offsetX>y.clientWidth||v.offsetY>y.clientHeight)&&f.preventDefault()})}),{default:p(()=>[L(n.$slots,"default"),m(e(ze),{class:"absolute top-4 right-4 p-0.5 transition-colors rounded-md hover:bg-secondary"},{default:p(()=>[m(e(rt),{class:"w-4 h-4"}),l[1]||(l[1]=c("span",{class:"sr-only"},"Close",-1))]),_:1})]),_:3},16,["class"])]),_:3})]),_:3}))}});Object.assign(Aa,{__name:"UiDialogScrollContent"});const Ba=D({__name:"DialogTitle",props:{asChild:{type:Boolean},as:{},class:{}},setup(a){const t=a,s=Z(t,"class"),o=Ee(s);return(i,r)=>(u(),g(e(Yt),q({"data-slot":"dialog-title"},e(o),{class:e(Q)("text-lg leading-none font-semibold",t.class)}),{default:p(()=>[L(i.$slots,"default")]),_:3},16,["class"]))}}),vt=Object.assign(Ba,{__name:"UiDialogTitle"}),Ia=D({__name:"DialogTrigger",props:{asChild:{type:Boolean},as:{}},setup(a){const t=a;return(s,o)=>(u(),g(e(Zt),q({"data-slot":"dialog-trigger"},t),{default:p(()=>[L(s.$slots,"default")]),_:3},16))}});Object.assign(Ia,{__name:"UiDialogTrigger"});const Pa=D({__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(a,{emit:t}){const i=he(a,t);return(r,n)=>(u(),g(e(ct),Ie(Pe(e(i))),{default:p(l=>[m(e(pt),{class:"overflow-hidden p-0","show-close-button":!1},{default:p(()=>[m(e(mt),{class:"sr-only"},{default:p(()=>[m(e(vt),null,{default:p(()=>[J(z(a.title),1)]),_:1}),m(e(ft),null,{default:p(()=>[J(z(a.description),1)]),_:1})]),_:1}),m(xa,{"default-search":a.defaultSearch},{default:p(()=>[L(r.$slots,"default",Ie(Pe(l)))]),_:2},1032,["default-search"])]),_:2},1024)]),_:3},16))}}),Ta=Object.assign(Pa,{__name:"UiCommandDialog"}),Fa=D({__name:"CommandEmpty",props:{asChild:{type:Boolean},as:{},class:{}},setup(a){const t=a,s=Z(t,"class"),{filterState:o}=Re(),i=O(()=>!!o.search&&o.filtered.count===0);return(r,n)=>i.value?(u(),g(e(ie),q({key:0,"data-slot":"command-empty"},e(s),{class:e(Q)("py-6 text-center text-sm",t.class)}),{default:p(()=>[L(r.$slots,"default")]),_:3},16,["class"])):U("",!0)}}),Oa=Object.assign(Fa,{__name:"UiCommandEmpty"}),La=D({__name:"CommandGroup",props:{asChild:{type:Boolean},as:{},class:{},heading:{}},setup(a){const t=a,s=Z(t,"class"),{allGroups:o,filterState:i}=Re(),r=$e(),n=O(()=>i.search?i.filtered.groups.has(r):!0);return Ja({id:r}),re(()=>{o.value.has(r)||o.value.set(r,new Set)}),ve(()=>{o.value.delete(r)}),(l,f)=>(u(),g(e(As),q(e(s),{id:e(r),"data-slot":"command-group",class:e(Q)("text-foreground overflow-hidden p-1",t.class),hidden:n.value?void 0:!0}),{default:p(()=>[a.heading?(u(),g(e(Is),{key:0,"data-slot":"command-group-heading",class:"px-2 py-1.5 text-xs font-medium text-muted-foreground"},{default:p(()=>[J(z(a.heading),1)]),_:1})):U("",!0),L(l.$slots,"default")]),_:3},16,["id","class","hidden"]))}}),Be=Object.assign(La,{__name:"UiCommandGroup"}),Ma={"data-slot":"command-input-wrapper",class:"flex h-9 items-center gap-2 border-b px-3"},Va=D({inheritAttrs:!1,__name:"CommandInput",props:{modelValue:{},autoFocus:{type:Boolean},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(a){const t=a,s=Z(t,"class"),o=Ee(s),{filterState:i}=Re(),r=C(null);return re(()=>{fe(()=>{const n=r.value?.$el;if(n&&i.search){const l=i.search.length;n.setSelectionRange(l,l)}})}),(n,l)=>(u(),S("div",Ma,[m(e(rs),{class:"size-4 shrink-0 opacity-50"}),m(e($s),q({ref_key:"inputRef",ref:r},{...e(o),...n.$attrs},{modelValue:e(i).search,"onUpdate:modelValue":l[0]||(l[0]=f=>e(i).search=f),"data-slot":"command-input","auto-focus":"",class:e(Q)("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"])]))}}),za=Object.assign(Va,{__name:"UiCommandInput"}),qa=D({__name:"CommandItem",props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},emits:["select"],setup(a,{emit:t}){const s=a,o=t,i=Z(s,"class"),r=he(i,o),n=$e(),{filterState:l,allItems:f,allGroups:v}=Re(),y=Wa(),d=O(()=>{if(l.search){const w=l.filtered.items.get(n);return w===void 0?!0:w>0}else return!0}),_=C(),A=It(_);return re(()=>{if(!(A.value instanceof HTMLElement))return;f.value.set(n,A.value.textContent??s.value?.toString()??"");const w=y?.id;w&&(v.value.has(w)?v.value.get(w)?.add(n):v.value.set(w,new Set([n])))}),ve(()=>{f.value.delete(n)}),(w,T)=>d.value?(u(),g(e(Os),q({key:0},e(r),{id:e(n),ref_key:"itemRef",ref:_,"data-slot":"command-item",class:e(Q)("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",s.class),onSelect:T[0]||(T[0]=()=>{e(l).search=""})}),{default:p(()=>[L(w.$slots,"default")]),_:3},16,["id","class"])):U("",!0)}}),pe=Object.assign(qa,{__name:"UiCommandItem"}),ja={role:"presentation"},Ka=D({__name:"CommandList",props:{asChild:{type:Boolean},as:{},class:{}},setup(a){const t=a,s=Z(t,"class"),o=Ee(s);return(i,r)=>(u(),g(e(ks),q({"data-slot":"command-list"},e(o),{class:e(Q)("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto scrollbar-none",t.class)}),{default:p(()=>[c("div",ja,[L(i.$slots,"default")])]),_:3},16,["class"]))}}),Ha=Object.assign(Ka,{__name:"UiCommandList"}),Ua=D({__name:"CommandSeparator",props:{orientation:{},decorative:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(a){const t=a,s=Z(t,"class");return(o,i)=>(u(),g(e(es),q({"data-slot":"command-separator"},e(s),{class:e(Q)("bg-border -mx-1 h-px",t.class)}),{default:p(()=>[L(o.$slots,"default")]),_:3},16,["class"]))}}),Ge=Object.assign(Ua,{__name:"UiCommandSeparator"}),Na=D({__name:"CommandShortcut",props:{class:{}},setup(a){const t=a;return(s,o)=>(u(),S("span",{"data-slot":"command-shortcut",class:le(e(Q)("text-muted-foreground ml-auto text-xs tracking-widest",t.class))},[L(s.$slots,"default")],2))}});Object.assign(Na,{__name:"UiCommandShortcut"});const[Re,Ga]=we("Command"),[Wa,Ja]=we("CommandGroup"),Qa={class:"flex-1"},Xa={class:"flex-1"},Ya={class:"ml-auto flex items-center gap-1"},Za={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"},eo={class:"flex-1"},to={class:"ml-auto flex items-center gap-1"},so={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"},ao={class:"ml-auto flex items-center gap-1"},oo={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"},no=D({__name:"CommandPalette",props:{open:{type:Boolean,default:!1},openModifiers:{},filter:{default:""},filterModifiers:{}},emits:Et(["openShortcutsHelp"],["update:open","update:filter"]),setup(a,{emit:t}){const s=Te(a,"open"),o=Te(a,"filter"),i=t,r=Qe(),{themeMode:n,cycleThemeMode:l}=Xe(),{prds:f}=Ve(),{repos:v,currentRepoId:y,selectRepo:d,refreshGitRepos:_}=Se(),{showSuccess:A,showError:w}=et(),T=["document","board","graph"],F={document:"Document",board:"Task Board",graph:"Graph"},b=C("document");{const $=localStorage.getItem("prd-viewer-tab");($==="document"||$==="board"||$==="graph")&&(b.value=$)}function M($){$.key!=="prd-viewer-tab"||!$.newValue||($.newValue==="document"||$.newValue==="board"||$.newValue==="graph")&&(b.value=$.newValue)}re(()=>{window.addEventListener("storage",M)}),ve(()=>{window.removeEventListener("storage",M)});const R=O(()=>{const $=T.indexOf(b.value),I=$>=0?$:0;return T[(I+1)%T.length]}),j=O(()=>F[R.value]);function B($){y.value&&(r.push(`/${y.value}/${$}`),s.value=!1)}function ae($){d($),r.push("/"),s.value=!1}function K(){l(),s.value=!1}function oe(){const $=R.value;b.value=$,localStorage.setItem("prd-viewer-tab",$),window.dispatchEvent(new StorageEvent("storage",{key:"prd-viewer-tab",newValue:$})),s.value=!1}function ee(){s.value=!1,i("openShortcutsHelp")}const G=C(!1);async function X(){if(!(!y.value||G.value)){G.value=!0,s.value=!1;try{const $=await _(y.value);A(`Discovered ${$.discovered} git repositories`)}catch{w("Failed to refresh git repos")}finally{G.value=!1}}}ne(s,$=>{$||(o.value="")});const W=O(()=>navigator.platform.toUpperCase().indexOf("MAC")>=0),Y=O(()=>W.value?"⌘":"Ctrl");return($,I)=>(u(),g(e(Ta),{open:s.value,"onUpdate:open":I[0]||(I[0]=N=>s.value=N),"default-search":o.value},{default:p(()=>[m(e(za),{placeholder:"Type a command or search..."}),m(e(Ha),null,{default:p(()=>[m(e(Oa),null,{default:p(()=>[...I[1]||(I[1]=[J("No results found.",-1)])]),_:1}),e(f)?.length?(u(),g(e(Be),{key:0,heading:"Documents"},{default:p(()=>[(u(!0),S(te,null,se(e(f),N=>(u(),g(e(pe),{key:N.slug,value:`PRD: ${N.name}`,onSelect:ue=>B(N.slug)},{default:p(()=>[m(e(Oe),{class:"size-4"}),c("span",null,z(N.name),1)]),_:2},1032,["value","onSelect"]))),128))]),_:1})):U("",!0),e(f)?.length&&e(v)?.length?(u(),g(e(Ge),{key:1})):U("",!0),e(v)?.length?(u(),g(e(Be),{key:2,heading:"Repositories"},{default:p(()=>[(u(!0),S(te,null,se(e(v),N=>(u(),g(e(pe),{key:N.id,value:`repo-${N.id} ${N.name}`,onSelect:ue=>ae(N.id)},{default:p(()=>[m(e(Le),{class:"size-4"}),c("span",Qa,z(N.name),1),N.id===e(y)?(u(),g(e(tt),{key:0,class:"size-4 text-primary"})):U("",!0)]),_:2},1032,["value","onSelect"]))),128))]),_:1})):U("",!0),e(v)?.length?(u(),g(e(Ge),{key:3})):U("",!0),m(e(Be),{heading:"Actions"},{default:p(()=>[m(e(pe),{value:"cycle-theme light dark system",onSelect:K},{default:p(()=>[e(n)==="system"?(u(),g(e(it),{key:0,class:"size-4"})):e(n)==="light"?(u(),g(e(dt),{key:1,class:"size-4"})):(u(),g(e(ut),{key:2,class:"size-4"})),c("span",Xa,"Cycle theme mode ("+z(e(n))+")",1),c("div",Ya,[c("kbd",Za,z(e(Y)),1),I[2]||(I[2]=c("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}),m(e(pe),{value:`switch-tab ${e(j).toLowerCase()}`,onSelect:oe},{default:p(()=>[m(e(st),{class:"size-4"}),c("span",eo,"Switch to "+z(e(j)),1),c("div",to,[c("kbd",so,z(e(Y)),1),I[3]||(I[3]=c("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"]),m(e(pe),{value:"keyboard shortcuts help",onSelect:ee},{default:p(()=>[m(e(ts),{class:"size-4"}),I[5]||(I[5]=c("span",{class:"flex-1"},"Keyboard shortcuts",-1)),c("div",ao,[c("kbd",oo,z(e(Y)),1),I[4]||(I[4]=c("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(y)?(u(),g(e(pe),{key:0,value:"refresh git repos rescan discover",disabled:e(G),onSelect:X},{default:p(()=>[m(e(at),{class:le(["size-4",{"animate-spin":e(G)}])},null,8,["class"]),I[6]||(I[6]=c("span",{class:"flex-1"},"Refresh git repos",-1))]),_:1},8,["disabled"])):U("",!0)]),_:1})]),_:1})]),_:1},8,["open","default-search"]))}}),lo=Object.assign(no,{__name:"CommandPalette"}),ro={class:"space-y-6"},io={class:"mb-3 text-sm font-medium text-muted-foreground"},uo={class:"space-y-2"},co={class:"text-sm"},po={class:"flex items-center gap-1"},fo=D({__name:"ShortcutsHelp",props:{open:{type:Boolean,default:!1},openModifiers:{}},emits:["update:open"],setup(a){const t=Te(a,"open"),s=O(()=>navigator.platform.toUpperCase().indexOf("MAC")>=0),o=O(()=>s.value?"⌘":"Ctrl"),i=O(()=>[{name:"Navigation",shortcuts:[{keys:[o.value,"K"],description:"Open command palette"},{keys:[o.value,"J"],description:"Quick jump to document"}]},{name:"Actions",shortcuts:[{keys:[o.value,"."],description:"Cycle theme mode (light/dark/system)"},{keys:[o.value,"\\"],description:"Cycle Document, Task Board, and Graph tabs"},{keys:[o.value,","],description:"Add repository"}]},{name:"Help",shortcuts:[{keys:[o.value,"/"],description:"Show this help"},{keys:["Esc"],description:"Close dialog or palette"}]}]);return(r,n)=>(u(),g(e(ct),{open:t.value,"onUpdate:open":n[0]||(n[0]=l=>t.value=l)},{default:p(()=>[m(e(pt),{class:"max-w-md"},{default:p(()=>[m(e(mt),null,{default:p(()=>[m(e(vt),null,{default:p(()=>[...n[1]||(n[1]=[J("Keyboard Shortcuts",-1)])]),_:1}),m(e(ft),null,{default:p(()=>[...n[2]||(n[2]=[J(" Quick reference for available keyboard shortcuts. ",-1)])]),_:1})]),_:1}),c("div",ro,[(u(!0),S(te,null,se(e(i),l=>(u(),S("div",{key:l.name},[c("h3",io,z(l.name),1),c("div",uo,[(u(!0),S(te,null,se(l.shortcuts,f=>(u(),S("div",{key:f.description,class:"flex items-center justify-between"},[c("span",co,z(f.description),1),c("div",po,[(u(!0),S(te,null,se(f.keys,(v,y)=>(u(),S("kbd",{key:y,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"},z(v),1))),128))])]))),128))])]))),128))])]),_:1})]),_:1},8,["open"]))}}),mo=Object.assign(fo,{__name:"ShortcutsHelp"});function ht(){const a=document.activeElement;if(!a)return!1;const t=a.tagName.toLowerCase();return t==="input"||t==="textarea"||a.getAttribute("contenteditable")==="true"||a.getAttribute("role")==="textbox"}function vo(a){const t=a.toLowerCase().split("+"),s=t.pop()||"";return{meta:t.includes("meta"),ctrl:t.includes("ctrl"),shift:t.includes("shift"),alt:t.includes("alt"),key:s}}function ho(a,t){const s=a.key.toLowerCase();let o=s===t.key;return t.key==="\\"&&(o=s==="\\"||a.code==="Backslash"),t.key==="/"&&(o=s==="/"||a.code==="Slash"),t.key==="."&&(o=s==="."||a.code==="Period"),t.key===","&&(o=s===","||a.code==="Comma"),o&&a.metaKey===t.meta&&a.ctrlKey===t.ctrl&&a.shiftKey===t.shift&&a.altKey===t.alt}const Ce=[];let We=!1;function go(a){for(const t of Ce)if(ho(a,t.combo)){if(!t.allowInInput&&ht())continue;a.preventDefault(),a.stopPropagation(),t.handler();return}}function Je(){We||(document.addEventListener("keydown",go,{capture:!0}),We=!0)}function yo(){re(()=>{Je()});function a(s,o,i){const n={combo:vo(s),handler:o,allowInInput:i?.allowInInput??!1};Ce.push(n),Je(),ve(()=>{const l=Ce.indexOf(n);l>-1&&Ce.splice(l,1)})}function t(){return ht()}return{onShortcut:a,isInputFocused:t}}const _o=globalThis.setInterval,bo=2e3,xo=2e3;function wo(a){return!a.instanceId||!a.buildId?null:`${a.buildId}:${a.instanceId}`}function Co(a){const t=C(null),s=C(!1),o=C(null),i=C(null),r=C(null),n=C(null),l=C(!1),f=C(!1),v=C(!1);function y(){i.value&&(clearTimeout(i.value),i.value=null)}function d(){r.value&&(clearInterval(r.value),r.value=null)}async function _(){try{const R=await $fetch(`/api/runtime?_=${Date.now()}`);return wo(R)}catch{return null}}async function A(){n.value===null&&(n.value=await _())}async function w(){if(!(l.value||v.value)){l.value=!0;try{const R=await _();if(!R)return;if(!n.value){n.value=R;return}R!==n.value&&(v.value=!0,window.location.reload())}finally{l.value=!1}}}function T(){r.value||(r.value=_o(()=>{w()},xo))}function F(){i.value||(i.value=setTimeout(()=>{i.value=null,b()},bo))}function b(){if(!t.value)try{const R=new EventSource("/api/watch");R.onopen=async()=>{s.value=!0,o.value=null,y(),d(),f.value&&(f.value=!1,await w())},R.onmessage=j=>{try{const B=JSON.parse(j.data);a(B)}catch{}},R.onerror=()=>{s.value=!1,o.value="Connection lost",f.value=!0,t.value===R&&(R.close(),t.value=null),T(),F()},t.value=R}catch{o.value="Failed to connect",T(),F()}}function M(){y(),d(),f.value=!1,t.value&&(t.value.close(),t.value=null,s.value=!1)}return re(async()=>{await A(),b()}),ve(()=>{M()}),{isConnected:s,error:o,connect:b,disconnect:M}}const ko={class:"min-h-screen bg-background text-foreground"},So={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"},$o={class:"flex h-full items-center justify-between px-4 md:px-6"},Eo={class:"flex items-center gap-3"},Ro={class:"flex h-screen pt-14"},Do={class:"flex-1 overflow-auto"},Lo=D({__name:"default",setup(a){const{themeMode:t,cycleThemeMode:s}=Xe(),{refreshPrds:o}=Ve(),{currentRepoId:i}=Se(),r=Me(),n=C(null);Rt("fileChangeEvent",n);const l=C(!1),f=C(""),v=C(!1),y=C(null),{onShortcut:d}=yo();d("Meta+k",()=>{l.value=!0}),d("Ctrl+k",()=>{l.value=!0}),d("Meta+j",()=>{f.value="PRD: ",l.value=!0}),d("Ctrl+j",()=>{f.value="PRD: ",l.value=!0});function _(){const F=["document","board","graph"],b=localStorage.getItem("prd-viewer-tab")||"document",M=F.indexOf(b),R=M>=0?M:0,j=F[(R+1)%F.length]??"document";localStorage.setItem("prd-viewer-tab",j),window.dispatchEvent(new StorageEvent("storage",{key:"prd-viewer-tab",newValue:j}))}d("Meta+\\",_),d("Ctrl+\\",_);function A(){s()}d("Meta+.",A),d("Ctrl+.",A);function w(){y.value?.openAddDialog()}d("Meta+,",w),d("Ctrl+,",w);function T(){v.value=!0}return d("Meta+/",T),d("Ctrl+/",T),d("Meta+Shift+/",T),d("Ctrl+Shift+/",T),Co(F=>{if(F.type==="connected"||!F.category)return;const b=F.category;if(F.repoId!==i.value)return;(b==="prd"||b==="tasks")&&o();const M=r.params.prd;if(M){const R=b==="prd"&&F.path?.includes(`/${M}.`),j=(b==="tasks"||b==="progress")&&F.path?.includes(`/${M}/`);(R||j||(b==="tasks"||b==="progress"))&&(n.value={category:b,path:F.path,timestamp:Date.now()})}}),(F,b)=>{const M=ua,R=Dt,j=_a;return u(),S("div",ko,[m(lo,{open:e(l),"onUpdate:open":b[0]||(b[0]=B=>ye(l)?l.value=B:null),filter:e(f),"onUpdate:filter":b[1]||(b[1]=B=>ye(f)?f.value=B:null),onOpenShortcutsHelp:T},null,8,["open","filter"]),m(mo,{open:e(v),"onUpdate:open":b[2]||(b[2]=B=>ye(v)?v.value=B:null)},null,8,["open"]),c("header",So,[c("div",$o,[b[5]||(b[5]=c("div",{class:"flex items-center gap-4"},[c("h1",{class:"text-lg font-semibold tracking-tight"}," PRD Viewer ")],-1)),m(R,null,{fallback:p(()=>[...b[4]||(b[4]=[c("div",{class:"flex items-center gap-3"},[c("div",{class:"h-8 w-[200px] animate-pulse rounded-md bg-muted"}),c("div",{class:"size-9 animate-pulse rounded-md bg-muted"})],-1)])]),default:p(()=>[c("div",Eo,[m(M,{ref_key:"repoSelectorRef",ref:y},null,512),m(e(me),{variant:"ghost",size:"icon",class:"size-9",onClick:A},{default:p(()=>[e(t)==="system"?(u(),g(e(it),{key:0,class:"size-4"})):e(t)==="light"?(u(),g(e(dt),{key:1,class:"size-4"})):(u(),g(e(ut),{key:2,class:"size-4"})),b[3]||(b[3]=c("span",{class:"sr-only"},"Cycle theme mode",-1))]),_:1})])]),_:1})])]),c("div",Ro,[m(R,null,{fallback:p(()=>[...b[6]||(b[6]=[c("aside",{class:"flex h-full w-64 flex-col border-r border-border bg-background"},[c("div",{class:"flex h-12 items-center border-b border-border px-4"},[c("div",{class:"h-4 w-20 animate-pulse rounded bg-muted"})]),c("div",{class:"flex-1 p-2 space-y-2"},[c("div",{class:"h-9 animate-pulse rounded-md bg-muted"}),c("div",{class:"h-9 animate-pulse rounded-md bg-muted"}),c("div",{class:"h-9 animate-pulse rounded-md bg-muted"})])],-1)])]),default:p(()=>[m(j)]),_:1}),c("main",Do,[L(F.$slots,"default")])])])}}});export{Lo as default};
@@ -1 +1 @@
1
- import{c as o,d as r,e as d}from"./qt5OEWHC.js";import{g as u,ae as p,af as c,l as s,o as m,c as f,H as b,m as v}from"./CMu9GKTH.js";const w=o("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);const y=o("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]),g=u({__name:"Input",props:{defaultValue:{},modelValue:{},class:{}},emits:["update:modelValue"],setup(i,{emit:l}){const e=i,a=r(e,"modelValue",l,{passive:!0,defaultValue:e.defaultValue});return(V,t)=>p((m(),f("input",{"onUpdate:modelValue":t[0]||(t[0]=n=>v(a)?a.value=n:null),"data-slot":"input",class:b(s(d)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e.class))},null,2)),[[c,s(a)]])}}),_=Object.assign(g,{__name:"UiInput"});export{w as F,_ as I,y as a};
1
+ import{c as o,d as r,e as d}from"./D0op9E2g.js";import{g as u,ae as p,af as c,l as s,o as m,c as f,H as b,m as v}from"./Bibm_IDv.js";const w=o("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);const y=o("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]),g=u({__name:"Input",props:{defaultValue:{},modelValue:{},class:{}},emits:["update:modelValue"],setup(i,{emit:l}){const e=i,a=r(e,"modelValue",l,{passive:!0,defaultValue:e.defaultValue});return(V,t)=>p((m(),f("input",{"onUpdate:modelValue":t[0]||(t[0]=n=>v(a)?a.value=n:null),"data-slot":"input",class:b(s(d)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e.class))},null,2)),[[c,s(a)]])}}),_=Object.assign(g,{__name:"UiInput"});export{w as F,_ as I,y as a};
@@ -1 +1 @@
1
- import{_ as s}from"./DlAUqK2U.js";import{u as i}from"./BDqHART1.js";import{o as a,c as u,a as e,t as o}from"./CMu9GKTH.js";const l={class:"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"},c={class:"max-w-520px text-center"},d=["textContent"],p=["textContent"],f={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},status:{type:Number,default:500},statusText:{type:String,default:"Server error"},description:{type:String,default:"This page is temporarily unavailable."}},setup(t){const r=t;return i({title:`${r.status} - ${r.statusText} | ${r.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(m,n)=>(a(),u("div",l,[n[0]||(n[0]=e("div",{class:"-bottom-1/2 fixed h-1/2 left-0 right-0 spotlight"},null,-1)),e("div",c,[e("h1",{class:"font-medium mb-8 sm:text-10xl text-8xl",textContent:o(t.status)},null,8,d),e("p",{class:"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl",textContent:o(t.description)},null,8,p)])]))}},x=s(f,[["__scopeId","data-v-647e9bc1"]]);export{x as default};
1
+ import{_ as s}from"./DlAUqK2U.js";import{u as i}from"./CxHOXVf6.js";import{o as a,c as u,a as e,t as o}from"./Bibm_IDv.js";const l={class:"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"},c={class:"max-w-520px text-center"},d=["textContent"],p=["textContent"],f={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},status:{type:Number,default:500},statusText:{type:String,default:"Server error"},description:{type:String,default:"This page is temporarily unavailable."}},setup(t){const r=t;return i({title:`${r.status} - ${r.statusText} | ${r.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(m,n)=>(a(),u("div",l,[n[0]||(n[0]=e("div",{class:"-bottom-1/2 fixed h-1/2 left-0 right-0 spotlight"},null,-1)),e("div",c,[e("h1",{class:"font-medium mb-8 sm:text-10xl text-8xl",textContent:o(t.status)},null,8,d),e("p",{class:"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl",textContent:o(t.description)},null,8,p)])]))}},x=s(f,[["__scopeId","data-v-647e9bc1"]]);export{x as default};
@@ -5,7 +5,7 @@ import { Background } from '@vue-flow/background';
5
5
  import { Controls } from '@vue-flow/controls';
6
6
  import { MarkerType, VueFlow, Position, Handle } from '@vue-flow/core';
7
7
  import { Loader2, AlertCircle, GitBranch, Circle, Clock3, CheckCircle2, AlertTriangle, Clock, ArrowLeft, Tag, ListOrdered, CheckSquare, Check, Link2, Diff, Calendar, ExternalLink, X, RefreshCw, Keyboard, FileDiff, FileCode, GitCommit, FileText, Plus, Minus, FolderGit2, ArrowRight, FileWarning, ChevronDown, Link, Link2Off, FileEdit, FileX, FilePlus } from 'lucide-vue-next';
8
- import { codeToHtml } from 'shiki/bundle/web';
8
+ import { codeToHtml } from 'shiki/bundle/full';
9
9
  import { B as Button } from './index-CckL_NBD.mjs';
10
10
  import { _ as _export_sfc } from './_plugin-vue_export-helper-1tPrXgE0.mjs';
11
11
  import { Primitive, useForwardPropsEmits, DialogRoot, DialogPortal, DialogContent, DialogClose, DialogTitle, DialogDescription, Separator as Separator$1, DialogOverlay, TooltipProvider as TooltipProvider$1, TooltipRoot, TooltipTrigger as TooltipTrigger$1, TooltipPortal, TooltipContent as TooltipContent$1, TooltipArrow, ScrollAreaRoot, ScrollAreaViewport, ScrollAreaCorner, ScrollAreaScrollbar, ScrollAreaThumb, DialogTrigger } from 'reka-ui';
@@ -862,21 +862,21 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
862
862
  return "context";
863
863
  }
864
864
  return (_ctx, _push, _parent, _attrs) => {
865
- _push(`<div${ssrRenderAttrs(mergeProps({ class: "diff-viewer" }, _attrs))} data-v-13d918cc>`);
865
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "diff-viewer" }, _attrs))} data-v-8fd455b9>`);
866
866
  if ((unref(isLoading) || __props.isLoadingContent || unref(isLoadingFullFile)) && !__props.binary) {
867
- _push(`<div class="flex items-center justify-center py-8" data-v-13d918cc><div class="size-6 animate-spin rounded-full border-2 border-primary border-t-transparent" data-v-13d918cc></div></div>`);
867
+ _push(`<div class="flex items-center justify-center py-8" data-v-8fd455b9><div class="size-6 animate-spin rounded-full border-2 border-primary border-t-transparent" data-v-8fd455b9></div></div>`);
868
868
  } else if (__props.binary) {
869
- _push(`<div class="flex flex-col items-center justify-center gap-3 py-12 text-muted-foreground" data-v-13d918cc>`);
869
+ _push(`<div class="flex flex-col items-center justify-center gap-3 py-12 text-muted-foreground" data-v-8fd455b9>`);
870
870
  _push(ssrRenderComponent(unref(FileWarning), { class: "size-10 opacity-50" }, null, _parent));
871
- _push(`<div class="text-center" data-v-13d918cc><p class="font-medium" data-v-13d918cc>Binary file</p><p class="text-sm" data-v-13d918cc>This file cannot be displayed as a diff</p></div></div>`);
871
+ _push(`<div class="text-center" data-v-8fd455b9><p class="font-medium" data-v-8fd455b9>Binary file</p><p class="text-sm" data-v-8fd455b9>This file cannot be displayed as a diff</p></div></div>`);
872
872
  } else if (unref(isEmpty) && !__props.showFullFile) {
873
- _push(`<div class="flex flex-col items-center justify-center gap-3 py-12 text-muted-foreground" data-v-13d918cc>`);
873
+ _push(`<div class="flex flex-col items-center justify-center gap-3 py-12 text-muted-foreground" data-v-8fd455b9>`);
874
874
  _push(ssrRenderComponent(unref(AlertTriangle), { class: "size-10 opacity-50" }, null, _parent));
875
- _push(`<div class="text-center" data-v-13d918cc><p class="font-medium" data-v-13d918cc>No changes</p><p class="text-sm" data-v-13d918cc>This file was touched but has no content changes</p></div></div>`);
875
+ _push(`<div class="text-center" data-v-8fd455b9><p class="font-medium" data-v-8fd455b9>No changes</p><p class="text-sm" data-v-8fd455b9>This file was touched but has no content changes</p></div></div>`);
876
876
  } else if (unref(isLargeFile) && !unref(showAll) && !__props.showFullFile) {
877
- _push(`<div class="diff-container" data-v-13d918cc><div class="flex flex-col items-center justify-center gap-3 border-b border-border bg-muted/30 py-6" data-v-13d918cc>`);
877
+ _push(`<div class="diff-container" data-v-8fd455b9><div class="flex flex-col items-center justify-center gap-3 border-b border-border bg-muted/30 py-6" data-v-8fd455b9>`);
878
878
  _push(ssrRenderComponent(unref(AlertTriangle), { class: "size-8 text-yellow-500" }, null, _parent));
879
- _push(`<div class="text-center" data-v-13d918cc><p class="font-medium" data-v-13d918cc>Large file</p><p class="text-sm text-muted-foreground" data-v-13d918cc> This file has ${ssrInterpolate(unref(totalLines).toLocaleString())} lines (threshold: ${ssrInterpolate(LINE_LIMIT.toLocaleString())}) </p></div>`);
879
+ _push(`<div class="text-center" data-v-8fd455b9><p class="font-medium" data-v-8fd455b9>Large file</p><p class="text-sm text-muted-foreground" data-v-8fd455b9> This file has ${ssrInterpolate(unref(totalLines).toLocaleString())} lines (threshold: ${ssrInterpolate(LINE_LIMIT.toLocaleString())}) </p></div>`);
880
880
  _push(ssrRenderComponent(unref(Button), {
881
881
  variant: "outline",
882
882
  size: "sm",
@@ -897,15 +897,15 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
897
897
  }, _parent));
898
898
  _push(`</div></div>`);
899
899
  } else if (__props.showFullFile && __props.fileContent) {
900
- _push(`<div class="diff-container" data-v-13d918cc><div class="full-file-view" data-v-13d918cc><!--[-->`);
900
+ _push(`<div class="diff-container" data-v-8fd455b9><div class="full-file-view" data-v-8fd455b9><!--[-->`);
901
901
  ssrRenderList(unref(fullFileLines), (line, index) => {
902
902
  _push(`<div class="${ssrRenderClass([{
903
903
  "diff-add": getFullFileLineType(index + 1) === "add"
904
- }, "full-file-line"])}" data-v-13d918cc><div class="diff-gutter" data-v-13d918cc><span class="line-number" data-v-13d918cc>${ssrInterpolate(index + 1)}</span></div><div class="diff-content" data-v-13d918cc><span class="diff-code" data-v-13d918cc>${(unref(highlightedFullFile)[index] || escapeHtml(line)) ?? ""}</span></div></div>`);
904
+ }, "full-file-line"])}" data-v-8fd455b9><div class="diff-gutter" data-v-8fd455b9><span class="line-number" data-v-8fd455b9>${ssrInterpolate(index + 1)}</span></div><div class="diff-content" data-v-8fd455b9><span class="diff-code" data-v-8fd455b9>${(unref(highlightedFullFile)[index] || escapeHtml(line)) ?? ""}</span></div></div>`);
905
905
  });
906
906
  _push(`<!--]--></div></div>`);
907
907
  } else {
908
- _push(`<div class="diff-container" data-v-13d918cc><div class="diff-toolbar" data-v-13d918cc>`);
908
+ _push(`<div class="diff-container" data-v-8fd455b9><div class="diff-toolbar" data-v-8fd455b9>`);
909
909
  _push(ssrRenderComponent(unref(Button), {
910
910
  variant: "ghost",
911
911
  size: "sm",
@@ -925,25 +925,25 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
925
925
  }),
926
926
  _: 1
927
927
  }, _parent));
928
- _push(`</div><div class="diff-split" data-v-13d918cc><div class="diff-column diff-column-left" data-v-13d918cc><div class="diff-column-content" data-v-13d918cc><!--[-->`);
928
+ _push(`</div><div class="diff-split" data-v-8fd455b9><div class="diff-column diff-column-left" data-v-8fd455b9><div class="diff-column-content" data-v-8fd455b9><!--[-->`);
929
929
  ssrRenderList(unref(displayItems), (item) => {
930
930
  _push(`<!--[-->`);
931
931
  if (item.type === "separator") {
932
- _push(`<div class="diff-separator-half" data-v-13d918cc><div class="separator-line" data-v-13d918cc></div><span class="separator-text" data-v-13d918cc>···</span></div>`);
932
+ _push(`<div class="diff-separator-half" data-v-8fd455b9><div class="separator-line" data-v-8fd455b9></div><span class="separator-text" data-v-8fd455b9>···</span></div>`);
933
933
  } else if (item.pair) {
934
934
  _push(`<div class="${ssrRenderClass([{
935
935
  "diff-remove": item.pair.left.type === "remove",
936
936
  "diff-empty": item.pair.left.type === "empty",
937
937
  "diff-context": item.pair.left.type === "context"
938
- }, "diff-line"])}" data-v-13d918cc><div class="diff-gutter" data-v-13d918cc>`);
938
+ }, "diff-line"])}" data-v-8fd455b9><div class="diff-gutter" data-v-8fd455b9>`);
939
939
  if (item.pair.left.lineNum) {
940
- _push(`<span class="line-number" data-v-13d918cc>${ssrInterpolate(item.pair.left.lineNum)}</span>`);
940
+ _push(`<span class="line-number" data-v-8fd455b9>${ssrInterpolate(item.pair.left.lineNum)}</span>`);
941
941
  } else {
942
942
  _push(`<!---->`);
943
943
  }
944
- _push(`</div><div class="diff-content" data-v-13d918cc>`);
944
+ _push(`</div><div class="diff-content" data-v-8fd455b9>`);
945
945
  if (item.pair.left.type !== "empty") {
946
- _push(`<span class="diff-code" data-v-13d918cc>${(getHighlightedContent(item.pair.id, "old") || escapeHtml(item.pair.left.content)) ?? ""}</span>`);
946
+ _push(`<span class="diff-code" data-v-8fd455b9>${(getHighlightedContent(item.pair.id, "old") || escapeHtml(item.pair.left.content)) ?? ""}</span>`);
947
947
  } else {
948
948
  _push(`<!---->`);
949
949
  }
@@ -953,25 +953,25 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
953
953
  }
954
954
  _push(`<!--]-->`);
955
955
  });
956
- _push(`<!--]--></div></div><div class="diff-column diff-column-right" data-v-13d918cc><div class="diff-column-content" data-v-13d918cc><!--[-->`);
956
+ _push(`<!--]--></div></div><div class="diff-column diff-column-right" data-v-8fd455b9><div class="diff-column-content" data-v-8fd455b9><!--[-->`);
957
957
  ssrRenderList(unref(displayItems), (item) => {
958
958
  _push(`<!--[-->`);
959
959
  if (item.type === "separator") {
960
- _push(`<div class="diff-separator-half" data-v-13d918cc><span class="separator-text" data-v-13d918cc>···</span><div class="separator-line" data-v-13d918cc></div></div>`);
960
+ _push(`<div class="diff-separator-half" data-v-8fd455b9><span class="separator-text" data-v-8fd455b9>···</span><div class="separator-line" data-v-8fd455b9></div></div>`);
961
961
  } else if (item.pair) {
962
962
  _push(`<div class="${ssrRenderClass([{
963
963
  "diff-add": item.pair.right.type === "add",
964
964
  "diff-empty": item.pair.right.type === "empty",
965
965
  "diff-context": item.pair.right.type === "context"
966
- }, "diff-line"])}" data-v-13d918cc><div class="diff-gutter" data-v-13d918cc>`);
966
+ }, "diff-line"])}" data-v-8fd455b9><div class="diff-gutter" data-v-8fd455b9>`);
967
967
  if (item.pair.right.lineNum) {
968
- _push(`<span class="line-number" data-v-13d918cc>${ssrInterpolate(item.pair.right.lineNum)}</span>`);
968
+ _push(`<span class="line-number" data-v-8fd455b9>${ssrInterpolate(item.pair.right.lineNum)}</span>`);
969
969
  } else {
970
970
  _push(`<!---->`);
971
971
  }
972
- _push(`</div><div class="diff-content" data-v-13d918cc>`);
972
+ _push(`</div><div class="diff-content" data-v-8fd455b9>`);
973
973
  if (item.pair.right.type !== "empty") {
974
- _push(`<span class="diff-code" data-v-13d918cc>${(getHighlightedContent(item.pair.id, "new") || escapeHtml(item.pair.right.content)) ?? ""}</span>`);
974
+ _push(`<span class="diff-code" data-v-8fd455b9>${(getHighlightedContent(item.pair.id, "new") || escapeHtml(item.pair.right.content)) ?? ""}</span>`);
975
975
  } else {
976
976
  _push(`<!---->`);
977
977
  }
@@ -993,7 +993,7 @@ _sfc_main$j.setup = (props, ctx) => {
993
993
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/git/DiffViewer.vue");
994
994
  return _sfc_setup$j ? _sfc_setup$j(props, ctx) : void 0;
995
995
  };
996
- const __nuxt_component_1$2 = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main$j, [["__scopeId", "data-v-13d918cc"]]), { __name: "GitDiffViewer" });
996
+ const __nuxt_component_1$2 = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main$j, [["__scopeId", "data-v-8fd455b9"]]), { __name: "GitDiffViewer" });
997
997
  const _sfc_main$i = /* @__PURE__ */ defineComponent({
998
998
  __name: "ScrollBar",
999
999
  __ssrInlineRender: true,
@@ -3445,4 +3445,4 @@ _sfc_main.setup = (props, ctx) => {
3445
3445
  const __nuxt_component_1 = Object.assign(_sfc_main, { __name: "TasksDetail" });
3446
3446
 
3447
3447
  export { Badge as B, __nuxt_component_0$2 as _, __nuxt_component_1 as a };
3448
- //# sourceMappingURL=Detail-DC-KJQ1f.mjs.map
3448
+ //# sourceMappingURL=Detail-CUfU85GY.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Detail-CUfU85GY.mjs","sources":["../../../../node_modules/@dagrejs/dagre/dist/dagre.esm.js","../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/Detail-CUfU85GY.js"],"names":[],"mappings":"","x_google_ignoreList":[0,1]}
@@ -0,0 +1,4 @@
1
+ const DiffViewer_vue_vue_type_style_index_0_scoped_8fd455b9_lang = ".diff-viewer[data-v-8fd455b9]{color:hsl(var(--foreground));font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Monaco,Consolas,monospace;font-size:.8125rem;line-height:1.5}.diff-container[data-v-8fd455b9]{overflow-x:auto}.diff-toolbar[data-v-8fd455b9]{background:hsl(var(--muted)/.3);border-bottom:1px solid hsl(var(--border));display:flex;justify-content:flex-end;padding:.25rem .5rem}.diff-split[data-v-8fd455b9]{display:flex;min-width:100%}.diff-column[data-v-8fd455b9]{flex:1;min-width:0;overflow-x:auto}.diff-column-left[data-v-8fd455b9]{border-right:1px solid hsl(var(--border))}.diff-column-content[data-v-8fd455b9]{min-width:-moz-fit-content;min-width:fit-content}.diff-line[data-v-8fd455b9]{display:flex}.diff-gutter[data-v-8fd455b9]{background:hsl(var(--muted)/.3);color:hsl(var(--muted-foreground));flex-shrink:0;padding:0 .5rem;text-align:right;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:3.5rem}.line-number[data-v-8fd455b9]{display:inline-block;min-width:2rem;opacity:.7}.diff-content[data-v-8fd455b9]{color:hsl(var(--foreground));flex:1;min-width:0;padding:0 .5rem;white-space:pre}.diff-code[data-v-8fd455b9]{color:inherit;display:inline}.diff-add[data-v-8fd455b9]{background:#16a24926}.diff-add .diff-gutter[data-v-8fd455b9]{background:#16a24940}.diff-remove[data-v-8fd455b9]{background:#ef434326}.diff-remove .diff-gutter[data-v-8fd455b9]{background:#ef434340}.diff-empty[data-v-8fd455b9]{background:hsl(var(--muted)/.2)}.diff-empty .diff-gutter[data-v-8fd455b9]{background:hsl(var(--muted)/.3)}.diff-context[data-v-8fd455b9]{background:transparent}.full-file-view[data-v-8fd455b9]{min-width:100%}.full-file-line[data-v-8fd455b9]{display:flex}.full-file-line .diff-gutter[data-v-8fd455b9]{width:4rem}.full-file-line.diff-add[data-v-8fd455b9]{background:#16a24926}.full-file-line.diff-add .diff-gutter[data-v-8fd455b9]{background:#16a24940}.dark .full-file-line.diff-add[data-v-8fd455b9]{background:#16a2491a}.dark .full-file-line.diff-add .diff-gutter[data-v-8fd455b9]{background:#16a24933}.diff-separator[data-v-8fd455b9],.diff-separator-half[data-v-8fd455b9]{align-items:center;background:hsl(var(--muted)/.4);display:flex;padding:.25rem 0}.separator-line[data-v-8fd455b9]{background:hsl(var(--border));flex:1;height:1px}.separator-text[data-v-8fd455b9]{color:hsl(var(--muted-foreground));font-size:.75rem;padding:0 .75rem}.dark .diff-add[data-v-8fd455b9]{background:#16a2491a}.dark .diff-add .diff-gutter[data-v-8fd455b9]{background:#16a24933}.dark .diff-remove[data-v-8fd455b9]{background:#ef43431a}.dark .diff-remove .diff-gutter[data-v-8fd455b9]{background:#ef434333}[data-v-8fd455b9] .shiki span,[data-v-8fd455b9] .shiki{background:transparent!important}";
2
+
3
+ export { DiffViewer_vue_vue_type_style_index_0_scoped_8fd455b9_lang as D };
4
+ //# sourceMappingURL=DiffViewer-styles-1.mjs-CS8FTppg.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiffViewer-styles-1.mjs-CS8FTppg.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/DiffViewer-styles-1.mjs-CS8FTppg.js"],"names":[],"mappings":"","x_google_ignoreList":[0]}
@@ -0,0 +1,10 @@
1
+ import { D as DiffViewer_vue_vue_type_style_index_0_scoped_8fd455b9_lang } from './DiffViewer-styles-1.mjs-CS8FTppg.mjs';
2
+ import { D as DiffViewer_vue_vue_type_style_index_1_lang } from './DiffViewer-styles-2.mjs-X6QKNjM0.mjs';
3
+
4
+ const DiffViewerStyles_AUfwwelI = [
5
+ DiffViewer_vue_vue_type_style_index_0_scoped_8fd455b9_lang,
6
+ DiffViewer_vue_vue_type_style_index_1_lang
7
+ ];
8
+
9
+ export { DiffViewerStyles_AUfwwelI as default };
10
+ //# sourceMappingURL=DiffViewer-styles.AUfwwelI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiffViewer-styles.AUfwwelI.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/DiffViewer-styles.AUfwwelI.mjs"],"names":["style_0","style_1"],"mappings":"","x_google_ignoreList":[0]}
@@ -0,0 +1,8 @@
1
+ import { D as DiffViewer_vue_vue_type_style_index_0_scoped_8fd455b9_lang } from './DiffViewer-styles-1.mjs-CS8FTppg.mjs';
2
+
3
+ const DiffViewerStyles_D_it8zfk = [
4
+ DiffViewer_vue_vue_type_style_index_0_scoped_8fd455b9_lang
5
+ ];
6
+
7
+ export { DiffViewerStyles_D_it8zfk as default };
8
+ //# sourceMappingURL=DiffViewer-styles.D_it8zfk.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiffViewer-styles.D_it8zfk.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/DiffViewer-styles.D_it8zfk.mjs"],"names":["style_0"],"mappings":"","x_google_ignoreList":[0]}
@@ -2,7 +2,7 @@ import { _ as __nuxt_component_0$2 } from './nuxt-link-SvT1nf8Z.mjs';
2
2
  import { defineComponent, computed, ref, watch, inject, mergeProps, unref, withCtx, createVNode, createTextVNode, isRef, openBlock, createBlock, toDisplayString, createCommentVNode, renderSlot, resolveDynamicComponent, useSSRContext } from 'vue';
3
3
  import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate, ssrRenderAttr, ssrRenderSlot, ssrRenderList, ssrRenderClass, ssrRenderVNode } from 'vue/server-renderer';
4
4
  import { Loader2, AlertCircle, RefreshCw, FileText, LayoutGrid, GitBranch, User, Calendar, CircleDot, ExternalLink, Circle, CheckCircle2, PlayCircle, Minus, ArrowDown, ArrowUp } from 'lucide-vue-next';
5
- import { _ as __nuxt_component_0$2$1, a as __nuxt_component_1$1, B as Badge } from './Detail-DC-KJQ1f.mjs';
5
+ import { _ as __nuxt_component_0$2$1, a as __nuxt_component_1$1, B as Badge } from './Detail-CUfU85GY.mjs';
6
6
  import { marked } from 'marked';
7
7
  import { codeToHtml } from 'shiki';
8
8
  import DOMPurify from 'dompurify';
@@ -25,7 +25,7 @@ import 'node:url';
25
25
  import '@vue-flow/background';
26
26
  import '@vue-flow/controls';
27
27
  import '@vue-flow/core';
28
- import 'shiki/bundle/web';
28
+ import 'shiki/bundle/full';
29
29
  import 'class-variance-authority';
30
30
  import 'clsx';
31
31
  import 'tailwind-merge';
@@ -1593,4 +1593,4 @@ _sfc_main.setup = (props, ctx) => {
1593
1593
  };
1594
1594
 
1595
1595
  export { _sfc_main as default };
1596
- //# sourceMappingURL=_prd_-C1C4GAhW.mjs.map
1596
+ //# sourceMappingURL=_prd_-CeVnQzOV.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_prd_-CeVnQzOV.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/_prd_-CeVnQzOV.js"],"names":["__nuxt_component_0$3"],"mappings":"","x_google_ignoreList":[0]}