cognova 0.2.7 → 0.2.8
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/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{BjFs8Ujb.js → -2AbaFNH.js} +1 -1
- package/.output/public/_nuxt/{B5OWqWCh.js → 0dqQoCHY.js} +1 -1
- package/.output/public/_nuxt/{DZ_azKLI.js → 2QHXgMyi.js} +1 -1
- package/.output/public/_nuxt/{DaiWSWdm.js → 36ZHqDPo.js} +1 -1
- package/.output/public/_nuxt/4XnyUc7C.js +1 -0
- package/.output/public/_nuxt/{DgKeJf5C.js → 6QDVg5TO.js} +1 -1
- package/.output/public/_nuxt/{RRoc4m9d.js → B-AlyT2D.js} +1 -1
- package/.output/public/_nuxt/{1Hz98MKF.js → B0xuHXvN.js} +1 -1
- package/.output/public/_nuxt/{BW-E-Sar.js → B2Xfh7am.js} +1 -1
- package/.output/public/_nuxt/{Bb1B0ntt.js → B5SnZL2l.js} +1 -1
- package/.output/public/_nuxt/{CEfkp9Rl.js → B6-U3KqJ.js} +2 -2
- package/.output/public/_nuxt/{Cebw7Q7c.js → B6G3NLfW.js} +1 -1
- package/.output/public/_nuxt/B8TQvzYX.js +1 -0
- package/.output/public/_nuxt/{D3V98LVR.js → B9zgEO8N.js} +1 -1
- package/.output/public/_nuxt/{CNwGp6eP.js → BBDxhFYY.js} +1 -1
- package/.output/public/_nuxt/{Dkzqkzki.js → BCCYopTB.js} +1 -1
- package/.output/public/_nuxt/{CfWDee_q.js → BE1CVWts.js} +1 -1
- package/.output/public/_nuxt/{BTk5mgdf.js → BF3tVKtX.js} +1 -1
- package/.output/public/_nuxt/{HCCuOAgZ.js → BHn8tRjg.js} +1 -1
- package/.output/public/_nuxt/BIo-9u_O.js +1 -0
- package/.output/public/_nuxt/{CG0fS-BQ.js → BJUff9Ku.js} +1 -1
- package/.output/public/_nuxt/{CrjKigv8.js → BLm0UviR.js} +1 -1
- package/.output/public/_nuxt/BLwctszt.js +1 -0
- package/.output/public/_nuxt/BMs0mHEp.js +1 -0
- package/.output/public/_nuxt/{DV0JMebZ.js → BSA-U0so.js} +1 -1
- package/.output/public/_nuxt/{D-wVwRIx.js → BUC36BHp.js} +1 -1
- package/.output/public/_nuxt/{CzqLfT8k.js → BVEFmI4I.js} +1 -1
- package/.output/public/_nuxt/{B43p0So7.js → BXtZVbmx.js} +1 -1
- package/.output/public/_nuxt/{BJ_GgKV0.js → BYtVdUIW.js} +1 -1
- package/.output/public/_nuxt/{CJ85o8FK.js → BZBNJD7U.js} +1 -1
- package/.output/public/_nuxt/{Dpp5cOwJ.js → BahXyh-A.js} +1 -1
- package/.output/public/_nuxt/{BmTCDcNm.js → BdxP21ep.js} +1 -1
- package/.output/public/_nuxt/{Bc0NIKN7.js → BefOhWHD.js} +1 -1
- package/.output/public/_nuxt/{DuOsLoVR.js → BhYoxmLV.js} +1 -1
- package/.output/public/_nuxt/{BMLwzSDu.js → Bhhg7oSf.js} +1 -1
- package/.output/public/_nuxt/{deSeNTOh.js → BjnQ1pI1.js} +1 -1
- package/.output/public/_nuxt/{qW7F87d8.js → BkO884Ds.js} +3 -3
- package/.output/public/_nuxt/{BNlugvM3.js → Bkc1Hpcf.js} +1 -1
- package/.output/public/_nuxt/{DgPiIWA2.js → BlsIfvSf.js} +1 -1
- package/.output/public/_nuxt/{Dysa6np_.js → BmaHzvZM.js} +1 -1
- package/.output/public/_nuxt/{CBrXB4hk.js → BmdlymIW.js} +1 -1
- package/.output/public/_nuxt/{CK5Ef4YR.js → BnJ-6YDw.js} +1 -1
- package/.output/public/_nuxt/{C5nfaH9w.js → BqTdsCnW.js} +1 -1
- package/.output/public/_nuxt/{CjRmY2OQ.js → BrOKokPO.js} +1 -1
- package/.output/public/_nuxt/{B7-0ADn3.js → Buf1PAiO.js} +1 -1
- package/.output/public/_nuxt/{CqiOV9n1.js → BvstjGHC.js} +1 -1
- package/.output/public/_nuxt/{DsKy-gee.js → BwC62XRN.js} +1 -1
- package/.output/public/_nuxt/{WWNeb45u.js → Bwn-CRYH.js} +1 -1
- package/.output/public/_nuxt/{BsXPllgv.js → BwyXWqBY.js} +1 -1
- package/.output/public/_nuxt/{C6Kc4XvS.js → BxShcW0K.js} +1 -1
- package/.output/public/_nuxt/{NBE83ZQn.js → C-HCArYP.js} +1 -1
- package/.output/public/_nuxt/{sdvIKLwS.js → C-Ygk9x5.js} +1 -1
- package/.output/public/_nuxt/{Dx2Tgm6S.js → C075hYlX.js} +1 -1
- package/.output/public/_nuxt/{C14DGwaT.js → C13FKhqK.js} +1 -1
- package/.output/public/_nuxt/{BLszW9T3.js → C1tCdK-M.js} +1 -1
- package/.output/public/_nuxt/{BdCB2PoJ.js → C21BjagS.js} +1 -1
- package/.output/public/_nuxt/{B_28CKij.js → C24so3m7.js} +2 -2
- package/.output/public/_nuxt/{Drr-RSSP.js → C3tximD1.js} +1 -1
- package/.output/public/_nuxt/{XzRnkkwG.js → C6FFW_cO.js} +1 -1
- package/.output/public/_nuxt/{Cedv1M65.js → C6sX7TYf.js} +1 -1
- package/.output/public/_nuxt/{CnW8zyuA.js → C7qhmmZh.js} +1 -1
- package/.output/public/_nuxt/{CSQ-nblB.js → CAfyXyeo.js} +1 -1
- package/.output/public/_nuxt/{DxR8g9So.js → CClsKJ9A.js} +1 -1
- package/.output/public/_nuxt/{Ci-MVdCd.js → CDkyQ1eQ.js} +1 -1
- package/.output/public/_nuxt/CE9_ECxx.js +1 -0
- package/.output/public/_nuxt/{JJIcQEna.js → CEDw8osP.js} +1 -1
- package/.output/public/_nuxt/{CwJR22-0.js → CEz288t8.js} +1 -1
- package/.output/public/_nuxt/{BvuV9uCn.js → CF33v_m5.js} +1 -1
- package/.output/public/_nuxt/{DytaiikM.js → CH_jROT9.js} +1 -1
- package/.output/public/_nuxt/{NlScC3GW.js → CO3hceDE.js} +1 -1
- package/.output/public/_nuxt/{ByfSJZV6.js → CQ3tAemj.js} +1 -1
- package/.output/public/_nuxt/{DMsHLHmB.js → CSHcfejh.js} +1 -1
- package/.output/public/_nuxt/{DAs574wU.js → CSjOaBKu.js} +1 -1
- package/.output/public/_nuxt/{DNpsjOxN.js → CVYcsqmL.js} +1 -1
- package/.output/public/_nuxt/{DfpSaqgV.js → CXTrUfQ5.js} +1 -1
- package/.output/public/_nuxt/{0LyRrTRM.js → CY7f553E.js} +1 -1
- package/.output/public/_nuxt/{A5lrd5_j.js → CYQP4zpi.js} +1 -1
- package/.output/public/_nuxt/CbvNJVrk.js +1 -0
- package/.output/public/_nuxt/CewcVxDS.js +1 -0
- package/.output/public/_nuxt/{1IuG3yiQ.js → CfY_bsV0.js} +1 -1
- package/.output/public/_nuxt/{4bC1z31I.js → ClGn48iq.js} +1 -1
- package/.output/public/_nuxt/{CwaMSU1O.js → CqFcWBkW.js} +1 -1
- package/.output/public/_nuxt/Cr0NfhPB.js +1 -0
- package/.output/public/_nuxt/{CXuKrnTA.js → CrmE-JGu.js} +1 -1
- package/.output/public/_nuxt/{CW8xtqwN.js → Cve4psva.js} +1 -1
- package/.output/public/_nuxt/{BsPj3ifk.js → CzAZpALW.js} +1 -1
- package/.output/public/_nuxt/{S4a_N6rD.js → D-5A6cMB.js} +1 -1
- package/.output/public/_nuxt/{HC3657Xq.js → D-Ge96eV.js} +1 -1
- package/.output/public/_nuxt/{fTEmwfo4.js → D04CyXmf.js} +1 -1
- package/.output/public/_nuxt/{B9Kd_0HK.js → D2kQkOaG.js} +1 -1
- package/.output/public/_nuxt/{jeu3Xx8e.js → D4Cizi4y.js} +1 -1
- package/.output/public/_nuxt/{B-5roYpk.js → D4X6ONPF.js} +1 -1
- package/.output/public/_nuxt/{_16_b82K.js → D4_89MZm.js} +1 -1
- package/.output/public/_nuxt/{Db5XIfWS.js → D79lbuWG.js} +1 -1
- package/.output/public/_nuxt/{DAFasgHH.js → D7pKT3IW.js} +1 -1
- package/.output/public/_nuxt/{DZdh7_lh.js → D887s9k9.js} +1 -1
- package/.output/public/_nuxt/{DImdNj-F.js → D9aYkNhQ.js} +1 -1
- package/.output/public/_nuxt/{BoPAYize.js → DJt7Rogf.js} +1 -1
- package/.output/public/_nuxt/{BZFXnEwe.js → DKKY8zWm.js} +1 -1
- package/.output/public/_nuxt/{BJi2ZHtT.js → DLUvsixu.js} +1 -1
- package/.output/public/_nuxt/{zBoPDS4z.js → DMb_1D81.js} +1 -1
- package/.output/public/_nuxt/{CzTTKfet.js → DX_9SfFb.js} +1 -1
- package/.output/public/_nuxt/{CpC3C9gj.js → DZEuR9ms.js} +1 -1
- package/.output/public/_nuxt/{DCco_rlV.js → D_O7SlHm.js} +1 -1
- package/.output/public/_nuxt/{DvgLoqaC.js → D_obX2Hj.js} +1 -1
- package/.output/public/_nuxt/{CeDxLTxX.js → DaBSQDif.js} +1 -1
- package/.output/public/_nuxt/{DB3y_21M.js → Dbfwn2zk.js} +1 -1
- package/.output/public/_nuxt/{-2wkydbj.js → DcbbfwCe.js} +1 -1
- package/.output/public/_nuxt/{MdebRWqA.js → DmDPSvxi.js} +1 -1
- package/.output/public/_nuxt/{CVr40yKH.js → DmOS3vFH.js} +1 -1
- package/.output/public/_nuxt/DmcMCO8x.js +1 -0
- package/.output/public/_nuxt/DmlZSBjF.js +1 -0
- package/.output/public/_nuxt/{CB8_A8N4.js → DqzomZoo.js} +1 -1
- package/.output/public/_nuxt/{0J8pJb0Z.js → Drxf7nJz.js} +1 -1
- package/.output/public/_nuxt/{CjYUi9c8.js → Dt5mOzXj.js} +1 -1
- package/.output/public/_nuxt/{Brqrl-cH.js → DtJnWtpL.js} +1 -1
- package/.output/public/_nuxt/{CwCEQ4Dw.js → DtyyytRx.js} +1 -1
- package/.output/public/_nuxt/{CphXSvBo.js → DwIYtFfA.js} +1 -1
- package/.output/public/_nuxt/{CLZS246x.js → GGcn5KPW.js} +1 -1
- package/.output/public/_nuxt/{pkbwpgSD.js → GYf-vnR6.js} +1 -1
- package/.output/public/_nuxt/{Bn8loaeQ.js → ImPsUDiH.js} +1 -1
- package/.output/public/_nuxt/{hqpqUuXS.js → JReYPlwF.js} +1 -1
- package/.output/public/_nuxt/{CgQKyBSS.js → KEeoKtq_.js} +1 -1
- package/.output/public/_nuxt/{Bf34lExB.js → LQNRVThr.js} +1 -1
- package/.output/public/_nuxt/{BhOIdu3Z.js → MWUW1sIF.js} +1 -1
- package/.output/public/_nuxt/{w3t8WD8v.js → Pn7VD6uQ.js} +1 -1
- package/.output/public/_nuxt/{BaJEGr8G.js → SfaNtyKS.js} +1 -1
- package/.output/public/_nuxt/{vM-wdhkZ.js → U3f6dy8i.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/410e449d-9fe8-43a0-ae07-80797693b9b8.json +1 -0
- package/.output/public/_nuxt/{BrICHPil.js → cPPThz84.js} +1 -1
- package/.output/public/_nuxt/{CxJr4mB0.js → dB7G4iIC.js} +1 -1
- package/.output/public/_nuxt/{EgYyfo1g.js → eE8TtXgC.js} +3 -3
- package/.output/public/_nuxt/iBaivqi8.js +1 -0
- package/.output/public/_nuxt/{BLL1JLwq.js → ijmD2cEW.js} +1 -1
- package/.output/public/_nuxt/{DpYns7cT.js → it8syoZI.js} +1 -1
- package/.output/public/_nuxt/mT7Mt2d7.js +1 -0
- package/.output/public/_nuxt/{Bb9LNSu_.js → mfAEx0Kz.js} +1 -1
- package/.output/public/_nuxt/{MzEmU9ER.js → nHSiDk8N.js} +1 -1
- package/.output/public/_nuxt/{CvMqUdkl.js → njnzCNrH.js} +3 -3
- package/.output/public/_nuxt/{atVSHCxP.js → pHCJ6lhw.js} +1 -1
- package/.output/public/_nuxt/{Cow1TrPj.js → vES4kgx7.js} +1 -1
- package/.output/public/_nuxt/{Zjvb5YJR.js → yJ9vRvHj.js} +1 -1
- package/.output/public/_nuxt/{B8Kve-DH.js → zO9MgHj2.js} +1 -1
- package/.output/public/_nuxt/{BaVaTug8.js → zXvvpsZj.js} +1 -1
- package/.output/server/chunks/build/client.precomputed.mjs +1 -1
- package/.output/server/chunks/build/server.mjs +1 -1
- package/.output/server/chunks/build/{settings-DuT6LGJZ.mjs → settings-ByUXa46k.mjs} +1507 -218
- package/.output/server/chunks/build/settings-ByUXa46k.mjs.map +1 -0
- package/.output/server/chunks/build/styles.mjs +2 -2
- package/.output/server/chunks/nitro/nitro.mjs +872 -872
- package/.output/server/package.json +1 -1
- package/app/pages/settings.vue +441 -5
- package/package.json +1 -1
- package/server/api/skills/import.post.ts +1 -1
- package/server/bridge/adapters/telegram.ts +1 -1
- package/.output/public/_nuxt/B-YQztaH.js +0 -1
- package/.output/public/_nuxt/B1gFtqXK.js +0 -1
- package/.output/public/_nuxt/BTfZ7nek.js +0 -1
- package/.output/public/_nuxt/BbPnqQJ0.js +0 -1
- package/.output/public/_nuxt/BhSWIRpp.js +0 -1
- package/.output/public/_nuxt/By6kmkhJ.js +0 -1
- package/.output/public/_nuxt/C4XVJnNJ.js +0 -1
- package/.output/public/_nuxt/CkvyAKbu.js +0 -1
- package/.output/public/_nuxt/D2f7BlK2.js +0 -1
- package/.output/public/_nuxt/D2lmhTjQ.js +0 -1
- package/.output/public/_nuxt/D64-rCSQ.js +0 -1
- package/.output/public/_nuxt/DGP2JJt8.js +0 -1
- package/.output/public/_nuxt/builds/meta/9863fe43-d78c-4b29-a1e8-e6de61119507.json +0 -1
- package/.output/public/_nuxt/f7zDjk6q.js +0 -1
- package/.output/server/chunks/build/settings-DuT6LGJZ.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{T as k,a as T,b as w,c as q,d as B}from"./
|
|
1
|
+
import{T as k,a as T,b as w,c as q,d as B}from"./D7pKT3IW.js";import{aq as I,ao as L,ar as M,N as z,c as b,e as G,q as N,as as U,f as y,at as $,Q as c,R as o,S as d,T as m,G as h,C as u,U as i,aj as x,ai as S,am as V,ab as D,ae as R,au as j}from"./njnzCNrH.js";import A from"./CDkyQ1eQ.js";import"./Bwn-CRYH.js";import"./ImPsUDiH.js";import"./CClsKJ9A.js";import"./BIo-9u_O.js";const E={slots:{root:"relative group *:not-first:!my-0 *:not-first:!static my-5",list:"relative flex items-center gap-1 border border-muted bg-default border-b-0 rounded-t-md overflow-x-auto p-2",indicator:"absolute left-0 inset-y-2 w-(--reka-tabs-indicator-size) translate-x-(--reka-tabs-indicator-position) transition-[translate,width] duration-200 bg-elevated rounded-md shadow-xs",trigger:["relative inline-flex items-center gap-1.5 text-default data-[state=active]:text-highlighted hover:bg-elevated/50 px-2 py-1.5 text-sm rounded-md disabled:cursor-not-allowed disabled:opacity-75 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary focus:outline-none","transition-colors"],triggerIcon:"size-4 shrink-0",triggerLabel:"truncate"}},W={__name:"ProseCodeGroup",props:I({defaultValue:{type:String,required:!1,default:"0"},sync:{type:String,required:!1},class:{type:null,required:!1},ui:{type:null,required:!1}},{modelValue:{type:String},modelModifiers:{}}),emits:["update:modelValue"],setup(f){const a=f,_=L(),s=M(f,"modelValue"),C=z(),r=b(()=>V({extend:V(E),...C.ui?.prose?.codeGroup||{}})()),p=G(1),g=b(()=>(p.value,_.default?.()?.flatMap(v).filter(Boolean)||[]));function v(e,t){return typeof e.type=="symbol"?e.children?.map(v):{label:e.props?.filename||e.props?.label||`${t}`,icon:e.props?.icon,component:e}}return N(()=>{if(a.sync){const e=`code-group-${a.sync}`,t=U(e,()=>localStorage.getItem(e));y(t,()=>{t.value&&(s.value=t.value)},{immediate:!0}),y(s,()=>{s.value&&(t.value=s.value,localStorage.setItem(e,s.value))})}}),$(()=>p.value++),(e,t)=>(o(),c(u(w),{modelValue:s.value,"onUpdate:modelValue":t[0]||(t[0]=l=>s.value=l),"default-value":f.defaultValue,"unmount-on-hide":!1,class:i(r.value.root({class:[a.ui?.root,a.class]}))},{default:d(()=>[m(u(T),{class:i(r.value.list({class:a.ui?.list}))},{default:d(()=>[m(u(k),{class:i(r.value.indicator({class:a.ui?.indicator}))},null,8,["class"]),(o(!0),h(S,null,x(g.value,(l,n)=>(o(),c(u(q),{key:n,value:String(n),class:i(r.value.trigger({class:a.ui?.trigger}))},{default:d(()=>[m(A,{icon:l.icon,filename:l.label,class:i(r.value.triggerIcon({class:a.ui?.triggerIcon}))},null,8,["icon","filename","class"]),D("span",{class:i(r.value.triggerLabel({class:a.ui?.triggerLabel}))},R(l.label),3)]),_:2},1032,["value","class"]))),128))]),_:1},8,["class"]),(o(!0),h(S,null,x(g.value,(l,n)=>(o(),c(u(B),{key:n,value:String(n),"as-child":""},{default:d(()=>[(o(),c(j(l.component),{"hide-header":"",tabindex:"-1"}))]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","default-value","class"]))}};export{W as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as rt,ag as lt,
|
|
1
|
+
import{a as rt,ag as lt,an as ct,e as b,f as ut,q as dt,G as m,T as o,S as u,al as mt,C as s,R as a,ab as l,Q as A,a9 as C,_ as pt,W as _t,ai as E,aj as z,ae as f,aa as y,ak as $}from"./njnzCNrH.js";import{_ as ft}from"./BmdlymIW.js";import{_ as gt,a as vt}from"./B0xuHXvN.js";import{u as ht,_ as yt,a as kt,b as xt}from"./nHSiDk8N.js";import{c as At}from"./B5SnZL2l.js";import{_ as wt}from"./yJ9vRvHj.js";import{_ as bt}from"./BUC36BHp.js";import{_ as Ct}from"./zO9MgHj2.js";import{_ as $t}from"./CO3hceDE.js";import{u as St}from"./it8syoZI.js";import{u as Ut}from"./2QHXgMyi.js";import"./C8ut0f5H.js";import"./CqkleIqs.js";import"./C-Ygk9x5.js";import"./BHn8tRjg.js";import"./vES4kgx7.js";import"./DqzomZoo.js";import"./D4X6ONPF.js";import"./DlAUqK2U.js";import"./SfaNtyKS.js";import"./D-5A6cMB.js";import"./DmDPSvxi.js";import"./ImPsUDiH.js";import"./iBaivqi8.js";import"./D9aYkNhQ.js";import"./DLUvsixu.js";import"./CrmE-JGu.js";import"./BCCYopTB.js";import"./B9zgEO8N.js";import"./BIo-9u_O.js";import"./D79lbuWG.js";import"./Pn7VD6uQ.js";import"./DMb_1D81.js";import"./CXTrUfQ5.js";import"./C6Y-ieo6.js";import"./Bwn-CRYH.js";import"./BjnQ1pI1.js";import"./Cve4psva.js";import"./Vcq4gwWv.js";import"./dB7G4iIC.js";import"./BZBNJD7U.js";import"./BYtVdUIW.js";import"./DmcMCO8x.js";const Rt=At(xt),Nt={class:"contents"},Ft={class:"p-4 space-y-6"},Bt={key:1,class:"flex items-center justify-center h-64"},Tt={key:2,class:"flex flex-col items-center justify-center h-64 text-neutral-500"},Et={key:3,class:"space-y-4"},zt={class:"flex items-start justify-between gap-4"},Dt={class:"flex-1 min-w-0"},Mt={class:"flex items-center gap-2"},Pt={class:"font-medium truncate"},Vt={key:0,class:"text-sm text-muted truncate mt-1"},jt={class:"flex items-center gap-4 mt-2 text-sm text-muted"},Ot={class:"flex items-center gap-1"},Gt={key:0,class:"flex items-center gap-1"},Wt={key:1,class:"flex items-center gap-1"},qt={class:"flex items-center gap-2"},ze=rt({__name:"index",setup(Lt){const g=lt(),D=ct(),{agents:R,loading:M,fetchAgents:P,createAgent:V,updateAgent:j,toggleEnabled:O,runAgent:G,cancelAgent:W,fetchGlobalStats:q}=ht(),{isAgentRunning:L}=St(),{agentStatsPeriod:N}=Ut(),w=b(N.value),k=b(null),S=b(!1);function F(n){return L(n)?!0:k.value?.runningAgentIds?.includes(n)??!1}const v=b(!1),h=b(null),I=[{label:"24h",value:"24h"},{label:"7d",value:"7d"},{label:"30d",value:"30d"}];function J(n){const t=n.split(" ");if(t.length!==5)return n;const i=t[0],r=t[1],c=t[2],d=t[3],p=t[4];return i==="0"&&r==="*"&&c==="*"&&d==="*"&&p==="*"?"Every hour":i==="*/5"&&r==="*"&&c==="*"&&d==="*"&&p==="*"?"Every 5 minutes":c==="*"&&d==="*"&&p==="*"&&r!=="*"?`Daily at ${r}:${i.padStart(2,"0")}`:p==="0"&&c==="*"&&d==="*"?`Weekly on Sunday at ${r}:${i.padStart(2,"0")}`:n}function Q(n){if(!n)return"Never";const t=new Date(n),r=new Date().getTime()-t.getTime(),c=Math.floor(r/6e4),d=Math.floor(r/36e5),p=Math.floor(r/864e5);return c<1?"Just now":c<60?`${c}m ago`:d<24?`${d}h ago`:`${p}d ago`}function B(){h.value=null,v.value=!0}function H(n,t){t.stopPropagation(),h.value=n,v.value=!0}function K(n){D.push(`/agents/${n.id}`)}async function X(n){try{h.value?(await j(h.value.id,n),g.add({title:"Agent updated",color:"success",icon:"i-lucide-check"})):(await V(n),g.add({title:"Agent created",color:"success",icon:"i-lucide-check"}),U()),v.value=!1,h.value=null}catch(t){g.add({title:"Failed to save agent",description:t instanceof Error?t.message:"An unexpected error occurred",color:"error",icon:"i-lucide-alert-circle"})}}async function Y(n){try{await O(n)}catch{g.add({title:"Failed to toggle agent",color:"error",icon:"i-lucide-alert-circle"})}}async function Z(n,t){t.stopPropagation();try{await G(n)}catch{g.add({title:"Failed to run agent",color:"error",icon:"i-lucide-alert-circle"})}}async function tt(n,t){t.stopPropagation();try{await W(n),g.add({title:"Agent cancelled",color:"warning",icon:"i-lucide-x-circle"})}catch{g.add({title:"Failed to cancel agent",color:"error",icon:"i-lucide-alert-circle"})}}function et(n){switch(n){case"success":return"success";case"error":return"error";case"budget_exceeded":return"warning";case"running":return"info";case"cancelled":return"neutral";default:return"neutral"}}async function U(){S.value=!0;try{k.value=await q(w.value)}catch{}finally{S.value=!1}}return ut(w,n=>{N.value=n,U()}),dt(async()=>{await P(),U()}),(n,t)=>{const i=_t,r=ft,c=vt,d=yt,p=Rt,x=pt,T=wt,nt=bt,ot=Ct,at=gt,st=kt,it=$t;return a(),m("div",Nt,[o(at,{id:"agents",grow:""},{header:u(()=>[o(c,{title:"Scheduled Agents"},{right:u(()=>[o(r,null,{default:u(()=>[(a(),m(E,null,z(I,e=>o(i,{key:e.value,color:s(w)===e.value?"primary":"neutral",variant:s(w)===e.value?"solid":"ghost",size:"sm",onClick:_=>w.value=e.value},{default:u(()=>[y(f(e.label),1)]),_:2},1032,["color","variant","onClick"])),64))]),_:1}),o(i,{icon:"i-lucide-plus",label:"New Agent",onClick:B})]),_:1})]),body:u(()=>[l("div",Ft,[o(d,{stats:s(k),loading:s(S),variant:"global"},null,8,["stats","loading"]),s(k)&&s(k).dailyRuns.length>0?(a(),A(p,{key:0,data:s(k).dailyRuns,title:"Run Activity"},null,8,["data"])):C("",!0),s(M)?(a(),m("div",Bt,[o(x,{name:"i-lucide-loader-2",class:"w-8 h-8 animate-spin text-neutral-400"})])):s(R).length===0?(a(),m("div",Tt,[o(x,{name:"i-lucide-bot",class:"w-12 h-12 mb-4"}),t[3]||(t[3]=l("p",{class:"text-lg font-medium"}," No agents yet ",-1)),t[4]||(t[4]=l("p",{class:"text-sm"}," Create your first scheduled agent to automate tasks ",-1)),o(i,{class:"mt-4",icon:"i-lucide-plus",label:"Create Agent",onClick:B})])):(a(),m("div",Et,[t[6]||(t[6]=l("h2",{class:"text-lg font-semibold"}," Agents ",-1)),(a(!0),m(E,null,z(s(R),e=>(a(),A(ot,{key:e.id,class:"cursor-pointer transition-all hover:ring-2 hover:ring-primary/50",onClick:_=>K(e)},{default:u(()=>[l("div",zt,[l("div",Dt,[l("div",Mt,[l("h3",Pt,f(e.name),1),F(e.id)?(a(),A(T,{key:0,color:"info",variant:"subtle",size:"sm"},{default:u(()=>[o(x,{name:"i-lucide-loader-2",class:"w-3 h-3 animate-spin mr-1"}),t[5]||(t[5]=y(" Running ",-1))]),_:1})):e.lastStatus?(a(),A(T,{key:1,color:et(e.lastStatus),size:"sm"},{default:u(()=>[y(f(e.lastStatus),1)]),_:2},1032,["color"])):C("",!0)]),e.description?(a(),m("p",Vt,f(e.description),1)):C("",!0),l("div",jt,[l("span",Ot,[o(x,{name:"i-lucide-clock"}),y(" "+f(J(e.schedule)),1)]),e.lastRunAt?(a(),m("span",Gt,[o(x,{name:"i-lucide-activity"}),y(" "+f(Q(e.lastRunAt)),1)])):C("",!0),e.maxBudgetUsd?(a(),m("span",Wt,[o(x,{name:"i-lucide-dollar-sign"}),y(" $"+f(e.maxBudgetUsd)+" limit ",1)])):C("",!0)])]),l("div",qt,[o(nt,{"model-value":e.enabled,onClick:t[0]||(t[0]=$(()=>{},["stop"])),"onUpdate:modelValue":_=>Y(e.id)},null,8,["model-value","onUpdate:modelValue"]),F(e.id)?(a(),A(i,{key:0,icon:"i-lucide-square",variant:"ghost",size:"sm",color:"error",onClick:$(_=>tt(e.id,_),["stop"])},null,8,["onClick"])):(a(),A(i,{key:1,icon:"i-lucide-play",variant:"ghost",size:"sm",disabled:!e.enabled,onClick:$(_=>Z(e.id,_),["stop"])},null,8,["disabled","onClick"])),o(i,{icon:"i-lucide-pencil",variant:"ghost",size:"sm",onClick:$(_=>H(e,_),["stop"])},null,8,["onClick"])])])]),_:2},1032,["onClick"]))),128))]))])]),_:1}),o(it,{open:s(v),"onUpdate:open":t[2]||(t[2]=e=>mt(v)?v.value=e:null)},{title:u(()=>[y(f(s(h)?"Edit Agent":"New Agent"),1)]),body:u(()=>[o(st,{agent:s(h),onSubmit:X,onCancel:t[1]||(t[1]=e=>v.value=!1)},null,8,["agent"])]),_:1},8,["open"])])}}});export{ze as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as n,c,G as r,R as p,a4 as u,U as i,
|
|
1
|
+
import{N as n,c,G as r,R as p,a4 as u,U as i,am as s}from"./njnzCNrH.js";const m={base:"my-1.5 ps-1.5 leading-7 [&>ul]:my-0"},_={__name:"ProseLi",props:{class:{type:null,required:!1}},setup(e){const a=e,l=n(),o=c(()=>s({extend:s(m),...l.ui?.prose?.li||{}}));return(t,d)=>(p(),r("li",{class:i(o.value({class:a.class}))},[u(t.$slots,"default")],2))}};export{_ as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as oe}from"./Zjvb5YJR.js";import{a as Q,c as U,G as F,R as v,ab as k,T as l,U as Z,C as s,_ as se,an as $e,Q as B,a9 as E,ae as j,S as m,aa as S,aV as ue,ai as ae,aj as le,W as J,ak as z,e as b,f as q,ah as De,bg as Ce,ag as Ue,q as Ve,n as ce}from"./CvMqUdkl.js";import{_ as Fe}from"./CrjKigv8.js";import{_ as Se,a as Ie}from"./1Hz98MKF.js";import{_ as ne}from"./MdebRWqA.js";import{_ as de}from"./BaJEGr8G.js";import{_ as Pe}from"./CwaMSU1O.js";import{_ as me}from"./B8Kve-DH.js";import{_ as Ee}from"./zBoPDS4z.js";import{_ as Ae}from"./S4a_N6rD.js";import{_ as ze,a as Be}from"./Db5XIfWS.js";import{_ as Le}from"./1IuG3yiQ.js";import{_ as Oe}from"./NlScC3GW.js";import{_ as Me}from"./B_28CKij.js";import{_ as Ne}from"./pkbwpgSD.js";import{_ as qe}from"./CpC3C9gj.js";import{u as He}from"./DZ_azKLI.js";import"./sdvIKLwS.js";import"./HCCuOAgZ.js";import"./Cow1TrPj.js";import"./Bn8loaeQ.js";import"./B1gFtqXK.js";import"./DImdNj-F.js";import"./BJi2ZHtT.js";import"./CXuKrnTA.js";import"./Dkzqkzki.js";import"./D3V98LVR.js";import"./D2lmhTjQ.js";import"./DfpSaqgV.js";import"./C6Y-ieo6.js";import"./WWNeb45u.js";import"./deSeNTOh.js";import"./w3t8WD8v.js";import"./CW8xtqwN.js";import"./Vcq4gwWv.js";import"./CxJr4mB0.js";import"./CJ85o8FK.js";import"./BJ_GgKV0.js";import"./88opOQSr.js";import"./iik6CYzq.js";import"./B7-0ADn3.js";import"./Bb1B0ntt.js";const Re={class:"flex items-center gap-2"},Qe={class:"flex items-center flex-wrap gap-2 mt-2"},Ge={key:4,class:"text-xs text-dimmed"},We=Q({__name:"TaskCard",props:{task:{}},emits:["toggle","edit","delete","view"],setup(e,{emit:w}){const r=e,h=w,i={1:{label:"Low",color:"neutral",icon:"i-lucide-arrow-down"},2:{label:"Medium",color:"warning",icon:"i-lucide-minus"},3:{label:"High",color:"error",icon:"i-lucide-arrow-up"}},C={todo:{label:"Todo",color:"neutral",icon:"i-lucide-circle"},in_progress:{label:"In Progress",color:"info",icon:"i-lucide-clock"},done:{label:"Done",color:"success",icon:"i-lucide-check-circle"},blocked:{label:"Blocked",color:"error",icon:"i-lucide-alert-circle"}},u=U(()=>i[r.task.priority]||i[2]),g=U(()=>C[r.task.status]),_=U(()=>r.task.status==="done"),c=U(()=>!!r.task.description?.trim()),a=U(()=>!r.task.dueDate||_.value?!1:new Date(r.task.dueDate)<new Date);function p(I){return I?new Date(I).toLocaleDateString("en-US",{month:"short",day:"numeric"}):null}const $=U(()=>[[{label:"Edit",icon:"i-lucide-pencil",onSelect:()=>h("edit",r.task)},{label:"Delete",icon:"i-lucide-trash-2",color:"error",onSelect:()=>h("delete",r.task.id)}]]);return(I,A)=>{const o=se,t=oe,n=J,T=Ee;return v(),F("div",{class:Z(["group flex items-start gap-3 p-3 rounded-lg border border-default hover:bg-elevated transition-colors",{"opacity-60":s(_)}])},[k("button",{class:"mt-0.5 shrink-0",onClick:A[0]||(A[0]=$e(V=>h("toggle",e.task.id),["stop"]))},[l(o,{name:s(_)?"i-lucide-check-circle-2":"i-lucide-circle",class:Z(["size-5",s(_)?"text-success":"text-dimmed hover:text-default"])},null,8,["name","class"])]),k("button",{class:"flex-1 min-w-0 text-left",onClick:A[1]||(A[1]=V=>h("view",e.task))},[k("div",Re,[k("span",{class:Z(["font-medium",{"line-through text-dimmed":s(_)}])},j(e.task.title),3),s(c)?(v(),B(o,{key:0,name:"i-lucide-file-text",class:"size-3.5 text-dimmed shrink-0"})):E("",!0)]),k("div",Qe,[e.task.project?(v(),B(t,{key:0,variant:"subtle",color:"neutral",size:"xs"},{default:m(()=>[k("span",{class:"size-2 rounded-full mr-1",style:ue({backgroundColor:e.task.project.color})},null,4),S(" "+j(e.task.project.name),1)]),_:1})):E("",!0),e.task.priority!==2?(v(),B(t,{key:1,color:s(u).color,variant:"subtle",size:"xs"},{default:m(()=>[l(o,{name:s(u).icon,class:"size-3 mr-1"},null,8,["name"]),S(" "+j(s(u).label),1)]),_:1},8,["color"])):E("",!0),e.task.status==="in_progress"||e.task.status==="blocked"?(v(),B(t,{key:2,color:s(g).color,variant:"subtle",size:"xs"},{default:m(()=>[l(o,{name:s(g).icon,class:"size-3 mr-1"},null,8,["name"]),S(" "+j(s(g).label),1)]),_:1},8,["color"])):E("",!0),e.task.dueDate?(v(),F("span",{key:3,class:Z(["text-xs flex items-center gap-1",s(a)?"text-error":"text-dimmed"])},[l(o,{name:"i-lucide-calendar",class:"size-3"}),S(" "+j(p(e.task.dueDate)),1)],2)):E("",!0),(v(!0),F(ae,null,le(e.task.tags?.slice(0,3),V=>(v(),B(t,{key:V,variant:"subtle",color:"neutral",size:"xs"},{default:m(()=>[S(j(V),1)]),_:2},1024))),128)),e.task.tags&&e.task.tags.length>3?(v(),F("span",Ge," +"+j(e.task.tags.length-3),1)):E("",!0)])]),l(T,{items:s($)},{default:m(()=>[l(n,{icon:"i-lucide-more-vertical",color:"neutral",variant:"ghost",size:"xs",class:"opacity-0 group-hover:opacity-100 transition-opacity"})]),_:1},8,["items"])],2)}}}),Je=Object.assign(We,{__name:"TasksTaskCard"}),Ke={key:0,class:"flex items-center justify-center py-12"},Xe={class:"text-center py-8 text-dimmed"},Ye={key:2,class:"space-y-2"},Ze=Q({__name:"TaskList",props:{tasks:{},loading:{type:Boolean}},emits:["toggle","edit","delete","create","view"],setup(e,{emit:w}){const r=w;return(h,i)=>{const C=se,u=J,g=me,_=Je;return v(),F("div",null,[e.loading?(v(),F("div",Ke,[l(C,{name:"i-lucide-loader-2",class:"size-8 animate-spin text-dimmed"})])):e.tasks.length===0?(v(),B(g,{key:1},{default:m(()=>[k("div",Xe,[l(C,{name:"i-lucide-check-square",class:"size-12 mx-auto mb-2 opacity-50"}),i[5]||(i[5]=k("p",{class:"font-medium"}," No tasks yet ",-1)),i[6]||(i[6]=k("p",{class:"text-sm mt-1"}," Create your first task to get started. ",-1)),l(u,{class:"mt-4",icon:"i-lucide-plus",label:"Add Task",onClick:i[0]||(i[0]=c=>r("create"))})])]),_:1})):(v(),F("div",Ye,[(v(!0),F(ae,null,le(e.tasks,c=>(v(),B(_,{key:c.id,task:c,onToggle:i[1]||(i[1]=a=>r("toggle",a)),onEdit:i[2]||(i[2]=a=>r("edit",a)),onDelete:i[3]||(i[3]=a=>r("delete",a)),onView:i[4]||(i[4]=a=>r("view",a))},null,8,["task"]))),128))]))])}}}),et=Object.assign(Ze,{__name:"TasksTaskList"}),te="__none__",tt=Q({__name:"ProjectSelect",props:{modelValue:{},projects:{}},emits:["update:modelValue"],setup(e,{emit:w}){const r=e,h=w,i=U({get:()=>r.modelValue||te,set:u=>h("update:modelValue",u===te?null:u)}),C=U(()=>[{value:te,label:"No Project"},...r.projects.filter(u=>!u.deletedAt).map(u=>({value:u.id,label:u.name}))]);return(u,g)=>{const _=ne;return v(),B(_,{modelValue:s(i),"onUpdate:modelValue":g[0]||(g[0]=c=>z(i)?i.value=c:null),items:s(C),"value-key":"value",class:"w-full"},null,8,["modelValue","items"])}}}),ot=Object.assign(tt,{__name:"TasksProjectSelect"}),st={class:"task-form-body"},at={class:"task-form-description"},lt={class:"task-form-fields"},nt={class:"grid grid-cols-2 gap-4"},it={class:"flex justify-end gap-2 w-full"},rt=Q({__name:"TaskForm",props:{open:{type:Boolean},task:{},projects:{}},emits:["update:open","submit"],setup(e,{emit:w}){const r=e,h=w,i=U(()=>!!r.task?.id),C=U(()=>i.value?"Edit Task":"Create Task"),u=b(""),g=b(""),_=b("todo"),c=b(2),a=b(null),p=b(""),$=b([]),I=[{value:"todo",label:"Todo"},{value:"in_progress",label:"In Progress"},{value:"done",label:"Done"},{value:"blocked",label:"Blocked"}],A=[{value:1,label:"Low"},{value:2,label:"Medium"},{value:3,label:"High"}],o=[[{kind:"mark",mark:"bold",icon:"i-lucide-bold"},{kind:"mark",mark:"italic",icon:"i-lucide-italic"},{kind:"mark",mark:"code",icon:"i-lucide-code"}],[{kind:"bulletList",icon:"i-lucide-list"},{kind:"orderedList",icon:"i-lucide-list-ordered"}],[{kind:"link",icon:"i-lucide-link"}]],t=U(()=>g.value||void 0);q(()=>r.task,x=>{x?(u.value=x.title,g.value=x.description||"",_.value=x.status,c.value=x.priority,a.value=x.projectId||null,p.value=x.dueDate&&new Date(x.dueDate).toISOString().split("T")[0]||"",$.value=x.tags||[]):n()},{immediate:!0}),q(()=>r.open,x=>{x||n()});function n(){u.value="",g.value="",_.value="todo",c.value=2,a.value=null,p.value="",$.value=[]}function T(){h("update:open",!1)}function V(){if(!u.value.trim())return;const x={title:u.value.trim(),description:g.value.trim()||void 0,status:_.value,priority:c.value,projectId:a.value,dueDate:p.value||void 0,tags:$.value};h("submit",x),T()}return(x,y)=>{const K=de,M=Ae,G=ze,X=Be,O=ne,N=ot,H=Le,R=J,Y=Oe;return v(),B(Y,{open:e.open,title:s(C),"onUpdate:open":y[7]||(y[7]=D=>h("update:open",D))},{body:m(()=>[k("div",st,[l(M,{label:"Title",required:""},{default:m(()=>[l(K,{modelValue:s(u),"onUpdate:modelValue":y[0]||(y[0]=D=>z(u)?u.value=D:null),placeholder:"Task title...",autofocus:"",class:"w-full"},null,8,["modelValue"])]),_:1}),k("div",at,[y[8]||(y[8]=k("label",{class:"block text-sm font-medium text-default mb-1.5"},"Description",-1)),l(X,{"model-value":s(t),"content-type":"markdown",placeholder:"Add a description...",class:"task-editor","onUpdate:modelValue":y[1]||(y[1]=D=>g.value=D)},{default:m(({editor:D})=>[l(G,{editor:D,items:o,class:"border-b border-default"},null,8,["editor"])]),_:1},8,["model-value"])]),k("div",lt,[k("div",nt,[l(M,{label:"Status"},{default:m(()=>[l(O,{modelValue:s(_),"onUpdate:modelValue":y[2]||(y[2]=D=>z(_)?_.value=D:null),items:I,"value-key":"value",class:"w-full"},null,8,["modelValue"])]),_:1}),l(M,{label:"Priority"},{default:m(()=>[l(O,{modelValue:s(c),"onUpdate:modelValue":y[3]||(y[3]=D=>z(c)?c.value=D:null),items:A,"value-key":"value",class:"w-full"},null,8,["modelValue"])]),_:1})]),l(M,{label:"Project"},{default:m(()=>[l(N,{modelValue:s(a),"onUpdate:modelValue":y[4]||(y[4]=D=>z(a)?a.value=D:null),projects:e.projects,class:"w-full"},null,8,["modelValue","projects"])]),_:1}),l(M,{label:"Due Date"},{default:m(()=>[l(K,{modelValue:s(p),"onUpdate:modelValue":y[5]||(y[5]=D=>z(p)?p.value=D:null),type:"date",class:"w-full"},null,8,["modelValue"])]),_:1}),l(M,{label:"Tags"},{default:m(()=>[l(H,{modelValue:s($),"onUpdate:modelValue":y[6]||(y[6]=D=>z($)?$.value=D:null),placeholder:"Add tags...",class:"w-full"},null,8,["modelValue"])]),_:1})])])]),footer:m(()=>[k("div",it,[l(R,{color:"neutral",variant:"ghost",onClick:T},{default:m(()=>[...y[9]||(y[9]=[S(" Cancel ",-1)])]),_:1}),l(R,{disabled:!s(u).trim(),onClick:V},{default:m(()=>[S(j(s(i)?"Save Changes":"Create Task"),1)]),_:1},8,["disabled"])])]),_:1},8,["open","title"])}}}),ct=Object.assign(rt,{__name:"TasksTaskForm"}),ut={class:"flex items-start justify-between gap-4"},dt={class:"text-lg font-semibold"},mt={class:"space-y-4"},pt={class:"flex flex-wrap items-center gap-3 text-sm"},ft={key:0,class:"flex items-center gap-1.5"},kt={class:"text-dimmed"},vt={class:"flex items-center gap-1.5"},_t={key:1,class:"flex items-center gap-1.5"},gt={class:"text-dimmed"},yt={key:0,class:"flex flex-wrap gap-1.5"},bt={key:1,class:"pt-2 border-t border-default"},ht={class:"prose prose-sm dark:prose-invert max-w-none"},wt={class:"pt-2 border-t border-default text-xs text-dimmed space-y-1"},Tt={key:0},xt={key:0},jt={class:"flex justify-between"},$t={class:"flex gap-2"},Dt=Q({__name:"TaskDetail",props:{task:{}},emits:["edit","close","toggle"],setup(e,{emit:w}){const r=e,h=w,i={1:{label:"Low",color:"neutral"},2:{label:"Medium",color:"warning"},3:{label:"High",color:"error"}},C={todo:{label:"Todo",color:"neutral"},in_progress:{label:"In Progress",color:"info"},done:{label:"Done",color:"success"},blocked:{label:"Blocked",color:"error"}},u=U(()=>i[r.task.priority]||i[2]),g=U(()=>C[r.task.status]),_=U(()=>r.task.status==="done");function c(a){return a?new Date(a).toLocaleDateString("en-US",{weekday:"short",month:"short",day:"numeric",year:"numeric"}):null}return(a,p)=>{const $=oe,I=se,A=Me,o=J,t=me;return v(),B(t,null,{header:m(()=>[k("div",ut,[k("h3",dt,j(e.task.title),1),l($,{color:s(g).color,variant:"subtle"},{default:m(()=>[S(j(s(g).label),1)]),_:1},8,["color"])])]),footer:m(()=>[k("div",jt,[l(o,{icon:s(_)?"i-lucide-rotate-ccw":"i-lucide-check",color:s(_)?"neutral":"success",variant:s(_)?"ghost":"soft",onClick:p[0]||(p[0]=n=>h("toggle"))},{default:m(()=>[S(j(s(_)?"Mark Incomplete":"Mark Complete"),1)]),_:1},8,["icon","color","variant"]),k("div",$t,[l(o,{color:"neutral",variant:"ghost",onClick:p[1]||(p[1]=n=>h("close"))},{default:m(()=>[...p[3]||(p[3]=[S(" Close ",-1)])]),_:1}),l(o,{icon:"i-lucide-pencil",onClick:p[2]||(p[2]=n=>h("edit"))},{default:m(()=>[...p[4]||(p[4]=[S(" Edit ",-1)])]),_:1})])])]),default:m(()=>[k("div",mt,[k("div",pt,[e.task.project?(v(),F("div",ft,[k("span",{class:"size-2.5 rounded-full",style:ue({backgroundColor:e.task.project.color})},null,4),k("span",kt,j(e.task.project.name),1)])):E("",!0),k("div",vt,[l(I,{name:"i-lucide-flag",class:"size-4 text-dimmed"}),l($,{color:s(u).color,variant:"subtle",size:"xs"},{default:m(()=>[S(j(s(u).label),1)]),_:1},8,["color"])]),e.task.dueDate?(v(),F("div",_t,[l(I,{name:"i-lucide-calendar",class:"size-4 text-dimmed"}),k("span",gt,j(c(e.task.dueDate)),1)])):E("",!0)]),e.task.tags&&e.task.tags.length>0?(v(),F("div",yt,[(v(!0),F(ae,null,le(e.task.tags,n=>(v(),B($,{key:n,variant:"subtle",color:"neutral",size:"sm"},{default:m(()=>[S(j(n),1)]),_:2},1024))),128))])):E("",!0),e.task.description?(v(),F("div",bt,[k("div",ht,[l(A,{value:e.task.description},null,8,["value"])])])):E("",!0),k("div",wt,[k("p",null,[S(" Created: "+j(c(e.task.createdAt))+" ",1),e.task.creator?(v(),F("span",Tt," by "+j(e.task.creator.name),1)):E("",!0)]),e.task.completedAt?(v(),F("p",xt," Completed: "+j(c(e.task.completedAt)),1)):E("",!0)])])]),_:1})}}}),Ct=Object.assign(Dt,{__name:"TasksTaskDetail"});function Ut(){const e=b([]),w=b(!1),r=b(null),h=b([]),i=De({status:void 0,projectId:void 0,search:void 0,includeDeleted:!1});async function C(o){w.value=!0,r.value=null;const t=o||i;try{const n={};t.status&&(Array.isArray(t.status)?t.status.forEach(V=>n.status=V):n.status=t.status),t.projectId&&(n.projectId=t.projectId),t.search&&(n.search=t.search),t.includeDeleted&&(n.includeDeleted="true");const T=await $fetch("/api/tasks",{query:n});return e.value=T.data,T.data}catch(n){throw r.value="Failed to load tasks",console.error("Failed to load tasks:",n),n}finally{w.value=!1}}async function u(){try{const o=await $fetch("/api/tasks/tags");return h.value=o.data,o.data}catch(o){throw console.error("Failed to fetch tags:",o),o}}async function g(o){try{return(await $fetch(`/api/tasks/${o}`)).data}catch(t){throw console.error("Failed to get task:",t),t}}async function _(o){try{const t=await $fetch("/api/tasks",{method:"POST",body:o});return e.value=[t.data,...e.value],t.data}catch(t){throw console.error("Failed to create task:",t),t}}async function c(o,t){try{const n=await $fetch(`/api/tasks/${o}`,{method:"PUT",body:t}),T=e.value.findIndex(V=>V.id===o);return T!==-1&&(e.value[T]=n.data),n.data}catch(n){throw console.error("Failed to update task:",n),n}}async function a(o){try{const t=await $fetch(`/api/tasks/${o}`,{method:"DELETE"});return e.value=e.value.filter(n=>n.id!==o),t.data}catch(t){throw console.error("Failed to delete task:",t),t}}async function p(o){try{const t=await $fetch(`/api/tasks/${o}/restore`,{method:"POST"});return await C(),t.data}catch(t){throw console.error("Failed to restore task:",t),t}}async function $(o){const t=e.value.find(T=>T.id===o);if(!t)return;const n=t.status==="done"?"todo":"done";return c(o,{status:n})}const I=U(()=>{let o=[...e.value];if(i.status){const t=Array.isArray(i.status)?i.status:[i.status];o=o.filter(n=>t.includes(n.status))}if(i.projectId&&(o=o.filter(t=>t.projectId===i.projectId)),i.search){const t=i.search.toLowerCase();o=o.filter(n=>n.title.toLowerCase().includes(t)||n.description?.toLowerCase().includes(t))}return i.includeDeleted||(o=o.filter(t=>!t.deletedAt)),o}),A=U(()=>{const o={todo:0,in_progress:0,done:0,blocked:0,total:0};return e.value.forEach(t=>{t.deletedAt||(o[t.status]++,o.total++)}),o});return{tasks:e,filteredTasks:I,loading:w,error:r,tags:h,filters:i,taskCounts:A,fetchTasks:C,fetchTags:u,getTask:g,createTask:_,updateTask:c,deleteTask:a,restoreTask:p,toggleComplete:$}}function Vt(){const e=b([]),w=b(!1),r=b(null);async function h(c=!1){w.value=!0,r.value=null;try{const a=await $fetch("/api/projects",{query:{includeDeleted:c.toString()}});return e.value=a.data,a.data}catch(a){throw r.value="Failed to load projects",console.error("Failed to load projects:",a),a}finally{w.value=!1}}async function i(c){try{return(await $fetch(`/api/projects/${c}`)).data}catch(a){throw console.error("Failed to get project:",a),a}}async function C(c){try{const a=await $fetch("/api/projects",{method:"POST",body:c});return e.value=[...e.value,a.data],a.data}catch(a){throw console.error("Failed to create project:",a),a}}async function u(c,a){try{const p=await $fetch(`/api/projects/${c}`,{method:"PUT",body:a}),$=e.value.findIndex(I=>I.id===c);return $!==-1&&(e.value[$]=p.data),p.data}catch(p){throw console.error("Failed to update project:",p),p}}async function g(c){try{const a=await $fetch(`/api/projects/${c}`,{method:"DELETE"});return e.value=e.value.filter(p=>p.id!==c),a.data}catch(a){throw console.error("Failed to delete project:",a),a}}function _(c){if(c)return e.value.find(a=>a.id===c)}return{projects:e,loading:w,error:r,fetchProjects:h,getProject:i,createProject:C,updateProject:u,deleteProject:g,getProjectById:_}}const Ft={class:"contents"},St={class:"flex items-center gap-2 text-sm"},L="__all__",wo=Q({__name:"tasks",setup(e){const w=Ce(),r=Ue(),{filteredTasks:h,tasks:i,loading:C,filters:u,taskCounts:g,fetchTasks:_,createTask:c,updateTask:a,deleteTask:p,toggleComplete:$}=Ut(),{projects:I,fetchProjects:A}=Vt(),o=b(!1),t=b(null),n=b(!1),T=b(null),V=b(!1),x=b(null),y=b(!1),K=[{value:L,label:"All Status"},{value:"todo",label:"Todo"},{value:"in_progress",label:"In Progress"},{value:"done",label:"Done"},{value:"blocked",label:"Blocked"}],M=U(()=>[{value:L,label:"All Projects"},...I.value.filter(d=>!d.deletedAt).map(d=>({value:d.id,label:d.name}))]),{taskStatusFilter:G,taskProjectFilter:X}=He(),O=b(G.value==="all"?L:G.value),N=b(X.value||L),H=b("");q(O,d=>{u.status=d===L?void 0:d,G.value=d===L?"all":d}),q(N,d=>{u.projectId=d===L?void 0:d,X.value=d===L?null:d}),q(H,d=>{u.search=d||void 0}),O.value!==L&&(u.status=O.value),N.value!==L&&(u.projectId=N.value);function R(){t.value=null,o.value=!0}function Y(d){t.value=d,o.value=!0}function D(d){T.value=d,n.value=!0}async function pe(d){try{t.value?(await a(t.value.id,d),r.add({title:"Task updated",color:"success",icon:"i-lucide-check"})):(await c(d),r.add({title:"Task created",color:"success",icon:"i-lucide-check"})),t.value=null}catch(f){r.add({title:"Failed to save task",description:f instanceof Error?f.message:"An unexpected error occurred",color:"error",icon:"i-lucide-alert-circle"})}}function fe(d){x.value=d,V.value=!0}async function ke(){if(x.value){y.value=!0;try{await p(x.value),r.add({title:"Task deleted",color:"success",icon:"i-lucide-trash"}),V.value=!1,x.value=null}catch(d){r.add({title:"Failed to delete task",description:d instanceof Error?d.message:"An unexpected error occurred",color:"error",icon:"i-lucide-alert-circle"})}finally{y.value=!1}}}async function ie(d){try{await $(d)}catch(f){r.add({title:"Failed to update task",description:f instanceof Error?f.message:"An unexpected error occurred",color:"error",icon:"i-lucide-alert-circle"})}}return q([()=>w.query.selected,i],([d,f])=>{if(d&&f.length>0){const W=f.find(ee=>ee.id===d);W&&(T.value=W,n.value=!0,ce("/tasks",{replace:!0}))}},{immediate:!0}),q(()=>w.query.action,d=>{d==="new"&&(R(),ce("/tasks",{replace:!0}))},{immediate:!0}),Ve(async()=>{await Promise.all([_(),A()])}),(d,f)=>{const W=oe,ee=J,ve=Fe,_e=Ie,re=ne,ge=de,ye=Pe,be=et,he=Se,we=ct,Te=Ct,xe=Ne,je=qe;return v(),F("div",Ft,[l(he,{id:"tasks",grow:""},{header:m(()=>[l(_e,{title:"Tasks"},{left:m(()=>[k("div",St,[l(W,{color:"neutral",variant:"subtle"},{default:m(()=>[S(j(s(g).total)+" total ",1)]),_:1}),s(g).done>0?(v(),B(W,{key:0,color:"success",variant:"subtle"},{default:m(()=>[S(j(s(g).done)+" done ",1)]),_:1})):E("",!0)])]),right:m(()=>[l(ee,{icon:"i-lucide-plus",label:"Add Task",onClick:R}),l(ve)]),_:1}),l(ye,null,{left:m(()=>[l(re,{modelValue:s(O),"onUpdate:modelValue":f[0]||(f[0]=P=>z(O)?O.value=P:null),items:K,"value-key":"value",class:"w-36"},null,8,["modelValue"]),l(re,{modelValue:s(N),"onUpdate:modelValue":f[1]||(f[1]=P=>z(N)?N.value=P:null),items:s(M),"value-key":"value",class:"w-40"},null,8,["modelValue","items"])]),right:m(()=>[l(ge,{modelValue:s(H),"onUpdate:modelValue":f[2]||(f[2]=P=>z(H)?H.value=P:null),placeholder:"Search tasks...",icon:"i-lucide-search",class:"w-64"},null,8,["modelValue"])]),_:1})]),body:m(()=>[l(be,{tasks:s(h),loading:s(C),onToggle:ie,onEdit:Y,onDelete:fe,onCreate:R,onView:D},null,8,["tasks","loading"])]),_:1}),l(we,{open:s(o),"onUpdate:open":f[3]||(f[3]=P=>z(o)?o.value=P:null),task:s(t),projects:s(I),onSubmit:pe},null,8,["open","task","projects"]),l(xe,{open:s(n),"onUpdate:open":f[7]||(f[7]=P=>z(n)?n.value=P:null),title:s(T)?.title},{content:m(()=>[s(T)?(v(),B(Te,{key:0,task:s(T),onEdit:f[4]||(f[4]=P=>{Y(s(T)),n.value=!1}),onClose:f[5]||(f[5]=P=>n.value=!1),onToggle:f[6]||(f[6]=P=>{ie(s(T).id),n.value=!1})},null,8,["task"])):E("",!0)]),_:1},8,["open","title"]),l(je,{open:s(V),"onUpdate:open":f[8]||(f[8]=P=>z(V)?V.value=P:null),title:"Delete Task",description:"Are you sure you want to delete this task? This action cannot be undone.","confirm-label":"Delete","confirm-color":"error",icon:"i-lucide-trash-2",loading:s(y),onConfirm:ke,onCancel:f[9]||(f[9]=P=>x.value=null)},null,8,["open","loading"])])}}});export{wo as default};
|
|
1
|
+
import{_ as oe}from"./yJ9vRvHj.js";import{a as Q,c as U,G as F,R as v,ab as k,T as l,U as Z,C as s,_ as se,ak as $e,Q as B,a9 as E,ae as j,S as m,aa as S,aV as ue,ai as ae,aj as le,W as J,al as z,e as b,f as q,ah as De,bg as Ce,ag as Ue,q as Ve,n as ce}from"./njnzCNrH.js";import{_ as Fe}from"./BLm0UviR.js";import{_ as Se,a as Ie}from"./B0xuHXvN.js";import{_ as ne}from"./DmDPSvxi.js";import{_ as de}from"./SfaNtyKS.js";import{_ as Pe}from"./CqFcWBkW.js";import{_ as me}from"./zO9MgHj2.js";import{_ as Ee}from"./DMb_1D81.js";import{_ as Ae}from"./D-5A6cMB.js";import{_ as ze,a as Be}from"./D79lbuWG.js";import{_ as Le}from"./CfY_bsV0.js";import{_ as Oe}from"./CO3hceDE.js";import{_ as Me}from"./C24so3m7.js";import{_ as Ne}from"./GYf-vnR6.js";import{_ as qe}from"./DZEuR9ms.js";import{u as He}from"./2QHXgMyi.js";import"./C-Ygk9x5.js";import"./BHn8tRjg.js";import"./vES4kgx7.js";import"./ImPsUDiH.js";import"./iBaivqi8.js";import"./D9aYkNhQ.js";import"./DLUvsixu.js";import"./CrmE-JGu.js";import"./BCCYopTB.js";import"./B9zgEO8N.js";import"./BIo-9u_O.js";import"./CXTrUfQ5.js";import"./C6Y-ieo6.js";import"./Bwn-CRYH.js";import"./BjnQ1pI1.js";import"./Pn7VD6uQ.js";import"./Cve4psva.js";import"./Vcq4gwWv.js";import"./dB7G4iIC.js";import"./BZBNJD7U.js";import"./BYtVdUIW.js";import"./88opOQSr.js";import"./iik6CYzq.js";import"./Buf1PAiO.js";import"./B5SnZL2l.js";const Re={class:"flex items-center gap-2"},Qe={class:"flex items-center flex-wrap gap-2 mt-2"},Ge={key:4,class:"text-xs text-dimmed"},We=Q({__name:"TaskCard",props:{task:{}},emits:["toggle","edit","delete","view"],setup(e,{emit:w}){const r=e,h=w,i={1:{label:"Low",color:"neutral",icon:"i-lucide-arrow-down"},2:{label:"Medium",color:"warning",icon:"i-lucide-minus"},3:{label:"High",color:"error",icon:"i-lucide-arrow-up"}},C={todo:{label:"Todo",color:"neutral",icon:"i-lucide-circle"},in_progress:{label:"In Progress",color:"info",icon:"i-lucide-clock"},done:{label:"Done",color:"success",icon:"i-lucide-check-circle"},blocked:{label:"Blocked",color:"error",icon:"i-lucide-alert-circle"}},u=U(()=>i[r.task.priority]||i[2]),g=U(()=>C[r.task.status]),_=U(()=>r.task.status==="done"),c=U(()=>!!r.task.description?.trim()),a=U(()=>!r.task.dueDate||_.value?!1:new Date(r.task.dueDate)<new Date);function p(I){return I?new Date(I).toLocaleDateString("en-US",{month:"short",day:"numeric"}):null}const $=U(()=>[[{label:"Edit",icon:"i-lucide-pencil",onSelect:()=>h("edit",r.task)},{label:"Delete",icon:"i-lucide-trash-2",color:"error",onSelect:()=>h("delete",r.task.id)}]]);return(I,A)=>{const o=se,t=oe,n=J,T=Ee;return v(),F("div",{class:Z(["group flex items-start gap-3 p-3 rounded-lg border border-default hover:bg-elevated transition-colors",{"opacity-60":s(_)}])},[k("button",{class:"mt-0.5 shrink-0",onClick:A[0]||(A[0]=$e(V=>h("toggle",e.task.id),["stop"]))},[l(o,{name:s(_)?"i-lucide-check-circle-2":"i-lucide-circle",class:Z(["size-5",s(_)?"text-success":"text-dimmed hover:text-default"])},null,8,["name","class"])]),k("button",{class:"flex-1 min-w-0 text-left",onClick:A[1]||(A[1]=V=>h("view",e.task))},[k("div",Re,[k("span",{class:Z(["font-medium",{"line-through text-dimmed":s(_)}])},j(e.task.title),3),s(c)?(v(),B(o,{key:0,name:"i-lucide-file-text",class:"size-3.5 text-dimmed shrink-0"})):E("",!0)]),k("div",Qe,[e.task.project?(v(),B(t,{key:0,variant:"subtle",color:"neutral",size:"xs"},{default:m(()=>[k("span",{class:"size-2 rounded-full mr-1",style:ue({backgroundColor:e.task.project.color})},null,4),S(" "+j(e.task.project.name),1)]),_:1})):E("",!0),e.task.priority!==2?(v(),B(t,{key:1,color:s(u).color,variant:"subtle",size:"xs"},{default:m(()=>[l(o,{name:s(u).icon,class:"size-3 mr-1"},null,8,["name"]),S(" "+j(s(u).label),1)]),_:1},8,["color"])):E("",!0),e.task.status==="in_progress"||e.task.status==="blocked"?(v(),B(t,{key:2,color:s(g).color,variant:"subtle",size:"xs"},{default:m(()=>[l(o,{name:s(g).icon,class:"size-3 mr-1"},null,8,["name"]),S(" "+j(s(g).label),1)]),_:1},8,["color"])):E("",!0),e.task.dueDate?(v(),F("span",{key:3,class:Z(["text-xs flex items-center gap-1",s(a)?"text-error":"text-dimmed"])},[l(o,{name:"i-lucide-calendar",class:"size-3"}),S(" "+j(p(e.task.dueDate)),1)],2)):E("",!0),(v(!0),F(ae,null,le(e.task.tags?.slice(0,3),V=>(v(),B(t,{key:V,variant:"subtle",color:"neutral",size:"xs"},{default:m(()=>[S(j(V),1)]),_:2},1024))),128)),e.task.tags&&e.task.tags.length>3?(v(),F("span",Ge," +"+j(e.task.tags.length-3),1)):E("",!0)])]),l(T,{items:s($)},{default:m(()=>[l(n,{icon:"i-lucide-more-vertical",color:"neutral",variant:"ghost",size:"xs",class:"opacity-0 group-hover:opacity-100 transition-opacity"})]),_:1},8,["items"])],2)}}}),Je=Object.assign(We,{__name:"TasksTaskCard"}),Ke={key:0,class:"flex items-center justify-center py-12"},Xe={class:"text-center py-8 text-dimmed"},Ye={key:2,class:"space-y-2"},Ze=Q({__name:"TaskList",props:{tasks:{},loading:{type:Boolean}},emits:["toggle","edit","delete","create","view"],setup(e,{emit:w}){const r=w;return(h,i)=>{const C=se,u=J,g=me,_=Je;return v(),F("div",null,[e.loading?(v(),F("div",Ke,[l(C,{name:"i-lucide-loader-2",class:"size-8 animate-spin text-dimmed"})])):e.tasks.length===0?(v(),B(g,{key:1},{default:m(()=>[k("div",Xe,[l(C,{name:"i-lucide-check-square",class:"size-12 mx-auto mb-2 opacity-50"}),i[5]||(i[5]=k("p",{class:"font-medium"}," No tasks yet ",-1)),i[6]||(i[6]=k("p",{class:"text-sm mt-1"}," Create your first task to get started. ",-1)),l(u,{class:"mt-4",icon:"i-lucide-plus",label:"Add Task",onClick:i[0]||(i[0]=c=>r("create"))})])]),_:1})):(v(),F("div",Ye,[(v(!0),F(ae,null,le(e.tasks,c=>(v(),B(_,{key:c.id,task:c,onToggle:i[1]||(i[1]=a=>r("toggle",a)),onEdit:i[2]||(i[2]=a=>r("edit",a)),onDelete:i[3]||(i[3]=a=>r("delete",a)),onView:i[4]||(i[4]=a=>r("view",a))},null,8,["task"]))),128))]))])}}}),et=Object.assign(Ze,{__name:"TasksTaskList"}),te="__none__",tt=Q({__name:"ProjectSelect",props:{modelValue:{},projects:{}},emits:["update:modelValue"],setup(e,{emit:w}){const r=e,h=w,i=U({get:()=>r.modelValue||te,set:u=>h("update:modelValue",u===te?null:u)}),C=U(()=>[{value:te,label:"No Project"},...r.projects.filter(u=>!u.deletedAt).map(u=>({value:u.id,label:u.name}))]);return(u,g)=>{const _=ne;return v(),B(_,{modelValue:s(i),"onUpdate:modelValue":g[0]||(g[0]=c=>z(i)?i.value=c:null),items:s(C),"value-key":"value",class:"w-full"},null,8,["modelValue","items"])}}}),ot=Object.assign(tt,{__name:"TasksProjectSelect"}),st={class:"task-form-body"},at={class:"task-form-description"},lt={class:"task-form-fields"},nt={class:"grid grid-cols-2 gap-4"},it={class:"flex justify-end gap-2 w-full"},rt=Q({__name:"TaskForm",props:{open:{type:Boolean},task:{},projects:{}},emits:["update:open","submit"],setup(e,{emit:w}){const r=e,h=w,i=U(()=>!!r.task?.id),C=U(()=>i.value?"Edit Task":"Create Task"),u=b(""),g=b(""),_=b("todo"),c=b(2),a=b(null),p=b(""),$=b([]),I=[{value:"todo",label:"Todo"},{value:"in_progress",label:"In Progress"},{value:"done",label:"Done"},{value:"blocked",label:"Blocked"}],A=[{value:1,label:"Low"},{value:2,label:"Medium"},{value:3,label:"High"}],o=[[{kind:"mark",mark:"bold",icon:"i-lucide-bold"},{kind:"mark",mark:"italic",icon:"i-lucide-italic"},{kind:"mark",mark:"code",icon:"i-lucide-code"}],[{kind:"bulletList",icon:"i-lucide-list"},{kind:"orderedList",icon:"i-lucide-list-ordered"}],[{kind:"link",icon:"i-lucide-link"}]],t=U(()=>g.value||void 0);q(()=>r.task,x=>{x?(u.value=x.title,g.value=x.description||"",_.value=x.status,c.value=x.priority,a.value=x.projectId||null,p.value=x.dueDate&&new Date(x.dueDate).toISOString().split("T")[0]||"",$.value=x.tags||[]):n()},{immediate:!0}),q(()=>r.open,x=>{x||n()});function n(){u.value="",g.value="",_.value="todo",c.value=2,a.value=null,p.value="",$.value=[]}function T(){h("update:open",!1)}function V(){if(!u.value.trim())return;const x={title:u.value.trim(),description:g.value.trim()||void 0,status:_.value,priority:c.value,projectId:a.value,dueDate:p.value||void 0,tags:$.value};h("submit",x),T()}return(x,y)=>{const K=de,M=Ae,G=ze,X=Be,O=ne,N=ot,H=Le,R=J,Y=Oe;return v(),B(Y,{open:e.open,title:s(C),"onUpdate:open":y[7]||(y[7]=D=>h("update:open",D))},{body:m(()=>[k("div",st,[l(M,{label:"Title",required:""},{default:m(()=>[l(K,{modelValue:s(u),"onUpdate:modelValue":y[0]||(y[0]=D=>z(u)?u.value=D:null),placeholder:"Task title...",autofocus:"",class:"w-full"},null,8,["modelValue"])]),_:1}),k("div",at,[y[8]||(y[8]=k("label",{class:"block text-sm font-medium text-default mb-1.5"},"Description",-1)),l(X,{"model-value":s(t),"content-type":"markdown",placeholder:"Add a description...",class:"task-editor","onUpdate:modelValue":y[1]||(y[1]=D=>g.value=D)},{default:m(({editor:D})=>[l(G,{editor:D,items:o,class:"border-b border-default"},null,8,["editor"])]),_:1},8,["model-value"])]),k("div",lt,[k("div",nt,[l(M,{label:"Status"},{default:m(()=>[l(O,{modelValue:s(_),"onUpdate:modelValue":y[2]||(y[2]=D=>z(_)?_.value=D:null),items:I,"value-key":"value",class:"w-full"},null,8,["modelValue"])]),_:1}),l(M,{label:"Priority"},{default:m(()=>[l(O,{modelValue:s(c),"onUpdate:modelValue":y[3]||(y[3]=D=>z(c)?c.value=D:null),items:A,"value-key":"value",class:"w-full"},null,8,["modelValue"])]),_:1})]),l(M,{label:"Project"},{default:m(()=>[l(N,{modelValue:s(a),"onUpdate:modelValue":y[4]||(y[4]=D=>z(a)?a.value=D:null),projects:e.projects,class:"w-full"},null,8,["modelValue","projects"])]),_:1}),l(M,{label:"Due Date"},{default:m(()=>[l(K,{modelValue:s(p),"onUpdate:modelValue":y[5]||(y[5]=D=>z(p)?p.value=D:null),type:"date",class:"w-full"},null,8,["modelValue"])]),_:1}),l(M,{label:"Tags"},{default:m(()=>[l(H,{modelValue:s($),"onUpdate:modelValue":y[6]||(y[6]=D=>z($)?$.value=D:null),placeholder:"Add tags...",class:"w-full"},null,8,["modelValue"])]),_:1})])])]),footer:m(()=>[k("div",it,[l(R,{color:"neutral",variant:"ghost",onClick:T},{default:m(()=>[...y[9]||(y[9]=[S(" Cancel ",-1)])]),_:1}),l(R,{disabled:!s(u).trim(),onClick:V},{default:m(()=>[S(j(s(i)?"Save Changes":"Create Task"),1)]),_:1},8,["disabled"])])]),_:1},8,["open","title"])}}}),ct=Object.assign(rt,{__name:"TasksTaskForm"}),ut={class:"flex items-start justify-between gap-4"},dt={class:"text-lg font-semibold"},mt={class:"space-y-4"},pt={class:"flex flex-wrap items-center gap-3 text-sm"},ft={key:0,class:"flex items-center gap-1.5"},kt={class:"text-dimmed"},vt={class:"flex items-center gap-1.5"},_t={key:1,class:"flex items-center gap-1.5"},gt={class:"text-dimmed"},yt={key:0,class:"flex flex-wrap gap-1.5"},bt={key:1,class:"pt-2 border-t border-default"},ht={class:"prose prose-sm dark:prose-invert max-w-none"},wt={class:"pt-2 border-t border-default text-xs text-dimmed space-y-1"},Tt={key:0},xt={key:0},jt={class:"flex justify-between"},$t={class:"flex gap-2"},Dt=Q({__name:"TaskDetail",props:{task:{}},emits:["edit","close","toggle"],setup(e,{emit:w}){const r=e,h=w,i={1:{label:"Low",color:"neutral"},2:{label:"Medium",color:"warning"},3:{label:"High",color:"error"}},C={todo:{label:"Todo",color:"neutral"},in_progress:{label:"In Progress",color:"info"},done:{label:"Done",color:"success"},blocked:{label:"Blocked",color:"error"}},u=U(()=>i[r.task.priority]||i[2]),g=U(()=>C[r.task.status]),_=U(()=>r.task.status==="done");function c(a){return a?new Date(a).toLocaleDateString("en-US",{weekday:"short",month:"short",day:"numeric",year:"numeric"}):null}return(a,p)=>{const $=oe,I=se,A=Me,o=J,t=me;return v(),B(t,null,{header:m(()=>[k("div",ut,[k("h3",dt,j(e.task.title),1),l($,{color:s(g).color,variant:"subtle"},{default:m(()=>[S(j(s(g).label),1)]),_:1},8,["color"])])]),footer:m(()=>[k("div",jt,[l(o,{icon:s(_)?"i-lucide-rotate-ccw":"i-lucide-check",color:s(_)?"neutral":"success",variant:s(_)?"ghost":"soft",onClick:p[0]||(p[0]=n=>h("toggle"))},{default:m(()=>[S(j(s(_)?"Mark Incomplete":"Mark Complete"),1)]),_:1},8,["icon","color","variant"]),k("div",$t,[l(o,{color:"neutral",variant:"ghost",onClick:p[1]||(p[1]=n=>h("close"))},{default:m(()=>[...p[3]||(p[3]=[S(" Close ",-1)])]),_:1}),l(o,{icon:"i-lucide-pencil",onClick:p[2]||(p[2]=n=>h("edit"))},{default:m(()=>[...p[4]||(p[4]=[S(" Edit ",-1)])]),_:1})])])]),default:m(()=>[k("div",mt,[k("div",pt,[e.task.project?(v(),F("div",ft,[k("span",{class:"size-2.5 rounded-full",style:ue({backgroundColor:e.task.project.color})},null,4),k("span",kt,j(e.task.project.name),1)])):E("",!0),k("div",vt,[l(I,{name:"i-lucide-flag",class:"size-4 text-dimmed"}),l($,{color:s(u).color,variant:"subtle",size:"xs"},{default:m(()=>[S(j(s(u).label),1)]),_:1},8,["color"])]),e.task.dueDate?(v(),F("div",_t,[l(I,{name:"i-lucide-calendar",class:"size-4 text-dimmed"}),k("span",gt,j(c(e.task.dueDate)),1)])):E("",!0)]),e.task.tags&&e.task.tags.length>0?(v(),F("div",yt,[(v(!0),F(ae,null,le(e.task.tags,n=>(v(),B($,{key:n,variant:"subtle",color:"neutral",size:"sm"},{default:m(()=>[S(j(n),1)]),_:2},1024))),128))])):E("",!0),e.task.description?(v(),F("div",bt,[k("div",ht,[l(A,{value:e.task.description},null,8,["value"])])])):E("",!0),k("div",wt,[k("p",null,[S(" Created: "+j(c(e.task.createdAt))+" ",1),e.task.creator?(v(),F("span",Tt," by "+j(e.task.creator.name),1)):E("",!0)]),e.task.completedAt?(v(),F("p",xt," Completed: "+j(c(e.task.completedAt)),1)):E("",!0)])])]),_:1})}}}),Ct=Object.assign(Dt,{__name:"TasksTaskDetail"});function Ut(){const e=b([]),w=b(!1),r=b(null),h=b([]),i=De({status:void 0,projectId:void 0,search:void 0,includeDeleted:!1});async function C(o){w.value=!0,r.value=null;const t=o||i;try{const n={};t.status&&(Array.isArray(t.status)?t.status.forEach(V=>n.status=V):n.status=t.status),t.projectId&&(n.projectId=t.projectId),t.search&&(n.search=t.search),t.includeDeleted&&(n.includeDeleted="true");const T=await $fetch("/api/tasks",{query:n});return e.value=T.data,T.data}catch(n){throw r.value="Failed to load tasks",console.error("Failed to load tasks:",n),n}finally{w.value=!1}}async function u(){try{const o=await $fetch("/api/tasks/tags");return h.value=o.data,o.data}catch(o){throw console.error("Failed to fetch tags:",o),o}}async function g(o){try{return(await $fetch(`/api/tasks/${o}`)).data}catch(t){throw console.error("Failed to get task:",t),t}}async function _(o){try{const t=await $fetch("/api/tasks",{method:"POST",body:o});return e.value=[t.data,...e.value],t.data}catch(t){throw console.error("Failed to create task:",t),t}}async function c(o,t){try{const n=await $fetch(`/api/tasks/${o}`,{method:"PUT",body:t}),T=e.value.findIndex(V=>V.id===o);return T!==-1&&(e.value[T]=n.data),n.data}catch(n){throw console.error("Failed to update task:",n),n}}async function a(o){try{const t=await $fetch(`/api/tasks/${o}`,{method:"DELETE"});return e.value=e.value.filter(n=>n.id!==o),t.data}catch(t){throw console.error("Failed to delete task:",t),t}}async function p(o){try{const t=await $fetch(`/api/tasks/${o}/restore`,{method:"POST"});return await C(),t.data}catch(t){throw console.error("Failed to restore task:",t),t}}async function $(o){const t=e.value.find(T=>T.id===o);if(!t)return;const n=t.status==="done"?"todo":"done";return c(o,{status:n})}const I=U(()=>{let o=[...e.value];if(i.status){const t=Array.isArray(i.status)?i.status:[i.status];o=o.filter(n=>t.includes(n.status))}if(i.projectId&&(o=o.filter(t=>t.projectId===i.projectId)),i.search){const t=i.search.toLowerCase();o=o.filter(n=>n.title.toLowerCase().includes(t)||n.description?.toLowerCase().includes(t))}return i.includeDeleted||(o=o.filter(t=>!t.deletedAt)),o}),A=U(()=>{const o={todo:0,in_progress:0,done:0,blocked:0,total:0};return e.value.forEach(t=>{t.deletedAt||(o[t.status]++,o.total++)}),o});return{tasks:e,filteredTasks:I,loading:w,error:r,tags:h,filters:i,taskCounts:A,fetchTasks:C,fetchTags:u,getTask:g,createTask:_,updateTask:c,deleteTask:a,restoreTask:p,toggleComplete:$}}function Vt(){const e=b([]),w=b(!1),r=b(null);async function h(c=!1){w.value=!0,r.value=null;try{const a=await $fetch("/api/projects",{query:{includeDeleted:c.toString()}});return e.value=a.data,a.data}catch(a){throw r.value="Failed to load projects",console.error("Failed to load projects:",a),a}finally{w.value=!1}}async function i(c){try{return(await $fetch(`/api/projects/${c}`)).data}catch(a){throw console.error("Failed to get project:",a),a}}async function C(c){try{const a=await $fetch("/api/projects",{method:"POST",body:c});return e.value=[...e.value,a.data],a.data}catch(a){throw console.error("Failed to create project:",a),a}}async function u(c,a){try{const p=await $fetch(`/api/projects/${c}`,{method:"PUT",body:a}),$=e.value.findIndex(I=>I.id===c);return $!==-1&&(e.value[$]=p.data),p.data}catch(p){throw console.error("Failed to update project:",p),p}}async function g(c){try{const a=await $fetch(`/api/projects/${c}`,{method:"DELETE"});return e.value=e.value.filter(p=>p.id!==c),a.data}catch(a){throw console.error("Failed to delete project:",a),a}}function _(c){if(c)return e.value.find(a=>a.id===c)}return{projects:e,loading:w,error:r,fetchProjects:h,getProject:i,createProject:C,updateProject:u,deleteProject:g,getProjectById:_}}const Ft={class:"contents"},St={class:"flex items-center gap-2 text-sm"},L="__all__",wo=Q({__name:"tasks",setup(e){const w=Ce(),r=Ue(),{filteredTasks:h,tasks:i,loading:C,filters:u,taskCounts:g,fetchTasks:_,createTask:c,updateTask:a,deleteTask:p,toggleComplete:$}=Ut(),{projects:I,fetchProjects:A}=Vt(),o=b(!1),t=b(null),n=b(!1),T=b(null),V=b(!1),x=b(null),y=b(!1),K=[{value:L,label:"All Status"},{value:"todo",label:"Todo"},{value:"in_progress",label:"In Progress"},{value:"done",label:"Done"},{value:"blocked",label:"Blocked"}],M=U(()=>[{value:L,label:"All Projects"},...I.value.filter(d=>!d.deletedAt).map(d=>({value:d.id,label:d.name}))]),{taskStatusFilter:G,taskProjectFilter:X}=He(),O=b(G.value==="all"?L:G.value),N=b(X.value||L),H=b("");q(O,d=>{u.status=d===L?void 0:d,G.value=d===L?"all":d}),q(N,d=>{u.projectId=d===L?void 0:d,X.value=d===L?null:d}),q(H,d=>{u.search=d||void 0}),O.value!==L&&(u.status=O.value),N.value!==L&&(u.projectId=N.value);function R(){t.value=null,o.value=!0}function Y(d){t.value=d,o.value=!0}function D(d){T.value=d,n.value=!0}async function pe(d){try{t.value?(await a(t.value.id,d),r.add({title:"Task updated",color:"success",icon:"i-lucide-check"})):(await c(d),r.add({title:"Task created",color:"success",icon:"i-lucide-check"})),t.value=null}catch(f){r.add({title:"Failed to save task",description:f instanceof Error?f.message:"An unexpected error occurred",color:"error",icon:"i-lucide-alert-circle"})}}function fe(d){x.value=d,V.value=!0}async function ke(){if(x.value){y.value=!0;try{await p(x.value),r.add({title:"Task deleted",color:"success",icon:"i-lucide-trash"}),V.value=!1,x.value=null}catch(d){r.add({title:"Failed to delete task",description:d instanceof Error?d.message:"An unexpected error occurred",color:"error",icon:"i-lucide-alert-circle"})}finally{y.value=!1}}}async function ie(d){try{await $(d)}catch(f){r.add({title:"Failed to update task",description:f instanceof Error?f.message:"An unexpected error occurred",color:"error",icon:"i-lucide-alert-circle"})}}return q([()=>w.query.selected,i],([d,f])=>{if(d&&f.length>0){const W=f.find(ee=>ee.id===d);W&&(T.value=W,n.value=!0,ce("/tasks",{replace:!0}))}},{immediate:!0}),q(()=>w.query.action,d=>{d==="new"&&(R(),ce("/tasks",{replace:!0}))},{immediate:!0}),Ve(async()=>{await Promise.all([_(),A()])}),(d,f)=>{const W=oe,ee=J,ve=Fe,_e=Ie,re=ne,ge=de,ye=Pe,be=et,he=Se,we=ct,Te=Ct,xe=Ne,je=qe;return v(),F("div",Ft,[l(he,{id:"tasks",grow:""},{header:m(()=>[l(_e,{title:"Tasks"},{left:m(()=>[k("div",St,[l(W,{color:"neutral",variant:"subtle"},{default:m(()=>[S(j(s(g).total)+" total ",1)]),_:1}),s(g).done>0?(v(),B(W,{key:0,color:"success",variant:"subtle"},{default:m(()=>[S(j(s(g).done)+" done ",1)]),_:1})):E("",!0)])]),right:m(()=>[l(ee,{icon:"i-lucide-plus",label:"Add Task",onClick:R}),l(ve)]),_:1}),l(ye,null,{left:m(()=>[l(re,{modelValue:s(O),"onUpdate:modelValue":f[0]||(f[0]=P=>z(O)?O.value=P:null),items:K,"value-key":"value",class:"w-36"},null,8,["modelValue"]),l(re,{modelValue:s(N),"onUpdate:modelValue":f[1]||(f[1]=P=>z(N)?N.value=P:null),items:s(M),"value-key":"value",class:"w-40"},null,8,["modelValue","items"])]),right:m(()=>[l(ge,{modelValue:s(H),"onUpdate:modelValue":f[2]||(f[2]=P=>z(H)?H.value=P:null),placeholder:"Search tasks...",icon:"i-lucide-search",class:"w-64"},null,8,["modelValue"])]),_:1})]),body:m(()=>[l(be,{tasks:s(h),loading:s(C),onToggle:ie,onEdit:Y,onDelete:fe,onCreate:R,onView:D},null,8,["tasks","loading"])]),_:1}),l(we,{open:s(o),"onUpdate:open":f[3]||(f[3]=P=>z(o)?o.value=P:null),task:s(t),projects:s(I),onSubmit:pe},null,8,["open","task","projects"]),l(xe,{open:s(n),"onUpdate:open":f[7]||(f[7]=P=>z(n)?n.value=P:null),title:s(T)?.title},{content:m(()=>[s(T)?(v(),B(Te,{key:0,task:s(T),onEdit:f[4]||(f[4]=P=>{Y(s(T)),n.value=!1}),onClose:f[5]||(f[5]=P=>n.value=!1),onToggle:f[6]||(f[6]=P=>{ie(s(T).id),n.value=!1})},null,8,["task"])):E("",!0)]),_:1},8,["open","title"]),l(je,{open:s(V),"onUpdate:open":f[8]||(f[8]=P=>z(V)?V.value=P:null),title:"Delete Task",description:"Are you sure you want to delete this task? This action cannot be undone.","confirm-label":"Delete","confirm-color":"error",icon:"i-lucide-trash-2",loading:s(y),onConfirm:ke,onCancel:f[9]||(f[9]=P=>x.value=null)},null,8,["open","loading"])])}}});export{wo as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ao as H,L as I,N as z,aJ as F,aI as K,aK as M,aC as q,c as w,
|
|
1
|
+
import{ao as H,L as I,N as z,aJ as F,aI as K,aK as M,aC as q,c as w,am as B,Q as u,R as o,S as r,T as y,a9 as n,C as t,V as $,aL as U,a4 as d,aM as W,aa as g,ae as b,G as h,U as f,ab as G,W as J,aN as C,aO as x,ai as Q}from"./njnzCNrH.js";import{D as X,a as Y,b as Z}from"./BZBNJD7U.js";import{D as _,a as P,b as O,c as ee,d as S}from"./BYtVdUIW.js";import{c as te}from"./BHn8tRjg.js";const ae={slots:{overlay:"fixed inset-0",content:"bg-default divide-y divide-default flex flex-col focus:outline-none",header:"flex items-center gap-1.5 p-4 sm:px-6 min-h-16",wrapper:"",body:"flex-1 p-4 sm:p-6",footer:"flex items-center gap-1.5 p-4 sm:px-6",title:"text-highlighted font-semibold",description:"mt-1 text-muted text-sm",close:"absolute top-4 end-4"},variants:{transition:{true:{overlay:"data-[state=open]:animate-[fade-in_200ms_ease-out] data-[state=closed]:animate-[fade-out_200ms_ease-in]",content:"data-[state=open]:animate-[scale-in_200ms_ease-out] data-[state=closed]:animate-[scale-out_200ms_ease-in]"}},fullscreen:{true:{content:"inset-0"},false:{content:"w-[calc(100vw-2rem)] max-w-lg rounded-lg shadow-lg ring ring-default"}},overlay:{true:{overlay:"bg-elevated/75"}},scrollable:{true:{overlay:"overflow-y-auto",content:"relative"},false:{content:"fixed",body:"overflow-y-auto"}}},compoundVariants:[{scrollable:!0,fullscreen:!1,class:{overlay:"grid place-items-center p-4 sm:py-8"}},{scrollable:!1,fullscreen:!1,class:{content:"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 max-h-[calc(100dvh-2rem)] sm:max-h-[calc(100dvh-4rem)] overflow-hidden"}}]},ne={__name:"UModal",props:{title:{type:String,required:!1},description:{type:String,required:!1},content:{type:Object,required:!1},overlay:{type:Boolean,required:!1,default:!0},scrollable:{type:Boolean,required:!1},transition:{type:Boolean,required:!1,default:!0},fullscreen:{type:Boolean,required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},close:{type:[Boolean,Object],required:!1,default:!0},closeIcon:{type:null,required:!1},dismissible:{type:Boolean,required:!1,default:!0},class:{type:null,required:!1},ui:{type:null,required:!1},open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1},modal:{type:Boolean,required:!1,default:!0}},emits:["after:leave","after:enter","close:prevent","update:open"],setup(a,{emit:T}){const e=a,m=T,l=H(),{t:V}=I(),k=z(),E=F(K(e,"open","defaultOpen","modal"),m),N=M(q(()=>e.portal)),R=q(()=>e.content),L=w(()=>e.dismissible?e.scrollable?{pointerDownOutside:s=>{const c=s.detail.originalEvent,p=c.target;(c.offsetX>p.clientWidth||c.offsetY>p.clientHeight)&&s.preventDefault()}}:{}:["pointerDownOutside","interactOutside","escapeKeyDown"].reduce((c,p)=>(c[p]=v=>{v.preventDefault(),m("close:prevent")},c),{})),[j,D]=te(),i=w(()=>B({extend:B(ae),...k.ui?.modal||{}})({transition:e.transition,fullscreen:e.fullscreen,overlay:e.overlay,scrollable:e.scrollable}));return(s,c)=>(o(),u(t(Z),C(x(t(E))),{default:r(({open:p,close:v})=>[y(t(j),null,{default:r(()=>[y(t(_),$({"data-slot":"content",class:i.value.content({class:[!l.default&&e.class,e.ui?.content]})},R.value,{onAfterEnter:c[0]||(c[0]=A=>m("after:enter")),onAfterLeave:c[1]||(c[1]=A=>m("after:leave"))},U(L.value)),{default:r(()=>[l.content&&(a.title||l.title||a.description||l.description)?(o(),u(t(W),{key:0},{default:r(()=>[a.title||l.title?(o(),u(t(P),{key:0},{default:r(()=>[d(s.$slots,"title",{},()=>[g(b(a.title),1)])]),_:3})):n("",!0),a.description||l.description?(o(),u(t(O),{key:1},{default:r(()=>[d(s.$slots,"description",{},()=>[g(b(a.description),1)])]),_:3})):n("",!0)]),_:3})):n("",!0),d(s.$slots,"content",{close:v},()=>[l.header||a.title||l.title||a.description||l.description||e.close||l.close?(o(),h("div",{key:0,"data-slot":"header",class:f(i.value.header({class:e.ui?.header}))},[d(s.$slots,"header",{close:v},()=>[G("div",{"data-slot":"wrapper",class:f(i.value.wrapper({class:e.ui?.wrapper}))},[a.title||l.title?(o(),u(t(P),{key:0,"data-slot":"title",class:f(i.value.title({class:e.ui?.title}))},{default:r(()=>[d(s.$slots,"title",{},()=>[g(b(a.title),1)])]),_:3},8,["class"])):n("",!0),a.description||l.description?(o(),u(t(O),{key:1,"data-slot":"description",class:f(i.value.description({class:e.ui?.description}))},{default:r(()=>[d(s.$slots,"description",{},()=>[g(b(a.description),1)])]),_:3},8,["class"])):n("",!0)],2),d(s.$slots,"actions"),e.close||l.close?(o(),u(t(ee),{key:0,"as-child":""},{default:r(()=>[d(s.$slots,"close",{ui:i.value},()=>[e.close?(o(),u(J,$({key:0,icon:a.closeIcon||t(k).ui.icons.close,color:"neutral",variant:"ghost","aria-label":t(V)("modal.close")},typeof e.close=="object"?e.close:{},{"data-slot":"close",class:i.value.close({class:e.ui?.close})}),null,16,["icon","aria-label","class"])):n("",!0)])]),_:2},1024)):n("",!0)])],2)):n("",!0),l.body?(o(),h("div",{key:1,"data-slot":"body",class:f(i.value.body({class:e.ui?.body}))},[d(s.$slots,"body",{close:v})],2)):n("",!0),l.footer?(o(),h("div",{key:2,"data-slot":"footer",class:f(i.value.footer({class:e.ui?.footer}))},[d(s.$slots,"footer",{close:v})],2)):n("",!0)])]),_:2},1040,["class"])]),_:2},1024),l.default?(o(),u(t(X),{key:0,"as-child":"",class:f(e.class)},{default:r(()=>[d(s.$slots,"default",{open:p})]),_:2},1032,["class"])):n("",!0),y(t(Y),C(x(t(N))),{default:r(()=>[a.scrollable?(o(),u(t(S),{key:0,"data-slot":"overlay",class:f(i.value.overlay({class:e.ui?.overlay}))},{default:r(()=>[y(t(D))]),_:1},8,["class"])):(o(),h(Q,{key:1},[a.overlay?(o(),u(t(S),{key:0,"data-slot":"overlay",class:f(i.value.overlay({class:e.ui?.overlay}))},null,8,["class"])):n("",!0),y(t(D))],64))]),_:1},16)]),_:3},16))}};export{ne as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Z as r,e as o,c as i}from"./
|
|
1
|
+
import{Z as r,e as o,c as i}from"./njnzCNrH.js";function c(t){const e=r({dir:o("ltr")});return i(()=>t?.value||e.dir?.value||"ltr")}export{c as u};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{_ as K}from"./
|
|
1
|
+
import{_ as K}from"./C24so3m7.js";import{a as D,e as v,c as M,G as c,R as a,ab as g,a9 as b,Q as k,T as P,C as h,ae as B,S as V,aa as J,_ as H,U as R,ai as W,aj as L,bE as Q,bF as X,al as Y,k as Z,W as ee,r as S}from"./njnzCNrH.js";import{_ as te}from"./yJ9vRvHj.js";import{s as ne}from"./DmcMCO8x.js";const se={class:"border border-default rounded-lg my-2 overflow-hidden"},ae={class:"font-mono text-xs"},oe=D({__name:"ToolCallBlock",props:{toolName:{},result:{},isError:{type:Boolean},pending:{type:Boolean}},setup(t){const r=t,i=v(!1),m={Read:"i-lucide-file-text",Edit:"i-lucide-pencil",Write:"i-lucide-file-plus",Bash:"i-lucide-terminal",Glob:"i-lucide-search",Grep:"i-lucide-text-search",Task:"i-lucide-git-branch",WebFetch:"i-lucide-globe",WebSearch:"i-lucide-search"},o=M(()=>m[r.toolName]||"i-lucide-wrench"),s=M(()=>r.result?r.result.length>500?r.result.slice(0,500)+"...":r.result:"");return(u,l)=>{const y=H,U=te;return a(),c("div",se,[g("button",{class:"flex items-center gap-2 w-full px-3 py-2 text-sm text-muted hover:bg-elevated/50 transition-colors",onClick:l[0]||(l[0]=w=>i.value=!h(i))},[t.pending?(a(),k(y,{key:0,name:"i-lucide-loader-2",class:"size-4 animate-spin text-primary"})):(a(),k(y,{key:1,name:h(o),class:"size-4"},null,8,["name"])),g("span",ae,B(t.toolName),1),t.isError?(a(),k(U,{key:2,color:"error",variant:"subtle",size:"xs"},{default:V(()=>[...l[1]||(l[1]=[J(" error ",-1)])]),_:1})):t.pending?(a(),k(U,{key:3,color:"warning",variant:"subtle",size:"xs"},{default:V(()=>[...l[2]||(l[2]=[J(" running ",-1)])]),_:1})):b("",!0),P(y,{name:h(i)?"i-lucide-chevron-up":"i-lucide-chevron-down",class:"size-4 ms-auto"},null,8,["name"])]),h(i)&&t.result?(a(),c("div",{key:0,class:R(["border-t border-default px-3 py-2 text-xs font-mono bg-elevated/25 max-h-64 overflow-auto whitespace-pre-wrap",{"text-error":t.isError}])},B(h(s)),3)):b("",!0)])}}}),q=Object.assign(oe,{__name:"ChatToolCallBlock"}),re={key:0,class:"text-sm whitespace-pre-wrap"},le={key:0,class:"chat-prose prose prose-sm dark:prose-invert max-w-none"},ie={key:1,class:"flex items-center gap-3 mt-2 text-xs text-dimmed"},ce={key:0},ue={key:1},de=D({__name:"MessageBubble",props:{message:{}},setup(t){function r(m){return m.filter(o=>o.type==="text").map(o=>o.text).join(`
|
|
2
2
|
`)}function i(m){const o=[];for(const s of m)if(s.type==="tool_use")o.push({name:s.name,id:s.id});else if(s.type==="tool_result"){const u=o.find(l=>l.id===s.tool_use_id);u&&(u.result=s.content,u.isError=s.is_error)}return o}return(m,o)=>{const s=K,u=q;return a(),c("div",{class:R(["flex",t.message.role==="user"?"justify-end":"justify-start"])},[g("div",{class:R(["max-w-[85%] rounded-xl px-4 py-3",t.message.role==="user"?"bg-primary/5 text-highlighted":"bg-muted"])},[t.message.role==="user"?(a(),c("div",re,B(r(t.message.content)),1)):(a(),c(W,{key:1},[r(t.message.content)?(a(),c("div",le,[P(s,{value:r(t.message.content)},null,8,["value"])])):b("",!0),(a(!0),c(W,null,L(i(t.message.content),l=>(a(),k(u,{key:l.id,"tool-name":l.name,result:l.result,"is-error":l.isError},null,8,["tool-name","result","is-error"]))),128)),t.message.costUsd||t.message.durationMs?(a(),c("div",ie,[t.message.costUsd?(a(),c("span",ce,"$"+B(t.message.costUsd.toFixed(4)),1)):b("",!0),t.message.durationMs?(a(),c("span",ue,B((t.message.durationMs/1e3).toFixed(1))+"s",1)):b("",!0)])):b("",!0)],64))],2)],2)}}}),$e=Object.assign(de,{__name:"ChatMessageBubble"}),ve={class:"flex justify-start"},me={class:"max-w-[85%] rounded-xl px-4 py-3 bg-elevated/50"},fe={key:0,class:"chat-prose prose prose-sm dark:prose-invert max-w-none"},pe=D({__name:"StreamingMessage",props:{text:{},toolCalls:{}},setup(t){return(r,i)=>{const m=K,o=q;return a(),c("div",ve,[g("div",me,[t.text?(a(),c("div",fe,[P(m,{value:t.text},null,8,["value"])])):b("",!0),(a(!0),c(W,null,L(t.toolCalls,(s,u)=>(a(),k(o,{key:u,"tool-name":s.name,result:s.result,"is-error":s.isError,pending:!s.result},null,8,["tool-name","result","is-error","pending"]))),128)),i[0]||(i[0]=g("div",{class:"flex items-center gap-1.5 mt-2"},[g("span",{class:"size-2 rounded-full bg-primary animate-pulse"}),g("span",{class:"text-xs text-dimmed"},"Thinking...")],-1))])])}}}),Ie=Object.assign(pe,{__name:"ChatStreamingMessage"}),he={class:"border-t border-default p-4"},ge={key:0,class:"flex items-center gap-2 mb-2 text-xs text-dimmed"},xe={class:"flex items-start gap-2"},ye=["disabled"],_e=D({__name:"ChatInput",props:{sessionStatus:{},connectionStatus:{}},emits:["send","interrupt"],setup(t,{emit:r}){const i=t,m=r,o=v(""),s=v(null),u=M(()=>i.sessionStatus==="streaming"),l=M(()=>i.connectionStatus==="connected"),y=M(()=>l.value&&!u.value&&o.value.trim().length>0);function U(e){e.key==="Enter"&&!e.shiftKey&&(e.preventDefault(),w())}function w(){y.value&&(m("send",o.value.trim()),o.value="",Z(()=>{s.value&&(s.value.style.height="auto")}))}function O(e){const n=e.target;n.style.height="auto",n.style.height=Math.min(n.scrollHeight,200)+"px"}return(e,n)=>{const d=ee;return a(),c("div",he,[h(l)?b("",!0):(a(),c("div",ge,[n[2]||(n[2]=g("span",{class:"size-2 rounded-full bg-warning"},null,-1)),g("span",null,B(t.connectionStatus==="connecting"?"Connecting...":"Disconnected"),1)])),g("div",xe,[Q(g("textarea",{ref_key:"textareaRef",ref:s,"onUpdate:modelValue":n[0]||(n[0]=C=>Y(o)?o.value=C:null),disabled:!h(l)||h(u),placeholder:"Send a message...",rows:"1",class:"flex-1 resize-none bg-elevated/50 border border-default rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary/50 disabled:opacity-50",onKeydown:U,onInput:O},null,40,ye),[[X,h(o)]]),h(u)?(a(),k(d,{key:0,icon:"i-lucide-square",color:"error",variant:"soft",size:"md",onClick:n[1]||(n[1]=C=>m("interrupt"))})):(a(),k(d,{key:1,icon:"i-lucide-send",color:"primary",disabled:!h(y),size:"md",onClick:w},null,8,["disabled"]))])])}}}),Ue=Object.assign(_e,{__name:"ChatInput"});function j(){if(typeof crypto<"u"&&crypto.randomUUID)return crypto.randomUUID();const t=new Uint8Array(16);crypto.getRandomValues(t),t[6]=t[6]&15|64,t[8]=t[8]&63|128;const r=Array.from(t,i=>i.toString(16).padStart(2,"0")).join("");return`${r.slice(0,8)}-${r.slice(8,12)}-${r.slice(12,16)}-${r.slice(16,20)}-${r.slice(20)}`}const $=v("disconnected"),I=v("idle"),_=v(null),E=v([]),N=v([]),x=v(""),p=v({}),G=v(0),A=v(!1),f=v(null),z=v(0),be=5;let F=!1,T=null;function Ee(){function t(){return`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/_ws/chat`}function r(e){switch(e.type){case"chat:session_created":_.value=e.conversationId,w();break;case"chat:stream_start":I.value="streaming",x.value="",p.value={};break;case"chat:text_delta":x.value+=e.delta;break;case"chat:tool_start":p.value={...p.value,[e.toolUseId]:{name:e.toolName}};break;case"chat:tool_end":{const n=p.value[e.toolUseId];n&&(p.value={...p.value,[e.toolUseId]:{...n,result:e.result,isError:e.isError}});break}case"chat:stream_end":{I.value="idle",G.value=e.costUsd;const n=[];x.value&&n.push({type:"text",text:x.value});for(const[d,C]of Object.entries(p.value))n.push({type:"tool_use",id:d,name:C.name,input:{}}),C.result!==void 0&&n.push({type:"tool_result",tool_use_id:d,content:C.result,is_error:C.isError});n.length>0&&E.value.push({id:j(),conversationId:e.conversationId,role:"assistant",content:n,costUsd:e.costUsd,durationMs:e.durationMs,createdAt:new Date}),x.value="",p.value={},w();break}case"chat:error":I.value="error",console.error("[chat] Server error:",e.message);break;case"chat:interrupted":I.value="interrupted",x.value&&(E.value.push({id:j(),conversationId:e.conversationId,role:"assistant",content:[{type:"text",text:x.value}],createdAt:new Date}),x.value="",p.value={});break}}function i(){if(f.value?.readyState===WebSocket.OPEN||F&&$.value==="connecting")return;F=!0,$.value="connecting";const e=new WebSocket(t());f.value=e,e.onopen=()=>{$.value="connected",z.value=0,o()},e.onmessage=n=>{try{const d=JSON.parse(n.data);if(d.type==="chat:connected"||d.type==="pong")return;r(d)}catch(d){console.error("[chat] Failed to parse message:",d)}},e.onclose=()=>{$.value="disconnected",s(),z.value<be&&(z.value++,setTimeout(i,2e3*z.value))},e.onerror=()=>{$.value="error"}}function m(){s(),f.value&&(f.value.close(),f.value=null),$.value="disconnected",F=!1}function o(){T&&clearInterval(T),T=ne(()=>{f.value?.readyState===WebSocket.OPEN&&f.value.send(JSON.stringify({type:"ping"}))},3e4)}function s(){T&&(clearInterval(T),T=null)}function u(e){!f.value||f.value.readyState!==WebSocket.OPEN||(E.value.push({id:j(),conversationId:_.value||"",role:"user",content:[{type:"text",text:e}],createdAt:new Date}),f.value.send(JSON.stringify({type:"chat:send",message:e,conversationId:_.value})))}function l(){!f.value||!_.value||f.value.send(JSON.stringify({type:"chat:interrupt",conversationId:_.value}))}function y(){_.value=null,E.value=[],I.value="idle",x.value="",p.value={}}async function U(e){A.value=!0;try{const n=await $fetch(`/api/conversations/${e}`);_.value=e,E.value=(n.data.messages||[]).map(d=>({...d,createdAt:new Date(d.createdAt)})),I.value="idle"}catch(n){console.error("[chat] Failed to load conversation:",n)}finally{A.value=!1}}async function w(){try{const e=await $fetch("/api/conversations");N.value=e.data}catch(e){console.error("[chat] Failed to load conversations:",e)}}async function O(e){try{await $fetch(`/api/conversations/${e}`,{method:"DELETE"}),N.value=N.value.filter(n=>n.id!==e),_.value===e&&y()}catch(n){console.error("[chat] Failed to delete conversation:",n)}}return{connectionStatus:S($),sessionStatus:S(I),activeConversationId:S(_),messages:E,conversations:N,streamingText:S(x),streamingToolCalls:S(p),lastCostUsd:S(G),loading:S(A),connect:i,disconnect:m,sendMessage:u,interrupt:l,startNewConversation:y,loadConversation:U,loadConversations:w,deleteConversation:O}}export{$e as _,Ie as a,Ue as b,Ee as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as n,c,G as d,R as l,a4 as i,U as u,
|
|
1
|
+
import{N as n,c,G as d,R as l,a4 as i,U as u,am as e}from"./njnzCNrH.js";const p={base:"px-1.5 py-0.5 text-sm font-mono font-medium rounded-md inline-block",variants:{color:{primary:"border border-primary/25 bg-primary/10 text-primary",secondary:"border border-secondary/25 bg-secondary/10 text-secondary",success:"border border-success/25 bg-success/10 text-success",info:"border border-info/25 bg-info/10 text-info",warning:"border border-warning/25 bg-warning/10 text-warning",error:"border border-error/25 bg-error/10 text-error",neutral:"border border-muted text-highlighted bg-muted"}},defaultVariants:{color:"neutral"}},g={__name:"ProseCode",props:{lang:{type:String,required:!1},color:{type:null,required:!1},class:{type:null,required:!1}},setup(o){const r=o,s=n(),t=c(()=>e({extend:e(p),...s.ui?.prose?.code||{}}));return(a,b)=>(l(),d("code",{class:u(t.value({class:(r.class||"").split(",").join(" "),color:r.color}))},[i(a.$slots,"default")],2))}};export{g as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as g}from"./
|
|
1
|
+
import{a as g}from"./BHn8tRjg.js";import{L as b,N as v,c as h,G as n,R as c,a9 as x,T as u,ab as d,U as r,ae as q,C as o,W as C,a4 as k,V as S,am as p}from"./njnzCNrH.js";import $ from"./CDkyQ1eQ.js";const w={slots:{root:"relative my-5 group",header:"flex items-center gap-1.5 border border-muted bg-default border-b-0 relative rounded-t-md px-4 py-3",filename:"text-default text-sm/6",icon:"size-4 shrink-0",copy:"absolute top-[11px] right-[11px] lg:opacity-0 lg:group-hover:opacity-100 transition",base:"group font-mono text-sm/6 border border-muted bg-muted rounded-md px-4 py-3 whitespace-pre-wrap break-words overflow-x-auto focus:outline-none"},variants:{filename:{true:{root:"[&>pre]:rounded-t-none [&>pre]:my-0 my-5"}}}},P={__name:"ProsePre",props:{icon:{type:null,required:!1},code:{type:String,required:!1},language:{type:String,required:!1},filename:{type:String,required:!1},highlights:{type:Array,required:!1},hideHeader:{type:Boolean,required:!1},meta:{type:String,required:!1},class:{type:null,required:!1},ui:{type:null,required:!1}},setup(a){const e=a,{t:m}=b(),{copy:f,copied:y}=g(),t=v(),s=h(()=>p({extend:p(w),...t.ui?.prose?.pre||{}})());return(l,i)=>(c(),n("div",{class:r(s.value.root({class:[e.ui?.root],filename:!!a.filename}))},[a.filename&&!a.hideHeader?(c(),n("div",{key:0,class:r(s.value.header({class:e.ui?.header}))},[u($,{icon:a.icon,filename:a.filename,class:r(s.value.icon({class:e.ui?.icon}))},null,8,["icon","filename","class"]),d("span",{class:r(s.value.filename({class:e.ui?.filename}))},q(a.filename),3)],2)):x("",!0),u(C,{icon:o(y)?o(t).ui.icons.copyCheck:o(t).ui.icons.copy,color:"neutral",variant:"outline",size:"sm","aria-label":o(m)("prose.pre.copy"),class:r(s.value.copy({class:e.ui?.copy})),tabindex:"-1",onClick:i[0]||(i[0]=B=>o(f)(e.code||""))},null,8,["icon","aria-label","class"]),d("pre",S({class:s.value.base({class:[e.ui?.base,e.class]})},l.$attrs),[k(l.$slots,"default")],16)],2))}};export{P as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Y as o}from"./
|
|
1
|
+
import{Y as o}from"./njnzCNrH.js";function l(t,e){if(typeof t!="object"||t===null)return!1;const n=o(t,e);return n!=null&&n!==""}function u(t,e){return e?{xs:44,sm:48,md:52,lg:56,xl:60}[t]:{xs:24,sm:28,md:32,lg:36,xl:40}[t]}function f(t,e,n){const r=n?t.some(s=>l(s,n)):!1;return u(e,r)}export{f as g};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as s,c as o,Q as l,R as u,S as p,a4 as d,V as f,C as v,a3 as h,aN as S,aO as m}from"./
|
|
1
|
+
import{a as s,c as o,Q as l,R as u,S as p,a4 as d,V as f,C as v,a3 as h,aN as S,aO as m}from"./njnzCNrH.js";var y=s({__name:"BaseSeparator",props:{orientation:{type:String,required:!1,default:"horizontal"},decorative:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){const e=t,r=["horizontal","vertical"];function i(a){return r.includes(a)}const n=o(()=>i(e.orientation)?e.orientation:"horizontal"),c=o(()=>n.value==="vertical"?e.orientation:void 0),_=o(()=>e.decorative?{role:"none"}:{"aria-orientation":c.value,role:"separator"});return(a,g)=>(u(),l(v(h),f({as:a.as,"as-child":a.asChild,"data-orientation":n.value},_.value),{default:p(()=>[d(a.$slots,"default")]),_:3},16,["as","as-child","data-orientation"]))}}),B=y,q=s({__name:"Separator",props:{orientation:{type:String,required:!1,default:"horizontal"},decorative:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){const e=t;return(r,i)=>(u(),l(B,S(m(e)),{default:p(()=>[d(r.$slots,"default")]),_:3},16))}}),O=q;export{O as S};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ao as J,N as K,aF as W,av as X,aw as Y,c as x,
|
|
1
|
+
import{ao as J,N as K,aF as W,av as X,aw as Y,c as x,am as q,aG as Z,q as _,Q as u,R as n,S as ee,ab as ie,a4 as f,G as I,a9 as g,V as S,C as a,U as r,_ as A,ax as ae,a3 as le,aH as se}from"./njnzCNrH.js";import{u as ne}from"./BHn8tRjg.js";const te={slots:{root:"relative inline-flex items-center",base:["w-full rounded-md border-0 appearance-none placeholder:text-dimmed focus:outline-none disabled:cursor-not-allowed disabled:opacity-75","transition-colors"],leading:"absolute inset-y-0 start-0 flex items-center",leadingIcon:"shrink-0 text-dimmed",leadingAvatar:"shrink-0",leadingAvatarSize:"",trailing:"absolute inset-y-0 end-0 flex items-center",trailingIcon:"shrink-0 text-dimmed"},variants:{fieldGroup:{horizontal:{root:"group has-focus-visible:z-[1]",base:"group-not-only:group-first:rounded-e-none group-not-only:group-last:rounded-s-none group-not-last:group-not-first:rounded-none"},vertical:{root:"group has-focus-visible:z-[1]",base:"group-not-only:group-first:rounded-b-none group-not-only:group-last:rounded-t-none group-not-last:group-not-first:rounded-none"}},size:{xs:{base:"px-2 py-1 text-xs gap-1",leading:"ps-2",trailing:"pe-2",leadingIcon:"size-4",leadingAvatarSize:"3xs",trailingIcon:"size-4"},sm:{base:"px-2.5 py-1.5 text-xs gap-1.5",leading:"ps-2.5",trailing:"pe-2.5",leadingIcon:"size-4",leadingAvatarSize:"3xs",trailingIcon:"size-4"},md:{base:"px-2.5 py-1.5 text-sm gap-1.5",leading:"ps-2.5",trailing:"pe-2.5",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5"},lg:{base:"px-3 py-2 text-sm gap-2",leading:"ps-3",trailing:"pe-3",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5"},xl:{base:"px-3 py-2 text-base gap-2",leading:"ps-3",trailing:"pe-3",leadingIcon:"size-6",leadingAvatarSize:"xs",trailingIcon:"size-6"}},variant:{outline:"text-highlighted bg-default ring ring-inset ring-accented",soft:"text-highlighted bg-elevated/50 hover:bg-elevated focus:bg-elevated disabled:bg-elevated/50",subtle:"text-highlighted bg-elevated ring ring-inset ring-accented",ghost:"text-highlighted bg-transparent hover:bg-elevated focus:bg-elevated disabled:bg-transparent dark:disabled:bg-transparent",none:"text-highlighted bg-transparent"},color:{primary:"",secondary:"",success:"",info:"",warning:"",error:"",neutral:""},leading:{true:""},trailing:{true:""},loading:{true:""},highlight:{true:""},type:{file:"file:me-1.5 file:font-medium file:text-muted file:outline-none"}},compoundVariants:[{color:"primary",variant:["outline","subtle"],class:"focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary"},{color:"secondary",variant:["outline","subtle"],class:"focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-secondary"},{color:"success",variant:["outline","subtle"],class:"focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-success"},{color:"info",variant:["outline","subtle"],class:"focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-info"},{color:"warning",variant:["outline","subtle"],class:"focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-warning"},{color:"error",variant:["outline","subtle"],class:"focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-error"},{color:"primary",highlight:!0,class:"ring ring-inset ring-primary"},{color:"secondary",highlight:!0,class:"ring ring-inset ring-secondary"},{color:"success",highlight:!0,class:"ring ring-inset ring-success"},{color:"info",highlight:!0,class:"ring ring-inset ring-info"},{color:"warning",highlight:!0,class:"ring ring-inset ring-warning"},{color:"error",highlight:!0,class:"ring ring-inset ring-error"},{color:"neutral",variant:["outline","subtle"],class:"focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-inverted"},{color:"neutral",highlight:!0,class:"ring ring-inset ring-inverted"},{leading:!0,size:"xs",class:"ps-7"},{leading:!0,size:"sm",class:"ps-8"},{leading:!0,size:"md",class:"ps-9"},{leading:!0,size:"lg",class:"ps-10"},{leading:!0,size:"xl",class:"ps-11"},{trailing:!0,size:"xs",class:"pe-7"},{trailing:!0,size:"sm",class:"pe-8"},{trailing:!0,size:"md",class:"pe-9"},{trailing:!0,size:"lg",class:"pe-10"},{trailing:!0,size:"xl",class:"pe-11"},{loading:!0,leading:!0,class:{leadingIcon:"animate-spin"}},{loading:!0,leading:!1,trailing:!0,class:{trailingIcon:"animate-spin"}}],defaultVariants:{size:"md",color:"primary",variant:"outline"}},re=["id","type","value","name","placeholder","disabled","required","autocomplete"],ge=Object.assign({inheritAttrs:!1},{__name:"UInput",props:{as:{type:null,required:!1},id:{type:String,required:!1},name:{type:String,required:!1},type:{type:null,required:!1,default:"text"},placeholder:{type:String,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},required:{type:Boolean,required:!1},autocomplete:{type:null,required:!1,default:"off"},autofocus:{type:Boolean,required:!1},autofocusDelay:{type:Number,required:!1,default:0},disabled:{type:Boolean,required:!1},highlight:{type:Boolean,required:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},modelModifiers:{type:Object,required:!1},class:{type:null,required:!1},ui:{type:null,required:!1},icon:{type:null,required:!1},avatar:{type:Object,required:!1},leading:{type:Boolean,required:!1},leadingIcon:{type:null,required:!1},trailing:{type:Boolean,required:!1},trailingIcon:{type:null,required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1}},emits:["update:modelValue","blur","change"],setup(s,{expose:B,emit:V}){const e=s,d=V,o=J(),m=ne(e,"modelValue",d,{defaultValue:e.defaultValue}),k=K(),{emitFormBlur:F,emitFormInput:C,emitFormChange:M,size:w,color:G,id:N,name:$,highlight:R,disabled:T,emitFormFocus:v,ariaAttrs:j}=W(e,{deferInputValidation:!0}),{orientation:O,size:D}=X(e),{isLeading:c,isTrailing:b,leadingIconName:h,trailingIconName:y}=Y(e),P=x(()=>D.value||w.value),l=x(()=>q({extend:q(te),...k.ui?.input||{}})({type:e.type,color:G.value,variant:e.variant,size:P?.value,loading:e.loading,highlight:R.value,leading:c.value||!!e.avatar||!!o.leading,trailing:b.value||!!o.trailing,fieldGroup:O.value})),p=Z("inputRef");function z(i){e.modelModifiers?.trim&&(i=i?.trim()??null),(e.modelModifiers?.number||e.type==="number")&&(i=se(i)),e.modelModifiers?.nullable&&(i||=null),e.modelModifiers?.optional&&(i||=void 0),m.value=i,C()}function U(i){e.modelModifiers?.lazy||z(i.target.value)}function E(i){const t=i.target.value;e.modelModifiers?.lazy&&z(t),e.modelModifiers?.trim&&(i.target.value=t.trim()),M(),d("change",i)}function H(i){F(),d("blur",i)}function L(){e.autofocus&&p.value?.focus()}return _(()=>{setTimeout(()=>{L()},e.autofocusDelay)}),B({inputRef:p}),(i,t)=>(n(),u(a(le),{as:s.as,"data-slot":"root",class:r(l.value.root({class:[e.ui?.root,e.class]}))},{default:ee(()=>[ie("input",S({id:a(N),ref_key:"inputRef",ref:p,type:s.type,value:a(m),name:a($),placeholder:s.placeholder,"data-slot":"base",class:l.value.base({class:e.ui?.base}),disabled:a(T),required:s.required,autocomplete:s.autocomplete},{...i.$attrs,...a(j)},{onInput:U,onBlur:H,onChange:E,onFocus:t[0]||(t[0]=(...Q)=>a(v)&&a(v)(...Q))}),null,16,re),f(i.$slots,"default",{ui:l.value}),a(c)||s.avatar||o.leading?(n(),I("span",{key:0,"data-slot":"leading",class:r(l.value.leading({class:e.ui?.leading}))},[f(i.$slots,"leading",{ui:l.value},()=>[a(c)&&a(h)?(n(),u(A,{key:0,name:a(h),"data-slot":"leadingIcon",class:r(l.value.leadingIcon({class:e.ui?.leadingIcon}))},null,8,["name","class"])):s.avatar?(n(),u(ae,S({key:1,size:e.ui?.leadingAvatarSize||l.value.leadingAvatarSize()},s.avatar,{"data-slot":"leadingAvatar",class:l.value.leadingAvatar({class:e.ui?.leadingAvatar})}),null,16,["size","class"])):g("",!0)])],2)):g("",!0),a(b)||o.trailing?(n(),I("span",{key:1,"data-slot":"trailing",class:r(l.value.trailing({class:e.ui?.trailing}))},[f(i.$slots,"trailing",{ui:l.value},()=>[a(y)?(n(),u(A,{key:0,name:a(y),"data-slot":"trailingIcon",class:r(l.value.trailingIcon({class:e.ui?.trailingIcon}))},null,8,["name","class"])):g("",!0)])],2)):g("",!0)]),_:3},8,["as","class"]))}});export{ge as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as c,c as l,G as p,R as n,a4 as u,U as d,
|
|
1
|
+
import{N as c,c as l,G as p,R as n,a4 as u,U as d,am as s}from"./njnzCNrH.js";const i={base:"grid grid-cols-1 sm:grid-cols-2 gap-5 my-5 *:my-0"},g={__name:"ProseCardGroup",props:{class:{type:null,required:!1}},setup(e){const a=e,o=c(),r=l(()=>s({extend:s(i),...o.ui?.prose?.cardGroup||{}}));return(t,m)=>(n(),p("div",{class:d(r.value({class:a.class}))},[u(t.$slots,"default")],2))}};export{g as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"
|
|
1
|
+
{"id":"410e449d-9fe8-43a0-ae07-80797693b9b8","timestamp":1771731269203}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"410e449d-9fe8-43a0-ae07-80797693b9b8","timestamp":1771731269203,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as p,ac as
|
|
1
|
+
import{N as p,ac as m,c as n,G as c,R as r,a4 as d,U as o,ab as g,T as f,C as v,_ as b,am as u}from"./njnzCNrH.js";const y={slots:{base:["relative text-xl text-highlighted font-bold mt-8 mb-3 scroll-mt-[calc(32px+45px+var(--ui-header-height))] lg:scroll-mt-[calc(32px+var(--ui-header-height))] [&>a]:focus-visible:outline-primary [&>a>code]:border-dashed hover:[&>a>code]:border-primary hover:[&>a>code]:text-primary [&>a>code]:text-lg/6 [&>a>code]:font-bold","[&>a>code]:transition-colors"],leading:["absolute -ms-8 top-0.5 opacity-0 group-hover:opacity-100 group-focus:opacity-100 p-1 bg-elevated hover:text-primary rounded-md hidden lg:flex text-muted","transition"],leadingIcon:"size-4 shrink-0",link:"group lg:ps-2 lg:-ms-2"}},x=["id"],k=["href"],$={__name:"ProseH3",props:{id:{type:String,required:!1},class:{type:null,required:!1},ui:{type:null,required:!1}},setup(a){const e=a,t=p(),{headings:l}=m().public?.mdc||{},s=n(()=>u({extend:u(y),...t.ui?.prose?.h3||{}})()),h=n(()=>e.id&&typeof l?.anchorLinks=="object"&&l.anchorLinks.h3);return(i,C)=>(r(),c("h3",{id:a.id,class:o(s.value.base({class:e.class}))},[a.id&&h.value?(r(),c("a",{key:0,href:`#${a.id}`,class:o(s.value.link({class:e.ui?.link}))},[g("span",{class:o(s.value.leading({class:e.ui?.leading}))},[f(b,{name:v(t).ui.icons.hash,class:o(s.value.leadingIcon({class:e.ui?.leadingIcon}))},null,8,["name","class"])],2),d(i.$slots,"default")],10,k)):d(i.$slots,"default",{key:1})],10,x))}};export{$ as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as m,aS as h,c as p,f as g,Q as o,R as n,V as d,aM as E,G as f,a9 as B,ai as c,aj as V}from"./
|
|
1
|
+
import{a as m,aS as h,c as p,f as g,Q as o,R as n,V as d,aM as E,G as f,a9 as B,ai as c,aj as V}from"./njnzCNrH.js";var k=m({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(i){const e=i,{primitiveElement:s,currentElement:l}=h(),t=p(()=>e.checked??e.value);return g(t,(a,r)=>{if(!l.value)return;const u=l.value,_=window.HTMLInputElement.prototype,v=Object.getOwnPropertyDescriptor(_,"value").set;if(v&&a!==r){const b=new Event("input",{bubbles:!0}),q=new Event("change",{bubbles:!0});v.call(u,a),u.dispatchEvent(b),u.dispatchEvent(q)}}),(a,r)=>(n(),o(E,d({ref_key:"primitiveElement",ref:s},{...e,...a.$attrs},{as:"input"}),null,16))}}),y=k,A=m({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(i){const e=i,s=p(()=>typeof e.value=="object"&&Array.isArray(e.value)&&e.value.length===0&&e.required),l=p(()=>typeof e.value=="string"||typeof e.value=="number"||typeof e.value=="boolean"||e.value===null||e.value===void 0?[{name:e.name,value:e.value}]:typeof e.value=="object"&&Array.isArray(e.value)?e.value.flatMap((t,a)=>typeof t=="object"?Object.entries(t).map(([r,u])=>({name:`${e.name}[${a}][${r}]`,value:u})):{name:`${e.name}[${a}]`,value:t}):e.value!==null&&typeof e.value=="object"&&!Array.isArray(e.value)?Object.entries(e.value).map(([t,a])=>({name:`${e.name}[${t}]`,value:a})):[]);return(t,a)=>(n(),f(c,null,[B(" We render single input if it's required "),s.value?(n(),o(y,d({key:t.name},{...e,...t.$attrs},{name:t.name,value:t.value}),null,16,["name","value"])):(n(!0),f(c,{key:1},V(l.value,r=>(n(),o(y,d({key:r.name},{ref_for:!0},{...e,...t.$attrs},{name:r.name,value:r.value}),null,16,["name","value"]))),128))],2112))}}),I=A;export{I as V};
|