@thxgg/steward 0.1.17 → 0.1.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +0 -6
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{BlTKcjLJ.js → BCiXS3ZV.js} +2 -2
- package/.output/public/_nuxt/BfUfZSFp.js +60 -0
- package/.output/public/_nuxt/{BMdjSp24.js → BfV4oCiT.js} +1 -1
- package/.output/public/_nuxt/{BSZqAKg4.js → Bs6UO7IT.js} +1 -1
- package/.output/public/_nuxt/C9AsKFSQ.js +1 -0
- package/.output/public/_nuxt/{BdjPva1I.js → C9jB6HQI.js} +1 -1
- package/.output/public/_nuxt/CCruYste.js +3 -0
- package/.output/public/_nuxt/CIIE0-WR.js +1 -0
- package/.output/public/_nuxt/{By7gAVcL.js → Cg4hnDua.js} +1 -1
- package/.output/public/_nuxt/CwdD8083.js +30 -0
- package/.output/public/_nuxt/{4r0X30JV.js → D2RLSKEu.js} +1 -1
- package/.output/public/_nuxt/{CbkpNvIu.js → D30YtxUg.js} +1 -1
- package/.output/public/_nuxt/{Beeir9iR.js → DEekox9p.js} +1 -1
- package/.output/public/_nuxt/{nX8Sf7cz.js → DddVAa3N.js} +1 -1
- package/.output/public/_nuxt/{Bh3vsUvl.js → MO41rxll.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/627332c0-2e14-4849-8cac-e350f64ed513.json +1 -0
- package/.output/public/_nuxt/entry.Dp3jx0Yw.css +1 -0
- package/.output/public/_nuxt/f7vKgp5U.js +1 -0
- package/.output/public/_nuxt/xc3v2JZH.js +1 -0
- package/.output/server/chunks/_/git-api.mjs +1 -1
- package/.output/server/chunks/_/prd-service.mjs +177 -12
- package/.output/server/chunks/_/prd-service.mjs.map +1 -1
- package/.output/server/chunks/_/repos.mjs +272 -0
- package/.output/server/chunks/_/repos.mjs.map +1 -0
- package/.output/server/chunks/_/task-graph.mjs +19 -16
- package/.output/server/chunks/_/task-graph.mjs.map +1 -1
- package/.output/server/chunks/_/watcher.mjs +11 -35
- package/.output/server/chunks/_/watcher.mjs.map +1 -1
- package/.output/server/chunks/build/{Detail-MGwP_u2d.mjs → Detail-BcQGdJY5.mjs} +112 -46
- package/.output/server/chunks/build/Detail-BcQGdJY5.mjs.map +1 -0
- package/.output/server/chunks/build/{_prd_-C-Aj4fVa.mjs → _prd_-CD_Bds_B.mjs} +80 -7
- package/.output/server/chunks/build/_prd_-CD_Bds_B.mjs.map +1 -0
- package/.output/server/chunks/build/client.precomputed.mjs +1 -1
- package/.output/server/chunks/build/{default-Cao5eO80.mjs → default-BKKgG7HJ.mjs} +220 -24
- package/.output/server/chunks/build/default-BKKgG7HJ.mjs.map +1 -0
- package/.output/server/chunks/build/error-404-Bf6kdO80.mjs +1 -1
- package/.output/server/chunks/build/error-500-D_bcARXN.mjs +1 -1
- package/.output/server/chunks/build/{index-ljj9uTXI.mjs → index-DE1tjHAd.mjs} +3 -4
- package/.output/server/chunks/build/index-DE1tjHAd.mjs.map +1 -0
- package/.output/server/chunks/build/nuxt-link-SvT1nf8Z.mjs +1 -1
- package/.output/server/chunks/build/{repo-graph-EuhMeFt7.mjs → repo-graph-CBfhpnd5.mjs} +25 -12
- package/.output/server/chunks/build/repo-graph-CBfhpnd5.mjs.map +1 -0
- package/.output/server/chunks/build/server.mjs +14 -14
- package/.output/server/chunks/build/styles.mjs +2 -2
- package/.output/server/chunks/build/{usePrd-f7ylhIqs.mjs → usePrd-hXZOmvAv.mjs} +113 -9
- package/.output/server/chunks/build/usePrd-hXZOmvAv.mjs.map +1 -0
- package/.output/server/chunks/nitro/nitro.mjs +1051 -1365
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
- package/.output/server/chunks/routes/api/browse.get.mjs +24 -6
- package/.output/server/chunks/routes/api/browse.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get.mjs +3 -2
- package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post.mjs +22 -8
- package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/git/commits.get.mjs +20 -11
- package/.output/server/chunks/routes/api/repos/_repoId/git/commits.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/git/diff.get.mjs +3 -2
- package/.output/server/chunks/routes/api/repos/_repoId/git/diff.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/git/file-content.get.mjs +3 -2
- package/.output/server/chunks/routes/api/repos/_repoId/git/file-content.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/git/file-diff.get.mjs +3 -2
- package/.output/server/chunks/routes/api/repos/_repoId/git/file-diff.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/graph.get.mjs +27 -3
- package/.output/server/chunks/routes/api/repos/_repoId/graph.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/archive.post.mjs +93 -0
- package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/archive.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/graph.get.mjs +3 -2
- package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/graph.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/progress.get.mjs +4 -3
- package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/progress.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/tasks/_taskId/commits.get.mjs +4 -3
- package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/tasks/_taskId/commits.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/tasks.get.mjs +4 -3
- package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/tasks.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug_.get.mjs +3 -2
- package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/prds.get.mjs +27 -3
- package/.output/server/chunks/routes/api/repos/_repoId/prds.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/refresh-git-repos.post.mjs +3 -2
- package/.output/server/chunks/routes/api/repos/_repoId/refresh-git-repos.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId_.delete.mjs +3 -2
- package/.output/server/chunks/routes/api/repos/_repoId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/runtime.get.mjs +2 -2
- package/.output/server/chunks/routes/api/state-migration/status.get.mjs +21 -0
- package/.output/server/chunks/routes/api/state-migration/status.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/watch.get.mjs +3 -2
- package/.output/server/chunks/routes/api/watch.get.mjs.map +1 -1
- package/.output/server/chunks/routes/renderer.mjs +1 -1
- package/.output/server/index.mjs +2 -2
- package/.output/server/package.json +1 -1
- package/README.md +5 -7
- package/dist/host/src/api/repos.js +0 -2
- package/dist/host/src/api/state.js +1 -7
- package/dist/host/src/index.js +2 -7
- package/dist/host/src/ui.js +2 -7
- package/dist/server/utils/db.js +15 -0
- package/dist/server/utils/prd-archive.js +53 -0
- package/dist/server/utils/prd-service.js +27 -11
- package/dist/server/utils/prd-state.js +11 -122
- package/dist/server/utils/repos.js +14 -4
- package/dist/server/utils/state-migration.js +225 -0
- package/dist/server/utils/state-schema.js +181 -4
- package/dist/server/utils/task-graph.js +21 -14
- package/package.json +1 -1
- package/.output/public/_nuxt/CbJfCtEa.js +0 -1
- package/.output/public/_nuxt/CmhLcqDu.js +0 -1
- package/.output/public/_nuxt/DC6iPLz1.js +0 -30
- package/.output/public/_nuxt/DD--ojY9.js +0 -3
- package/.output/public/_nuxt/DhKWRjCh.js +0 -60
- package/.output/public/_nuxt/builds/meta/f3f42dbd-d501-442b-871c-3d06157e7aa1.json +0 -1
- package/.output/public/_nuxt/c1sXju8w.js +0 -1
- package/.output/public/_nuxt/eGCjCghR.js +0 -1
- package/.output/public/_nuxt/entry.LcDOtJnR.css +0 -1
- package/.output/server/chunks/build/Detail-MGwP_u2d.mjs.map +0 -1
- package/.output/server/chunks/build/_prd_-C-Aj4fVa.mjs.map +0 -1
- package/.output/server/chunks/build/default-Cao5eO80.mjs.map +0 -1
- package/.output/server/chunks/build/index-ByZO4Bvq.mjs +0 -76
- package/.output/server/chunks/build/index-ByZO4Bvq.mjs.map +0 -1
- package/.output/server/chunks/build/index-ljj9uTXI.mjs.map +0 -1
- package/.output/server/chunks/build/repo-graph-EuhMeFt7.mjs.map +0 -1
- package/.output/server/chunks/build/usePrd-f7ylhIqs.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as M,l as e,a0 as bt,g as D,k as ne,o as u,x as g,L as j,c as S,n as H,F as te,r as se,v as xt,B as fe,w as p,y as V,q as w,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 q,ae as kt,af as St,m as ye,H as le,d as J,a1 as $t,J as Ie,K as Pe,aa as Oe,ag as Xe,ab as Rt,_ as Et,ah as Dt}from"./BlTKcjLJ.js";import{c as xe,m as Te,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 Fe,r as Z,e as Q,n as It}from"./CmhLcqDu.js";import{q as Pt,V as Ot,u as Tt,c as we,a as $e,b as Ft,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 Ut,l as Ht,S as Nt,G as at,L as Gt,C as Wt,R as st,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 Re,y as Xt,z as Yt,A as Zt,h as ea,K as ta}from"./DD--ojY9.js";import{F as aa,I as sa,a as Le}from"./4r0X30JV.js";import{b as qe,u as je,g as oa,A as na}from"./c1sXju8w.js";import{_ as la}from"./Beeir9iR.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 ra=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 ia=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 ua(s,t,a){const o=s.findIndex(l=>Te(l,t)),i=s.findIndex(l=>Te(l,a));if(o===-1||i===-1)return[];const[r,n]=[o,i].sort((l,f)=>l-f);return s.slice(r,n+1)}function da(s){const t=M(()=>e(s)),a=M(()=>new Intl.Collator("en",{usage:"search",...t.value}));return{startsWith:(n,l)=>l.length===0?!0:(n=n.normalize("NFC"),l=l.normalize("NFC"),a.value.compare(n.slice(0,l.length),l)===0),endsWith:(n,l)=>l.length===0?!0:(n=n.normalize("NFC"),l=l.normalize("NFC"),a.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(a.value.compare(l,y)===0)return!0}return!1}}}function ca(s){return M(()=>bt(s)?!!At(s)?.closest("form"):!0)}function pa(){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 fa(s){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=va(v,t.value,f?.textValue),d=l.find(_=>_.textValue===y);return d&&d.ref.focus(),d?.ref}},resetTypeahead:()=>{t.value=""}}}function ma(s,t){return s.map((a,o)=>s[(t+o)%s.length])}function va(s,t,a){const i=t.length>1&&Array.from(t).every(v=>v===t[0])?t[0]:t,r=a?s.indexOf(a):-1;let n=ma(s,Math.max(r,0));i.length===1&&(n=n.filter(v=>v!==a));const f=n.find(v=>v.toLowerCase().startsWith(i.toLowerCase()));return f!==a?f:void 0}var ha=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(s){const t=s,{primitiveElement:a,currentElement:o}=qe(),i=M(()=>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(Ot,j({ref_key:"primitiveElement",ref:a},{...t,...r.$attrs},{as:"input"}),null,16))}}),Ne=ha,ga=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(s){const t=s,a=M(()=>typeof t.value=="object"&&Array.isArray(t.value)&&t.value.length===0&&t.required),o=M(()=>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,[H(" We render single input if it's required "),a.value?(u(),g(Ne,j({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,j({key:n.name},{ref_for:!0},{...t,...i.$attrs},{name:n.name,value:n.value}),null,16,["name","value"]))),128))],2112))}}),ya=ga;function _a(s,t,a){return s===void 0?!1:Array.isArray(s)?s.some(o=>_e(o,t,a)):_e(s,t,a)}function _e(s,t,a){return s===void 0||t===void 0?!1:typeof s=="string"?s===t:typeof a=="function"?a(s,t):typeof a=="string"?s?.[a]===t?.[a]:Te(s,t)}const[Ke,ba]=we("ListboxRoot");var xa=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(s,{expose:t,emit:a}){const o=s,i=a,{multiple:r,highlightOnHover:n,orientation:l,disabled:f,selectionBehavior:v,dir:y}=xt(o),{getItems:d}=je({isProvider:!0}),{handleTypeaheadSearch:_}=fa(),{primitiveElement:A,currentElement:x}=qe(),T=pa(),F=Tt(y),C=ca(x),L=w(),z=w(!1),R=w(!0),B=Ze(o,"modelValue",i,{defaultValue:o.defaultValue??(r.value?[]:void 0),passive:o.modelValue===void 0,deep:!0});function ae(h){if(z.value=!0,o.multiple){const k=Array.isArray(B.value)?[...B.value]:[],E=k.findIndex(U=>_e(U,h,o.by));o.selectionBehavior==="toggle"?(E===-1?k.push(h):k.splice(E,1),B.value=k):(B.value=[h],L.value=h)}else o.selectionBehavior==="toggle"&&_e(B.value,h,o.by)?B.value=void 0:B.value=h;setTimeout(()=>{z.value=!1},1)}const K=w(null),oe=w(null),ee=w(!1),G=w(!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,R.value&&K.value.focus(),k&&K.value.scrollIntoView({block:"nearest"});const E=d().find(U=>U.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 P(h){if(R.value){if(z.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(),U=E.map(ce=>ce.value);B.value=[...U],h.preventDefault(),I(E[E.length-1].ref)}else if(!k){const E=_(h.key,d());E&&I(E)}}setTimeout(()=>{z.value=!1},1)}}function b(){G.value=!0}function O(){fe(()=>{G.value=!1})}function de(){fe(()=>{const h=new KeyboardEvent("keydown",{key:"PageUp"});Ue(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 Ue(h){const k=oa(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 U=E.indexOf(K.value);E=E.slice(U+1)}yt(h,E[0])}if(E.length){const U=!K.value&&k==="prev"?E.length-1:0;I(E[U])}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 U=d().filter(ge=>ge.ref.dataset.disabled!=="");let ce=U.find(ge=>ge.ref===k)?.value;if(h.key===T.END?ce=U[U.length-1].value:h.key===T.HOME&&(ce=U[0].value),!ce||!L.value)return;const _t=ua(U.map(ge=>ge.value),L.value,ce);B.value=_t}}async function He(h){if(await fe(),ee.value)X.trigger(h);else{const k=$(),E=k.find(U=>U.dataset.state==="checked");E?I(E):k.length&&I(k[0])}}return ne(B,()=>{z.value||fe(()=>{He()})},{immediate:!0,deep:!0}),t({highlightedElement:K,highlightItem:N,highlightFirstItem:de,highlightSelected:He,getItems:d}),ba({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:L,selectionBehavior:v,focusable:R,onLeave:De,onEnter:gt,changeHighlight:I,onKeydownEnter:ue,onKeydownNavigation:Ue,onKeydownTypeAhead:P,onCompositionStart:b,onCompositionEnd:O,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 U=E.relatedTarget||E.target;await fe(),K.value&&e(x)&&!e(x).contains(U)&&De(E)})},{default:p(()=>[V(h.$slots,"default",{modelValue:e(B)}),e(C)&&h.name?(u(),g(e(ya),{key:0,name:h.name,value:e(B),disabled:e(f),required:h.required},null,8,["name","value","disabled","required"])):H("v-if",!0)]),_:3},8,["as","as-child","dir","data-disabled"]))}}),wa=xa,Ca=D({__name:"ListboxContent",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(s){const{CollectionSlot:t}=je(),a=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(a).focusable.value?e(a).highlightedElement.value?"-1":"0":"-1","aria-orientation":e(a).orientation.value,"aria-multiselectable":!!e(a).multiple.value,"data-orientation":e(a).orientation.value,onMousedown:r[0]||(r[0]=ke(n=>o.value=!0,["left"])),onFocus:r[1]||(r[1]=n=>{e(o)||e(a).onEnter(n)}),onKeydown:[r[2]||(r[2]=be(n=>{e(a).orientation.value==="vertical"&&(n.key==="ArrowLeft"||n.key==="ArrowRight")||e(a).orientation.value==="horizontal"&&(n.key==="ArrowUp"||n.key==="ArrowDown")||(n.preventDefault(),e(a).focusable.value&&e(a).onKeydownNavigation(n))},["down","up","left","right","home","end"])),be(e(a).onKeydownEnter,["enter"]),e(a).onKeydownTypeAhead]},{default:p(()=>[V(i.$slots,"default")]),_:3},8,["as","as-child","tabindex","aria-orientation","aria-multiselectable","data-orientation","onKeydown"])]),_:3}))}}),ka=Ca,Sa=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(s,{emit:t}){const a=s,i=Ze(a,"modelValue",t,{defaultValue:"",passive:a.modelValue===void 0}),r=Ke(),{primitiveElement:n,currentElement:l}=qe(),f=M(()=>a.disabled||r.disabled.value||!1),v=w();return wt(()=>v.value=r.highlightedElement.value?.id),re(()=>{r.focusable.value=!1,setTimeout(()=>{a.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(()=>[V(y.$slots,"default",{modelValue:e(i)})]),_:3},8,["as","as-child","value","disabled","data-disabled","aria-disabled","aria-activedescendant","onKeydown","onCompositionstart","onCompositionend"]))}}),$a=Sa;const[Ra,Ea]=we("ListboxGroup");var Da=D({__name:"ListboxGroup",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(s){const t=s,a=$e(void 0,"reka-listbox-group");return Ea({id:a}),(o,i)=>(u(),g(e(ie),j({role:"group"},t,{"aria-labelledby":e(a)}),{default:p(()=>[V(o.$slots,"default")]),_:3},16,["aria-labelledby"]))}}),Aa=Da,Ba=D({__name:"ListboxGroupLabel",props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},setup(s){const t=s,a=Ra({id:""});return(o,i)=>(u(),g(e(ie),j(t,{id:e(a).id}),{default:p(()=>[V(o.$slots,"default")]),_:3},16,["id"]))}}),Ia=Ba;const Pa="listbox.select",[Fo,Oa]=we("ListboxItem");var Ta=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(s,{emit:t}){const a=s,o=t,i=$e(void 0,"reka-listbox-item"),{CollectionItem:r}=je(),{forwardRef:n,currentElement:l}=Ft(),f=Ke(),v=M(()=>l.value===f.highlightedElement.value),y=M(()=>_a(f.modelValue.value,a.value,f.by)),d=M(()=>f.disabled.value||a.disabled);async function _(x){o("select",x),!x?.defaultPrevented&&!d.value&&x&&(f.onValueChange(a.value),f.changeHighlight(l.value))}function A(x){const T={originalEvent:x,value:a.value};Lt(Pa,_,T)}return Oa({isSelected:y}),(x,T)=>(u(),g(e(r),{value:x.value},{default:p(()=>[Ct([v.value,y.value],()=>m(e(ie),j({id:e(i)},x.$attrs,{ref:e(n),role:"option",tabindex:e(f).focusable.value?v.value?"0":"-1":-1,"aria-selected":y.value,as:x.as,"as-child":x.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(()=>[V(x.$slots,"default")]),_:3},16,["id","tabindex","aria-selected","as","as-child","disabled","data-disabled","data-highlighted","data-state","onKeydown"]),T,1)]),_:3},8,["value"]))}}),Fa=Ta;const La={class:"flex items-center gap-2 truncate"},Ma={class:"truncate"},Va={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"},za={class:"max-h-[200px] overflow-y-auto"},qa=["aria-selected","onClick"],ja={class:"flex flex-1 flex-col gap-0.5 overflow-hidden text-left"},Ka={class:"truncate font-medium"},Ua={class:"truncate text-xs text-muted-foreground"},Ha=["onClick"],Na={key:1,class:"px-2 py-1.5 text-sm text-muted-foreground"},Ga={key:2,class:"my-1 h-px bg-border"},Wa={class:"space-y-2"},Ja={class:"flex gap-2"},Qa={key:0,class:"text-sm text-destructive"},Xa={key:0,class:"space-y-2 rounded-md border p-3"},Ya={class:"flex items-center gap-2 text-sm"},Za=["disabled"],es={class:"flex-1 truncate font-mono text-xs text-muted-foreground"},ts={class:"max-h-[200px] overflow-y-auto"},as={key:0,class:"py-2 text-center text-sm text-muted-foreground"},ss={key:1,class:"py-2 text-center text-sm text-muted-foreground"},os=["onClick"],ns={class:"truncate"},ls={key:0},rs={key:1},is=D({__name:"RepoSelector",setup(s,{expose:t}){const a=Qe(),o=Me(),{repos:i,currentRepo:r,currentRepoId:n,selectRepo:l,addRepo:f,removeRepo:v}=Se(),{showSuccess:y}=et(),d=w(!1),_=w(""),A=w(null);Bt(A,()=>{d.value&&(d.value=!1,_.value="")}),ne(()=>o.fullPath,()=>{d.value=!1,_.value=""});async function x(P){l(P),d.value=!1,_.value="";try{const O=(await $fetch(`/api/repos/${P}/prds`))?.[0];O?a.push(`/${P}/${O.slug}`):a.push("/")}catch{a.push("/")}}function T(){d.value=!1,G.value=!0}const F=w(!1),C=w(""),L=w(null),z=w([]),R=w(!1),B=M(()=>!!L.value&&L.value!==C.value);async function ae(P){R.value=!0;try{const b=await $fetch("/api/browse",{query:{path:P||C.value||void 0}});C.value=b.current,L.value=b.parent,z.value=b.directories}catch{}finally{R.value=!1}}function K(){F.value=!0,ae(X.value||void 0)}function oe(P){X.value=P,F.value=!1,W.value=null}function ee(){const P=L.value;!B.value||!P||ae(P)}const G=w(!1),X=w(""),W=w(null),Y=w(!1),$=M(()=>{if(!_.value)return i.value;const P=_.value.toLowerCase();return i.value?.filter(b=>b.name.toLowerCase().includes(P)||b.path.toLowerCase().includes(P))??[]});async function I(){if(!X.value.trim()){W.value="Please enter a repository path";return}Y.value=!0,W.value=null;try{const P=await f(X.value.trim());if(G.value=!1,X.value="",y("Repository added",P?.name||"Successfully added repository"),P?.id)try{const O=(await $fetch(`/api/repos/${P.id}/prds`))?.[0];O&&a.push(`/${P.id}/${O.slug}`)}catch{}}catch(P){if(P instanceof Error){const b=P;W.value=b.data?.message||P.message}else W.value="Failed to add repository"}finally{Y.value=!1}}async function N(P,b){P.stopPropagation(),await v(b)}function ue(){G.value=!1,X.value="",W.value=null}return t({openAddDialog:()=>{G.value=!0}}),(P,b)=>(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:b[0]||(b[0]=O=>d.value=!e(d))},[c("span",La,[m(e(aa),{class:"size-4 shrink-0 text-muted-foreground"}),c("span",Ma,q(e(r)?.name??"Select repository"),1)]),m(e(Mt),{class:"size-4 shrink-0 opacity-50"})]),e(d)?(u(),S("div",Va,[kt(c("input",{"onUpdate:modelValue":b[1]||(b[1]=O=>ye(_)?_.value=O: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",za,[e($)?.length?(u(!0),S(te,{key:0},se(e($),O=>(u(),S("div",{key:O.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)===O.id,onClick:de=>x(O.id)},[m(e(tt),{class:le(["size-4 shrink-0",e(n)===O.id?"opacity-100":"opacity-0"])},null,8,["class"]),c("div",ja,[c("span",Ka,q(O.name),1),c("span",Ua,q(O.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,O.id)},[m(e(ia),{class:"size-3.5 text-destructive"})],8,Ha)],8,qa))),128)):(u(),S("div",Na," No repositories found. ")),e($)?.length?(u(),S("div",Ga)):H("",!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"}),b[5]||(b[5]=c("span",null,"Add repository...",-1))])])])):H("",!0),m(e(zt),{open:e(G),"onUpdate:open":b[4]||(b[4]=O=>G.value=O)},{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(()=>[...b[6]||(b[6]=[J("Add Repository",-1)])]),_:1}),m(e(Ut),null,{default:p(()=>[...b[7]||(b[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",Wa,[b[8]||(b[8]=c("label",{for:"repo-path",class:"text-sm font-medium"}," Repository Path ",-1)),c("div",Ja,[m(e(sa),{id:"repo-path",modelValue:e(X),"onUpdate:modelValue":b[2]||(b[2]=O=>ye(X)?X.value=O: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",Qa,q(e(W)),1)):H("",!0),b[9]||(b[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",Xa,[c("div",Ya,[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(na),{class:"size-3"}),b[10]||(b[10]=J(" Up ",-1))],8,Za),c("span",es,q(e(C)),1),m(e(me),{type:"button",variant:"ghost",size:"sm",class:"h-7 text-xs",onClick:b[3]||(b[3]=O=>oe(e(C)))},{default:p(()=>[...b[11]||(b[11]=[J(" Select ",-1)])]),_:1})]),c("div",ts,[e(R)?(u(),S("div",as," Loading... ")):e(z).length?(u(!0),S(te,{key:2},se(e(z),O=>(u(),S("button",{key:O.path,type:"button",class:"flex w-full items-center gap-2 rounded px-2 py-1 text-sm hover:bg-accent",onClick:de=>ae(O.path)},[m(e(Le),{class:"size-4 text-muted-foreground"}),c("span",ns,q(O.name),1)],8,os))),128)):(u(),S("div",ss," No subdirectories "))])])):H("",!0)],32),m(e(Ht),{class:"px-6 pb-6"},{default:p(()=>[m(e(me),{type:"button",variant:"outline",disabled:e(Y),onClick:ue},{default:p(()=>[...b[12]||(b[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",ls,"Adding...")):(u(),S("span",rs,"Add Repository"))]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["open"])],512))}}),us=Object.assign(is,{__name:"LayoutRepoSelector"}),ds={class:"flex h-full w-64 flex-col border-r border-border bg-background"},cs={class:"p-2"},ps={key:1,class:"flex items-center justify-center py-8"},fs={key:2,class:"px-2 py-8 text-center"},ms={key:3,class:"px-2 py-8 text-center"},vs={key:4,class:"px-2 py-8 text-center"},hs={key:5,class:"space-y-1"},gs={class:"flex-1 truncate"},ys=D({__name:"Sidebar",setup(s){const t=Me(),{prds:a,prdsStatus:o,refreshPrds:i}=Ve(),{currentRepoId:r}=Se(),n=M(()=>t.params.prd);function l(y){return n.value===y}const f=M(()=>r.value?`/${r.value}/repo-graph`:"/"),v=M(()=>r.value?t.path===`/${r.value}/repo-graph`:!1);return(y,d)=>{const _=la;return u(),S("aside",ds,[m(e(Nt),{class:"flex-1"},{default:p(()=>[c("div",cs,[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(at),{class:"size-4 shrink-0"}),d[0]||(d[0]=c("span",{class:"flex-1 truncate"},"Repo Graph",-1))]),_:1},8,["to","class"])):H("",!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",ps,[m(e(Gt),{class:"size-5 animate-spin text-muted-foreground"})])):e(r)?e(o)==="error"?(u(),S("div",ms,[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(st),{class:"mr-1 size-3"}),d[2]||(d[2]=J(" Retry ",-1))]),_:1},8,["onClick"])])):e(a)?.length?(u(),S("nav",hs,[(u(!0),S(te,null,se(e(a),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(Fe),{class:"size-4 shrink-0"}),c("span",gs,q(A.name),1),A.hasState&&A.taskCount?(u(),g(e(Jt),{key:0,variant:"secondary",class:"shrink-0 text-xs"},{default:p(()=>[J(q(A.completedCount??0)+"/"+q(A.taskCount),1)]),_:2},1024)):H("",!0)]),_:2},1032,["to","class"]))),128))])):(u(),S("div",vs,[m(e(Fe),{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",fs,[...d[1]||(d[1]=[c("p",{class:"text-sm text-muted-foreground"}," Select a repository to view PRDs ",-1)])]))])]),_:1})])}}}),_s=Object.assign(ys,{__name:"LayoutSidebar"}),bs=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(s,{emit:t}){const a=s,o=t,i=Z(a,"class"),r=he(i,o),n=w(new Map),l=w(new Map),{contains:f}=da({sensitivity:"base"}),v=$t({search:a.defaultSearch||"",filtered:{count:0,items:new Map,groups:new Set}});ne(()=>a.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 x=f(A,v.search);v.filtered.items.set(_,x?1:0),x&&d++}for(const[_,A]of l.value)for(const x of A)if(v.filtered.items.get(x)>0){v.filtered.groups.add(_);break}v.filtered.count=d}return ne(()=>v.search,()=>{y()}),ne(()=>n.value.size,()=>{v.search&&y()}),Gs({allItems:n,allGroups:l,filterState:v}),(d,_)=>(u(),g(e(wa),j({"data-slot":"command"},e(r),{class:e(Q)("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",a.class)}),{default:p(()=>[V(d.$slots,"default")]),_:3},16,["class"]))}}),xs=Object.assign(bs,{__name:"UiCommand"}),ws=D({__name:"Dialog",props:{open:{type:Boolean},defaultOpen:{type:Boolean},modal:{type:Boolean}},emits:["update:open"],setup(s,{emit:t}){const i=he(s,t);return(r,n)=>(u(),g(e(Qt),j({"data-slot":"dialog"},e(i)),{default:p(l=>[V(r.$slots,"default",Ie(Pe(l)))]),_:3},16))}}),ct=Object.assign(ws,{__name:"UiDialog"}),Cs=D({__name:"DialogClose",props:{asChild:{type:Boolean},as:{}},setup(s){const t=s;return(a,o)=>(u(),g(e(ze),j({"data-slot":"dialog-close"},t),{default:p(()=>[V(a.$slots,"default")]),_:3},16))}});Object.assign(Cs,{__name:"UiDialogClose"});const ks=D({__name:"DialogOverlay",props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(s){const t=s,a=Z(t,"class");return(o,i)=>(u(),g(e(ot),j({"data-slot":"dialog-overlay"},e(a),{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(()=>[V(o.$slots,"default")]),_:3},16,["class"]))}}),Ss=Object.assign(ks,{__name:"UiDialogOverlay"}),$s=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(s,{emit:t}){const a=s,o=t,i=Z(a,"class"),r=he(i,o);return(n,l)=>(u(),g(e(nt),null,{default:p(()=>[m(Ss),m(e(lt),j({"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",a.class)}),{default:p(()=>[V(n.$slots,"default"),s.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})):H("",!0)]),_:3},16,["class"])]),_:3}))}}),pt=Object.assign($s,{__name:"UiDialogContent"}),Rs=D({__name:"DialogDescription",props:{asChild:{type:Boolean},as:{},class:{}},setup(s){const t=s,a=Z(t,"class"),o=Re(a);return(i,r)=>(u(),g(e(Xt),j({"data-slot":"dialog-description"},e(o),{class:e(Q)("text-muted-foreground text-sm",t.class)}),{default:p(()=>[V(i.$slots,"default")]),_:3},16,["class"]))}}),ft=Object.assign(Rs,{__name:"UiDialogDescription"}),Es=D({__name:"DialogFooter",props:{class:{}},setup(s){const t=s;return(a,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))},[V(a.$slots,"default")],2))}});Object.assign(Es,{__name:"UiDialogFooter"});const Ds=D({__name:"DialogHeader",props:{class:{}},setup(s){const t=s;return(a,o)=>(u(),S("div",{"data-slot":"dialog-header",class:le(e(Q)("flex flex-col gap-2 text-center sm:text-left",t.class))},[V(a.$slots,"default")],2))}}),mt=Object.assign(Ds,{__name:"UiDialogHeader"}),As=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(s,{emit:t}){const a=s,o=t,i=Z(a,"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),j({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",a.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(()=>[V(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(As,{__name:"UiDialogScrollContent"});const Bs=D({__name:"DialogTitle",props:{asChild:{type:Boolean},as:{},class:{}},setup(s){const t=s,a=Z(t,"class"),o=Re(a);return(i,r)=>(u(),g(e(Yt),j({"data-slot":"dialog-title"},e(o),{class:e(Q)("text-lg leading-none font-semibold",t.class)}),{default:p(()=>[V(i.$slots,"default")]),_:3},16,["class"]))}}),vt=Object.assign(Bs,{__name:"UiDialogTitle"}),Is=D({__name:"DialogTrigger",props:{asChild:{type:Boolean},as:{}},setup(s){const t=s;return(a,o)=>(u(),g(e(Zt),j({"data-slot":"dialog-trigger"},t),{default:p(()=>[V(a.$slots,"default")]),_:3},16))}});Object.assign(Is,{__name:"UiDialogTrigger"});const Ps=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(s,{emit:t}){const i=he(s,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(q(s.title),1)]),_:1}),m(e(ft),null,{default:p(()=>[J(q(s.description),1)]),_:1})]),_:1}),m(xs,{"default-search":s.defaultSearch},{default:p(()=>[V(r.$slots,"default",Ie(Pe(l)))]),_:2},1032,["default-search"])]),_:2},1024)]),_:3},16))}}),Os=Object.assign(Ps,{__name:"UiCommandDialog"}),Ts=D({__name:"CommandEmpty",props:{asChild:{type:Boolean},as:{},class:{}},setup(s){const t=s,a=Z(t,"class"),{filterState:o}=Ee(),i=M(()=>!!o.search&&o.filtered.count===0);return(r,n)=>i.value?(u(),g(e(ie),j({key:0,"data-slot":"command-empty"},e(a),{class:e(Q)("py-6 text-center text-sm",t.class)}),{default:p(()=>[V(r.$slots,"default")]),_:3},16,["class"])):H("",!0)}}),Fs=Object.assign(Ts,{__name:"UiCommandEmpty"}),Ls=D({__name:"CommandGroup",props:{asChild:{type:Boolean},as:{},class:{},heading:{}},setup(s){const t=s,a=Z(t,"class"),{allGroups:o,filterState:i}=Ee(),r=$e(),n=M(()=>i.search?i.filtered.groups.has(r):!0);return Js({id:r}),re(()=>{o.value.has(r)||o.value.set(r,new Set)}),ve(()=>{o.value.delete(r)}),(l,f)=>(u(),g(e(Aa),j(e(a),{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(()=>[s.heading?(u(),g(e(Ia),{key:0,"data-slot":"command-group-heading",class:"px-2 py-1.5 text-xs font-medium text-muted-foreground"},{default:p(()=>[J(q(s.heading),1)]),_:1})):H("",!0),V(l.$slots,"default")]),_:3},16,["id","class","hidden"]))}}),Be=Object.assign(Ls,{__name:"UiCommandGroup"}),Ms={"data-slot":"command-input-wrapper",class:"flex h-9 items-center gap-2 border-b px-3"},Vs=D({inheritAttrs:!1,__name:"CommandInput",props:{modelValue:{},autoFocus:{type:Boolean},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(s){const t=s,a=Z(t,"class"),o=Re(a),{filterState:i}=Ee(),r=w(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",Ms,[m(e(ra),{class:"size-4 shrink-0 opacity-50"}),m(e($a),j({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"])]))}}),zs=Object.assign(Vs,{__name:"UiCommandInput"}),qs=D({__name:"CommandItem",props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},emits:["select"],setup(s,{emit:t}){const a=s,o=t,i=Z(a,"class"),r=he(i,o),n=$e(),{filterState:l,allItems:f,allGroups:v}=Ee(),y=Ws(),d=M(()=>{if(l.search){const x=l.filtered.items.get(n);return x===void 0?!0:x>0}else return!0}),_=w(),A=It(_);return re(()=>{if(!(A.value instanceof HTMLElement))return;f.value.set(n,A.value.textContent??a.value?.toString()??"");const x=y?.id;x&&(v.value.has(x)?v.value.get(x)?.add(n):v.value.set(x,new Set([n])))}),ve(()=>{f.value.delete(n)}),(x,T)=>d.value?(u(),g(e(Fa),j({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",a.class),onSelect:T[0]||(T[0]=()=>{e(l).search=""})}),{default:p(()=>[V(x.$slots,"default")]),_:3},16,["id","class"])):H("",!0)}}),pe=Object.assign(qs,{__name:"UiCommandItem"}),js={role:"presentation"},Ks=D({__name:"CommandList",props:{asChild:{type:Boolean},as:{},class:{}},setup(s){const t=s,a=Z(t,"class"),o=Re(a);return(i,r)=>(u(),g(e(ka),j({"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",js,[V(i.$slots,"default")])]),_:3},16,["class"]))}}),Us=Object.assign(Ks,{__name:"UiCommandList"}),Hs=D({__name:"CommandSeparator",props:{orientation:{},decorative:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(s){const t=s,a=Z(t,"class");return(o,i)=>(u(),g(e(ea),j({"data-slot":"command-separator"},e(a),{class:e(Q)("bg-border -mx-1 h-px",t.class)}),{default:p(()=>[V(o.$slots,"default")]),_:3},16,["class"]))}}),Ge=Object.assign(Hs,{__name:"UiCommandSeparator"}),Ns=D({__name:"CommandShortcut",props:{class:{}},setup(s){const t=s;return(a,o)=>(u(),S("span",{"data-slot":"command-shortcut",class:le(e(Q)("text-muted-foreground ml-auto text-xs tracking-widest",t.class))},[V(a.$slots,"default")],2))}});Object.assign(Ns,{__name:"UiCommandShortcut"});const[Ee,Gs]=we("Command"),[Ws,Js]=we("CommandGroup"),Qs={class:"flex-1"},Xs={class:"flex-1"},Ys={class:"ml-auto flex items-center gap-1"},Zs={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"},ao={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"},so={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:Rt(["openShortcutsHelp"],["update:open","update:filter"]),setup(s,{emit:t}){const a=Oe(s,"open"),o=Oe(s,"filter"),i=t,r=Qe(),{themeMode:n,cycleThemeMode:l}=Xe(),{prds:f}=Ve(),{repos:v,currentRepoId:y,selectRepo:d,refreshGitRepos:_}=Se(),{showSuccess:A,showError:x}=et(),T=["document","board","graph"],F={document:"Document",board:"Task Board",graph:"Graph"},C=w("document");{const $=localStorage.getItem("prd-viewer-tab");($==="document"||$==="board"||$==="graph")&&(C.value=$)}function L($){$.key!=="prd-viewer-tab"||!$.newValue||($.newValue==="document"||$.newValue==="board"||$.newValue==="graph")&&(C.value=$.newValue)}re(()=>{window.addEventListener("storage",L)}),ve(()=>{window.removeEventListener("storage",L)});const z=M(()=>{const $=T.indexOf(C.value),I=$>=0?$:0;return T[(I+1)%T.length]}),R=M(()=>F[z.value]);function B($){y.value&&(r.push(`/${y.value}/${$}`),a.value=!1)}function ae($){d($),r.push("/"),a.value=!1}function K(){l(),a.value=!1}function oe(){const $=z.value;C.value=$,localStorage.setItem("prd-viewer-tab",$),window.dispatchEvent(new StorageEvent("storage",{key:"prd-viewer-tab",newValue:$})),a.value=!1}function ee(){a.value=!1,i("openShortcutsHelp")}const G=w(!1);async function X(){if(!(!y.value||G.value)){G.value=!0,a.value=!1;try{const $=await _(y.value);A(`Discovered ${$.discovered} git repositories`)}catch{x("Failed to refresh git repos")}finally{G.value=!1}}}ne(a,$=>{$||(o.value="")});const W=M(()=>navigator.platform.toUpperCase().indexOf("MAC")>=0),Y=M(()=>W.value?"⌘":"Ctrl");return($,I)=>(u(),g(e(Os),{open:a.value,"onUpdate:open":I[0]||(I[0]=N=>a.value=N),"default-search":o.value},{default:p(()=>[m(e(zs),{placeholder:"Type a command or search..."}),m(e(Us),null,{default:p(()=>[m(e(Fs),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(Fe),{class:"size-4"}),c("span",null,q(N.name),1)]),_:2},1032,["value","onSelect"]))),128))]),_:1})):H("",!0),e(f)?.length&&e(v)?.length?(u(),g(e(Ge),{key:1})):H("",!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",Qs,q(N.name),1),N.id===e(y)?(u(),g(e(tt),{key:0,class:"size-4 text-primary"})):H("",!0)]),_:2},1032,["value","onSelect"]))),128))]),_:1})):H("",!0),e(v)?.length?(u(),g(e(Ge),{key:3})):H("",!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",Xs,"Cycle theme mode ("+q(e(n))+")",1),c("div",Ys,[c("kbd",Zs,q(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(R).toLowerCase()}`,onSelect:oe},{default:p(()=>[m(e(at),{class:"size-4"}),c("span",eo,"Switch to "+q(e(R)),1),c("div",to,[c("kbd",ao,q(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(ta),{class:"size-4"}),I[5]||(I[5]=c("span",{class:"flex-1"},"Keyboard shortcuts",-1)),c("div",so,[c("kbd",oo,q(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(st),{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"])):H("",!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(s){const t=Oe(s,"open"),a=M(()=>navigator.platform.toUpperCase().indexOf("MAC")>=0),o=M(()=>a.value?"⌘":"Ctrl"),i=M(()=>[{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,q(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,q(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"},q(v),1))),128))])]))),128))])]))),128))])]),_:1})]),_:1},8,["open"]))}}),mo=Object.assign(fo,{__name:"ShortcutsHelp"});function ht(){const s=document.activeElement;if(!s)return!1;const t=s.tagName.toLowerCase();return t==="input"||t==="textarea"||s.getAttribute("contenteditable")==="true"||s.getAttribute("role")==="textbox"}function vo(s){const t=s.toLowerCase().split("+"),a=t.pop()||"";return{meta:t.includes("meta"),ctrl:t.includes("ctrl"),shift:t.includes("shift"),alt:t.includes("alt"),key:a}}function ho(s,t){const a=s.key.toLowerCase();let o=a===t.key;return t.key==="\\"&&(o=a==="\\"||s.code==="Backslash"),t.key==="/"&&(o=a==="/"||s.code==="Slash"),t.key==="."&&(o=a==="."||s.code==="Period"),t.key===","&&(o=a===","||s.code==="Comma"),o&&s.metaKey===t.meta&&s.ctrlKey===t.ctrl&&s.shiftKey===t.shift&&s.altKey===t.alt}const Ce=[];let We=!1;function go(s){for(const t of Ce)if(ho(s,t.combo)){if(!t.allowInInput&&ht())continue;s.preventDefault(),s.stopPropagation(),t.handler();return}}function Je(){We||(document.addEventListener("keydown",go,{capture:!0}),We=!0)}function yo(){re(()=>{Je()});function s(a,o,i){const n={combo:vo(a),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:s,isInputFocused:t}}const _o=globalThis.setInterval,bo=2e3,xo=2e3;function wo(s){return!s.instanceId||!s.buildId?null:`${s.buildId}:${s.instanceId}`}function Co(s){const t=w(null),a=w(!1),o=w(null),i=w(null),r=w(null),n=w(null),l=w(!1),f=w(!1),v=w(!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 x(){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(()=>{x()},xo))}function F(){i.value||(i.value=setTimeout(()=>{i.value=null,L()},bo))}function C(){const R=new URLSearchParams(window.location.search).get("token");return R?`/api/watch?token=${encodeURIComponent(R)}`:"/api/watch"}function L(){if(!t.value)try{const R=new EventSource(C());R.onopen=async()=>{a.value=!0,o.value=null,y(),d(),f.value&&(f.value=!1,await x())},R.onmessage=B=>{try{const ae=JSON.parse(B.data);s(ae)}catch{}},R.onerror=()=>{a.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 z(){y(),d(),f.value=!1,t.value&&(t.value.close(),t.value=null,a.value=!1)}return re(async()=>{await A(),L()}),ve(()=>{z()}),{isConnected:a,error:o,connect:L,disconnect:z}}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"},Ro={class:"flex items-center gap-3"},Eo={class:"flex h-screen pt-14"},Do={class:"flex-1 overflow-auto"},Lo=D({__name:"default",setup(s){const{themeMode:t,cycleThemeMode:a}=Xe(),{refreshPrds:o}=Ve(),{currentRepoId:i}=Se(),r=Me(),n=w(null);Et("fileChangeEvent",n);const l=w(!1),f=w(""),v=w(!1),y=w(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"],C=localStorage.getItem("prd-viewer-tab")||"document",L=F.indexOf(C),z=L>=0?L:0,R=F[(z+1)%F.length]??"document";localStorage.setItem("prd-viewer-tab",R),window.dispatchEvent(new StorageEvent("storage",{key:"prd-viewer-tab",newValue:R}))}d("Meta+\\",_),d("Ctrl+\\",_);function A(){a()}d("Meta+.",A),d("Ctrl+.",A);function x(){y.value?.openAddDialog()}d("Meta+,",x),d("Ctrl+,",x);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 C=F.category;if(F.repoId!==i.value)return;(C==="prd"||C==="tasks")&&o();const L=r.params.prd,z=C==="tasks"||C==="progress",R=C==="prd"&&(!L||F.path?.includes(`/${L}.`)),B=!!L&&z&&F.path?.includes(`/${L}/`);(z||R||B)&&(n.value={category:C,path:F.path,timestamp:Date.now()})}),(F,C)=>{const L=us,z=Dt,R=_s;return u(),S("div",ko,[m(lo,{open:e(l),"onUpdate:open":C[0]||(C[0]=B=>ye(l)?l.value=B:null),filter:e(f),"onUpdate:filter":C[1]||(C[1]=B=>ye(f)?f.value=B:null),onOpenShortcutsHelp:T},null,8,["open","filter"]),m(mo,{open:e(v),"onUpdate:open":C[2]||(C[2]=B=>ye(v)?v.value=B:null)},null,8,["open"]),c("header",So,[c("div",$o,[C[5]||(C[5]=c("div",{class:"flex items-center gap-4"},[c("h1",{class:"text-lg font-semibold tracking-tight"}," PRD Viewer ")],-1)),m(z,null,{fallback:p(()=>[...C[4]||(C[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",Ro,[m(L,{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"})),C[3]||(C[3]=c("span",{class:"sr-only"},"Cycle theme mode",-1))]),_:1})])]),_:1})])]),c("div",Eo,[m(z,null,{fallback:p(()=>[...C[6]||(C[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(R)]),_:1}),c("main",Do,[V(F.$slots,"default")])])])}}});export{Lo as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$ as ee,F as Tt,R as Bt,k as B,m as Se,a1 as ge,l as Y,C as U,a0 as D,P as Oe,Q as nt,Z as te,h as st,i as at,N as it,a3 as It,a2 as lt,D as jt,V as ct,s as R,v as Ge,q as ut,z as dt,aB as Nt,B as ft,g as Ee,aC as Ft,L as Lt,aD as Vt,o as Gt,x as Ut,H as Wt,w as Ht,y as qt,aE as fe,e as Jt,aF as N,W as Yt,A as Zt,aG as Qt,aH as Xt,Y as Kt,aI as Ue,aJ as er,aK as tr,aL as rr}from"./BlTKcjLJ.js";const or=e=>{for(const o in e)if(o.startsWith("aria-")||o==="role"||o==="title")return!0;return!1};const We=e=>e==="";const nr=(...e)=>e.filter((o,t,r)=>!!o&&o.trim()!==""&&r.indexOf(o)===t).join(" ").trim();const He=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const sr=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(o,t,r)=>r?r.toUpperCase():t.toLowerCase());const ar=e=>{const o=sr(e);return o.charAt(0).toUpperCase()+o.slice(1)};var re={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};const ir=({name:e,iconNode:o,absoluteStrokeWidth:t,"absolute-stroke-width":r,strokeWidth:n,"stroke-width":a,size:s=re.width,color:i=re.stroke,...l},{slots:d})=>ee("svg",{...re,...l,width:s,height:s,stroke:i,"stroke-width":We(t)||We(r)||t===!0||r===!0?Number(n||a||re["stroke-width"])*24/Number(s):n||a||re["stroke-width"],class:nr("lucide",l.class,...e?[`lucide-${He(ar(e))}-icon`,`lucide-${He(e)}`]:["lucide-icon"]),...!d.default&&!or(l)&&{"aria-hidden":"true"}},[...o.map(c=>ee(...c)),...d.default?[d.default()]:[]]);const lr=(e,o)=>(t,{slots:r,attrs:n})=>ee(ir,{...n,...t,iconNode:o,name:e},r);const Vo=lr("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);function mt(e){var o,t,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var n=e.length;for(o=0;o<n;o++)e[o]&&(t=mt(e[o]))&&(r&&(r+=" "),r+=t)}else for(t in e)e[t]&&(r&&(r+=" "),r+=t);return r}function pt(){for(var e,o,t=0,r="",n=arguments.length;t<n;t++)(e=arguments[t])&&(o=mt(e))&&(r&&(r+=" "),r+=o);return r}const qe=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,Je=pt,cr=(e,o)=>t=>{var r;if(o?.variants==null)return Je(e,t?.class,t?.className);const{variants:n,defaultVariants:a}=o,s=Object.keys(n).map(d=>{const c=t?.[d],f=a?.[d];if(c===null)return null;const u=qe(c)||qe(f);return n[d][u]}),i=t&&Object.entries(t).reduce((d,c)=>{let[f,u]=c;return u===void 0||(d[f]=u),d},{}),l=o==null||(r=o.compoundVariants)===null||r===void 0?void 0:r.reduce((d,c)=>{let{class:f,className:u,...b}=c;return Object.entries(b).every(x=>{let[k,h]=x;return Array.isArray(h)?h.includes({...a,...i}[k]):{...a,...i}[k]===h})?[...d,f,u]:d},[]);return Je(e,s,l,t?.class,t?.className)};function Pe(e){return typeof e=="string"?`'${e}'`:new ur().serialize(e)}const ur=(function(){class e{#e=new Map;compare(t,r){const n=typeof t,a=typeof r;return n==="string"&&a==="string"?t.localeCompare(r):n==="number"&&a==="number"?t-r:String.prototype.localeCompare.call(this.serialize(t,!0),this.serialize(r,!0))}serialize(t,r){if(t===null)return"null";switch(typeof t){case"string":return r?t:`'${t}'`;case"bigint":return`${t}n`;case"object":return this.$object(t);case"function":return this.$function(t)}return String(t)}serializeObject(t){const r=Object.prototype.toString.call(t);if(r!=="[object Object]")return this.serializeBuiltInType(r.length<10?`unknown:${r}`:r.slice(8,-1),t);const n=t.constructor,a=n===Object||n===void 0?"":n.name;if(a!==""&&globalThis[a]===n)return this.serializeBuiltInType(a,t);if(typeof t.toJSON=="function"){const s=t.toJSON();return a+(s!==null&&typeof s=="object"?this.$object(s):`(${this.serialize(s)})`)}return this.serializeObjectEntries(a,Object.entries(t))}serializeBuiltInType(t,r){const n=this["$"+t];if(n)return n.call(this,r);if(typeof r?.entries=="function")return this.serializeObjectEntries(t,r.entries());throw new Error(`Cannot serialize ${t}`)}serializeObjectEntries(t,r){const n=Array.from(r).sort((s,i)=>this.compare(s[0],i[0]));let a=`${t}{`;for(let s=0;s<n.length;s++){const[i,l]=n[s];a+=`${this.serialize(i,!0)}:${this.serialize(l)}`,s<n.length-1&&(a+=",")}return a+"}"}$object(t){let r=this.#e.get(t);return r===void 0&&(this.#e.set(t,`#${this.#e.size}`),r=this.serializeObject(t),this.#e.set(t,r)),r}$function(t){const r=Function.prototype.toString.call(t);return r.slice(-15)==="[native code] }"?`${t.name||""}()[native]`:`${t.name}(${t.length})${r.replace(/\s*\n\s*/g,"")}`}$Array(t){let r="[";for(let n=0;n<t.length;n++)r+=this.serialize(t[n]),n<t.length-1&&(r+=",");return r+"]"}$Date(t){try{return`Date(${t.toISOString()})`}catch{return"Date(null)"}}$ArrayBuffer(t){return`ArrayBuffer[${new Uint8Array(t).join(",")}]`}$Set(t){return`Set${this.$Array(Array.from(t).sort((r,n)=>this.compare(r,n)))}`}$Map(t){return this.serializeObjectEntries("Map",t.entries())}}for(const o of["Error","RegExp","URL"])e.prototype["$"+o]=function(t){return`${o}(${t})`};for(const o of["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array"])e.prototype["$"+o]=function(t){return`${o}[${t.join(",")}]`};for(const o of["BigInt64Array","BigUint64Array"])e.prototype["$"+o]=function(t){return`${o}[${t.join("n,")}${t.length>0?"n":""}]`};return e})();function Go(e,o){return e===o||Pe(e)===Pe(o)}const dr=[1779033703,-1150833019,1013904242,-1521486534,1359893119,-1694144372,528734635,1541459225],fr=[1116352408,1899447441,-1245643825,-373957723,961987163,1508970993,-1841331548,-1424204075,-670586216,310598401,607225278,1426881987,1925078388,-2132889090,-1680079193,-1046744716,-459576895,-272742522,264347078,604807628,770255983,1249150122,1555081692,1996064986,-1740746414,-1473132947,-1341970488,-1084653625,-958395405,-710438585,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,-2117940946,-1838011259,-1564481375,-1474664885,-1035236496,-949202525,-778901479,-694614492,-200395387,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,-2067236844,-1933114872,-1866530822,-1538233109,-1090935817,-965641998],mr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",q=[];class pr{_data=new K;_hash=new K([...dr]);_nDataBytes=0;_minBufferSize=0;finalize(o){o&&this._append(o);const t=this._nDataBytes*8,r=this._data.sigBytes*8;return this._data.words[r>>>5]|=128<<24-r%32,this._data.words[(r+64>>>9<<4)+14]=Math.floor(t/4294967296),this._data.words[(r+64>>>9<<4)+15]=t,this._data.sigBytes=this._data.words.length*4,this._process(),this._hash}_doProcessBlock(o,t){const r=this._hash.words;let n=r[0],a=r[1],s=r[2],i=r[3],l=r[4],d=r[5],c=r[6],f=r[7];for(let u=0;u<64;u++){if(u<16)q[u]=o[t+u]|0;else{const z=q[u-15],_=(z<<25|z>>>7)^(z<<14|z>>>18)^z>>>3,S=q[u-2],M=(S<<15|S>>>17)^(S<<13|S>>>19)^S>>>10;q[u]=_+q[u-7]+M+q[u-16]}const b=l&d^~l&c,x=n&a^n&s^a&s,k=(n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22),h=(l<<26|l>>>6)^(l<<21|l>>>11)^(l<<7|l>>>25),g=f+h+b+fr[u]+q[u],y=k+x;f=c,c=d,d=l,l=i+g|0,i=s,s=a,a=n,n=g+y|0}r[0]=r[0]+n|0,r[1]=r[1]+a|0,r[2]=r[2]+s|0,r[3]=r[3]+i|0,r[4]=r[4]+l|0,r[5]=r[5]+d|0,r[6]=r[6]+c|0,r[7]=r[7]+f|0}_append(o){typeof o=="string"&&(o=K.fromUtf8(o)),this._data.concat(o),this._nDataBytes+=o.sigBytes}_process(o){let t,r=this._data.sigBytes/64;o?r=Math.ceil(r):r=Math.max((r|0)-this._minBufferSize,0);const n=r*16,a=Math.min(n*4,this._data.sigBytes);if(n){for(let s=0;s<n;s+=16)this._doProcessBlock(this._data.words,s);t=this._data.words.splice(0,n),this._data.sigBytes-=a}return new K(t,a)}}class K{words;sigBytes;constructor(o,t){o=this.words=o||[],this.sigBytes=t===void 0?o.length*4:t}static fromUtf8(o){const t=unescape(encodeURIComponent(o)),r=t.length,n=[];for(let a=0;a<r;a++)n[a>>>2]|=(t.charCodeAt(a)&255)<<24-a%4*8;return new K(n,r)}toBase64(){const o=[];for(let t=0;t<this.sigBytes;t+=3){const r=this.words[t>>>2]>>>24-t%4*8&255,n=this.words[t+1>>>2]>>>24-(t+1)%4*8&255,a=this.words[t+2>>>2]>>>24-(t+2)%4*8&255,s=r<<16|n<<8|a;for(let i=0;i<4&&t*8+i*6<this.sigBytes*8;i++)o.push(mr.charAt(s>>>6*(3-i)&63))}return o.join("")}concat(o){if(this.words[this.sigBytes>>>2]&=4294967295<<32-this.sigBytes%4*8,this.words.length=Math.ceil(this.sigBytes/4),this.sigBytes%4)for(let t=0;t<o.sigBytes;t++){const r=o.words[t>>>2]>>>24-t%4*8&255;this.words[this.sigBytes+t>>>2]|=r<<24-(this.sigBytes+t)%4*8}else for(let t=0;t<o.sigBytes;t+=4)this.words[this.sigBytes+t>>>2]=o.words[t>>>2];this.sigBytes+=o.sigBytes}}function hr(e){return new pr().finalize(e).toBase64()}function X(e){return hr(Pe(e))}function ht(e){return e?e.flatMap(o=>o.type===Tt?ht(o.children):[o]):[]}function Uo(e,o){var t;const r=U();return it(()=>{r.value=e()},{...o,flush:(t=o?.flush)!==null&&t!==void 0?t:"sync"}),It(r)}function br(e,o,t={}){let r,n,a,s=!0;const i=()=>{s=!0,a()};B(e,i,{flush:"sync",...t});const l=typeof o=="function"?o:o.get,d=typeof o=="function"?void 0:o.set,c=lt((f,u)=>(n=f,a=u,{get(){return s&&(r=l(r),s=!1),n(),r},set(b){d?.(b)}}));return c.trigger=i,c}function se(e,o){return Oe()?(nt(e,o),!0):!1}function Wo(){const e=new Set,o=a=>{e.delete(a)};return{on:a=>{e.add(a);const s=()=>o(a);return se(s),{off:s}},off:o,trigger:(...a)=>Promise.all(Array.from(e).map(s=>s(...a))),clear:()=>{e.clear()}}}function Ho(e){let o=!1,t;const r=ct(!0);return((...n)=>(o||(t=r.run(()=>e(...n)),o=!0),t))}const ze=new WeakMap,gr=(...e)=>{var o;const t=e[0],r=(o=te())===null||o===void 0?void 0:o.proxy,n=r??Oe();if(n==null&&!st())throw new Error("injectLocal must be called in setup");return n&&ze.has(n)&&t in ze.get(n)?ze.get(n)[t]:at(...e)},ye=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const vr=e=>typeof e<"u",yr=Object.prototype.toString,wr=e=>yr.call(e)==="[object Object]",V=()=>{},xr=kr();function kr(){var e,o,t;return ye&&!!(!((e=window)===null||e===void 0||(e=e.navigator)===null||e===void 0)&&e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((o=window)===null||o===void 0||(o=o.navigator)===null||o===void 0?void 0:o.maxTouchPoints)>2&&/iPad|Macintosh/.test((t=window)===null||t===void 0?void 0:t.navigator.userAgent))}function _r(e,o){function t(...r){return new Promise((n,a)=>{Promise.resolve(e(()=>o.apply(this,r),{fn:o,thisArg:this,args:r})).then(n).catch(a)})}return t}function Cr(e,o={}){let t,r,n=V;const a=l=>{clearTimeout(l),n(),n=V};let s;return l=>{const d=D(e),c=D(o.maxWait);return t&&a(t),d<=0||c!==void 0&&c<=0?(r&&(a(r),r=void 0),Promise.resolve(l())):new Promise((f,u)=>{n=o.rejectOnCancel?u:f,s=l,c&&!r&&(r=setTimeout(()=>{t&&a(t),r=void 0,f(s())},c)),t=setTimeout(()=>{r&&a(r),r=void 0,f(l())},d)})}}function Ye(e){return e.endsWith("rem")?Number.parseFloat(e)*16:Number.parseFloat(e)}function De(e){return Array.isArray(e)?e:[e]}function Sr(e){return te()}function qo(e){if(!ye)return e;let o=0,t,r;const n=()=>{o-=1,r&&o<=0&&(r.stop(),t=void 0,r=void 0)};return((...a)=>(o+=1,r||(r=ct(!0),t=r.run(()=>e(...a))),se(n),t))}function zr(e){return Se(e)?ge(new Proxy({},{get(o,t,r){return Y(Reflect.get(e.value,t,r))},set(o,t,r){return Se(e.value[t])&&!Se(r)?e.value[t].value=r:e.value[t]=r,!0},deleteProperty(o,t){return Reflect.deleteProperty(e.value,t)},has(o,t){return Reflect.has(e.value,t)},ownKeys(){return Object.keys(e.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}})):ge(e)}function Dr(e){return zr(R(e))}function Jo(e,...o){const t=o.flat(),r=t[0];return Dr(()=>Object.fromEntries(typeof r=="function"?Object.entries(Ge(e)).filter(([n,a])=>!r(D(a),n)):Object.entries(Ge(e)).filter(n=>!t.includes(n[0]))))}function Yo(e,o=1e4){return lt((t,r)=>{let n=D(e),a;const s=()=>setTimeout(()=>{n=D(e),r()},D(o));return se(()=>{clearTimeout(a)}),{get(){return t(),n},set(i){n=i,r(),clearTimeout(a),a=s()}}})}function Zo(e,o=200,t={}){return _r(Cr(o,t),e)}function Qo(e,o){Sr()&&jt(e,o)}function Xo(e,o,t={}){const{immediate:r=!0,immediateCallback:n=!1}=t,a=U(!1);let s;function i(){s&&(clearTimeout(s),s=void 0)}function l(){a.value=!1,i()}function d(...c){n&&e(),i(),a.value=!0,s=setTimeout(()=>{a.value=!1,s=void 0,e(...c)},D(o))}return r&&(a.value=!0,ye&&d()),se(l),{isPending:Bt(a),start:d,stop:l}}function Ar(e,o,t){return B(e,o,{...t,immediate:!0})}function Ko(e,o,t){return B(e,o,{...t,once:!0})}const ae=ye?window:void 0;function G(e){var o;const t=D(e);return(o=t?.$el)!==null&&o!==void 0?o:t}function ne(...e){const o=(r,n,a,s)=>(r.addEventListener(n,a,s),()=>r.removeEventListener(n,a,s)),t=R(()=>{const r=De(D(e[0])).filter(n=>n!=null);return r.every(n=>typeof n!="string")?r:void 0});return Ar(()=>{var r,n;return[(r=(n=t.value)===null||n===void 0?void 0:n.map(a=>G(a)))!==null&&r!==void 0?r:[ae].filter(a=>a!=null),De(D(t.value?e[1]:e[0])),De(Y(t.value?e[2]:e[1])),D(t.value?e[3]:e[2])]},([r,n,a,s],i,l)=>{if(!r?.length||!n?.length||!a?.length)return;const d=wr(s)?{...s}:s,c=r.flatMap(f=>n.flatMap(u=>a.map(b=>o(f,u,b,d))));l(()=>{c.forEach(f=>f())})},{flush:"post"})}let Ze=!1;function en(e,o,t={}){const{window:r=ae,ignore:n=[],capture:a=!0,detectIframe:s=!1,controls:i=!1}=t;if(!r)return i?{stop:V,cancel:V,trigger:V}:V;if(xr&&!Ze){Ze=!0;const h={passive:!0};Array.from(r.document.body.children).forEach(g=>g.addEventListener("click",V,h)),r.document.documentElement.addEventListener("click",V,h)}let l=!0;const d=h=>D(n).some(g=>{if(typeof g=="string")return Array.from(r.document.querySelectorAll(g)).some(y=>y===h.target||h.composedPath().includes(y));{const y=G(g);return y&&(h.target===y||h.composedPath().includes(y))}});function c(h){const g=D(h);return g&&g.$.subTree.shapeFlag===16}function f(h,g){const y=D(h),z=y.$.subTree&&y.$.subTree.children;return z==null||!Array.isArray(z)?!1:z.some(_=>_.el===g.target||g.composedPath().includes(_.el))}const u=h=>{const g=G(e);if(h.target!=null&&!(!(g instanceof Element)&&c(e)&&f(e,h))&&!(!g||g===h.target||h.composedPath().includes(g))){if("detail"in h&&h.detail===0&&(l=!d(h)),!l){l=!0;return}o(h)}};let b=!1;const x=[ne(r,"click",h=>{b||(b=!0,setTimeout(()=>{b=!1},0),u(h))},{passive:!0,capture:a}),ne(r,"pointerdown",h=>{const g=G(e);l=!d(h)&&!!(g&&!h.composedPath().includes(g))},{passive:!0}),s&&ne(r,"blur",h=>{setTimeout(()=>{var g;const y=G(e);((g=r.document.activeElement)===null||g===void 0?void 0:g.tagName)==="IFRAME"&&!y?.contains(r.document.activeElement)&&o(h)},0)},{passive:!0})].filter(Boolean),k=()=>x.forEach(h=>h());return i?{stop:k,cancel:()=>{l=!1},trigger:h=>{l=!0,u(h),l=!1}}:k}function Pr(){const e=U(!1),o=te();return o&&dt(()=>{e.value=!0},o),e}function bt(e){const o=Pr();return R(()=>(o.value,!!e()))}function $r(e){return typeof e=="function"?e:typeof e=="string"?o=>o.key===e:Array.isArray(e)?o=>e.includes(o.key):()=>!0}function tn(...e){let o,t,r={};e.length===3?(o=e[0],t=e[1],r=e[2]):e.length===2?typeof e[1]=="object"?(o=!0,t=e[0],r=e[1]):(o=e[0],t=e[1]):(o=!0,t=e[0]);const{target:n=ae,eventName:a="keydown",passive:s=!1,dedupe:i=!1}=r,l=$r(o);return ne(n,a,c=>{c.repeat&&D(i)||l(c)&&t(c)},s)}const Or=Symbol("vueuse-ssr-width");function Er(){const e=st()?gr(Or,null):null;return typeof e=="number"?e:void 0}function rn(e,o={}){const{window:t=ae,ssrWidth:r=Er()}=o,n=bt(()=>t&&"matchMedia"in t&&typeof t.matchMedia=="function"),a=U(typeof r=="number"),s=U(),i=U(!1),l=d=>{i.value=d.matches};return it(()=>{if(a.value){a.value=!n.value,i.value=D(e).split(",").some(d=>{const c=d.includes("not all"),f=d.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),u=d.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let b=!!(f||u);return f&&b&&(b=r>=Ye(f[1])),u&&b&&(b=r<=Ye(u[1])),c?!b:b});return}n.value&&(s.value=t.matchMedia(D(e)),i.value=s.value.matches)}),ne(s,"change",l,{passive:!0}),R(()=>i.value)}function Mr(e){return JSON.parse(JSON.stringify(e))}function on(e){const o=te(),t=br(()=>null,()=>e?G(e):o.proxy.$el);return Nt(t.trigger),dt(t.trigger),t}function nn(e,o,t={}){const{window:r=ae,...n}=t;let a;const s=bt(()=>r&&"ResizeObserver"in r),i=()=>{a&&(a.disconnect(),a=void 0)},l=B(R(()=>{const c=D(e);return Array.isArray(c)?c.map(f=>G(f)):[G(c)]}),c=>{if(i(),s.value&&r){a=new ResizeObserver(o);for(const f of c)f&&a.observe(f,n)}},{immediate:!0,flush:"post"}),d=()=>{i(),l()};return se(d),{isSupported:s,stop:d}}function sn(e,o,t,r={}){var n,a;const{clone:s=!1,passive:i=!1,eventName:l,deep:d=!1,defaultValue:c,shouldEmit:f}=r,u=te(),b=t||u?.emit||(u==null||(n=u.$emit)===null||n===void 0?void 0:n.bind(u))||(u==null||(a=u.proxy)===null||a===void 0||(a=a.$emit)===null||a===void 0?void 0:a.bind(u?.proxy));let x=l;o||(o="modelValue"),x=x||`update:${o.toString()}`;const k=y=>s?typeof s=="function"?s(y):Mr(y):y,h=()=>vr(e[o])?k(e[o]):c,g=y=>{f?f(y)&&b(x,y):b(x,y)};if(i){const y=ut(h());let z=!1;return B(()=>e[o],_=>{z||(z=!0,y.value=k(_),ft(()=>z=!1))}),B(y,_=>{!z&&(_!==e[o]||d)&&g(_)},{deep:d}),y}else return R({get(){return h()},set(y){g(y)}})}const Rr=Ee({name:"PrimitiveSlot",inheritAttrs:!1,setup(e,{attrs:o,slots:t}){return()=>{if(!t.default)return null;const r=ht(t.default()),n=r.findIndex(l=>l.type!==Ft);if(n===-1)return r;const a=r[n];delete a.props?.ref;const s=a.props?Lt(o,a.props):o,i=Vt({...a,props:{}},s);return r.length===1?i:(r[n]=i,r)}}}),Tr=["area","img","input"],Br=Ee({name:"Primitive",inheritAttrs:!1,props:{asChild:{type:Boolean,default:!1},as:{type:[String,Object],default:"div"}},setup(e,{attrs:o,slots:t}){const r=e.asChild?"template":e.as;return typeof r=="string"&&Tr.includes(r)?()=>ee(r,o):r!=="template"?()=>ee(e.as,o,{default:t.default}):()=>ee(Rr,o,{default:t.default})}}),Ir=(e,o)=>{const t=new Array(e.length+o.length);for(let r=0;r<e.length;r++)t[r]=e[r];for(let r=0;r<o.length;r++)t[e.length+r]=o[r];return t},jr=(e,o)=>({classGroupId:e,validator:o}),gt=(e=new Map,o=null,t)=>({nextPart:e,validators:o,classGroupId:t}),ve="-",Qe=[],Nr="arbitrary..",Fr=e=>{const o=Vr(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:s=>{if(s.startsWith("[")&&s.endsWith("]"))return Lr(s);const i=s.split(ve),l=i[0]===""&&i.length>1?1:0;return vt(i,l,o)},getConflictingClassGroupIds:(s,i)=>{if(i){const l=r[s],d=t[s];return l?d?Ir(d,l):l:d||Qe}return t[s]||Qe}}},vt=(e,o,t)=>{if(e.length-o===0)return t.classGroupId;const n=e[o],a=t.nextPart.get(n);if(a){const d=vt(e,o+1,a);if(d)return d}const s=t.validators;if(s===null)return;const i=o===0?e.join(ve):e.slice(o).join(ve),l=s.length;for(let d=0;d<l;d++){const c=s[d];if(c.validator(i))return c.classGroupId}},Lr=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const o=e.slice(1,-1),t=o.indexOf(":"),r=o.slice(0,t);return r?Nr+r:void 0})(),Vr=e=>{const{theme:o,classGroups:t}=e;return Gr(t,o)},Gr=(e,o)=>{const t=gt();for(const r in e){const n=e[r];Me(n,t,r,o)}return t},Me=(e,o,t,r)=>{const n=e.length;for(let a=0;a<n;a++){const s=e[a];Ur(s,o,t,r)}},Ur=(e,o,t,r)=>{if(typeof e=="string"){Wr(e,o,t);return}if(typeof e=="function"){Hr(e,o,t,r);return}qr(e,o,t,r)},Wr=(e,o,t)=>{const r=e===""?o:yt(o,e);r.classGroupId=t},Hr=(e,o,t,r)=>{if(Jr(e)){Me(e(r),o,t,r);return}o.validators===null&&(o.validators=[]),o.validators.push(jr(t,e))},qr=(e,o,t,r)=>{const n=Object.entries(e),a=n.length;for(let s=0;s<a;s++){const[i,l]=n[s];Me(l,yt(o,i),t,r)}},yt=(e,o)=>{let t=e;const r=o.split(ve),n=r.length;for(let a=0;a<n;a++){const s=r[a];let i=t.nextPart.get(s);i||(i=gt(),t.nextPart.set(s,i)),t=i}return t},Jr=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,Yr=e=>{if(e<1)return{get:()=>{},set:()=>{}};let o=0,t=Object.create(null),r=Object.create(null);const n=(a,s)=>{t[a]=s,o++,o>e&&(o=0,r=t,t=Object.create(null))};return{get(a){let s=t[a];if(s!==void 0)return s;if((s=r[a])!==void 0)return n(a,s),s},set(a,s){a in t?t[a]=s:n(a,s)}}},$e="!",Xe=":",Zr=[],Ke=(e,o,t,r,n)=>({modifiers:e,hasImportantModifier:o,baseClassName:t,maybePostfixModifierPosition:r,isExternal:n}),Qr=e=>{const{prefix:o,experimentalParseClassName:t}=e;let r=n=>{const a=[];let s=0,i=0,l=0,d;const c=n.length;for(let k=0;k<c;k++){const h=n[k];if(s===0&&i===0){if(h===Xe){a.push(n.slice(l,k)),l=k+1;continue}if(h==="/"){d=k;continue}}h==="["?s++:h==="]"?s--:h==="("?i++:h===")"&&i--}const f=a.length===0?n:n.slice(l);let u=f,b=!1;f.endsWith($e)?(u=f.slice(0,-1),b=!0):f.startsWith($e)&&(u=f.slice(1),b=!0);const x=d&&d>l?d-l:void 0;return Ke(a,b,u,x)};if(o){const n=o+Xe,a=r;r=s=>s.startsWith(n)?a(s.slice(n.length)):Ke(Zr,!1,s,void 0,!0)}if(t){const n=r;r=a=>t({className:a,parseClassName:n})}return r},Xr=e=>{const o=new Map;return e.orderSensitiveModifiers.forEach((t,r)=>{o.set(t,1e6+r)}),t=>{const r=[];let n=[];for(let a=0;a<t.length;a++){const s=t[a],i=s[0]==="[",l=o.has(s);i||l?(n.length>0&&(n.sort(),r.push(...n),n=[]),r.push(s)):n.push(s)}return n.length>0&&(n.sort(),r.push(...n)),r}},Kr=e=>({cache:Yr(e.cacheSize),parseClassName:Qr(e),sortModifiers:Xr(e),...Fr(e)}),eo=/\s+/,to=(e,o)=>{const{parseClassName:t,getClassGroupId:r,getConflictingClassGroupIds:n,sortModifiers:a}=o,s=[],i=e.trim().split(eo);let l="";for(let d=i.length-1;d>=0;d-=1){const c=i[d],{isExternal:f,modifiers:u,hasImportantModifier:b,baseClassName:x,maybePostfixModifierPosition:k}=t(c);if(f){l=c+(l.length>0?" "+l:l);continue}let h=!!k,g=r(h?x.substring(0,k):x);if(!g){if(!h){l=c+(l.length>0?" "+l:l);continue}if(g=r(x),!g){l=c+(l.length>0?" "+l:l);continue}h=!1}const y=u.length===0?"":u.length===1?u[0]:a(u).join(":"),z=b?y+$e:y,_=z+g;if(s.indexOf(_)>-1)continue;s.push(_);const S=n(g,h);for(let M=0;M<S.length;++M){const I=S[M];s.push(z+I)}l=c+(l.length>0?" "+l:l)}return l},ro=(...e)=>{let o=0,t,r,n="";for(;o<e.length;)(t=e[o++])&&(r=wt(t))&&(n&&(n+=" "),n+=r);return n},wt=e=>{if(typeof e=="string")return e;let o,t="";for(let r=0;r<e.length;r++)e[r]&&(o=wt(e[r]))&&(t&&(t+=" "),t+=o);return t},oo=(e,...o)=>{let t,r,n,a;const s=l=>{const d=o.reduce((c,f)=>f(c),e());return t=Kr(d),r=t.cache.get,n=t.cache.set,a=i,i(l)},i=l=>{const d=r(l);if(d)return d;const c=to(l,t);return n(l,c),c};return a=s,(...l)=>a(ro(...l))},no=[],A=e=>{const o=t=>t[e]||no;return o.isThemeGetter=!0,o},xt=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,kt=/^\((?:(\w[\w-]*):)?(.+)\)$/i,so=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,ao=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,io=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,lo=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,co=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,uo=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,F=e=>so.test(e),C=e=>!!e&&!Number.isNaN(Number(e)),L=e=>!!e&&Number.isInteger(Number(e)),Ae=e=>e.endsWith("%")&&C(e.slice(0,-1)),j=e=>ao.test(e),_t=()=>!0,fo=e=>io.test(e)&&!lo.test(e),Re=()=>!1,mo=e=>co.test(e),po=e=>uo.test(e),ho=e=>!m(e)&&!p(e),bo=e=>W(e,zt,Re),m=e=>xt.test(e),J=e=>W(e,Dt,fo),et=e=>W(e,Co,C),go=e=>W(e,Pt,_t),vo=e=>W(e,At,Re),tt=e=>W(e,Ct,Re),yo=e=>W(e,St,po),me=e=>W(e,$t,mo),p=e=>kt.test(e),oe=e=>Z(e,Dt),wo=e=>Z(e,At),rt=e=>Z(e,Ct),xo=e=>Z(e,zt),ko=e=>Z(e,St),pe=e=>Z(e,$t,!0),_o=e=>Z(e,Pt,!0),W=(e,o,t)=>{const r=xt.exec(e);return r?r[1]?o(r[1]):t(r[2]):!1},Z=(e,o,t=!1)=>{const r=kt.exec(e);return r?r[1]?o(r[1]):t:!1},Ct=e=>e==="position"||e==="percentage",St=e=>e==="image"||e==="url",zt=e=>e==="length"||e==="size"||e==="bg-size",Dt=e=>e==="length",Co=e=>e==="number",At=e=>e==="family-name",Pt=e=>e==="number"||e==="weight",$t=e=>e==="shadow",So=()=>{const e=A("color"),o=A("font"),t=A("text"),r=A("font-weight"),n=A("tracking"),a=A("leading"),s=A("breakpoint"),i=A("container"),l=A("spacing"),d=A("radius"),c=A("shadow"),f=A("inset-shadow"),u=A("text-shadow"),b=A("drop-shadow"),x=A("blur"),k=A("perspective"),h=A("aspect"),g=A("ease"),y=A("animate"),z=()=>["auto","avoid","all","avoid-page","page","left","right","column"],_=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],S=()=>[..._(),p,m],M=()=>["auto","hidden","clip","visible","scroll"],I=()=>["auto","contain","none"],v=()=>[p,m,l],P=()=>[F,"full","auto",...v()],Te=()=>[L,"none","subgrid",p,m],Be=()=>["auto",{span:["full",L,p,m]},L,p,m],ie=()=>[L,"auto",p,m],Ie=()=>["auto","min","max","fr",p,m],we=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],Q=()=>["start","end","center","stretch","center-safe","end-safe"],T=()=>["auto",...v()],H=()=>[F,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...v()],xe=()=>[F,"screen","full","dvw","lvw","svw","min","max","fit",...v()],ke=()=>[F,"screen","full","lh","dvh","lvh","svh","min","max","fit",...v()],w=()=>[e,p,m],je=()=>[..._(),rt,tt,{position:[p,m]}],Ne=()=>["no-repeat",{repeat:["","x","y","space","round"]}],Fe=()=>["auto","cover","contain",xo,bo,{size:[p,m]}],_e=()=>[Ae,oe,J],O=()=>["","none","full",d,p,m],E=()=>["",C,oe,J],le=()=>["solid","dashed","dotted","double"],Le=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],$=()=>[C,Ae,rt,tt],Ve=()=>["","none",x,p,m],ce=()=>["none",C,p,m],ue=()=>["none",C,p,m],Ce=()=>[C,p,m],de=()=>[F,"full",...v()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[j],breakpoint:[j],color:[_t],container:[j],"drop-shadow":[j],ease:["in","out","in-out"],font:[ho],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[j],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[j],shadow:[j],spacing:["px",C],text:[j],"text-shadow":[j],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",F,m,p,h]}],container:["container"],columns:[{columns:[C,m,p,i]}],"break-after":[{"break-after":z()}],"break-before":[{"break-before":z()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:S()}],overflow:[{overflow:M()}],"overflow-x":[{"overflow-x":M()}],"overflow-y":[{"overflow-y":M()}],overscroll:[{overscroll:I()}],"overscroll-x":[{"overscroll-x":I()}],"overscroll-y":[{"overscroll-y":I()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:P()}],"inset-x":[{"inset-x":P()}],"inset-y":[{"inset-y":P()}],start:[{"inset-s":P(),start:P()}],end:[{"inset-e":P(),end:P()}],"inset-bs":[{"inset-bs":P()}],"inset-be":[{"inset-be":P()}],top:[{top:P()}],right:[{right:P()}],bottom:[{bottom:P()}],left:[{left:P()}],visibility:["visible","invisible","collapse"],z:[{z:[L,"auto",p,m]}],basis:[{basis:[F,"full","auto",i,...v()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[C,F,"auto","initial","none",m]}],grow:[{grow:["",C,p,m]}],shrink:[{shrink:["",C,p,m]}],order:[{order:[L,"first","last","none",p,m]}],"grid-cols":[{"grid-cols":Te()}],"col-start-end":[{col:Be()}],"col-start":[{"col-start":ie()}],"col-end":[{"col-end":ie()}],"grid-rows":[{"grid-rows":Te()}],"row-start-end":[{row:Be()}],"row-start":[{"row-start":ie()}],"row-end":[{"row-end":ie()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":Ie()}],"auto-rows":[{"auto-rows":Ie()}],gap:[{gap:v()}],"gap-x":[{"gap-x":v()}],"gap-y":[{"gap-y":v()}],"justify-content":[{justify:[...we(),"normal"]}],"justify-items":[{"justify-items":[...Q(),"normal"]}],"justify-self":[{"justify-self":["auto",...Q()]}],"align-content":[{content:["normal",...we()]}],"align-items":[{items:[...Q(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...Q(),{baseline:["","last"]}]}],"place-content":[{"place-content":we()}],"place-items":[{"place-items":[...Q(),"baseline"]}],"place-self":[{"place-self":["auto",...Q()]}],p:[{p:v()}],px:[{px:v()}],py:[{py:v()}],ps:[{ps:v()}],pe:[{pe:v()}],pbs:[{pbs:v()}],pbe:[{pbe:v()}],pt:[{pt:v()}],pr:[{pr:v()}],pb:[{pb:v()}],pl:[{pl:v()}],m:[{m:T()}],mx:[{mx:T()}],my:[{my:T()}],ms:[{ms:T()}],me:[{me:T()}],mbs:[{mbs:T()}],mbe:[{mbe:T()}],mt:[{mt:T()}],mr:[{mr:T()}],mb:[{mb:T()}],ml:[{ml:T()}],"space-x":[{"space-x":v()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":v()}],"space-y-reverse":["space-y-reverse"],size:[{size:H()}],"inline-size":[{inline:["auto",...xe()]}],"min-inline-size":[{"min-inline":["auto",...xe()]}],"max-inline-size":[{"max-inline":["none",...xe()]}],"block-size":[{block:["auto",...ke()]}],"min-block-size":[{"min-block":["auto",...ke()]}],"max-block-size":[{"max-block":["none",...ke()]}],w:[{w:[i,"screen",...H()]}],"min-w":[{"min-w":[i,"screen","none",...H()]}],"max-w":[{"max-w":[i,"screen","none","prose",{screen:[s]},...H()]}],h:[{h:["screen","lh",...H()]}],"min-h":[{"min-h":["screen","lh","none",...H()]}],"max-h":[{"max-h":["screen","lh",...H()]}],"font-size":[{text:["base",t,oe,J]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,_o,go]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Ae,m]}],"font-family":[{font:[wo,vo,o]}],"font-features":[{"font-features":[m]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[n,p,m]}],"line-clamp":[{"line-clamp":[C,"none",p,et]}],leading:[{leading:[a,...v()]}],"list-image":[{"list-image":["none",p,m]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",p,m]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:w()}],"text-color":[{text:w()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...le(),"wavy"]}],"text-decoration-thickness":[{decoration:[C,"from-font","auto",p,J]}],"text-decoration-color":[{decoration:w()}],"underline-offset":[{"underline-offset":[C,"auto",p,m]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:v()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",p,m]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",p,m]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:je()}],"bg-repeat":[{bg:Ne()}],"bg-size":[{bg:Fe()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},L,p,m],radial:["",p,m],conic:[L,p,m]},ko,yo]}],"bg-color":[{bg:w()}],"gradient-from-pos":[{from:_e()}],"gradient-via-pos":[{via:_e()}],"gradient-to-pos":[{to:_e()}],"gradient-from":[{from:w()}],"gradient-via":[{via:w()}],"gradient-to":[{to:w()}],rounded:[{rounded:O()}],"rounded-s":[{"rounded-s":O()}],"rounded-e":[{"rounded-e":O()}],"rounded-t":[{"rounded-t":O()}],"rounded-r":[{"rounded-r":O()}],"rounded-b":[{"rounded-b":O()}],"rounded-l":[{"rounded-l":O()}],"rounded-ss":[{"rounded-ss":O()}],"rounded-se":[{"rounded-se":O()}],"rounded-ee":[{"rounded-ee":O()}],"rounded-es":[{"rounded-es":O()}],"rounded-tl":[{"rounded-tl":O()}],"rounded-tr":[{"rounded-tr":O()}],"rounded-br":[{"rounded-br":O()}],"rounded-bl":[{"rounded-bl":O()}],"border-w":[{border:E()}],"border-w-x":[{"border-x":E()}],"border-w-y":[{"border-y":E()}],"border-w-s":[{"border-s":E()}],"border-w-e":[{"border-e":E()}],"border-w-bs":[{"border-bs":E()}],"border-w-be":[{"border-be":E()}],"border-w-t":[{"border-t":E()}],"border-w-r":[{"border-r":E()}],"border-w-b":[{"border-b":E()}],"border-w-l":[{"border-l":E()}],"divide-x":[{"divide-x":E()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":E()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...le(),"hidden","none"]}],"divide-style":[{divide:[...le(),"hidden","none"]}],"border-color":[{border:w()}],"border-color-x":[{"border-x":w()}],"border-color-y":[{"border-y":w()}],"border-color-s":[{"border-s":w()}],"border-color-e":[{"border-e":w()}],"border-color-bs":[{"border-bs":w()}],"border-color-be":[{"border-be":w()}],"border-color-t":[{"border-t":w()}],"border-color-r":[{"border-r":w()}],"border-color-b":[{"border-b":w()}],"border-color-l":[{"border-l":w()}],"divide-color":[{divide:w()}],"outline-style":[{outline:[...le(),"none","hidden"]}],"outline-offset":[{"outline-offset":[C,p,m]}],"outline-w":[{outline:["",C,oe,J]}],"outline-color":[{outline:w()}],shadow:[{shadow:["","none",c,pe,me]}],"shadow-color":[{shadow:w()}],"inset-shadow":[{"inset-shadow":["none",f,pe,me]}],"inset-shadow-color":[{"inset-shadow":w()}],"ring-w":[{ring:E()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:w()}],"ring-offset-w":[{"ring-offset":[C,J]}],"ring-offset-color":[{"ring-offset":w()}],"inset-ring-w":[{"inset-ring":E()}],"inset-ring-color":[{"inset-ring":w()}],"text-shadow":[{"text-shadow":["none",u,pe,me]}],"text-shadow-color":[{"text-shadow":w()}],opacity:[{opacity:[C,p,m]}],"mix-blend":[{"mix-blend":[...Le(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Le()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[C]}],"mask-image-linear-from-pos":[{"mask-linear-from":$()}],"mask-image-linear-to-pos":[{"mask-linear-to":$()}],"mask-image-linear-from-color":[{"mask-linear-from":w()}],"mask-image-linear-to-color":[{"mask-linear-to":w()}],"mask-image-t-from-pos":[{"mask-t-from":$()}],"mask-image-t-to-pos":[{"mask-t-to":$()}],"mask-image-t-from-color":[{"mask-t-from":w()}],"mask-image-t-to-color":[{"mask-t-to":w()}],"mask-image-r-from-pos":[{"mask-r-from":$()}],"mask-image-r-to-pos":[{"mask-r-to":$()}],"mask-image-r-from-color":[{"mask-r-from":w()}],"mask-image-r-to-color":[{"mask-r-to":w()}],"mask-image-b-from-pos":[{"mask-b-from":$()}],"mask-image-b-to-pos":[{"mask-b-to":$()}],"mask-image-b-from-color":[{"mask-b-from":w()}],"mask-image-b-to-color":[{"mask-b-to":w()}],"mask-image-l-from-pos":[{"mask-l-from":$()}],"mask-image-l-to-pos":[{"mask-l-to":$()}],"mask-image-l-from-color":[{"mask-l-from":w()}],"mask-image-l-to-color":[{"mask-l-to":w()}],"mask-image-x-from-pos":[{"mask-x-from":$()}],"mask-image-x-to-pos":[{"mask-x-to":$()}],"mask-image-x-from-color":[{"mask-x-from":w()}],"mask-image-x-to-color":[{"mask-x-to":w()}],"mask-image-y-from-pos":[{"mask-y-from":$()}],"mask-image-y-to-pos":[{"mask-y-to":$()}],"mask-image-y-from-color":[{"mask-y-from":w()}],"mask-image-y-to-color":[{"mask-y-to":w()}],"mask-image-radial":[{"mask-radial":[p,m]}],"mask-image-radial-from-pos":[{"mask-radial-from":$()}],"mask-image-radial-to-pos":[{"mask-radial-to":$()}],"mask-image-radial-from-color":[{"mask-radial-from":w()}],"mask-image-radial-to-color":[{"mask-radial-to":w()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":_()}],"mask-image-conic-pos":[{"mask-conic":[C]}],"mask-image-conic-from-pos":[{"mask-conic-from":$()}],"mask-image-conic-to-pos":[{"mask-conic-to":$()}],"mask-image-conic-from-color":[{"mask-conic-from":w()}],"mask-image-conic-to-color":[{"mask-conic-to":w()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:je()}],"mask-repeat":[{mask:Ne()}],"mask-size":[{mask:Fe()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",p,m]}],filter:[{filter:["","none",p,m]}],blur:[{blur:Ve()}],brightness:[{brightness:[C,p,m]}],contrast:[{contrast:[C,p,m]}],"drop-shadow":[{"drop-shadow":["","none",b,pe,me]}],"drop-shadow-color":[{"drop-shadow":w()}],grayscale:[{grayscale:["",C,p,m]}],"hue-rotate":[{"hue-rotate":[C,p,m]}],invert:[{invert:["",C,p,m]}],saturate:[{saturate:[C,p,m]}],sepia:[{sepia:["",C,p,m]}],"backdrop-filter":[{"backdrop-filter":["","none",p,m]}],"backdrop-blur":[{"backdrop-blur":Ve()}],"backdrop-brightness":[{"backdrop-brightness":[C,p,m]}],"backdrop-contrast":[{"backdrop-contrast":[C,p,m]}],"backdrop-grayscale":[{"backdrop-grayscale":["",C,p,m]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[C,p,m]}],"backdrop-invert":[{"backdrop-invert":["",C,p,m]}],"backdrop-opacity":[{"backdrop-opacity":[C,p,m]}],"backdrop-saturate":[{"backdrop-saturate":[C,p,m]}],"backdrop-sepia":[{"backdrop-sepia":["",C,p,m]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":v()}],"border-spacing-x":[{"border-spacing-x":v()}],"border-spacing-y":[{"border-spacing-y":v()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",p,m]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[C,"initial",p,m]}],ease:[{ease:["linear","initial",g,p,m]}],delay:[{delay:[C,p,m]}],animate:[{animate:["none",y,p,m]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[k,p,m]}],"perspective-origin":[{"perspective-origin":S()}],rotate:[{rotate:ce()}],"rotate-x":[{"rotate-x":ce()}],"rotate-y":[{"rotate-y":ce()}],"rotate-z":[{"rotate-z":ce()}],scale:[{scale:ue()}],"scale-x":[{"scale-x":ue()}],"scale-y":[{"scale-y":ue()}],"scale-z":[{"scale-z":ue()}],"scale-3d":["scale-3d"],skew:[{skew:Ce()}],"skew-x":[{"skew-x":Ce()}],"skew-y":[{"skew-y":Ce()}],transform:[{transform:[p,m,"","none","gpu","cpu"]}],"transform-origin":[{origin:S()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:de()}],"translate-x":[{"translate-x":de()}],"translate-y":[{"translate-y":de()}],"translate-z":[{"translate-z":de()}],"translate-none":["translate-none"],accent:[{accent:w()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:w()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",p,m]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":v()}],"scroll-mx":[{"scroll-mx":v()}],"scroll-my":[{"scroll-my":v()}],"scroll-ms":[{"scroll-ms":v()}],"scroll-me":[{"scroll-me":v()}],"scroll-mbs":[{"scroll-mbs":v()}],"scroll-mbe":[{"scroll-mbe":v()}],"scroll-mt":[{"scroll-mt":v()}],"scroll-mr":[{"scroll-mr":v()}],"scroll-mb":[{"scroll-mb":v()}],"scroll-ml":[{"scroll-ml":v()}],"scroll-p":[{"scroll-p":v()}],"scroll-px":[{"scroll-px":v()}],"scroll-py":[{"scroll-py":v()}],"scroll-ps":[{"scroll-ps":v()}],"scroll-pe":[{"scroll-pe":v()}],"scroll-pbs":[{"scroll-pbs":v()}],"scroll-pbe":[{"scroll-pbe":v()}],"scroll-pt":[{"scroll-pt":v()}],"scroll-pr":[{"scroll-pr":v()}],"scroll-pb":[{"scroll-pb":v()}],"scroll-pl":[{"scroll-pl":v()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",p,m]}],fill:[{fill:["none",...w()]}],"stroke-w":[{stroke:[C,oe,J,et]}],stroke:[{stroke:["none",...w()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},zo=oo(So);function Do(...e){return zo(pt(e))}const Ao=Ee({__name:"Button",props:{asChild:{type:Boolean},as:{default:"button"},variant:{},size:{},class:{}},setup(e){const o=e;return(t,r)=>(Gt(),Ut(Y(Br),{"data-slot":"button",as:e.as,"as-child":e.asChild,class:Wt(Y(Do)(Y(Po)({variant:e.variant,size:e.size}),o.class))},{default:Ht(()=>[qt(t.$slots,"default")]),_:3},8,["as","as-child","class"]))}}),an=Object.assign(Ao,{__name:"UiButton"}),Po=cr("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none 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",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function Ot(){function e(r,n){fe.error(r,{description:n,duration:5e3})}function o(r,n){fe.success(r,{description:n,duration:3e3})}function t(r,n){fe.info(r,{description:n,duration:3e3})}return{showError:e,showSuccess:o,showInfo:t,toast:fe}}const $o={trailing:!0};function Oo(e,o=25,t={}){if(t={...$o,...t},!Number.isFinite(o))throw new TypeError("Expected `wait` to be a finite number");let r,n,a=[],s,i;const l=(f,u)=>(s=Eo(e,f,u),s.finally(()=>{if(s=null,t.trailing&&i&&!n){const b=l(f,i);return i=null,b}}),s),d=function(...f){return t.trailing&&(i=f),s||new Promise(u=>{const b=!n&&t.leading;clearTimeout(n),n=setTimeout(()=>{n=null;const x=t.leading?r:l(this,f);i=null;for(const k of a)k(x);a=[]},o),b?(r=l(this,f),u(r)):a.push(u)})},c=f=>{f&&(clearTimeout(f),n=null)};return d.isPending=()=>!!n,d.cancel=()=>{c(n),a=[],i=null},d.flush=()=>{if(c(n),!i||s)return;const f=i;return i=null,l(this,f)},d}async function Eo(e,o,t){return await e.apply(o,t)}const Mo=e=>e==="defer"||e===!1;function Ro(...e){const o=typeof e[e.length-1]=="string"?e.pop():void 0;To(e[0],e[1])&&e.unshift(o);let[t,r,n={}]=e,a=!1;const s=R(()=>D(t));if(typeof s.value!="string")throw new TypeError("[nuxt] [useAsyncData] key must be a string.");if(typeof r!="function")throw new TypeError("[nuxt] [useAsyncData] handler must be a function.");const i=Jt();n.server??=!0,n.default??=Io,n.getCachedData??=Mt,n.lazy??=!1,n.immediate??=!0,n.deep??=N.deep,n.dedupe??="cancel",n._functionName,i._asyncData[s.value];function l(){const x={cause:"initial",dedupe:n.dedupe};return i._asyncData[s.value]?._init||(x.cachedData=n.getCachedData(s.value,i,{cause:"initial"}),i._asyncData[s.value]=ot(i,s.value,r,n,x.cachedData)),()=>i._asyncData[s.value].execute(x)}const d=l(),c=i._asyncData[s.value];c._deps++;const f=n.server!==!1&&i.payload.serverRendered;{let x=function(_){const S=i._asyncData[_];S?._deps&&(S._deps--,S._deps===0&&S?._off())};const k=te();if(k&&f&&n.immediate&&!k.sp&&(k.sp=[]),k&&!k._nuxtOnBeforeMountCbs){k._nuxtOnBeforeMountCbs=[];const _=k._nuxtOnBeforeMountCbs;Yt(()=>{_.forEach(S=>{S()}),_.splice(0,_.length)}),Zt(()=>_.splice(0,_.length))}const h=k&&(k._nuxtClientOnly||at(Qt,!1));f&&i.isHydrating&&(c.error.value||c.data.value!=null)?c.status.value=c.error.value?"error":"success":k&&(!h&&i.payload.serverRendered&&i.isHydrating||n.lazy)&&n.immediate?k._nuxtOnBeforeMountCbs.push(d):n.immediate&&d();const g=Oe(),y=B(s,(_,S)=>{if((_||S)&&_!==S){a=!0;const M=i._asyncData[S]?.data.value!==N.value,I=i._asyncDataPromises[S]!==void 0,v={cause:"initial",dedupe:n.dedupe};if(!i._asyncData[_]?._init){let P;S&&M?P=i._asyncData[S].data.value:(P=n.getCachedData(_,i,{cause:"initial"}),v.cachedData=P),i._asyncData[_]=ot(i,_,r,n,P)}i._asyncData[_]._deps++,S&&x(S),(n.immediate||M||I)&&i._asyncData[_].execute(v),Ue(()=>{a=!1})}},{flush:"sync"}),z=n.watch?B(n.watch,()=>{a||(i._asyncData[s.value]?._execute.isPending()&&Ue(()=>{i._asyncData[s.value]?._execute.flush()}),i._asyncData[s.value]?._execute({cause:"watch",dedupe:n.dedupe}))}):()=>{};g&&nt(()=>{y(),z(),x(s.value)})}const u={data:he(()=>i._asyncData[s.value]?.data),pending:he(()=>i._asyncData[s.value]?.pending),status:he(()=>i._asyncData[s.value]?.status),error:he(()=>i._asyncData[s.value]?.error),refresh:(...x)=>i._asyncData[s.value]?._init?i._asyncData[s.value].execute(...x):l()(),execute:(...x)=>u.refresh(...x),clear:()=>{const x=i._asyncData[s.value];if(x?._abortController)try{x._abortController.abort(new DOMException("AsyncData aborted by user.","AbortError"))}finally{x._abortController=void 0}Et(i,s.value)}},b=Promise.resolve(i._asyncDataPromises[s.value]).then(()=>u);return Object.assign(b,u),b}function he(e){return R({get(){return e()?.value},set(o){const t=e();t&&(t.value=o)}})}function To(e,o){return!(typeof e=="string"||typeof e=="object"&&e!==null||typeof e=="function"&&typeof o=="function")}function Et(e,o){o in e.payload.data&&(e.payload.data[o]=void 0),o in e.payload._errors&&(e.payload._errors[o]=N.errorValue),e._asyncData[o]&&(e._asyncData[o].data.value=Y(e._asyncData[o]._default()),e._asyncData[o].error.value=N.errorValue,e._asyncData[o].status.value="idle"),o in e._asyncDataPromises&&(e._asyncDataPromises[o]=void 0)}function Bo(e,o){const t={};for(const r of o)t[r]=e[r];return t}function ot(e,o,t,r,n){e.payload._errors[o]??=N.errorValue;const a=r.getCachedData!==Mt,s=t,i=r.deep?ut:U,l=n!=null,d=e.hook("app:data:refresh",async f=>{(!f||f.includes(o))&&await c.execute({cause:"refresh:hook"})}),c={data:i(l?n:r.default()),pending:R(()=>c.status.value==="pending"),error:Kt(e.payload._errors,o),status:U("idle"),execute:(...f)=>{const[u,b=void 0]=f,x=u&&b===void 0&&typeof u=="object"?u:{};if(e._asyncDataPromises[o]&&Mo(x.dedupe??r.dedupe))return e._asyncDataPromises[o];{const g="cachedData"in x?x.cachedData:r.getCachedData(o,e,{cause:x.cause??"refresh:manual"});if(g!=null)return e.payload.data[o]=c.data.value=g,c.error.value=N.errorValue,c.status.value="success",Promise.resolve(g)}c._abortController&&c._abortController.abort(new DOMException("AsyncData request cancelled by deduplication","AbortError")),c._abortController=new AbortController,c.status.value="pending";const k=new AbortController,h=new Promise((g,y)=>{try{const z=x.timeout??r.timeout,_=jo([c._abortController?.signal,x?.signal],k.signal,z);if(_.aborted){const S=_.reason;y(S instanceof Error?S:new DOMException(String(S??"Aborted"),"AbortError"));return}return _.addEventListener("abort",()=>{const S=_.reason;y(S instanceof Error?S:new DOMException(String(S??"Aborted"),"AbortError"))},{once:!0,signal:k.signal}),Promise.resolve(s(e,{signal:_})).then(g,y)}catch(z){y(z)}}).then(async g=>{let y=g;r.transform&&(y=await r.transform(g)),r.pick&&(y=Bo(y,r.pick)),e.payload.data[o]=y,c.data.value=y,c.error.value=N.errorValue,c.status.value="success"}).catch(g=>{if(e._asyncDataPromises[o]&&e._asyncDataPromises[o]!==h||c._abortController?.signal.aborted)return e._asyncDataPromises[o];if(typeof DOMException<"u"&&g instanceof DOMException&&g.name==="AbortError")return c.status.value="idle",e._asyncDataPromises[o];c.error.value=Xt(g),c.data.value=Y(r.default()),c.status.value="error"}).finally(()=>{k.abort(),delete e._asyncDataPromises[o]});return e._asyncDataPromises[o]=h,e._asyncDataPromises[o]},_execute:Oo((...f)=>c.execute(...f),0,{leading:!0}),_default:r.default,_deps:0,_init:!0,_hash:void 0,_off:()=>{d(),e._asyncData[o]?._init&&(e._asyncData[o]._init=!1),a||ft(()=>{e._asyncData[o]?._init||(Et(e,o),c.execute=()=>Promise.resolve(),c.data.value=N.value)})}};return c}const Io=()=>N.value,Mt=(e,o,t)=>{if(o.isHydrating)return o.payload.data[e];if(t.cause!=="refresh:manual"&&t.cause!=="refresh:hook")return o.static.data[e]};function jo(e,o,t){const r=e.filter(s=>!!s);if(typeof t=="number"&&t>=0){const s=AbortSignal.timeout?.(t);s&&r.push(s)}if(AbortSignal.any)return AbortSignal.any(r);const n=new AbortController;for(const s of r)if(s.aborted){const i=s.reason??new DOMException("Aborted","AbortError");try{n.abort(i)}catch{n.abort()}return n.signal}const a=()=>{const i=r.find(l=>l.aborted)?.reason??new DOMException("Aborted","AbortError");try{n.abort(i)}catch{n.abort()}};for(const s of r)s.addEventListener?.("abort",a,{once:!0,signal:o});return n.signal}function Rt(e,o,t){const[r={},n]=typeof o=="string"?[{},o]:[o,t],a=R(()=>D(e)),s=R(()=>D(r.key)||"$f"+X([n,typeof a.value=="string"?a.value:"",...No(r)]));if(!r.baseURL&&typeof a.value=="string"&&a.value[0]==="/"&&a.value[1]==="/")throw new Error('[nuxt] [useFetch] the request URL must not start with "//".');const{server:i,lazy:l,default:d,transform:c,pick:f,watch:u,immediate:b,getCachedData:x,deep:k,dedupe:h,timeout:g,...y}=r,z=ge({...er,...y,cache:typeof r.cache=="boolean"?void 0:r.cache}),_={server:i,lazy:l,default:d,transform:c,pick:f,immediate:b,getCachedData:x,deep:k,dedupe:h,timeout:g,watch:u===!1?[]:[...u||[],z]};return Ro(u===!1?s.value:s,(M,{signal:I})=>(r.$fetch||globalThis.$fetch)(a.value,{signal:I,...z}),_)}function No(e){const o=[D(e.method)?.toUpperCase()||"GET",D(e.baseURL)];for(const t of[e.query||e.params]){const r=D(t);if(!r)continue;const n={};for(const[a,s]of Object.entries(r))n[D(a)]=D(s);o.push(n)}if(e.body){const t=D(e.body);if(!t)o.push(X(t));else if(t instanceof ArrayBuffer)o.push(X(Object.fromEntries([...new Uint8Array(t).entries()].map(([r,n])=>[r,n.toString()]))));else if(t instanceof FormData){const r={};for(const n of t.entries()){const[a,s]=n;r[a]=s instanceof File?s.name:s}o.push(X(r))}else if(tr(t))o.push(X(ge(t)));else try{o.push(X(t))}catch{console.warn("[useFetch] Failed to hash body",t)}}return o}const be="prd-viewer-current-repo";function Fo(){const{showError:e,showSuccess:o}=Ot(),{data:t,refresh:r,status:n,error:a}=Rt("/api/repos",{key:"repos",default:()=>[],server:!1},"$Lt7uY0WZBi");B(a,u=>{u&&e("Failed to load repositories","Please check if the server is running.")});const s=rr("currentRepoId",()=>localStorage.getItem(be)),i=R(()=>!s.value||!t.value?null:t.value.find(u=>u.id===s.value)||null);function l(u){s.value=u,u?localStorage.setItem(be,u):localStorage.removeItem(be)}async function d(u,b){const x={path:u,name:b},k=await $fetch("/api/repos",{method:"POST",body:x});return await r(),l(k.id),k}async function c(u){try{await $fetch(`/api/repos/${u}`,{method:"DELETE"}),s.value===u&&l(null),await r(),o("Repository removed")}catch(b){throw e("Failed to remove repository"),b}}async function f(u){const b=await $fetch(`/api/repos/${u}/refresh-git-repos`,{method:"POST"});return await r(),b}{const u=localStorage.getItem(be);u&&!s.value&&(s.value=u)}return{repos:t,currentRepo:i,currentRepoId:s,status:n,selectRepo:l,addRepo:d,removeRepo:c,refreshRepos:r,refreshGitRepos:f}}function ln(){const{currentRepoId:e}=Fo(),{showError:o}=Ot(),t=R(()=>e.value?`/api/repos/${e.value}/prds`:""),{data:r,refresh:n,status:a,error:s}=Rt(t,{default:()=>[],immediate:!1},"$NrUdsAHtNw");B(s,b=>{b&&o("Failed to load PRD list","The repository may be inaccessible.")}),B(e,async b=>{b&&await n()},{immediate:!0});async function i(b){return e.value?await $fetch(`/api/repos/${e.value}/prd/${b}`):null}async function l(b){return e.value?await $fetch(`/api/repos/${e.value}/prd/${b}/tasks`):null}async function d(b){return e.value?await $fetch(`/api/repos/${e.value}/prd/${b}/progress`):null}async function c(b,x){return e.value?await $fetch(`/api/repos/${e.value}/prd/${b}/tasks/${x}/commits`):[]}async function f(b){return e.value?await $fetch(`/api/repos/${e.value}/prd/${b}/graph`):null}async function u(){return e.value?await $fetch(`/api/repos/${e.value}/graph`):null}return{prds:r,prdsStatus:a,refreshPrds:n,fetchDocument:i,fetchTasks:l,fetchProgress:d,fetchTaskCommits:c,fetchPrdGraph:f,fetchRepoGraph:u}}export{Pr as A,an as B,nn as C,Zo as D,Ko as E,Vo as F,cr as G,Br as P,Rr as S,ln as a,Ot as b,lr as c,sn as d,Do as e,Yo as f,Wo as g,G as h,Uo as i,Xo as j,ne as k,rn as l,Go as m,on as n,en as o,Qo as p,qo as q,Jo as r,ye as s,se as t,Fo as u,xr as v,ae as w,ht as x,tn as y,Ho as z};
|