cognova 0.2.26 → 0.2.28
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/{CxNJcty6.js → -XfM4jpu.js} +1 -1
- package/.output/public/_nuxt/0L-9iIbm.js +1 -0
- package/.output/public/_nuxt/{RIAd5Wd1.js → 0mcDe5Hg.js} +1 -1
- package/.output/public/_nuxt/{DLfV22bF.js → 4Nlt-3Ix.js} +1 -1
- package/.output/public/_nuxt/{C_hl3kCw.js → 5FVMuLeh.js} +1 -1
- package/.output/public/_nuxt/{C4Ii8cYC.js → 5qkiDtwf.js} +1 -1
- package/.output/public/_nuxt/{n_Arasow.js → 6_fEEpaq.js} +1 -1
- package/.output/public/_nuxt/{BZjMzGZM.js → 944smzho.js} +1 -1
- package/.output/public/_nuxt/{C-tfM08H.js → B03oRqJe.js} +1 -1
- package/.output/public/_nuxt/{CGgHmnnS.js → B06CcGVK.js} +3 -3
- package/.output/public/_nuxt/{FmfogFAR.js → B0UpgYEt.js} +1 -1
- package/.output/public/_nuxt/{CcJ0pNID.js → B0YLhHra.js} +1 -1
- package/.output/public/_nuxt/B0v0agy0.js +1 -0
- package/.output/public/_nuxt/{DmGbOc_e.js → B1A26hhf.js} +1 -1
- package/.output/public/_nuxt/{B38X0n2w.js → B592hx40.js} +1 -1
- package/.output/public/_nuxt/B5l6QVGz.js +1 -0
- package/.output/public/_nuxt/{BD07a6OS.js → B6BF2w8r.js} +3 -3
- package/.output/public/_nuxt/{rY0W1r76.js → B6m5ExpJ.js} +2 -2
- package/.output/public/_nuxt/{iTZxBLAr.js → B91qlTSF.js} +3 -3
- package/.output/public/_nuxt/B9sXHKws.js +1 -0
- package/.output/public/_nuxt/{eB60bVen.js → BAh-k-y8.js} +1 -1
- package/.output/public/_nuxt/{wSCSxjgr.js → BDQ6hxO7.js} +1 -1
- package/.output/public/_nuxt/{DEmzTuCa.js → BGytjslk.js} +1 -1
- package/.output/public/_nuxt/{CZQeFnOf.js → BIoHE1oQ.js} +1 -1
- package/.output/public/_nuxt/{BHcVB9Fo.js → BNXyokAF.js} +1 -1
- package/.output/public/_nuxt/{Irw5CrIe.js → BNxg8OvE.js} +1 -1
- package/.output/public/_nuxt/{C1wI_STa.js → BPBLcBHM.js} +2 -2
- package/.output/public/_nuxt/{BGV4_re9.js → BQeDYnyj.js} +1 -1
- package/.output/public/_nuxt/{pJF5jz72.js → BUfJTKJk.js} +1 -1
- package/.output/public/_nuxt/{B27NM422.js → BVJkcOi4.js} +1 -1
- package/.output/public/_nuxt/{B8fLdQfp.js → BVNZYpXH.js} +1 -1
- package/.output/public/_nuxt/{Dc_VwXJs.js → BZ3u3Znq.js} +1 -1
- package/.output/public/_nuxt/{CjkXqgrT.js → B_V_KZmg.js} +1 -1
- package/.output/public/_nuxt/{DB0uzc_1.js → BaTcZylh.js} +1 -1
- package/.output/public/_nuxt/{zvDhkxQS.js → BbdFZa4U.js} +1 -1
- package/.output/public/_nuxt/{DmHn_Ae8.js → BeAxkmtt.js} +1 -1
- package/.output/public/_nuxt/{CruI_TS3.js → BfiU8B4M.js} +1 -1
- package/.output/public/_nuxt/{DuH9QzIG.js → BhOf69HZ.js} +1 -1
- package/.output/public/_nuxt/{lfg-J79K.js → BlKgmZLh.js} +1 -1
- package/.output/public/_nuxt/{Cfce_cVw.js → BlplwzgB.js} +1 -1
- package/.output/public/_nuxt/{D5IKvGig.js → BnmZcuhY.js} +1 -1
- package/.output/public/_nuxt/{DfAWgXhg.js → BpExBTyC.js} +1 -1
- package/.output/public/_nuxt/{DIMnGgEU.js → BuURpKT4.js} +1 -1
- package/.output/public/_nuxt/{B5oEzB-M.js → Bvqgc_wA.js} +1 -1
- package/.output/public/_nuxt/{Dfi2mj_-.js → C0FuVjdX.js} +1 -1
- package/.output/public/_nuxt/{QNqSZCYh.js → C1RFLzd_.js} +1 -1
- package/.output/public/_nuxt/{DMCE1Up6.js → C4MrxKnP.js} +1 -1
- package/.output/public/_nuxt/{D5AjrkGO.js → C4ui9LWq.js} +1 -1
- package/.output/public/_nuxt/{iVfmia7K.js → C7RIYfkH.js} +1 -1
- package/.output/public/_nuxt/{D4wS6gzr.js → C7hn68Tp.js} +1 -1
- package/.output/public/_nuxt/{BHAaeL5L.js → C8gC5cUj.js} +1 -1
- package/.output/public/_nuxt/{CBJQYyqD.js → CAJH0xMY.js} +1 -1
- package/.output/public/_nuxt/{Bk_mzzQ3.js → CBpuaar1.js} +1 -1
- package/.output/public/_nuxt/{m9zGH_2s.js → CDP4J5em.js} +1 -1
- package/.output/public/_nuxt/{NNQizITf.js → CGTQGJ_c.js} +1 -1
- package/.output/public/_nuxt/{Ehiy7Wkv.js → CHd8mdNy.js} +1 -1
- package/.output/public/_nuxt/{BtVAOj3K.js → CHn6tbtE.js} +1 -1
- package/.output/public/_nuxt/{B1ea1Zc2.js → CKfAI3Hb.js} +1 -1
- package/.output/public/_nuxt/{CbLvLXmb.js → CLm_rHHY.js} +1 -1
- package/.output/public/_nuxt/{DFPu4h4a.js → CLzxl_Kg.js} +1 -1
- package/.output/public/_nuxt/{C3dJrgZH.js → CNVj60PG.js} +1 -1
- package/.output/public/_nuxt/{VRRYjCaC.js → CNi_mvQS.js} +1 -1
- package/.output/public/_nuxt/{46eRQaVv.js → COMJZX17.js} +1 -1
- package/.output/public/_nuxt/{Brmj91Ns.js → CQcJNYmv.js} +1 -1
- package/.output/public/_nuxt/{BMTKvzsm.js → CT8T1FW9.js} +1 -1
- package/.output/public/_nuxt/{B02JOKtW.js → CTJDAjdO.js} +1 -1
- package/.output/public/_nuxt/{w3RSHXA6.js → CTXxmwx3.js} +1 -1
- package/.output/public/_nuxt/{CIMG8oEU.js → CV92g0qz.js} +1 -1
- package/.output/public/_nuxt/{DEBOaUgW.js → CVwzer_Y.js} +1 -1
- package/.output/public/_nuxt/{6k0gxaWW.js → CXRkSVkD.js} +1 -1
- package/.output/public/_nuxt/{C7Wu2u5C.js → CamCmKfq.js} +1 -1
- package/.output/public/_nuxt/{DM9s28TO.js → CaohnGAD.js} +1 -1
- package/.output/public/_nuxt/{BqyI8nU4.js → Cg8k3_b4.js} +1 -1
- package/.output/public/_nuxt/{rVZcJ6Pz.js → CiQJYbKL.js} +1 -1
- package/.output/public/_nuxt/{Co86ycpI.js → Cjj-eCEV.js} +1 -1
- package/.output/public/_nuxt/{B3TXSB_R.js → CkfP4uja.js} +1 -1
- package/.output/public/_nuxt/{81-iumfM.js → CoUQ3qpL.js} +1 -1
- package/.output/public/_nuxt/{CPb6IrVT.js → CopZwjN8.js} +1 -1
- package/.output/public/_nuxt/{FGRiZ9J1.js → Cpyrc9BG.js} +1 -1
- package/.output/public/_nuxt/{6DKJrPTD.js → CtLfbSRS.js} +1 -1
- package/.output/public/_nuxt/{CVTUqEcr.js → CtyKXJ-J.js} +1 -1
- package/.output/public/_nuxt/{By5L5Smf.js → CvaD7s2l.js} +1 -1
- package/.output/public/_nuxt/{QmdcFt0E.js → Cw2TcJMF.js} +1 -1
- package/.output/public/_nuxt/{ByXbV9Xa.js → Cwel2ykQ.js} +1 -1
- package/.output/public/_nuxt/{CLmiWiqr.js → CyZlzytZ.js} +1 -1
- package/.output/public/_nuxt/{DXAD_aZW.js → Cygjd4rF.js} +1 -1
- package/.output/public/_nuxt/{DoSrePUc.js → CzxGRepV.js} +1 -1
- package/.output/public/_nuxt/{Dkpxacka.js → D0fJg-Y2.js} +1 -1
- package/.output/public/_nuxt/{BW-7wimi.js → D12yGpMq.js} +1 -1
- package/.output/public/_nuxt/{uCsI7fpg.js → D7Bxfxio.js} +1 -1
- package/.output/public/_nuxt/{D_1GDAlv.js → DEl5RR7R.js} +1 -1
- package/.output/public/_nuxt/{3hFj0Mf_.js → DFVXHy0C.js} +1 -1
- package/.output/public/_nuxt/{7msxmF5v.js → DFW8HOVB.js} +1 -1
- package/.output/public/_nuxt/{CD6r4z4e.js → DH2yWNbZ.js} +1 -1
- package/.output/public/_nuxt/{AMPsjNHJ.js → DIDjR8Ry.js} +1 -1
- package/.output/public/_nuxt/{B8na0pik.js → DKHJBr2m.js} +1 -1
- package/.output/public/_nuxt/{CDKJK4wW.js → DKd2_wBj.js} +1 -1
- package/.output/public/_nuxt/{CD_jDSWh.js → DKrd1pCW.js} +1 -1
- package/.output/public/_nuxt/{gTGPvkTX.js → DOcEwtqN.js} +1 -1
- package/.output/public/_nuxt/{B0_Iu2zi.js → DSQ9bpNJ.js} +1 -1
- package/.output/public/_nuxt/{BigIAhcT.js → DWG9jKCo.js} +1 -1
- package/.output/public/_nuxt/{Cj3gDP-y.js → DY78sr_b.js} +1 -1
- package/.output/public/_nuxt/{Cwdn7ZtG.js → DZQxxfue.js} +1 -1
- package/.output/public/_nuxt/{DN5cHXGS.js → DZpgj5sA.js} +1 -1
- package/.output/public/_nuxt/{CZ5B974o.js → Dc8vLBQN.js} +1 -1
- package/.output/public/_nuxt/{9vdFTPZC.js → DcT64MxD.js} +1 -1
- package/.output/public/_nuxt/{BwLYFg9w.js → DdmLHNRP.js} +1 -1
- package/.output/public/_nuxt/{Bn175bDC.js → Dg19_qAK.js} +1 -1
- package/.output/public/_nuxt/{BTImkTzA.js → DhIZvLeI.js} +1 -1
- package/.output/public/_nuxt/{DOTIy97K.js → DjaEQQhf.js} +1 -1
- package/.output/public/_nuxt/{CJLlvuDm.js → DkUMlRf8.js} +1 -1
- package/.output/public/_nuxt/{BTs0cu3F.js → DkjKiJOq.js} +1 -1
- package/.output/public/_nuxt/{CIDjuJ7I.js → DlR5hUi3.js} +1 -1
- package/.output/public/_nuxt/{P3qGksT8.js → DnfG5RzJ.js} +1 -1
- package/.output/public/_nuxt/{DOs_ozN6.js → DohhIeRk.js} +1 -1
- package/.output/public/_nuxt/{lA6pb86B.js → Dom1vIen.js} +1 -1
- package/.output/public/_nuxt/{BGa5KqPj.js → Ds97nj0P.js} +1 -1
- package/.output/public/_nuxt/{v-LIF5tR.js → DxT3YmAC.js} +1 -1
- package/.output/public/_nuxt/{UQIfAAmf.js → DxcN7Uv7.js} +1 -1
- package/.output/public/_nuxt/{qI8JV5dU.js → DxcbYcrE.js} +1 -1
- package/.output/public/_nuxt/{DfP6jcEM.js → DyVUuE07.js} +1 -1
- package/.output/public/_nuxt/{DoGLYOlq.js → Dz-vwDzE.js} +1 -1
- package/.output/public/_nuxt/{CrHLmWKE.js → EeCE4NvG.js} +1 -1
- package/.output/public/_nuxt/{BVkPh7-9.js → EnGykH_X.js} +1 -1
- package/.output/public/_nuxt/{By6urPVf.js → GJMyZaby.js} +1 -1
- package/.output/public/_nuxt/{mLs_Q7_U.js → I7OHJVxg.js} +1 -1
- package/.output/public/_nuxt/{bHsFNLQP.js → K0RZW9fp.js} +1 -1
- package/.output/public/_nuxt/{CSyssKl8.js → K1o4brLx.js} +1 -1
- package/.output/public/_nuxt/{CZvTOsiz.js → OKVQJ7yj.js} +1 -1
- package/.output/public/_nuxt/{3AgfIirx.js → Q3QJAuZ2.js} +1 -1
- package/.output/public/_nuxt/{D57E8FC4.js → Tirj2rC0.js} +1 -1
- package/.output/public/_nuxt/{BVcLiEDk.js → VcsszHDj.js} +1 -1
- package/.output/public/_nuxt/WG3LXN-9.js +1 -0
- package/.output/public/_nuxt/{CCmSsj4q.js → aUYaYlYl.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/7de5e0df-2e0a-435c-a2e3-fc2312beb6ad.json +1 -0
- package/.output/public/_nuxt/{swgNRlWy.js → cGEbEAGz.js} +1 -1
- package/.output/public/_nuxt/{BaHB7JKe.js → ds0WOZHj.js} +1 -1
- package/.output/public/_nuxt/{IIvTjJqa.js → e4zQkzJm.js} +1 -1
- package/.output/public/_nuxt/{D45gWhSU.js → eFu2sWbl.js} +1 -1
- package/.output/public/_nuxt/entry.B0qcqYYu.css +1 -0
- package/.output/public/_nuxt/{ChIzYvpz.js → ggWK6BEa.js} +1 -1
- package/.output/public/_nuxt/{pFPRVtL-.js → hkCaWCzP.js} +1 -1
- package/.output/public/_nuxt/{BW0bq0Nu.js → jF9FNyOl.js} +1 -1
- package/.output/public/_nuxt/{CjVBL0o-.js → jenjyHml.js} +1 -1
- package/.output/public/_nuxt/{CtNN2F57.js → kMwuhvCf.js} +1 -1
- package/.output/public/_nuxt/{1_nO5SO6.js → oWO88tvt.js} +1 -1
- package/.output/public/_nuxt/{d85YwuyC.js → olSL1K5t.js} +1 -1
- package/.output/public/_nuxt/{DwEfItxe.js → ptAR8AWT.js} +1 -1
- package/.output/public/_nuxt/{Dbv2gAYq.js → rTscsMvH.js} +1 -1
- package/.output/public/_nuxt/{Bxs6RCfp.js → xooRr3tW.js} +1 -1
- package/.output/public/_nuxt/{n5X4vNX9.js → zApTn6EM.js} +2 -2
- package/.output/server/chunks/build/client.precomputed.mjs +1 -1
- package/.output/server/chunks/build/{memories-BqA719O1.mjs → memories-DLa6uEfV.mjs} +2 -31
- package/.output/server/chunks/build/memories-DLa6uEfV.mjs.map +1 -0
- package/.output/server/chunks/build/server.mjs +1 -1
- package/.output/server/chunks/nitro/nitro.mjs +944 -922
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
- package/.output/server/chunks/routes/{terminal.mjs → _ws/terminal.mjs} +39 -28
- package/.output/server/chunks/routes/_ws/terminal.mjs.map +1 -0
- package/.output/server/chunks/routes/api/memory/context.get.mjs +13 -9
- package/.output/server/chunks/routes/api/memory/context.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/memory/extract.post.mjs +4 -7
- package/.output/server/chunks/routes/api/memory/extract.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/memory/search.get.mjs +22 -25
- package/.output/server/chunks/routes/api/memory/search.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/memory/store.post.mjs +1 -3
- package/.output/server/chunks/routes/api/memory/store.post.mjs.map +1 -1
- package/.output/server/chunks/routes/notifications.mjs +1 -1
- package/.output/server/package.json +1 -1
- package/Claude/skills/memory/memory.py +1 -7
- package/app/composables/useTerminal.ts +1 -1
- package/app/pages/memories.vue +0 -15
- package/dist/cli/index.js +1 -0
- package/package.json +1 -1
- package/server/api/memory/context.get.ts +19 -15
- package/server/api/memory/extract.post.ts +1 -2
- package/server/api/memory/search.get.ts +29 -34
- package/server/api/memory/store.post.ts +1 -2
- package/server/bridge/responder.ts +10 -5
- package/server/db/schema.ts +1 -2
- package/server/drizzle/migrations/0017_unusual_landau.sql +1 -0
- package/server/drizzle/migrations/meta/0017_snapshot.json +1965 -0
- package/server/drizzle/migrations/meta/_journal.json +7 -0
- package/server/routes/_ws/terminal.ts +111 -0
- package/server/services/memory-extractor.ts +3 -6
- package/server/utils/document-sync.ts +27 -20
- package/server/utils/pty-manager.ts +12 -3
- package/shared/types/index.ts +1 -4
- package/.output/public/_nuxt/BhtKu4xV.js +0 -1
- package/.output/public/_nuxt/CNB4wNeh.js +0 -1
- package/.output/public/_nuxt/CnB-ybCZ.js +0 -1
- package/.output/public/_nuxt/DAjV9Cip.js +0 -1
- package/.output/public/_nuxt/Suor9Vto.js +0 -1
- package/.output/public/_nuxt/builds/meta/d37c41da-8cec-4479-a3ac-3097aa4fb2e0.json +0 -1
- package/.output/public/_nuxt/entry.ZJxWCrU6.css +0 -1
- package/.output/server/chunks/build/memories-BqA719O1.mjs.map +0 -1
- package/.output/server/chunks/routes/terminal.mjs.map +0 -1
- package/server/routes/terminal.ts +0 -98
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as j,e as S,C as it,a5 as dt,M as c,o as s,ac as a,al as U,am as A,aa as h,af as k,$ as p,a as o,aq as G,W as D,h as x,ap as z,c as b,w as l,r as w,P,bH as O,ah as ct,bD as rt,f as R,bI as ut,aj as mt,Z as n,_ as pt,a0 as ft,ab as g}from"./CGgHmnnS.js";import{_ as _t,a as vt}from"./B8na0pik.js";import{_ as gt}from"./1_nO5SO6.js";import{d as yt,_ as xt,u as ht}from"./CruI_TS3.js";import{_ as bt}from"./NNQizITf.js";import{_ as kt}from"./n5X4vNX9.js";import{_ as wt}from"./Bn175bDC.js";import{p as Ct}from"./BD07a6OS.js";import{u as $t}from"./CjVBL0o-.js";import{u as Ut}from"./B5oEzB-M.js";import{u as zt}from"./CIMG8oEU.js";import"./Vcq4gwWv.js";import"./88opOQSr.js";import"./iik6CYzq.js";import"./AMPsjNHJ.js";import"./CqkleIqs.js";import"./CD6r4z4e.js";const Tt={key:0,class:"space-y-1"},Bt=["onClick"],Ft=["onClick"],St={key:1,class:"text-sm text-dimmed italic"},At=j({__name:"ViewToc",props:{links:{}},setup(f){const i=S(null);function u(_){const d=document.getElementById(_);d&&d.scrollIntoView({behavior:"smooth",block:"start"})}return it(()=>{const _=document.querySelectorAll("h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]"),d=new IntersectionObserver(t=>{for(const m of t)if(m.isIntersecting){i.value=m.target.id;break}},{rootMargin:"-80px 0px -80% 0px"});_.forEach(t=>d.observe(t)),dt(()=>d.disconnect())}),(_,d)=>f.links.length?(s(),c("nav",Tt,[d[0]||(d[0]=a("p",{class:"text-sm font-semibold text-muted mb-3"}," On this page ",-1)),(s(!0),c(U,null,A(f.links,t=>(s(),c(U,{key:t.id},[a("button",{type:"button",class:p(["block w-full text-left text-sm py-1 hover:text-primary transition-colors",[o(i)===t.id?"text-primary font-medium":"text-dimmed",t.depth===2&&"pl-0",t.depth===3&&"pl-4",t.depth>=4&&"pl-8"]]),onClick:m=>u(t.id)},k(t.text),11,Bt),t.children?.length?(s(!0),c(U,{key:0},A(t.children,m=>(s(),c("button",{key:m.id,type:"button",class:p(["block w-full text-left text-sm py-1 hover:text-primary transition-colors pl-4",o(i)===m.id?"text-primary font-medium":"text-dimmed"]),onClick:q=>u(m.id)},k(m.text),11,Ft))),128)):h("",!0)],64))),128))])):(s(),c("div",St," No headings found "))}}),Dt=Object.assign(At,{__name:"ViewToc"}),Pt={slots:{root:"hidden overflow-y-auto lg:block lg:max-h-[calc(100vh-var(--ui-header-height))] lg:sticky lg:top-(--ui-header-height) py-8 lg:ps-4 lg:-ms-4 lg:pe-6.5",container:"relative",top:"sticky -top-8 -mt-8 pointer-events-none z-[1]",topHeader:"h-8 bg-default -mx-4 px-4",topBody:"bg-default relative pointer-events-auto flex flex-col -mx-4 px-4",topFooter:"h-8 bg-gradient-to-b from-default -mx-4 px-4"}},qt={__name:"UPageAside",props:{as:{type:null,required:!1,default:"aside"},class:{type:null,required:!1},ui:{type:null,required:!1}},setup(f){const i=f,u=G(),_=D(),d=x(()=>z({extend:z(Pt),..._.ui?.pageAside||{}})());return(t,m)=>(s(),b(o(P),{as:f.as,"data-slot":"root",class:p(d.value.root({class:[i.ui?.root,i.class]}))},{default:l(()=>[a("div",{"data-slot":"container",class:p(d.value.container({class:i.ui?.container}))},[u.top?(s(),c("div",{key:0,"data-slot":"top",class:p(d.value.top({class:i.ui?.top}))},[a("div",{"data-slot":"topHeader",class:p(d.value.topHeader({class:i.ui?.topHeader}))},null,2),a("div",{"data-slot":"topBody",class:p(d.value.topBody({class:i.ui?.topBody}))},[w(t.$slots,"top")],2),a("div",{"data-slot":"topFooter",class:p(d.value.topFooter({class:i.ui?.topFooter}))},null,2)],2)):h("",!0),w(t.$slots,"default"),w(t.$slots,"bottom")],2)]),_:3},8,["as","class"]))}},Et={base:"mt-8 pb-24 space-y-12"},It={__name:"UPageBody",props:{as:{type:null,required:!1},class:{type:null,required:!1}},setup(f){const i=f,u=D(),_=x(()=>z({extend:z(Et),...u.ui?.pageBody||{}}));return(d,t)=>(s(),b(o(P),{as:f.as,class:p(_.value({class:i.class}))},{default:l(()=>[w(d.$slots,"default")]),_:3},8,["as","class"]))}},Lt={slots:{root:"flex flex-col lg:grid lg:grid-cols-10 lg:gap-10",left:"lg:col-span-2",center:"lg:col-span-8",right:"lg:col-span-2 order-first lg:order-last"},variants:{left:{true:""},right:{true:""}},compoundVariants:[{left:!0,right:!0,class:{center:"lg:col-span-6"}},{left:!1,right:!1,class:{center:"lg:col-span-10"}}]},Vt={__name:"UPage",props:{as:{type:null,required:!1},class:{type:null,required:!1},ui:{type:null,required:!1}},setup(f){const i=f,u=G(),_=D(),d=x(()=>z({extend:z(Lt),..._.ui?.page||{}})({left:!!u.left,right:!!u.right}));return(t,m)=>(s(),b(o(P),{as:f.as,"data-slot":"root",class:p(d.value.root({class:[i.ui?.root,i.class]}))},{default:l(()=>[u.left?(s(),b(o(O),{key:0,"data-slot":"left",class:p(d.value.left({class:i.ui?.left}))},{default:l(()=>[w(t.$slots,"left")]),_:3},8,["class"])):h("",!0),a("div",{"data-slot":"center",class:p(d.value.center({class:i.ui?.center}))},[w(t.$slots,"default")],2),u.right?(s(),b(o(O),{key:1,"data-slot":"right",class:p(d.value.right({class:i.ui?.right}))},{default:l(()=>[w(t.$slots,"right")]),_:3},8,["class"])):h("",!0)]),_:3},8,["as","class"]))}},Ht=vt(gt),Mt={key:0,class:"py-24 text-center"},Nt={key:1,class:"py-24 text-center"},Ot={key:2,class:"py-24 text-center"},Rt={key:3,class:"py-24 text-center"},jt={class:"flex items-center justify-between mb-4"},Gt={class:"text-2xl font-bold"},Wt={class:"flex items-center gap-2"},Zt={class:"border border-default rounded-lg overflow-hidden"},Jt={class:"flex items-center justify-between mb-4"},Kt={class:"text-2xl font-bold"},Qt={class:"flex items-center gap-2"},Xt={class:"flex flex-wrap items-center gap-4 text-sm text-dimmed mb-6"},Yt={key:0,class:"flex items-center gap-1.5"},te={class:"flex items-center gap-1.5"},ee={key:1,class:"flex items-center gap-1.5"},oe={key:2,class:"flex items-center gap-1.5"},se={class:"flex gap-1"},ae={key:0,class:"border border-default rounded-lg overflow-hidden"},ne={class:"prose prose-primary dark:prose-invert max-w-none"},we=j({__name:"[uuid]",async setup(f){let i,u;const _=ct(),d=x(()=>_.params.uuid),{data:t,error:m,status:q}=([i,u]=rt(()=>$t(`/api/documents/${d.value}/public`,"$x-U1b672rk")),i=await i,u(),i),B=S([]);R(()=>t.value?.data?.content,async r=>{if(r)try{const e=await Ct(r);B.value=e.toc?.links||[]}catch(e){console.error("Failed to parse markdown for TOC:",e),B.value=[]}},{immediate:!0});const W=x(()=>m.value?.statusCode===404),Z=x(()=>m.value?.statusCode===403),J=x(()=>t.value?.data?.document?.fileType==="markdown"),K=x(()=>t.value?.data?.document?.fileType==="text"),Q=x(()=>t.value?.data?.document?.fileType==="binary"),X=x(()=>yt(t.value?.data?.document?.path||""));ut({title:()=>t.value?.data?.document?.title||"Document",description:"Shared document from Cognova",robots:()=>t.value?.data?.document?.shareType==="public"?"index, follow":"noindex, nofollow"});const{isAuthenticated:E}=Ut(),{viewSourceMode:I}=zt(),C=S(I.value);R(C,r=>I.value=r);const L=mt(),{copy:Y}=ht();async function V(){const r=t.value?.data?.content;if(!r)return;await Y(r)?L.add({title:"Copied to clipboard",icon:"i-lucide-check",color:"success"}):L.add({title:"Failed to copy",icon:"i-lucide-x",color:"error"})}function H(){const r=t.value?.data?.content,e=t.value?.data?.document?.path;if(!r||!e)return;const y=e.split("/").pop()||"document.txt",v=new Blob([r],{type:"text/plain;charset=utf-8"}),T=URL.createObjectURL(v),$=document.createElement("a");$.href=T,$.download=y,$.click(),URL.revokeObjectURL(T)}function M(r){return r?new Date(r).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}):""}return(r,e)=>{const y=pt,v=ft,T=Ht,$=xt,N=_t,tt=bt,et=Dt,ot=qt,st=kt,at=It,nt=Vt,lt=wt;return s(),b(lt,{class:"py-8"},{default:l(()=>[o(W)?(s(),c("div",Mt,[n(y,{name:"i-lucide-file-x",class:"size-16 mx-auto mb-4 text-dimmed"}),e[2]||(e[2]=a("h1",{class:"text-2xl font-bold mb-2"}," Document Not Found ",-1)),e[3]||(e[3]=a("p",{class:"text-dimmed mb-6"}," This document doesn't exist or has been deleted. ",-1)),n(v,{to:"/",variant:"soft"},{default:l(()=>[...e[1]||(e[1]=[g(" Go Home ",-1)])]),_:1})])):o(Z)?(s(),c("div",Nt,[n(y,{name:"i-lucide-lock",class:"size-16 mx-auto mb-4 text-dimmed"}),e[5]||(e[5]=a("h1",{class:"text-2xl font-bold mb-2"}," Access Denied ",-1)),e[6]||(e[6]=a("p",{class:"text-dimmed mb-6"}," This document is not publicly shared. ",-1)),n(v,{to:"/login",variant:"soft"},{default:l(()=>[...e[4]||(e[4]=[g(" Sign In ",-1)])]),_:1})])):o(Q)&&o(t)?.data?(s(),c("div",Ot,[n(y,{name:"i-lucide-file-warning",class:"size-16 mx-auto mb-4 text-dimmed"}),e[8]||(e[8]=a("h1",{class:"text-2xl font-bold mb-2"}," Cannot Preview This File ",-1)),e[9]||(e[9]=a("p",{class:"text-dimmed mb-6"}," Binary files cannot be previewed. ",-1)),n(v,{to:"/",variant:"soft"},{default:l(()=>[...e[7]||(e[7]=[g(" Go Home ",-1)])]),_:1})])):o(q)==="pending"?(s(),c("div",Rt,[n(y,{name:"i-lucide-loader-2",class:"size-8 mx-auto animate-spin text-dimmed"})])):o(K)&&o(t)?.data?.content?(s(),c(U,{key:4},[a("div",jt,[a("h1",Gt,k(o(t).data.document.title),1),a("div",Wt,[n(v,{icon:"i-lucide-copy",variant:"ghost",size:"sm",onClick:V},{default:l(()=>[...e[10]||(e[10]=[g(" Copy ",-1)])]),_:1}),n(v,{icon:"i-lucide-download",variant:"ghost",size:"sm",onClick:H},{default:l(()=>[...e[11]||(e[11]=[g(" Download ",-1)])]),_:1}),o(E)?(s(),b(v,{key:0,icon:"i-lucide-pencil",variant:"soft",size:"sm",to:`/docs?path=${encodeURIComponent(o(t).data.document.path)}`},{default:l(()=>[...e[12]||(e[12]=[g(" Edit ",-1)])]),_:1},8,["to"])):h("",!0)])]),a("div",Zt,[n(N,null,{fallback:l(()=>[n($,{class:"h-96"})]),default:l(()=>[n(T,{"model-value":o(t).data.content,language:o(X),"read-only":!0,class:"max-h-[80vh]"},null,8,["model-value","language"])]),_:1})])],64)):o(J)&&o(t)?.data?.content?(s(),c(U,{key:5},[a("div",Jt,[a("h1",Kt,k(o(t).data.document.title),1),a("div",Qt,[n(v,{icon:o(C)?"i-lucide-eye":"i-lucide-code",variant:"ghost",size:"sm",onClick:e[0]||(e[0]=F=>C.value=!o(C))},{default:l(()=>[g(k(o(C)?"Preview":"Source"),1)]),_:1},8,["icon"]),n(v,{icon:"i-lucide-copy",variant:"ghost",size:"sm",onClick:V},{default:l(()=>[...e[13]||(e[13]=[g(" Copy ",-1)])]),_:1}),n(v,{icon:"i-lucide-download",variant:"ghost",size:"sm",onClick:H},{default:l(()=>[...e[14]||(e[14]=[g(" Download ",-1)])]),_:1}),o(E)?(s(),b(v,{key:0,icon:"i-lucide-pencil",variant:"soft",size:"sm",to:`/docs?path=${encodeURIComponent(o(t).data.document.path)}`},{default:l(()=>[...e[15]||(e[15]=[g(" Edit ",-1)])]),_:1},8,["to"])):h("",!0)])]),a("div",Xt,[o(t).data.document.creatorName?(s(),c("div",Yt,[n(y,{name:"i-lucide-user",class:"size-4"}),a("span",null,k(o(t).data.document.creatorName),1)])):h("",!0),a("div",te,[n(y,{name:"i-lucide-calendar",class:"size-4"}),a("span",null,k(M(o(t).data.document.createdAt)),1)]),o(t).data.document.modifiedAt?(s(),c("div",ee,[n(y,{name:"i-lucide-pencil",class:"size-4"}),a("span",null,"Updated "+k(M(o(t).data.document.modifiedAt)),1)])):h("",!0),o(t).data.document.tags?.length?(s(),c("div",oe,[n(y,{name:"i-lucide-tags",class:"size-4"}),a("div",se,[(s(!0),c(U,null,A(o(t).data.document.tags,F=>(s(),b(tt,{key:F,color:"neutral",variant:"subtle",size:"sm"},{default:l(()=>[g(k(F),1)]),_:2},1024))),128))])])):h("",!0)]),o(C)?(s(),c("div",ae,[n(N,null,{fallback:l(()=>[n($,{class:"h-96"})]),default:l(()=>[n(T,{"model-value":o(t).data.content,language:"markdown","read-only":!0,class:"max-h-[80vh]"},null,8,["model-value"])]),_:1})])):(s(),b(nt,{key:1},{left:l(()=>[n(ot,null,{default:l(()=>[n(et,{links:o(B)},null,8,["links"])]),_:1})]),default:l(()=>[n(at,null,{default:l(()=>[a("div",ne,[n(st,{value:o(t).data.content},null,8,["value"])])]),_:1})]),_:1}))],64)):h("",!0)]),_:1})}}});export{we as default};
|
|
1
|
+
import{d as j,e as S,C as it,a5 as dt,M as c,o as s,ac as a,al as U,am as A,aa as h,af as k,$ as p,a as o,aq as G,W as D,h as x,ap as z,c as b,w as l,r as w,P,bH as O,ah as ct,bD as rt,f as R,bI as ut,aj as mt,Z as n,_ as pt,a0 as ft,ab as g}from"./B06CcGVK.js";import{_ as _t,a as vt}from"./DKHJBr2m.js";import{_ as gt}from"./oWO88tvt.js";import{d as yt,_ as xt,u as ht}from"./BfiU8B4M.js";import{_ as bt}from"./CGTQGJ_c.js";import{_ as kt}from"./zApTn6EM.js";import{_ as wt}from"./Dg19_qAK.js";import{p as Ct}from"./B6BF2w8r.js";import{u as $t}from"./jenjyHml.js";import{u as Ut}from"./Bvqgc_wA.js";import{u as zt}from"./CV92g0qz.js";import"./Vcq4gwWv.js";import"./88opOQSr.js";import"./iik6CYzq.js";import"./DIDjR8Ry.js";import"./CqkleIqs.js";import"./DH2yWNbZ.js";const Tt={key:0,class:"space-y-1"},Bt=["onClick"],Ft=["onClick"],St={key:1,class:"text-sm text-dimmed italic"},At=j({__name:"ViewToc",props:{links:{}},setup(f){const i=S(null);function u(_){const d=document.getElementById(_);d&&d.scrollIntoView({behavior:"smooth",block:"start"})}return it(()=>{const _=document.querySelectorAll("h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]"),d=new IntersectionObserver(t=>{for(const m of t)if(m.isIntersecting){i.value=m.target.id;break}},{rootMargin:"-80px 0px -80% 0px"});_.forEach(t=>d.observe(t)),dt(()=>d.disconnect())}),(_,d)=>f.links.length?(s(),c("nav",Tt,[d[0]||(d[0]=a("p",{class:"text-sm font-semibold text-muted mb-3"}," On this page ",-1)),(s(!0),c(U,null,A(f.links,t=>(s(),c(U,{key:t.id},[a("button",{type:"button",class:p(["block w-full text-left text-sm py-1 hover:text-primary transition-colors",[o(i)===t.id?"text-primary font-medium":"text-dimmed",t.depth===2&&"pl-0",t.depth===3&&"pl-4",t.depth>=4&&"pl-8"]]),onClick:m=>u(t.id)},k(t.text),11,Bt),t.children?.length?(s(!0),c(U,{key:0},A(t.children,m=>(s(),c("button",{key:m.id,type:"button",class:p(["block w-full text-left text-sm py-1 hover:text-primary transition-colors pl-4",o(i)===m.id?"text-primary font-medium":"text-dimmed"]),onClick:q=>u(m.id)},k(m.text),11,Ft))),128)):h("",!0)],64))),128))])):(s(),c("div",St," No headings found "))}}),Dt=Object.assign(At,{__name:"ViewToc"}),Pt={slots:{root:"hidden overflow-y-auto lg:block lg:max-h-[calc(100vh-var(--ui-header-height))] lg:sticky lg:top-(--ui-header-height) py-8 lg:ps-4 lg:-ms-4 lg:pe-6.5",container:"relative",top:"sticky -top-8 -mt-8 pointer-events-none z-[1]",topHeader:"h-8 bg-default -mx-4 px-4",topBody:"bg-default relative pointer-events-auto flex flex-col -mx-4 px-4",topFooter:"h-8 bg-gradient-to-b from-default -mx-4 px-4"}},qt={__name:"UPageAside",props:{as:{type:null,required:!1,default:"aside"},class:{type:null,required:!1},ui:{type:null,required:!1}},setup(f){const i=f,u=G(),_=D(),d=x(()=>z({extend:z(Pt),..._.ui?.pageAside||{}})());return(t,m)=>(s(),b(o(P),{as:f.as,"data-slot":"root",class:p(d.value.root({class:[i.ui?.root,i.class]}))},{default:l(()=>[a("div",{"data-slot":"container",class:p(d.value.container({class:i.ui?.container}))},[u.top?(s(),c("div",{key:0,"data-slot":"top",class:p(d.value.top({class:i.ui?.top}))},[a("div",{"data-slot":"topHeader",class:p(d.value.topHeader({class:i.ui?.topHeader}))},null,2),a("div",{"data-slot":"topBody",class:p(d.value.topBody({class:i.ui?.topBody}))},[w(t.$slots,"top")],2),a("div",{"data-slot":"topFooter",class:p(d.value.topFooter({class:i.ui?.topFooter}))},null,2)],2)):h("",!0),w(t.$slots,"default"),w(t.$slots,"bottom")],2)]),_:3},8,["as","class"]))}},Et={base:"mt-8 pb-24 space-y-12"},It={__name:"UPageBody",props:{as:{type:null,required:!1},class:{type:null,required:!1}},setup(f){const i=f,u=D(),_=x(()=>z({extend:z(Et),...u.ui?.pageBody||{}}));return(d,t)=>(s(),b(o(P),{as:f.as,class:p(_.value({class:i.class}))},{default:l(()=>[w(d.$slots,"default")]),_:3},8,["as","class"]))}},Lt={slots:{root:"flex flex-col lg:grid lg:grid-cols-10 lg:gap-10",left:"lg:col-span-2",center:"lg:col-span-8",right:"lg:col-span-2 order-first lg:order-last"},variants:{left:{true:""},right:{true:""}},compoundVariants:[{left:!0,right:!0,class:{center:"lg:col-span-6"}},{left:!1,right:!1,class:{center:"lg:col-span-10"}}]},Vt={__name:"UPage",props:{as:{type:null,required:!1},class:{type:null,required:!1},ui:{type:null,required:!1}},setup(f){const i=f,u=G(),_=D(),d=x(()=>z({extend:z(Lt),..._.ui?.page||{}})({left:!!u.left,right:!!u.right}));return(t,m)=>(s(),b(o(P),{as:f.as,"data-slot":"root",class:p(d.value.root({class:[i.ui?.root,i.class]}))},{default:l(()=>[u.left?(s(),b(o(O),{key:0,"data-slot":"left",class:p(d.value.left({class:i.ui?.left}))},{default:l(()=>[w(t.$slots,"left")]),_:3},8,["class"])):h("",!0),a("div",{"data-slot":"center",class:p(d.value.center({class:i.ui?.center}))},[w(t.$slots,"default")],2),u.right?(s(),b(o(O),{key:1,"data-slot":"right",class:p(d.value.right({class:i.ui?.right}))},{default:l(()=>[w(t.$slots,"right")]),_:3},8,["class"])):h("",!0)]),_:3},8,["as","class"]))}},Ht=vt(gt),Mt={key:0,class:"py-24 text-center"},Nt={key:1,class:"py-24 text-center"},Ot={key:2,class:"py-24 text-center"},Rt={key:3,class:"py-24 text-center"},jt={class:"flex items-center justify-between mb-4"},Gt={class:"text-2xl font-bold"},Wt={class:"flex items-center gap-2"},Zt={class:"border border-default rounded-lg overflow-hidden"},Jt={class:"flex items-center justify-between mb-4"},Kt={class:"text-2xl font-bold"},Qt={class:"flex items-center gap-2"},Xt={class:"flex flex-wrap items-center gap-4 text-sm text-dimmed mb-6"},Yt={key:0,class:"flex items-center gap-1.5"},te={class:"flex items-center gap-1.5"},ee={key:1,class:"flex items-center gap-1.5"},oe={key:2,class:"flex items-center gap-1.5"},se={class:"flex gap-1"},ae={key:0,class:"border border-default rounded-lg overflow-hidden"},ne={class:"prose prose-primary dark:prose-invert max-w-none"},we=j({__name:"[uuid]",async setup(f){let i,u;const _=ct(),d=x(()=>_.params.uuid),{data:t,error:m,status:q}=([i,u]=rt(()=>$t(`/api/documents/${d.value}/public`,"$x-U1b672rk")),i=await i,u(),i),B=S([]);R(()=>t.value?.data?.content,async r=>{if(r)try{const e=await Ct(r);B.value=e.toc?.links||[]}catch(e){console.error("Failed to parse markdown for TOC:",e),B.value=[]}},{immediate:!0});const W=x(()=>m.value?.statusCode===404),Z=x(()=>m.value?.statusCode===403),J=x(()=>t.value?.data?.document?.fileType==="markdown"),K=x(()=>t.value?.data?.document?.fileType==="text"),Q=x(()=>t.value?.data?.document?.fileType==="binary"),X=x(()=>yt(t.value?.data?.document?.path||""));ut({title:()=>t.value?.data?.document?.title||"Document",description:"Shared document from Cognova",robots:()=>t.value?.data?.document?.shareType==="public"?"index, follow":"noindex, nofollow"});const{isAuthenticated:E}=Ut(),{viewSourceMode:I}=zt(),C=S(I.value);R(C,r=>I.value=r);const L=mt(),{copy:Y}=ht();async function V(){const r=t.value?.data?.content;if(!r)return;await Y(r)?L.add({title:"Copied to clipboard",icon:"i-lucide-check",color:"success"}):L.add({title:"Failed to copy",icon:"i-lucide-x",color:"error"})}function H(){const r=t.value?.data?.content,e=t.value?.data?.document?.path;if(!r||!e)return;const y=e.split("/").pop()||"document.txt",v=new Blob([r],{type:"text/plain;charset=utf-8"}),T=URL.createObjectURL(v),$=document.createElement("a");$.href=T,$.download=y,$.click(),URL.revokeObjectURL(T)}function M(r){return r?new Date(r).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}):""}return(r,e)=>{const y=pt,v=ft,T=Ht,$=xt,N=_t,tt=bt,et=Dt,ot=qt,st=kt,at=It,nt=Vt,lt=wt;return s(),b(lt,{class:"py-8"},{default:l(()=>[o(W)?(s(),c("div",Mt,[n(y,{name:"i-lucide-file-x",class:"size-16 mx-auto mb-4 text-dimmed"}),e[2]||(e[2]=a("h1",{class:"text-2xl font-bold mb-2"}," Document Not Found ",-1)),e[3]||(e[3]=a("p",{class:"text-dimmed mb-6"}," This document doesn't exist or has been deleted. ",-1)),n(v,{to:"/",variant:"soft"},{default:l(()=>[...e[1]||(e[1]=[g(" Go Home ",-1)])]),_:1})])):o(Z)?(s(),c("div",Nt,[n(y,{name:"i-lucide-lock",class:"size-16 mx-auto mb-4 text-dimmed"}),e[5]||(e[5]=a("h1",{class:"text-2xl font-bold mb-2"}," Access Denied ",-1)),e[6]||(e[6]=a("p",{class:"text-dimmed mb-6"}," This document is not publicly shared. ",-1)),n(v,{to:"/login",variant:"soft"},{default:l(()=>[...e[4]||(e[4]=[g(" Sign In ",-1)])]),_:1})])):o(Q)&&o(t)?.data?(s(),c("div",Ot,[n(y,{name:"i-lucide-file-warning",class:"size-16 mx-auto mb-4 text-dimmed"}),e[8]||(e[8]=a("h1",{class:"text-2xl font-bold mb-2"}," Cannot Preview This File ",-1)),e[9]||(e[9]=a("p",{class:"text-dimmed mb-6"}," Binary files cannot be previewed. ",-1)),n(v,{to:"/",variant:"soft"},{default:l(()=>[...e[7]||(e[7]=[g(" Go Home ",-1)])]),_:1})])):o(q)==="pending"?(s(),c("div",Rt,[n(y,{name:"i-lucide-loader-2",class:"size-8 mx-auto animate-spin text-dimmed"})])):o(K)&&o(t)?.data?.content?(s(),c(U,{key:4},[a("div",jt,[a("h1",Gt,k(o(t).data.document.title),1),a("div",Wt,[n(v,{icon:"i-lucide-copy",variant:"ghost",size:"sm",onClick:V},{default:l(()=>[...e[10]||(e[10]=[g(" Copy ",-1)])]),_:1}),n(v,{icon:"i-lucide-download",variant:"ghost",size:"sm",onClick:H},{default:l(()=>[...e[11]||(e[11]=[g(" Download ",-1)])]),_:1}),o(E)?(s(),b(v,{key:0,icon:"i-lucide-pencil",variant:"soft",size:"sm",to:`/docs?path=${encodeURIComponent(o(t).data.document.path)}`},{default:l(()=>[...e[12]||(e[12]=[g(" Edit ",-1)])]),_:1},8,["to"])):h("",!0)])]),a("div",Zt,[n(N,null,{fallback:l(()=>[n($,{class:"h-96"})]),default:l(()=>[n(T,{"model-value":o(t).data.content,language:o(X),"read-only":!0,class:"max-h-[80vh]"},null,8,["model-value","language"])]),_:1})])],64)):o(J)&&o(t)?.data?.content?(s(),c(U,{key:5},[a("div",Jt,[a("h1",Kt,k(o(t).data.document.title),1),a("div",Qt,[n(v,{icon:o(C)?"i-lucide-eye":"i-lucide-code",variant:"ghost",size:"sm",onClick:e[0]||(e[0]=F=>C.value=!o(C))},{default:l(()=>[g(k(o(C)?"Preview":"Source"),1)]),_:1},8,["icon"]),n(v,{icon:"i-lucide-copy",variant:"ghost",size:"sm",onClick:V},{default:l(()=>[...e[13]||(e[13]=[g(" Copy ",-1)])]),_:1}),n(v,{icon:"i-lucide-download",variant:"ghost",size:"sm",onClick:H},{default:l(()=>[...e[14]||(e[14]=[g(" Download ",-1)])]),_:1}),o(E)?(s(),b(v,{key:0,icon:"i-lucide-pencil",variant:"soft",size:"sm",to:`/docs?path=${encodeURIComponent(o(t).data.document.path)}`},{default:l(()=>[...e[15]||(e[15]=[g(" Edit ",-1)])]),_:1},8,["to"])):h("",!0)])]),a("div",Xt,[o(t).data.document.creatorName?(s(),c("div",Yt,[n(y,{name:"i-lucide-user",class:"size-4"}),a("span",null,k(o(t).data.document.creatorName),1)])):h("",!0),a("div",te,[n(y,{name:"i-lucide-calendar",class:"size-4"}),a("span",null,k(M(o(t).data.document.createdAt)),1)]),o(t).data.document.modifiedAt?(s(),c("div",ee,[n(y,{name:"i-lucide-pencil",class:"size-4"}),a("span",null,"Updated "+k(M(o(t).data.document.modifiedAt)),1)])):h("",!0),o(t).data.document.tags?.length?(s(),c("div",oe,[n(y,{name:"i-lucide-tags",class:"size-4"}),a("div",se,[(s(!0),c(U,null,A(o(t).data.document.tags,F=>(s(),b(tt,{key:F,color:"neutral",variant:"subtle",size:"sm"},{default:l(()=>[g(k(F),1)]),_:2},1024))),128))])])):h("",!0)]),o(C)?(s(),c("div",ae,[n(N,null,{fallback:l(()=>[n($,{class:"h-96"})]),default:l(()=>[n(T,{"model-value":o(t).data.content,language:"markdown","read-only":!0,class:"max-h-[80vh]"},null,8,["model-value"])]),_:1})])):(s(),b(nt,{key:1},{left:l(()=>[n(ot,null,{default:l(()=>[n(et,{links:o(B)},null,8,["links"])]),_:1})]),default:l(()=>[n(at,null,{default:l(()=>[a("div",ne,[n(st,{value:o(t).data.content},null,8,["value"])])]),_:1})]),_:1}))],64)):h("",!0)]),_:1})}}});export{we as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{aq as j,U as X,W as G,aC as _,aD as M,aA as Y,Y as ee,h as N,b8 as ae,M as y,o as s,Z as d,w as r,r as g,aa as I,ac as C,c as o,_ as w,$ as n,a as i,az as te,m as b,a1 as p,ab as W,af as R,al as q,am as S,aY as ie,b9 as Z,ba as H,aw as le,bb as se,bc as ne,aG as V,aH as E,aB as re,aZ as oe,ap as F}from"./CGgHmnnS.js";import{D as u,a as de,b as ce,c as ue}from"./C4Ii8cYC.js";import{c as ge}from"./pFPRVtL-.js";import{_ as fe}from"./ByXbV9Xa.js";const J={__name:"UDropdownMenuContent",props:{items:{type:null,required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0},sub:{type:Boolean,required:!1},labelKey:{type:null,required:!0},descriptionKey:{type:null,required:!0},checkedIcon:{type:null,required:!1},loadingIcon:{type:null,required:!1},externalIcon:{type:[Boolean,String],required:!1,skipCheck:!0},class:{type:null,required:!1},ui:{type:null,required:!0},uiOverride:{type:null,required:!1},loop:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","closeAutoFocus"],setup(e,{emit:z}){const l=e,O=z,h=j(),{dir:K}=X(),x=G(),$=_(M(()=>l.portal)),B=Y(ee(l,"sub","items","portal","labelKey","descriptionKey","checkedIcon","loadingIcon","externalIcon","class","ui","uiOverride"),O),A=()=>H(h,["default"]),[k,v]=ge(),U=N(()=>K.value==="rtl"?x.ui.icons.chevronLeft:x.ui.icons.chevronRight),P=N(()=>l.items?.length?ae(l.items)?l.items:[l.items]:[]);return(f,D)=>(s(),y(q,null,[d(i(k),null,{default:r(({item:a,active:c,index:t})=>[g(f.$slots,a.slot||"item",{item:a,index:t,ui:e.ui},()=>[g(f.$slots,a.slot?`${a.slot}-leading`:"item-leading",{item:a,active:c,index:t,ui:e.ui},()=>[a.loading?(s(),o(w,{key:0,name:e.loadingIcon||i(x).ui.icons.loading,"data-slot":"itemLeadingIcon",class:n(e.ui.itemLeadingIcon({class:[e.uiOverride?.itemLeadingIcon,a.ui?.itemLeadingIcon],color:a?.color,loading:!0}))},null,8,["name","class"])):a.icon?(s(),o(w,{key:1,name:a.icon,"data-slot":"itemLeadingIcon",class:n(e.ui.itemLeadingIcon({class:[e.uiOverride?.itemLeadingIcon,a.ui?.itemLeadingIcon],color:a?.color,active:c}))},null,8,["name","class"])):a.avatar?(s(),o(te,b({key:2,size:a.ui?.itemLeadingAvatarSize||e.uiOverride?.itemLeadingAvatarSize||e.ui.itemLeadingAvatarSize()},a.avatar,{"data-slot":"itemLeadingAvatar",class:e.ui.itemLeadingAvatar({class:[e.uiOverride?.itemLeadingAvatar,a.ui?.itemLeadingAvatar],active:c})}),null,16,["size","class"])):I("",!0)]),i(p)(a,l.labelKey)||h[a.slot?`${a.slot}-label`:"item-label"]||i(p)(a,l.descriptionKey)||h[a.slot?`${a.slot}-description`:"item-description"]?(s(),y("span",{key:0,"data-slot":"itemWrapper",class:n(e.ui.itemWrapper({class:[e.uiOverride?.itemWrapper,a.ui?.itemWrapper]}))},[C("span",{"data-slot":"itemLabel",class:n(e.ui.itemLabel({class:[e.uiOverride?.itemLabel,a.ui?.itemLabel],active:c}))},[g(f.$slots,a.slot?`${a.slot}-label`:"item-label",{item:a,active:c,index:t},()=>[W(R(i(p)(a,l.labelKey)),1)]),a.target==="_blank"&&e.externalIcon!==!1?(s(),o(w,{key:0,name:typeof e.externalIcon=="string"?e.externalIcon:i(x).ui.icons.external,"data-slot":"itemLabelExternalIcon",class:n(e.ui.itemLabelExternalIcon({class:[e.uiOverride?.itemLabelExternalIcon,a.ui?.itemLabelExternalIcon],color:a?.color,active:c}))},null,8,["name","class"])):I("",!0)],2),i(p)(a,l.descriptionKey)?(s(),y("span",{key:0,"data-slot":"itemDescription",class:n(e.ui.itemDescription({class:[e.uiOverride?.itemDescription,a.ui?.itemDescription]}))},[g(f.$slots,a.slot?`${a.slot}-description`:"item-description",{item:a,active:c,index:t},()=>[W(R(i(p)(a,l.descriptionKey)),1)])],2)):I("",!0)],2)):I("",!0),C("span",{"data-slot":"itemTrailing",class:n(e.ui.itemTrailing({class:[e.uiOverride?.itemTrailing,a.ui?.itemTrailing]}))},[g(f.$slots,a.slot?`${a.slot}-trailing`:"item-trailing",{item:a,active:c,index:t,ui:e.ui},()=>[a.children?.length?(s(),o(w,{key:0,name:U.value,"data-slot":"itemTrailingIcon",class:n(e.ui.itemTrailingIcon({class:[e.uiOverride?.itemTrailingIcon,a.ui?.itemTrailingIcon],color:a?.color,active:c}))},null,8,["name","class"])):a.kbds?.length?(s(),y("span",{key:1,"data-slot":"itemTrailingKbds",class:n(e.ui.itemTrailingKbds({class:[e.uiOverride?.itemTrailingKbds,a.ui?.itemTrailingKbds]}))},[(s(!0),y(q,null,S(a.kbds,(m,L)=>(s(),o(fe,b({key:L,size:a.ui?.itemTrailingKbdsSize||e.uiOverride?.itemTrailingKbdsSize||e.ui.itemTrailingKbdsSize()},{ref_for:!0},typeof m=="string"?{value:m}:m),null,16,["size"]))),128))],2)):I("",!0)]),d(i(u).ItemIndicator,{"as-child":""},{default:r(()=>[d(w,{name:e.checkedIcon||i(x).ui.icons.check,"data-slot":"itemTrailingIcon",class:n(e.ui.itemTrailingIcon({class:[e.uiOverride?.itemTrailingIcon,a.ui?.itemTrailingIcon],color:a?.color}))},null,8,["name","class"])]),_:2},1024)],2)])]),_:3}),d(i(u).Portal,V(E(i($))),{default:r(()=>[(s(),o(ie(e.sub?i(u).SubContent:i(u).Content),b({"data-slot":"content",class:e.ui.content({class:[e.uiOverride?.content,l.class]})},i(B)),{default:r(()=>[g(f.$slots,"content-top",{sub:e.sub??!1}),C("div",{role:"presentation","data-slot":"viewport",class:n(e.ui.viewport({class:e.uiOverride?.viewport}))},[(s(!0),y(q,null,S(P.value,(a,c)=>(s(),o(i(u).Group,{key:`group-${c}`,"data-slot":"group",class:n(e.ui.group({class:e.uiOverride?.group}))},{default:r(()=>[(s(!0),y(q,null,S(a,(t,m)=>(s(),y(q,{key:`group-${c}-${m}`},[t.type==="label"?(s(),o(i(u).Label,{key:0,"data-slot":"label",class:n(e.ui.label({class:[e.uiOverride?.label,t.ui?.label,t.class]}))},{default:r(()=>[d(i(v),{item:t,index:m},null,8,["item","index"])]),_:2},1032,["class"])):t.type==="separator"?(s(),o(i(u).Separator,{key:1,"data-slot":"separator",class:n(e.ui.separator({class:[e.uiOverride?.separator,t.ui?.separator,t.class]}))},null,8,["class"])):t?.children?.length?(s(),o(i(u).Sub,{key:2,open:t.open,"default-open":t.defaultOpen},{default:r(()=>[d(i(u).SubTrigger,{as:"button",type:"button",disabled:t.disabled,"text-value":i(p)(t,l.labelKey),"data-slot":"item",class:n(e.ui.item({class:[e.uiOverride?.item,t.ui?.item,t.class],color:t?.color}))},{default:r(()=>[d(i(v),{item:t,index:m},null,8,["item","index"])]),_:2},1032,["disabled","text-value","class"]),d(J,b({sub:"",class:t.ui?.content,ui:e.ui,"ui-override":e.uiOverride,portal:e.portal,items:t.children,align:"start","align-offset":-4,"side-offset":3,"label-key":e.labelKey,"description-key":e.descriptionKey,"checked-icon":e.checkedIcon,"loading-icon":e.loadingIcon,"external-icon":e.externalIcon},{ref_for:!0},t.content),Z({_:2},[S(A(),(L,T)=>({name:T,fn:r(Q=>[g(f.$slots,T,b({ref_for:!0},Q))])}))]),1040,["class","ui","ui-override","portal","items","label-key","description-key","checked-icon","loading-icon","external-icon"])]),_:2},1032,["open","default-open"])):t.type==="checkbox"?(s(),o(i(u).CheckboxItem,{key:3,"model-value":t.checked,disabled:t.disabled,"text-value":i(p)(t,l.labelKey),"data-slot":"item",class:n(e.ui.item({class:[e.uiOverride?.item,t.ui?.item,t.class],color:t?.color})),"onUpdate:modelValue":t.onUpdateChecked,onSelect:t.onSelect},{default:r(()=>[d(i(v),{item:t,index:m},null,8,["item","index"])]),_:2},1032,["model-value","disabled","text-value","class","onUpdate:modelValue","onSelect"])):(s(),o(i(u).Item,{key:4,"as-child":"",disabled:t.disabled,"text-value":i(p)(t,l.labelKey),onSelect:t.onSelect},{default:r(()=>[d(le,b({ref_for:!0},i(se)(t),{custom:""}),{default:r(({active:L,...T})=>[d(ne,b({ref_for:!0},T,{"data-slot":"item",class:e.ui.item({class:[e.uiOverride?.item,t.ui?.item,t.class],color:t?.color,active:L})}),{default:r(()=>[d(i(v),{item:t,active:L,index:m},null,8,["item","active","index"])]),_:2},1040,["class"])]),_:2},1040)]),_:2},1032,["disabled","text-value","onSelect"]))],64))),128))]),_:2},1032,["class"]))),128))],2),g(f.$slots,"default"),g(f.$slots,"content-bottom",{sub:e.sub??!1})]),_:3},16,["class"]))]),_:3},16)],64))}},me={slots:{content:"min-w-32 bg-default shadow-lg rounded-md ring ring-default overflow-hidden data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in] origin-(--reka-dropdown-menu-content-transform-origin) flex flex-col",viewport:"relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1",arrow:"fill-default",group:"p-1 isolate",label:"w-full flex items-center font-semibold text-highlighted",separator:"-mx-1 my-1 h-px bg-border",item:"group relative w-full flex items-start select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75",itemLeadingIcon:"shrink-0",itemLeadingAvatar:"shrink-0",itemLeadingAvatarSize:"",itemTrailing:"ms-auto inline-flex gap-1.5 items-center",itemTrailingIcon:"shrink-0",itemTrailingKbds:"hidden lg:inline-flex items-center shrink-0",itemTrailingKbdsSize:"",itemWrapper:"flex-1 flex flex-col text-start min-w-0",itemLabel:"truncate",itemDescription:"truncate text-muted",itemLabelExternalIcon:"inline-block size-3 align-top text-dimmed"},variants:{color:{primary:"",secondary:"",success:"",info:"",warning:"",error:"",neutral:""},active:{true:{item:"text-highlighted before:bg-elevated",itemLeadingIcon:"text-default"},false:{item:["text-default data-highlighted:text-highlighted data-[state=open]:text-highlighted data-highlighted:before:bg-elevated/50 data-[state=open]:before:bg-elevated/50","transition-colors before:transition-colors"],itemLeadingIcon:["text-dimmed group-data-highlighted:text-default group-data-[state=open]:text-default","transition-colors"]}},loading:{true:{itemLeadingIcon:"animate-spin"}},size:{xs:{label:"p-1 text-xs gap-1",item:"p-1 text-xs gap-1",itemLeadingIcon:"size-4",itemLeadingAvatarSize:"3xs",itemTrailingIcon:"size-4",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"sm"},sm:{label:"p-1.5 text-xs gap-1.5",item:"p-1.5 text-xs gap-1.5",itemLeadingIcon:"size-4",itemLeadingAvatarSize:"3xs",itemTrailingIcon:"size-4",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"sm"},md:{label:"p-1.5 text-sm gap-1.5",item:"p-1.5 text-sm gap-1.5",itemLeadingIcon:"size-5",itemLeadingAvatarSize:"2xs",itemTrailingIcon:"size-5",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"md"},lg:{label:"p-2 text-sm gap-2",item:"p-2 text-sm gap-2",itemLeadingIcon:"size-5",itemLeadingAvatarSize:"2xs",itemTrailingIcon:"size-5",itemTrailingKbds:"gap-1",itemTrailingKbdsSize:"md"},xl:{label:"p-2 text-base gap-2",item:"p-2 text-base gap-2",itemLeadingIcon:"size-6",itemLeadingAvatarSize:"xs",itemTrailingIcon:"size-6",itemTrailingKbds:"gap-1",itemTrailingKbdsSize:"lg"}}},compoundVariants:[{color:"primary",active:!1,class:{item:"text-primary data-highlighted:text-primary data-highlighted:before:bg-primary/10 data-[state=open]:before:bg-primary/10",itemLeadingIcon:"text-primary/75 group-data-highlighted:text-primary group-data-[state=open]:text-primary"}},{color:"secondary",active:!1,class:{item:"text-secondary data-highlighted:text-secondary data-highlighted:before:bg-secondary/10 data-[state=open]:before:bg-secondary/10",itemLeadingIcon:"text-secondary/75 group-data-highlighted:text-secondary group-data-[state=open]:text-secondary"}},{color:"success",active:!1,class:{item:"text-success data-highlighted:text-success data-highlighted:before:bg-success/10 data-[state=open]:before:bg-success/10",itemLeadingIcon:"text-success/75 group-data-highlighted:text-success group-data-[state=open]:text-success"}},{color:"info",active:!1,class:{item:"text-info data-highlighted:text-info data-highlighted:before:bg-info/10 data-[state=open]:before:bg-info/10",itemLeadingIcon:"text-info/75 group-data-highlighted:text-info group-data-[state=open]:text-info"}},{color:"warning",active:!1,class:{item:"text-warning data-highlighted:text-warning data-highlighted:before:bg-warning/10 data-[state=open]:before:bg-warning/10",itemLeadingIcon:"text-warning/75 group-data-highlighted:text-warning group-data-[state=open]:text-warning"}},{color:"error",active:!1,class:{item:"text-error data-highlighted:text-error data-highlighted:before:bg-error/10 data-[state=open]:before:bg-error/10",itemLeadingIcon:"text-error/75 group-data-highlighted:text-error group-data-[state=open]:text-error"}},{color:"primary",active:!0,class:{item:"text-primary before:bg-primary/10",itemLeadingIcon:"text-primary"}},{color:"secondary",active:!0,class:{item:"text-secondary before:bg-secondary/10",itemLeadingIcon:"text-secondary"}},{color:"success",active:!0,class:{item:"text-success before:bg-success/10",itemLeadingIcon:"text-success"}},{color:"info",active:!0,class:{item:"text-info before:bg-info/10",itemLeadingIcon:"text-info"}},{color:"warning",active:!0,class:{item:"text-warning before:bg-warning/10",itemLeadingIcon:"text-warning"}},{color:"error",active:!0,class:{item:"text-error before:bg-error/10",itemLeadingIcon:"text-error"}}],defaultVariants:{size:"md"}},xe={__name:"UDropdownMenu",props:{size:{type:null,required:!1},items:{type:null,required:!1},checkedIcon:{type:null,required:!1},loadingIcon:{type:null,required:!1},externalIcon:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},content:{type:Object,required:!1},arrow:{type:[Boolean,Object],required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},labelKey:{type:null,required:!1,default:"label"},descriptionKey:{type:null,required:!1,default:"description"},disabled:{type:Boolean,required:!1},class:{type:null,required:!1},ui:{type:null,required:!1},defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1},modal:{type:Boolean,required:!1,default:!0}},emits:["update:open"],setup(e,{emit:z}){const l=e,O=z,h=j(),K=G(),x=Y(re(l,"defaultOpen","open","modal"),O),$=M(()=>oe(l.content,{side:"bottom",sideOffset:8,collisionPadding:8})),B=M(()=>l.arrow),A=()=>H(h,["default"]),k=N(()=>F({extend:F(me),...K.ui?.dropdownMenu||{}})({size:l.size}));return(v,U)=>(s(),o(i(ue),V(E(i(x))),{default:r(({open:P})=>[h.default?(s(),o(i(de),{key:0,"as-child":"",class:n(l.class),disabled:e.disabled},{default:r(()=>[g(v.$slots,"default",{open:P})]),_:2},1032,["class","disabled"])):I("",!0),d(J,b({class:k.value.content({class:[!h.default&&l.class,l.ui?.content]}),ui:k.value,"ui-override":l.ui},$.value,{items:e.items,portal:e.portal,"label-key":e.labelKey,"description-key":e.descriptionKey,"checked-icon":e.checkedIcon,"loading-icon":e.loadingIcon,"external-icon":e.externalIcon}),Z({default:r(()=>[e.arrow?(s(),o(i(ce),b({key:0},B.value,{"data-slot":"arrow",class:k.value.arrow({class:l.ui?.arrow})}),null,16,["class"])):I("",!0)]),_:2},[S(A(),(f,D)=>({name:D,fn:r(a=>[g(v.$slots,D,V(E(a)))])}))]),1040,["class","ui","ui-override","items","portal","label-key","description-key","checked-icon","loading-icon","external-icon"])]),_:3},16))}};export{xe as _};
|
|
1
|
+
import{aq as j,U as X,W as G,aC as _,aD as M,aA as Y,Y as ee,h as N,b8 as ae,M as y,o as s,Z as d,w as r,r as g,aa as I,ac as C,c as o,_ as w,$ as n,a as i,az as te,m as b,a1 as p,ab as W,af as R,al as q,am as S,aY as ie,b9 as Z,ba as H,aw as le,bb as se,bc as ne,aG as V,aH as E,aB as re,aZ as oe,ap as F}from"./B06CcGVK.js";import{D as u,a as de,b as ce,c as ue}from"./5qkiDtwf.js";import{c as ge}from"./hkCaWCzP.js";import{_ as fe}from"./Cwel2ykQ.js";const J={__name:"UDropdownMenuContent",props:{items:{type:null,required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0},sub:{type:Boolean,required:!1},labelKey:{type:null,required:!0},descriptionKey:{type:null,required:!0},checkedIcon:{type:null,required:!1},loadingIcon:{type:null,required:!1},externalIcon:{type:[Boolean,String],required:!1,skipCheck:!0},class:{type:null,required:!1},ui:{type:null,required:!0},uiOverride:{type:null,required:!1},loop:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","closeAutoFocus"],setup(e,{emit:z}){const l=e,O=z,h=j(),{dir:K}=X(),x=G(),$=_(M(()=>l.portal)),B=Y(ee(l,"sub","items","portal","labelKey","descriptionKey","checkedIcon","loadingIcon","externalIcon","class","ui","uiOverride"),O),A=()=>H(h,["default"]),[k,v]=ge(),U=N(()=>K.value==="rtl"?x.ui.icons.chevronLeft:x.ui.icons.chevronRight),P=N(()=>l.items?.length?ae(l.items)?l.items:[l.items]:[]);return(f,D)=>(s(),y(q,null,[d(i(k),null,{default:r(({item:a,active:c,index:t})=>[g(f.$slots,a.slot||"item",{item:a,index:t,ui:e.ui},()=>[g(f.$slots,a.slot?`${a.slot}-leading`:"item-leading",{item:a,active:c,index:t,ui:e.ui},()=>[a.loading?(s(),o(w,{key:0,name:e.loadingIcon||i(x).ui.icons.loading,"data-slot":"itemLeadingIcon",class:n(e.ui.itemLeadingIcon({class:[e.uiOverride?.itemLeadingIcon,a.ui?.itemLeadingIcon],color:a?.color,loading:!0}))},null,8,["name","class"])):a.icon?(s(),o(w,{key:1,name:a.icon,"data-slot":"itemLeadingIcon",class:n(e.ui.itemLeadingIcon({class:[e.uiOverride?.itemLeadingIcon,a.ui?.itemLeadingIcon],color:a?.color,active:c}))},null,8,["name","class"])):a.avatar?(s(),o(te,b({key:2,size:a.ui?.itemLeadingAvatarSize||e.uiOverride?.itemLeadingAvatarSize||e.ui.itemLeadingAvatarSize()},a.avatar,{"data-slot":"itemLeadingAvatar",class:e.ui.itemLeadingAvatar({class:[e.uiOverride?.itemLeadingAvatar,a.ui?.itemLeadingAvatar],active:c})}),null,16,["size","class"])):I("",!0)]),i(p)(a,l.labelKey)||h[a.slot?`${a.slot}-label`:"item-label"]||i(p)(a,l.descriptionKey)||h[a.slot?`${a.slot}-description`:"item-description"]?(s(),y("span",{key:0,"data-slot":"itemWrapper",class:n(e.ui.itemWrapper({class:[e.uiOverride?.itemWrapper,a.ui?.itemWrapper]}))},[C("span",{"data-slot":"itemLabel",class:n(e.ui.itemLabel({class:[e.uiOverride?.itemLabel,a.ui?.itemLabel],active:c}))},[g(f.$slots,a.slot?`${a.slot}-label`:"item-label",{item:a,active:c,index:t},()=>[W(R(i(p)(a,l.labelKey)),1)]),a.target==="_blank"&&e.externalIcon!==!1?(s(),o(w,{key:0,name:typeof e.externalIcon=="string"?e.externalIcon:i(x).ui.icons.external,"data-slot":"itemLabelExternalIcon",class:n(e.ui.itemLabelExternalIcon({class:[e.uiOverride?.itemLabelExternalIcon,a.ui?.itemLabelExternalIcon],color:a?.color,active:c}))},null,8,["name","class"])):I("",!0)],2),i(p)(a,l.descriptionKey)?(s(),y("span",{key:0,"data-slot":"itemDescription",class:n(e.ui.itemDescription({class:[e.uiOverride?.itemDescription,a.ui?.itemDescription]}))},[g(f.$slots,a.slot?`${a.slot}-description`:"item-description",{item:a,active:c,index:t},()=>[W(R(i(p)(a,l.descriptionKey)),1)])],2)):I("",!0)],2)):I("",!0),C("span",{"data-slot":"itemTrailing",class:n(e.ui.itemTrailing({class:[e.uiOverride?.itemTrailing,a.ui?.itemTrailing]}))},[g(f.$slots,a.slot?`${a.slot}-trailing`:"item-trailing",{item:a,active:c,index:t,ui:e.ui},()=>[a.children?.length?(s(),o(w,{key:0,name:U.value,"data-slot":"itemTrailingIcon",class:n(e.ui.itemTrailingIcon({class:[e.uiOverride?.itemTrailingIcon,a.ui?.itemTrailingIcon],color:a?.color,active:c}))},null,8,["name","class"])):a.kbds?.length?(s(),y("span",{key:1,"data-slot":"itemTrailingKbds",class:n(e.ui.itemTrailingKbds({class:[e.uiOverride?.itemTrailingKbds,a.ui?.itemTrailingKbds]}))},[(s(!0),y(q,null,S(a.kbds,(m,L)=>(s(),o(fe,b({key:L,size:a.ui?.itemTrailingKbdsSize||e.uiOverride?.itemTrailingKbdsSize||e.ui.itemTrailingKbdsSize()},{ref_for:!0},typeof m=="string"?{value:m}:m),null,16,["size"]))),128))],2)):I("",!0)]),d(i(u).ItemIndicator,{"as-child":""},{default:r(()=>[d(w,{name:e.checkedIcon||i(x).ui.icons.check,"data-slot":"itemTrailingIcon",class:n(e.ui.itemTrailingIcon({class:[e.uiOverride?.itemTrailingIcon,a.ui?.itemTrailingIcon],color:a?.color}))},null,8,["name","class"])]),_:2},1024)],2)])]),_:3}),d(i(u).Portal,V(E(i($))),{default:r(()=>[(s(),o(ie(e.sub?i(u).SubContent:i(u).Content),b({"data-slot":"content",class:e.ui.content({class:[e.uiOverride?.content,l.class]})},i(B)),{default:r(()=>[g(f.$slots,"content-top",{sub:e.sub??!1}),C("div",{role:"presentation","data-slot":"viewport",class:n(e.ui.viewport({class:e.uiOverride?.viewport}))},[(s(!0),y(q,null,S(P.value,(a,c)=>(s(),o(i(u).Group,{key:`group-${c}`,"data-slot":"group",class:n(e.ui.group({class:e.uiOverride?.group}))},{default:r(()=>[(s(!0),y(q,null,S(a,(t,m)=>(s(),y(q,{key:`group-${c}-${m}`},[t.type==="label"?(s(),o(i(u).Label,{key:0,"data-slot":"label",class:n(e.ui.label({class:[e.uiOverride?.label,t.ui?.label,t.class]}))},{default:r(()=>[d(i(v),{item:t,index:m},null,8,["item","index"])]),_:2},1032,["class"])):t.type==="separator"?(s(),o(i(u).Separator,{key:1,"data-slot":"separator",class:n(e.ui.separator({class:[e.uiOverride?.separator,t.ui?.separator,t.class]}))},null,8,["class"])):t?.children?.length?(s(),o(i(u).Sub,{key:2,open:t.open,"default-open":t.defaultOpen},{default:r(()=>[d(i(u).SubTrigger,{as:"button",type:"button",disabled:t.disabled,"text-value":i(p)(t,l.labelKey),"data-slot":"item",class:n(e.ui.item({class:[e.uiOverride?.item,t.ui?.item,t.class],color:t?.color}))},{default:r(()=>[d(i(v),{item:t,index:m},null,8,["item","index"])]),_:2},1032,["disabled","text-value","class"]),d(J,b({sub:"",class:t.ui?.content,ui:e.ui,"ui-override":e.uiOverride,portal:e.portal,items:t.children,align:"start","align-offset":-4,"side-offset":3,"label-key":e.labelKey,"description-key":e.descriptionKey,"checked-icon":e.checkedIcon,"loading-icon":e.loadingIcon,"external-icon":e.externalIcon},{ref_for:!0},t.content),Z({_:2},[S(A(),(L,T)=>({name:T,fn:r(Q=>[g(f.$slots,T,b({ref_for:!0},Q))])}))]),1040,["class","ui","ui-override","portal","items","label-key","description-key","checked-icon","loading-icon","external-icon"])]),_:2},1032,["open","default-open"])):t.type==="checkbox"?(s(),o(i(u).CheckboxItem,{key:3,"model-value":t.checked,disabled:t.disabled,"text-value":i(p)(t,l.labelKey),"data-slot":"item",class:n(e.ui.item({class:[e.uiOverride?.item,t.ui?.item,t.class],color:t?.color})),"onUpdate:modelValue":t.onUpdateChecked,onSelect:t.onSelect},{default:r(()=>[d(i(v),{item:t,index:m},null,8,["item","index"])]),_:2},1032,["model-value","disabled","text-value","class","onUpdate:modelValue","onSelect"])):(s(),o(i(u).Item,{key:4,"as-child":"",disabled:t.disabled,"text-value":i(p)(t,l.labelKey),onSelect:t.onSelect},{default:r(()=>[d(le,b({ref_for:!0},i(se)(t),{custom:""}),{default:r(({active:L,...T})=>[d(ne,b({ref_for:!0},T,{"data-slot":"item",class:e.ui.item({class:[e.uiOverride?.item,t.ui?.item,t.class],color:t?.color,active:L})}),{default:r(()=>[d(i(v),{item:t,active:L,index:m},null,8,["item","active","index"])]),_:2},1040,["class"])]),_:2},1040)]),_:2},1032,["disabled","text-value","onSelect"]))],64))),128))]),_:2},1032,["class"]))),128))],2),g(f.$slots,"default"),g(f.$slots,"content-bottom",{sub:e.sub??!1})]),_:3},16,["class"]))]),_:3},16)],64))}},me={slots:{content:"min-w-32 bg-default shadow-lg rounded-md ring ring-default overflow-hidden data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in] origin-(--reka-dropdown-menu-content-transform-origin) flex flex-col",viewport:"relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1",arrow:"fill-default",group:"p-1 isolate",label:"w-full flex items-center font-semibold text-highlighted",separator:"-mx-1 my-1 h-px bg-border",item:"group relative w-full flex items-start select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75",itemLeadingIcon:"shrink-0",itemLeadingAvatar:"shrink-0",itemLeadingAvatarSize:"",itemTrailing:"ms-auto inline-flex gap-1.5 items-center",itemTrailingIcon:"shrink-0",itemTrailingKbds:"hidden lg:inline-flex items-center shrink-0",itemTrailingKbdsSize:"",itemWrapper:"flex-1 flex flex-col text-start min-w-0",itemLabel:"truncate",itemDescription:"truncate text-muted",itemLabelExternalIcon:"inline-block size-3 align-top text-dimmed"},variants:{color:{primary:"",secondary:"",success:"",info:"",warning:"",error:"",neutral:""},active:{true:{item:"text-highlighted before:bg-elevated",itemLeadingIcon:"text-default"},false:{item:["text-default data-highlighted:text-highlighted data-[state=open]:text-highlighted data-highlighted:before:bg-elevated/50 data-[state=open]:before:bg-elevated/50","transition-colors before:transition-colors"],itemLeadingIcon:["text-dimmed group-data-highlighted:text-default group-data-[state=open]:text-default","transition-colors"]}},loading:{true:{itemLeadingIcon:"animate-spin"}},size:{xs:{label:"p-1 text-xs gap-1",item:"p-1 text-xs gap-1",itemLeadingIcon:"size-4",itemLeadingAvatarSize:"3xs",itemTrailingIcon:"size-4",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"sm"},sm:{label:"p-1.5 text-xs gap-1.5",item:"p-1.5 text-xs gap-1.5",itemLeadingIcon:"size-4",itemLeadingAvatarSize:"3xs",itemTrailingIcon:"size-4",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"sm"},md:{label:"p-1.5 text-sm gap-1.5",item:"p-1.5 text-sm gap-1.5",itemLeadingIcon:"size-5",itemLeadingAvatarSize:"2xs",itemTrailingIcon:"size-5",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"md"},lg:{label:"p-2 text-sm gap-2",item:"p-2 text-sm gap-2",itemLeadingIcon:"size-5",itemLeadingAvatarSize:"2xs",itemTrailingIcon:"size-5",itemTrailingKbds:"gap-1",itemTrailingKbdsSize:"md"},xl:{label:"p-2 text-base gap-2",item:"p-2 text-base gap-2",itemLeadingIcon:"size-6",itemLeadingAvatarSize:"xs",itemTrailingIcon:"size-6",itemTrailingKbds:"gap-1",itemTrailingKbdsSize:"lg"}}},compoundVariants:[{color:"primary",active:!1,class:{item:"text-primary data-highlighted:text-primary data-highlighted:before:bg-primary/10 data-[state=open]:before:bg-primary/10",itemLeadingIcon:"text-primary/75 group-data-highlighted:text-primary group-data-[state=open]:text-primary"}},{color:"secondary",active:!1,class:{item:"text-secondary data-highlighted:text-secondary data-highlighted:before:bg-secondary/10 data-[state=open]:before:bg-secondary/10",itemLeadingIcon:"text-secondary/75 group-data-highlighted:text-secondary group-data-[state=open]:text-secondary"}},{color:"success",active:!1,class:{item:"text-success data-highlighted:text-success data-highlighted:before:bg-success/10 data-[state=open]:before:bg-success/10",itemLeadingIcon:"text-success/75 group-data-highlighted:text-success group-data-[state=open]:text-success"}},{color:"info",active:!1,class:{item:"text-info data-highlighted:text-info data-highlighted:before:bg-info/10 data-[state=open]:before:bg-info/10",itemLeadingIcon:"text-info/75 group-data-highlighted:text-info group-data-[state=open]:text-info"}},{color:"warning",active:!1,class:{item:"text-warning data-highlighted:text-warning data-highlighted:before:bg-warning/10 data-[state=open]:before:bg-warning/10",itemLeadingIcon:"text-warning/75 group-data-highlighted:text-warning group-data-[state=open]:text-warning"}},{color:"error",active:!1,class:{item:"text-error data-highlighted:text-error data-highlighted:before:bg-error/10 data-[state=open]:before:bg-error/10",itemLeadingIcon:"text-error/75 group-data-highlighted:text-error group-data-[state=open]:text-error"}},{color:"primary",active:!0,class:{item:"text-primary before:bg-primary/10",itemLeadingIcon:"text-primary"}},{color:"secondary",active:!0,class:{item:"text-secondary before:bg-secondary/10",itemLeadingIcon:"text-secondary"}},{color:"success",active:!0,class:{item:"text-success before:bg-success/10",itemLeadingIcon:"text-success"}},{color:"info",active:!0,class:{item:"text-info before:bg-info/10",itemLeadingIcon:"text-info"}},{color:"warning",active:!0,class:{item:"text-warning before:bg-warning/10",itemLeadingIcon:"text-warning"}},{color:"error",active:!0,class:{item:"text-error before:bg-error/10",itemLeadingIcon:"text-error"}}],defaultVariants:{size:"md"}},xe={__name:"UDropdownMenu",props:{size:{type:null,required:!1},items:{type:null,required:!1},checkedIcon:{type:null,required:!1},loadingIcon:{type:null,required:!1},externalIcon:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},content:{type:Object,required:!1},arrow:{type:[Boolean,Object],required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},labelKey:{type:null,required:!1,default:"label"},descriptionKey:{type:null,required:!1,default:"description"},disabled:{type:Boolean,required:!1},class:{type:null,required:!1},ui:{type:null,required:!1},defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1},modal:{type:Boolean,required:!1,default:!0}},emits:["update:open"],setup(e,{emit:z}){const l=e,O=z,h=j(),K=G(),x=Y(re(l,"defaultOpen","open","modal"),O),$=M(()=>oe(l.content,{side:"bottom",sideOffset:8,collisionPadding:8})),B=M(()=>l.arrow),A=()=>H(h,["default"]),k=N(()=>F({extend:F(me),...K.ui?.dropdownMenu||{}})({size:l.size}));return(v,U)=>(s(),o(i(ue),V(E(i(x))),{default:r(({open:P})=>[h.default?(s(),o(i(de),{key:0,"as-child":"",class:n(l.class),disabled:e.disabled},{default:r(()=>[g(v.$slots,"default",{open:P})]),_:2},1032,["class","disabled"])):I("",!0),d(J,b({class:k.value.content({class:[!h.default&&l.class,l.ui?.content]}),ui:k.value,"ui-override":l.ui},$.value,{items:e.items,portal:e.portal,"label-key":e.labelKey,"description-key":e.descriptionKey,"checked-icon":e.checkedIcon,"loading-icon":e.loadingIcon,"external-icon":e.externalIcon}),Z({default:r(()=>[e.arrow?(s(),o(i(ce),b({key:0},B.value,{"data-slot":"arrow",class:k.value.arrow({class:l.ui?.arrow})}),null,16,["class"])):I("",!0)]),_:2},[S(A(),(f,D)=>({name:D,fn:r(a=>[g(v.$slots,D,V(E(a)))])}))]),1040,["class","ui","ui-override","items","portal","label-key","description-key","checked-icon","loading-icon","external-icon"])]),_:3},16))}};export{xe as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as u}from"./
|
|
1
|
+
import{_ as u}from"./DZpgj5sA.js";import{_ as d,a as f}from"./CoUQ3qpL.js";import{_ as g}from"./BAh-k-y8.js";import{d as v,ah as b,h,c as x,w as s,o as w,Z as t,ac as U,a as $,ai as B,n as N}from"./B06CcGVK.js";import"./Dc8vLBQN.js";import"./hkCaWCzP.js";import"./DH2yWNbZ.js";import"./CBpuaar1.js";import"./olSL1K5t.js";import"./DY78sr_b.js";import"./DZQxxfue.js";import"./B0v0agy0.js";import"./CGTQGJ_c.js";const T={class:"p-6"},z=v({__name:"settings",setup(k){const c=b(),n=[{label:"Account",icon:"i-lucide-user",value:"account"},{label:"Secrets",icon:"i-lucide-key",value:"secrets"},{label:"Integrations",icon:"i-lucide-plug",value:"integrations"},{label:"App",icon:"i-lucide-settings",value:"app"}],i=h(()=>{const e=c.path.split("/").pop();return n.some(a=>a.value===e)?e:"account"});function l(o){N(`/settings/${o}`)}return(o,e)=>{const a=u,r=f,m=g,p=B,_=d;return w(),x(_,{id:"settings",grow:""},{default:s(()=>[t(r,{title:"Settings"},{right:s(()=>[t(a)]),_:1}),U("div",T,[t(m,{items:n,"model-value":$(i),content:!1,class:"w-full mx-auto",ui:{list:"max-w-xl"},"onUpdate:modelValue":l},null,8,["model-value"]),t(p)])]),_:1})}}});export{z as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as h}from"./
|
|
1
|
+
import{_ as h}from"./CHd8mdNy.js";import{_ as $}from"./BQeDYnyj.js";import{d as B,aj as Y,an as b,e as _,f as k,M as F,ac as i,Z as a,w as r,a as o,o as L,a0 as A,ab as y}from"./B06CcGVK.js";import{_ as M}from"./B1A26hhf.js";import{_ as T}from"./BlplwzgB.js";import{u as j}from"./Bvqgc_wA.js";import"./hkCaWCzP.js";import"./CopZwjN8.js";import"./CHn6tbtE.js";const q={class:"space-y-8 max-w-2xl mx-auto py-6"},R=B({__name:"account",setup(I){const{user:E,updateProfile:v,changeEmail:S,changePassword:U}=j(),t=Y(),m=b({name:""}),f=_(!1),d=b({newEmail:""}),w=_(!1),s=b({currentPassword:"",newPassword:"",confirmPassword:""}),p=_(!1);k(()=>E.value,l=>{l&&(m.name=l.name||"",d.newEmail=l.email||"")},{immediate:!0});async function x(){f.value=!0;const l=await v({name:m.name});l.error?t.add({title:"Update failed",description:l.error.message,color:"error"}):t.add({title:"Profile updated",description:"Your name has been updated successfully.",color:"success"}),f.value=!1}async function C(){if(!d.newEmail){t.add({title:"Email required",description:"Please enter a new email address.",color:"error"});return}w.value=!0;const l=await S(d.newEmail);l.error?t.add({title:"Email change failed",description:l.error.message,color:"error"}):t.add({title:"Email updated",description:"Your email has been changed successfully.",color:"success"}),w.value=!1}async function N(){if(s.newPassword!==s.confirmPassword){t.add({title:"Passwords do not match",description:"Please make sure your new passwords match.",color:"error"});return}if(!s.currentPassword||!s.newPassword){t.add({title:"Missing fields",description:"Please fill in all password fields.",color:"error"});return}p.value=!0;const l=await U({currentPassword:s.currentPassword,newPassword:s.newPassword});l.error?t.add({title:"Password change failed",description:l.error.message,color:"error"}):(t.add({title:"Password changed",description:"Your password has been changed successfully.",color:"success"}),s.currentPassword="",s.newPassword="",s.confirmPassword=""),p.value=!1}return(l,e)=>{const u=h,c=$,P=A,g=M,V=T;return L(),F("div",q,[i("div",null,[e[6]||(e[6]=i("h3",{class:"text-lg font-semibold mb-4"}," Profile ",-1)),a(g,{state:o(m),class:"space-y-4",onSubmit:x},{default:r(()=>[a(c,{label:"Name",name:"name"},{default:r(()=>[a(u,{modelValue:o(m).name,"onUpdate:modelValue":e[0]||(e[0]=n=>o(m).name=n),placeholder:"Your name",class:"w-full"},null,8,["modelValue"])]),_:1}),a(P,{type:"submit",loading:o(f)},{default:r(()=>[...e[5]||(e[5]=[y(" Save Name ",-1)])]),_:1},8,["loading"])]),_:1},8,["state"])]),a(V),i("div",null,[e[8]||(e[8]=i("h3",{class:"text-lg font-semibold mb-4"}," Email Address ",-1)),a(g,{state:o(d),class:"space-y-4",onSubmit:C},{default:r(()=>[a(c,{label:"Email",name:"newEmail"},{default:r(()=>[a(u,{modelValue:o(d).newEmail,"onUpdate:modelValue":e[1]||(e[1]=n=>o(d).newEmail=n),type:"email",placeholder:"your@email.com",class:"w-full"},null,8,["modelValue"])]),_:1}),a(P,{type:"submit",loading:o(w)},{default:r(()=>[...e[7]||(e[7]=[y(" Change Email ",-1)])]),_:1},8,["loading"])]),_:1},8,["state"])]),a(V),i("div",null,[e[10]||(e[10]=i("h3",{class:"text-lg font-semibold mb-4"}," Change Password ",-1)),a(g,{state:o(s),class:"space-y-4",onSubmit:N},{default:r(()=>[a(c,{label:"Current Password",name:"currentPassword"},{default:r(()=>[a(u,{modelValue:o(s).currentPassword,"onUpdate:modelValue":e[2]||(e[2]=n=>o(s).currentPassword=n),type:"password",class:"w-full"},null,8,["modelValue"])]),_:1}),a(c,{label:"New Password",name:"newPassword"},{default:r(()=>[a(u,{modelValue:o(s).newPassword,"onUpdate:modelValue":e[3]||(e[3]=n=>o(s).newPassword=n),type:"password",class:"w-full"},null,8,["modelValue"])]),_:1}),a(c,{label:"Confirm New Password",name:"confirmPassword"},{default:r(()=>[a(u,{modelValue:o(s).confirmPassword,"onUpdate:modelValue":e[4]||(e[4]=n=>o(s).confirmPassword=n),type:"password",class:"w-full"},null,8,["modelValue"])]),_:1}),a(P,{type:"submit",loading:o(p)},{default:r(()=>[...e[9]||(e[9]=[y(" Change Password ",-1)])]),_:1},8,["loading"])]),_:1},8,["state"])])])}}});export{R as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as M,aj as N,e as p,an as j,C as B,M as I,ac as n,Z as a,w as l,a as s,ak as h,a0 as L,o as z,ab as m,_ as P,af as v}from"./
|
|
1
|
+
import{d as M,aj as N,e as p,an as j,C as B,M as I,ac as n,Z as a,w as l,a as s,ak as h,a0 as L,o as z,ab as m,_ as P,af as v}from"./B06CcGVK.js";import{_ as q}from"./B_V_KZmg.js";import{_ as O}from"./CHd8mdNy.js";import{_ as R}from"./BQeDYnyj.js";import{_ as Y}from"./B1A26hhf.js";import{_ as G}from"./aUYaYlYl.js";import{f as Z}from"./B6lDOV4_.js";import"./88opOQSr.js";import"./C7RIYfkH.js";import"./hkCaWCzP.js";import"./CopZwjN8.js";import"./Tirj2rC0.js";import"./B0v0agy0.js";import"./CiQJYbKL.js";import"./CTJDAjdO.js";import"./BIoHE1oQ.js";const H={class:"py-6"},J={class:"flex items-center justify-between mb-6"},Q={class:"text-sm bg-elevated px-2 py-0.5 rounded"},W={class:"text-dimmed"},X={class:"text-dimmed text-sm"},ee={class:"flex gap-2 justify-end"},te={class:"py-12 text-center"},oe={class:"text-lg font-semibold"},se={class:"flex justify-end gap-2 pt-4"},ae={class:"mb-4"},le={class:"bg-elevated px-2 py-0.5 rounded"},ne={class:"flex justify-end gap-2 pt-6"},he=M({__name:"manage-secrets",setup(ie){const d=N(),S=p([]),_=p(!1),c=p(!1),f=p(!1),y=p(null),k=p(!1),i=p(null),t=j({key:"",value:"",description:""}),$=[{accessorKey:"key",header:"Key"},{accessorKey:"description",header:"Description"},{accessorKey:"updatedAt",header:"Last Updated"},{accessorKey:"actions",header:""}];async function g(){_.value=!0;try{const{data:r}=await $fetch("/api/secrets");S.value=r}catch{d.add({title:"Failed to load secrets",color:"error"})}_.value=!1}function w(){i.value=null,t.key="",t.value="",t.description="",c.value=!0}function U(r){i.value=r,t.key=r.key,t.value="",t.description=r.description||"",c.value=!0}function A(r){y.value=r,f.value=!0}async function V(){if(!t.key||!i.value&&!t.value){d.add({title:"Missing fields",description:i.value?"Key is required.":"Key and value are required.",color:"error"});return}k.value=!0;try{i.value?(await $fetch(`/api/secrets/${i.value.key}`,{method:"PUT",body:{value:t.value||void 0,description:t.description||void 0}}),d.add({title:"Secret updated",color:"success"})):(await $fetch("/api/secrets",{method:"POST",body:{key:t.key,value:t.value,description:t.description||void 0}}),d.add({title:"Secret created",color:"success"})),c.value=!1,await g()}catch(r){const e=r;d.add({title:i.value?"Failed to update secret":"Failed to create secret",description:e.data?.message||"An error occurred",color:"error"})}k.value=!1}async function D(){if(y.value)try{await $fetch(`/api/secrets/${y.value.key}`,{method:"DELETE"}),d.add({title:"Secret deleted",color:"success"}),f.value=!1,y.value=null,await g()}catch{d.add({title:"Failed to delete secret",color:"error"})}}return B(()=>{g()}),(r,e)=>{const u=L,E=P,K=q,x=O,b=R,F=Y,C=G;return z(),I("div",H,[n("div",J,[e[8]||(e[8]=n("div",null,[n("h3",{class:"text-lg font-semibold"}," Secrets "),n("p",{class:"text-sm text-dimmed"}," Encrypted key-value store for skills and integrations. ")],-1)),a(u,{icon:"i-lucide-plus",onClick:w},{default:l(()=>[...e[7]||(e[7]=[m(" Add Secret ",-1)])]),_:1})]),a(K,{columns:$,data:s(S),loading:s(_)},{"key-cell":l(({row:o})=>[n("code",Q,v(o.original.key),1)]),"description-cell":l(({row:o})=>[n("span",W,v(o.original.description||"—"),1)]),"updatedAt-cell":l(({row:o})=>[n("span",X,v(s(Z)(o.original.updatedAt)),1)]),"actions-cell":l(({row:o})=>[n("div",ee,[a(u,{variant:"ghost",icon:"i-lucide-pencil",size:"xs",onClick:T=>U(o.original)},null,8,["onClick"]),a(u,{variant:"ghost",color:"error",icon:"i-lucide-trash-2",size:"xs",onClick:T=>A(o.original)},null,8,["onClick"])])]),empty:l(()=>[n("div",te,[a(E,{name:"i-lucide-key",class:"size-12 mx-auto mb-4 text-dimmed"}),e[9]||(e[9]=n("p",{class:"text-dimmed"}," No secrets yet. Add one to get started. ",-1))])]),_:1},8,["data","loading"]),a(C,{open:s(c),"onUpdate:open":e[4]||(e[4]=o=>h(c)?c.value=o:null)},{header:l(()=>[n("h3",oe,v(s(i)?"Edit Secret":"Add Secret"),1)]),body:l(()=>[a(F,{state:s(t),class:"space-y-4",onSubmit:V},{default:l(()=>[a(b,{label:"Key",name:"key",hint:s(i)?"":"SCREAMING_SNAKE_CASE"},{default:l(()=>[a(x,{modelValue:s(t).key,"onUpdate:modelValue":e[0]||(e[0]=o=>s(t).key=o),disabled:!!s(i),placeholder:"MY_API_KEY",class:"w-full font-mono"},null,8,["modelValue","disabled"])]),_:1},8,["hint"]),a(b,{label:"Value",name:"value",hint:s(i)?"Leave empty to keep current value":""},{default:l(()=>[a(x,{modelValue:s(t).value,"onUpdate:modelValue":e[1]||(e[1]=o=>s(t).value=o),type:"password",placeholder:s(i)?"••••••••":"Secret value",class:"w-full"},null,8,["modelValue","placeholder"])]),_:1},8,["hint"]),a(b,{label:"Description",name:"description"},{default:l(()=>[a(x,{modelValue:s(t).description,"onUpdate:modelValue":e[2]||(e[2]=o=>s(t).description=o),placeholder:"Optional description",class:"w-full"},null,8,["modelValue"])]),_:1}),n("div",se,[a(u,{variant:"ghost",onClick:e[3]||(e[3]=o=>c.value=!1)},{default:l(()=>[...e[10]||(e[10]=[m(" Cancel ",-1)])]),_:1}),a(u,{type:"submit",loading:s(k)},{default:l(()=>[m(v(s(i)?"Update":"Create"),1)]),_:1},8,["loading"])])]),_:1},8,["state"])]),_:1},8,["open"]),a(C,{open:s(f),"onUpdate:open":e[6]||(e[6]=o=>h(f)?f.value=o:null)},{header:l(()=>[...e[11]||(e[11]=[n("h3",{class:"text-lg font-semibold"}," Delete Secret ",-1)])]),body:l(()=>[n("p",ae,[e[12]||(e[12]=m(" Are you sure you want to delete ",-1)),n("code",le,v(s(y)?.key),1),e[13]||(e[13]=m("? ",-1))]),e[16]||(e[16]=n("p",{class:"text-sm text-dimmed"}," This action cannot be undone. Any skills using this secret will stop working. ",-1)),n("div",ne,[a(u,{variant:"ghost",onClick:e[5]||(e[5]=o=>f.value=!1)},{default:l(()=>[...e[14]||(e[14]=[m(" Cancel ",-1)])]),_:1}),a(u,{color:"error",onClick:D},{default:l(()=>[...e[15]||(e[15]=[m(" Delete ",-1)])]),_:1})])]),_:1},8,["open"])])}}});export{he as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{W as n,h as c,M as i,o as l,r as p,$ as u,ap as s,ab as d,af as m}from"./
|
|
1
|
+
import{W as n,h as c,M as i,o as l,r as p,$ as u,ap as s,ab as d,af as m}from"./B06CcGVK.js";const f={base:"pb-4 text-muted *:first:mt-0 *:last:mb-0 *:my-1.5"},y={__name:"ProseAccordionItem",props:{label:{type:String,required:!0},description:{type:String,required:!1},class:{type:null,required:!1}},setup(e){const t=e,a=n(),r=c(()=>s({extend:s(f),...a.ui?.prose?.accordionItem||{}}));return(o,b)=>(l(),i("div",{class:u(r.value({class:t.class}))},[p(o.$slots,"default",{},()=>[d(m(e.description),1)])],2))}};export{y as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as k,b as w,T,c as B,d as I}from"./
|
|
1
|
+
import{a as k,b as w,T,c as B,d as I}from"./CBpuaar1.js";import{aU as M,aq as q,aV as L,W as $,h as b,e as z,C as U,aW as D,f as y,aX as G,c,o,w as d,Z as m,M as h,a as u,$ as i,am as x,ac as N,af as W,al as V,aY as A,ap as S}from"./B06CcGVK.js";import E from"./DohhIeRk.js";import"./olSL1K5t.js";import"./DY78sr_b.js";import"./DZQxxfue.js";import"./B0v0agy0.js";const F={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"}},H={__name:"ProseCodeGroup",props:M({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,_=q(),s=L(f,"modelValue"),C=$(),r=b(()=>S({extend:S(F),...C.ui?.prose?.codeGroup||{}})()),p=z(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 U(()=>{if(a.sync){const e=`code-group-${a.sync}`,t=D(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))})}}),G(()=>p.value++),(e,t)=>(o(),c(u(I),{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(V,null,x(g.value,(l,n)=>(o(),c(u(w),{key:n,value:String(n),class:i(r.value.trigger({class:a.ui?.trigger}))},{default:d(()=>[m(E,{icon:l.icon,filename:l.label,class:i(r.value.triggerIcon({class:a.ui?.triggerIcon}))},null,8,["icon","filename","class"]),N("span",{class:i(r.value.triggerLabel({class:a.ui?.triggerLabel}))},W(l.label),3)]),_:2},1032,["value","class"]))),128))]),_:1},8,["class"]),(o(!0),h(V,null,x(g.value,(l,n)=>(o(),c(u(B),{key:n,value:String(n),"as-child":""},{default:d(()=>[(o(),c(A(l.component),{"hide-header":"",tabindex:"-1"}))]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","default-value","class"]))}};export{H as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as l}from"./
|
|
1
|
+
import{r as l}from"./Cygjd4rF.js";import{W as p,h as c,c as n,o as u,w as i,$ as m,ap as s}from"./B06CcGVK.js";import{_ as d}from"./CGTQGJ_c.js";import"./iik6CYzq.js";const f={base:"rounded-full"},v={__name:"ProseBadge",props:{class:{type:null,required:!1}},setup(a){const e=a,o=p(),r=c(()=>s({extend:s(f),...o.ui?.prose?.badge||{}}));return(t,_)=>(u(),n(d,{color:"primary",variant:"subtle",class:m(r.value({class:e.class}))},{default:i(()=>[l(t.$slots,"default",{mdcUnwrap:"p"})]),_:3},8,["class"]))}};export{v as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as ae}from"./Ehiy7Wkv.js";import{d as Q,e as $,c as w,o as c,w as a,ac as d,aa as S,af as B,ab as p,ao as W,a as t,a0 as X,ag as ie,aq as fe,W as me,aN as pe,ay as ve,h as se,ap as Y,aO as be,f as ye,C as ne,r as Z,M as V,m as ee,$ as O,_ as J,az as ke,P as xe,aP as he,B as ze,bh as $e,aj as oe,Z as r,ak as K,al as te,am as le,n as we}from"./CGgHmnnS.js";import{_ as _e,a as Ce}from"./81-iumfM.js";import{_ as Ie}from"./B8fLdQfp.js";import{_ as Se}from"./NNQizITf.js";import{_ as qe}from"./D5AjrkGO.js";import{_ as Ue}from"./BGV4_re9.js";import{u as Te}from"./pFPRVtL-.js";import{_ as re}from"./CCmSsj4q.js";import"./CZ5B974o.js";import"./CD6r4z4e.js";import"./CPb6IrVT.js";import"./CNB4wNeh.js";import"./P3qGksT8.js";import"./D57E8FC4.js";import"./Suor9Vto.js";import"./rVZcJ6Pz.js";import"./B02JOKtW.js";import"./CZQeFnOf.js";const Ve={class:"flex items-start justify-between gap-3"},Be={class:"flex-1 min-w-0"},Ne={class:"flex items-center gap-2 mb-1"},Fe={class:"font-medium text-sm truncate"},Ae={class:"text-xs text-muted line-clamp-2"},De={class:"flex items-center gap-2 mt-3"},Me={class:"text-xs text-dimmed ml-auto"},Oe=Q({__name:"Card",props:{skill:{}},emits:["toggle","delete","update"],setup(i,{emit:x}){const _=i,l=x,k=$(!1);async function h(){k.value=!0,l("toggle",_.skill.name),k.value=!1}return(m,s)=>{const n=Se,g=qe,q=X,I=ie;return c(),w(I,{to:`/skills/${i.skill.name}`,class:"block p-4 rounded-lg border border-default bg-elevated/50 hover:bg-elevated transition-colors"},{default:a(()=>[d("div",Ve,[d("div",Be,[d("div",Ne,[d("span",Fe,B(i.skill.name),1),i.skill.core?(c(),w(n,{key:0,variant:"subtle",color:"primary",size:"xs"},{default:a(()=>[...s[3]||(s[3]=[p(" Core ",-1)])]),_:1})):S("",!0),i.skill.active?S("",!0):(c(),w(n,{key:1,variant:"subtle",color:"neutral",size:"xs"},{default:a(()=>[...s[4]||(s[4]=[p(" Disabled ",-1)])]),_:1}))]),d("p",Ae,B(i.skill.description),1)]),i.skill.core?S("",!0):(c(),w(g,{key:0,"model-value":i.skill.active,size:"sm",loading:t(k),"onUpdate:modelValue":h,onClick:s[0]||(s[0]=W(()=>{},["prevent","stop"]))},null,8,["model-value","loading"]))]),d("div",De,[i.skill.version?(c(),w(n,{key:0,variant:"soft",color:"neutral",size:"xs"},{default:a(()=>[p(" v"+B(i.skill.version),1)]),_:1})):S("",!0),i.skill.author?(c(),w(n,{key:1,variant:"soft",color:"neutral",size:"xs"},{default:a(()=>[p(B(i.skill.author),1)]),_:1})):S("",!0),d("span",Me,B(i.skill.fileCount)+" file"+B(i.skill.fileCount!==1?"s":""),1),i.skill.hasUpdate?(c(),w(q,{key:2,icon:"i-lucide-refresh-cw",color:"primary",variant:"soft",size:"xs",onClick:s[1]||(s[1]=W(F=>l("update",i.skill.name),["prevent","stop"]))})):S("",!0),i.skill.core?S("",!0):(c(),w(q,{key:3,icon:"i-lucide-trash",color:"error",variant:"soft",size:"xs",onClick:s[2]||(s[2]=W(F=>l("delete",i.skill.name),["prevent","stop"]))}))])]),_:1},8,["to"])}}}),je=Object.assign(Oe,{__name:"SkillsCard"}),Pe={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 start-0 flex items-start",leadingIcon:"shrink-0 text-dimmed",leadingAvatar:"shrink-0",leadingAvatarSize:"",trailing:"absolute end-0 flex items-start",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 inset-y-1",trailing:"pe-2 inset-y-1",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 inset-y-1.5",trailing:"pe-2.5 inset-y-1.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 inset-y-1.5",trailing:"pe-2.5 inset-y-1.5",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5"},lg:{base:"px-3 py-2 text-sm gap-2",leading:"ps-3 inset-y-2",trailing:"pe-3 inset-y-2",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5"},xl:{base:"px-3 py-2 text-base gap-2",leading:"ps-3 inset-y-2",trailing:"pe-3 inset-y-2",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"},autoresize:{true:{base:"resize-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"}},Le=["id","value","name","rows","placeholder","disabled","required"],Re=Object.assign({inheritAttrs:!1},{__name:"UTextarea",props:{as:{type:null,required:!1},id:{type:String,required:!1},name:{type:String,required:!1},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},autofocus:{type:Boolean,required:!1},autofocusDelay:{type:Number,required:!1,default:0},autoresize:{type:Boolean,required:!1},autoresizeDelay:{type:Number,required:!1,default:0},disabled:{type:Boolean,required:!1},rows:{type:Number,required:!1,default:3},maxrows:{type:Number,required:!1,default:0},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(i,{expose:x,emit:_}){const l=i,k=_,h=fe(),m=Te(l,"modelValue",k,{defaultValue:l.defaultValue}),s=me(),{emitFormFocus:n,emitFormBlur:g,emitFormInput:q,emitFormChange:I,size:F,color:U,id:u,name:A,highlight:M,disabled:D,ariaAttrs:v}=pe(l,{deferInputValidation:!0}),{isLeading:e,isTrailing:b,leadingIconName:y,trailingIconName:T}=ve(l),C=se(()=>Y({extend:Y(Pe),...s.ui?.textarea||{}})({color:U.value,variant:l.variant,size:F?.value,loading:l.loading,highlight:M.value,autoresize:l.autoresize,leading:e.value||!!l.avatar||!!h.leading,trailing:b.value||!!h.trailing})),z=be("textareaRef");function j(o){l.modelModifiers?.trim&&(o=o?.trim()??null),l.modelModifiers?.number&&(o=he(o)),l.modelModifiers?.nullable&&(o||=null),l.modelModifiers?.optional&&(o||=void 0),m.value=o,q()}function L(o){f(),l.modelModifiers?.lazy||j(o.target.value)}function R(o){const N=o.target.value;l.modelModifiers?.lazy&&j(N),l.modelModifiers?.trim&&(o.target.value=N.trim()),I(),k("change",o)}function E(o){g(),k("blur",o)}function P(){l.autofocus&&z.value?.focus()}function f(){if(l.autoresize&&z.value){z.value.rows=l.rows;const o=z.value.style.overflow;z.value.style.overflow="hidden";const N=window.getComputedStyle(z.value),G=Number.parseInt(N.paddingTop),de=Number.parseInt(N.paddingBottom),ue=G+de,ce=Number.parseInt(N.lineHeight),{scrollHeight:ge}=z.value,H=(ge-ue)/ce;H>l.rows&&(z.value.rows=l.maxrows?Math.min(H,l.maxrows):H),z.value.style.overflow=o}}return ye(m,()=>{ze(f)}),ne(()=>{setTimeout(()=>{P()},l.autofocusDelay),setTimeout(()=>{f()},l.autoresizeDelay)}),x({textareaRef:z}),(o,N)=>(c(),w(t(xe),{as:i.as,"data-slot":"root",class:O(C.value.root({class:[l.ui?.root,l.class]}))},{default:a(()=>[d("textarea",ee({id:t(u),ref_key:"textareaRef",ref:z,value:t(m),name:t(A),rows:i.rows,placeholder:i.placeholder,"data-slot":"base",class:C.value.base({class:l.ui?.base}),disabled:t(D),required:i.required},{...o.$attrs,...t(v)},{onInput:L,onBlur:E,onChange:R,onFocus:N[0]||(N[0]=(...G)=>t(n)&&t(n)(...G))}),null,16,Le),Z(o.$slots,"default",{ui:C.value}),t(e)||i.avatar||h.leading?(c(),V("span",{key:0,"data-slot":"leading",class:O(C.value.leading({class:l.ui?.leading}))},[Z(o.$slots,"leading",{ui:C.value},()=>[t(e)&&t(y)?(c(),w(J,{key:0,name:t(y),"data-slot":"leadingIcon",class:O(C.value.leadingIcon({class:l.ui?.leadingIcon}))},null,8,["name","class"])):i.avatar?(c(),w(ke,ee({key:1,size:l.ui?.leadingAvatarSize||C.value.leadingAvatarSize()},i.avatar,{"data-slot":"leadingAvatar",class:C.value.leadingAvatar({class:l.ui?.leadingAvatar})}),null,16,["size","class"])):S("",!0)])],2)):S("",!0),t(b)||h.trailing?(c(),V("span",{key:1,"data-slot":"trailing",class:O(C.value.trailing({class:l.ui?.trailing}))},[Z(o.$slots,"trailing",{ui:C.value},()=>[t(T)?(c(),w(J,{key:0,name:t(T),"data-slot":"trailingIcon",class:O(C.value.trailingIcon({class:l.ui?.trailingIcon}))},null,8,["name","class"])):S("",!0)])],2)):S("",!0)]),_:3},8,["as","class"]))}}),Ee={class:"space-y-4"},Ge={class:"flex gap-2"},He={key:0,class:"text-xs text-muted"},We={class:"flex justify-end gap-2"},Ze=Q({__name:"CreateModal",props:{open:{type:Boolean}},emits:["update:open","created"],setup(i,{emit:x}){const _=i,l=x,k=$e(),h=oe(),m=$("blank"),s=$(""),n=$(""),g=$(!1);function q(){m.value="blank",s.value="",n.value="",g.value=!1}function I(){l("update:open",!1),q()}async function F(){if(s.value.trim()){g.value=!0;try{if(m.value==="blank")await $fetch("/api/skills/create",{method:"POST",body:{name:s.value.trim(),description:n.value.trim()||void 0}}),h.add({title:`Skill '${s.value}' created`,color:"success"}),l("created",s.value.trim()),I(),k.push(`/skills/${s.value.trim()}`);else{if(!n.value.trim()){h.add({title:"Description is required for AI generation",color:"warning"}),g.value=!1;return}const U=await $fetch("/api/skills/generate",{method:"POST",body:{name:s.value.trim(),description:n.value.trim()}});h.add({title:`Skill '${s.value}' generated`,description:`Cost: $${U.data.costUsd.toFixed(4)} — created in inactive state for review`,color:"success"}),l("created",s.value.trim()),I(),k.push(`/skills/${s.value.trim()}`)}}catch(U){const u=U instanceof Error?U.message:"Failed to create skill";h.add({title:u,color:"error"})}finally{g.value=!1}}}return(U,u)=>{const A=X,M=ae,D=Ue,v=Re,e=re;return c(),w(e,{open:_.open,"onUpdate:open":u[4]||(u[4]=b=>l("update:open",b))},{header:a(()=>[...u[5]||(u[5]=[d("span",{class:"font-semibold"},"Create Skill",-1)])]),body:a(()=>[d("div",Ee,[d("div",Ge,[r(A,{variant:t(m)==="blank"?"solid":"outline",color:"neutral",size:"sm",icon:"i-lucide-file-plus",onClick:u[0]||(u[0]=b=>m.value="blank")},{default:a(()=>[...u[6]||(u[6]=[p(" Blank Skill ",-1)])]),_:1},8,["variant"]),r(A,{variant:t(m)==="generate"?"solid":"outline",color:"neutral",size:"sm",icon:"i-lucide-sparkles",onClick:u[1]||(u[1]=b=>m.value="generate")},{default:a(()=>[...u[7]||(u[7]=[p(" AI Generate ",-1)])]),_:1},8,["variant"])]),r(D,{label:"Name"},{default:a(()=>[r(M,{modelValue:t(s),"onUpdate:modelValue":u[2]||(u[2]=b=>K(s)?s.value=b:null),placeholder:"my-skill",disabled:t(g),class:"w-full"},null,8,["modelValue","disabled"])]),_:1}),r(D,{label:"Description",required:t(m)==="generate"},{default:a(()=>[r(v,{modelValue:t(n),"onUpdate:modelValue":u[3]||(u[3]=b=>K(n)?n.value=b:null),placeholder:t(m)==="generate"?"Describe what this skill should do...":"Optional description",rows:3,disabled:t(g),class:"w-full"},null,8,["modelValue","placeholder","disabled"])]),_:1},8,["required"]),t(m)==="generate"?(c(),V("p",He," AI-generated skills are created in an inactive state so you can review them before enabling. ")):S("",!0)])]),footer:a(()=>[d("div",We,[r(A,{variant:"ghost",color:"neutral",disabled:t(g),onClick:I},{default:a(()=>[...u[8]||(u[8]=[p(" Cancel ",-1)])]),_:1},8,["disabled"]),r(A,{loading:t(g),disabled:!t(s).trim(),onClick:F},{default:a(()=>[p(B(t(m)==="generate"?"Generate":"Create"),1)]),_:1},8,["loading","disabled"])])]),_:1},8,["open"])}}}),Je=Object.assign(Ze,{__name:"SkillsCreateModal"}),Ke={class:"flex flex-1 min-w-0"},Qe={class:"p-4"},Xe={key:0,class:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3"},Ye={key:1,class:"flex flex-col items-center justify-center py-16 text-dimmed"},et={key:2,class:"text-center py-12 text-muted text-sm"},tt={key:3,class:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3"},lt={class:"text-sm text-muted"},at={class:"text-default"},it={class:"flex justify-end gap-2"},st={class:"text-sm text-muted"},nt={class:"text-default"},ot={class:"flex justify-end gap-2"},It=Q({__name:"index",setup(i){const x=oe(),_=$([]),l=$(!0),k=$(""),h=$(!1),m=$(!1),s=$(null),n=$(""),g=$(""),q=$(!1),I=$(!1),F=se(()=>{if(!k.value.trim())return _.value;const v=k.value.toLowerCase();return _.value.filter(e=>e.name.toLowerCase().includes(v)||e.description.toLowerCase().includes(v))});async function U(){l.value=!0;try{const v=await $fetch("/api/skills");_.value=v.data}catch{x.add({title:"Failed to load skills",color:"error"})}finally{l.value=!1}}async function u(v){const e=v.target,b=e.files?.[0];if(b){m.value=!0;try{const y=new FormData;y.append("file",b);const T=await $fetch("/api/skills/import",{method:"POST",body:y});x.add({title:`Imported ${T.data.name}`,description:`${T.data.fileCount} file${T.data.fileCount===1?"":"s"}`,color:"success"}),we(`/skills/${T.data.name}`)}catch(y){const T=y instanceof Error?y.message:"Import failed";x.add({title:"Import failed",description:T,color:"error"})}finally{m.value=!1,e.value=""}}}async function A(v){try{const e=await $fetch(`/api/skills/${v}/toggle`,{method:"POST"}),b=_.value.find(y=>y.name===v);b&&(b.active=e.data.active),x.add({title:`${v} ${e.data.active?"enabled":"disabled"}`,color:"success"})}catch{x.add({title:`Failed to toggle ${v}`,color:"error"})}}async function M(){if(n.value){q.value=!0;try{await $fetch(`/api/skills/${n.value}/delete`,{method:"POST"}),_.value=_.value.filter(v=>v.name!==n.value),x.add({title:`Deleted ${n.value}`,color:"success"}),n.value=""}catch{x.add({title:`Failed to delete ${n.value}`,color:"error"})}finally{q.value=!1}}}async function D(){if(g.value){I.value=!0;try{await $fetch("/api/skills/library/install",{method:"POST",body:{name:g.value,force:!0}}),x.add({title:`Updated ${g.value}`,color:"success"}),g.value="",await U()}catch{x.add({title:`Failed to update ${g.value}`,color:"error"})}finally{I.value=!1}}}return ne(()=>U()),(v,e)=>{const b=ae,y=X,T=ie,C=Ce,z=Ie,j=J,L=je,R=_e,E=Je,P=re;return c(),V("div",Ke,[r(R,{id:"skills-main",grow:""},{header:a(()=>[r(C,{title:"Skills"},{right:a(()=>[r(b,{modelValue:t(k),"onUpdate:modelValue":e[0]||(e[0]=f=>K(k)?k.value=f:null),icon:"i-lucide-search",placeholder:"Search skills...",size:"sm",class:"w-48"},null,8,["modelValue"]),r(T,{to:"/skills/library"},{default:a(()=>[r(y,{icon:"i-lucide-library",variant:"ghost",color:"neutral",size:"sm"},{default:a(()=>[...e[10]||(e[10]=[p(" Library ",-1)])]),_:1})]),_:1}),r(y,{icon:"i-lucide-upload",variant:"ghost",color:"neutral",size:"sm",loading:t(m),onClick:e[1]||(e[1]=f=>t(s)?.click())},{default:a(()=>[...e[11]||(e[11]=[p(" Import ",-1)])]),_:1},8,["loading"]),d("input",{ref_key:"fileInput",ref:s,type:"file",accept:".zip",class:"hidden",onChange:u},null,544),r(y,{icon:"i-lucide-plus",size:"sm",onClick:e[2]||(e[2]=f=>h.value=!0)},{default:a(()=>[...e[12]||(e[12]=[p(" Create Skill ",-1)])]),_:1})]),_:1})]),body:a(()=>[d("div",Qe,[t(l)?(c(),V("div",Xe,[(c(),V(te,null,le(6,f=>d("div",{key:f,class:"p-4 rounded-lg border border-default bg-elevated/50"},[r(z,{class:"h-4 w-24 mb-2"}),r(z,{class:"h-3 w-full mb-1"}),r(z,{class:"h-3 w-2/3"})])),64))])):t(_).length===0?(c(),V("div",Ye,[r(j,{name:"i-lucide-puzzle",class:"size-12 mb-4"}),e[13]||(e[13]=d("p",{class:"text-lg font-medium"}," No skills found ",-1)),e[14]||(e[14]=d("p",{class:"text-sm mt-1"}," Skills are loaded from ~/.claude/skills/ ",-1))])):t(F).length===0?(c(),V("div",et,' No skills matching "'+B(t(k))+'" ',1)):(c(),V("div",tt,[(c(!0),V(te,null,le(t(F),f=>(c(),w(L,{key:f.name,skill:f,onToggle:A,onDelete:e[3]||(e[3]=o=>n.value=o),onUpdate:e[4]||(e[4]=o=>g.value=o)},null,8,["skill"]))),128))]))])]),_:1}),r(E,{open:t(h),"onUpdate:open":e[5]||(e[5]=f=>h.value=f),onCreated:U},null,8,["open"]),r(P,{open:!!t(n),"onUpdate:open":e[7]||(e[7]=f=>!f&&(n.value=""))},{header:a(()=>[...e[15]||(e[15]=[d("span",{class:"font-semibold"},"Delete Skill",-1)])]),body:a(()=>[d("p",lt,[e[16]||(e[16]=p(" This will permanently delete ",-1)),d("strong",at,B(t(n)),1),e[17]||(e[17]=p(" and all its files. Any modifications you've made will be lost. This cannot be undone. ",-1))])]),footer:a(()=>[d("div",it,[r(y,{variant:"ghost",color:"neutral",disabled:t(q),onClick:e[6]||(e[6]=f=>n.value="")},{default:a(()=>[...e[18]||(e[18]=[p(" Cancel ",-1)])]),_:1},8,["disabled"]),r(y,{color:"error",loading:t(q),onClick:M},{default:a(()=>[...e[19]||(e[19]=[p(" Delete ",-1)])]),_:1},8,["loading"])])]),_:1},8,["open"]),r(P,{open:!!t(g),"onUpdate:open":e[9]||(e[9]=f=>!f&&(g.value=""))},{header:a(()=>[...e[20]||(e[20]=[d("span",{class:"font-semibold"},"Update Skill",-1)])]),body:a(()=>[d("p",st,[e[21]||(e[21]=p(" This will re-download ",-1)),d("strong",nt,B(t(g)),1),e[22]||(e[22]=p(" from the community library, overwriting any local changes you've made to its files. ",-1))])]),footer:a(()=>[d("div",ot,[r(y,{variant:"ghost",color:"neutral",disabled:t(I),onClick:e[8]||(e[8]=f=>g.value="")},{default:a(()=>[...e[23]||(e[23]=[p(" Cancel ",-1)])]),_:1},8,["disabled"]),r(y,{loading:t(I),onClick:D},{default:a(()=>[...e[24]||(e[24]=[p(" Update ",-1)])]),_:1},8,["loading"])])]),_:1},8,["open"])])}}});export{It as default};
|
|
1
|
+
import{_ as ae}from"./CHd8mdNy.js";import{d as Q,e as $,c as w,o as c,w as a,ac as d,aa as S,af as B,ab as p,ao as W,a as t,a0 as X,ag as ie,aq as fe,W as me,aN as pe,ay as ve,h as se,ap as Y,aO as be,f as ye,C as ne,r as Z,M as V,m as ee,$ as O,_ as J,az as ke,P as xe,aP as he,B as ze,bh as $e,aj as oe,Z as r,ak as K,al as te,am as le,n as we}from"./B06CcGVK.js";import{_ as _e,a as Ce}from"./CoUQ3qpL.js";import{_ as Ie}from"./BVNZYpXH.js";import{_ as Se}from"./CGTQGJ_c.js";import{_ as qe}from"./C4ui9LWq.js";import{_ as Ue}from"./BQeDYnyj.js";import{u as Te}from"./hkCaWCzP.js";import{_ as re}from"./aUYaYlYl.js";import"./Dc8vLBQN.js";import"./DH2yWNbZ.js";import"./CopZwjN8.js";import"./0L-9iIbm.js";import"./DnfG5RzJ.js";import"./Tirj2rC0.js";import"./B0v0agy0.js";import"./CiQJYbKL.js";import"./CTJDAjdO.js";import"./BIoHE1oQ.js";const Ve={class:"flex items-start justify-between gap-3"},Be={class:"flex-1 min-w-0"},Ne={class:"flex items-center gap-2 mb-1"},Fe={class:"font-medium text-sm truncate"},Ae={class:"text-xs text-muted line-clamp-2"},De={class:"flex items-center gap-2 mt-3"},Me={class:"text-xs text-dimmed ml-auto"},Oe=Q({__name:"Card",props:{skill:{}},emits:["toggle","delete","update"],setup(i,{emit:x}){const _=i,l=x,k=$(!1);async function h(){k.value=!0,l("toggle",_.skill.name),k.value=!1}return(m,s)=>{const n=Se,g=qe,q=X,I=ie;return c(),w(I,{to:`/skills/${i.skill.name}`,class:"block p-4 rounded-lg border border-default bg-elevated/50 hover:bg-elevated transition-colors"},{default:a(()=>[d("div",Ve,[d("div",Be,[d("div",Ne,[d("span",Fe,B(i.skill.name),1),i.skill.core?(c(),w(n,{key:0,variant:"subtle",color:"primary",size:"xs"},{default:a(()=>[...s[3]||(s[3]=[p(" Core ",-1)])]),_:1})):S("",!0),i.skill.active?S("",!0):(c(),w(n,{key:1,variant:"subtle",color:"neutral",size:"xs"},{default:a(()=>[...s[4]||(s[4]=[p(" Disabled ",-1)])]),_:1}))]),d("p",Ae,B(i.skill.description),1)]),i.skill.core?S("",!0):(c(),w(g,{key:0,"model-value":i.skill.active,size:"sm",loading:t(k),"onUpdate:modelValue":h,onClick:s[0]||(s[0]=W(()=>{},["prevent","stop"]))},null,8,["model-value","loading"]))]),d("div",De,[i.skill.version?(c(),w(n,{key:0,variant:"soft",color:"neutral",size:"xs"},{default:a(()=>[p(" v"+B(i.skill.version),1)]),_:1})):S("",!0),i.skill.author?(c(),w(n,{key:1,variant:"soft",color:"neutral",size:"xs"},{default:a(()=>[p(B(i.skill.author),1)]),_:1})):S("",!0),d("span",Me,B(i.skill.fileCount)+" file"+B(i.skill.fileCount!==1?"s":""),1),i.skill.hasUpdate?(c(),w(q,{key:2,icon:"i-lucide-refresh-cw",color:"primary",variant:"soft",size:"xs",onClick:s[1]||(s[1]=W(F=>l("update",i.skill.name),["prevent","stop"]))})):S("",!0),i.skill.core?S("",!0):(c(),w(q,{key:3,icon:"i-lucide-trash",color:"error",variant:"soft",size:"xs",onClick:s[2]||(s[2]=W(F=>l("delete",i.skill.name),["prevent","stop"]))}))])]),_:1},8,["to"])}}}),je=Object.assign(Oe,{__name:"SkillsCard"}),Pe={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 start-0 flex items-start",leadingIcon:"shrink-0 text-dimmed",leadingAvatar:"shrink-0",leadingAvatarSize:"",trailing:"absolute end-0 flex items-start",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 inset-y-1",trailing:"pe-2 inset-y-1",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 inset-y-1.5",trailing:"pe-2.5 inset-y-1.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 inset-y-1.5",trailing:"pe-2.5 inset-y-1.5",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5"},lg:{base:"px-3 py-2 text-sm gap-2",leading:"ps-3 inset-y-2",trailing:"pe-3 inset-y-2",leadingIcon:"size-5",leadingAvatarSize:"2xs",trailingIcon:"size-5"},xl:{base:"px-3 py-2 text-base gap-2",leading:"ps-3 inset-y-2",trailing:"pe-3 inset-y-2",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"},autoresize:{true:{base:"resize-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"}},Le=["id","value","name","rows","placeholder","disabled","required"],Re=Object.assign({inheritAttrs:!1},{__name:"UTextarea",props:{as:{type:null,required:!1},id:{type:String,required:!1},name:{type:String,required:!1},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},autofocus:{type:Boolean,required:!1},autofocusDelay:{type:Number,required:!1,default:0},autoresize:{type:Boolean,required:!1},autoresizeDelay:{type:Number,required:!1,default:0},disabled:{type:Boolean,required:!1},rows:{type:Number,required:!1,default:3},maxrows:{type:Number,required:!1,default:0},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(i,{expose:x,emit:_}){const l=i,k=_,h=fe(),m=Te(l,"modelValue",k,{defaultValue:l.defaultValue}),s=me(),{emitFormFocus:n,emitFormBlur:g,emitFormInput:q,emitFormChange:I,size:F,color:U,id:u,name:A,highlight:M,disabled:D,ariaAttrs:v}=pe(l,{deferInputValidation:!0}),{isLeading:e,isTrailing:b,leadingIconName:y,trailingIconName:T}=ve(l),C=se(()=>Y({extend:Y(Pe),...s.ui?.textarea||{}})({color:U.value,variant:l.variant,size:F?.value,loading:l.loading,highlight:M.value,autoresize:l.autoresize,leading:e.value||!!l.avatar||!!h.leading,trailing:b.value||!!h.trailing})),z=be("textareaRef");function j(o){l.modelModifiers?.trim&&(o=o?.trim()??null),l.modelModifiers?.number&&(o=he(o)),l.modelModifiers?.nullable&&(o||=null),l.modelModifiers?.optional&&(o||=void 0),m.value=o,q()}function L(o){f(),l.modelModifiers?.lazy||j(o.target.value)}function R(o){const N=o.target.value;l.modelModifiers?.lazy&&j(N),l.modelModifiers?.trim&&(o.target.value=N.trim()),I(),k("change",o)}function E(o){g(),k("blur",o)}function P(){l.autofocus&&z.value?.focus()}function f(){if(l.autoresize&&z.value){z.value.rows=l.rows;const o=z.value.style.overflow;z.value.style.overflow="hidden";const N=window.getComputedStyle(z.value),G=Number.parseInt(N.paddingTop),de=Number.parseInt(N.paddingBottom),ue=G+de,ce=Number.parseInt(N.lineHeight),{scrollHeight:ge}=z.value,H=(ge-ue)/ce;H>l.rows&&(z.value.rows=l.maxrows?Math.min(H,l.maxrows):H),z.value.style.overflow=o}}return ye(m,()=>{ze(f)}),ne(()=>{setTimeout(()=>{P()},l.autofocusDelay),setTimeout(()=>{f()},l.autoresizeDelay)}),x({textareaRef:z}),(o,N)=>(c(),w(t(xe),{as:i.as,"data-slot":"root",class:O(C.value.root({class:[l.ui?.root,l.class]}))},{default:a(()=>[d("textarea",ee({id:t(u),ref_key:"textareaRef",ref:z,value:t(m),name:t(A),rows:i.rows,placeholder:i.placeholder,"data-slot":"base",class:C.value.base({class:l.ui?.base}),disabled:t(D),required:i.required},{...o.$attrs,...t(v)},{onInput:L,onBlur:E,onChange:R,onFocus:N[0]||(N[0]=(...G)=>t(n)&&t(n)(...G))}),null,16,Le),Z(o.$slots,"default",{ui:C.value}),t(e)||i.avatar||h.leading?(c(),V("span",{key:0,"data-slot":"leading",class:O(C.value.leading({class:l.ui?.leading}))},[Z(o.$slots,"leading",{ui:C.value},()=>[t(e)&&t(y)?(c(),w(J,{key:0,name:t(y),"data-slot":"leadingIcon",class:O(C.value.leadingIcon({class:l.ui?.leadingIcon}))},null,8,["name","class"])):i.avatar?(c(),w(ke,ee({key:1,size:l.ui?.leadingAvatarSize||C.value.leadingAvatarSize()},i.avatar,{"data-slot":"leadingAvatar",class:C.value.leadingAvatar({class:l.ui?.leadingAvatar})}),null,16,["size","class"])):S("",!0)])],2)):S("",!0),t(b)||h.trailing?(c(),V("span",{key:1,"data-slot":"trailing",class:O(C.value.trailing({class:l.ui?.trailing}))},[Z(o.$slots,"trailing",{ui:C.value},()=>[t(T)?(c(),w(J,{key:0,name:t(T),"data-slot":"trailingIcon",class:O(C.value.trailingIcon({class:l.ui?.trailingIcon}))},null,8,["name","class"])):S("",!0)])],2)):S("",!0)]),_:3},8,["as","class"]))}}),Ee={class:"space-y-4"},Ge={class:"flex gap-2"},He={key:0,class:"text-xs text-muted"},We={class:"flex justify-end gap-2"},Ze=Q({__name:"CreateModal",props:{open:{type:Boolean}},emits:["update:open","created"],setup(i,{emit:x}){const _=i,l=x,k=$e(),h=oe(),m=$("blank"),s=$(""),n=$(""),g=$(!1);function q(){m.value="blank",s.value="",n.value="",g.value=!1}function I(){l("update:open",!1),q()}async function F(){if(s.value.trim()){g.value=!0;try{if(m.value==="blank")await $fetch("/api/skills/create",{method:"POST",body:{name:s.value.trim(),description:n.value.trim()||void 0}}),h.add({title:`Skill '${s.value}' created`,color:"success"}),l("created",s.value.trim()),I(),k.push(`/skills/${s.value.trim()}`);else{if(!n.value.trim()){h.add({title:"Description is required for AI generation",color:"warning"}),g.value=!1;return}const U=await $fetch("/api/skills/generate",{method:"POST",body:{name:s.value.trim(),description:n.value.trim()}});h.add({title:`Skill '${s.value}' generated`,description:`Cost: $${U.data.costUsd.toFixed(4)} — created in inactive state for review`,color:"success"}),l("created",s.value.trim()),I(),k.push(`/skills/${s.value.trim()}`)}}catch(U){const u=U instanceof Error?U.message:"Failed to create skill";h.add({title:u,color:"error"})}finally{g.value=!1}}}return(U,u)=>{const A=X,M=ae,D=Ue,v=Re,e=re;return c(),w(e,{open:_.open,"onUpdate:open":u[4]||(u[4]=b=>l("update:open",b))},{header:a(()=>[...u[5]||(u[5]=[d("span",{class:"font-semibold"},"Create Skill",-1)])]),body:a(()=>[d("div",Ee,[d("div",Ge,[r(A,{variant:t(m)==="blank"?"solid":"outline",color:"neutral",size:"sm",icon:"i-lucide-file-plus",onClick:u[0]||(u[0]=b=>m.value="blank")},{default:a(()=>[...u[6]||(u[6]=[p(" Blank Skill ",-1)])]),_:1},8,["variant"]),r(A,{variant:t(m)==="generate"?"solid":"outline",color:"neutral",size:"sm",icon:"i-lucide-sparkles",onClick:u[1]||(u[1]=b=>m.value="generate")},{default:a(()=>[...u[7]||(u[7]=[p(" AI Generate ",-1)])]),_:1},8,["variant"])]),r(D,{label:"Name"},{default:a(()=>[r(M,{modelValue:t(s),"onUpdate:modelValue":u[2]||(u[2]=b=>K(s)?s.value=b:null),placeholder:"my-skill",disabled:t(g),class:"w-full"},null,8,["modelValue","disabled"])]),_:1}),r(D,{label:"Description",required:t(m)==="generate"},{default:a(()=>[r(v,{modelValue:t(n),"onUpdate:modelValue":u[3]||(u[3]=b=>K(n)?n.value=b:null),placeholder:t(m)==="generate"?"Describe what this skill should do...":"Optional description",rows:3,disabled:t(g),class:"w-full"},null,8,["modelValue","placeholder","disabled"])]),_:1},8,["required"]),t(m)==="generate"?(c(),V("p",He," AI-generated skills are created in an inactive state so you can review them before enabling. ")):S("",!0)])]),footer:a(()=>[d("div",We,[r(A,{variant:"ghost",color:"neutral",disabled:t(g),onClick:I},{default:a(()=>[...u[8]||(u[8]=[p(" Cancel ",-1)])]),_:1},8,["disabled"]),r(A,{loading:t(g),disabled:!t(s).trim(),onClick:F},{default:a(()=>[p(B(t(m)==="generate"?"Generate":"Create"),1)]),_:1},8,["loading","disabled"])])]),_:1},8,["open"])}}}),Je=Object.assign(Ze,{__name:"SkillsCreateModal"}),Ke={class:"flex flex-1 min-w-0"},Qe={class:"p-4"},Xe={key:0,class:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3"},Ye={key:1,class:"flex flex-col items-center justify-center py-16 text-dimmed"},et={key:2,class:"text-center py-12 text-muted text-sm"},tt={key:3,class:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3"},lt={class:"text-sm text-muted"},at={class:"text-default"},it={class:"flex justify-end gap-2"},st={class:"text-sm text-muted"},nt={class:"text-default"},ot={class:"flex justify-end gap-2"},It=Q({__name:"index",setup(i){const x=oe(),_=$([]),l=$(!0),k=$(""),h=$(!1),m=$(!1),s=$(null),n=$(""),g=$(""),q=$(!1),I=$(!1),F=se(()=>{if(!k.value.trim())return _.value;const v=k.value.toLowerCase();return _.value.filter(e=>e.name.toLowerCase().includes(v)||e.description.toLowerCase().includes(v))});async function U(){l.value=!0;try{const v=await $fetch("/api/skills");_.value=v.data}catch{x.add({title:"Failed to load skills",color:"error"})}finally{l.value=!1}}async function u(v){const e=v.target,b=e.files?.[0];if(b){m.value=!0;try{const y=new FormData;y.append("file",b);const T=await $fetch("/api/skills/import",{method:"POST",body:y});x.add({title:`Imported ${T.data.name}`,description:`${T.data.fileCount} file${T.data.fileCount===1?"":"s"}`,color:"success"}),we(`/skills/${T.data.name}`)}catch(y){const T=y instanceof Error?y.message:"Import failed";x.add({title:"Import failed",description:T,color:"error"})}finally{m.value=!1,e.value=""}}}async function A(v){try{const e=await $fetch(`/api/skills/${v}/toggle`,{method:"POST"}),b=_.value.find(y=>y.name===v);b&&(b.active=e.data.active),x.add({title:`${v} ${e.data.active?"enabled":"disabled"}`,color:"success"})}catch{x.add({title:`Failed to toggle ${v}`,color:"error"})}}async function M(){if(n.value){q.value=!0;try{await $fetch(`/api/skills/${n.value}/delete`,{method:"POST"}),_.value=_.value.filter(v=>v.name!==n.value),x.add({title:`Deleted ${n.value}`,color:"success"}),n.value=""}catch{x.add({title:`Failed to delete ${n.value}`,color:"error"})}finally{q.value=!1}}}async function D(){if(g.value){I.value=!0;try{await $fetch("/api/skills/library/install",{method:"POST",body:{name:g.value,force:!0}}),x.add({title:`Updated ${g.value}`,color:"success"}),g.value="",await U()}catch{x.add({title:`Failed to update ${g.value}`,color:"error"})}finally{I.value=!1}}}return ne(()=>U()),(v,e)=>{const b=ae,y=X,T=ie,C=Ce,z=Ie,j=J,L=je,R=_e,E=Je,P=re;return c(),V("div",Ke,[r(R,{id:"skills-main",grow:""},{header:a(()=>[r(C,{title:"Skills"},{right:a(()=>[r(b,{modelValue:t(k),"onUpdate:modelValue":e[0]||(e[0]=f=>K(k)?k.value=f:null),icon:"i-lucide-search",placeholder:"Search skills...",size:"sm",class:"w-48"},null,8,["modelValue"]),r(T,{to:"/skills/library"},{default:a(()=>[r(y,{icon:"i-lucide-library",variant:"ghost",color:"neutral",size:"sm"},{default:a(()=>[...e[10]||(e[10]=[p(" Library ",-1)])]),_:1})]),_:1}),r(y,{icon:"i-lucide-upload",variant:"ghost",color:"neutral",size:"sm",loading:t(m),onClick:e[1]||(e[1]=f=>t(s)?.click())},{default:a(()=>[...e[11]||(e[11]=[p(" Import ",-1)])]),_:1},8,["loading"]),d("input",{ref_key:"fileInput",ref:s,type:"file",accept:".zip",class:"hidden",onChange:u},null,544),r(y,{icon:"i-lucide-plus",size:"sm",onClick:e[2]||(e[2]=f=>h.value=!0)},{default:a(()=>[...e[12]||(e[12]=[p(" Create Skill ",-1)])]),_:1})]),_:1})]),body:a(()=>[d("div",Qe,[t(l)?(c(),V("div",Xe,[(c(),V(te,null,le(6,f=>d("div",{key:f,class:"p-4 rounded-lg border border-default bg-elevated/50"},[r(z,{class:"h-4 w-24 mb-2"}),r(z,{class:"h-3 w-full mb-1"}),r(z,{class:"h-3 w-2/3"})])),64))])):t(_).length===0?(c(),V("div",Ye,[r(j,{name:"i-lucide-puzzle",class:"size-12 mb-4"}),e[13]||(e[13]=d("p",{class:"text-lg font-medium"}," No skills found ",-1)),e[14]||(e[14]=d("p",{class:"text-sm mt-1"}," Skills are loaded from ~/.claude/skills/ ",-1))])):t(F).length===0?(c(),V("div",et,' No skills matching "'+B(t(k))+'" ',1)):(c(),V("div",tt,[(c(!0),V(te,null,le(t(F),f=>(c(),w(L,{key:f.name,skill:f,onToggle:A,onDelete:e[3]||(e[3]=o=>n.value=o),onUpdate:e[4]||(e[4]=o=>g.value=o)},null,8,["skill"]))),128))]))])]),_:1}),r(E,{open:t(h),"onUpdate:open":e[5]||(e[5]=f=>h.value=f),onCreated:U},null,8,["open"]),r(P,{open:!!t(n),"onUpdate:open":e[7]||(e[7]=f=>!f&&(n.value=""))},{header:a(()=>[...e[15]||(e[15]=[d("span",{class:"font-semibold"},"Delete Skill",-1)])]),body:a(()=>[d("p",lt,[e[16]||(e[16]=p(" This will permanently delete ",-1)),d("strong",at,B(t(n)),1),e[17]||(e[17]=p(" and all its files. Any modifications you've made will be lost. This cannot be undone. ",-1))])]),footer:a(()=>[d("div",it,[r(y,{variant:"ghost",color:"neutral",disabled:t(q),onClick:e[6]||(e[6]=f=>n.value="")},{default:a(()=>[...e[18]||(e[18]=[p(" Cancel ",-1)])]),_:1},8,["disabled"]),r(y,{color:"error",loading:t(q),onClick:M},{default:a(()=>[...e[19]||(e[19]=[p(" Delete ",-1)])]),_:1},8,["loading"])])]),_:1},8,["open"]),r(P,{open:!!t(g),"onUpdate:open":e[9]||(e[9]=f=>!f&&(g.value=""))},{header:a(()=>[...e[20]||(e[20]=[d("span",{class:"font-semibold"},"Update Skill",-1)])]),body:a(()=>[d("p",st,[e[21]||(e[21]=p(" This will re-download ",-1)),d("strong",nt,B(t(g)),1),e[22]||(e[22]=p(" from the community library, overwriting any local changes you've made to its files. ",-1))])]),footer:a(()=>[d("div",ot,[r(y,{variant:"ghost",color:"neutral",disabled:t(I),onClick:e[8]||(e[8]=f=>g.value="")},{default:a(()=>[...e[23]||(e[23]=[p(" Cancel ",-1)])]),_:1},8,["disabled"]),r(y,{loading:t(I),onClick:D},{default:a(()=>[...e[24]||(e[24]=[p(" Update ",-1)])]),_:1},8,["loading"])])]),_:1},8,["open"])])}}});export{It as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{W as f,ad as p,h as i,M as n,o,r as c,$ as r,ap as d}from"./
|
|
1
|
+
import{W as f,ad as p,h as i,M as n,o,r as c,$ as r,ap as d}from"./B06CcGVK.js";const m={slots:{base:"text-4xl text-highlighted font-bold mb-8 scroll-mt-[calc(45px+var(--ui-header-height))] lg:scroll-mt-(--ui-header-height)",link:"inline-flex items-center gap-2"}},g=["id"],k=["href"],y={__name:"ProseH1",props:{id:{type:String,required:!1},class:{type:null,required:!1},ui:{type:null,required:!1}},setup(e){const s=e,u=f(),{headings:t}=p().public?.mdc||{},a=i(()=>d({extend:d(m),...u.ui?.prose?.h1||{}})()),h=i(()=>s.id&&typeof t?.anchorLinks=="object"&&t.anchorLinks.h1);return(l,b)=>(o(),n("h1",{id:e.id,class:r(a.value.base({class:s.class}))},[e.id&&h.value?(o(),n("a",{key:0,href:`#${e.id}`,class:r(a.value.link({class:s.ui?.link}))},[c(l.$slots,"default")],10,k)):c(l.$slots,"default",{key:1})],10,g))}};export{y as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as me}from"./Ehiy7Wkv.js";import{_ as ve}from"./Cfce_cVw.js";import{d as G,aU as re,aV as te,e as x,f as se,M as z,o as F,al as ye,Z as l,w as i,bm as ie,ak as B,a as o,ac as n,a0 as ae,ab as P,_ as J,aa as H,af as Q,h as M,C as de,c as O,$ as Z,X as he,Y as _e,U as we,W as be,ap as ue,m as ge,bD as xe,a5 as ke,aj as $e,b0 as ce,ah as Ce}from"./CGgHmnnS.js";import{_ as Fe,a as De}from"./D4wS6gzr.js";import{_ as Ue}from"./B3TXSB_R.js";import{_ as pe}from"./CCmSsj4q.js";import{_ as Te,a as Se}from"./81-iumfM.js";import{u as je}from"./CZ5B974o.js";import{_ as Me}from"./DN5cHXGS.js";import{_ as qe}from"./C_hl3kCw.js";import{_ as Ve}from"./D5AjrkGO.js";import{_ as Ie}from"./CJLlvuDm.js";import{_ as Ne}from"./BGV4_re9.js";import{_ as ze}from"./BW0bq0Nu.js";import{_ as Pe,a as Be}from"./BTImkTzA.js";import{a as Ee,_ as Oe}from"./B8na0pik.js";import{_ as Re}from"./1_nO5SO6.js";import{i as Le,d as Ae,_ as Ke,u as He}from"./CruI_TS3.js";import{u as Qe}from"./CjVBL0o-.js";import{u as fe}from"./CIMG8oEU.js";import"./pFPRVtL-.js";import"./BtVAOj3K.js";import"./Dfi2mj_-.js";import"./Cwdn7ZtG.js";import"./Suor9Vto.js";import"./d85YwuyC.js";import"./Cj3gDP-y.js";import"./B1ea1Zc2.js";import"./6k0gxaWW.js";import"./iVfmia7K.js";import"./By5L5Smf.js";import"./C4Ii8cYC.js";import"./DIMnGgEU.js";import"./CZQeFnOf.js";import"./C6Y-ieo6.js";import"./B02JOKtW.js";import"./DEmzTuCa.js";import"./ByXbV9Xa.js";import"./D57E8FC4.js";import"./rVZcJ6Pz.js";import"./CD6r4z4e.js";import"./CPb6IrVT.js";import"./CNB4wNeh.js";import"./P3qGksT8.js";import"./BGa5KqPj.js";import"./D_1GDAlv.js";import"./Vcq4gwWv.js";import"./AMPsjNHJ.js";const We={class:"flex items-center gap-2"},Xe={class:"flex justify-end gap-2"},Ye={class:"flex items-center gap-2"},Ze={class:"flex justify-end gap-2"},Ge={class:"flex items-center gap-2"},Je={class:"flex justify-end gap-2"},et={class:"flex items-center gap-2 text-error"},tt={key:0,class:"text-sm text-dimmed mt-1"},at={class:"flex justify-end gap-2"},lt=G({__name:"FileTreeModals",props:re({contextTarget:{}},{showNewFile:{type:Boolean,required:!0},showNewFileModifiers:{},showNewFolder:{type:Boolean,required:!0},showNewFolderModifiers:{},showRename:{type:Boolean,required:!0},showRenameModifiers:{},showDelete:{type:Boolean,required:!0},showDeleteModifiers:{}}),emits:re(["createFile","createFolder","rename","delete"],["update:showNewFile","update:showNewFolder","update:showRename","update:showDelete"]),setup(d,{emit:v}){const c=te(d,"showNewFile"),h=te(d,"showNewFolder"),u=te(d,"showRename"),f=te(d,"showDelete"),w=d,y=v,m=x("");se(u,_=>{_&&w.contextTarget&&(m.value=w.contextTarget.label)}),se(c,_=>{_&&(m.value="")}),se(h,_=>{_&&(m.value="")});function U(){m.value.trim()&&(y("createFile",m.value.trim()),c.value=!1,m.value="")}function D(){m.value.trim()&&(y("createFolder",m.value.trim()),h.value=!1,m.value="")}function b(){m.value.trim()&&(y("rename",m.value.trim()),u.value=!1,m.value="")}function q(){y("delete"),f.value=!1}return(_,e)=>{const T=J,a=me,t=ae,r=Ue,$=pe;return F(),z(ye,null,[l($,{open:c.value,"onUpdate:open":e[2]||(e[2]=s=>c.value=s)},{content:i(()=>[l(r,null,{header:i(()=>[n("div",We,[l(T,{name:"i-lucide-file-plus",class:"size-5"}),e[11]||(e[11]=n("span",{class:"font-semibold"},"New File",-1))])]),footer:i(()=>[n("div",Xe,[l(t,{color:"neutral",variant:"ghost",onClick:e[1]||(e[1]=s=>c.value=!1)},{default:i(()=>[...e[12]||(e[12]=[P(" Cancel ",-1)])]),_:1}),l(t,{onClick:U},{default:i(()=>[...e[13]||(e[13]=[P(" Create ",-1)])]),_:1})])]),default:i(()=>[l(a,{modelValue:o(m),"onUpdate:modelValue":e[0]||(e[0]=s=>B(m)?m.value=s:null),placeholder:"filename.md",autofocus:"",onKeyup:ie(U,["enter"])},null,8,["modelValue"])]),_:1})]),_:1},8,["open"]),l($,{open:h.value,"onUpdate:open":e[5]||(e[5]=s=>h.value=s)},{content:i(()=>[l(r,null,{header:i(()=>[n("div",Ye,[l(T,{name:"i-lucide-folder-plus",class:"size-5"}),e[14]||(e[14]=n("span",{class:"font-semibold"},"New Folder",-1))])]),footer:i(()=>[n("div",Ze,[l(t,{color:"neutral",variant:"ghost",onClick:e[4]||(e[4]=s=>h.value=!1)},{default:i(()=>[...e[15]||(e[15]=[P(" Cancel ",-1)])]),_:1}),l(t,{onClick:D},{default:i(()=>[...e[16]||(e[16]=[P(" Create ",-1)])]),_:1})])]),default:i(()=>[l(a,{modelValue:o(m),"onUpdate:modelValue":e[3]||(e[3]=s=>B(m)?m.value=s:null),placeholder:"folder-name",autofocus:"",onKeyup:ie(D,["enter"])},null,8,["modelValue"])]),_:1})]),_:1},8,["open"]),l($,{open:u.value,"onUpdate:open":e[8]||(e[8]=s=>u.value=s)},{content:i(()=>[l(r,null,{header:i(()=>[n("div",Ge,[l(T,{name:"i-lucide-pencil",class:"size-5"}),e[17]||(e[17]=n("span",{class:"font-semibold"},"Rename",-1))])]),footer:i(()=>[n("div",Je,[l(t,{color:"neutral",variant:"ghost",onClick:e[7]||(e[7]=s=>u.value=!1)},{default:i(()=>[...e[18]||(e[18]=[P(" Cancel ",-1)])]),_:1}),l(t,{onClick:b},{default:i(()=>[...e[19]||(e[19]=[P(" Rename ",-1)])]),_:1})])]),default:i(()=>[l(a,{modelValue:o(m),"onUpdate:modelValue":e[6]||(e[6]=s=>B(m)?m.value=s:null),placeholder:"new-name",autofocus:"",onKeyup:ie(b,["enter"])},null,8,["modelValue"])]),_:1})]),_:1},8,["open"]),l($,{open:f.value,"onUpdate:open":e[10]||(e[10]=s=>f.value=s)},{content:i(()=>[l(r,null,{header:i(()=>[n("div",et,[l(T,{name:"i-lucide-trash-2",class:"size-5"}),e[20]||(e[20]=n("span",{class:"font-semibold"},"Delete",-1))])]),footer:i(()=>[n("div",at,[l(t,{color:"neutral",variant:"ghost",onClick:e[9]||(e[9]=s=>f.value=!1)},{default:i(()=>[...e[23]||(e[23]=[P(" Cancel ",-1)])]),_:1}),l(t,{color:"error",onClick:q},{default:i(()=>[...e[24]||(e[24]=[P(" Delete ",-1)])]),_:1})])]),default:i(()=>[n("p",null,[e[21]||(e[21]=P(" Are you sure you want to delete ",-1)),n("strong",null,Q(d.contextTarget?.label),1),e[22]||(e[22]=P("? ",-1))]),d.contextTarget?.type==="directory"?(F(),z("p",tt," This will delete all files and folders inside. ")):H("",!0)]),_:1})]),_:1},8,["open"])],64)}}}),ot=Object.assign(lt,{__name:"FilesFileTreeModals"});function nt(){const d=x([]),v=x(null),c=x(!1),h=x(null),u=x("");function f(a,t=!1){const r=a.type==="directory"?void 0:w(a.name);return{id:a.path,label:a.name,icon:r,path:a.path,type:a.type,defaultExpanded:t,children:a.children?.map($=>f($))}}function w(a){switch(a.split(".").pop()?.toLowerCase()){case"md":return"i-lucide-file-text";case"ts":case"tsx":return"i-lucide-file-code";case"js":case"jsx":return"i-lucide-file-code";case"vue":return"i-lucide-file-code";case"json":return"i-lucide-file-json";case"css":case"scss":return"i-lucide-file-code";case"png":case"jpg":case"jpeg":case"gif":case"svg":return"i-lucide-file-image";default:return"i-lucide-file"}}async function y(a="/"){c.value=!0,h.value=null;try{const t=await $fetch("/api/fs/list",{query:{path:a,recursive:"true"}});d.value=t.data.map(r=>f(r,!0))}catch(t){h.value="Failed to load file tree",console.error("Failed to load file tree:",t)}finally{c.value=!1}}async function m(a){try{return(await $fetch("/api/fs/read",{method:"POST",body:{path:a}})).data}catch(t){throw console.error("Failed to read file:",t),t}}async function U(a,t){try{return(await $fetch("/api/fs/write",{method:"POST",body:{path:a,content:t}})).data}catch(r){throw console.error("Failed to write file:",r),r}}async function D(a,t){const r=a==="/"?`/${t}`:`${a}/${t}`;return await U(r,""),await y(),r}async function b(a,t){const r=a==="/"?`/${t}`:`${a}/${t}`;try{return await $fetch("/api/fs/mkdir",{method:"POST",body:{path:r}}),await y(),r}catch($){throw console.error("Failed to create folder:",$),$}}async function q(a,t){const r=a.split("/");r.pop();const $=[...r,t].join("/");try{return await $fetch("/api/fs/rename",{method:"POST",body:{oldPath:a,newPath:$}}),await y(),$}catch(s){throw console.error("Failed to rename:",s),s}}async function _(a){try{await $fetch("/api/fs/delete",{method:"POST",body:{path:a}}),v.value===a&&(v.value=null),await y()}catch(t){throw console.error("Failed to delete:",t),t}}async function e(a,t){try{const r=await $fetch("/api/fs/move",{method:"POST",body:{sourcePath:a,destinationPath:t}});return await y(),r.data.newPath}catch(r){throw console.error("Failed to move:",r),r}}const T=M(()=>{if(!u.value)return d.value;const a=u.value.toLowerCase();function t(r){return r.reduce(($,s)=>{const I=s.label.toLowerCase().includes(a),V=s.children?t(s.children):[];return(I||V.length>0)&&$.push({...s,children:V.length>0?V:s.children,defaultExpanded:V.length>0||I}),$},[])}return t(d.value)});return{items:d,filteredItems:T,selectedFile:v,loading:c,error:h,searchQuery:u,loadTree:y,readFile:m,writeFile:U,createFile:D,createFolder:b,renameItem:q,deleteItem:_,moveItem:e}}const st={class:"h-full flex flex-col"},it={class:"-mt-1 pb-2"},dt={key:0,class:"flex items-center justify-center py-8"},rt={key:1,class:"h-full min-h-32 flex flex-col items-center justify-center text-dimmed text-sm"},ut=["onContextmenu","onDragstart","onDragover","onDrop"],ct={class:"truncate"},mt=G({__name:"FileTree",emits:["select"],setup(d,{emit:v}){const c=v,{filteredItems:h,selectedFile:u,loading:f,searchQuery:w,loadTree:y,createFile:m,createFolder:U,renameItem:D,deleteItem:b,moveItem:q}=nt(),_=x(null),e=x(null);function T(k,p){_.value=p,k.dataTransfer&&(k.dataTransfer.effectAllowed="move",k.dataTransfer.setData("text/plain",p.path))}function a(k,p){_.value&&p.type==="directory"&&_.value.path!==p.path&&(p.path.startsWith(_.value.path+"/")||(k.preventDefault(),e.value=p))}function t(){e.value=null}function r(){_.value=null,e.value=null}async function $(k,p){if(k.preventDefault(),!(!_.value||p.type!=="directory")){try{await q(_.value.path,p.path)}catch{}_.value=null,e.value=null}}const s=x(null),I=x(!1),V=x(!1),E=x(!1),N=x(!1),A=M(()=>[[{label:"New File",icon:"i-lucide-file-plus",onSelect:()=>{I.value=!0}},{label:"New Folder",icon:"i-lucide-folder-plus",onSelect:()=>{V.value=!0}}],[{label:"Rename",icon:"i-lucide-pencil",onSelect:()=>{s.value&&(E.value=!0)}},{label:"Delete",icon:"i-lucide-trash-2",color:"error",onSelect:()=>{N.value=!0}}]]);function W(k){k.type==="file"&&(u.value=k.path,c("select",k.path))}async function ee(k){const p=s.value?.type==="directory"?s.value.path:"/";let R=k;R.includes(".")||(R+=".md");try{const K=await m(p,R);u.value=K,c("select",K)}catch{}}async function X(k){const p=s.value?.type==="directory"?s.value.path:"/";try{await U(p,k)}catch{}}async function S(k){if(s.value)try{await D(s.value.path,k)}catch{}}async function C(){if(s.value)try{await b(s.value.path)}catch{}}return de(()=>{y()}),(k,p)=>{const R=me,K=ve,L=J,le=Fe,oe=De,ne=ot;return F(),z("div",st,[n("div",it,[l(R,{modelValue:o(w),"onUpdate:modelValue":p[0]||(p[0]=g=>B(w)?w.value=g:null),placeholder:"Search files...",icon:"i-lucide-search",size:"sm",class:"w-full"},null,8,["modelValue"])]),l(K,{class:"mt-2"}),l(oe,{items:o(A),class:"flex-1 h-full overflow-auto p-2",onContextmenu:p[2]||(p[2]=g=>s.value=null)},{default:i(()=>[o(f)?(F(),z("div",dt,[l(L,{name:"i-lucide-loader-2",class:"size-6 animate-spin text-dimmed"})])):o(h).length===0?(F(),z("div",rt,[l(L,{name:"i-lucide-folder-open",class:"size-8 mx-auto mb-2 opacity-50"}),p[7]||(p[7]=n("p",null,"No files found",-1)),p[8]||(p[8]=n("p",{class:"text-xs mt-1"}," Right-click to create a file ",-1))])):(F(),O(le,{key:2,items:o(h),"get-key":g=>g.id,color:"primary","expanded-icon":"i-lucide-folder-open","collapsed-icon":"i-lucide-folder",onSelect:p[1]||(p[1]=(g,Y)=>W(Y))},{item:i(({item:g,expanded:Y})=>[n("div",{class:Z(["flex items-center gap-2 w-full",{"bg-primary/10 rounded":o(e)?.path===g.path}]),draggable:"true",onContextmenu:j=>s.value=g,onDragstart:j=>T(j,g),onDragover:j=>a(j,g),onDragleave:t,onDragend:r,onDrop:j=>$(j,g)},[g.children?.length?(F(),O(L,{key:0,name:Y?"i-lucide-folder-open":"i-lucide-folder",class:"size-4 shrink-0 text-dimmed"},null,8,["name"])):g.icon?(F(),O(L,{key:1,name:g.icon,class:"size-4 shrink-0 text-dimmed"},null,8,["name"])):(F(),O(L,{key:2,name:"i-lucide-file",class:"size-4 shrink-0 text-dimmed"})),n("span",ct,Q(g.label),1)],42,ut)]),_:1},8,["items","get-key"]))]),_:1},8,["items"]),l(ne,{"show-new-file":o(I),"onUpdate:showNewFile":p[3]||(p[3]=g=>B(I)?I.value=g:null),"show-new-folder":o(V),"onUpdate:showNewFolder":p[4]||(p[4]=g=>B(V)?V.value=g:null),"show-rename":o(E),"onUpdate:showRename":p[5]||(p[5]=g=>B(E)?E.value=g:null),"show-delete":o(N),"onUpdate:showDelete":p[6]||(p[6]=g=>B(N)?N.value=g:null),"context-target":o(s),onCreateFile:ee,onCreateFolder:X,onRename:S,onDelete:C},null,8,["show-new-file","show-new-folder","show-rename","show-delete","context-target"])])}}}),pt=Object.assign(mt,{__name:"FilesFileTree"}),ft={base:"hidden lg:flex",variants:{side:{left:"",right:""}}},vt={__name:"UDashboardSidebarCollapse",props:{color:{type:null,required:!1,default:"neutral"},variant:{type:null,required:!1,default:"ghost"},side:{type:String,required:!1,default:"left"},label:{type:String,required:!1},activeColor:{type:null,required:!1},activeVariant:{type:null,required:!1},size:{type:null,required:!1},square:{type:Boolean,required:!1},block:{type:Boolean,required:!1},loadingAuto:{type:Boolean,required:!1},onClick:{type:[Function,Array],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},as:{type:null,required:!1},type:{type:null,required:!1},disabled:{type:Boolean,required:!1},exactActiveClass:{type:String,required:!1},viewTransition:{type:Boolean,required:!1}},setup(d){const v=d,c=he(_e(v,"icon","side","class")),{t:h}=we(),u=be(),{sidebarCollapsed:f,collapseSidebar:w}=je({sidebarCollapsed:x(!1),collapseSidebar:()=>{}}),y=M(()=>ue({extend:ue(ft),...u.ui?.dashboardSidebarCollapse||{}}));return(m,U)=>(F(),O(ae,ge({...o(c),icon:v.icon||(o(f)?o(u).ui.icons.panelOpen:o(u).ui.icons.panelClose),"aria-label":o(f)?o(h)("dashboardSidebarCollapse.expand"):o(h)("dashboardSidebarCollapse.collapse"),...m.$attrs},{class:y.value({class:v.class,side:v.side}),onClick:U[0]||(U[0]=D=>o(w)?.(!o(f)))}),null,16,["class"]))}},yt={class:"border-b border-default px-4 py-3 bg-elevated/50"},ht={class:"flex flex-wrap items-start gap-3"},_t={class:"flex items-start gap-2 py-0.5"},wt={class:"min-w-0"},bt={class:"font-medium"},gt={class:"text-xs text-dimmed truncate"},xt=G({__name:"DocumentMetadata",props:{metadata:{},projects:{}},emits:["update:metadata"],setup(d,{emit:v}){const c=d,h=v,u=[{label:"Hidden",value:"hidden",icon:"i-lucide-lock",description:"Hidden behind authentication and never viewable by the public"},{label:"Private",value:"private",icon:"i-lucide-eye-off",description:"Viewable by anyone with the link, but will not be indexed by search engines"},{label:"Public",value:"public",icon:"i-lucide-eye",description:"Viewable to the public and indexed by search engines"}],f=M(()=>c.metadata.shared?c.metadata.shareType||"private":"hidden"),w=M(()=>u.find(b=>b.value===f.value)),y=M({get:()=>c.metadata.tags||[],set:b=>h("update:metadata",{tags:b})});function m(b){h("update:metadata",{projectId:b||void 0})}function U(b){b==="hidden"?h("update:metadata",{shared:!1,shareType:void 0}):h("update:metadata",{shared:!0,shareType:b})}const D=M(()=>[{label:"None",value:void 0},...c.projects.map(b=>({label:b.name,value:b.id}))]);return(b,q)=>{const _=Ie,e=Ne,T=J,a=ze;return F(),z("div",yt,[n("div",ht,[l(e,{label:"Project",class:"w-40"},{default:i(()=>[l(_,{"model-value":d.metadata.projectId,items:o(D),"value-key":"value",placeholder:"None",class:"w-full","search-input":!1,"onUpdate:modelValue":m},null,8,["model-value","items"])]),_:1}),l(e,{label:"Visibility",class:"w-44"},{default:i(()=>[l(_,{"model-value":o(f),items:u,"value-key":"value",class:"w-full","search-input":!1,"onUpdate:modelValue":U},{leading:i(()=>[o(w)?(F(),O(T,{key:0,name:o(w).icon,class:"size-4 text-dimmed"},null,8,["name"])):H("",!0)]),item:i(({item:t})=>[n("div",_t,[l(T,{name:t.icon,class:"size-4 mt-0.5 shrink-0"},null,8,["name"]),n("div",wt,[n("div",bt,Q(t.label),1),n("div",gt,Q(t.description),1)])])]),_:1},8,["model-value"])]),_:1}),l(e,{label:"Tags",class:"flex-1 min-w-48"},{default:i(()=>[l(a,{modelValue:o(y),"onUpdate:modelValue":q[0]||(q[0]=t=>B(y)?y.value=t:null),placeholder:"Add tags...",class:"w-full"},null,8,["modelValue"])]),_:1})])])}}}),kt=Object.assign(xt,{__name:"EditorDocumentMetadata"}),$t=Ee(Re),Ct={class:"h-full flex flex-col"},Ft={class:"border-b border-default py-2 flex items-center justify-between"},Dt={class:"flex items-center gap-2 text-sm text-dimmed min-w-0"},Ut={class:"truncate"},Tt={key:0,class:"w-40"},St={class:"flex items-center gap-3"},jt={key:0,class:"flex items-center gap-1 text-sm text-dimmed"},Mt={class:"space-y-4"},qt={class:"flex items-center gap-3"},Vt={class:"flex items-center gap-3"},It={class:"flex items-center gap-3"},Nt=G({__name:"DocumentEditor",props:{document:{},body:{},metadata:{},filePath:{},saveStatus:{},isDirty:{type:Boolean},metadataDirty:{type:Boolean}},emits:["update:body","update:metadata","save"],async setup(d,{emit:v}){let c,h;const u=d,f=v,{data:w}=([c,h]=xe(()=>Qe("/api/projects","$c96-63t_ij")),c=await c,h(),c),y=M(()=>w.value?.data||[]),m=x(!0),{editorMode:U}=fe(),D=M({get:()=>U.value==="editor",set:S=>U.value=S?"editor":"code"}),b=M(()=>u.document.fileType==="markdown"||Le(u.filePath)),q=M(()=>Ae(u.filePath)),_=M(()=>b.value),e=[[{kind:"heading",level:1,icon:"i-lucide-heading-1"},{kind:"heading",level:2,icon:"i-lucide-heading-2"},{kind:"heading",level:3,icon:"i-lucide-heading-3"}],[{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:"blockquote",icon:"i-lucide-quote"}],[{kind:"link",icon:"i-lucide-link"},{kind:"codeBlock",icon:"i-lucide-file-code"},{kind:"horizontalRule",icon:"i-lucide-minus"}],[{kind:"undo",icon:"i-lucide-undo"},{kind:"redo",icon:"i-lucide-redo"}]],T=M(()=>{switch(u.saveStatus){case"saving":return"i-lucide-loader-2";case"saved":return"i-lucide-check";case"error":return"i-lucide-alert-circle";default:return u.isDirty||u.metadataDirty?"i-lucide-circle-dot":null}}),a=M(()=>{switch(u.saveStatus){case"saving":return"Saving...";case"saved":return"Saved";case"error":return"Error saving";default:return u.isDirty||u.metadataDirty?"Unsaved changes":""}}),t=M(()=>u.body||void 0);function r(S){f("update:body",S)}function $(S){f("update:metadata",S)}function s(S){(S.metaKey||S.ctrlKey)&&S.key==="s"&&(S.preventDefault(),f("save"))}de(()=>window.addEventListener("keydown",s)),ke(()=>window.removeEventListener("keydown",s));const I=$e(),V=M(()=>u.document?.id?`${window.location.origin}/view/${u.document.id}`:""),E=x(!1),N=x(!1);function A(){u.metadata.shared?ee():N.value=!0}const{copy:W}=He();async function ee(){await W(V.value)?(E.value=!0,I.add({title:"Link copied!",icon:"i-lucide-check",color:"success"}),setTimeout(()=>{E.value=!1},2e3)):I.add({title:"Failed to copy link",icon:"i-lucide-x",color:"error"})}function X(S,C){f("update:metadata",{shared:S,shareType:C??void 0}),N.value=!1,S&&setTimeout(()=>ee(),100)}return(S,C)=>{const k=J,p=Ve,R=ae,K=kt,L=Pe,le=Be,oe=$t,ne=Ke,g=Oe,Y=pe;return F(),z("div",Ct,[n("div",Ft,[n("div",Dt,[l(k,{name:"i-lucide-file-text",class:"size-4 shrink-0"}),n("span",Ut,Q(d.filePath),1)]),o(_)?(F(),z("div",Tt,[l(p,{modelValue:o(D),"onUpdate:modelValue":C[0]||(C[0]=j=>B(D)?D.value=j:null),"unchecked-icon":"i-lucide-code","checked-icon":"i-lucide-pencil",label:o(D)?"Editor Mode":"Code Mode",ui:{base:"data-[state=unchecked]:bg-info",icon:"group-data-[state=unchecked]:text-info"}},null,8,["modelValue","label"])])):H("",!0),n("div",St,[l(R,{icon:o(E)?"i-lucide-check":"i-lucide-share",size:"xs",variant:"ghost",class:"rounded-full",onClick:A},null,8,["icon"]),l(R,{icon:o(m)?"i-lucide-panel-top-close":"i-lucide-panel-top-open",size:"xs",variant:"ghost",class:"rounded-full",onClick:C[1]||(C[1]=j=>m.value=!o(m))},null,8,["icon"]),o(T)?(F(),z("div",jt,[l(k,{name:o(T),class:Z(["size-4",d.saveStatus==="saving"&&"animate-spin",d.saveStatus==="error"&&"text-error"])},null,8,["name","class"]),n("span",null,Q(o(a)),1)])):H("",!0)])]),o(m)?(F(),O(K,{key:0,metadata:d.metadata,projects:o(y),"onUpdate:metadata":$},null,8,["metadata","projects"])):H("",!0),o(b)&&o(D)?(F(),O(le,{key:1,"model-value":o(t),"content-type":"markdown",placeholder:"Start writing...",class:"markdown-editor w-full min-h-64 flex-1","onUpdate:modelValue":r},{default:i(({editor:j})=>[l(L,{editor:j,items:e,class:"border-b border-default"},null,8,["editor"])]),_:1},8,["model-value"])):(F(),O(g,{key:2},{fallback:i(()=>[l(ne,{class:"flex-1"})]),default:i(()=>[l(oe,{"model-value":d.body,language:o(q),class:"flex-1","onUpdate:modelValue":r},null,8,["model-value","language"])]),_:1})),l(Y,{open:o(N),"onUpdate:open":C[5]||(C[5]=j=>B(N)?N.value=j:null),title:"Share Document",description:"Choose how you want to share this document"},{body:i(()=>[n("div",Mt,[n("div",{class:Z(["p-4 border border-default rounded-lg cursor-pointer hover:bg-elevated transition-colors",{"border-primary bg-elevated":!d.metadata.shared}]),onClick:C[2]||(C[2]=j=>X(!1,null))},[n("div",qt,[l(k,{name:"i-lucide-eye-off",class:"size-5 text-dimmed"}),C[6]||(C[6]=n("div",null,[n("div",{class:"font-medium"}," Hidden "),n("div",{class:"text-sm text-dimmed"}," Only you can view this document. Not accessible via link. ")],-1))])],2),n("div",{class:Z(["p-4 border border-default rounded-lg cursor-pointer hover:bg-elevated transition-colors",{"border-primary bg-elevated":d.metadata.shared&&d.metadata.shareType==="private"}]),onClick:C[3]||(C[3]=j=>X(!0,"private"))},[n("div",Vt,[l(k,{name:"i-lucide-link",class:"size-5 text-dimmed"}),C[7]||(C[7]=n("div",null,[n("div",{class:"font-medium"}," Private (Link Only) "),n("div",{class:"text-sm text-dimmed"}," Anyone with the link can view. Not indexed by search engines. ")],-1))])],2),n("div",{class:Z(["p-4 border border-default rounded-lg cursor-pointer hover:bg-elevated transition-colors",{"border-primary bg-elevated":d.metadata.shared&&d.metadata.shareType==="public"}]),onClick:C[4]||(C[4]=j=>X(!0,"public"))},[n("div",It,[l(k,{name:"i-lucide-globe",class:"size-5 text-dimmed"}),C[8]||(C[8]=n("div",null,[n("div",{class:"font-medium"}," Public "),n("div",{class:"text-sm text-dimmed"}," Visible to everyone. Indexed by search engines. ")],-1))])],2)])]),_:1},8,["open"])])}}}),zt=Object.assign(Nt,{__name:"EditorDocumentEditor"});function Pt(){const d=x(null),v=x(null),c=x(""),h=x(null),u=x(!1),f=x("idle"),w=x(!1),y=x(!1),m=ce(async()=>{!d.value||!w.value||await _({body:c.value})},2e3),U=ce(async()=>{!d.value||!y.value||await _()},500);async function D(a){u.value=!0,h.value=a,w.value=!1,y.value=!1,f.value="idle";try{const t=await $fetch("/api/documents/by-path",{method:"POST",body:{path:a}});d.value=t.data.document,v.value=t.data.metadata,c.value=t.data.body||""}catch(t){console.error("Failed to load document:",t),d.value=null,v.value=null,c.value=""}finally{u.value=!1}}function b(a){c.value!==a&&(c.value=a,w.value=!0,m())}function q(a){v.value&&(v.value={...v.value,...a},y.value=!0,U())}async function _(a={}){if(d.value){f.value="saving";try{const t={...a};y.value&&v.value&&(t.title=v.value.title,t.tags=v.value.tags,t.projectId=v.value.projectId,t.shared=v.value.shared,t.shareType=v.value.shareType),w.value&&a.body===void 0&&(t.body=c.value);const r=await $fetch(`/api/documents/${d.value.id}`,{method:"PUT",body:t});d.value=r.data.document,v.value=r.data.metadata,c.value=r.data.body||"",w.value=!1,y.value=!1,f.value="saved",setTimeout(()=>{f.value==="saved"&&(f.value="idle")},2e3)}catch(t){console.error("Failed to save document:",t),f.value="error"}}}async function e(){!w.value&&!y.value||await _({body:c.value})}function T(){d.value=null,v.value=null,c.value="",h.value=null,w.value=!1,y.value=!1,f.value="idle"}return{document:d,metadata:v,body:c,filePath:h,loading:u,saveStatus:f,isDirty:w,metadataDirty:y,loadDocument:D,updateBody:b,updateMetadata:q,saveDocument:_,saveNow:e,closeDocument:T}}const Bt={class:"flex flex-1 min-w-0"},Et={key:0,class:"flex-1 flex items-center justify-center h-full"},Ot={key:1,class:"flex-1 flex items-center justify-center h-full text-dimmed"},Rt={class:"text-center"},za=G({__name:"docs",setup(d){const v=Ce(),{document:c,metadata:h,body:u,filePath:f,loading:w,saveStatus:y,isDirty:m,metadataDirty:U,loadDocument:D,updateBody:b,updateMetadata:q,saveNow:_}=Pt(),{lastDocumentPath:e}=fe();async function T(a){await D(a),e.value=a}return de(async()=>{const a=v.query.path;a?(await D(a),e.value=a):e.value&&await D(e.value)}),(a,t)=>{const r=pt,$=Te,s=vt,I=Me,V=ae,E=qe,N=Se,A=J,W=zt;return F(),z("div",Bt,[l($,{id:"docs-filetree",collapsible:"",resizable:"","min-size":12,"default-size":16,"max-size":24,class:"hidden lg:flex"},{body:i(()=>[l(r,{class:"h-full",onSelect:T})]),_:1}),l($,{id:"docs-editor",grow:"",ui:{body:"sm:py-0"}},{header:i(()=>[l(N,null,{title:i(()=>[l(s),t[0]||(t[0]=P(" Editor ",-1))]),right:i(()=>[l(I),l(E,null,{content:i(()=>[l(r,{class:"h-full",onSelect:T})]),default:i(()=>[l(V,{icon:"i-lucide-folder-tree",class:"block lg:hidden"})]),_:1})]),_:1})]),body:i(()=>[o(w)?(F(),z("div",Et,[l(A,{name:"i-lucide-loader-2",class:"size-6 animate-spin text-dimmed"})])):o(f)?o(h)&&o(c)?(F(),O(W,{key:o(f),document:o(c),body:o(u),metadata:o(h),"file-path":o(f),"save-status":o(y),"is-dirty":o(m),"metadata-dirty":o(U),class:"h-full","onUpdate:body":o(b),"onUpdate:metadata":o(q),onSave:o(_)},null,8,["document","body","metadata","file-path","save-status","is-dirty","metadata-dirty","onUpdate:body","onUpdate:metadata","onSave"])):H("",!0):(F(),z("div",Ot,[n("div",Rt,[l(A,{name:"i-lucide-file-text",class:"size-32 mx-auto mb-4 opacity-50"}),t[1]||(t[1]=n("p",null,"Select a file to edit",-1))])]))]),_:1})])}}});export{za as default};
|
|
1
|
+
import{_ as me}from"./CHd8mdNy.js";import{_ as ve}from"./BlplwzgB.js";import{d as G,aU as re,aV as te,e as x,f as se,M as z,o as F,al as ye,Z as l,w as i,bm as ie,ak as B,a as o,ac as n,a0 as ae,ab as P,_ as J,aa as H,af as Q,h as M,C as de,c as O,$ as Z,X as he,Y as _e,U as we,W as be,ap as ue,m as ge,bD as xe,a5 as ke,aj as $e,a$ as ce,ah as Ce}from"./B06CcGVK.js";import{_ as Fe,a as De}from"./C7hn68Tp.js";import{_ as Ue}from"./CkfP4uja.js";import{_ as pe}from"./aUYaYlYl.js";import{_ as Te,a as Se}from"./CoUQ3qpL.js";import{u as je}from"./Dc8vLBQN.js";import{_ as Me}from"./DZpgj5sA.js";import{_ as qe}from"./5FVMuLeh.js";import{_ as Ve}from"./C4ui9LWq.js";import{_ as Ie}from"./DkUMlRf8.js";import{_ as Ne}from"./BQeDYnyj.js";import{_ as ze}from"./jF9FNyOl.js";import{_ as Pe,a as Be}from"./DhIZvLeI.js";import{a as Ee,_ as Oe}from"./DKHJBr2m.js";import{_ as Re}from"./oWO88tvt.js";import{i as Le,d as Ae,_ as Ke,u as He}from"./BfiU8B4M.js";import{u as Qe}from"./jenjyHml.js";import{u as fe}from"./CV92g0qz.js";import"./hkCaWCzP.js";import"./CHn6tbtE.js";import"./C0FuVjdX.js";import"./DZQxxfue.js";import"./B0v0agy0.js";import"./olSL1K5t.js";import"./DY78sr_b.js";import"./CKfAI3Hb.js";import"./CXRkSVkD.js";import"./C7RIYfkH.js";import"./CvaD7s2l.js";import"./5qkiDtwf.js";import"./BuURpKT4.js";import"./BIoHE1oQ.js";import"./C6Y-ieo6.js";import"./CTJDAjdO.js";import"./BGytjslk.js";import"./Cwel2ykQ.js";import"./Tirj2rC0.js";import"./CiQJYbKL.js";import"./DH2yWNbZ.js";import"./CopZwjN8.js";import"./0L-9iIbm.js";import"./DnfG5RzJ.js";import"./Ds97nj0P.js";import"./DEl5RR7R.js";import"./Vcq4gwWv.js";import"./DIDjR8Ry.js";const We={class:"flex items-center gap-2"},Xe={class:"flex justify-end gap-2"},Ye={class:"flex items-center gap-2"},Ze={class:"flex justify-end gap-2"},Ge={class:"flex items-center gap-2"},Je={class:"flex justify-end gap-2"},et={class:"flex items-center gap-2 text-error"},tt={key:0,class:"text-sm text-dimmed mt-1"},at={class:"flex justify-end gap-2"},lt=G({__name:"FileTreeModals",props:re({contextTarget:{}},{showNewFile:{type:Boolean,required:!0},showNewFileModifiers:{},showNewFolder:{type:Boolean,required:!0},showNewFolderModifiers:{},showRename:{type:Boolean,required:!0},showRenameModifiers:{},showDelete:{type:Boolean,required:!0},showDeleteModifiers:{}}),emits:re(["createFile","createFolder","rename","delete"],["update:showNewFile","update:showNewFolder","update:showRename","update:showDelete"]),setup(d,{emit:v}){const c=te(d,"showNewFile"),h=te(d,"showNewFolder"),u=te(d,"showRename"),f=te(d,"showDelete"),w=d,y=v,m=x("");se(u,_=>{_&&w.contextTarget&&(m.value=w.contextTarget.label)}),se(c,_=>{_&&(m.value="")}),se(h,_=>{_&&(m.value="")});function U(){m.value.trim()&&(y("createFile",m.value.trim()),c.value=!1,m.value="")}function D(){m.value.trim()&&(y("createFolder",m.value.trim()),h.value=!1,m.value="")}function b(){m.value.trim()&&(y("rename",m.value.trim()),u.value=!1,m.value="")}function q(){y("delete"),f.value=!1}return(_,e)=>{const T=J,a=me,t=ae,r=Ue,$=pe;return F(),z(ye,null,[l($,{open:c.value,"onUpdate:open":e[2]||(e[2]=s=>c.value=s)},{content:i(()=>[l(r,null,{header:i(()=>[n("div",We,[l(T,{name:"i-lucide-file-plus",class:"size-5"}),e[11]||(e[11]=n("span",{class:"font-semibold"},"New File",-1))])]),footer:i(()=>[n("div",Xe,[l(t,{color:"neutral",variant:"ghost",onClick:e[1]||(e[1]=s=>c.value=!1)},{default:i(()=>[...e[12]||(e[12]=[P(" Cancel ",-1)])]),_:1}),l(t,{onClick:U},{default:i(()=>[...e[13]||(e[13]=[P(" Create ",-1)])]),_:1})])]),default:i(()=>[l(a,{modelValue:o(m),"onUpdate:modelValue":e[0]||(e[0]=s=>B(m)?m.value=s:null),placeholder:"filename.md",autofocus:"",onKeyup:ie(U,["enter"])},null,8,["modelValue"])]),_:1})]),_:1},8,["open"]),l($,{open:h.value,"onUpdate:open":e[5]||(e[5]=s=>h.value=s)},{content:i(()=>[l(r,null,{header:i(()=>[n("div",Ye,[l(T,{name:"i-lucide-folder-plus",class:"size-5"}),e[14]||(e[14]=n("span",{class:"font-semibold"},"New Folder",-1))])]),footer:i(()=>[n("div",Ze,[l(t,{color:"neutral",variant:"ghost",onClick:e[4]||(e[4]=s=>h.value=!1)},{default:i(()=>[...e[15]||(e[15]=[P(" Cancel ",-1)])]),_:1}),l(t,{onClick:D},{default:i(()=>[...e[16]||(e[16]=[P(" Create ",-1)])]),_:1})])]),default:i(()=>[l(a,{modelValue:o(m),"onUpdate:modelValue":e[3]||(e[3]=s=>B(m)?m.value=s:null),placeholder:"folder-name",autofocus:"",onKeyup:ie(D,["enter"])},null,8,["modelValue"])]),_:1})]),_:1},8,["open"]),l($,{open:u.value,"onUpdate:open":e[8]||(e[8]=s=>u.value=s)},{content:i(()=>[l(r,null,{header:i(()=>[n("div",Ge,[l(T,{name:"i-lucide-pencil",class:"size-5"}),e[17]||(e[17]=n("span",{class:"font-semibold"},"Rename",-1))])]),footer:i(()=>[n("div",Je,[l(t,{color:"neutral",variant:"ghost",onClick:e[7]||(e[7]=s=>u.value=!1)},{default:i(()=>[...e[18]||(e[18]=[P(" Cancel ",-1)])]),_:1}),l(t,{onClick:b},{default:i(()=>[...e[19]||(e[19]=[P(" Rename ",-1)])]),_:1})])]),default:i(()=>[l(a,{modelValue:o(m),"onUpdate:modelValue":e[6]||(e[6]=s=>B(m)?m.value=s:null),placeholder:"new-name",autofocus:"",onKeyup:ie(b,["enter"])},null,8,["modelValue"])]),_:1})]),_:1},8,["open"]),l($,{open:f.value,"onUpdate:open":e[10]||(e[10]=s=>f.value=s)},{content:i(()=>[l(r,null,{header:i(()=>[n("div",et,[l(T,{name:"i-lucide-trash-2",class:"size-5"}),e[20]||(e[20]=n("span",{class:"font-semibold"},"Delete",-1))])]),footer:i(()=>[n("div",at,[l(t,{color:"neutral",variant:"ghost",onClick:e[9]||(e[9]=s=>f.value=!1)},{default:i(()=>[...e[23]||(e[23]=[P(" Cancel ",-1)])]),_:1}),l(t,{color:"error",onClick:q},{default:i(()=>[...e[24]||(e[24]=[P(" Delete ",-1)])]),_:1})])]),default:i(()=>[n("p",null,[e[21]||(e[21]=P(" Are you sure you want to delete ",-1)),n("strong",null,Q(d.contextTarget?.label),1),e[22]||(e[22]=P("? ",-1))]),d.contextTarget?.type==="directory"?(F(),z("p",tt," This will delete all files and folders inside. ")):H("",!0)]),_:1})]),_:1},8,["open"])],64)}}}),ot=Object.assign(lt,{__name:"FilesFileTreeModals"});function nt(){const d=x([]),v=x(null),c=x(!1),h=x(null),u=x("");function f(a,t=!1){const r=a.type==="directory"?void 0:w(a.name);return{id:a.path,label:a.name,icon:r,path:a.path,type:a.type,defaultExpanded:t,children:a.children?.map($=>f($))}}function w(a){switch(a.split(".").pop()?.toLowerCase()){case"md":return"i-lucide-file-text";case"ts":case"tsx":return"i-lucide-file-code";case"js":case"jsx":return"i-lucide-file-code";case"vue":return"i-lucide-file-code";case"json":return"i-lucide-file-json";case"css":case"scss":return"i-lucide-file-code";case"png":case"jpg":case"jpeg":case"gif":case"svg":return"i-lucide-file-image";default:return"i-lucide-file"}}async function y(a="/"){c.value=!0,h.value=null;try{const t=await $fetch("/api/fs/list",{query:{path:a,recursive:"true"}});d.value=t.data.map(r=>f(r,!0))}catch(t){h.value="Failed to load file tree",console.error("Failed to load file tree:",t)}finally{c.value=!1}}async function m(a){try{return(await $fetch("/api/fs/read",{method:"POST",body:{path:a}})).data}catch(t){throw console.error("Failed to read file:",t),t}}async function U(a,t){try{return(await $fetch("/api/fs/write",{method:"POST",body:{path:a,content:t}})).data}catch(r){throw console.error("Failed to write file:",r),r}}async function D(a,t){const r=a==="/"?`/${t}`:`${a}/${t}`;return await U(r,""),await y(),r}async function b(a,t){const r=a==="/"?`/${t}`:`${a}/${t}`;try{return await $fetch("/api/fs/mkdir",{method:"POST",body:{path:r}}),await y(),r}catch($){throw console.error("Failed to create folder:",$),$}}async function q(a,t){const r=a.split("/");r.pop();const $=[...r,t].join("/");try{return await $fetch("/api/fs/rename",{method:"POST",body:{oldPath:a,newPath:$}}),await y(),$}catch(s){throw console.error("Failed to rename:",s),s}}async function _(a){try{await $fetch("/api/fs/delete",{method:"POST",body:{path:a}}),v.value===a&&(v.value=null),await y()}catch(t){throw console.error("Failed to delete:",t),t}}async function e(a,t){try{const r=await $fetch("/api/fs/move",{method:"POST",body:{sourcePath:a,destinationPath:t}});return await y(),r.data.newPath}catch(r){throw console.error("Failed to move:",r),r}}const T=M(()=>{if(!u.value)return d.value;const a=u.value.toLowerCase();function t(r){return r.reduce(($,s)=>{const I=s.label.toLowerCase().includes(a),V=s.children?t(s.children):[];return(I||V.length>0)&&$.push({...s,children:V.length>0?V:s.children,defaultExpanded:V.length>0||I}),$},[])}return t(d.value)});return{items:d,filteredItems:T,selectedFile:v,loading:c,error:h,searchQuery:u,loadTree:y,readFile:m,writeFile:U,createFile:D,createFolder:b,renameItem:q,deleteItem:_,moveItem:e}}const st={class:"h-full flex flex-col"},it={class:"-mt-1 pb-2"},dt={key:0,class:"flex items-center justify-center py-8"},rt={key:1,class:"h-full min-h-32 flex flex-col items-center justify-center text-dimmed text-sm"},ut=["onContextmenu","onDragstart","onDragover","onDrop"],ct={class:"truncate"},mt=G({__name:"FileTree",emits:["select"],setup(d,{emit:v}){const c=v,{filteredItems:h,selectedFile:u,loading:f,searchQuery:w,loadTree:y,createFile:m,createFolder:U,renameItem:D,deleteItem:b,moveItem:q}=nt(),_=x(null),e=x(null);function T(k,p){_.value=p,k.dataTransfer&&(k.dataTransfer.effectAllowed="move",k.dataTransfer.setData("text/plain",p.path))}function a(k,p){_.value&&p.type==="directory"&&_.value.path!==p.path&&(p.path.startsWith(_.value.path+"/")||(k.preventDefault(),e.value=p))}function t(){e.value=null}function r(){_.value=null,e.value=null}async function $(k,p){if(k.preventDefault(),!(!_.value||p.type!=="directory")){try{await q(_.value.path,p.path)}catch{}_.value=null,e.value=null}}const s=x(null),I=x(!1),V=x(!1),E=x(!1),N=x(!1),A=M(()=>[[{label:"New File",icon:"i-lucide-file-plus",onSelect:()=>{I.value=!0}},{label:"New Folder",icon:"i-lucide-folder-plus",onSelect:()=>{V.value=!0}}],[{label:"Rename",icon:"i-lucide-pencil",onSelect:()=>{s.value&&(E.value=!0)}},{label:"Delete",icon:"i-lucide-trash-2",color:"error",onSelect:()=>{N.value=!0}}]]);function W(k){k.type==="file"&&(u.value=k.path,c("select",k.path))}async function ee(k){const p=s.value?.type==="directory"?s.value.path:"/";let R=k;R.includes(".")||(R+=".md");try{const K=await m(p,R);u.value=K,c("select",K)}catch{}}async function X(k){const p=s.value?.type==="directory"?s.value.path:"/";try{await U(p,k)}catch{}}async function S(k){if(s.value)try{await D(s.value.path,k)}catch{}}async function C(){if(s.value)try{await b(s.value.path)}catch{}}return de(()=>{y()}),(k,p)=>{const R=me,K=ve,L=J,le=Fe,oe=De,ne=ot;return F(),z("div",st,[n("div",it,[l(R,{modelValue:o(w),"onUpdate:modelValue":p[0]||(p[0]=g=>B(w)?w.value=g:null),placeholder:"Search files...",icon:"i-lucide-search",size:"sm",class:"w-full"},null,8,["modelValue"])]),l(K,{class:"mt-2"}),l(oe,{items:o(A),class:"flex-1 h-full overflow-auto p-2",onContextmenu:p[2]||(p[2]=g=>s.value=null)},{default:i(()=>[o(f)?(F(),z("div",dt,[l(L,{name:"i-lucide-loader-2",class:"size-6 animate-spin text-dimmed"})])):o(h).length===0?(F(),z("div",rt,[l(L,{name:"i-lucide-folder-open",class:"size-8 mx-auto mb-2 opacity-50"}),p[7]||(p[7]=n("p",null,"No files found",-1)),p[8]||(p[8]=n("p",{class:"text-xs mt-1"}," Right-click to create a file ",-1))])):(F(),O(le,{key:2,items:o(h),"get-key":g=>g.id,color:"primary","expanded-icon":"i-lucide-folder-open","collapsed-icon":"i-lucide-folder",onSelect:p[1]||(p[1]=(g,Y)=>W(Y))},{item:i(({item:g,expanded:Y})=>[n("div",{class:Z(["flex items-center gap-2 w-full",{"bg-primary/10 rounded":o(e)?.path===g.path}]),draggable:"true",onContextmenu:j=>s.value=g,onDragstart:j=>T(j,g),onDragover:j=>a(j,g),onDragleave:t,onDragend:r,onDrop:j=>$(j,g)},[g.children?.length?(F(),O(L,{key:0,name:Y?"i-lucide-folder-open":"i-lucide-folder",class:"size-4 shrink-0 text-dimmed"},null,8,["name"])):g.icon?(F(),O(L,{key:1,name:g.icon,class:"size-4 shrink-0 text-dimmed"},null,8,["name"])):(F(),O(L,{key:2,name:"i-lucide-file",class:"size-4 shrink-0 text-dimmed"})),n("span",ct,Q(g.label),1)],42,ut)]),_:1},8,["items","get-key"]))]),_:1},8,["items"]),l(ne,{"show-new-file":o(I),"onUpdate:showNewFile":p[3]||(p[3]=g=>B(I)?I.value=g:null),"show-new-folder":o(V),"onUpdate:showNewFolder":p[4]||(p[4]=g=>B(V)?V.value=g:null),"show-rename":o(E),"onUpdate:showRename":p[5]||(p[5]=g=>B(E)?E.value=g:null),"show-delete":o(N),"onUpdate:showDelete":p[6]||(p[6]=g=>B(N)?N.value=g:null),"context-target":o(s),onCreateFile:ee,onCreateFolder:X,onRename:S,onDelete:C},null,8,["show-new-file","show-new-folder","show-rename","show-delete","context-target"])])}}}),pt=Object.assign(mt,{__name:"FilesFileTree"}),ft={base:"hidden lg:flex",variants:{side:{left:"",right:""}}},vt={__name:"UDashboardSidebarCollapse",props:{color:{type:null,required:!1,default:"neutral"},variant:{type:null,required:!1,default:"ghost"},side:{type:String,required:!1,default:"left"},label:{type:String,required:!1},activeColor:{type:null,required:!1},activeVariant:{type:null,required:!1},size:{type:null,required:!1},square:{type:Boolean,required:!1},block:{type:Boolean,required:!1},loadingAuto:{type:Boolean,required:!1},onClick:{type:[Function,Array],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},as:{type:null,required:!1},type:{type:null,required:!1},disabled:{type:Boolean,required:!1},exactActiveClass:{type:String,required:!1},viewTransition:{type:Boolean,required:!1}},setup(d){const v=d,c=he(_e(v,"icon","side","class")),{t:h}=we(),u=be(),{sidebarCollapsed:f,collapseSidebar:w}=je({sidebarCollapsed:x(!1),collapseSidebar:()=>{}}),y=M(()=>ue({extend:ue(ft),...u.ui?.dashboardSidebarCollapse||{}}));return(m,U)=>(F(),O(ae,ge({...o(c),icon:v.icon||(o(f)?o(u).ui.icons.panelOpen:o(u).ui.icons.panelClose),"aria-label":o(f)?o(h)("dashboardSidebarCollapse.expand"):o(h)("dashboardSidebarCollapse.collapse"),...m.$attrs},{class:y.value({class:v.class,side:v.side}),onClick:U[0]||(U[0]=D=>o(w)?.(!o(f)))}),null,16,["class"]))}},yt={class:"border-b border-default px-4 py-3 bg-elevated/50"},ht={class:"flex flex-wrap items-start gap-3"},_t={class:"flex items-start gap-2 py-0.5"},wt={class:"min-w-0"},bt={class:"font-medium"},gt={class:"text-xs text-dimmed truncate"},xt=G({__name:"DocumentMetadata",props:{metadata:{},projects:{}},emits:["update:metadata"],setup(d,{emit:v}){const c=d,h=v,u=[{label:"Hidden",value:"hidden",icon:"i-lucide-lock",description:"Hidden behind authentication and never viewable by the public"},{label:"Private",value:"private",icon:"i-lucide-eye-off",description:"Viewable by anyone with the link, but will not be indexed by search engines"},{label:"Public",value:"public",icon:"i-lucide-eye",description:"Viewable to the public and indexed by search engines"}],f=M(()=>c.metadata.shared?c.metadata.shareType||"private":"hidden"),w=M(()=>u.find(b=>b.value===f.value)),y=M({get:()=>c.metadata.tags||[],set:b=>h("update:metadata",{tags:b})});function m(b){h("update:metadata",{projectId:b||void 0})}function U(b){b==="hidden"?h("update:metadata",{shared:!1,shareType:void 0}):h("update:metadata",{shared:!0,shareType:b})}const D=M(()=>[{label:"None",value:void 0},...c.projects.map(b=>({label:b.name,value:b.id}))]);return(b,q)=>{const _=Ie,e=Ne,T=J,a=ze;return F(),z("div",yt,[n("div",ht,[l(e,{label:"Project",class:"w-40"},{default:i(()=>[l(_,{"model-value":d.metadata.projectId,items:o(D),"value-key":"value",placeholder:"None",class:"w-full","search-input":!1,"onUpdate:modelValue":m},null,8,["model-value","items"])]),_:1}),l(e,{label:"Visibility",class:"w-44"},{default:i(()=>[l(_,{"model-value":o(f),items:u,"value-key":"value",class:"w-full","search-input":!1,"onUpdate:modelValue":U},{leading:i(()=>[o(w)?(F(),O(T,{key:0,name:o(w).icon,class:"size-4 text-dimmed"},null,8,["name"])):H("",!0)]),item:i(({item:t})=>[n("div",_t,[l(T,{name:t.icon,class:"size-4 mt-0.5 shrink-0"},null,8,["name"]),n("div",wt,[n("div",bt,Q(t.label),1),n("div",gt,Q(t.description),1)])])]),_:1},8,["model-value"])]),_:1}),l(e,{label:"Tags",class:"flex-1 min-w-48"},{default:i(()=>[l(a,{modelValue:o(y),"onUpdate:modelValue":q[0]||(q[0]=t=>B(y)?y.value=t:null),placeholder:"Add tags...",class:"w-full"},null,8,["modelValue"])]),_:1})])])}}}),kt=Object.assign(xt,{__name:"EditorDocumentMetadata"}),$t=Ee(Re),Ct={class:"h-full flex flex-col"},Ft={class:"border-b border-default py-2 flex items-center justify-between"},Dt={class:"flex items-center gap-2 text-sm text-dimmed min-w-0"},Ut={class:"truncate"},Tt={key:0,class:"w-40"},St={class:"flex items-center gap-3"},jt={key:0,class:"flex items-center gap-1 text-sm text-dimmed"},Mt={class:"space-y-4"},qt={class:"flex items-center gap-3"},Vt={class:"flex items-center gap-3"},It={class:"flex items-center gap-3"},Nt=G({__name:"DocumentEditor",props:{document:{},body:{},metadata:{},filePath:{},saveStatus:{},isDirty:{type:Boolean},metadataDirty:{type:Boolean}},emits:["update:body","update:metadata","save"],async setup(d,{emit:v}){let c,h;const u=d,f=v,{data:w}=([c,h]=xe(()=>Qe("/api/projects","$c96-63t_ij")),c=await c,h(),c),y=M(()=>w.value?.data||[]),m=x(!0),{editorMode:U}=fe(),D=M({get:()=>U.value==="editor",set:S=>U.value=S?"editor":"code"}),b=M(()=>u.document.fileType==="markdown"||Le(u.filePath)),q=M(()=>Ae(u.filePath)),_=M(()=>b.value),e=[[{kind:"heading",level:1,icon:"i-lucide-heading-1"},{kind:"heading",level:2,icon:"i-lucide-heading-2"},{kind:"heading",level:3,icon:"i-lucide-heading-3"}],[{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:"blockquote",icon:"i-lucide-quote"}],[{kind:"link",icon:"i-lucide-link"},{kind:"codeBlock",icon:"i-lucide-file-code"},{kind:"horizontalRule",icon:"i-lucide-minus"}],[{kind:"undo",icon:"i-lucide-undo"},{kind:"redo",icon:"i-lucide-redo"}]],T=M(()=>{switch(u.saveStatus){case"saving":return"i-lucide-loader-2";case"saved":return"i-lucide-check";case"error":return"i-lucide-alert-circle";default:return u.isDirty||u.metadataDirty?"i-lucide-circle-dot":null}}),a=M(()=>{switch(u.saveStatus){case"saving":return"Saving...";case"saved":return"Saved";case"error":return"Error saving";default:return u.isDirty||u.metadataDirty?"Unsaved changes":""}}),t=M(()=>u.body||void 0);function r(S){f("update:body",S)}function $(S){f("update:metadata",S)}function s(S){(S.metaKey||S.ctrlKey)&&S.key==="s"&&(S.preventDefault(),f("save"))}de(()=>window.addEventListener("keydown",s)),ke(()=>window.removeEventListener("keydown",s));const I=$e(),V=M(()=>u.document?.id?`${window.location.origin}/view/${u.document.id}`:""),E=x(!1),N=x(!1);function A(){u.metadata.shared?ee():N.value=!0}const{copy:W}=He();async function ee(){await W(V.value)?(E.value=!0,I.add({title:"Link copied!",icon:"i-lucide-check",color:"success"}),setTimeout(()=>{E.value=!1},2e3)):I.add({title:"Failed to copy link",icon:"i-lucide-x",color:"error"})}function X(S,C){f("update:metadata",{shared:S,shareType:C??void 0}),N.value=!1,S&&setTimeout(()=>ee(),100)}return(S,C)=>{const k=J,p=Ve,R=ae,K=kt,L=Pe,le=Be,oe=$t,ne=Ke,g=Oe,Y=pe;return F(),z("div",Ct,[n("div",Ft,[n("div",Dt,[l(k,{name:"i-lucide-file-text",class:"size-4 shrink-0"}),n("span",Ut,Q(d.filePath),1)]),o(_)?(F(),z("div",Tt,[l(p,{modelValue:o(D),"onUpdate:modelValue":C[0]||(C[0]=j=>B(D)?D.value=j:null),"unchecked-icon":"i-lucide-code","checked-icon":"i-lucide-pencil",label:o(D)?"Editor Mode":"Code Mode",ui:{base:"data-[state=unchecked]:bg-info",icon:"group-data-[state=unchecked]:text-info"}},null,8,["modelValue","label"])])):H("",!0),n("div",St,[l(R,{icon:o(E)?"i-lucide-check":"i-lucide-share",size:"xs",variant:"ghost",class:"rounded-full",onClick:A},null,8,["icon"]),l(R,{icon:o(m)?"i-lucide-panel-top-close":"i-lucide-panel-top-open",size:"xs",variant:"ghost",class:"rounded-full",onClick:C[1]||(C[1]=j=>m.value=!o(m))},null,8,["icon"]),o(T)?(F(),z("div",jt,[l(k,{name:o(T),class:Z(["size-4",d.saveStatus==="saving"&&"animate-spin",d.saveStatus==="error"&&"text-error"])},null,8,["name","class"]),n("span",null,Q(o(a)),1)])):H("",!0)])]),o(m)?(F(),O(K,{key:0,metadata:d.metadata,projects:o(y),"onUpdate:metadata":$},null,8,["metadata","projects"])):H("",!0),o(b)&&o(D)?(F(),O(le,{key:1,"model-value":o(t),"content-type":"markdown",placeholder:"Start writing...",class:"markdown-editor w-full min-h-64 flex-1","onUpdate:modelValue":r},{default:i(({editor:j})=>[l(L,{editor:j,items:e,class:"border-b border-default"},null,8,["editor"])]),_:1},8,["model-value"])):(F(),O(g,{key:2},{fallback:i(()=>[l(ne,{class:"flex-1"})]),default:i(()=>[l(oe,{"model-value":d.body,language:o(q),class:"flex-1","onUpdate:modelValue":r},null,8,["model-value","language"])]),_:1})),l(Y,{open:o(N),"onUpdate:open":C[5]||(C[5]=j=>B(N)?N.value=j:null),title:"Share Document",description:"Choose how you want to share this document"},{body:i(()=>[n("div",Mt,[n("div",{class:Z(["p-4 border border-default rounded-lg cursor-pointer hover:bg-elevated transition-colors",{"border-primary bg-elevated":!d.metadata.shared}]),onClick:C[2]||(C[2]=j=>X(!1,null))},[n("div",qt,[l(k,{name:"i-lucide-eye-off",class:"size-5 text-dimmed"}),C[6]||(C[6]=n("div",null,[n("div",{class:"font-medium"}," Hidden "),n("div",{class:"text-sm text-dimmed"}," Only you can view this document. Not accessible via link. ")],-1))])],2),n("div",{class:Z(["p-4 border border-default rounded-lg cursor-pointer hover:bg-elevated transition-colors",{"border-primary bg-elevated":d.metadata.shared&&d.metadata.shareType==="private"}]),onClick:C[3]||(C[3]=j=>X(!0,"private"))},[n("div",Vt,[l(k,{name:"i-lucide-link",class:"size-5 text-dimmed"}),C[7]||(C[7]=n("div",null,[n("div",{class:"font-medium"}," Private (Link Only) "),n("div",{class:"text-sm text-dimmed"}," Anyone with the link can view. Not indexed by search engines. ")],-1))])],2),n("div",{class:Z(["p-4 border border-default rounded-lg cursor-pointer hover:bg-elevated transition-colors",{"border-primary bg-elevated":d.metadata.shared&&d.metadata.shareType==="public"}]),onClick:C[4]||(C[4]=j=>X(!0,"public"))},[n("div",It,[l(k,{name:"i-lucide-globe",class:"size-5 text-dimmed"}),C[8]||(C[8]=n("div",null,[n("div",{class:"font-medium"}," Public "),n("div",{class:"text-sm text-dimmed"}," Visible to everyone. Indexed by search engines. ")],-1))])],2)])]),_:1},8,["open"])])}}}),zt=Object.assign(Nt,{__name:"EditorDocumentEditor"});function Pt(){const d=x(null),v=x(null),c=x(""),h=x(null),u=x(!1),f=x("idle"),w=x(!1),y=x(!1),m=ce(async()=>{!d.value||!w.value||await _({body:c.value})},2e3),U=ce(async()=>{!d.value||!y.value||await _()},500);async function D(a){u.value=!0,h.value=a,w.value=!1,y.value=!1,f.value="idle";try{const t=await $fetch("/api/documents/by-path",{method:"POST",body:{path:a}});d.value=t.data.document,v.value=t.data.metadata,c.value=t.data.body||""}catch(t){console.error("Failed to load document:",t),d.value=null,v.value=null,c.value=""}finally{u.value=!1}}function b(a){c.value!==a&&(c.value=a,w.value=!0,m())}function q(a){v.value&&(v.value={...v.value,...a},y.value=!0,U())}async function _(a={}){if(d.value){f.value="saving";try{const t={...a};y.value&&v.value&&(t.title=v.value.title,t.tags=v.value.tags,t.projectId=v.value.projectId,t.shared=v.value.shared,t.shareType=v.value.shareType),w.value&&a.body===void 0&&(t.body=c.value);const r=await $fetch(`/api/documents/${d.value.id}`,{method:"PUT",body:t});d.value=r.data.document,v.value=r.data.metadata,c.value=r.data.body||"",w.value=!1,y.value=!1,f.value="saved",setTimeout(()=>{f.value==="saved"&&(f.value="idle")},2e3)}catch(t){console.error("Failed to save document:",t),f.value="error"}}}async function e(){!w.value&&!y.value||await _({body:c.value})}function T(){d.value=null,v.value=null,c.value="",h.value=null,w.value=!1,y.value=!1,f.value="idle"}return{document:d,metadata:v,body:c,filePath:h,loading:u,saveStatus:f,isDirty:w,metadataDirty:y,loadDocument:D,updateBody:b,updateMetadata:q,saveDocument:_,saveNow:e,closeDocument:T}}const Bt={class:"flex flex-1 min-w-0"},Et={key:0,class:"flex-1 flex items-center justify-center h-full"},Ot={key:1,class:"flex-1 flex items-center justify-center h-full text-dimmed"},Rt={class:"text-center"},za=G({__name:"docs",setup(d){const v=Ce(),{document:c,metadata:h,body:u,filePath:f,loading:w,saveStatus:y,isDirty:m,metadataDirty:U,loadDocument:D,updateBody:b,updateMetadata:q,saveNow:_}=Pt(),{lastDocumentPath:e}=fe();async function T(a){await D(a),e.value=a}return de(async()=>{const a=v.query.path;a?(await D(a),e.value=a):e.value&&await D(e.value)}),(a,t)=>{const r=pt,$=Te,s=vt,I=Me,V=ae,E=qe,N=Se,A=J,W=zt;return F(),z("div",Bt,[l($,{id:"docs-filetree",collapsible:"",resizable:"","min-size":12,"default-size":16,"max-size":24,class:"hidden lg:flex"},{body:i(()=>[l(r,{class:"h-full",onSelect:T})]),_:1}),l($,{id:"docs-editor",grow:"",ui:{body:"sm:py-0"}},{header:i(()=>[l(N,null,{title:i(()=>[l(s),t[0]||(t[0]=P(" Editor ",-1))]),right:i(()=>[l(I),l(E,null,{content:i(()=>[l(r,{class:"h-full",onSelect:T})]),default:i(()=>[l(V,{icon:"i-lucide-folder-tree",class:"block lg:hidden"})]),_:1})]),_:1})]),body:i(()=>[o(w)?(F(),z("div",Et,[l(A,{name:"i-lucide-loader-2",class:"size-6 animate-spin text-dimmed"})])):o(f)?o(h)&&o(c)?(F(),O(W,{key:o(f),document:o(c),body:o(u),metadata:o(h),"file-path":o(f),"save-status":o(y),"is-dirty":o(m),"metadata-dirty":o(U),class:"h-full","onUpdate:body":o(b),"onUpdate:metadata":o(q),onSave:o(_)},null,8,["document","body","metadata","file-path","save-status","is-dirty","metadata-dirty","onUpdate:body","onUpdate:metadata","onSave"])):H("",!0):(F(),z("div",Ot,[n("div",Rt,[l(A,{name:"i-lucide-file-text",class:"size-32 mx-auto mb-4 opacity-50"}),t[1]||(t[1]=n("p",null,"Select a file to edit",-1))])]))]),_:1})])}}});export{za as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{W as c,h as u,M as n,o as p,ac as i,r as d,$ as a,ap as o}from"./
|
|
1
|
+
import{W as c,h as u,M as n,o as p,ac as i,r as d,$ as a,ap as o}from"./B06CcGVK.js";const f={slots:{root:"relative my-5 overflow-x-auto",base:"w-full border-separate border-spacing-0 rounded-md"}},v={__name:"ProseTable",props:{class:{type:null,required:!1},ui:{type:null,required:!1}},setup(r){const e=r,t=c(),s=u(()=>o({extend:o(f),...t.ui?.prose?.table||{}})());return(l,m)=>(p(),n("div",{class:a(s.value.root({class:[e.ui?.root,e.class]}))},[i("table",{class:a(s.value.base({class:e.ui?.base}))},[d(l.$slots,"default")],2)],2))}};export{v as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{W as n,h as c,M as p,o as l,r as m,$ as u,ap as s}from"./
|
|
1
|
+
import{W as n,h as c,M as p,o as l,r as m,$ as u,ap as s}from"./B06CcGVK.js";const i={base:""},_={__name:"ProseEm",props:{class:{type:String,required:!1}},setup(e){const a=e,o=n(),t=c(()=>s({extend:s(i),...o.ui?.prose?.em||{}}));return(r,f)=>(l(),p("em",{class:u(t.value({class:a.class}))},[m(r.$slots,"default")],2))}};export{_ as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{W as l,h as n,M as c,o as p,r as u,$ as d,ap as s}from"./
|
|
1
|
+
import{W as l,h as n,M as c,o as p,r as u,$ as d,ap as s}from"./B06CcGVK.js";const i={base:""},_={__name:"ProseTbody",props:{class:{type:null,required:!1}},setup(e){const a=e,o=l(),t=n(()=>s({extend:s(i),...o.ui?.prose?.tbody||{}}));return(r,m)=>(p(),c("tbody",{class:d(t.value({class:a.class}))},[u(r.$slots,"default")],2))}};export{_ as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a9 as l,a7 as s}from"./
|
|
1
|
+
import{a9 as l,a7 as s}from"./B06CcGVK.js";function t(r,i){return l(r)?!1:Array.isArray(r)?r.some(a=>s(a,i)):s(r,i)}export{t as i};
|