cognova 0.2.0 → 0.2.3
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/-AsXrBBy.js +1 -0
- package/.output/public/_nuxt/2W1RPpXM.js +71 -0
- package/.output/public/_nuxt/{C4pxqdgg.js → 5UFq_rDn.js} +1 -1
- package/.output/public/_nuxt/5Zh-9l8_.js +1 -0
- package/.output/public/_nuxt/{DK9jxJ0g.js → 90UksHlj.js} +1 -1
- package/.output/public/_nuxt/{9IQmsEjr.js → 9QKmiSP_.js} +1 -1
- package/.output/public/_nuxt/{BOj6t-oo.js → ARbTpeGy.js} +1 -1
- package/.output/public/_nuxt/{DyRelyfs.js → ApfLnl06.js} +1 -1
- package/.output/public/_nuxt/{DznawRFW.js → B-2BuR5g.js} +1 -1
- package/.output/public/_nuxt/B4u7Mczo.js +1 -0
- package/.output/public/_nuxt/{DAQhmSv4.js → B5dI_yLq.js} +1 -1
- package/.output/public/_nuxt/{Bm9LyG4F.js → B6fnZcA6.js} +1 -1
- package/.output/public/_nuxt/{9QnH0xQM.js → B7uMSBlN.js} +1 -1
- package/.output/public/_nuxt/BBiRyPlN.js +1 -0
- package/.output/public/_nuxt/{iBGCpHdw.js → BF7413u4.js} +2 -2
- package/.output/public/_nuxt/{4MiwzAAt.js → BGtUoCgi.js} +2 -2
- package/.output/public/_nuxt/{CxuZBC8n.js → BHe4VLtR.js} +1 -1
- package/.output/public/_nuxt/{D3RiUGdz.js → BIMBp1Tj.js} +1 -1
- package/.output/public/_nuxt/{g20UHUCv.js → BIvPdoE3.js} +1 -1
- package/.output/public/_nuxt/BKaRtCjP.js +1 -0
- package/.output/public/_nuxt/BLmc9T7l.js +1 -0
- package/.output/public/_nuxt/BMdnU6BF.js +1 -0
- package/.output/public/_nuxt/{CKkC3Ptm.js → BOgdaA_8.js} +1 -1
- package/.output/public/_nuxt/{BffWCM73.js → BQZfTrUg.js} +1 -1
- package/.output/public/_nuxt/BQnublTW.js +1 -0
- package/.output/public/_nuxt/BSsvedap.js +1 -0
- package/.output/public/_nuxt/{Ci7UEZQh.js → BVypxKRT.js} +1 -1
- package/.output/public/_nuxt/{CYP_MLH8.js → BWqJFnZy.js} +1 -1
- package/.output/public/_nuxt/BXxYdXMr.js +1 -0
- package/.output/public/_nuxt/{D_3Rq1BS.js → B_17gAr_.js} +1 -1
- package/.output/public/_nuxt/B_qzFVK_.js +1 -0
- package/.output/public/_nuxt/{BqKFIuRj.js → BbRPwpIX.js} +1 -1
- package/.output/public/_nuxt/BhrzKbv9.js +1 -0
- package/.output/public/_nuxt/{Cqy_L_ip.js → Bl6LNGlA.js} +1 -1
- package/.output/public/_nuxt/{Fukkqjkf.js → BlPToGni.js} +1 -1
- package/.output/public/_nuxt/{DHKLCQRG.js → BlwHr46F.js} +1 -1
- package/.output/public/_nuxt/{C6aqGHu1.js → BnmwiZbF.js} +1 -1
- package/.output/public/_nuxt/BqtxLJaf.js +1 -0
- package/.output/public/_nuxt/{eko-0FUm.js → BrEXdify.js} +1 -1
- package/.output/public/_nuxt/{D3e44mCL.js → BtNnS4m3.js} +1 -1
- package/.output/public/_nuxt/{BCtfQCzC.js → BtVIBBUN.js} +1 -1
- package/.output/public/_nuxt/Bw5h4Jaf.js +1 -0
- package/.output/public/_nuxt/{FvlxxmNk.js → Bwcpy7gC.js} +2 -2
- package/.output/public/_nuxt/{Db2v8O7O.js → C0TUK31m.js} +1 -1
- package/.output/public/_nuxt/C1T4GK6c.js +1 -0
- package/.output/public/_nuxt/C2ANDZen.js +1 -0
- package/.output/public/_nuxt/{CqU2XbzO.js → C2RZSTuy.js} +1 -1
- package/.output/public/_nuxt/C3dYlP5x.js +1 -0
- package/.output/public/_nuxt/{m5kGCDpI.js → C3sh_tLi.js} +3 -3
- package/.output/public/_nuxt/{BjjCvHLT.js → C4zyxZG7.js} +1 -1
- package/.output/public/_nuxt/{C3FxIITy.js → C5I-XBZT.js} +1 -1
- package/.output/public/_nuxt/{yuf23kh9.js → CC4Goztu.js} +1 -1
- package/.output/public/_nuxt/CC77iplr.js +1 -0
- package/.output/public/_nuxt/{xuzLdW-o.js → CFyD2NHP.js} +1 -1
- package/.output/public/_nuxt/{CsJ9KhQ4.js → CGQDTeaO.js} +1 -1
- package/.output/public/_nuxt/{DnjGH3SQ.js → CHpwuMSk.js} +1 -1
- package/.output/public/_nuxt/CLzcRUcs.js +1 -0
- package/.output/public/_nuxt/CM2phu_3.js +1 -0
- package/.output/public/_nuxt/{Cr8ixbr1.js → CQpYRq61.js} +1 -1
- package/.output/public/_nuxt/{C0JKNMDO.js → CUN4bYcg.js} +1 -1
- package/.output/public/_nuxt/{CmzH6R-N.js → CXoITXft.js} +19 -19
- package/.output/public/_nuxt/CYjcQPl-.js +1 -0
- package/.output/public/_nuxt/{DGX0tzL8.js → CZ32KfaS.js} +1 -1
- package/.output/public/_nuxt/CclZMdca.js +1 -0
- package/.output/public/_nuxt/{C69W7k2j.js → CdpT_Vb6.js} +1 -1
- package/.output/public/_nuxt/CflRLvFC.js +1 -0
- package/.output/public/_nuxt/{gBC9k4Qj.js → CkqNv7sq.js} +2 -2
- package/.output/public/_nuxt/ClXDAYjE.js +1 -0
- package/.output/public/_nuxt/CrZGoMo_.js +1 -0
- package/.output/public/_nuxt/{BZXMQuYP.js → CvJtd2Af.js} +1 -1
- package/.output/public/_nuxt/{DKZxeXDQ.js → Cwtd8e-P.js} +1 -1
- package/.output/public/_nuxt/{nIU2F7ia.js → Cx44SSNp.js} +3 -3
- package/.output/public/_nuxt/{BzOqrmGa.js → CxEVzuCn.js} +3 -3
- package/.output/public/_nuxt/{Dy_Cq5LQ.js → CzIMQevQ.js} +1 -1
- package/.output/public/_nuxt/{D6t3dcTl.js → D0P9llU7.js} +1 -1
- package/.output/public/_nuxt/{JJ3634gV.js → D1DYuOOm.js} +1 -1
- package/.output/public/_nuxt/{BAIz-dEB.js → D1dDc8Vw.js} +1 -1
- package/.output/public/_nuxt/{DSRrg8JT.js → D1r0uqf3.js} +1 -1
- package/.output/public/_nuxt/{CNnJrDvu.js → D3a8R1T6.js} +1 -1
- package/.output/public/_nuxt/{B1X4Bzcy.js → D5EZbuub.js} +1 -1
- package/.output/public/_nuxt/D9V13KTK.js +1 -0
- package/.output/public/_nuxt/DAE2hbP7.js +1 -0
- package/.output/public/_nuxt/{Cvp7FI3T.js → DAIbdyS6.js} +1 -1
- package/.output/public/_nuxt/{EuOqK1A6.js → DAvlXjt0.js} +1 -1
- package/.output/public/_nuxt/DBKzwexZ.js +1 -0
- package/.output/public/_nuxt/{wCGVE8_e.js → DEATxnaF.js} +1 -1
- package/.output/public/_nuxt/{cABRLVee.js → DFg8PvHV.js} +1 -1
- package/.output/public/_nuxt/DM4MyqI-.js +1 -0
- package/.output/public/_nuxt/{Cdt3I3Go.js → DNE7kw9s.js} +1 -1
- package/.output/public/_nuxt/DO0oG4fG.js +1 -0
- package/.output/public/_nuxt/{B6S_ob86.js → DPFugPaB.js} +1 -1
- package/.output/public/_nuxt/{DJjDvbZE.js → DQlXU6_H.js} +1 -1
- package/.output/public/_nuxt/DQvuQpwh.js +1 -0
- package/.output/public/_nuxt/{sf57orEk.js → DRlG_bnX.js} +1 -1
- package/.output/public/_nuxt/{C6RC3lA1.js → DSQj-oMk.js} +1 -1
- package/.output/public/_nuxt/{CeIVm4A3.js → DU6ewLkE.js} +1 -1
- package/.output/public/_nuxt/{Cp2MA0cm.js → DWhzQg7B.js} +1 -1
- package/.output/public/_nuxt/{DJMS2og1.js → D_vK6VPK.js} +1 -1
- package/.output/public/_nuxt/{CihWZmJe.js → DaBp0Gba.js} +2 -2
- package/.output/public/_nuxt/DaH2FbAy.js +1 -0
- package/.output/public/_nuxt/{CtYFj7k1.js → DaJo0CeV.js} +1 -1
- package/.output/public/_nuxt/DauLdT7p.js +1 -0
- package/.output/public/_nuxt/{DG-T44jj.js → DdPA4eTX.js} +1 -1
- package/.output/public/_nuxt/{YuTZB7sD.js → DeAGWdWK.js} +1 -1
- package/.output/public/_nuxt/{CitkKxhw.js → DfF1qofg.js} +1 -1
- package/.output/public/_nuxt/{Daz4MeL6.js → DiGBA-aA.js} +1 -1
- package/.output/public/_nuxt/DiJxF69i.js +1 -0
- package/.output/public/_nuxt/{DIoI0uJm.js → DkBIU-1F.js} +1 -1
- package/.output/public/_nuxt/DmAM6bZ0.js +1 -0
- package/.output/public/_nuxt/DmeAKr3J.js +1 -0
- package/.output/public/_nuxt/DmmTnMzZ.js +1 -0
- package/.output/public/_nuxt/{Lwdv_RKd.js → DqsUSndS.js} +1 -1
- package/.output/public/_nuxt/Dvw-hR3Y.js +1 -0
- package/.output/public/_nuxt/{CVgTJeSq.js → Dz6sfh81.js} +1 -1
- package/.output/public/_nuxt/{BYjadNrw.js → FNhYm5FX.js} +1 -1
- package/.output/public/_nuxt/{Nb2jBtYT.js → HOeKUnra.js} +1 -1
- package/.output/public/_nuxt/{CtchsY6e.js → IR1jkN7B.js} +1 -1
- package/.output/public/_nuxt/{DCzfkCGa.js → MpTk6K7N.js} +1 -1
- package/.output/public/_nuxt/NZ7Wz6LP.js +1 -0
- package/.output/public/_nuxt/{DfQu3kEw.js → PqWbiAD2.js} +1 -1
- package/.output/public/_nuxt/{Jez9DHn7.js → Tu4FhMRc.js} +1 -1
- package/.output/public/_nuxt/{B3y_Qqox.js → UKPXYG4z.js} +1 -1
- package/.output/public/_nuxt/{BlAZO7nq.js → UO2Y9Nve.js} +1 -1
- package/.output/public/_nuxt/{KKK6HVeG.js → XHiJSquP.js} +1 -1
- package/.output/public/_nuxt/YGWAImQo.js +1 -0
- package/.output/public/_nuxt/{ghuJ76mD.js → ZR87XvwB.js} +1 -1
- package/.output/public/_nuxt/{yNrp2XvX.js → _E89BQAO.js} +1 -1
- package/.output/public/_nuxt/{C_BdYLzz.js → aiXk7zRt.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/91727fcc-bf7f-407f-9b1e-092017fcfee0.json +1 -0
- package/.output/public/_nuxt/cL7whuPe.js +1 -0
- package/.output/public/_nuxt/{BasgsT_S.js → ct6_k5IW.js} +1 -1
- package/.output/public/_nuxt/entry._7ZkP07A.css +1 -0
- package/.output/public/_nuxt/{DTDgHTuh.js → fEUQvmn8.js} +2 -2
- package/.output/public/_nuxt/{FNC8XZTk.js → gGlaVUMD.js} +1 -1
- package/.output/public/_nuxt/gjmGkVlL.js +1 -0
- package/.output/public/_nuxt/{IRSbVPIu.js → m5001Uvl.js} +1 -1
- package/.output/public/_nuxt/{_CYZi8HN.js → mQkFCz_M.js} +1 -1
- package/.output/public/_nuxt/{BxXOsXrM.js → p9l1LjVc.js} +10 -10
- package/.output/public/_nuxt/{BsEZoHd1.js → qR_K5W8V.js} +1 -1
- package/.output/public/_nuxt/{BrNqhp1a.js → t_9QQ4MF.js} +7 -7
- package/.output/public/_nuxt/{pcUI-zuY.js → uc4c4mfb.js} +1 -1
- package/.output/public/_nuxt/{usage.vakN1lvi.css → usage.BDeyCZwW.css} +1 -1
- package/.output/public/_nuxt/wPSLEMBw.js +1 -0
- package/.output/public/_nuxt/xKRwul0f.js +1 -0
- package/.output/public/_nuxt/{BWhMnjID.js → xgpiGSxb.js} +1 -1
- package/.output/public/_nuxt/xxnk7j0F.js +1 -0
- package/.output/public/favicon.svg +1 -0
- package/.output/server/chunks/build/A-BWukSPjS.mjs +1 -0
- package/.output/server/chunks/build/Accordion-BaJYea6e.mjs +1 -0
- package/.output/server/chunks/build/AccordionItem-DdG2zgcN.mjs +1 -0
- package/.output/server/chunks/build/Badge-BrU9UkCv.mjs +1 -0
- package/.output/server/chunks/build/Blockquote-DND8wTkU.mjs +1 -0
- package/.output/server/chunks/build/Callout-1halpaEg.mjs +1 -0
- package/.output/server/chunks/build/Card-BHCSDKDt.mjs +1 -0
- package/.output/server/chunks/build/CardGroup-BOuJcNGp.mjs +1 -0
- package/.output/server/chunks/build/Caution-BP3y-TcC.mjs +1 -0
- package/.output/server/chunks/build/Code-B1xkAS5a.mjs +1 -0
- package/.output/server/chunks/build/CodeCollapse-BIhaNa22.mjs +1 -0
- package/.output/server/chunks/build/CodeGroup-BviYyCuo.mjs +1 -0
- package/.output/server/chunks/build/CodeIcon-CWD5HcV7.mjs +2 -1
- package/.output/server/chunks/build/CodePreview-D8PsCQ6m.mjs +1 -0
- package/.output/server/chunks/build/CodeTree-BUTLupmL.mjs +1 -0
- package/.output/server/chunks/build/Collapsible-BIvXNaSq.mjs +1 -0
- package/.output/server/chunks/build/DropdownMenu-BBrV9nXz.mjs +1 -1
- package/.output/server/chunks/build/EditorToolbar-DIfb5arC.mjs +1 -1
- package/.output/server/chunks/build/Em-DsIz_BnD.mjs +1 -0
- package/.output/server/chunks/build/Field-cwwmSQDT.mjs +1 -0
- package/.output/server/chunks/build/FieldGroup-CAIpQv8s.mjs +1 -0
- package/.output/server/chunks/build/H1-BbFNsPyP.mjs +1 -0
- package/.output/server/chunks/build/H2-vHTl_pWr.mjs +1 -0
- package/.output/server/chunks/build/H3-7eTcfO3s.mjs +1 -0
- package/.output/server/chunks/build/H4-C89p_PKO.mjs +1 -0
- package/.output/server/chunks/build/Hr-Bm8RlL3O.mjs +1 -0
- package/.output/server/chunks/build/Icon-Dp9iy0BI.mjs +1 -0
- package/.output/server/chunks/build/Img-CWLmvN1t.mjs +2 -1
- package/.output/server/chunks/build/Kbd-CQG6I_Ch.mjs +1 -0
- package/.output/server/chunks/build/Li-Bw1QUaGv.mjs +1 -0
- package/.output/server/chunks/build/MDC-Dx0YPDhe.mjs +1 -1
- package/.output/server/chunks/build/Note-CHkjm9jm.mjs +1 -0
- package/.output/server/chunks/build/Ol-D-fPnfFM.mjs +1 -0
- package/.output/server/chunks/build/P-B5YI1V9y.mjs +1 -0
- package/.output/server/chunks/build/Pre-ChiJcf3C.mjs +1 -0
- package/.output/server/chunks/build/ProseH5-DahJyv8h.mjs +1 -0
- package/.output/server/chunks/build/ProseH6-C4Is5h6c.mjs +1 -0
- package/.output/server/chunks/build/Select-BB1oLrCD.mjs +1 -1
- package/.output/server/chunks/build/SelectMenu-DPssg6zD.mjs +1 -1
- package/.output/server/chunks/build/Steps-BZpvXfzb.mjs +1 -0
- package/.output/server/chunks/build/Strong-DXJqOWL3.mjs +1 -0
- package/.output/server/chunks/build/Table-BSrLZ7dt.mjs +1 -0
- package/.output/server/chunks/build/Table-DCwTlhCj.mjs +1 -1
- package/.output/server/chunks/build/Tabs-Dk3nvOFF.mjs +1 -0
- package/.output/server/chunks/build/TabsItem-CDhyuBtJ.mjs +1 -0
- package/.output/server/chunks/build/Tbody-CjMT5oH-.mjs +1 -0
- package/.output/server/chunks/build/Td-ZBVaEjFN.mjs +1 -0
- package/.output/server/chunks/build/Th-D317icbd.mjs +1 -0
- package/.output/server/chunks/build/Thead-Ca_ZESTK.mjs +1 -0
- package/.output/server/chunks/build/Tip-CP3oTARR.mjs +1 -0
- package/.output/server/chunks/build/Tooltip-TRyl6dje.mjs +1 -1
- package/.output/server/chunks/build/Tr-6jI8j9gD.mjs +1 -0
- package/.output/server/chunks/build/{docs-Dk2JnYq3.mjs → Tree-DUhXKd8y.mjs} +46 -2235
- package/.output/server/chunks/build/Tree-DUhXKd8y.mjs.map +1 -0
- package/.output/server/chunks/build/Ul-BUGj_CPb.mjs +1 -0
- package/.output/server/chunks/build/Warning-BJ8G6cxC.mjs +1 -0
- package/.output/server/chunks/build/_id_-DN00UDdO.mjs +1 -0
- package/.output/server/chunks/build/_id_-DN00UDdO.mjs.map +1 -1
- package/.output/server/chunks/build/_name_-BnS_KEfX.mjs +1592 -0
- package/.output/server/chunks/build/_name_-BnS_KEfX.mjs.map +1 -0
- package/.output/server/chunks/build/{_uuid_-0UgdUhfY.mjs → _uuid_-DfJaumTE.mjs} +5 -4
- package/.output/server/chunks/build/{_uuid_-0UgdUhfY.mjs.map → _uuid_-DfJaumTE.mjs.map} +1 -1
- package/.output/server/chunks/build/auth-BGPNH2QJ.mjs +20 -0
- package/.output/server/chunks/build/auth-BGPNH2QJ.mjs.map +1 -0
- package/.output/server/chunks/build/auth-CvD7MqKW.mjs +1 -0
- package/.output/server/chunks/build/auth-CvD7MqKW.mjs.map +1 -1
- package/.output/server/chunks/build/chat-CZMiB68R.mjs +1 -0
- package/.output/server/chunks/build/chat-CZMiB68R.mjs.map +1 -1
- package/.output/server/chunks/build/client.precomputed.mjs +1 -1
- package/.output/server/chunks/build/cookie-C_iulBi6.mjs +1 -1
- package/.output/server/chunks/build/{dashboard-YEscLBQN.mjs → dashboard-CLk1NlbR.mjs} +15 -4
- package/.output/server/chunks/build/dashboard-CLk1NlbR.mjs.map +1 -0
- package/.output/server/chunks/build/{dashboard-CpMVYnDV.mjs → dashboard-CiVTAZuF.mjs} +12 -4
- package/.output/server/chunks/build/{dashboard-CpMVYnDV.mjs.map → dashboard-CiVTAZuF.mjs.map} +1 -1
- package/.output/server/chunks/build/docs-ChGwOPg5.mjs +2204 -0
- package/.output/server/chunks/build/docs-ChGwOPg5.mjs.map +1 -0
- package/.output/server/chunks/build/error-404-BzbcNcdU.mjs +1 -0
- package/.output/server/chunks/build/error-500-uCDjGRW8.mjs +1 -0
- package/.output/server/chunks/build/fetch-BB7Qzkwe.mjs +1 -1
- package/.output/server/chunks/build/{hooks-DP8WoUPS.mjs → hooks-D328DcO6.mjs} +3 -2
- package/.output/server/chunks/build/hooks-D328DcO6.mjs.map +1 -0
- package/.output/server/chunks/build/{index-DVx-QlhP.mjs → index-Byt-3Yq6.mjs} +3 -2
- package/.output/server/chunks/build/{index-DVx-QlhP.mjs.map → index-Byt-3Yq6.mjs.map} +1 -1
- package/.output/server/chunks/build/{index-Ba_bPJgk.mjs → index-C9PuieXh.mjs} +3 -2
- package/.output/server/chunks/build/index-C9PuieXh.mjs.map +1 -0
- package/.output/server/chunks/build/index-C_LcBBgO.mjs +1508 -0
- package/.output/server/chunks/build/index-C_LcBBgO.mjs.map +1 -0
- package/.output/server/chunks/build/index-CxDxc9fm.mjs +1 -1
- package/.output/server/chunks/build/index-DzdvIi8V.mjs +1 -0
- package/.output/server/chunks/build/library-CbWcF5wT.mjs +601 -0
- package/.output/server/chunks/build/library-CbWcF5wT.mjs.map +1 -0
- package/.output/server/chunks/build/{login-BAysbpyX.mjs → login-DnnElTl2.mjs} +15 -7
- package/.output/server/chunks/build/{login-BAysbpyX.mjs.map → login-DnnElTl2.mjs.map} +1 -1
- package/.output/server/chunks/build/memories-BqA719O1.mjs +1 -0
- package/.output/server/chunks/build/memories-BqA719O1.mjs.map +1 -1
- package/.output/server/chunks/build/server.mjs +62 -34
- package/.output/server/chunks/build/server.mjs.map +1 -1
- package/.output/server/chunks/build/settings-DdkKCJ00.mjs +1 -0
- package/.output/server/chunks/build/settings-DdkKCJ00.mjs.map +1 -1
- package/.output/server/chunks/build/styles.mjs +2 -2
- package/.output/server/chunks/build/{tasks-DiOi1HG_.mjs → tasks-DnAFqbtt.mjs} +3 -2
- package/.output/server/chunks/build/tasks-DnAFqbtt.mjs.map +1 -0
- package/.output/server/chunks/build/{usage-H_mcd_fz.mjs → usage-CSrBh4Or.mjs} +159 -44
- package/.output/server/chunks/build/{usage-H_mcd_fz.mjs.map → usage-CSrBh4Or.mjs.map} +1 -1
- package/.output/server/chunks/build/{usePreferences-CzC8fRzd.mjs → usePreferences-DH1QjxOj.mjs} +7 -1
- package/.output/server/chunks/build/usePreferences-DH1QjxOj.mjs.map +1 -0
- package/.output/server/chunks/build/{view-Dc8mvzCB.mjs → view-n2sYa4Zh.mjs} +4 -3
- package/.output/server/chunks/build/{view-Dc8mvzCB.mjs.map → view-n2sYa4Zh.mjs.map} +1 -1
- package/.output/server/chunks/build/virtual_nuxt__Users_tony_Documents_GitHub_second-brain_node_modules_.cache_nuxt_.nuxt_mdc-imports-PtwWlZ2H.mjs +1 -0
- package/.output/server/chunks/nitro/nitro.mjs +1247 -824
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
- package/.output/server/chunks/routes/_ws/chat.mjs +2 -1
- package/.output/server/chunks/routes/_ws/chat.mjs.map +1 -1
- package/.output/server/chunks/routes/api/agents/_id/cancel.post.mjs +1 -0
- package/.output/server/chunks/routes/api/agents/_id/cancel.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/agents/_id/run.post.mjs +1 -0
- package/.output/server/chunks/routes/api/agents/_id/run.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/agents/_id/runs.get.mjs +1 -0
- package/.output/server/chunks/routes/api/agents/_id/runs.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/agents/_id/stats.get.mjs +1 -0
- package/.output/server/chunks/routes/api/agents/_id/stats.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/agents/_id_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/agents/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/agents/_id_.get.mjs +1 -0
- package/.output/server/chunks/routes/api/agents/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/agents/_id_.patch.mjs +1 -0
- package/.output/server/chunks/routes/api/agents/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/agents/stats.get.mjs +1 -0
- package/.output/server/chunks/routes/api/agents/stats.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/_...all_.mjs +1 -0
- package/.output/server/chunks/routes/api/auth/_...all_.mjs.map +1 -1
- package/.output/server/chunks/routes/api/conversations/_id_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/conversations/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/conversations/_id_.get.mjs +1 -0
- package/.output/server/chunks/routes/api/conversations/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/dashboard/overview.get.mjs +1 -0
- package/.output/server/chunks/routes/api/dashboard/overview.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/documents/_id/public.get.mjs +1 -0
- package/.output/server/chunks/routes/api/documents/_id/public.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/documents/_id/restore.post.mjs +1 -0
- package/.output/server/chunks/routes/api/documents/_id/restore.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/documents/by-path.post.mjs +1 -0
- package/.output/server/chunks/routes/api/documents/by-path.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/documents/index.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/documents/index.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/documents/index.put.mjs +1 -0
- package/.output/server/chunks/routes/api/documents/index.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/fs/delete.post.mjs +1 -0
- package/.output/server/chunks/routes/api/fs/delete.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/fs/list.get.mjs +1 -0
- package/.output/server/chunks/routes/api/fs/list.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/fs/mkdir.post.mjs +1 -0
- package/.output/server/chunks/routes/api/fs/mkdir.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/fs/move.post.mjs +1 -0
- package/.output/server/chunks/routes/api/fs/move.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/fs/read.post.mjs +1 -0
- package/.output/server/chunks/routes/api/fs/read.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/fs/rename.post.mjs +1 -0
- package/.output/server/chunks/routes/api/fs/rename.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/fs/write.post.mjs +1 -0
- package/.output/server/chunks/routes/api/fs/write.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/health.get.mjs +1 -0
- package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/home.get.mjs +1 -0
- package/.output/server/chunks/routes/api/home.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/hooks/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/hooks/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/hooks/index.post.mjs +1 -0
- package/.output/server/chunks/routes/api/hooks/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/hooks/stats.get.mjs +1 -0
- package/.output/server/chunks/routes/api/hooks/stats.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get2.mjs +1 -0
- package/.output/server/chunks/routes/api/index.get2.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get3.mjs +1 -0
- package/.output/server/chunks/routes/api/index.get3.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get4.mjs +1 -0
- package/.output/server/chunks/routes/api/index.get4.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get5.mjs +1 -0
- package/.output/server/chunks/routes/api/index.get5.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get6.mjs +1 -0
- package/.output/server/chunks/routes/api/index.get6.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get7.mjs +40 -38
- package/.output/server/chunks/routes/api/index.get7.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get8.mjs +33 -38
- package/.output/server/chunks/routes/api/index.get8.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get9.mjs +83 -0
- package/.output/server/chunks/routes/api/index.get9.mjs.map +1 -0
- package/.output/server/chunks/routes/api/index.post.mjs +1 -0
- package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post2.mjs +1 -0
- package/.output/server/chunks/routes/api/index.post2.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post3.mjs +1 -0
- package/.output/server/chunks/routes/api/index.post3.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post4.mjs +1 -0
- package/.output/server/chunks/routes/api/index.post4.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.put.mjs +1 -0
- package/.output/server/chunks/routes/api/index.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/memory/_id_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/memory/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/memory/context.get.mjs +1 -0
- package/.output/server/chunks/routes/api/memory/context.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/memory/extract.post.mjs +2 -1
- package/.output/server/chunks/routes/api/memory/extract.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/memory/search.get.mjs +1 -0
- package/.output/server/chunks/routes/api/memory/search.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/memory/store.post.mjs +1 -0
- package/.output/server/chunks/routes/api/memory/store.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/index.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/projects/index.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/projects/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/index.put.mjs +1 -0
- package/.output/server/chunks/routes/api/projects/index.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/secrets/_key_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/secrets/_key_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/secrets/_key_.get.mjs +1 -0
- package/.output/server/chunks/routes/api/secrets/_key_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/secrets/_key_.put.mjs +1 -0
- package/.output/server/chunks/routes/api/secrets/_key_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/skills/_name/export.get.mjs +72 -0
- package/.output/server/chunks/routes/api/skills/_name/export.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/_name/files/create.post.mjs +73 -0
- package/.output/server/chunks/routes/api/skills/_name/files/create.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/_name/files/delete.post.mjs +71 -0
- package/.output/server/chunks/routes/api/skills/_name/files/delete.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/_name/files/read.post.mjs +69 -0
- package/.output/server/chunks/routes/api/skills/_name/files/read.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/_name/files/write.post.mjs +69 -0
- package/.output/server/chunks/routes/api/skills/_name/files/write.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/_name/index.get.mjs +60 -0
- package/.output/server/chunks/routes/api/skills/_name/index.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/_name/rename.post.mjs +87 -0
- package/.output/server/chunks/routes/api/skills/_name/rename.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/_name/toggle.post.mjs +62 -0
- package/.output/server/chunks/routes/api/skills/_name/toggle.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/create.post.mjs +79 -0
- package/.output/server/chunks/routes/api/skills/create.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/generate.post.mjs +143 -0
- package/.output/server/chunks/routes/api/skills/generate.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/import.post.mjs +96 -0
- package/.output/server/chunks/routes/api/skills/import.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/index.get.mjs +82 -0
- package/.output/server/chunks/routes/api/skills/index.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/index.get2.mjs +83 -0
- package/.output/server/chunks/routes/api/skills/index.get2.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/library/check-updates.get.mjs +72 -0
- package/.output/server/chunks/routes/api/skills/library/check-updates.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/skills/library/install.post.mjs +90 -0
- package/.output/server/chunks/routes/api/skills/library/install.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/tasks/_id/restore.post.mjs +1 -0
- package/.output/server/chunks/routes/api/tasks/_id/restore.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tasks/index.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/tasks/index.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tasks/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/tasks/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tasks/index.put.mjs +1 -0
- package/.output/server/chunks/routes/api/tasks/index.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tasks/tags.get.mjs +1 -0
- package/.output/server/chunks/routes/api/tasks/tags.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/usage/stats.get.mjs +4 -1
- package/.output/server/chunks/routes/api/usage/stats.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/user/email.patch.mjs +2 -1
- package/.output/server/chunks/routes/api/user/email.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/notifications.mjs +2 -1
- package/.output/server/chunks/routes/notifications.mjs.map +1 -1
- package/.output/server/chunks/routes/renderer.mjs +2 -2
- package/.output/server/chunks/routes/terminal.mjs +2 -1
- package/.output/server/chunks/routes/terminal.mjs.map +1 -1
- package/.output/server/index.mjs +2 -1
- package/.output/server/index.mjs.map +1 -1
- package/.output/server/node_modules/adm-zip/adm-zip.js +949 -0
- package/.output/server/node_modules/adm-zip/headers/entryHeader.js +374 -0
- package/.output/server/node_modules/adm-zip/headers/index.js +2 -0
- package/.output/server/node_modules/adm-zip/headers/mainHeader.js +130 -0
- package/.output/server/node_modules/adm-zip/methods/deflater.js +33 -0
- package/.output/server/node_modules/adm-zip/methods/index.js +3 -0
- package/.output/server/node_modules/adm-zip/methods/inflater.js +34 -0
- package/.output/server/node_modules/adm-zip/methods/zipcrypto.js +175 -0
- package/.output/server/node_modules/adm-zip/package.json +49 -0
- package/.output/server/node_modules/adm-zip/util/constants.js +142 -0
- package/.output/server/node_modules/adm-zip/util/decoder.js +5 -0
- package/.output/server/node_modules/adm-zip/util/errors.js +63 -0
- package/.output/server/node_modules/adm-zip/util/fattr.js +76 -0
- package/.output/server/node_modules/adm-zip/util/index.js +5 -0
- package/.output/server/node_modules/adm-zip/util/utils.js +336 -0
- package/.output/server/node_modules/adm-zip/zipEntry.js +405 -0
- package/.output/server/node_modules/adm-zip/zipFile.js +446 -0
- package/.output/server/package.json +2 -1
- package/Claude/CLAUDE.md +9 -4
- package/Claude/skills/environment/SKILL.md +6 -0
- package/Claude/skills/memory/SKILL.md +6 -0
- package/Claude/skills/project/SKILL.md +6 -0
- package/Claude/skills/secret/SKILL.md +85 -0
- package/Claude/skills/secret/secret.py +146 -0
- package/Claude/skills/skill-creator/SKILL.md +30 -0
- package/Claude/skills/task/SKILL.md +6 -0
- package/README.md +3 -0
- package/app/app.vue +1 -1
- package/app/components/dashboard/StatCards.vue +21 -2
- package/app/components/skills/Card.vue +82 -0
- package/app/components/skills/CreateModal.vue +156 -0
- package/app/components/skills/Editor.vue +135 -0
- package/app/components/skills/FileTree.vue +336 -0
- package/app/components/skills/LibraryCard.vue +122 -0
- package/app/components/skills/RenameModal.vue +84 -0
- package/app/components/usage/UsageCostChart.client.vue +59 -23
- package/app/components/usage/UsageCostChart.server.vue +1 -0
- package/app/components/usage/UsageSourceDonut.client.vue +17 -5
- package/app/components/usage/UsageSourceDonut.server.vue +1 -0
- package/app/components/usage/UsageTopConsumers.vue +13 -3
- package/app/composables/usePreferences.ts +9 -1
- package/app/layouts/auth.vue +0 -10
- package/app/layouts/dashboard.vue +7 -0
- package/app/pages/login.vue +18 -8
- package/app/pages/skills/[name].vue +210 -0
- package/app/pages/skills/index.vue +204 -0
- package/app/pages/skills/library.vue +209 -0
- package/app/pages/usage.vue +43 -16
- package/dist/cli/index.js +35 -36
- package/nuxt.config.ts +9 -0
- package/package.json +5 -3
- package/server/api/skills/[name]/export.get.ts +45 -0
- package/server/api/skills/[name]/files/create.post.ts +45 -0
- package/server/api/skills/[name]/files/delete.post.ts +45 -0
- package/server/api/skills/[name]/files/index.get.ts +28 -0
- package/server/api/skills/[name]/files/read.post.ts +41 -0
- package/server/api/skills/[name]/files/write.post.ts +42 -0
- package/server/api/skills/[name]/index.get.ts +54 -0
- package/server/api/skills/[name]/rename.post.ts +64 -0
- package/server/api/skills/[name]/toggle.post.ts +32 -0
- package/server/api/skills/create.post.ts +51 -0
- package/server/api/skills/generate.post.ts +126 -0
- package/server/api/skills/import.post.ts +87 -0
- package/server/api/skills/index.get.ts +57 -0
- package/server/api/skills/library/check-updates.get.ts +46 -0
- package/server/api/skills/library/index.get.ts +56 -0
- package/server/api/skills/library/install.post.ts +73 -0
- package/server/api/usage/stats.get.ts +4 -2
- package/server/db/schema.ts +17 -0
- package/server/drizzle/migrations/0012_good_deadpool.sql +12 -0
- package/server/drizzle/migrations/0013_swift_snowbird.sql +1 -0
- package/server/drizzle/migrations/meta/0012_snapshot.json +1713 -0
- package/server/drizzle/migrations/meta/0013_snapshot.json +1720 -0
- package/server/drizzle/migrations/meta/_journal.json +14 -0
- package/server/middleware/auth.ts +0 -1
- package/server/plugins/05.skills-catalog.ts +105 -0
- package/server/utils/skills-path.ts +197 -0
- package/shared/types/index.ts +65 -1
- package/.output/public/_nuxt/5ZXA0Ckq.js +0 -1
- package/.output/public/_nuxt/BIIJhjQO.js +0 -1
- package/.output/public/_nuxt/BIckl6wA.js +0 -1
- package/.output/public/_nuxt/BJ3o57WW.js +0 -1
- package/.output/public/_nuxt/BNetzZzF.js +0 -1
- package/.output/public/_nuxt/BS0ofHJK.js +0 -1
- package/.output/public/_nuxt/B_3_hrpn.js +0 -1
- package/.output/public/_nuxt/BaBZjmMC.js +0 -1
- package/.output/public/_nuxt/BaMqDm5u.js +0 -1
- package/.output/public/_nuxt/BhzMoffi.js +0 -1
- package/.output/public/_nuxt/BlhFigLL.js +0 -1
- package/.output/public/_nuxt/BoIxv-gM.js +0 -1
- package/.output/public/_nuxt/Br19oYkq.js +0 -1
- package/.output/public/_nuxt/C0kh_F7v.js +0 -1
- package/.output/public/_nuxt/C61KgSco.js +0 -1
- package/.output/public/_nuxt/CJUdYEdO.js +0 -1
- package/.output/public/_nuxt/CVJQGP1Q.js +0 -1
- package/.output/public/_nuxt/CWMUi89H.js +0 -1
- package/.output/public/_nuxt/Cdu2qGgq.js +0 -1
- package/.output/public/_nuxt/CeIu7z4p.js +0 -1
- package/.output/public/_nuxt/D2689qk4.js +0 -1
- package/.output/public/_nuxt/D31L7Ks6.js +0 -1
- package/.output/public/_nuxt/DB359q8R.js +0 -1
- package/.output/public/_nuxt/DHG66LPS.js +0 -1
- package/.output/public/_nuxt/DJ5V-y_x.js +0 -1
- package/.output/public/_nuxt/DLETdGFL.js +0 -1
- package/.output/public/_nuxt/DOICd-Ld.js +0 -1
- package/.output/public/_nuxt/DPEcH-gi.js +0 -65
- package/.output/public/_nuxt/Db8-_gO7.js +0 -1
- package/.output/public/_nuxt/DgV-EDJ9.js +0 -1
- package/.output/public/_nuxt/Dp2X5R2m.js +0 -1
- package/.output/public/_nuxt/DqB723Z0.js +0 -1
- package/.output/public/_nuxt/Q8Ps7oN5.js +0 -1
- package/.output/public/_nuxt/SXTDhzp6.js +0 -1
- package/.output/public/_nuxt/Sg2Lwc46.js +0 -1
- package/.output/public/_nuxt/_J_7XIn-.js +0 -1
- package/.output/public/_nuxt/builds/meta/a1e9100c-1a4f-4f7e-bb53-9dbe0d07effb.json +0 -1
- package/.output/public/_nuxt/entry.CGxIBGAf.css +0 -1
- package/.output/public/_nuxt/inmzPrjz.js +0 -1
- package/.output/public/_nuxt/oIX-ZDN6.js +0 -1
- package/.output/server/chunks/build/auth-CDHRohj4.mjs +0 -77
- package/.output/server/chunks/build/auth-CDHRohj4.mjs.map +0 -1
- package/.output/server/chunks/build/dashboard-YEscLBQN.mjs.map +0 -1
- package/.output/server/chunks/build/docs-Dk2JnYq3.mjs.map +0 -1
- package/.output/server/chunks/build/hooks-DP8WoUPS.mjs.map +0 -1
- package/.output/server/chunks/build/index-Ba_bPJgk.mjs.map +0 -1
- package/.output/server/chunks/build/tasks-DiOi1HG_.mjs.map +0 -1
- package/.output/server/chunks/build/usePreferences-CzC8fRzd.mjs.map +0 -1
- /package/.output/public/_nuxt/{useCopyToClipboard.Be_IvFWy.css → CodeEditor.Be_IvFWy.css} +0 -0
|
@@ -85,6 +85,20 @@
|
|
|
85
85
|
"when": 1771384095170,
|
|
86
86
|
"tag": "0011_tearful_johnny_storm",
|
|
87
87
|
"breakpoints": true
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"idx": 12,
|
|
91
|
+
"version": "7",
|
|
92
|
+
"when": 1771472797273,
|
|
93
|
+
"tag": "0012_good_deadpool",
|
|
94
|
+
"breakpoints": true
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"idx": 13,
|
|
98
|
+
"version": "7",
|
|
99
|
+
"when": 1771518918468,
|
|
100
|
+
"tag": "0013_swift_snowbird",
|
|
101
|
+
"breakpoints": true
|
|
88
102
|
}
|
|
89
103
|
]
|
|
90
104
|
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { eq } from 'drizzle-orm'
|
|
2
|
+
import { waitForDb } from '~~/server/utils/db-state'
|
|
3
|
+
import { getDb } from '~~/server/db'
|
|
4
|
+
import * as schema from '~~/server/db/schema'
|
|
5
|
+
|
|
6
|
+
const REGISTRY_URL = 'https://raw.githubusercontent.com/Patrity/cognova-skills/main/registry.json'
|
|
7
|
+
const SYNC_INTERVAL_MS = 30 * 60 * 1000 // 30 minutes
|
|
8
|
+
|
|
9
|
+
interface RegistryEntry {
|
|
10
|
+
name: string
|
|
11
|
+
description: string
|
|
12
|
+
version: string
|
|
13
|
+
author: string
|
|
14
|
+
tags: string[]
|
|
15
|
+
requiresSecrets: string[]
|
|
16
|
+
files: string[]
|
|
17
|
+
updatedAt: string
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
async function syncRegistry() {
|
|
21
|
+
try {
|
|
22
|
+
const response = await fetch(REGISTRY_URL)
|
|
23
|
+
if (!response.ok) {
|
|
24
|
+
console.warn(`[skills-catalog] Failed to fetch registry: ${response.status}`)
|
|
25
|
+
return
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const entries: RegistryEntry[] = await response.json()
|
|
29
|
+
if (!Array.isArray(entries)) {
|
|
30
|
+
console.warn('[skills-catalog] Invalid registry format')
|
|
31
|
+
return
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const db = getDb()
|
|
35
|
+
const now = new Date()
|
|
36
|
+
|
|
37
|
+
for (const entry of entries) {
|
|
38
|
+
if (!entry.name || !entry.description || !entry.version) continue
|
|
39
|
+
|
|
40
|
+
await db.insert(schema.skillsCatalog)
|
|
41
|
+
.values({
|
|
42
|
+
name: entry.name,
|
|
43
|
+
description: entry.description,
|
|
44
|
+
version: entry.version,
|
|
45
|
+
author: entry.author || '',
|
|
46
|
+
tags: entry.tags || [],
|
|
47
|
+
requiresSecrets: entry.requiresSecrets || [],
|
|
48
|
+
files: entry.files || [],
|
|
49
|
+
updatedAt: new Date(entry.updatedAt || now),
|
|
50
|
+
syncedAt: now
|
|
51
|
+
})
|
|
52
|
+
.onConflictDoUpdate({
|
|
53
|
+
target: schema.skillsCatalog.name,
|
|
54
|
+
set: {
|
|
55
|
+
description: entry.description,
|
|
56
|
+
version: entry.version,
|
|
57
|
+
author: entry.author || '',
|
|
58
|
+
tags: entry.tags || [],
|
|
59
|
+
requiresSecrets: entry.requiresSecrets || [],
|
|
60
|
+
files: entry.files || [],
|
|
61
|
+
updatedAt: new Date(entry.updatedAt || now),
|
|
62
|
+
syncedAt: now
|
|
63
|
+
}
|
|
64
|
+
})
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// Remove skills no longer in registry
|
|
68
|
+
const catalogItems = await db.query.skillsCatalog.findMany()
|
|
69
|
+
const registryNames = new Set(entries.map(e => e.name))
|
|
70
|
+
for (const item of catalogItems) {
|
|
71
|
+
if (!registryNames.has(item.name)) {
|
|
72
|
+
await db.delete(schema.skillsCatalog)
|
|
73
|
+
.where(eq(schema.skillsCatalog.id, item.id))
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
console.log(`[skills-catalog] Synced ${entries.length} skills from registry`)
|
|
78
|
+
} catch (error) {
|
|
79
|
+
console.warn('[skills-catalog] Registry sync failed:', error)
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
let syncTimer: ReturnType<typeof setInterval> | null = null
|
|
84
|
+
|
|
85
|
+
export default defineNitroPlugin(async (nitroApp) => {
|
|
86
|
+
const dbAvailable = await waitForDb(10000)
|
|
87
|
+
if (!dbAvailable) {
|
|
88
|
+
console.log('[skills-catalog] Database not available, skipping')
|
|
89
|
+
return
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Initial sync after a short delay
|
|
93
|
+
setTimeout(() => syncRegistry(), 10000)
|
|
94
|
+
|
|
95
|
+
// Periodic sync
|
|
96
|
+
syncTimer = setInterval(() => syncRegistry(), SYNC_INTERVAL_MS)
|
|
97
|
+
|
|
98
|
+
nitroApp.hooks.hook('close', () => {
|
|
99
|
+
if (syncTimer) {
|
|
100
|
+
clearInterval(syncTimer)
|
|
101
|
+
syncTimer = null
|
|
102
|
+
}
|
|
103
|
+
console.log('[skills-catalog] Cleanup complete')
|
|
104
|
+
})
|
|
105
|
+
})
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { homedir } from 'os'
|
|
2
|
+
import { join } from 'path'
|
|
3
|
+
import type { SkillMeta, SkillFile } from '~~/shared/types'
|
|
4
|
+
|
|
5
|
+
const CORE_SKILLS = ['memory', 'task', 'project', 'secret', 'environment']
|
|
6
|
+
|
|
7
|
+
export function getSkillsDir(): string {
|
|
8
|
+
return join(homedir(), '.claude', 'skills')
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function getInactiveSkillsDir(): string {
|
|
12
|
+
return join(homedir(), '.claude', 'inactive-skills')
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function getSkillPath(name: string, active: boolean = true): string {
|
|
16
|
+
const base = active ? getSkillsDir() : getInactiveSkillsDir()
|
|
17
|
+
return join(base, name)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function isCoreSkill(name: string): boolean {
|
|
21
|
+
return CORE_SKILLS.includes(name)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Parse SKILL.md YAML frontmatter into SkillMeta.
|
|
26
|
+
* Handles both top-level and metadata-nested custom fields.
|
|
27
|
+
*/
|
|
28
|
+
export function parseSkillFrontmatter(content: string): SkillMeta {
|
|
29
|
+
const defaults: SkillMeta = {
|
|
30
|
+
name: '',
|
|
31
|
+
description: '',
|
|
32
|
+
version: '',
|
|
33
|
+
author: '',
|
|
34
|
+
tags: [],
|
|
35
|
+
allowedTools: [],
|
|
36
|
+
requiresSecrets: [],
|
|
37
|
+
repository: '',
|
|
38
|
+
installedFrom: '',
|
|
39
|
+
disableModelInvocation: false,
|
|
40
|
+
userInvocable: true,
|
|
41
|
+
context: '',
|
|
42
|
+
agent: ''
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const match = content.match(/^---\n([\s\S]*?)\n---/)
|
|
46
|
+
if (!match?.[1]) return defaults
|
|
47
|
+
|
|
48
|
+
const yaml = match[1]
|
|
49
|
+
const result = { ...defaults }
|
|
50
|
+
|
|
51
|
+
// Simple YAML parser for flat + one-level nested keys
|
|
52
|
+
let inMetadata = false
|
|
53
|
+
for (const line of yaml.split('\n')) {
|
|
54
|
+
// Check for metadata block
|
|
55
|
+
if (line === 'metadata:') {
|
|
56
|
+
inMetadata = true
|
|
57
|
+
continue
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Nested under metadata (indented)
|
|
61
|
+
if (inMetadata && /^\s{2}\S/.test(line)) {
|
|
62
|
+
const nested = line.trim()
|
|
63
|
+
const colonIdx = nested.indexOf(':')
|
|
64
|
+
if (colonIdx === -1) continue
|
|
65
|
+
const key = nested.slice(0, colonIdx).trim()
|
|
66
|
+
const val = nested.slice(colonIdx + 1).trim()
|
|
67
|
+
assignMetaField(result, key, val)
|
|
68
|
+
continue
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// End of metadata block if we hit a non-indented line
|
|
72
|
+
if (inMetadata && /^\S/.test(line))
|
|
73
|
+
inMetadata = false
|
|
74
|
+
|
|
75
|
+
// Top-level key
|
|
76
|
+
const colonIdx = line.indexOf(':')
|
|
77
|
+
if (colonIdx === -1) continue
|
|
78
|
+
const key = line.slice(0, colonIdx).trim()
|
|
79
|
+
const val = line.slice(colonIdx + 1).trim()
|
|
80
|
+
assignTopLevelField(result, key, val)
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return result
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function assignTopLevelField(result: SkillMeta, key: string, val: string): void {
|
|
87
|
+
switch (key) {
|
|
88
|
+
case 'name':
|
|
89
|
+
result.name = unquote(val)
|
|
90
|
+
break
|
|
91
|
+
case 'description':
|
|
92
|
+
result.description = unquote(val)
|
|
93
|
+
break
|
|
94
|
+
case 'allowed-tools':
|
|
95
|
+
result.allowedTools = val.split(',').map(s => s.trim()).filter(Boolean)
|
|
96
|
+
break
|
|
97
|
+
case 'disable-model-invocation':
|
|
98
|
+
result.disableModelInvocation = val === 'true'
|
|
99
|
+
break
|
|
100
|
+
case 'user-invocable':
|
|
101
|
+
result.userInvocable = val !== 'false'
|
|
102
|
+
break
|
|
103
|
+
case 'context':
|
|
104
|
+
result.context = unquote(val)
|
|
105
|
+
break
|
|
106
|
+
case 'agent':
|
|
107
|
+
result.agent = unquote(val)
|
|
108
|
+
break
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
function assignMetaField(result: SkillMeta, key: string, val: string): void {
|
|
113
|
+
switch (key) {
|
|
114
|
+
case 'version':
|
|
115
|
+
result.version = unquote(val)
|
|
116
|
+
break
|
|
117
|
+
case 'author':
|
|
118
|
+
result.author = unquote(val)
|
|
119
|
+
break
|
|
120
|
+
case 'tags':
|
|
121
|
+
result.tags = parseYamlArray(val)
|
|
122
|
+
break
|
|
123
|
+
case 'requires-secrets':
|
|
124
|
+
result.requiresSecrets = parseYamlArray(val)
|
|
125
|
+
break
|
|
126
|
+
case 'repository':
|
|
127
|
+
result.repository = unquote(val)
|
|
128
|
+
break
|
|
129
|
+
case 'installed-from':
|
|
130
|
+
result.installedFrom = unquote(val)
|
|
131
|
+
break
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
function unquote(s: string): string {
|
|
136
|
+
if ((s.startsWith('"') && s.endsWith('"'))
|
|
137
|
+
|| (s.startsWith('\'') && s.endsWith('\'')))
|
|
138
|
+
return s.slice(1, -1)
|
|
139
|
+
return s
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
function parseYamlArray(val: string): string[] {
|
|
143
|
+
// Handle inline array: ["key1", "key2"] or [key1, key2]
|
|
144
|
+
if (val.startsWith('[') && val.endsWith(']')) {
|
|
145
|
+
const inner = val.slice(1, -1).trim()
|
|
146
|
+
if (!inner) return []
|
|
147
|
+
return inner.split(',').map(s => unquote(s.trim())).filter(Boolean)
|
|
148
|
+
}
|
|
149
|
+
return []
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Build a file tree for a skill directory.
|
|
154
|
+
* Excludes __pycache__ and .pyc files.
|
|
155
|
+
*/
|
|
156
|
+
export async function buildSkillFileTree(dirPath: string): Promise<SkillFile[]> {
|
|
157
|
+
const { readdir, stat } = await import('fs/promises')
|
|
158
|
+
const entries = await readdir(dirPath).catch(() => [])
|
|
159
|
+
const files: SkillFile[] = []
|
|
160
|
+
|
|
161
|
+
for (const entry of entries) {
|
|
162
|
+
if (entry === '__pycache__' || entry.endsWith('.pyc'))
|
|
163
|
+
continue
|
|
164
|
+
|
|
165
|
+
const fullPath = join(dirPath, entry)
|
|
166
|
+
const stats = await stat(fullPath).catch(() => null)
|
|
167
|
+
if (!stats) continue
|
|
168
|
+
|
|
169
|
+
if (stats.isDirectory()) {
|
|
170
|
+
const children = await buildSkillFileTree(fullPath)
|
|
171
|
+
files.push({ name: entry, path: entry, type: 'directory', children })
|
|
172
|
+
} else {
|
|
173
|
+
files.push({ name: entry, path: entry, type: 'file' })
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
// Sort: directories first, then alphabetical
|
|
178
|
+
files.sort((a, b) => {
|
|
179
|
+
if (a.type !== b.type) return a.type === 'directory' ? -1 : 1
|
|
180
|
+
return a.name.localeCompare(b.name)
|
|
181
|
+
})
|
|
182
|
+
|
|
183
|
+
return files
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Validate a skill name for filesystem safety.
|
|
188
|
+
*/
|
|
189
|
+
export function validateSkillName(name: string): string | null {
|
|
190
|
+
if (!name || name.length > 64)
|
|
191
|
+
return 'Name must be 1-64 characters'
|
|
192
|
+
if (!/^[a-z0-9][a-z0-9_-]*$/.test(name))
|
|
193
|
+
return 'Name must start with a letter/digit and contain only lowercase letters, digits, hyphens, and underscores'
|
|
194
|
+
if (name === '_lib')
|
|
195
|
+
return '_lib is reserved'
|
|
196
|
+
return null
|
|
197
|
+
}
|
package/shared/types/index.ts
CHANGED
|
@@ -345,6 +345,7 @@ export interface UserSettings {
|
|
|
345
345
|
// === Agent Stats ===
|
|
346
346
|
|
|
347
347
|
export type StatsPeriod = '24h' | '7d' | '30d'
|
|
348
|
+
export type UsageDisplayMode = 'cost' | 'tokens'
|
|
348
349
|
|
|
349
350
|
export interface DailyRunData {
|
|
350
351
|
date: string
|
|
@@ -412,7 +413,7 @@ export interface UsageStats {
|
|
|
412
413
|
avgCostPerCall: number
|
|
413
414
|
dailyUsage: DailyUsageData[]
|
|
414
415
|
bySource: { source: TokenUsageSource, cost: number, calls: number, tokens: number }[]
|
|
415
|
-
topConsumers: { name: string, source: TokenUsageSource, cost: number, calls: number }[]
|
|
416
|
+
topConsumers: { name: string, source: TokenUsageSource, cost: number, calls: number, tokens: number }[]
|
|
416
417
|
}
|
|
417
418
|
|
|
418
419
|
// === Dashboard ===
|
|
@@ -454,6 +455,69 @@ export interface DashboardOverview {
|
|
|
454
455
|
}
|
|
455
456
|
}
|
|
456
457
|
|
|
458
|
+
// === Skills ===
|
|
459
|
+
|
|
460
|
+
export interface SkillMeta {
|
|
461
|
+
name: string
|
|
462
|
+
description: string
|
|
463
|
+
version: string
|
|
464
|
+
author: string
|
|
465
|
+
tags: string[]
|
|
466
|
+
allowedTools: string[]
|
|
467
|
+
requiresSecrets: string[]
|
|
468
|
+
repository: string
|
|
469
|
+
installedFrom: string
|
|
470
|
+
disableModelInvocation: boolean
|
|
471
|
+
userInvocable: boolean
|
|
472
|
+
context: string
|
|
473
|
+
agent: string
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
export interface SkillListItem {
|
|
477
|
+
name: string
|
|
478
|
+
description: string
|
|
479
|
+
version: string
|
|
480
|
+
author: string
|
|
481
|
+
active: boolean
|
|
482
|
+
core: boolean
|
|
483
|
+
allowedTools: string[]
|
|
484
|
+
requiresSecrets: string[]
|
|
485
|
+
installedFrom: string
|
|
486
|
+
fileCount: number
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
export interface SkillDetail extends SkillListItem {
|
|
490
|
+
meta: SkillMeta
|
|
491
|
+
files: SkillFile[]
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
export interface SkillFile {
|
|
495
|
+
name: string
|
|
496
|
+
path: string
|
|
497
|
+
type: 'file' | 'directory'
|
|
498
|
+
children?: SkillFile[]
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
// === Skills Library ===
|
|
502
|
+
|
|
503
|
+
// First tag must be 'community' or 'official'. Up to 4 additional free-form tags.
|
|
504
|
+
export type SkillSourceTag = 'community' | 'official'
|
|
505
|
+
|
|
506
|
+
export interface SkillCatalogItem {
|
|
507
|
+
id: string
|
|
508
|
+
name: string
|
|
509
|
+
description: string
|
|
510
|
+
version: string
|
|
511
|
+
author: string
|
|
512
|
+
tags: string[]
|
|
513
|
+
requiresSecrets: string[]
|
|
514
|
+
files: string[]
|
|
515
|
+
updatedAt: string
|
|
516
|
+
installed?: boolean
|
|
517
|
+
installedVersion?: string
|
|
518
|
+
hasUpdate?: boolean
|
|
519
|
+
}
|
|
520
|
+
|
|
457
521
|
// === Hook Events ===
|
|
458
522
|
|
|
459
523
|
export type HookEventType
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{bk as K,c as L,bl as N,e as E,Y as R,f as M,a5 as x,aP as U,bm as C,b9 as q,k as W,a1 as I,b3 as $,bn as H,a as Y,aW as j,af as X,y as B,Q as G,R as Q,S as V,a3 as z,C as J,a2 as Z,bo as b,$ as k,bp as A,bq as ee,br as te,bs as F,bt as _,bu as ne}from"./BxXOsXrM.js";const re=K(()=>{const e=E(new Map),t=E(),n=L(()=>{for(const v of e.value.values())if(v)return!0;return!1}),o=R({scrollBody:E(!0)});let c=null;const p=()=>{document.body.style.paddingRight="",document.body.style.marginRight="",document.body.style.pointerEvents="",document.documentElement.style.removeProperty("--scrollbar-width"),document.body.style.overflow=t.value??"",C&&c?.(),t.value=void 0};return M(n,(v,m)=>{if(!x)return;if(!v){m&&p();return}t.value===void 0&&(t.value=document.body.style.overflow);const l=window.innerWidth-document.documentElement.clientWidth,h={padding:l,margin:0},a=o.scrollBody?.value?typeof o.scrollBody.value=="object"?U({padding:o.scrollBody.value.padding===!0?l:o.scrollBody.value.padding,margin:o.scrollBody.value.margin===!0?l:o.scrollBody.value.margin},h):h:{padding:0,margin:0};l>0&&(document.body.style.paddingRight=typeof a.padding=="number"?`${a.padding}px`:String(a.padding),document.body.style.marginRight=typeof a.margin=="number"?`${a.margin}px`:String(a.margin),document.documentElement.style.setProperty("--scrollbar-width",`${l}px`),document.body.style.overflow="hidden"),C&&(c=q(document,"touchmove",r=>ae(r),{passive:!1})),W(()=>{document.body.style.pointerEvents="none",document.body.style.overflow="hidden"})},{immediate:!0,flush:"sync"}),e});function pe(e){const t=Math.random().toString(36).substring(2,7),n=re();n.value.set(t,e??!1);const o=L({get:()=>n.value.get(t)??!1,set:c=>n.value.set(t,c)});return N(()=>{n.value.delete(t)}),o}function D(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth<e.scrollWidth||t.overflowY==="auto"&&e.clientHeight<e.scrollHeight)return!0;{const n=e.parentNode;return!(n instanceof Element)||n.tagName==="BODY"?!1:D(n)}}function ae(e){const t=e||window.event,n=t.target;return n instanceof Element&&D(n)?!1:t.touches.length>1?!0:(t.preventDefault&&t.cancelable&&t.preventDefault(),!1)}var oe=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},g=new WeakMap,w=new WeakMap,S={},O=0,P=function(e){return e&&(e.host||P(e.parentNode))},se=function(e,t){return t.map(function(n){if(e.contains(n))return n;var o=P(n);return o&&e.contains(o)?o:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},ue=function(e,t,n,o){var c=se(t,Array.isArray(e)?e:[e]);S[n]||(S[n]=new WeakMap);var p=S[n],v=[],m=new Set,l=new Set(c),h=function(r){!r||m.has(r)||(m.add(r),h(r.parentNode))};c.forEach(h);var a=function(r){!r||l.has(r)||Array.prototype.forEach.call(r.children,function(s){if(m.has(s))a(s);else try{var d=s.getAttribute(o),u=d!==null&&d!=="false",i=(g.get(s)||0)+1,f=(p.get(s)||0)+1;g.set(s,i),p.set(s,f),v.push(s),i===1&&u&&w.set(s,!0),f===1&&s.setAttribute(n,"true"),u||s.setAttribute(o,"true")}catch(y){console.error("aria-hidden: cannot operate on ",s,y)}})};return a(t),m.clear(),O++,function(){v.forEach(function(r){var s=g.get(r)-1,d=p.get(r)-1;g.set(r,s),p.set(r,d),s||(w.has(r)||r.removeAttribute(o),w.delete(r)),d||r.removeAttribute(n)}),O--,O||(g=new WeakMap,g=new WeakMap,w=new WeakMap,S={})}},ie=function(e,t,n){n===void 0&&(n="data-aria-hidden");var o=Array.from(Array.isArray(e)?e:[e]),c=oe(e);return c?(o.push.apply(o,Array.from(c.querySelectorAll("[aria-live], script"))),ue(o,c,n,"aria-hidden")):function(){return null}};function me(e){let t;M(()=>$(e),n=>{n?t=ie(n):t&&t()}),I(()=>{t&&t()})}const ce=H(()=>E([]));function le(){const e=ce();return{add(t){const n=e.value[0];t!==n&&n?.pause(),e.value=T(e.value,t),e.value.unshift(t)},remove(t){e.value=T(e.value,t),e.value[0]?.resume()}}}function T(e,t){const n=[...e],o=n.indexOf(t);return o!==-1&&n.splice(o,1),n}function de(e){return e.filter(t=>t.tagName!=="A")}var fe=Y({__name:"FocusScope",props:{loop:{type:Boolean,required:!1,default:!1},trapped:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["mountAutoFocus","unmountAutoFocus"],setup(e,{emit:t}){const n=e,o=t,{currentRef:c,currentElement:p}=j(),v=E(null),m=le(),l=X({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}});B(a=>{if(!x)return;const r=p.value;if(!n.trapped)return;function s(f){if(l.paused||!r)return;const y=f.target;r.contains(y)?v.value=y:b(v.value,{select:!0})}function d(f){if(l.paused||!r)return;const y=f.relatedTarget;y!==null&&(r.contains(y)||b(v.value,{select:!0}))}function u(f){r.contains(v.value)||b(r)}document.addEventListener("focusin",s),document.addEventListener("focusout",d);const i=new MutationObserver(u);r&&i.observe(r,{childList:!0,subtree:!0}),a(()=>{document.removeEventListener("focusin",s),document.removeEventListener("focusout",d),i.disconnect()})}),B(async a=>{const r=p.value;if(await W(),!r)return;m.add(l);const s=k();if(!r.contains(s)){const u=new CustomEvent(A,_);r.addEventListener(A,i=>o("mountAutoFocus",i)),r.dispatchEvent(u),u.defaultPrevented||(ee(de(te(r)),{select:!0}),k()===s&&b(r))}a(()=>{r.removeEventListener(A,f=>o("mountAutoFocus",f));const u=new CustomEvent(F,_),i=f=>{o("unmountAutoFocus",f)};r.addEventListener(F,i),r.dispatchEvent(u),setTimeout(()=>{u.defaultPrevented||b(s??document.body,{select:!0}),r.removeEventListener(F,i),m.remove(l)},0)})});function h(a){if(!n.loop&&!n.trapped||l.paused)return;const r=a.key==="Tab"&&!a.altKey&&!a.ctrlKey&&!a.metaKey,s=k();if(r&&s){const d=a.currentTarget,[u,i]=ne(d);u&&i?!a.shiftKey&&s===i?(a.preventDefault(),n.loop&&b(u,{select:!0})):a.shiftKey&&s===u&&(a.preventDefault(),n.loop&&b(i,{select:!0})):s===d&&a.preventDefault()}}return(a,r)=>(Q(),G(J(Z),{ref_key:"currentRef",ref:c,tabindex:"-1","as-child":a.asChild,as:a.as,onKeydown:h},{default:V(()=>[z(a.$slots,"default")]),_:3},8,["as-child","as"]))}}),ye=fe;export{ye as F,pe as a,me as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{aM as Z,a as j,aW as _,aL as ue,c as z,a6 as ae,Q as v,R as u,S as q,a3 as y,a7 as B,C as t,V as I,bh as L,al as qe,as as de,a2 as D,a4 as ke,T as A,ba as Ve,aK as xe,e as O,f as ce,aN as we,q as pe,a1 as $e,$ as Ce,k as Ie,ao as te,am as fe,ap as Se,N as ee,O as Be,aD as me,b4 as ve,X as ze,aj as N,a9 as be,G as E,U as x,_ as X,a8 as K,ac as G,aE as Fe,ag as J,ah as Y,b6 as Re,af as Pe,L as Ee,b5 as le,W as H,by as Me,bM as se,bN as Q,ae as Ae,y as Ne,n as re}from"./BxXOsXrM.js";import{_ as De}from"./YuTZB7sD.js";import{_ as Ue}from"./BaMqDm5u.js";import{L as ie,_ as Oe}from"./BS0ofHJK.js";import{i as oe}from"./g20UHUCv.js";import{u as je,_ as ne}from"./CeIu7z4p.js";import{R as Te}from"./BAIz-dEB.js";import{V as ge}from"./DJMS2og1.js";import{_ as Le}from"./_J_7XIn-.js";import{u as Ke}from"./Cvp7FI3T.js";import{u as Ge}from"./C6Y-ieo6.js";import{u as We}from"./DAQhmSv4.js";import"./Cdt3I3Go.js";import"./DGX0tzL8.js";import"./DqB723Z0.js";import"./DB359q8R.js";import"./5ZXA0Ckq.js";import"./Nb2jBtYT.js";import"./_CYZi8HN.js";import"./BJ3o57WW.js";import"./iBGCpHdw.js";const[He]=Z("CheckboxGroupRoot");function W(a){return a==="indeterminate"}function he(a){return W(a)?"indeterminate":a?"checked":"unchecked"}const[Qe,Xe]=Z("CheckboxRoot");var Je=j({inheritAttrs:!1,__name:"CheckboxRoot",props:{defaultValue:{type:[Boolean,String],required:!1},modelValue:{type:[Boolean,String,null],required:!1,default:void 0},disabled:{type:Boolean,required:!1},value:{type:null,required:!1,default:"on"},id:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue"],setup(a,{emit:m}){const e=a,s=m,{forwardRef:n,currentElement:k}=_(),p=He(null),o=ue(e,"modelValue",s,{defaultValue:e.defaultValue,passive:e.modelValue===void 0}),b=z(()=>p?.disabled.value||e.disabled),f=z(()=>ae(p?.modelValue.value)?o.value==="indeterminate"?"indeterminate":o.value:oe(p.modelValue.value,e.value));function R(){if(ae(p?.modelValue.value))o.value=W(o.value)?!0:!o.value;else{const l=[...p.modelValue.value||[]];if(oe(l,e.value)){const c=l.findIndex(r=>ke(r,e.value));l.splice(c,1)}else l.push(e.value);p.modelValue.value=l}}const F=je(k),h=z(()=>e.id&&k.value?document.querySelector(`[for="${e.id}"]`)?.innerText:void 0);return Xe({disabled:b,state:f}),(l,c)=>(u(),v(de(t(p)?.rovingFocus.value?t(Te):t(D)),I(l.$attrs,{id:l.id,ref:t(n),role:"checkbox","as-child":l.asChild,as:l.as,type:l.as==="button"?"button":void 0,"aria-checked":t(W)(f.value)?"mixed":f.value,"aria-required":l.required,"aria-label":l.$attrs["aria-label"]||h.value,"data-state":t(he)(f.value),"data-disabled":b.value?"":void 0,disabled:b.value,focusable:t(p)?.rovingFocus.value?!b.value:void 0,onKeydown:L(qe(()=>{},["prevent"]),["enter"]),onClick:R}),{default:q(()=>[y(l.$slots,"default",{modelValue:t(o),state:f.value}),t(F)&&l.name&&!t(p)?(u(),v(t(ge),{key:0,type:"checkbox",checked:!!f.value,name:l.name,value:l.value,disabled:b.value,required:l.required},null,8,["checked","name","value","disabled","required"])):B("v-if",!0)]),_:3},16,["id","as-child","as","type","aria-checked","aria-required","aria-label","data-state","data-disabled","disabled","focusable","onKeydown"]))}}),Ye=Je,Ze=j({__name:"CheckboxIndicator",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(a){const{forwardRef:m}=_(),e=Qe();return(s,n)=>(u(),v(t(Ve),{present:s.forceMount||t(W)(t(e).state.value)||t(e).state.value===!0},{default:q(()=>[A(t(D),I({ref:t(m),"data-state":t(he)(t(e).state.value),"data-disabled":t(e).disabled.value?"":void 0,style:{pointerEvents:"none"},"as-child":s.asChild,as:s.as},s.$attrs),{default:q(()=>[y(s.$slots,"default")]),_:3},16,["data-state","data-disabled","as-child","as"])]),_:3},8,["present"]))}}),_e=Ze;const[ea,aa]=Z("PinInputRoot");var ta=j({inheritAttrs:!1,__name:"PinInputRoot",props:{modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},placeholder:{type:String,required:!1,default:""},mask:{type:Boolean,required:!1},otp:{type:Boolean,required:!1},type:{type:null,required:!1,default:"text"},dir:{type:String,required:!1},disabled:{type:Boolean,required:!1},id:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue","complete"],setup(a,{emit:m}){const e=a,s=m,{mask:n,otp:k,placeholder:p,type:o,disabled:b,dir:f}=xe(e),{forwardRef:R}=_(),F=Ke(f),h=ue(e,"modelValue",s,{defaultValue:e.defaultValue??[],passive:!0,deep:!0}),l=z(()=>Array.isArray(h.value)?[...h.value]:[]),c=O(new Set);function r(C){c.value.add(C)}const g=z(()=>e.type==="number"),w=z(()=>l.value.filter($=>!!$||g.value&&$===0).length===c.value.size);return ce(h,()=>{w.value&&s("complete",h.value)},{deep:!0}),aa({modelValue:h,currentModelValue:l,mask:n,otp:k,placeholder:p,type:o,dir:F,disabled:b,isCompleted:w,inputElements:c,onInputElementChange:r,isNumericMode:g}),(C,$)=>(u(),v(t(D),I(C.$attrs,{ref:t(R),dir:t(F),"data-complete":w.value?"":void 0,"data-disabled":t(b)?"":void 0}),{default:q(()=>[y(C.$slots,"default",{modelValue:t(h)}),A(ge,{id:C.id,as:"input",feature:"focusable",tabindex:"-1",value:l.value.join(""),name:C.name??"",disabled:t(b),required:C.required,onFocus:$[0]||($[0]=P=>Array.from(c.value)?.[0]?.focus())},null,8,["id","value","name","disabled","required"])]),_:3},16,["dir","data-complete","data-disabled"]))}}),la=ta,sa=j({__name:"PinInputInput",props:{index:{type:Number,required:!0},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"input"}},setup(a){const m=a,e=ea(),s=z(()=>Array.from(e.inputElements.value)),n=z(()=>e.currentModelValue.value[m.index]),k=z(()=>m.disabled||e.disabled.value),p=z(()=>e.otp.value),o=z(()=>e.mask.value),{primitiveElement:b,currentElement:f}=we();function R(i){const d=i.target;if((i.data?.length??0)>1){C(d.value);return}if(e.isNumericMode.value&&!/^\d*$/.test(d.value)){d.value=d.value.replace(/\D/g,"");return}d.value=i.data||d.value.slice(-1),P(m.index,d.value);const V=s.value[m.index+1];V&&V.focus()}function F(){const i=f.value;Ie(()=>{i&&!i.value&&(i.placeholder=e.placeholder.value)})}function h(i){Ge(i,Ce(),void 0,{itemsArray:s.value,focus:!0,loop:!1,arrowKeyOptions:"horizontal",dir:e.dir.value})}function l(i){if(i.preventDefault(),i.target.value)P(m.index,"");else{const S=s.value[m.index-1];S&&(S.focus(),P(m.index-1,""))}}function c(i){i.key==="Delete"&&(i.preventDefault(),P(m.index,""))}function r(i){const d=i.target;d.setSelectionRange(1,1),d.value||(d.placeholder=""),setTimeout(()=>{d.value||(d.placeholder="")})}function g(i){F()}function w(i){i.preventDefault();const d=i.clipboardData;if(!d)return;const V=d.getData("text");C(V)}function C(i){const d=[...e.currentModelValue.value],V=i.length>=s.value.length?0:m.index,S=Math.min(V+i.length,s.value.length);for(let M=V;M<S;M++){const T=s.value[M],U=i[M-V];e.isNumericMode.value&&!/^\d*$/.test(U)||(d[M]=U,T.focus())}e.modelValue.value=d,s.value[S]?.focus()}function $(i){let d=i.length-1;for(;d>=0&&i[d]==="";)i.pop(),d--;return i}function P(i,d){const V=[...e.currentModelValue.value];if(e.isNumericMode.value){const S=+d;d===""||isNaN(S)?delete V[i]:V[i]=S}else V[i]=d;e.modelValue.value=$(V)}return ce(n,()=>{n.value||F()}),pe(()=>{e.onInputElementChange(f.value)}),$e(()=>{e.inputElements?.value.delete(f.value)}),(i,d)=>(u(),v(t(D),{ref_key:"primitiveElement",ref:b,autocapitalize:"none",as:i.as,"as-child":i.asChild,autocomplete:p.value?"one-time-code":"false",type:o.value?"password":"text",inputmode:t(e).isNumericMode.value?"numeric":"text",pattern:t(e).isNumericMode.value?"[0-9]*":void 0,placeholder:t(e).placeholder.value,value:n.value,disabled:k.value,"data-disabled":k.value?"":void 0,"data-complete":t(e).isCompleted.value?"":void 0,"aria-label":`pin input ${i.index+1} of ${s.value.length}`,onInput:d[0]||(d[0]=V=>R(V)),onKeydown:[L(h,["left","right","up","down","home","end"]),L(l,["backspace"]),L(c,["delete"])],onFocus:r,onBlur:g,onPaste:w},{default:q(()=>[y(i.$slots,"default")]),_:3},8,["as","as-child","autocomplete","type","inputmode","pattern","placeholder","value","disabled","data-disabled","data-complete","aria-label"]))}}),ra=sa;const ia={slots:{root:"relative flex items-start",container:"flex items-center",base:"rounded-sm ring ring-inset ring-accented overflow-hidden focus-visible:outline-2 focus-visible:outline-offset-2",indicator:"flex items-center justify-center size-full text-inverted",icon:"shrink-0 size-full",wrapper:"w-full",label:"block font-medium text-default",description:"text-muted"},variants:{color:{primary:{base:"focus-visible:outline-primary",indicator:"bg-primary"},secondary:{base:"focus-visible:outline-secondary",indicator:"bg-secondary"},success:{base:"focus-visible:outline-success",indicator:"bg-success"},info:{base:"focus-visible:outline-info",indicator:"bg-info"},warning:{base:"focus-visible:outline-warning",indicator:"bg-warning"},error:{base:"focus-visible:outline-error",indicator:"bg-error"},neutral:{base:"focus-visible:outline-inverted",indicator:"bg-inverted"}},variant:{list:{root:""},card:{root:"border border-muted rounded-lg"}},indicator:{start:{root:"flex-row",wrapper:"ms-2"},end:{root:"flex-row-reverse",wrapper:"me-2"},hidden:{base:"sr-only",wrapper:"text-center"}},size:{xs:{base:"size-3",container:"h-4",wrapper:"text-xs"},sm:{base:"size-3.5",container:"h-4",wrapper:"text-xs"},md:{base:"size-4",container:"h-5",wrapper:"text-sm"},lg:{base:"size-4.5",container:"h-5",wrapper:"text-sm"},xl:{base:"size-5",container:"h-6",wrapper:"text-base"}},required:{true:{label:"after:content-['*'] after:ms-0.5 after:text-error"}},disabled:{true:{root:"opacity-75",base:"cursor-not-allowed",label:"cursor-not-allowed",description:"cursor-not-allowed"}},checked:{true:""}},compoundVariants:[{size:"xs",variant:"card",class:{root:"p-2.5"}},{size:"sm",variant:"card",class:{root:"p-3"}},{size:"md",variant:"card",class:{root:"p-3.5"}},{size:"lg",variant:"card",class:{root:"p-4"}},{size:"xl",variant:"card",class:{root:"p-4.5"}},{color:"primary",variant:"card",class:{root:"has-data-[state=checked]:border-primary"}},{color:"secondary",variant:"card",class:{root:"has-data-[state=checked]:border-secondary"}},{color:"success",variant:"card",class:{root:"has-data-[state=checked]:border-success"}},{color:"info",variant:"card",class:{root:"has-data-[state=checked]:border-info"}},{color:"warning",variant:"card",class:{root:"has-data-[state=checked]:border-warning"}},{color:"error",variant:"card",class:{root:"has-data-[state=checked]:border-error"}},{color:"neutral",variant:"card",class:{root:"has-data-[state=checked]:border-inverted"}},{variant:"card",disabled:!0,class:{root:"cursor-not-allowed"}}],defaultVariants:{size:"md",color:"primary",variant:"list",indicator:"start"}},oa=Object.assign({inheritAttrs:!1},{__name:"UCheckbox",props:te({as:{type:null,required:!1},label:{type:String,required:!1},description:{type:String,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},indicator:{type:null,required:!1},icon:{type:null,required:!1},indeterminateIcon:{type:null,required:!1},class:{type:null,required:!1},ui:{type:null,required:!1},disabled:{type:Boolean,required:!1},required:{type:Boolean,required:!1},name:{type:String,required:!1},value:{type:null,required:!1},id:{type:String,required:!1},defaultValue:{type:[Boolean,String],required:!1}},{modelValue:{type:[Boolean,String],default:void 0},modelModifiers:{}}),emits:te(["change"],["update:modelValue"]),setup(a,{emit:m}){const e=a,s=fe(),n=m,k=Se(a,"modelValue",{type:[Boolean,String],default:void 0}),p=ee(),o=Be(me(e,"required","value","defaultValue")),{id:b,emitFormChange:f,emitFormInput:R,size:F,color:h,name:l,disabled:c,ariaAttrs:r}=ve(e),g=b.value??ze(),w=z(()=>N({extend:N(ia),...p.ui?.checkbox||{}})({size:F.value,color:h.value,variant:e.variant,indicator:e.indicator,required:e.required,disabled:c.value}));function C($){const P=new Event("change",{target:{value:$}});n("change",P),f(),R()}return($,P)=>(u(),v(t(D),{as:!a.variant||a.variant==="list"?a.as:t(ie),"data-slot":"root",class:x(w.value.root({class:[e.ui?.root,e.class]}))},{default:q(()=>[be("div",{"data-slot":"container",class:x(w.value.container({class:e.ui?.container}))},[A(t(Ye),I({id:t(g)},{...t(o),...$.$attrs,...t(r)},{modelValue:k.value,"onUpdate:modelValue":[P[0]||(P[0]=i=>k.value=i),C],name:t(l),disabled:t(c),"data-slot":"base",class:w.value.base({class:e.ui?.base})}),{default:q(({modelValue:i})=>[A(t(_e),{"data-slot":"indicator",class:x(w.value.indicator({class:e.ui?.indicator}))},{default:q(()=>[i==="indeterminate"?(u(),v(X,{key:0,name:a.indeterminateIcon||t(p).ui.icons.minus,"data-slot":"icon",class:x(w.value.icon({class:e.ui?.icon}))},null,8,["name","class"])):(u(),v(X,{key:1,name:a.icon||t(p).ui.icons.check,"data-slot":"icon",class:x(w.value.icon({class:e.ui?.icon}))},null,8,["name","class"]))]),_:2},1032,["class"])]),_:1},16,["id","modelValue","name","disabled","class"])],2),a.label||s.label||a.description||s.description?(u(),E("div",{key:0,"data-slot":"wrapper",class:x(w.value.wrapper({class:e.ui?.wrapper}))},[a.label||s.label?(u(),v(de(!a.variant||a.variant==="list"?t(ie):"p"),{key:0,for:t(g),"data-slot":"label",class:x(w.value.label({class:e.ui?.label}))},{default:q(()=>[y($.$slots,"label",{label:a.label},()=>[K(G(a.label),1)])]),_:3},8,["for","class"])):B("",!0),a.description||s.description?(u(),E("p",{key:1,"data-slot":"description",class:x(w.value.description({class:e.ui?.description}))},[y($.$slots,"description",{description:a.description},()=>[K(G(a.description),1)])],2)):B("",!0)],2)):B("",!0)]),_:3},8,["as","class"]))}}),na={slots:{root:"relative inline-flex items-center gap-1.5",base:["rounded-md border-0 placeholder:text-dimmed text-center focus:outline-none disabled:cursor-not-allowed disabled:opacity-75","transition-colors"]},variants:{size:{xs:{base:"size-6 text-xs"},sm:{base:"size-7 text-xs"},md:{base:"size-8 text-sm"},lg:{base:"size-9 text-sm"},xl:{base:"size-10 text-base"}},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:""},highlight:{true:""}},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"}],defaultVariants:{size:"md",color:"primary",variant:"outline"}},ua={__name:"UPinInput",props:{as:{type:null,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},length:{type:[Number,String],required:!1,default:5},autofocus:{type:Boolean,required:!1},autofocusDelay:{type:Number,required:!1,default:0},highlight:{type:Boolean,required:!1},class:{type:null,required:!1},ui:{type:null,required:!1},defaultValue:{type:null,required:!1},disabled:{type:Boolean,required:!1},id:{type:String,required:!1},mask:{type:Boolean,required:!1},modelValue:{type:null,required:!1},name:{type:String,required:!1},otp:{type:Boolean,required:!1},placeholder:{type:String,required:!1},required:{type:Boolean,required:!1},type:{type:null,required:!1,default:"text"}},emits:["update:modelValue","complete","change","blur"],setup(a,{expose:m,emit:e}){const s=a,n=e,k=ee(),p=Fe(me(s,"disabled","id","mask","name","otp","required","type"),n),{emitFormInput:o,emitFormFocus:b,emitFormChange:f,emitFormBlur:R,size:F,color:h,id:l,name:c,highlight:r,disabled:g,ariaAttrs:w}=ve(s),C=z(()=>N({extend:N(na),...k.ui?.pinInput||{}})({color:h.value,variant:s.variant,size:F.value,highlight:r.value})),$=O([]),P=O(!1);function i(S){const M=new Event("change",{target:{value:S}});n("change",M),f()}function d(S){(!S.relatedTarget||P.value)&&(n("blur",S),R())}function V(){s.autofocus&&$.value[0]?.$el?.focus()}return pe(()=>{setTimeout(()=>{V()},s.autofocusDelay)}),m({inputsRef:$}),(S,M)=>(u(),v(t(la),I({...t(p),...t(w)},{id:t(l),name:t(c),placeholder:a.placeholder,"model-value":a.modelValue,"default-value":a.defaultValue,"data-slot":"root",class:C.value.root({class:[s.ui?.root,s.class]}),"onUpdate:modelValue":M[0]||(M[0]=T=>t(o)()),onComplete:i}),{default:q(()=>[(u(!0),E(J,null,Y(t(Re)(s.length),(T,U)=>(u(),v(t(ra),{key:T,ref_for:!0,ref:ye=>$.value[U]=ye,index:U,"data-slot":"base",class:x(C.value.base({class:s.ui?.base})),disabled:t(g),onBlur:d,onFocus:t(b)},null,8,["index","class","disabled","onFocus"]))),128))]),_:1},16,["id","name","placeholder","model-value","default-value","class"]))}},da={slots:{root:"w-full space-y-6",header:"flex flex-col text-center",leading:"mb-2",leadingIcon:"size-8 shrink-0 inline-block",title:"text-xl text-pretty font-semibold text-highlighted",description:"mt-1 text-base text-pretty text-muted",body:"gap-y-6 flex flex-col",providers:"space-y-3",checkbox:"",select:"w-full",password:"w-full",otp:"w-full",input:"w-full",separator:"",form:"space-y-5",footer:"text-sm text-center text-muted mt-2"}},ca=Object.assign({inheritAttrs:!1},{__name:"UAuthForm",props:{as:{type:null,required:!1},icon:{type:null,required:!1},title:{type:String,required:!1},description:{type:String,required:!1},fields:{type:Array,required:!1},providers:{type:Array,required:!1},separator:{type:[String,Object],required:!1,default:"or"},submit:{type:Object,required:!1},schema:{type:null,required:!1},validate:{type:Function,required:!1},validateOn:{type:Array,required:!1},validateOnInputDelay:{type:Number,required:!1},disabled:{type:Boolean,required:!1},loading:{type:Boolean,required:!1},loadingAuto:{type:Boolean,required:!1},class:{type:null,required:!1},onSubmit:{type:Function,required:!1},ui:{type:null,required:!1}},emits:["submit"],setup(a,{expose:m}){const e=a,s=Pe((e.fields||[]).reduce((l,c)=>(c.name&&(l[c.name]=c.defaultValue),l),{})),n=fe(),{t:k}=Ee(),p=ee(),o=z(()=>N({extend:N(da),...p.ui?.authForm||{}})()),b=le("formRef"),f=O(!1),R=le("passwordRef");function F(l){const c=["name","errorPattern","help","error","hint","size","required","eagerValidation","validateOnInputDelay"];return l.type==="checkbox"?se(l,c):se(l,[...c,"label","description"])}function h(l){const c=["errorPattern","help","error","hint","size","required","eagerValidation","validateOnInputDelay"];return l.type==="checkbox"||l.type==="select"||l.type==="otp"?l.type==="checkbox"?Q(l,[...c,"type"]):Q(l,[...c,"type","label","description"]):Q(l,[...c,"label","description"])}return m({formRef:b,state:s}),(l,c)=>(u(),v(t(D),{as:a.as,"data-slot":"root",class:x(o.value.root({class:[e.ui?.root,e.class]}))},{default:q(()=>[a.icon||n.leading||a.title||n.title||a.description||n.description||n.header?(u(),E("div",{key:0,"data-slot":"header",class:x(o.value.header({class:e.ui?.header}))},[y(l.$slots,"header",{},()=>[a.icon||n.leading?(u(),E("div",{key:0,"data-slot":"leading",class:x(o.value.leading({class:e.ui?.leading}))},[y(l.$slots,"leading",{ui:o.value},()=>[a.icon?(u(),v(X,{key:0,name:a.icon,"data-slot":"leadingIcon",class:x(o.value.leadingIcon({class:e.ui?.leadingIcon}))},null,8,["name","class"])):B("",!0)])],2)):B("",!0),a.title||n.title?(u(),E("div",{key:1,"data-slot":"title",class:x(o.value.title({class:e.ui?.title}))},[y(l.$slots,"title",{},()=>[K(G(a.title),1)])],2)):B("",!0),a.description||n.description?(u(),E("div",{key:2,"data-slot":"description",class:x(o.value.description({class:e.ui?.description}))},[y(l.$slots,"description",{},()=>[K(G(a.description),1)])],2)):B("",!0)])],2)):B("",!0),be("div",{"data-slot":"body",class:x(o.value.body({class:e.ui?.body}))},[a.providers?.length||n.providers?(u(),E("div",{key:0,"data-slot":"providers",class:x(o.value.providers({class:e.ui?.providers}))},[y(l.$slots,"providers",{},()=>[(u(!0),E(J,null,Y(a.providers,(r,g)=>(u(),v(H,I({key:g,block:"",color:"neutral",variant:"subtle"},{ref_for:!0},r),null,16))),128))])],2)):B("",!0),a.providers?.length&&a.fields?.length?(u(),v(De,I({key:1},typeof a.separator=="object"?a.separator:{label:a.separator},{"data-slot":"separator",class:o.value.separator({class:e.ui?.separator})}),null,16,["class"])):B("",!0),a.fields?.length?(u(),v(Ue,I({key:2,ref_key:"formRef",ref:b,state:s,schema:a.schema,validate:a.validate,"validate-on":a.validateOn,disabled:a.disabled,"loading-auto":a.loadingAuto,"data-slot":"form",class:o.value.form({class:e.ui?.form})},l.$attrs,{onSubmit:a.onSubmit}),{default:q(()=>[(u(!0),E(J,null,Y(a.fields,r=>(u(),v(Oe,I({key:r.name},{ref_for:!0},F(r)),Me({default:q(()=>[y(l.$slots,`${r.name}-field`,I({ref_for:!0},{state:s,field:r}),()=>[r.type==="checkbox"?(u(),v(oa,I({key:0,modelValue:s[r.name],"onUpdate:modelValue":g=>s[r.name]=g,"data-slot":"checkbox",class:o.value.checkbox({class:e.ui?.checkbox})},{ref_for:!0},h(r)),null,16,["modelValue","onUpdate:modelValue","class"])):r.type==="select"?(u(),v(Le,I({key:1,modelValue:s[r.name],"onUpdate:modelValue":g=>s[r.name]=g,"data-slot":"select",class:o.value.select({class:e.ui?.select})},{ref_for:!0},h(r)),null,16,["modelValue","onUpdate:modelValue","class"])):r.type==="otp"?(u(),v(ua,I({key:2,id:r.name,modelValue:s[r.name],"onUpdate:modelValue":g=>s[r.name]=g,"data-slot":"otp",class:o.value.otp({class:e.ui?.otp})},{ref_for:!0},Object.assign({},h(r),typeof r.otp=="object"?r.otp:{}),{otp:""}),null,16,["id","modelValue","onUpdate:modelValue","class"])):r.type==="password"?(u(),v(ne,I({key:3,ref_for:!0,ref_key:"passwordRef",ref:R,modelValue:s[r.name],"onUpdate:modelValue":g=>s[r.name]=g,"data-slot":"password",class:o.value.password({class:e.ui?.password})},{ref_for:!0},h(r),{type:f.value?"text":"password"}),{trailing:q(()=>[A(H,{color:"neutral",variant:"link",size:"sm",icon:f.value?t(p).ui.icons.eyeOff:t(p).ui.icons.eye,"aria-label":f.value?t(k)("authForm.hidePassword"):t(k)("authForm.showPassword"),"aria-pressed":f.value,"aria-controls":R.value?.[0]?.inputRef?.id,onClick:c[0]||(c[0]=g=>f.value=!f.value)},null,8,["icon","aria-label","aria-pressed","aria-controls"])]),_:1},16,["modelValue","onUpdate:modelValue","class","type"])):(u(),v(ne,I({key:4,modelValue:s[r.name],"onUpdate:modelValue":g=>s[r.name]=g,"data-slot":"input",class:o.value.input({class:e.ui?.input})},{ref_for:!0},h(r)),null,16,["modelValue","onUpdate:modelValue","class"]))])]),_:2},[n[`${r.name}-label`]?{name:"label",fn:q(()=>[y(l.$slots,`${r.name}-label`)]),key:"0"}:void 0,n[`${r.name}-description`]?{name:"description",fn:q(()=>[y(l.$slots,`${r.name}-description`)]),key:"1"}:void 0,n[`${r.name}-hint`]?{name:"hint",fn:q(()=>[y(l.$slots,`${r.name}-hint`)]),key:"2"}:void 0,n[`${r.name}-help`]?{name:"help",fn:q(()=>[y(l.$slots,`${r.name}-help`)]),key:"3"}:void 0,n[`${r.name}-error`]?{name:"error",fn:q(()=>[y(l.$slots,`${r.name}-error`)]),key:"4"}:void 0]),1040))),128)),n.validation?y(l.$slots,"validation",{key:0}):B("",!0),y(l.$slots,"submit",{loading:a.loading},()=>[A(H,I({type:"submit",label:t(k)("authForm.submit"),block:"",loading:a.loading,"loading-auto":a.loadingAuto},a.submit),null,16,["label","loading","loading-auto"])])]),_:3},16,["state","schema","validate","validate-on","disabled","loading-auto","class","onSubmit"])):B("",!0)],2),n.footer?(u(),E("div",{key:1,"data-slot":"footer",class:x(o.value.footer({class:e.ui?.footer}))},[y(l.$slots,"footer")],2)):B("",!0)]),_:3},8,["as","class"]))}}),Pa=j({__name:"login",setup(a){const{login:m,isAuthenticated:e}=We(),s=Ae(),n=O(!1),k=[{name:"email",type:"email",label:"Email",placeholder:"admin@example.com",required:!0},{name:"password",type:"password",label:"Password",placeholder:"Enter your password",required:!0}];Ne(()=>{e.value&&re("/")});async function p(o){n.value=!0;const b=await m(o.data.email,o.data.password);b.error?s.add({title:"Login failed",description:b.error.message||"Invalid email or password",color:"error",icon:"i-lucide-alert-circle"}):re("/"),n.value=!1}return(o,b)=>{const f=ca;return u(),v(f,{title:"Sign In",description:"Enter your credentials to access your account",icon:"i-lucide-brain",fields:k,submit:{label:"Sign In",loading:t(n)},onSubmit:p},null,8,["submit"])}}});export{Pa as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{u as O}from"./BlAZO7nq.js";import{c as a}from"./BxXOsXrM.js";const v="sb-preferences",M=3600*24*365,h={editorMode:"editor",viewSourceMode:!1,lastDocumentPath:null,sidebarOpen:!0,docsTreeWidth:16,assistantPanelOpen:!1,assistantPanelTab:"chat",assistantLastConversationId:null,taskStatusFilter:"all",taskProjectFilter:null,agentStatsPeriod:"7d",usageStatsPeriod:"7d",onboardingDismissed:!1};function F(){const o=O(v,{maxAge:M,default:()=>({})});function e(t){return o.value[t]??h[t]}function s(t,f){o.value={...o.value,[t]:f}}const n=a({get:()=>e("editorMode"),set:t=>s("editorMode",t)}),i=a({get:()=>e("viewSourceMode"),set:t=>s("viewSourceMode",t)}),r=a({get:()=>e("lastDocumentPath"),set:t=>s("lastDocumentPath",t)}),d=a({get:()=>e("sidebarOpen"),set:t=>s("sidebarOpen",t)}),c=a({get:()=>e("docsTreeWidth"),set:t=>s("docsTreeWidth",t)}),l=a({get:()=>e("taskStatusFilter"),set:t=>s("taskStatusFilter",t)}),u=a({get:()=>e("taskProjectFilter"),set:t=>s("taskProjectFilter",t)}),g=a({get:()=>e("agentStatsPeriod"),set:t=>s("agentStatsPeriod",t)}),P=a({get:()=>e("assistantPanelOpen"),set:t=>s("assistantPanelOpen",t)}),S=a({get:()=>e("assistantPanelTab"),set:t=>s("assistantPanelTab",t)}),m=a({get:()=>e("assistantLastConversationId"),set:t=>s("assistantLastConversationId",t)}),b=a({get:()=>e("usageStatsPeriod"),set:t=>s("usageStatsPeriod",t)}),p=a({get:()=>e("onboardingDismissed"),set:t=>s("onboardingDismissed",t)});return{get:e,set:s,editorMode:n,viewSourceMode:i,lastDocumentPath:r,sidebarOpen:d,docsTreeWidth:c,assistantPanelOpen:P,assistantPanelTab:S,assistantLastConversationId:m,taskStatusFilter:l,taskProjectFilter:u,agentStatsPeriod:g,usageStatsPeriod:b,onboardingDismissed:p}}export{F as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Z as h,$ as x}from"./BxXOsXrM.js";function V(a){const e=h("",1e3);return{search:e,handleTypeaheadSearch:(s,d)=>{e.value=e.value+s;{const o=x(),c=d.map(t=>({...t,textValue:t.value?.textValue??t.ref.textContent?.trim()??""})),u=c.find(t=>t.ref===o),n=c.map(t=>t.textValue),i=m(n,e.value,u?.textValue),f=c.find(t=>t.textValue===i);return f&&f.ref.focus(),f?.ref}},resetTypeahead:()=>{e.value=""}}}function p(a,e){return a.map((r,l)=>a[(e+l)%a.length])}function m(a,e,r){const s=e.length>1&&Array.from(e).every(n=>n===e[0])?e[0]:e,d=r?a.indexOf(r):-1;let o=p(a,Math.max(d,0));s.length===1&&(o=o.filter(n=>n!==r));const u=o.find(n=>n.toLowerCase().startsWith(s.toLowerCase()));return u!==r?u:void 0}export{m as g,V as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as he}from"./D3RiUGdz.js";import{_ as xe,a as Pe}from"./B_3_hrpn.js";import{_ as Se}from"./CeIu7z4p.js";import{_ as Ue}from"./BS0ofHJK.js";import{a as Ce,ae as Ve,af as $,e as c,f as Ee,q as $e,Q as Ae,S as n,R as _,T as t,a9 as o,G as k,C as a,ag as z,ah as B,a7 as Ne,W as De,_ as Te,ac as b,a8 as f,ai as H}from"./BxXOsXrM.js";import{_ as Fe}from"./BaMqDm5u.js";import{_ as Ke}from"./YuTZB7sD.js";import{_ as Le}from"./DTDgHTuh.js";import{_ as Me}from"./eko-0FUm.js";import{_ as je}from"./C4pxqdgg.js";import{_ as ze}from"./Db8-_gO7.js";import{_ as Be}from"./yNrp2XvX.js";import{_ as Re}from"./DyRelyfs.js";import{u as qe,d as R}from"./sf57orEk.js";import{u as Ye}from"./DAQhmSv4.js";import"./C3FxIITy.js";import"./DGX0tzL8.js";import"./BlAZO7nq.js";import"./Cdt3I3Go.js";import"./88opOQSr.js";import"./iBGCpHdw.js";import"./DJMS2og1.js";import"./CsJ9KhQ4.js";import"./DB359q8R.js";import"./Cvp7FI3T.js";import"./BAIz-dEB.js";import"./DqB723Z0.js";import"./DG-T44jj.js";import"./Fukkqjkf.js";import"./Cdu2qGgq.js";import"./5ZXA0Ckq.js";import"./oIX-ZDN6.js";import"./Q8Ps7oN5.js";const Ie={class:"p-6"},Oe={class:"space-y-8 max-w-2xl mx-auto py-6"},Ge={class:"py-6"},He={class:"flex items-center justify-between mb-6"},Qe={class:"text-sm bg-elevated px-2 py-0.5 rounded"},We={class:"text-dimmed"},Je={class:"text-dimmed text-sm"},Xe={class:"flex gap-2 justify-end"},Ze={class:"py-12 text-center"},et={class:"max-w-2xl mx-auto py-6"},tt={key:0,class:"space-y-3"},st={key:1,class:"space-y-2"},at={class:"flex items-center justify-between px-4 py-3"},ot={class:"flex items-center gap-3"},lt={class:"font-medium"},nt={key:0,class:"border-t border-default px-4 py-3 space-y-2 bg-elevated/50"},it={class:"text-sm text-dimmed capitalize"},rt={class:"mt-6"},dt={class:"space-y-8 max-w-xl mx-auto py-6"},ct={class:"space-y-4"},ut={class:"text-lg font-semibold"},mt={class:"flex justify-end gap-2 pt-4"},pt={class:"mb-4"},ft={class:"bg-elevated px-2 py-0.5 rounded"},yt={class:"flex justify-end gap-2 pt-6"},Wt=Ce({__name:"settings",setup(vt){const{user:Q,updateProfile:W,changeEmail:J,changePassword:X}=Ye(),r=Ve(),{updatePreferences:Z}=qe(),P=$({name:""}),A=c(!1),h=$({newEmail:""}),N=c(!1),d=$({currentPassword:"",newPassword:"",confirmPassword:""}),D=c(!1),q=c([]),T=c(!1),g=c(!1),x=c(!1),S=c(null),F=c(!1),u=c(null),i=$({key:"",value:"",description:""});Ee(()=>Q.value,l=>{l&&(P.name=l.name||"",h.newEmail=l.email||"")},{immediate:!0});async function K(){T.value=!0;try{const{data:l}=await $fetch("/api/secrets");q.value=l}catch{r.add({title:"Failed to load secrets",color:"error"})}T.value=!1}const ee=[{label:"Account",icon:"i-lucide-user",value:"account",slot:"account"},{label:"Secrets",icon:"i-lucide-key",value:"secrets",slot:"secrets"},{label:"App",icon:"i-lucide-settings",value:"app",slot:"app"}],te=[{accessorKey:"key",header:"Key"},{accessorKey:"description",header:"Description"},{accessorKey:"updatedAt",header:"Last Updated"},{accessorKey:"actions",header:""}];function se(){u.value=null,i.key="",i.value="",i.description="",g.value=!0}function ae(l){u.value=l,i.key=l.key,i.value="",i.description=l.description||"",g.value=!0}function oe(l){S.value=l,x.value=!0}async function le(){if(!i.key||!u.value&&!i.value){r.add({title:"Missing fields",description:u.value?"Key is required.":"Key and value are required.",color:"error"});return}F.value=!0;try{u.value?(await $fetch(`/api/secrets/${u.value.key}`,{method:"PUT",body:{value:i.value||void 0,description:i.description||void 0}}),r.add({title:"Secret updated",color:"success"})):(await $fetch("/api/secrets",{method:"POST",body:{key:i.key,value:i.value,description:i.description||void 0}}),r.add({title:"Secret created",color:"success"})),g.value=!1,await K()}catch(l){const e=l;r.add({title:u.value?"Failed to update secret":"Failed to create secret",description:e.data?.message||"An error occurred",color:"error"})}F.value=!1}async function ne(){if(S.value)try{await $fetch(`/api/secrets/${S.value.key}`,{method:"DELETE"}),r.add({title:"Secret deleted",color:"success"}),x.value=!1,S.value=null,await K()}catch{r.add({title:"Failed to delete secret",color:"error"})}}function ie(l){return new Date(l).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}const p=c({...R}),L=c(!1),M=c(!1),U=c(new Set),re=[{key:"task",label:"Tasks",icon:"i-lucide-check-square",subtypes:["create","edit","delete","restore"]},{key:"project",label:"Projects",icon:"i-lucide-folder",subtypes:["create","edit","delete"]},{key:"agent",label:"Agents",icon:"i-lucide-bot",subtypes:["create","edit","delete","run","complete","fail","cancel"]},{key:"document",label:"Documents",icon:"i-lucide-file-text",subtypes:["edit","delete","restore"]},{key:"memory",label:"Memories",icon:"i-lucide-brain",subtypes:["create","delete"]},{key:"reminder",label:"Reminders",icon:"i-lucide-bell",subtypes:["create"]},{key:"secret",label:"Secrets",icon:"i-lucide-key-round",subtypes:["create","edit","delete"]},{key:"hook",label:"Hooks",icon:"i-lucide-webhook",subtypes:["create"]},{key:"conversation",label:"Conversations",icon:"i-lucide-message-square",subtypes:["delete"]}];async function de(){L.value=!0;try{const{data:l}=await $fetch("/api/settings");p.value={...R,...l.notifications}}catch{p.value={...R}}L.value=!1}async function ce(){M.value=!0;try{await $fetch("/api/settings",{method:"PUT",body:{notifications:p.value}}),Z(p.value),r.add({title:"Notification preferences saved",color:"success"})}catch{r.add({title:"Failed to save preferences",color:"error"})}M.value=!1}function ue(l){U.value.has(l)?U.value.delete(l):U.value.add(l)}function me(l,e){p.value[l]={...p.value[l],enabled:e}}function pe(l,e,j){const V=p.value[l];p.value[l]={...V,subtypes:{...V?.subtypes,[e]:j}}}$e(()=>{K(),de()});async function fe(){A.value=!0;const l=await W({name:P.name});l.error?r.add({title:"Update failed",description:l.error.message,color:"error"}):r.add({title:"Profile updated",description:"Your name has been updated successfully.",color:"success"}),A.value=!1}async function ye(){if(!h.newEmail){r.add({title:"Email required",description:"Please enter a new email address.",color:"error"});return}N.value=!0;const l=await J(h.newEmail);l.error?r.add({title:"Email change failed",description:l.error.message,color:"error"}):r.add({title:"Email updated",description:"Your email has been changed successfully.",color:"success"}),N.value=!1}async function ve(){if(d.newPassword!==d.confirmPassword){r.add({title:"Passwords do not match",description:"Please make sure your new passwords match.",color:"error"});return}if(!d.currentPassword||!d.newPassword){r.add({title:"Missing fields",description:"Please fill in all password fields.",color:"error"});return}D.value=!0;const l=await X({currentPassword:d.currentPassword,newPassword:d.newPassword});l.error?r.add({title:"Password change failed",description:l.error.message,color:"error"}):(r.add({title:"Password changed",description:"Your password has been changed successfully.",color:"success"}),d.currentPassword="",d.newPassword="",d.confirmPassword=""),D.value=!1}return(l,e)=>{const j=he,V=Pe,v=Se,w=Ue,m=De,E=Fe,Y=Ke,I=Te,we=Le,C=Me,O=je,_e=ze,be=Be,G=Re,ge=xe;return _(),Ae(ge,{id:"settings",grow:""},{default:n(()=>[t(V,{title:"Settings"},{right:n(()=>[t(j)]),_:1}),o("div",Ie,[t(be,null,{fallback:n(()=>[o("div",dt,[t(C,{class:"h-10 w-full"}),o("div",ct,[t(C,{class:"h-5 w-20"}),t(C,{class:"h-10 w-full"}),t(C,{class:"h-10 w-28"})])])]),default:n(()=>[t(_e,{items:ee,"default-value":"account",class:"w-full mx-auto",ui:{list:"max-w-xl"}},{account:n(()=>[o("div",Oe,[o("div",null,[e[13]||(e[13]=o("h3",{class:"text-lg font-semibold mb-4"}," Profile ",-1)),t(E,{state:a(P),class:"space-y-4",onSubmit:fe},{default:n(()=>[t(w,{label:"Name",name:"name"},{default:n(()=>[t(v,{modelValue:a(P).name,"onUpdate:modelValue":e[0]||(e[0]=s=>a(P).name=s),placeholder:"Your name",class:"w-full"},null,8,["modelValue"])]),_:1}),t(m,{type:"submit",loading:a(A)},{default:n(()=>[...e[12]||(e[12]=[f(" Save Name ",-1)])]),_:1},8,["loading"])]),_:1},8,["state"])]),t(Y),o("div",null,[e[15]||(e[15]=o("h3",{class:"text-lg font-semibold mb-4"}," Email Address ",-1)),t(E,{state:a(h),class:"space-y-4",onSubmit:ye},{default:n(()=>[t(w,{label:"Email",name:"newEmail"},{default:n(()=>[t(v,{modelValue:a(h).newEmail,"onUpdate:modelValue":e[1]||(e[1]=s=>a(h).newEmail=s),type:"email",placeholder:"your@email.com",class:"w-full"},null,8,["modelValue"])]),_:1}),t(m,{type:"submit",loading:a(N)},{default:n(()=>[...e[14]||(e[14]=[f(" Change Email ",-1)])]),_:1},8,["loading"])]),_:1},8,["state"])]),t(Y),o("div",null,[e[17]||(e[17]=o("h3",{class:"text-lg font-semibold mb-4"}," Change Password ",-1)),t(E,{state:a(d),class:"space-y-4",onSubmit:ve},{default:n(()=>[t(w,{label:"Current Password",name:"currentPassword"},{default:n(()=>[t(v,{modelValue:a(d).currentPassword,"onUpdate:modelValue":e[2]||(e[2]=s=>a(d).currentPassword=s),type:"password",class:"w-full"},null,8,["modelValue"])]),_:1}),t(w,{label:"New Password",name:"newPassword"},{default:n(()=>[t(v,{modelValue:a(d).newPassword,"onUpdate:modelValue":e[3]||(e[3]=s=>a(d).newPassword=s),type:"password",class:"w-full"},null,8,["modelValue"])]),_:1}),t(w,{label:"Confirm New Password",name:"confirmPassword"},{default:n(()=>[t(v,{modelValue:a(d).confirmPassword,"onUpdate:modelValue":e[4]||(e[4]=s=>a(d).confirmPassword=s),type:"password",class:"w-full"},null,8,["modelValue"])]),_:1}),t(m,{type:"submit",loading:a(D)},{default:n(()=>[...e[16]||(e[16]=[f(" Change Password ",-1)])]),_:1},8,["loading"])]),_:1},8,["state"])])])]),secrets:n(()=>[o("div",Ge,[o("div",He,[e[19]||(e[19]=o("div",null,[o("h3",{class:"text-lg font-semibold"}," Secrets "),o("p",{class:"text-sm text-dimmed"}," Encrypted key-value store for skills and integrations. ")],-1)),t(m,{icon:"i-lucide-plus",onClick:se},{default:n(()=>[...e[18]||(e[18]=[f(" Add Secret ",-1)])]),_:1})]),t(we,{columns:te,data:a(q),loading:a(T)},{"key-cell":n(({row:s})=>[o("code",Qe,b(s.original.key),1)]),"description-cell":n(({row:s})=>[o("span",We,b(s.original.description||"—"),1)]),"updatedAt-cell":n(({row:s})=>[o("span",Je,b(ie(s.original.updatedAt)),1)]),"actions-cell":n(({row:s})=>[o("div",Xe,[t(m,{variant:"ghost",icon:"i-lucide-pencil",size:"xs",onClick:y=>ae(s.original)},null,8,["onClick"]),t(m,{variant:"ghost",color:"error",icon:"i-lucide-trash-2",size:"xs",onClick:y=>oe(s.original)},null,8,["onClick"])])]),empty:n(()=>[o("div",Ze,[t(I,{name:"i-lucide-key",class:"size-12 mx-auto mb-4 text-dimmed"}),e[20]||(e[20]=o("p",{class:"text-dimmed"}," No secrets yet. Add one to get started. ",-1))])]),_:1},8,["data","loading"])])]),app:n(()=>[o("div",et,[e[22]||(e[22]=o("div",{class:"mb-6"},[o("h3",{class:"text-lg font-semibold mb-1"}," Notification Preferences "),o("p",{class:"text-sm text-dimmed"}," Choose which resource changes show toast notifications. ")],-1)),a(L)?(_(),k("div",tt,[(_(),k(z,null,B(5,s=>t(C,{key:s,class:"h-12 w-full"})),64))])):(_(),k("div",st,[(_(),k(z,null,B(re,s=>o("div",{key:s.key,class:"border border-default rounded-lg"},[o("div",at,[o("div",ot,[t(m,{variant:"ghost",size:"xs",icon:a(U).has(s.key)?"i-lucide-chevron-down":"i-lucide-chevron-right",onClick:y=>ue(s.key)},null,8,["icon","onClick"]),t(I,{name:s.icon,class:"size-5 text-dimmed"},null,8,["name"]),o("span",lt,b(s.label),1)]),t(O,{"model-value":a(p)[s.key]?.enabled??!1,"onUpdate:modelValue":y=>me(s.key,y)},null,8,["model-value","onUpdate:modelValue"])]),a(U).has(s.key)&&a(p)[s.key]?.enabled?(_(),k("div",nt,[(_(!0),k(z,null,B(s.subtypes,y=>(_(),k("div",{key:y,class:"flex items-center justify-between pl-11"},[o("span",it,b(y),1),t(O,{"model-value":a(p)[s.key]?.subtypes?.[y]!==!1,size:"sm","onUpdate:modelValue":ke=>pe(s.key,y,ke)},null,8,["model-value","onUpdate:modelValue"])]))),128))])):Ne("",!0)])),64))])),o("div",rt,[t(m,{loading:a(M),onClick:ce},{default:n(()=>[...e[21]||(e[21]=[f(" Save Preferences ",-1)])]),_:1},8,["loading"])])])]),_:1})]),_:1})]),t(G,{open:a(g),"onUpdate:open":e[9]||(e[9]=s=>H(g)?g.value=s:null)},{header:n(()=>[o("h3",ut,b(a(u)?"Edit Secret":"Add Secret"),1)]),body:n(()=>[t(E,{state:a(i),class:"space-y-4",onSubmit:le},{default:n(()=>[t(w,{label:"Key",name:"key",hint:a(u)?"":"SCREAMING_SNAKE_CASE"},{default:n(()=>[t(v,{modelValue:a(i).key,"onUpdate:modelValue":e[5]||(e[5]=s=>a(i).key=s),disabled:!!a(u),placeholder:"MY_API_KEY",class:"w-full font-mono"},null,8,["modelValue","disabled"])]),_:1},8,["hint"]),t(w,{label:"Value",name:"value",hint:a(u)?"Leave empty to keep current value":""},{default:n(()=>[t(v,{modelValue:a(i).value,"onUpdate:modelValue":e[6]||(e[6]=s=>a(i).value=s),type:"password",placeholder:a(u)?"••••••••":"Secret value",class:"w-full"},null,8,["modelValue","placeholder"])]),_:1},8,["hint"]),t(w,{label:"Description",name:"description"},{default:n(()=>[t(v,{modelValue:a(i).description,"onUpdate:modelValue":e[7]||(e[7]=s=>a(i).description=s),placeholder:"Optional description",class:"w-full"},null,8,["modelValue"])]),_:1}),o("div",mt,[t(m,{variant:"ghost",onClick:e[8]||(e[8]=s=>g.value=!1)},{default:n(()=>[...e[23]||(e[23]=[f(" Cancel ",-1)])]),_:1}),t(m,{type:"submit",loading:a(F)},{default:n(()=>[f(b(a(u)?"Update":"Create"),1)]),_:1},8,["loading"])])]),_:1},8,["state"])]),_:1},8,["open"]),t(G,{open:a(x),"onUpdate:open":e[11]||(e[11]=s=>H(x)?x.value=s:null)},{header:n(()=>[...e[24]||(e[24]=[o("h3",{class:"text-lg font-semibold"}," Delete Secret ",-1)])]),body:n(()=>[o("p",pt,[e[25]||(e[25]=f(" Are you sure you want to delete ",-1)),o("code",ft,b(a(S)?.key),1),e[26]||(e[26]=f("? ",-1))]),e[29]||(e[29]=o("p",{class:"text-sm text-dimmed"}," This action cannot be undone. Any skills using this secret will stop working. ",-1)),o("div",yt,[t(m,{variant:"ghost",onClick:e[10]||(e[10]=s=>x.value=!1)},{default:n(()=>[...e[27]||(e[27]=[f(" Cancel ",-1)])]),_:1}),t(m,{color:"error",onClick:ne},{default:n(()=>[...e[28]||(e[28]=[f(" Delete ",-1)])]),_:1})])]),_:1},8,["open"])]),_:1})}}});export{Wt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as z,aW as P,Q as $,R as i,S as b,a3 as o,V,C as n,a2 as w,am as j,N as B,c as y,aj as g,ay as x,e as C,X as N,f as D,K as I,aX as F,a9 as S,U as s,G as p,a7 as h,T as K,a8 as f,ac as m,aY as W,aZ as E,a_ as L}from"./BxXOsXrM.js";var O=z({__name:"Label",props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"label"}},setup(a){const e=a;return P(),(r,v)=>(i(),$(n(w),V(e,{onMousedown:v[0]||(v[0]=t=>{!t.defaultPrevented&&t.detail>1&&t.preventDefault()})}),{default:b(()=>[o(r.$slots,"default")]),_:3},16))}}),T=O;const U={slots:{root:"",wrapper:"",labelWrapper:"flex content-center items-center justify-between gap-1",label:"block font-medium text-default",container:"relative",description:"text-muted",error:"mt-2 text-error",hint:"text-muted",help:"mt-2 text-muted"},variants:{size:{xs:{root:"text-xs"},sm:{root:"text-xs"},md:{root:"text-sm"},lg:{root:"text-sm"},xl:{root:"text-base"}},required:{true:{label:"after:content-['*'] after:ms-0.5 after:text-error"}},orientation:{vertical:{container:"mt-1"},horizontal:{root:"flex justify-between place-items-baseline gap-2"}}},defaultVariants:{size:"md",orientation:"vertical"}},X=["id"],A=["id"],G=["id"],M=["id"],Y={__name:"UFormField",props:{as:{type:null,required:!1},name:{type:String,required:!1},errorPattern:{type:null,required:!1},label:{type:String,required:!1},description:{type:String,required:!1},help:{type:String,required:!1},error:{type:[Boolean,String],required:!1,default:void 0},hint:{type:String,required:!1},size:{type:null,required:!1},required:{type:Boolean,required:!1},eagerValidation:{type:Boolean,required:!1},validateOnInputDelay:{type:Number,required:!1},orientation:{type:null,required:!1},class:{type:null,required:!1},ui:{type:null,required:!1}},setup(a){const e=a,r=j(),v=B(),t=y(()=>g({extend:g(U),...v.ui?.formField||{}})({size:e.size,required:e.required,orientation:e.orientation})),k=x(W,null),d=y(()=>e.error||k?.value?.find(l=>l.name===e.name||e.errorPattern&&l.name?.match(e.errorPattern))?.message),u=C(N()),c=u.value,q=x(E,void 0);return D(u,()=>{q&&e.name&&(q.value[e.name]={id:u.value,pattern:e.errorPattern})},{immediate:!0}),I(L,u),I(F,y(()=>({error:d.value,name:e.name,size:e.size,eagerValidation:e.eagerValidation,validateOnInputDelay:e.validateOnInputDelay,errorPattern:e.errorPattern,hint:e.hint,description:e.description,help:e.help,ariaId:c}))),(l,Q)=>(i(),$(n(w),{as:a.as,"data-orientation":a.orientation,"data-slot":"root",class:s(t.value.root({class:[e.ui?.root,e.class]}))},{default:b(()=>[S("div",{"data-slot":"wrapper",class:s(t.value.wrapper({class:e.ui?.wrapper}))},[a.label||r.label?(i(),p("div",{key:0,"data-slot":"labelWrapper",class:s(t.value.labelWrapper({class:e.ui?.labelWrapper}))},[K(n(T),{for:u.value,"data-slot":"label",class:s(t.value.label({class:e.ui?.label}))},{default:b(()=>[o(l.$slots,"label",{label:a.label},()=>[f(m(a.label),1)])]),_:3},8,["for","class"]),a.hint||r.hint?(i(),p("span",{key:0,id:`${n(c)}-hint`,"data-slot":"hint",class:s(t.value.hint({class:e.ui?.hint}))},[o(l.$slots,"hint",{hint:a.hint},()=>[f(m(a.hint),1)])],10,X)):h("",!0)],2)):h("",!0),a.description||r.description?(i(),p("p",{key:1,id:`${n(c)}-description`,"data-slot":"description",class:s(t.value.description({class:e.ui?.description}))},[o(l.$slots,"description",{description:a.description},()=>[f(m(a.description),1)])],10,A)):h("",!0)],2),S("div",{class:s([(a.label||!!r.label||a.description||!!r.description)&&t.value.container({class:e.ui?.container})])},[o(l.$slots,"default",{error:d.value}),e.error!==!1&&(typeof d.value=="string"&&d.value||r.error)?(i(),p("div",{key:0,id:`${n(c)}-error`,"data-slot":"error",class:s(t.value.error({class:e.ui?.error}))},[o(l.$slots,"error",{error:d.value},()=>[f(m(d.value),1)])],10,G)):a.help||r.help?(i(),p("div",{key:1,id:`${n(c)}-help`,"data-slot":"help",class:s(t.value.help({class:e.ui?.help}))},[o(l.$slots,"help",{help:a.help},()=>[f(m(a.help),1)])],10,M)):h("",!0)],2)]),_:3},8,["as","data-orientation","class"]))}};export{T as L,Y as _};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{u as C,a as j,_ as B,b as P}from"./C3FxIITy.js";import{N as T,X as R,aA as V,c as x,G as k,R as r,a9 as b,a3 as l,V as q,C as e,ag as N,aj as y,U as n,Q as m,a7 as f,am as A,T as z,S as D,aI as c,aJ as g,_ as M,a8 as O,ac as U,a2 as I}from"./BxXOsXrM.js";import{c as K}from"./DGX0tzL8.js";const E={slots:{root:"relative flex flex-col min-w-0 min-h-svh lg:not-last:border-e lg:not-last:border-default shrink-0",body:"flex flex-col gap-4 sm:gap-6 flex-1 overflow-y-auto p-4 sm:p-6",handle:""},variants:{size:{true:{root:"w-full lg:w-(--width)"},false:{root:"flex-1"}}}},F=["data-dragging"],L=Object.assign({inheritAttrs:!1},{__name:"UDashboardPanel",props:{class:{type:null,required:!1},ui:{type:null,required:!1},id:{type:String,required:!1},minSize:{type:Number,required:!1,default:15},maxSize:{type:Number,required:!1},defaultSize:{type:Number,required:!1},resizable:{type:Boolean,required:!1,default:!1}},setup(a){const t=a,p=T(),h=C({storageKey:"dashboard",unit:"%"}),i=`${h.storageKey}-panel-${t.id||R()}`,{el:v,size:u,isDragging:s,onMouseDown:o,onTouchStart:$,onDoubleClick:w}=j(i,V(()=>({...h,...t}))),S=x(()=>y({extend:y(E),...p.ui?.dashboardPanel||{}})({size:!!u.value}));return(d,J)=>(r(),k(N,null,[b("div",q({id:i,ref_key:"el",ref:v},d.$attrs,{"data-dragging":e(s),"data-slot":"root",class:S.value.root({class:[t.ui?.root,t.class]}),style:[e(u)?{"--width":`${e(u)}${e(h).unit}`}:void 0]}),[l(d.$slots,"default",{},()=>[l(d.$slots,"header"),b("div",{"data-slot":"body",class:n(S.value.body({class:t.ui?.body}))},[l(d.$slots,"body")],2),l(d.$slots,"footer")])],16,F),l(d.$slots,"resize-handle",{onMouseDown:e(o),onTouchStart:e($),onDoubleClick:e(w)},()=>[a.resizable?(r(),m(B,{key:0,"aria-controls":i,"data-slot":"handle",class:n(S.value.handle({class:t.ui?.handle})),onMousedown:e(o),onTouchstart:e($),onDblclick:e(w)},null,8,["class","onMousedown","onTouchstart","onDblclick"])):f("",!0)])],64))}}),G={slots:{root:"h-(--ui-header-height) shrink-0 flex items-center justify-between border-b border-default px-4 sm:px-6 gap-1.5",left:"flex items-center gap-1.5 min-w-0",icon:"shrink-0 size-5 self-center me-1.5",title:"flex items-center gap-1.5 font-semibold text-highlighted truncate",center:"hidden lg:flex",right:"flex items-center shrink-0 gap-1.5",toggle:""},variants:{toggleSide:{left:{toggle:""},right:{toggle:""}}}},W=Object.assign({inheritAttrs:!1},{__name:"UDashboardNavbar",props:{as:{type:null,required:!1},icon:{type:null,required:!1},title:{type:String,required:!1},toggle:{type:[Boolean,Object],required:!1,default:!0},toggleSide:{type:String,required:!1,default:"left"},class:{type:null,required:!1},ui:{type:null,required:!1}},setup(a){const t=a,p=A(),h=T(),i=C({}),[v,u]=K(),s=x(()=>y({extend:y(G),...h.ui?.dashboardNavbar||{}})());return(o,$)=>(r(),k(N,null,[z(e(v),null,{default:D(()=>[l(o.$slots,"toggle",c(g({...e(i),ui:s.value})),()=>[a.toggle?(r(),m(P,q({key:0},typeof a.toggle=="object"?a.toggle:{},{side:a.toggleSide,"data-slot":"toggle",class:s.value.toggle({class:t.ui?.toggle,toggleSide:a.toggleSide})}),null,16,["side","class"])):f("",!0)])]),_:3}),z(e(I),q({as:a.as},o.$attrs,{"data-slot":"root",class:s.value.root({class:[t.ui?.root,t.class]})}),{default:D(()=>[b("div",{"data-slot":"left",class:n(s.value.left({class:t.ui?.left}))},[a.toggleSide==="left"?(r(),m(e(u),{key:0})):f("",!0),l(o.$slots,"left",c(g(e(i))),()=>[l(o.$slots,"leading",c(g({...e(i),ui:s.value})),()=>[a.icon?(r(),m(M,{key:0,name:a.icon,"data-slot":"icon",class:n(s.value.icon({class:t.ui?.icon}))},null,8,["name","class"])):f("",!0)]),b("h1",{"data-slot":"title",class:n(s.value.title({class:t.ui?.title}))},[l(o.$slots,"title",{},()=>[O(U(a.title),1)])],2),l(o.$slots,"trailing",c(g({...e(i),ui:s.value})))])],2),p.default?(r(),k("div",{key:0,"data-slot":"center",class:n(s.value.center({class:t.ui?.center}))},[l(o.$slots,"default",c(g(e(i))))],2)):f("",!0),b("div",{"data-slot":"right",class:n(s.value.right({class:t.ui?.right}))},[l(o.$slots,"right",c(g(e(i)))),a.toggleSide==="right"?(r(),m(e(u),{key:0})):f("",!0)],2)]),_:3},16,["as","class"])],64))}});export{L as _,W as a};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as V,aW as S,Q as p,R as n,S as c,a3 as y,C as s,a2 as P,am as w,N as B,aE as D,aD as H,c as C,aj as v,G as I,ag as N,ah as E,U as r,T as h,a7 as q,_ as A,aO as x,a8 as $,ac as k,a9 as U,V as j,e as z,ar as F,as as K,aQ as O}from"./BxXOsXrM.js";import{i as R,a as T,A as Q,b as G,c as L,d as M}from"./cABRLVee.js";import"./DJjDvbZE.js";import"./DqB723Z0.js";import"./Cvp7FI3T.js";import"./g20UHUCv.js";import"./C6Y-ieo6.js";var W=V({__name:"AccordionHeader",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"h3"}},setup(i){const d=i,a=R(),f=T();return S(),(l,m)=>(n(),p(s(P),{as:d.as,"as-child":d.asChild,"data-orientation":s(a).orientation,"data-state":s(f).dataState.value,"data-disabled":s(f).dataDisabled.value},{default:c(()=>[y(l.$slots,"default")]),_:3},8,["as","as-child","data-orientation","data-state","data-disabled"]))}}),J=W;const X={slots:{root:"w-full",item:"border-b border-default last:border-b-0",header:"flex",trigger:"group flex-1 flex items-center gap-1.5 font-medium text-sm py-3.5 focus-visible:outline-primary min-w-0",content:"data-[state=open]:animate-[accordion-down_200ms_ease-out] data-[state=closed]:animate-[accordion-up_200ms_ease-out] overflow-hidden focus:outline-none",body:"text-sm pb-3.5",leadingIcon:"shrink-0 size-5",trailingIcon:"shrink-0 size-5 ms-auto group-data-[state=open]:rotate-180 transition-transform duration-200",label:"text-start break-words"},variants:{disabled:{true:{trigger:"cursor-not-allowed opacity-75"}}}},Y={__name:"UAccordion",props:{as:{type:null,required:!1},items:{type:Array,required:!1},trailingIcon:{type:null,required:!1},labelKey:{type:null,required:!1,default:"label"},class:{type:null,required:!1},ui:{type:null,required:!1},collapsible:{type:Boolean,required:!1,default:!0},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1},type:{type:String,required:!1,default:"single"},disabled:{type:Boolean,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0}},emits:["update:modelValue"],setup(i,{emit:d}){const a=i,f=d,l=w(),m=B(),_=D(H(a,"as","collapsible","defaultValue","disabled","modelValue","unmountOnHide"),f),t=C(()=>v({extend:v(X),...m.ui?.accordion||{}})({disabled:a.disabled}));return(o,b)=>(n(),p(s(M),j(s(_),{type:i.type,"data-slot":"root",class:t.value.root({class:[a.ui?.root,a.class]})}),{default:c(()=>[(n(!0),I(N,null,E(a.items,(e,u)=>(n(),p(s(Q),{key:u,value:e.value||String(u),disabled:e.disabled,"data-slot":"item",class:r(t.value.item({class:[a.ui?.item,e.ui?.item,e.class]}))},{default:c(({open:g})=>[h(s(J),{as:"div","data-slot":"header",class:r(t.value.header({class:[a.ui?.header,e.ui?.header]}))},{default:c(()=>[h(s(G),{"data-slot":"trigger",class:r(t.value.trigger({class:[a.ui?.trigger,e.ui?.trigger],disabled:e.disabled}))},{default:c(()=>[y(o.$slots,"leading",{item:e,index:u,open:g,ui:t.value},()=>[e.icon?(n(),p(A,{key:0,name:e.icon,"data-slot":"leadingIcon",class:r(t.value.leadingIcon({class:[a.ui?.leadingIcon,e?.ui?.leadingIcon]}))},null,8,["name","class"])):q("",!0)]),s(x)(e,a.labelKey)||l.default?(n(),I("span",{key:0,"data-slot":"label",class:r(t.value.label({class:[a.ui?.label,e.ui?.label]}))},[y(o.$slots,"default",{item:e,index:u,open:g},()=>[$(k(s(x)(e,a.labelKey)),1)])],2)):q("",!0),y(o.$slots,"trailing",{item:e,index:u,open:g,ui:t.value},()=>[h(A,{name:e.trailingIcon||i.trailingIcon||s(m).ui.icons.chevronDown,"data-slot":"trailingIcon",class:r(t.value.trailingIcon({class:[a.ui?.trailingIcon,e.ui?.trailingIcon]}))},null,8,["name","class"])])]),_:2},1032,["class"])]),_:2},1032,["class"]),e.content||l.content||e.slot&&l[e.slot]||l.body||e.slot&&l[`${e.slot}-body`]?(n(),p(s(L),{key:0,"data-slot":"content",class:r(t.value.content({class:[a.ui?.content,e.ui?.content]}))},{default:c(()=>[y(o.$slots,e.slot||"content",{item:e,index:u,open:g,ui:t.value},()=>[U("div",{"data-slot":"body",class:r(t.value.body({class:[a.ui?.body,e.ui?.body]}))},[y(o.$slots,e.slot?`${e.slot}-body`:"body",{item:e,index:u,open:g,ui:t.value},()=>[$(k(e.content),1)])],2)])]),_:2},1032,["class"])):q("",!0)]),_:2},1032,["value","disabled","class"]))),128))]),_:3},16,["type","class"]))}},Z={slots:{root:"my-5",trigger:"text-base"}},ne={__name:"ProseAccordion",props:{type:{type:String,required:!1,default:"multiple"},class:{type:null,required:!1},ui:{type:void 0,required:!1}},setup(i){const d=i,a=w(),f=B(),l=C(()=>v({extend:v(Z),...f.ui?.prose?.accordion||{}})),m=z(1),_=C(()=>(m.value,a.default?.()?.flatMap(t).filter(Boolean)||[]));function t(o,b){return typeof o.type=="symbol"?o.children?.map(t):{index:b,label:o.props?.label||`${b}`,description:o.props?.description,icon:o.props?.icon,component:o}}return F(()=>m.value++),(o,b)=>(n(),p(Y,{type:i.type,items:_.value,"unmount-on-hide":!1,class:r(d.class),ui:s(O)(l.value(),d.ui)},{content:c(({item:e})=>[(n(),p(K(e.component)))]),_:1},8,["type","items","class","ui"]))}};export{ne as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{N as ne,c as I,aj as L,X as se,ay as $,e as j,q as P,k as ie,r as O,a1 as oe,af as R,K as b,bc as ue,bd as le,Q as ce,R as fe,S as de,a3 as me,al as pe,U as ye,C as Q,as as ve,be as X,bf as Y,aY as he,aZ as Ee}from"./BxXOsXrM.js";import{b as be}from"./DGX0tzL8.js";function ge(n){return"schema"in n&&typeof n.coercer=="function"&&typeof n.validator=="function"&&typeof n.refiner=="function"}function we(n){return"~standard"in n}async function Se(n,i){const l=await i["~standard"].validate(n);return l.issues?{errors:l.issues?.map(r=>({name:r.path?.map(o=>typeof o=="object"?o.key:o).join(".")||"",message:r.message}))||[],result:null}:{errors:null,result:l.value}}async function Fe(n,i){const[l,r]=i.validate(n);return l?{errors:l.failures().map(h=>({message:h.message,name:h.path.join(".")})),result:null}:{errors:null,result:r}}function Ie(n,i){if(we(i))return Se(n,i);if(ge(i))return Fe(n,i);throw new Error("Form validation failed: Unsupported form schema")}function je(n,i){return i?i.split(".").reduce((r,o)=>r?.[o],n):n}function qe(n,i,l){if(!i)return Object.assign(n,l);if(!n)return n;const r=i.split(".");let o=n;for(let y=0;y<r.length-1;y++){const c=r[y];(o[c]===void 0||o[c]===null)&&(y+1<r.length&&!Number.isNaN(Number(r[y+1]))?o[c]=[]:o[c]={}),o=o[c]}const h=r[r.length-1];return o[h]=l,n}class q extends Error{formId;errors;constructor(i,l){super("Form validation exception"),this.formId=i,this.errors=l,Object.setPrototypeOf(this,q.prototype)}}const xe={base:""},Oe={__name:"UForm",props:{id:{type:[String,Number],required:!1},schema:{type:null,required:!1},state:{type:null,required:!1},validate:{type:Function,required:!1},validateOn:{type:Array,required:!1,default(){return["input","blur","change"]}},disabled:{type:Boolean,required:!1},name:{type:null,required:!1},validateOnInputDelay:{type:Number,required:!1,default:300},transform:{type:null,required:!1,default:()=>!0},nested:{type:Boolean,required:!1},loadingAuto:{type:Boolean,required:!1,default:!0},class:{type:null,required:!1},onSubmit:{type:Function,required:!1}},emits:["submit","error"],setup(n,{expose:i,emit:l}){const r=n,o=l,h=ne(),y=I(()=>L({extend:L(xe),...h.ui?.form||{}})),c=r.id??se(),k=be(`form-${c}`),g=r.nested===!0&&$(Y,void 0),A=r.nested===!0?$(X,void 0):void 0,w=I(()=>A?.value?r.name?je(A.value,r.name):A.value:r.state);b(Y,k),b(X,w);const S=j(new Map);P(async()=>{g&&(await ie(),g.emit({type:"attach",validate:F,formId:c,name:r.name,api:z}))}),oe(()=>{k.reset(),g&&g.emit({type:"detach",formId:c})}),P(async()=>{k.on(async e=>{e.type==="attach"?S.value.set(e.formId,{validate:e.validate,name:e.name,api:e.api}):e.type==="detach"?S.value.delete(e.formId):r.validateOn?.includes(e.type)&&!v.value&&(e.type!=="input"?await F({name:e.name,silent:!0,nested:!1}):(e.eager||K.has(e.name))&&await F({name:e.name,silent:!0,nested:!1})),e.type==="blur"&&K.add(e.name),(e.type==="change"||e.type==="input"||e.type==="blur"||e.type==="focus")&&_.add(e.name),(e.type==="change"||e.type==="input")&&B.add(e.name)})});const u=j([]);b(he,u);const x=j({});b(Ee,x);const B=R(new Set),_=R(new Set),K=R(new Set);function C(e){return e.map(t=>({...t,id:t?.name?x.value[t.name]?.id:void 0}))}const N=j(null);async function Z(){let e=r.validate?await r.validate(w.value)??[]:[];if(r.schema){const{errors:t,result:a}=await Ie(w.value,r.schema);t?e=e.concat(t):N.value=a}return C(e)}async function F(e={silent:!1,nested:!1,transform:!1}){const t=e.name&&!Array.isArray(e.name)?[e.name]:e.name;let a=[],s=[];if(!t&&e.nested){const p=Array.from(S.value.values()).map(m=>G(m,e)),d=await Promise.all(p);s=d.filter(m=>m.error).flatMap(m=>m.error.errors.map(re=>H(re,m.name))),a=d.filter(m=>m.output!==void 0)}const E=[...await Z(),...s];if(t?u.value=te(E,t):u.value=E,u.value?.length){if(e.silent)return!1;throw new q(c,u.value)}return e.transform?(a.forEach(p=>{p.name?qe(N.value,p.name,p.output):Object.assign(N.value,p.output)}),N.value??w.value):w.value}const v=j(!1);b(ue,O(v));async function W(e){v.value=r.loadingAuto&&!0;const t=e;try{t.data=await F({nested:!0,transform:r.transform}),await r.onSubmit?.(t),B.clear()}catch(a){if(!(a instanceof q))throw a;const s={...t,errors:a.errors};o("error",s)}finally{v.value=!1}}const D=I(()=>r.disabled||v.value);b(le,I(()=>({disabled:D.value,validateOnInputDelay:r.validateOnInputDelay})));async function G(e,t){try{const a=await e.validate({...t,silent:!1});return{name:e.name,output:a}}catch(a){if(!(a instanceof q))throw a;return{name:e.name,error:a}}}function H(e,t){return!t||!e.name?e:{...e,name:t+"."+e.name}}function J(e,t){const a=t+".",s=e?.name?.startsWith(a)?e.name.substring(a.length):e.name;return{...e,name:s}}function V(e,t){return t?e.filter(a=>a?.name?.startsWith(t+".")).map(a=>J(a,t)):e}function M(e){return e.api.getErrors().map(t=>e.name?{...t,name:e.name+"."+t.name}:t)}function T(e,t){return!e||!t?!0:e instanceof RegExp?e.test(t):t===e||typeof e=="string"&&e.startsWith(t+".")}function ee(e,t){if(!e||e instanceof RegExp)return e;if(t!==e)return typeof e=="string"&&e.startsWith(t+".")?e.substring(t.length+1):e}function te(e,t){const a=new Set(t),s=t.map(d=>x.value?.[d]?.pattern).filter(Boolean),f=d=>d.name?a.has(d.name)?!0:s.some(m=>m.test(d.name)):!1,E=u.value.filter(d=>!f(d)),p=e.filter(f);return[...E,...p]}function ae(e,t){return e.filter(a=>t instanceof RegExp?!(a.name&&t.test(a.name)):!a.name||a.name!==t)}function U(e){return!e.name||!!x.value[e.name]}const z={validate:F,errors:u,setErrors(e,t){const a=C(e.filter(U)),s=[];for(const f of S.value.values())if(T(t,f.name)){const E=V(e,f.name);f.api.setErrors(E,ee(t,f.name||"")),s.push(...M(f))}if(t){const f=ae(u.value,t);u.value=[...f,...a,...s]}else u.value=[...a,...s]},async submit(){await W(new Event("submit"))},getErrors(e){return e?u.value.filter(t=>e instanceof RegExp?t.name&&e.test(t.name):t.name===e):u.value},clear(e){const t=e?u.value.filter(s=>U(s)&&(e instanceof RegExp?!(s.name&&e.test(s.name)):s.name!==e)):[],a=[];for(const s of S.value.values())T(e,s.name)&&s.api.clear(),a.push(...M(s));u.value=[...t,...a]},disabled:D,loading:v,dirty:I(()=>!!B.size),dirtyFields:O(B),blurredFields:O(K),touchedFields:O(_)};return i(z),(e,t)=>(fe(),ce(ve(Q(g)?"div":"form"),{id:Q(c),class:ye(y.value({class:r.class})),onSubmit:pe(W,["prevent"])},{default:de(()=>[me(e.$slots,"default",{errors:u.value,loading:v.value})]),_:3},40,["id","class"]))}};export{Oe as _};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as P,a as j,aK as X,aL as L,c as _,aM as Z,bi as ee,Q as H,R as z,S as F,T as Q,C as g,a2 as U,bh as B,al as q,a3 as Y,k as te,$ as V,a0 as le,V as ae,bj as $}from"./BxXOsXrM.js";import{R as ne}from"./BAIz-dEB.js";import{u as re}from"./Cvp7FI3T.js";import{f as O}from"./_CYZi8HN.js";import{u as ue}from"./BJ3o57WW.js";import{R as ie,M as se}from"./DB359q8R.js";function de(r,f){const e=P(),o=(t,S)=>{if(f.multiple&&Array.isArray(r.value))if(f.selectionBehavior==="replace")r.value=[t],e.value=t;else{const h=r.value.findIndex(i=>S(i));h!==-1?r.value=r.value.filter((i,p)=>p!==h):r.value=[...r.value,t]}else f.selectionBehavior==="replace"?r.value={...t}:!Array.isArray(r.value)&&S(r.value)?r.value=void 0:r.value={...t};return r.value};function x(t,S,h,i){if(!e?.value||!f.multiple||!Array.isArray(r.value))return;const A=h().filter(C=>C.ref.dataset.disabled!=="").find(C=>C.ref===S)?.value;if(!A)return;let K=null;switch(t){case"prev":case"next":{K=O(i,e.value,A);break}case"first":{K=O(i,e.value,i?.[0]);break}case"last":{K=O(i,e.value,i?.[i.length-1]);break}}r.value=K}return{firstValue:e,onSelectItem:o,handleMultipleReplace:x}}function M(r){return r.reduce((f,e)=>(f.push(e),e.children&&f.push(...M(e.children)),f),[])}const[oe,ce]=Z("TreeRoot");var ve=j({__name:"TreeRoot",props:{modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},items:{type:Array,required:!1},expanded:{type:Array,required:!1},defaultExpanded:{type:Array,required:!1},getKey:{type:Function,required:!0},getChildren:{type:Function,required:!1,default:r=>r.children},selectionBehavior:{type:String,required:!1,default:"toggle"},multiple:{type:Boolean,required:!1,skipCheck:!0},dir:{type:String,required:!1},disabled:{type:Boolean,required:!1},propagateSelect:{type:Boolean,required:!1},bubbleSelect:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"ul"}},emits:["update:modelValue","update:expanded"],setup(r,{emit:f}){const e=r,o=f,{items:x,multiple:t,disabled:S,propagateSelect:h,dir:i,bubbleSelect:p}=X(e),{handleTypeaheadSearch:A}=ue(),K=re(i),C=P(),k=P(!1),R=ee(),u=L(e,"modelValue",o,{defaultValue:e.defaultValue??(t.value?[]:void 0),passive:!0,deep:!0}),v=L(e,"expanded",o,{defaultValue:e.defaultExpanded??[],passive:e.expanded===void 0,deep:!0}),{onSelectItem:l,handleMultipleReplace:n}=de(u,e),s=_(()=>t.value&&Array.isArray(u.value)?u.value.map(a=>e.getKey(a)):[e.getKey(u.value??{})]);function I(a,d=1,y){return a.reduce((c,m,w)=>{const G=e.getKey(m),N=e.getChildren(m),J=v.value.includes(G),W={_id:G,value:m,index:w,level:d,parentItem:y,hasChildren:!!N,bind:{value:m,level:d,"aria-setsize":a.length,"aria-posinset":w+1}};return c.push(W),N&&J&&c.push(...I(N,d+1,m)),c},[])}const T=_(()=>{const a=e.items;return v.value.map(d=>d),I(a??[])});function E(a){if(k.value)R.trigger(a);else{const d=C.value?.getItems()??[];A(a.key,d)}}function b(a){if(k.value)return;const d=se[a.key];te(()=>{n(d,V(),C.value?.getItems,T.value.map(y=>y.value))})}function D(a){if(a.parentItem!=null&&Array.isArray(u.value)&&e.multiple){const d=T.value.find(y=>a.parentItem!=null&&e.getKey(y.value)===e.getKey(a.parentItem));d!=null&&(e.getChildren(d.value)?.every(c=>u.value.find(m=>e.getKey(m)===e.getKey(c)))?u.value=[...u.value,d.value]:u.value=u.value.filter(c=>e.getKey(c)!==e.getKey(d.value)),D(d))}}return ce({modelValue:u,selectedKeys:s,onSelect:a=>{const d=c=>e.getKey(c??{})===e.getKey(a),y=e.multiple&&Array.isArray(u.value)?u.value?.findIndex(d)!==-1:void 0;if(l(a,d),e.bubbleSelect&&e.multiple&&Array.isArray(u.value)){const c=T.value.find(m=>e.getKey(m.value)===e.getKey(a));c!=null&&D(c)}if(e.propagateSelect&&e.multiple&&Array.isArray(u.value)){const c=M(e.getChildren(a)??[]);y?u.value=[...u.value].filter(m=>!c.some(w=>e.getKey(m??{})===e.getKey(w))):u.value=[...u.value,...c]}},expanded:v,onToggle(a){if(!(a?e.getChildren(a):void 0))return;const y=e.getKey(a)??a;v.value.includes(y)?v.value=v.value.filter(c=>c!==y):v.value=[...v.value,y]},getKey:e.getKey,getChildren:e.getChildren,items:x,expandedItems:T,disabled:S,multiple:t,dir:K,propagateSelect:h,bubbleSelect:p,isVirtual:k,virtualKeydownHook:R,handleMultipleReplace:n}),(a,d)=>(z(),H(g(ie),{ref_key:"rovingFocusGroupRef",ref:C,"as-child":"",orientation:"vertical",dir:g(K)},{default:F(()=>[Q(g(U),{role:"tree",as:a.as,"as-child":a.asChild,"aria-multiselectable":g(t)?!0:void 0,onKeydown:[E,B(q(b,["shift"]),["up","down"])]},{default:F(()=>[Y(a.$slots,"default",{flattenItems:T.value,modelValue:g(u),expanded:g(v)})]),_:3},8,["as","as-child","aria-multiselectable","onKeydown"])]),_:3},8,["dir"]))}}),be=ve;const fe="tree.select",pe="tree.toggle";var ye=j({inheritAttrs:!1,__name:"TreeItem",props:{value:{type:null,required:!0},level:{type:Number,required:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"li"}},emits:["select","toggle"],setup(r,{expose:f,emit:e}){const o=r,x=e,t=oe(),{getItems:S}=le(),h=_(()=>!!t.getChildren(o.value)),i=_(()=>{const l=t.getKey(o.value);return t.expanded.value.includes(l)}),p=_(()=>{const l=t.getKey(o.value);return t.selectedKeys.value.includes(l)}),A=_(()=>{if(t.bubbleSelect.value&&h.value&&Array.isArray(t.modelValue.value)){const l=M(t.getChildren(o.value)||[]);return l.some(n=>t.modelValue.value.find(s=>t.getKey(s)===t.getKey(n)))&&!l.every(n=>t.modelValue.value.find(s=>t.getKey(s)===t.getKey(n)))}else return t.propagateSelect.value&&p.value&&h.value&&Array.isArray(t.modelValue.value)?!M(t.getChildren(o.value)||[]).every(n=>t.modelValue.value.find(s=>t.getKey(s)===t.getKey(n))):void 0});function K(l){if(h.value)if(i.value){const n=S().map(b=>b.ref),s=V(),I=n.indexOf(s),E=[...n].slice(I).find(b=>Number(b.getAttribute("data-indent"))===o.level+1);E&&E.focus()}else v(l)}function C(l){if(i.value)v(l);else{const n=S().map(b=>b.ref),s=V(),I=n.indexOf(s),E=[...n].slice(0,I).reverse().find(b=>Number(b.getAttribute("data-indent"))===o.level-1);E&&E.focus()}}async function k(l){x("select",l),!l?.defaultPrevented&&t.onSelect(o.value)}async function R(l){x("toggle",l),!l?.defaultPrevented&&t.onToggle(o.value)}async function u(l){if(!l)return;const n={originalEvent:l,value:o.value,isExpanded:i.value,isSelected:p.value};$(fe,k,n)}async function v(l){if(!l)return;const n={originalEvent:l,value:o.value,isExpanded:i.value,isSelected:p.value};$(pe,R,n)}return f({isExpanded:i,isSelected:p,isIndeterminate:A,handleToggle:()=>t.onToggle(o.value),handleSelect:()=>t.onSelect(o.value)}),(l,n)=>(z(),H(g(ne),{"as-child":"",value:l.value,"allow-shift-key":""},{default:F(()=>[Q(g(U),ae(l.$attrs,{role:"treeitem",as:l.as,"as-child":l.asChild,"aria-selected":p.value,"aria-expanded":h.value?i.value:void 0,"aria-level":l.level,"data-indent":l.level,"data-selected":p.value?"":void 0,"data-expanded":i.value?"":void 0,onKeydown:[B(q(u,["self","prevent"]),["enter","space"]),n[0]||(n[0]=B(q(s=>g(t).dir.value==="ltr"?K(s):C(s),["prevent"]),["right"])),n[1]||(n[1]=B(q(s=>g(t).dir.value==="ltr"?C(s):K(s),["prevent"]),["left"]))],onClick:n[2]||(n[2]=q(s=>{u(s),v(s)},["stop"]))}),{default:F(()=>[Y(l.$slots,"default",{isExpanded:i.value,isSelected:p.value,isIndeterminate:A.value,handleSelect:()=>g(t).onSelect(l.value),handleToggle:()=>g(t).onToggle(l.value)})]),_:3},16,["as","as-child","aria-selected","aria-expanded","aria-level","data-indent","data-selected","data-expanded","onKeydown"])]),_:3},8,["value"]))}}),Ae=ye;export{be as T,Ae as a,oe as i};
|