cognova 0.2.11 → 0.2.13
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/{DwY7rCd_.js → -HePz7lp.js} +2 -2
- package/.output/public/_nuxt/{CY-cjAwJ.js → 4ALIM-zZ.js} +1 -1
- package/.output/public/_nuxt/{DXdwpJ-I.js → 5sUbkh_6.js} +2 -2
- package/.output/public/_nuxt/{_cy8R3nk.js → 6bB8Ev7a.js} +1 -1
- package/.output/public/_nuxt/{1zUTf4AP.js → 7rT1DCe2.js} +1 -1
- package/.output/public/_nuxt/{vIOxcXKR.js → 9O1MXkck.js} +1 -1
- package/.output/public/_nuxt/{7oCGSglN.js → 9kAKMaPC.js} +1 -1
- package/.output/public/_nuxt/{CVqlefTY.js → B-DMcEU9.js} +1 -1
- package/.output/public/_nuxt/{BS2ZNXI1.js → B0nzD8Sk.js} +1 -1
- package/.output/public/_nuxt/B2PqR2Vu.js +1 -0
- package/.output/public/_nuxt/{Db4KMnt8.js → B2wI_pYg.js} +1 -1
- package/.output/public/_nuxt/{zq-a1TeT.js → B5FuOh7E.js} +1 -1
- package/.output/public/_nuxt/B6om4MW2.js +1 -0
- package/.output/public/_nuxt/{Dya5oK8u.js → B7ikW4eF.js} +1 -1
- package/.output/public/_nuxt/{BYHCP8x7.js → B8DFEjxA.js} +1 -1
- package/.output/public/_nuxt/{6boMs_nF.js → B9kWNcU7.js} +1 -1
- package/.output/public/_nuxt/BAZ8sewA.js +1 -0
- package/.output/public/_nuxt/{BXuWCWsJ.js → BCPwL4ma.js} +1 -1
- package/.output/public/_nuxt/{DY3uK7wM.js → BCrlmHh_.js} +1 -1
- package/.output/public/_nuxt/{BR8bKz8h.js → BD-AFJWW.js} +1 -1
- package/.output/public/_nuxt/{BtHQ1T0f.js → BGcQMReV.js} +1 -1
- package/.output/public/_nuxt/{BDyn4ApB.js → BL1mkqgd.js} +3 -3
- package/.output/public/_nuxt/BNJJSRKh.js +1 -0
- package/.output/public/_nuxt/{D8lwrAYS.js → BNeeERBt.js} +1 -1
- package/.output/public/_nuxt/{CVFwOzbl.js → BSJb5amZ.js} +1 -1
- package/.output/public/_nuxt/{CEnSeCqn.js → BSsaE9Db.js} +1 -1
- package/.output/public/_nuxt/{DzA58_Lm.js → BVO3XpHT.js} +1 -1
- package/.output/public/_nuxt/{CuxrHsu-.js → BWuL2CzO.js} +1 -1
- package/.output/public/_nuxt/{0yk-pS3R.js → B_9zJTqe.js} +1 -1
- package/.output/public/_nuxt/{DcJbYLTp.js → B_Lr1vlV.js} +1 -1
- package/.output/public/_nuxt/{CZoEPC_Q.js → Bc8bTnkd.js} +3 -3
- package/.output/public/_nuxt/{BKXg-alD.js → BghuwIGa.js} +1 -1
- package/.output/public/_nuxt/{PP_4ebzl.js → BjsKx597.js} +1 -1
- package/.output/public/_nuxt/{DuvzM-P1.js → Bl0qBhCG.js} +1 -1
- package/.output/public/_nuxt/{B_wilgcd.js → Bl43dkDq.js} +1 -1
- package/.output/public/_nuxt/{JbHa4oXq.js → BnMTFF5R.js} +1 -1
- package/.output/public/_nuxt/{CY-QVcA5.js → BrX-PnSK.js} +2 -2
- package/.output/public/_nuxt/{DYbZBZet.js → BtV7oNn3.js} +1 -1
- package/.output/public/_nuxt/{apYB9dr5.js → BvFYnRMR.js} +1 -1
- package/.output/public/_nuxt/{x6FRJ5ac.js → BvTUBUNN.js} +1 -1
- package/.output/public/_nuxt/{wO6z2ugJ.js → ByLsRRoQ.js} +1 -1
- package/.output/public/_nuxt/{DC4idAGt.js → C1LcEMwB.js} +1 -1
- package/.output/public/_nuxt/{YX8avsvq.js → C2IiXp9N.js} +2 -2
- package/.output/public/_nuxt/{fbyIeNkc.js → C6OSRpRd.js} +1 -1
- package/.output/public/_nuxt/{3jQMk_5H.js → C796kFT9.js} +1 -1
- package/.output/public/_nuxt/{DEd2xVbS.js → C7m9zGMG.js} +1 -1
- package/.output/public/_nuxt/C8AtdrMH.js +1 -0
- package/.output/public/_nuxt/CAWbHTgy.js +1 -0
- package/.output/public/_nuxt/{ixlNW2So.js → CFmvNggn.js} +1 -1
- package/.output/public/_nuxt/{gTrVszwd.js → CGplHfmR.js} +1 -1
- package/.output/public/_nuxt/CJPrV25_.js +1 -0
- package/.output/public/_nuxt/{U1MWjQMi.js → CKKEWapF.js} +1 -1
- package/.output/public/_nuxt/{C6qKcgOY.js → CLkkdThv.js} +22 -22
- package/.output/public/_nuxt/CNjv28J2.js +1 -0
- package/.output/public/_nuxt/{BLnYhy_t.js → CRRw0Thu.js} +1 -1
- package/.output/public/_nuxt/{10_wwHSz.js → CT8s4rqa.js} +1 -1
- package/.output/public/_nuxt/{C27WoGNZ.js → CZSOrxUy.js} +1 -1
- package/.output/public/_nuxt/{DNP5E1bC.js → CaNEL9JC.js} +5 -5
- package/.output/public/_nuxt/{DhuOKJda.js → CbTLg9oX.js} +1 -1
- package/.output/public/_nuxt/CfCXpVn5.js +1 -0
- package/.output/public/_nuxt/{C9WIgRRL.js → ChmNlvWR.js} +1 -1
- package/.output/public/_nuxt/{t8aDAkZ5.js → CiNxIhaq.js} +1 -1
- package/.output/public/_nuxt/{E3rXPwU8.js → Ck0QYdxe.js} +1 -1
- package/.output/public/_nuxt/{DUVzIl3o.js → Ckb0pu4-.js} +1 -1
- package/.output/public/_nuxt/{vScW1Zgm.js → CkwPRs1D.js} +1 -1
- package/.output/public/_nuxt/CmEJg8C6.js +2 -0
- package/.output/public/_nuxt/{CTCcEJU3.js → CmL_vMJD.js} +1 -1
- package/.output/public/_nuxt/{Bciqk4dX.js → Cq8zPxkT.js} +1 -1
- package/.output/public/_nuxt/{D8M722pn.js → CseYuM6E.js} +1 -1
- package/.output/public/_nuxt/{D0ifH682.js → CxRnB4NC.js} +1 -1
- package/.output/public/_nuxt/{CVdCqaby.js → D0zMyG8n.js} +1 -1
- package/.output/public/_nuxt/{DhI5cA_n.js → D12qPplu.js} +1 -1
- package/.output/public/_nuxt/{Beom-INj.js → D1XYB283.js} +1 -1
- package/.output/public/_nuxt/{BUghTae1.js → D2NxqyzW.js} +1 -1
- package/.output/public/_nuxt/{CZRnNmU8.js → D5xyrvFu.js} +1 -1
- package/.output/public/_nuxt/{2dNDtTiv.js → D6tVZcRs.js} +3 -3
- package/.output/public/_nuxt/{EgKnQnf-.js → D7N3EZ-I.js} +1 -1
- package/.output/public/_nuxt/{C5R5QaCA.js → D8iBB0Py.js} +1 -1
- package/.output/public/_nuxt/{XCjS70z4.js → D8oIH8m1.js} +1 -1
- package/.output/public/_nuxt/{BA_pRWwX.js → DB2zZev7.js} +1 -1
- package/.output/public/_nuxt/{Cl-LOSDV.js → DBrOAqkm.js} +1 -1
- package/.output/public/_nuxt/{DO9SFIh1.js → DDXDFweK.js} +1 -1
- package/.output/public/_nuxt/{B93pdGAW.js → DFZkCmLQ.js} +1 -1
- package/.output/public/_nuxt/{CLfF6dSn.js → DFpmIy6J.js} +1 -1
- package/.output/public/_nuxt/{BfcLZ_fC.js → DKZmgHNU.js} +1 -1
- package/.output/public/_nuxt/{CPutXj8l.js → DNcOC5zj.js} +1 -1
- package/.output/public/_nuxt/{BHtY0l0l.js → DQhm-UPG.js} +1 -1
- package/.output/public/_nuxt/{C2FxZbO_.js → DR8tGJhL.js} +1 -1
- package/.output/public/_nuxt/{D4UJwDQJ.js → DVAEVTjy.js} +1 -1
- package/.output/public/_nuxt/{2nOqGUPr.js → DVqrPkCJ.js} +1 -1
- package/.output/public/_nuxt/DWZ9ieYa.js +1 -0
- package/.output/public/_nuxt/{nnQqD5pb.js → DWj6VsZv.js} +1 -1
- package/.output/public/_nuxt/{C2vq6Te8.js → DXJ9PxCv.js} +1 -1
- package/.output/public/_nuxt/{CobqYwkp.js → D_ziPROx.js} +1 -1
- package/.output/public/_nuxt/{GtEM7xVU.js → Da2vwoYG.js} +1 -1
- package/.output/public/_nuxt/{Cc-2ziaZ.js → Ddz3HcBB.js} +1 -1
- package/.output/public/_nuxt/{Di-Nc75e.js → DgYei0bK.js} +1 -1
- package/.output/public/_nuxt/{DQh6I9z9.js → Di_3GV_R.js} +1 -1
- package/.output/public/_nuxt/{ByYh0uRg.js → Djog1f_e.js} +1 -1
- package/.output/public/_nuxt/{C4mwL7SE.js → Dkap2-Pj.js} +2 -2
- package/.output/public/_nuxt/{D5q8SnqE.js → DlJe_sHk.js} +1 -1
- package/.output/public/_nuxt/DlPOQpH_.js +1 -0
- package/.output/public/_nuxt/{DTGenhcA.js → DmYWMtVA.js} +1 -1
- package/.output/public/_nuxt/DmxKU7sH.js +1 -0
- package/.output/public/_nuxt/{DtjjnHnt.js → DowkFZ2V.js} +1 -1
- package/.output/public/_nuxt/{0NJ3PaRM.js → DsodHRrQ.js} +1 -1
- package/.output/public/_nuxt/{Bk6JUtIo.js → DuzpliIL.js} +1 -1
- package/.output/public/_nuxt/DvHS7_h2.js +1 -0
- package/.output/public/_nuxt/DwSY6_2U.js +1 -0
- package/.output/public/_nuxt/{Djs0Tlpa.js → DypJaSm-.js} +1 -1
- package/.output/public/_nuxt/{C71_a1IX.js → DzKaXH6P.js} +1 -1
- package/.output/public/_nuxt/{CBTkrk2M.js → FK-jSuOT.js} +1 -1
- package/.output/public/_nuxt/{ILEvizzp.js → Fc2JsQt4.js} +1 -1
- package/.output/public/_nuxt/{BIXrSYwR.js → IYCBGuRS.js} +1 -1
- package/.output/public/_nuxt/{JX1oqJI9.js → LRO7YHoH.js} +1 -1
- package/.output/public/_nuxt/{Kw0zy3FG.js → NrRzUJNY.js} +1 -1
- package/.output/public/_nuxt/{DJTCT0bl.js → OeVS0Rsb.js} +1 -1
- package/.output/public/_nuxt/{BmOtR1wX.js → OlF0QnKF.js} +1 -1
- package/.output/public/_nuxt/{DTAStixR.js → QuAoqY7t.js} +1 -1
- package/.output/public/_nuxt/{8q5NepGW.js → RlXHkmOd.js} +2 -2
- package/.output/public/_nuxt/{rfGRTJJW.js → TxMdabnL.js} +1 -1
- package/.output/public/_nuxt/{CZVzFlpI.js → WZnvL9Dh.js} +1 -1
- package/.output/public/_nuxt/ZvG7a1W3.js +1 -0
- package/.output/public/_nuxt/{N5XtbYVD.js → aPNZBVrG.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/495aca73-bfa5-456e-b96a-f02e009c72d3.json +1 -0
- package/.output/public/_nuxt/entry.C_udkZt9.css +1 -0
- package/.output/public/_nuxt/{D_4LPm1U.js → evY81hM3.js} +1 -1
- package/.output/public/_nuxt/{DzGy77Vr.js → h_bXa-f2.js} +1 -1
- package/.output/public/_nuxt/{D9nmzBAw.js → i6QBzaEi.js} +1 -1
- package/.output/public/_nuxt/{BGgwYWjH.js → iTVKJ1kw.js} +1 -1
- package/.output/public/_nuxt/{Um1vPiAz.js → j92uR3uR.js} +1 -1
- package/.output/public/_nuxt/jdUkeAj_.js +1 -0
- package/.output/public/_nuxt/{BmVLxnDU.js → jeRvcMHU.js} +1 -1
- package/.output/public/_nuxt/{SrncdpaW.js → kuv0zpKq.js} +1 -1
- package/.output/public/_nuxt/{DfF81NlA.js → l3lKQs7b.js} +1 -1
- package/.output/public/_nuxt/{4K03TkGA.js → pdYvpiud.js} +3 -3
- package/.output/public/_nuxt/{C39dQ88F.js → qIgZ7OXa.js} +1 -1
- package/.output/public/_nuxt/{DS2wStH1.js → qcVwZv8e.js} +1 -1
- package/.output/public/_nuxt/{g5MjDvm5.js → ru8fqqWs.js} +1 -1
- package/.output/public/_nuxt/{CQqCBrXj.js → sBzyvWMJ.js} +1 -1
- package/.output/public/_nuxt/{D3AZaldL.js → sgmhgpCS.js} +1 -1
- package/.output/public/_nuxt/{ChcO9s3o.js → y2jv0da-.js} +1 -1
- package/.output/public/_nuxt/{Dn5a-guE.js → yyS4-kAX.js} +1 -1
- package/.output/public/_nuxt/zIoBLBHF.js +1 -0
- package/.output/public/_nuxt/zpazwPgx.js +1 -0
- package/.output/server/chunks/build/CodeIcon-CWD5HcV7.mjs +1 -1
- 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/Img-CWLmvN1t.mjs +1 -1
- package/.output/server/chunks/build/MDC-Dx0YPDhe.mjs +1 -1
- 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/Table-DCwTlhCj.mjs +1 -1
- package/.output/server/chunks/build/Tooltip-TRyl6dje.mjs +1 -1
- package/.output/server/chunks/build/Tree-DUhXKd8y.mjs +1 -1
- package/.output/server/chunks/build/_uuid_-DfJaumTE.mjs +1 -1
- package/.output/server/chunks/build/{chat-CR3JIVEq.mjs → chat-m4-n9vC6.mjs} +516 -14
- package/.output/server/chunks/build/chat-m4-n9vC6.mjs.map +1 -0
- 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-CiVTAZuF.mjs +1 -1
- package/.output/server/chunks/build/docs-ChGwOPg5.mjs +1 -1
- package/.output/server/chunks/build/fetch-BB7Qzkwe.mjs +1 -1
- package/.output/server/chunks/build/index-CxDxc9fm.mjs +1 -1
- package/.output/server/chunks/build/server.mjs +2 -2
- package/.output/server/chunks/build/settings-B2KXoGcz.mjs +1 -1
- package/.output/server/chunks/build/useNotificationBus-BG5JNQf1.mjs +1 -1
- package/.output/server/chunks/build/view-n2sYa4Zh.mjs +1 -1
- package/.output/server/chunks/nitro/nitro.mjs +882 -866
- package/.output/server/chunks/routes/_ws/chat.mjs +40 -6
- package/.output/server/chunks/routes/_ws/chat.mjs.map +1 -1
- package/.output/server/chunks/routes/api/bridges/_id/contacts.get.mjs +84 -0
- package/.output/server/chunks/routes/api/bridges/_id/contacts.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/bridges/_id/send.post.mjs +70 -0
- package/.output/server/chunks/routes/api/bridges/_id/send.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/bridges/context.get.mjs +19 -18
- package/.output/server/chunks/routes/api/bridges/context.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/conversations/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/conversations/_id_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/dashboard/overview.get.mjs +1 -1
- package/.output/server/chunks/routes/api/documents/_id/public.get.mjs +1 -1
- package/.output/server/chunks/routes/api/documents/_id/restore.post.mjs +1 -1
- package/.output/server/chunks/routes/api/documents/by-path.post.mjs +1 -1
- package/.output/server/chunks/routes/api/documents/index.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/documents/index.put.mjs +1 -1
- package/.output/server/chunks/routes/api/fs/delete.post.mjs +1 -1
- package/.output/server/chunks/routes/api/fs/list.get.mjs +1 -1
- package/.output/server/chunks/routes/api/fs/mkdir.post.mjs +1 -1
- package/.output/server/chunks/routes/api/fs/move.post.mjs +1 -1
- package/.output/server/chunks/routes/api/fs/read.post.mjs +1 -1
- package/.output/server/chunks/routes/api/fs/rename.post.mjs +1 -1
- package/.output/server/chunks/routes/api/fs/write.post.mjs +1 -1
- package/.output/server/chunks/routes/api/health.get.mjs +1 -1
- package/.output/server/chunks/routes/api/home.get.mjs +1 -1
- package/.output/server/chunks/routes/api/hooks/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/hooks/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/hooks/stats.get.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get10.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get3.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get4.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get5.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get6.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get7.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get8.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get9.mjs +1 -1
- package/.output/server/chunks/routes/api/index.post3.mjs +1 -1
- package/.output/server/chunks/routes/api/index.post4.mjs +1 -1
- package/.output/server/chunks/routes/api/index.post5.mjs +1 -1
- package/.output/server/chunks/routes/api/index.put.mjs +1 -1
- package/.output/server/chunks/routes/api/memory/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/memory/context.get.mjs +1 -1
- package/.output/server/chunks/routes/api/memory/extract.post.mjs +1 -1
- package/.output/server/chunks/routes/api/memory/search.get.mjs +1 -1
- package/.output/server/chunks/routes/api/memory/store.post.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/index.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/index.put.mjs +1 -1
- package/.output/server/chunks/routes/api/secrets/_key_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/secrets/_key_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/secrets/_key_.put.mjs +1 -1
- package/.output/server/chunks/routes/api/skills/_name/delete.post.mjs +1 -1
- package/.output/server/chunks/routes/api/skills/_name/export.get.mjs +1 -1
- package/.output/server/chunks/routes/api/skills/_name/files/create.post.mjs +1 -1
- package/.output/server/chunks/routes/api/skills/_name/files/delete.post.mjs +1 -1
- package/.output/server/chunks/routes/api/skills/_name/files/read.post.mjs +1 -1
- package/.output/server/chunks/routes/api/skills/_name/files/write.post.mjs +1 -1
- package/.output/server/chunks/routes/api/skills/_name/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/skills/_name/rename.post.mjs +1 -1
- package/.output/server/chunks/routes/api/skills/_name/toggle.post.mjs +1 -1
- package/.output/server/chunks/routes/api/skills/create.post.mjs +1 -1
- package/.output/server/chunks/routes/api/skills/generate.post.mjs +1 -1
- package/.output/server/chunks/routes/api/skills/import.post.mjs +1 -1
- package/.output/server/chunks/routes/api/skills/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/skills/index.get2.mjs +1 -1
- package/.output/server/chunks/routes/api/skills/library/check-updates.get.mjs +1 -1
- package/.output/server/chunks/routes/api/skills/library/install.post.mjs +1 -1
- package/.output/server/chunks/routes/api/tasks/_id/restore.post.mjs +1 -1
- package/.output/server/chunks/routes/api/tasks/index.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/tasks/index.put.mjs +1 -1
- package/.output/server/chunks/routes/api/tasks/tags.get.mjs +1 -1
- package/.output/server/chunks/routes/api/usage/stats.get.mjs +1 -1
- package/.output/server/chunks/routes/api/user/email.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/webhooks/bluebubbles.post.mjs +1 -1
- package/.output/server/chunks/routes/api/webhooks/telegram.post.mjs +1 -1
- package/.output/server/chunks/routes/notifications.mjs +1 -1
- package/.output/server/chunks/routes/renderer.mjs +1 -1
- package/.output/server/chunks/routes/terminal.mjs +1 -1
- package/.output/server/index.mjs +1 -1
- package/.output/server/package.json +1 -1
- package/Claude/skills/_lib/api.py +3 -2
- package/Claude/skills/bridge/SKILL.md +25 -1
- package/Claude/skills/bridge/bridge.py +64 -0
- package/app/components/chat/ChatInput.vue +133 -5
- package/app/components/chat/MessageBubble.vue +188 -6
- package/app/composables/useAttachments.ts +196 -0
- package/app/composables/useChat.ts +14 -2
- package/app/pages/chat.vue +4 -2
- package/package.json +1 -1
- package/server/api/bridges/[id]/contacts.get.ts +57 -0
- package/server/api/bridges/[id]/send.post.ts +40 -0
- package/server/api/bridges/context.get.ts +19 -18
- package/server/bridge/adapters/imessage.ts +9 -2
- package/server/bridge/responder.ts +3 -3
- package/server/routes/_ws/chat.ts +61 -7
- package/server/utils/chat-session-manager.ts +20 -2
- package/shared/types/index.ts +27 -1
- package/.output/public/_nuxt/BH0QDWEm.js +0 -1
- package/.output/public/_nuxt/BK8S2ony.js +0 -1
- package/.output/public/_nuxt/BZrSPX0S.js +0 -1
- package/.output/public/_nuxt/BaZwjF8o.js +0 -1
- package/.output/public/_nuxt/BkfI94R8.js +0 -1
- package/.output/public/_nuxt/C3NST0BU.js +0 -1
- package/.output/public/_nuxt/CKxSHyww.js +0 -1
- package/.output/public/_nuxt/CSKJ-Ahh.js +0 -1
- package/.output/public/_nuxt/CWyMCJQH.js +0 -1
- package/.output/public/_nuxt/CYPO5o_C.js +0 -1
- package/.output/public/_nuxt/CqNwHCpo.js +0 -1
- package/.output/public/_nuxt/CwPdIZ9J.js +0 -1
- package/.output/public/_nuxt/D5jZq8b3.js +0 -1
- package/.output/public/_nuxt/DH4YkDAi.js +0 -1
- package/.output/public/_nuxt/DPklr_tJ.js +0 -2
- package/.output/public/_nuxt/DQM4eBdt.js +0 -1
- package/.output/public/_nuxt/DUAAXJ6Q.js +0 -1
- package/.output/public/_nuxt/DmmdPt_5.js +0 -1
- package/.output/public/_nuxt/H6JbrRBU.js +0 -1
- package/.output/public/_nuxt/builds/meta/515be38f-7222-4e4b-80cb-cef7594b1834.json +0 -1
- package/.output/public/_nuxt/entry.NKPfH2kE.css +0 -1
- package/.output/server/chunks/build/chat-CR3JIVEq.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as y,a_ as m,S as p,T as f,U as d,a4 as v,X as g,C as e,a3 as O,q as P,M as B,V as w,bE as M,bF as q,e as F,bf as A,a9 as $}from"./D6tVZcRs.js";import{i as D}from"./DB2zZev7.js";import{F as k,u as h,a as R}from"./CAWbHTgy.js";import{u as E}from"./DWZ9ieYa.js";import{g as K}from"./DvHS7_h2.js";var T=y({__name:"DialogClose",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(i){const l=i;m();const a=D();return(t,s)=>(f(),p(e(O),g(l,{type:t.as==="button"?"button":void 0,onClick:s[0]||(s[0]=c=>e(a).onOpenChange(!1))}),{default:d(()=>[v(t.$slots,"default")]),_:3},16,["type"]))}}),te=T,N=y({__name:"DialogContentImpl",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(i,{emit:l}){const a=i,t=l,s=D(),{forwardRef:c,currentElement:_}=m();return s.titleId||=E(void 0,"reka-dialog-title"),s.descriptionId||=E(void 0,"reka-dialog-description"),P(()=>{s.contentElement=_,B()!==document.body&&(s.triggerElement.value=B())}),(n,r)=>(f(),p(e(k),{"as-child":"",loop:"",trapped:a.trapFocus,onMountAutoFocus:r[5]||(r[5]=o=>t("openAutoFocus",o)),onUnmountAutoFocus:r[6]||(r[6]=o=>t("closeAutoFocus",o))},{default:d(()=>[w(e(M),g({id:e(s).contentId,ref:e(c),as:n.as,"as-child":n.asChild,"disable-outside-pointer-events":n.disableOutsidePointerEvents,role:"dialog","aria-describedby":e(s).descriptionId,"aria-labelledby":e(s).titleId,"data-state":e(K)(e(s).open.value)},n.$attrs,{onDismiss:r[0]||(r[0]=o=>e(s).onOpenChange(!1)),onEscapeKeyDown:r[1]||(r[1]=o=>t("escapeKeyDown",o)),onFocusOutside:r[2]||(r[2]=o=>t("focusOutside",o)),onInteractOutside:r[3]||(r[3]=o=>t("interactOutside",o)),onPointerDownOutside:r[4]||(r[4]=o=>t("pointerDownOutside",o))}),{default:d(()=>[v(n.$slots,"default")]),_:3},16,["id","as","as-child","disable-outside-pointer-events","aria-describedby","aria-labelledby","data-state"])]),_:3},8,["trapped"]))}}),I=N,S=y({__name:"DialogContentModal",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(i,{emit:l}){const a=i,t=l,s=D(),c=q(t),{forwardRef:_,currentElement:n}=m();return h(n),(r,o)=>(f(),p(I,g({...a,...e(c)},{ref:e(_),"trap-focus":e(s).open.value,"disable-outside-pointer-events":!0,onCloseAutoFocus:o[0]||(o[0]=u=>{u.defaultPrevented||(u.preventDefault(),e(s).triggerElement.value?.focus())}),onPointerDownOutside:o[1]||(o[1]=u=>{const C=u.detail.originalEvent,b=C.button===0&&C.ctrlKey===!0;(C.button===2||b)&&u.preventDefault()}),onFocusOutside:o[2]||(o[2]=u=>{u.preventDefault()})}),{default:d(()=>[v(r.$slots,"default")]),_:3},16,["trap-focus"]))}}),L=S,V=y({__name:"DialogContentNonModal",props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(i,{emit:l}){const a=i,s=q(l);m();const c=D(),_=F(!1),n=F(!1);return(r,o)=>(f(),p(I,g({...a,...e(s)},{"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:o[0]||(o[0]=u=>{u.defaultPrevented||(_.value||e(c).triggerElement.value?.focus(),u.preventDefault()),_.value=!1,n.value=!1}),onInteractOutside:o[1]||(o[1]=u=>{u.defaultPrevented||(_.value=!0,u.detail.originalEvent.type==="pointerdown"&&(n.value=!0));const C=u.target;e(c).triggerElement.value?.contains(C)&&u.preventDefault(),u.detail.originalEvent.type==="focusin"&&n.value&&u.preventDefault()})}),{default:d(()=>[v(r.$slots,"default")]),_:3},16))}}),U=V,j=y({__name:"DialogContent",props:{forceMount:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(i,{emit:l}){const a=i,t=l,s=D(),c=q(t),{forwardRef:_}=m();return(n,r)=>(f(),p(e(A),{present:n.forceMount||e(s).open.value},{default:d(()=>[e(s).modal.value?(f(),p(L,g({key:0,ref:e(_)},{...a,...e(c),...n.$attrs}),{default:d(()=>[v(n.$slots,"default")]),_:3},16)):(f(),p(U,g({key:1,ref:e(_)},{...a,...e(c),...n.$attrs}),{default:d(()=>[v(n.$slots,"default")]),_:3},16))]),_:3},8,["present"]))}}),oe=j,H=y({__name:"DialogDescription",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"p"}},setup(i){const l=i;m();const a=D();return(t,s)=>(f(),p(e(O),g(l,{id:e(a).descriptionId}),{default:d(()=>[v(t.$slots,"default")]),_:3},16,["id"]))}}),se=H,X=y({__name:"DialogOverlayImpl",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(i){const l=D();return R(!0),m(),(a,t)=>(f(),p(e(O),{as:a.as,"as-child":a.asChild,"data-state":e(l).open.value?"open":"closed",style:{"pointer-events":"auto"}},{default:d(()=>[v(a.$slots,"default")]),_:3},8,["as","as-child","data-state"]))}}),z=X,G=y({__name:"DialogOverlay",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(i){const l=D(),{forwardRef:a}=m();return(t,s)=>e(l)?.modal.value?(f(),p(e(A),{key:0,present:t.forceMount||e(l).open.value},{default:d(()=>[w(z,g(t.$attrs,{ref:e(a),as:t.as,"as-child":t.asChild}),{default:d(()=>[v(t.$slots,"default")]),_:3},16,["as","as-child"])]),_:3},8,["present"])):$("v-if",!0)}}),ae=G,J=y({__name:"DialogTitle",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"h2"}},setup(i){const l=i,a=D();return m(),(t,s)=>(f(),p(e(O),g(l,{id:e(a).titleId}),{default:d(()=>[v(t.$slots,"default")]),_:3},16,["id"]))}}),re=J;export{oe as D,re as a,se as b,te as c,ae as d};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{bd as g,c as o,ah as u,q as d,
|
|
1
|
+
import{bd as g,c as o,ah as u,q as d,P as p,am as s,S as v,T as f,U as m,a4 as b,aa as x,ae as y,C as i,W as w,a3 as h}from"./D6tVZcRs.js";const a={meta:"",ctrl:"",alt:"",win:"⊞",command:"⌘",shift:"⇧",control:"⌃",option:"⌥",enter:"↵",delete:"⌦",backspace:"⌫",escape:"Esc",tab:"⇥",capslock:"⇪",arrowup:"↑",arrowright:"→",arrowdown:"↓",arrowleft:"←",pageup:"⇞",pagedown:"⇟",home:"↖",end:"↘"},K=()=>{const e=o(()=>navigator&&navigator.userAgent&&navigator.userAgent.match(/Macintosh;/)),r=u({meta:" ",alt:" ",ctrl:" "});d(()=>{r.meta=e.value?a.command:"Ctrl",r.ctrl=e.value?a.control:"Ctrl",r.alt=e.value?a.option:"Alt"});function n(t){if(t)return["meta","alt","ctrl"].includes(t)?r[t]:a[t]||t}return{macOS:e,getKbdKey:n}},k=g(K),C={base:"inline-flex items-center justify-center px-1 rounded-sm font-medium font-sans uppercase",variants:{color:{primary:"",secondary:"",success:"",info:"",warning:"",error:"",neutral:""},variant:{solid:"",outline:"",soft:"",subtle:""},size:{sm:"h-4 min-w-[16px] text-[10px]",md:"h-5 min-w-[20px] text-[11px]",lg:"h-6 min-w-[24px] text-[12px]"}},compoundVariants:[{color:"primary",variant:"solid",class:"text-inverted bg-primary"},{color:"secondary",variant:"solid",class:"text-inverted bg-secondary"},{color:"success",variant:"solid",class:"text-inverted bg-success"},{color:"info",variant:"solid",class:"text-inverted bg-info"},{color:"warning",variant:"solid",class:"text-inverted bg-warning"},{color:"error",variant:"solid",class:"text-inverted bg-error"},{color:"primary",variant:"outline",class:"ring ring-inset ring-primary/50 text-primary"},{color:"secondary",variant:"outline",class:"ring ring-inset ring-secondary/50 text-secondary"},{color:"success",variant:"outline",class:"ring ring-inset ring-success/50 text-success"},{color:"info",variant:"outline",class:"ring ring-inset ring-info/50 text-info"},{color:"warning",variant:"outline",class:"ring ring-inset ring-warning/50 text-warning"},{color:"error",variant:"outline",class:"ring ring-inset ring-error/50 text-error"},{color:"primary",variant:"soft",class:"text-primary bg-primary/10"},{color:"secondary",variant:"soft",class:"text-secondary bg-secondary/10"},{color:"success",variant:"soft",class:"text-success bg-success/10"},{color:"info",variant:"soft",class:"text-info bg-info/10"},{color:"warning",variant:"soft",class:"text-warning bg-warning/10"},{color:"error",variant:"soft",class:"text-error bg-error/10"},{color:"primary",variant:"subtle",class:"text-primary ring ring-inset ring-primary/25 bg-primary/10"},{color:"secondary",variant:"subtle",class:"text-secondary ring ring-inset ring-secondary/25 bg-secondary/10"},{color:"success",variant:"subtle",class:"text-success ring ring-inset ring-success/25 bg-success/10"},{color:"info",variant:"subtle",class:"text-info ring ring-inset ring-info/25 bg-info/10"},{color:"warning",variant:"subtle",class:"text-warning ring ring-inset ring-warning/25 bg-warning/10"},{color:"error",variant:"subtle",class:"text-error ring ring-inset ring-error/25 bg-error/10"},{color:"neutral",variant:"solid",class:"text-inverted bg-inverted"},{color:"neutral",variant:"outline",class:"ring ring-inset ring-accented text-default bg-default"},{color:"neutral",variant:"soft",class:"text-default bg-elevated"},{color:"neutral",variant:"subtle",class:"ring ring-inset ring-accented text-default bg-elevated"}],defaultVariants:{variant:"outline",color:"neutral",size:"md"}},S={__name:"UKbd",props:{as:{type:null,required:!1,default:"kbd"},value:{type:null,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},class:{type:null,required:!1}},setup(e){const r=e,{getKbdKey:n}=k(),t=p(),c=o(()=>s({extend:s(C),...t.ui?.kbd||{}}));return(l,q)=>(f(),v(i(h),{as:e.as,class:w(c.value({class:r.class,color:r.color,variant:r.variant,size:r.size}))},{default:m(()=>[b(l.$slots,"default",{},()=>[x(y(i(n)(e.value)),1)])]),_:3},8,["as","class"]))}};export{S as _,k as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as fe}from"./wO6z2ugJ.js";import{_ as ve}from"./BR8bKz8h.js";import{e as h,c as j,a as te,q as re,G as L,R as k,ab as n,T as l,ai as N,C as t,S as i,Q as A,_ as ae,U as Z,ae as X,bm as de,W as le,aa as O,a9 as J,O as ye,P as he,L as _e,N as be,am as ue,V as ge,bl as xe,a2 as we,ag as ke,aW as ce,bg as $e}from"./2dNDtTiv.js";import{_ as Ce,a as De}from"./7oCGSglN.js";import{_ as Se}from"./C2vq6Te8.js";import{_ as me}from"./B93pdGAW.js";import{_ as Ue,a as Te}from"./CqNwHCpo.js";import{u as Fe}from"./D5jZq8b3.js";import{_ as je}from"./BUghTae1.js";import{_ as Ve}from"./BfcLZ_fC.js";import{_ as qe}from"./1zUTf4AP.js";import{_ as Ie}from"./DuvzM-P1.js";import{_ as Pe}from"./DJTCT0bl.js";import{_ as ze}from"./DYbZBZet.js";import{_ as Me,a as Ee}from"./C6qKcgOY.js";import{c as Be,_ as Oe}from"./BHtY0l0l.js";import{_ as Ne}from"./rfGRTJJW.js";import{i as Le,d as Re,_ as Ae,u as Ke}from"./BLnYhy_t.js";import{u as He}from"./DzGy77Vr.js";import{u as pe}from"./CVqlefTY.js";import"./DhI5cA_n.js";import"./zq-a1TeT.js";import"./CKxSHyww.js";import"./DH4YkDAi.js";import"./CWyMCJQH.js";import"./CYPO5o_C.js";import"./BIXrSYwR.js";import"./DtjjnHnt.js";import"./CQqCBrXj.js";import"./BS2ZNXI1.js";import"./DY3uK7wM.js";import"./DS2wStH1.js";import"./apYB9dr5.js";import"./DUAAXJ6Q.js";import"./C6Y-ieo6.js";import"./H6JbrRBU.js";import"./Db4KMnt8.js";import"./D8lwrAYS.js";import"./BA_pRWwX.js";import"./BZrSPX0S.js";import"./DEd2xVbS.js";import"./DmmdPt_5.js";import"./Bk6JUtIo.js";import"./CuxrHsu-.js";import"./vScW1Zgm.js";import"./Vcq4gwWv.js";import"./t8aDAkZ5.js";function Qe(){const d=h([]),m=h(null),c=h(!1),_=h(null),r=h("");function p(o,a=!1){const s=o.type==="directory"?void 0:b(o.name);return{id:o.path,label:o.name,icon:s,path:o.path,type:o.type,defaultExpanded:a,children:o.children?.map(U=>p(U))}}function b(o){switch(o.split(".").pop()?.toLowerCase()){case"md":return"i-lucide-file-text";case"ts":case"tsx":return"i-lucide-file-code";case"js":case"jsx":return"i-lucide-file-code";case"vue":return"i-lucide-file-code";case"json":return"i-lucide-file-json";case"css":case"scss":return"i-lucide-file-code";case"png":case"jpg":case"jpeg":case"gif":case"svg":return"i-lucide-file-image";default:return"i-lucide-file"}}async function v(o="/"){c.value=!0,_.value=null;try{const a=await $fetch("/api/fs/list",{query:{path:o,recursive:"true"}});d.value=a.data.map(s=>p(s,!0))}catch(a){_.value="Failed to load file tree",console.error("Failed to load file tree:",a)}finally{c.value=!1}}async function T(o){try{return(await $fetch("/api/fs/read",{method:"POST",body:{path:o}})).data}catch(a){throw console.error("Failed to read file:",a),a}}async function F(o,a){try{return(await $fetch("/api/fs/write",{method:"POST",body:{path:o,content:a}})).data}catch(s){throw console.error("Failed to write file:",s),s}}async function C(o,a){const s=o==="/"?`/${a}`:`${o}/${a}`;return await F(s,""),await v(),s}async function g(o,a){const s=o==="/"?`/${a}`:`${o}/${a}`;try{return await $fetch("/api/fs/mkdir",{method:"POST",body:{path:s}}),await v(),s}catch(U){throw console.error("Failed to create folder:",U),U}}async function M(o,a){const s=o.split("/");s.pop();const U=[...s,a].join("/");try{return await $fetch("/api/fs/rename",{method:"POST",body:{oldPath:o,newPath:U}}),await v(),U}catch(f){throw console.error("Failed to rename:",f),f}}async function w(o){try{await $fetch("/api/fs/delete",{method:"POST",body:{path:o}}),m.value===o&&(m.value=null),await v()}catch(a){throw console.error("Failed to delete:",a),a}}async function $(o,a){try{const s=await $fetch("/api/fs/move",{method:"POST",body:{sourcePath:o,destinationPath:a}});return await v(),s.data.newPath}catch(s){throw console.error("Failed to move:",s),s}}const q=j(()=>{if(!r.value)return d.value;const o=r.value.toLowerCase();function a(s){return s.reduce((U,f)=>{const I=f.label.toLowerCase().includes(o),V=f.children?a(f.children):[];return(I||V.length>0)&&U.push({...f,children:V.length>0?V:f.children,defaultExpanded:V.length>0||I}),U},[])}return a(d.value)});return{items:d,filteredItems:q,selectedFile:m,loading:c,error:_,searchQuery:r,loadTree:v,readFile:T,writeFile:F,createFile:C,createFolder:g,renameItem:M,deleteItem:w,moveItem:$}}const We={class:"h-full flex flex-col"},Ge={class:"-mt-1 pb-2"},Je={key:0,class:"flex items-center justify-center py-8"},Xe={key:1,class:"h-full min-h-32 flex flex-col items-center justify-center text-dimmed text-sm"},Ye=["onContextmenu","onDragstart","onDragover","onDrop"],Ze={class:"truncate"},et={class:"flex items-center gap-2"},tt={class:"flex justify-end gap-2"},at={class:"flex items-center gap-2"},lt={class:"flex justify-end gap-2"},ot={class:"flex items-center gap-2"},nt={class:"flex justify-end gap-2"},it={class:"flex items-center gap-2 text-error"},st={key:0,class:"text-sm text-dimmed mt-1"},dt={class:"flex justify-end gap-2"},rt=te({__name:"FileTree",emits:["select"],setup(d,{emit:m}){const c=m,{filteredItems:_,selectedFile:r,loading:p,searchQuery:b,loadTree:v,createFile:T,createFolder:F,renameItem:C,deleteItem:g,moveItem:M}=Qe(),w=h(null),$=h(null);function q(S,e){w.value=e,S.dataTransfer&&(S.dataTransfer.effectAllowed="move",S.dataTransfer.setData("text/plain",e.path))}function o(S,e){w.value&&e.type==="directory"&&w.value.path!==e.path&&(e.path.startsWith(w.value.path+"/")||(S.preventDefault(),$.value=e))}function a(){$.value=null}function s(){w.value=null,$.value=null}async function U(S,e){if(S.preventDefault(),!(!w.value||e.type!=="directory")){try{await M(w.value.path,e.path)}catch{}w.value=null,$.value=null}}const f=h(null),I=h(!1),V=h(!1),E=h(!1),P=h(!1),y=h(""),Y=j(()=>[[{label:"New File",icon:"i-lucide-file-plus",onSelect:()=>{y.value="",I.value=!0}},{label:"New Folder",icon:"i-lucide-folder-plus",onSelect:()=>{y.value="",V.value=!0}}],[{label:"Rename",icon:"i-lucide-pencil",onSelect:()=>{f.value&&(y.value=f.value.label,E.value=!0)}},{label:"Delete",icon:"i-lucide-trash-2",color:"error",onSelect:()=>{P.value=!0}}]]);function ee(S){S.type==="file"&&(r.value=S.path,c("select",S.path))}async function Q(){if(!y.value.trim())return;const S=f.value?.type==="directory"?f.value.path:"/";let e=y.value.trim();e.includes(".")||(e+=".md");try{const K=await T(S,e);r.value=K,c("select",K)}catch{}I.value=!1,y.value=""}async function D(){if(!y.value.trim())return;const S=f.value?.type==="directory"?f.value.path:"/";try{await F(S,y.value.trim())}catch{}V.value=!1,y.value=""}async function x(){if(!(!f.value||!y.value.trim())){try{await C(f.value.path,y.value.trim())}catch{}E.value=!1,y.value=""}}async function H(){if(f.value){try{await g(f.value.path)}catch{}P.value=!1}}return re(()=>{v()}),(S,e)=>{const K=fe,oe=ve,B=ae,ne=Ce,ie=De,R=le,W=Se,z=me;return k(),L("div",We,[n("div",Ge,[l(K,{modelValue:t(b),"onUpdate:modelValue":e[0]||(e[0]=u=>N(b)?b.value=u:null),placeholder:"Search files...",icon:"i-lucide-search",size:"sm",class:"w-full"},null,8,["modelValue"])]),l(oe,{class:"mt-2"}),l(ie,{items:t(Y),class:"flex-1 h-full overflow-auto p-2",onContextmenu:e[2]||(e[2]=u=>f.value=null)},{default:i(()=>[t(p)?(k(),L("div",Je,[l(B,{name:"i-lucide-loader-2",class:"size-6 animate-spin text-dimmed"})])):t(_).length===0?(k(),L("div",Xe,[l(B,{name:"i-lucide-folder-open",class:"size-8 mx-auto mb-2 opacity-50"}),e[14]||(e[14]=n("p",null,"No files found",-1)),e[15]||(e[15]=n("p",{class:"text-xs mt-1"}," Right-click to create a file ",-1))])):(k(),A(ne,{key:2,items:t(_),"get-key":u=>u.id,color:"primary","expanded-icon":"i-lucide-folder-open","collapsed-icon":"i-lucide-folder",onSelect:e[1]||(e[1]=(u,se)=>ee(se))},{item:i(({item:u,expanded:se})=>[n("div",{class:Z(["flex items-center gap-2 w-full",{"bg-primary/10 rounded":t($)?.path===u.path}]),draggable:"true",onContextmenu:G=>f.value=u,onDragstart:G=>q(G,u),onDragover:G=>o(G,u),onDragleave:a,onDragend:s,onDrop:G=>U(G,u)},[u.children?.length?(k(),A(B,{key:0,name:se?"i-lucide-folder-open":"i-lucide-folder",class:"size-4 shrink-0 text-dimmed"},null,8,["name"])):u.icon?(k(),A(B,{key:1,name:u.icon,class:"size-4 shrink-0 text-dimmed"},null,8,["name"])):(k(),A(B,{key:2,name:"i-lucide-file",class:"size-4 shrink-0 text-dimmed"})),n("span",Ze,X(u.label),1)],42,Ye)]),_:1},8,["items","get-key"]))]),_:1},8,["items"]),l(z,{open:t(I),"onUpdate:open":e[5]||(e[5]=u=>N(I)?I.value=u:null)},{content:i(()=>[l(W,null,{header:i(()=>[n("div",et,[l(B,{name:"i-lucide-file-plus",class:"size-5"}),e[16]||(e[16]=n("span",{class:"font-semibold"},"New File",-1))])]),footer:i(()=>[n("div",tt,[l(R,{color:"neutral",variant:"ghost",onClick:e[4]||(e[4]=u=>I.value=!1)},{default:i(()=>[...e[17]||(e[17]=[O(" Cancel ",-1)])]),_:1}),l(R,{onClick:Q},{default:i(()=>[...e[18]||(e[18]=[O(" Create ",-1)])]),_:1})])]),default:i(()=>[l(K,{modelValue:t(y),"onUpdate:modelValue":e[3]||(e[3]=u=>N(y)?y.value=u:null),placeholder:"filename.md",autofocus:"",onKeyup:de(Q,["enter"])},null,8,["modelValue"])]),_:1})]),_:1},8,["open"]),l(z,{open:t(V),"onUpdate:open":e[8]||(e[8]=u=>N(V)?V.value=u:null)},{content:i(()=>[l(W,null,{header:i(()=>[n("div",at,[l(B,{name:"i-lucide-folder-plus",class:"size-5"}),e[19]||(e[19]=n("span",{class:"font-semibold"},"New Folder",-1))])]),footer:i(()=>[n("div",lt,[l(R,{color:"neutral",variant:"ghost",onClick:e[7]||(e[7]=u=>V.value=!1)},{default:i(()=>[...e[20]||(e[20]=[O(" Cancel ",-1)])]),_:1}),l(R,{onClick:D},{default:i(()=>[...e[21]||(e[21]=[O(" Create ",-1)])]),_:1})])]),default:i(()=>[l(K,{modelValue:t(y),"onUpdate:modelValue":e[6]||(e[6]=u=>N(y)?y.value=u:null),placeholder:"folder-name",autofocus:"",onKeyup:de(D,["enter"])},null,8,["modelValue"])]),_:1})]),_:1},8,["open"]),l(z,{open:t(E),"onUpdate:open":e[11]||(e[11]=u=>N(E)?E.value=u:null)},{content:i(()=>[l(W,null,{header:i(()=>[n("div",ot,[l(B,{name:"i-lucide-pencil",class:"size-5"}),e[22]||(e[22]=n("span",{class:"font-semibold"},"Rename",-1))])]),footer:i(()=>[n("div",nt,[l(R,{color:"neutral",variant:"ghost",onClick:e[10]||(e[10]=u=>E.value=!1)},{default:i(()=>[...e[23]||(e[23]=[O(" Cancel ",-1)])]),_:1}),l(R,{onClick:x},{default:i(()=>[...e[24]||(e[24]=[O(" Rename ",-1)])]),_:1})])]),default:i(()=>[l(K,{modelValue:t(y),"onUpdate:modelValue":e[9]||(e[9]=u=>N(y)?y.value=u:null),placeholder:"new-name",autofocus:"",onKeyup:de(x,["enter"])},null,8,["modelValue"])]),_:1})]),_:1},8,["open"]),l(z,{open:t(P),"onUpdate:open":e[13]||(e[13]=u=>N(P)?P.value=u:null)},{content:i(()=>[l(W,null,{header:i(()=>[n("div",it,[l(B,{name:"i-lucide-trash-2",class:"size-5"}),e[25]||(e[25]=n("span",{class:"font-semibold"},"Delete",-1))])]),footer:i(()=>[n("div",dt,[l(R,{color:"neutral",variant:"ghost",onClick:e[12]||(e[12]=u=>P.value=!1)},{default:i(()=>[...e[28]||(e[28]=[O(" Cancel ",-1)])]),_:1}),l(R,{color:"error",onClick:H},{default:i(()=>[...e[29]||(e[29]=[O(" Delete ",-1)])]),_:1})])]),default:i(()=>[n("p",null,[e[26]||(e[26]=O(" Are you sure you want to delete ",-1)),n("strong",null,X(t(f)?.label),1),e[27]||(e[27]=O("? ",-1))]),t(f)?.type==="directory"?(k(),L("p",st," This will delete all files and folders inside. ")):J("",!0)]),_:1})]),_:1},8,["open"])])}}}),ut=Object.assign(rt,{__name:"FilesFileTree"}),ct={base:"hidden lg:flex",variants:{side:{left:"",right:""}}},mt={__name:"UDashboardSidebarCollapse",props:{color:{type:null,required:!1,default:"neutral"},variant:{type:null,required:!1,default:"ghost"},side:{type:String,required:!1,default:"left"},label:{type:String,required:!1},activeColor:{type:null,required:!1},activeVariant:{type:null,required:!1},size:{type:null,required:!1},square:{type:Boolean,required:!1},block:{type:Boolean,required:!1},loadingAuto:{type:Boolean,required:!1},onClick:{type:[Function,Array],required:!1},class:{type:null,required:!1},ui:{type:null,required:!1},icon:{type:null,required:!1},avatar:{type:Object,required:!1},leading:{type:Boolean,required:!1},leadingIcon:{type:null,required:!1},trailing:{type:Boolean,required:!1},trailingIcon:{type:null,required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1},as:{type:null,required:!1},type:{type:null,required:!1},disabled:{type:Boolean,required:!1},exactActiveClass:{type:String,required:!1},viewTransition:{type:Boolean,required:!1}},setup(d){const m=d,c=ye(he(m,"icon","side","class")),{t:_}=_e(),r=be(),{sidebarCollapsed:p,collapseSidebar:b}=Fe({sidebarCollapsed:h(!1),collapseSidebar:()=>{}}),v=j(()=>ue({extend:ue(ct),...r.ui?.dashboardSidebarCollapse||{}}));return(T,F)=>(k(),A(le,ge({...t(c),icon:m.icon||(t(p)?t(r).ui.icons.panelOpen:t(r).ui.icons.panelClose),"aria-label":t(p)?t(_)("dashboardSidebarCollapse.expand"):t(_)("dashboardSidebarCollapse.collapse"),...T.$attrs},{class:v.value({class:m.class,side:m.side}),onClick:F[0]||(F[0]=C=>t(b)?.(!t(p)))}),null,16,["class"]))}},pt={class:"border-b border-default px-4 py-3 bg-elevated/50"},ft={class:"flex flex-wrap items-start gap-3"},vt={class:"flex items-start gap-2 py-0.5"},yt={class:"min-w-0"},ht={class:"font-medium"},_t={class:"text-xs text-dimmed truncate"},bt=te({__name:"DocumentMetadata",props:{metadata:{},projects:{}},emits:["update:metadata"],setup(d,{emit:m}){const c=d,_=m,r=[{label:"Hidden",value:"hidden",icon:"i-lucide-lock",description:"Hidden behind authentication and never viewable by the public"},{label:"Private",value:"private",icon:"i-lucide-eye-off",description:"Viewable by anyone with the link, but will not be indexed by search engines"},{label:"Public",value:"public",icon:"i-lucide-eye",description:"Viewable to the public and indexed by search engines"}],p=j(()=>c.metadata.shared?c.metadata.shareType||"private":"hidden"),b=j(()=>r.find(g=>g.value===p.value)),v=j({get:()=>c.metadata.tags||[],set:g=>_("update:metadata",{tags:g})});function T(g){_("update:metadata",{projectId:g||void 0})}function F(g){g==="hidden"?_("update:metadata",{shared:!1,shareType:void 0}):_("update:metadata",{shared:!0,shareType:g})}const C=j(()=>[{label:"None",value:void 0},...c.projects.map(g=>({label:g.name,value:g.id}))]);return(g,M)=>{const w=Ie,$=Pe,q=ae,o=ze;return k(),L("div",pt,[n("div",ft,[l($,{label:"Project",class:"w-40"},{default:i(()=>[l(w,{"model-value":d.metadata.projectId,items:t(C),"value-key":"value",placeholder:"None",class:"w-full","search-input":!1,"onUpdate:modelValue":T},null,8,["model-value","items"])]),_:1}),l($,{label:"Visibility",class:"w-44"},{default:i(()=>[l(w,{"model-value":t(p),items:r,"value-key":"value",class:"w-full","search-input":!1,"onUpdate:modelValue":F},{leading:i(()=>[t(b)?(k(),A(q,{key:0,name:t(b).icon,class:"size-4 text-dimmed"},null,8,["name"])):J("",!0)]),item:i(({item:a})=>[n("div",vt,[l(q,{name:a.icon,class:"size-4 mt-0.5 shrink-0"},null,8,["name"]),n("div",yt,[n("div",ht,X(a.label),1),n("div",_t,X(a.description),1)])])]),_:1},8,["model-value"])]),_:1}),l($,{label:"Tags",class:"flex-1 min-w-48"},{default:i(()=>[l(o,{modelValue:t(v),"onUpdate:modelValue":M[0]||(M[0]=a=>N(v)?v.value=a:null),placeholder:"Add tags...",class:"w-full"},null,8,["modelValue"])]),_:1})])])}}}),gt=Object.assign(bt,{__name:"EditorDocumentMetadata"}),xt=Be(Ne),wt={class:"h-full flex flex-col"},kt={class:"border-b border-default py-2 flex items-center justify-between"},$t={class:"flex items-center gap-2 text-sm text-dimmed min-w-0"},Ct={class:"truncate"},Dt={key:0,class:"w-40"},St={class:"flex items-center gap-3"},Ut={key:0,class:"flex items-center gap-1 text-sm text-dimmed"},Tt={class:"space-y-4"},Ft={class:"flex items-center gap-3"},jt={class:"flex items-center gap-3"},Vt={class:"flex items-center gap-3"},qt=te({__name:"DocumentEditor",props:{document:{},body:{},metadata:{},filePath:{},saveStatus:{},isDirty:{type:Boolean},metadataDirty:{type:Boolean}},emits:["update:body","update:metadata","save"],async setup(d,{emit:m}){let c,_;const r=d,p=m,{data:b}=([c,_]=xe(()=>He("/api/projects","$c96-63t_ij")),c=await c,_(),c),v=j(()=>b.value?.data||[]),T=h(!0),{editorMode:F}=pe(),C=j({get:()=>F.value==="editor",set:D=>F.value=D?"editor":"code"}),g=j(()=>r.document.fileType==="markdown"||Le(r.filePath)),M=j(()=>Re(r.filePath)),w=j(()=>g.value),$=[[{kind:"heading",level:1,icon:"i-lucide-heading-1"},{kind:"heading",level:2,icon:"i-lucide-heading-2"},{kind:"heading",level:3,icon:"i-lucide-heading-3"}],[{kind:"mark",mark:"bold",icon:"i-lucide-bold"},{kind:"mark",mark:"italic",icon:"i-lucide-italic"},{kind:"mark",mark:"code",icon:"i-lucide-code"}],[{kind:"bulletList",icon:"i-lucide-list"},{kind:"orderedList",icon:"i-lucide-list-ordered"},{kind:"blockquote",icon:"i-lucide-quote"}],[{kind:"link",icon:"i-lucide-link"},{kind:"codeBlock",icon:"i-lucide-file-code"},{kind:"horizontalRule",icon:"i-lucide-minus"}],[{kind:"undo",icon:"i-lucide-undo"},{kind:"redo",icon:"i-lucide-redo"}]],q=j(()=>{switch(r.saveStatus){case"saving":return"i-lucide-loader-2";case"saved":return"i-lucide-check";case"error":return"i-lucide-alert-circle";default:return r.isDirty||r.metadataDirty?"i-lucide-circle-dot":null}}),o=j(()=>{switch(r.saveStatus){case"saving":return"Saving...";case"saved":return"Saved";case"error":return"Error saving";default:return r.isDirty||r.metadataDirty?"Unsaved changes":""}}),a=j(()=>r.body||void 0);function s(D){p("update:body",D)}function U(D){p("update:metadata",D)}function f(D){(D.metaKey||D.ctrlKey)&&D.key==="s"&&(D.preventDefault(),p("save"))}re(()=>window.addEventListener("keydown",f)),we(()=>window.removeEventListener("keydown",f));const I=ke(),V=j(()=>r.document?.id?`${window.location.origin}/view/${r.document.id}`:""),E=h(!1),P=h(!1);function y(){r.metadata.shared?ee():P.value=!0}const{copy:Y}=Ke();async function ee(){await Y(V.value)?(E.value=!0,I.add({title:"Link copied!",icon:"i-lucide-check",color:"success"}),setTimeout(()=>{E.value=!1},2e3)):I.add({title:"Failed to copy link",icon:"i-lucide-x",color:"error"})}function Q(D,x){p("update:metadata",{shared:D,shareType:x??void 0}),P.value=!1,D&&setTimeout(()=>ee(),100)}return(D,x)=>{const H=ae,S=qe,e=le,K=gt,oe=Me,B=Ee,ne=xt,ie=Ae,R=Oe,W=me;return k(),L("div",wt,[n("div",kt,[n("div",$t,[l(H,{name:"i-lucide-file-text",class:"size-4 shrink-0"}),n("span",Ct,X(d.filePath),1)]),t(w)?(k(),L("div",Dt,[l(S,{modelValue:t(C),"onUpdate:modelValue":x[0]||(x[0]=z=>N(C)?C.value=z:null),"unchecked-icon":"i-lucide-code","checked-icon":"i-lucide-pencil",label:t(C)?"Editor Mode":"Code Mode",ui:{base:"data-[state=unchecked]:bg-info",icon:"group-data-[state=unchecked]:text-info"}},null,8,["modelValue","label"])])):J("",!0),n("div",St,[l(e,{icon:t(E)?"i-lucide-check":"i-lucide-share",size:"xs",variant:"ghost",class:"rounded-full",onClick:y},null,8,["icon"]),l(e,{icon:t(T)?"i-lucide-panel-top-close":"i-lucide-panel-top-open",size:"xs",variant:"ghost",class:"rounded-full",onClick:x[1]||(x[1]=z=>T.value=!t(T))},null,8,["icon"]),t(q)?(k(),L("div",Ut,[l(H,{name:t(q),class:Z(["size-4",d.saveStatus==="saving"&&"animate-spin",d.saveStatus==="error"&&"text-error"])},null,8,["name","class"]),n("span",null,X(t(o)),1)])):J("",!0)])]),t(T)?(k(),A(K,{key:0,metadata:d.metadata,projects:t(v),"onUpdate:metadata":U},null,8,["metadata","projects"])):J("",!0),t(g)&&t(C)?(k(),A(B,{key:1,"model-value":t(a),"content-type":"markdown",placeholder:"Start writing...",class:"markdown-editor w-full min-h-64 flex-1","onUpdate:modelValue":s},{default:i(({editor:z})=>[l(oe,{editor:z,items:$,class:"border-b border-default"},null,8,["editor"])]),_:1},8,["model-value"])):(k(),A(R,{key:2},{fallback:i(()=>[l(ie,{class:"flex-1"})]),default:i(()=>[l(ne,{"model-value":d.body,language:t(M),class:"flex-1","onUpdate:modelValue":s},null,8,["model-value","language"])]),_:1})),l(W,{open:t(P),"onUpdate:open":x[5]||(x[5]=z=>N(P)?P.value=z:null),title:"Share Document",description:"Choose how you want to share this document"},{body:i(()=>[n("div",Tt,[n("div",{class:Z(["p-4 border border-default rounded-lg cursor-pointer hover:bg-elevated transition-colors",{"border-primary bg-elevated":!d.metadata.shared}]),onClick:x[2]||(x[2]=z=>Q(!1,null))},[n("div",Ft,[l(H,{name:"i-lucide-eye-off",class:"size-5 text-dimmed"}),x[6]||(x[6]=n("div",null,[n("div",{class:"font-medium"}," Hidden "),n("div",{class:"text-sm text-dimmed"}," Only you can view this document. Not accessible via link. ")],-1))])],2),n("div",{class:Z(["p-4 border border-default rounded-lg cursor-pointer hover:bg-elevated transition-colors",{"border-primary bg-elevated":d.metadata.shared&&d.metadata.shareType==="private"}]),onClick:x[3]||(x[3]=z=>Q(!0,"private"))},[n("div",jt,[l(H,{name:"i-lucide-link",class:"size-5 text-dimmed"}),x[7]||(x[7]=n("div",null,[n("div",{class:"font-medium"}," Private (Link Only) "),n("div",{class:"text-sm text-dimmed"}," Anyone with the link can view. Not indexed by search engines. ")],-1))])],2),n("div",{class:Z(["p-4 border border-default rounded-lg cursor-pointer hover:bg-elevated transition-colors",{"border-primary bg-elevated":d.metadata.shared&&d.metadata.shareType==="public"}]),onClick:x[4]||(x[4]=z=>Q(!0,"public"))},[n("div",Vt,[l(H,{name:"i-lucide-globe",class:"size-5 text-dimmed"}),x[8]||(x[8]=n("div",null,[n("div",{class:"font-medium"}," Public "),n("div",{class:"text-sm text-dimmed"}," Visible to everyone. Indexed by search engines. ")],-1))])],2)])]),_:1},8,["open"])])}}}),It=Object.assign(qt,{__name:"EditorDocumentEditor"});function Pt(){const d=h(null),m=h(null),c=h(""),_=h(null),r=h(!1),p=h("idle"),b=h(!1),v=h(!1),T=ce(async()=>{!d.value||!b.value||await w({body:c.value})},2e3),F=ce(async()=>{!d.value||!v.value||await w()},500);async function C(o){r.value=!0,_.value=o,b.value=!1,v.value=!1,p.value="idle";try{const a=await $fetch("/api/documents/by-path",{method:"POST",body:{path:o}});d.value=a.data.document,m.value=a.data.metadata,c.value=a.data.body||""}catch(a){console.error("Failed to load document:",a),d.value=null,m.value=null,c.value=""}finally{r.value=!1}}function g(o){c.value!==o&&(c.value=o,b.value=!0,T())}function M(o){m.value&&(m.value={...m.value,...o},v.value=!0,F())}async function w(o={}){if(d.value){p.value="saving";try{const a={...o};v.value&&m.value&&(a.title=m.value.title,a.tags=m.value.tags,a.projectId=m.value.projectId,a.shared=m.value.shared,a.shareType=m.value.shareType),b.value&&o.body===void 0&&(a.body=c.value);const s=await $fetch(`/api/documents/${d.value.id}`,{method:"PUT",body:a});d.value=s.data.document,m.value=s.data.metadata,c.value=s.data.body||"",b.value=!1,v.value=!1,p.value="saved",setTimeout(()=>{p.value==="saved"&&(p.value="idle")},2e3)}catch(a){console.error("Failed to save document:",a),p.value="error"}}}async function $(){!b.value&&!v.value||await w({body:c.value})}function q(){d.value=null,m.value=null,c.value="",_.value=null,b.value=!1,v.value=!1,p.value="idle"}return{document:d,metadata:m,body:c,filePath:_,loading:r,saveStatus:p,isDirty:b,metadataDirty:v,loadDocument:C,updateBody:g,updateMetadata:M,saveDocument:w,saveNow:$,closeDocument:q}}const zt={class:"flex flex-1 min-w-0"},Mt={key:0,class:"flex-1 flex items-center justify-center h-full"},Et={key:1,class:"flex-1 flex items-center justify-center h-full text-dimmed"},Bt={class:"text-center"},qa=te({__name:"docs",setup(d){const m=$e(),{document:c,metadata:_,body:r,filePath:p,loading:b,saveStatus:v,isDirty:T,metadataDirty:F,loadDocument:C,updateBody:g,updateMetadata:M,saveNow:w}=Pt(),{lastDocumentPath:$}=pe();async function q(o){await C(o),$.value=o}return re(async()=>{const o=m.query.path;o?(await C(o),$.value=o):$.value&&await C($.value)}),(o,a)=>{const s=ut,U=Ue,f=mt,I=je,V=le,E=Ve,P=Te,y=ae,Y=It;return k(),L("div",zt,[l(U,{id:"docs-filetree",collapsible:"",resizable:"","min-size":12,"default-size":16,"max-size":24,class:"hidden lg:flex"},{body:i(()=>[l(s,{class:"h-full",onSelect:q})]),_:1}),l(U,{id:"docs-editor",grow:"",ui:{body:"sm:py-0"}},{header:i(()=>[l(P,null,{title:i(()=>[l(f),a[0]||(a[0]=O(" Editor ",-1))]),right:i(()=>[l(I),l(E,null,{content:i(()=>[l(s,{class:"h-full",onSelect:q})]),default:i(()=>[l(V,{icon:"i-lucide-folder-tree",class:"block lg:hidden"})]),_:1})]),_:1})]),body:i(()=>[t(b)?(k(),L("div",Mt,[l(y,{name:"i-lucide-loader-2",class:"size-6 animate-spin text-dimmed"})])):t(p)?t(_)&&t(c)?(k(),A(Y,{key:t(p),document:t(c),body:t(r),metadata:t(_),"file-path":t(p),"save-status":t(v),"is-dirty":t(T),"metadata-dirty":t(F),class:"h-full","onUpdate:body":t(g),"onUpdate:metadata":t(M),onSave:t(w)},null,8,["document","body","metadata","file-path","save-status","is-dirty","metadata-dirty","onUpdate:body","onUpdate:metadata","onSave"])):J("",!0):(k(),L("div",Et,[n("div",Bt,[l(y,{name:"i-lucide-file-text",class:"size-32 mx-auto mb-4 opacity-50"}),a[1]||(a[1]=n("p",null,"Select a file to edit",-1))])]))]),_:1})])}}});export{qa as default};
|
|
1
|
+
import{_ as fe}from"./ByLsRRoQ.js";import{_ as ve}from"./BD-AFJWW.js";import{e as h,c as j,a as te,q as re,G as L,T as k,ab as n,V as l,ai as O,C as t,U as i,S as A,_ as ae,W as Z,ae as Y,bm as de,Y as le,aa as N,a9 as X,Q as ye,R as he,N as _e,P as be,am as ue,X as ge,bl as xe,a2 as we,ag as ke,aW as ce,bg as $e}from"./D6tVZcRs.js";import{_ as Ce,a as De}from"./9kAKMaPC.js";import{_ as Se}from"./DXJ9PxCv.js";import{_ as me}from"./DFZkCmLQ.js";import{_ as Ue,a as Te}from"./CfCXpVn5.js";import{u as Fe}from"./ZvG7a1W3.js";import{_ as je}from"./D2NxqyzW.js";import{_ as Ve}from"./DKZmgHNU.js";import{_ as qe}from"./7rT1DCe2.js";import{_ as Ie}from"./Bl0qBhCG.js";import{_ as Pe}from"./OeVS0Rsb.js";import{_ as ze}from"./BtV7oNn3.js";import{_ as Me,a as Ee}from"./CLkkdThv.js";import{c as Be,_ as Ne}from"./DQhm-UPG.js";import{_ as Oe}from"./TxMdabnL.js";import{i as Le,d as Re,_ as Ae,u as Ke}from"./CRRw0Thu.js";import{u as He}from"./h_bXa-f2.js";import{u as pe}from"./B-DMcEU9.js";import"./D12qPplu.js";import"./B5FuOh7E.js";import"./DmxKU7sH.js";import"./C8AtdrMH.js";import"./DWZ9ieYa.js";import"./DwSY6_2U.js";import"./IYCBGuRS.js";import"./DowkFZ2V.js";import"./sBzyvWMJ.js";import"./B0nzD8Sk.js";import"./BCrlmHh_.js";import"./qcVwZv8e.js";import"./BvFYnRMR.js";import"./DvHS7_h2.js";import"./C6Y-ieo6.js";import"./CAWbHTgy.js";import"./B2wI_pYg.js";import"./BNeeERBt.js";import"./DB2zZev7.js";import"./BNJJSRKh.js";import"./C7m9zGMG.js";import"./B6om4MW2.js";import"./DuzpliIL.js";import"./BWuL2CzO.js";import"./CkwPRs1D.js";import"./Vcq4gwWv.js";import"./CiNxIhaq.js";function Qe(){const d=h([]),m=h(null),c=h(!1),_=h(null),r=h("");function p(o,a=!1){const s=o.type==="directory"?void 0:b(o.name);return{id:o.path,label:o.name,icon:s,path:o.path,type:o.type,defaultExpanded:a,children:o.children?.map(U=>p(U))}}function b(o){switch(o.split(".").pop()?.toLowerCase()){case"md":return"i-lucide-file-text";case"ts":case"tsx":return"i-lucide-file-code";case"js":case"jsx":return"i-lucide-file-code";case"vue":return"i-lucide-file-code";case"json":return"i-lucide-file-json";case"css":case"scss":return"i-lucide-file-code";case"png":case"jpg":case"jpeg":case"gif":case"svg":return"i-lucide-file-image";default:return"i-lucide-file"}}async function v(o="/"){c.value=!0,_.value=null;try{const a=await $fetch("/api/fs/list",{query:{path:o,recursive:"true"}});d.value=a.data.map(s=>p(s,!0))}catch(a){_.value="Failed to load file tree",console.error("Failed to load file tree:",a)}finally{c.value=!1}}async function T(o){try{return(await $fetch("/api/fs/read",{method:"POST",body:{path:o}})).data}catch(a){throw console.error("Failed to read file:",a),a}}async function F(o,a){try{return(await $fetch("/api/fs/write",{method:"POST",body:{path:o,content:a}})).data}catch(s){throw console.error("Failed to write file:",s),s}}async function C(o,a){const s=o==="/"?`/${a}`:`${o}/${a}`;return await F(s,""),await v(),s}async function g(o,a){const s=o==="/"?`/${a}`:`${o}/${a}`;try{return await $fetch("/api/fs/mkdir",{method:"POST",body:{path:s}}),await v(),s}catch(U){throw console.error("Failed to create folder:",U),U}}async function M(o,a){const s=o.split("/");s.pop();const U=[...s,a].join("/");try{return await $fetch("/api/fs/rename",{method:"POST",body:{oldPath:o,newPath:U}}),await v(),U}catch(f){throw console.error("Failed to rename:",f),f}}async function w(o){try{await $fetch("/api/fs/delete",{method:"POST",body:{path:o}}),m.value===o&&(m.value=null),await v()}catch(a){throw console.error("Failed to delete:",a),a}}async function $(o,a){try{const s=await $fetch("/api/fs/move",{method:"POST",body:{sourcePath:o,destinationPath:a}});return await v(),s.data.newPath}catch(s){throw console.error("Failed to move:",s),s}}const q=j(()=>{if(!r.value)return d.value;const o=r.value.toLowerCase();function a(s){return s.reduce((U,f)=>{const I=f.label.toLowerCase().includes(o),V=f.children?a(f.children):[];return(I||V.length>0)&&U.push({...f,children:V.length>0?V:f.children,defaultExpanded:V.length>0||I}),U},[])}return a(d.value)});return{items:d,filteredItems:q,selectedFile:m,loading:c,error:_,searchQuery:r,loadTree:v,readFile:T,writeFile:F,createFile:C,createFolder:g,renameItem:M,deleteItem:w,moveItem:$}}const We={class:"h-full flex flex-col"},Ge={class:"-mt-1 pb-2"},Xe={key:0,class:"flex items-center justify-center py-8"},Ye={key:1,class:"h-full min-h-32 flex flex-col items-center justify-center text-dimmed text-sm"},Je=["onContextmenu","onDragstart","onDragover","onDrop"],Ze={class:"truncate"},et={class:"flex items-center gap-2"},tt={class:"flex justify-end gap-2"},at={class:"flex items-center gap-2"},lt={class:"flex justify-end gap-2"},ot={class:"flex items-center gap-2"},nt={class:"flex justify-end gap-2"},it={class:"flex items-center gap-2 text-error"},st={key:0,class:"text-sm text-dimmed mt-1"},dt={class:"flex justify-end gap-2"},rt=te({__name:"FileTree",emits:["select"],setup(d,{emit:m}){const c=m,{filteredItems:_,selectedFile:r,loading:p,searchQuery:b,loadTree:v,createFile:T,createFolder:F,renameItem:C,deleteItem:g,moveItem:M}=Qe(),w=h(null),$=h(null);function q(S,e){w.value=e,S.dataTransfer&&(S.dataTransfer.effectAllowed="move",S.dataTransfer.setData("text/plain",e.path))}function o(S,e){w.value&&e.type==="directory"&&w.value.path!==e.path&&(e.path.startsWith(w.value.path+"/")||(S.preventDefault(),$.value=e))}function a(){$.value=null}function s(){w.value=null,$.value=null}async function U(S,e){if(S.preventDefault(),!(!w.value||e.type!=="directory")){try{await M(w.value.path,e.path)}catch{}w.value=null,$.value=null}}const f=h(null),I=h(!1),V=h(!1),E=h(!1),P=h(!1),y=h(""),J=j(()=>[[{label:"New File",icon:"i-lucide-file-plus",onSelect:()=>{y.value="",I.value=!0}},{label:"New Folder",icon:"i-lucide-folder-plus",onSelect:()=>{y.value="",V.value=!0}}],[{label:"Rename",icon:"i-lucide-pencil",onSelect:()=>{f.value&&(y.value=f.value.label,E.value=!0)}},{label:"Delete",icon:"i-lucide-trash-2",color:"error",onSelect:()=>{P.value=!0}}]]);function ee(S){S.type==="file"&&(r.value=S.path,c("select",S.path))}async function Q(){if(!y.value.trim())return;const S=f.value?.type==="directory"?f.value.path:"/";let e=y.value.trim();e.includes(".")||(e+=".md");try{const K=await T(S,e);r.value=K,c("select",K)}catch{}I.value=!1,y.value=""}async function D(){if(!y.value.trim())return;const S=f.value?.type==="directory"?f.value.path:"/";try{await F(S,y.value.trim())}catch{}V.value=!1,y.value=""}async function x(){if(!(!f.value||!y.value.trim())){try{await C(f.value.path,y.value.trim())}catch{}E.value=!1,y.value=""}}async function H(){if(f.value){try{await g(f.value.path)}catch{}P.value=!1}}return re(()=>{v()}),(S,e)=>{const K=fe,oe=ve,B=ae,ne=Ce,ie=De,R=le,W=Se,z=me;return k(),L("div",We,[n("div",Ge,[l(K,{modelValue:t(b),"onUpdate:modelValue":e[0]||(e[0]=u=>O(b)?b.value=u:null),placeholder:"Search files...",icon:"i-lucide-search",size:"sm",class:"w-full"},null,8,["modelValue"])]),l(oe,{class:"mt-2"}),l(ie,{items:t(J),class:"flex-1 h-full overflow-auto p-2",onContextmenu:e[2]||(e[2]=u=>f.value=null)},{default:i(()=>[t(p)?(k(),L("div",Xe,[l(B,{name:"i-lucide-loader-2",class:"size-6 animate-spin text-dimmed"})])):t(_).length===0?(k(),L("div",Ye,[l(B,{name:"i-lucide-folder-open",class:"size-8 mx-auto mb-2 opacity-50"}),e[14]||(e[14]=n("p",null,"No files found",-1)),e[15]||(e[15]=n("p",{class:"text-xs mt-1"}," Right-click to create a file ",-1))])):(k(),A(ne,{key:2,items:t(_),"get-key":u=>u.id,color:"primary","expanded-icon":"i-lucide-folder-open","collapsed-icon":"i-lucide-folder",onSelect:e[1]||(e[1]=(u,se)=>ee(se))},{item:i(({item:u,expanded:se})=>[n("div",{class:Z(["flex items-center gap-2 w-full",{"bg-primary/10 rounded":t($)?.path===u.path}]),draggable:"true",onContextmenu:G=>f.value=u,onDragstart:G=>q(G,u),onDragover:G=>o(G,u),onDragleave:a,onDragend:s,onDrop:G=>U(G,u)},[u.children?.length?(k(),A(B,{key:0,name:se?"i-lucide-folder-open":"i-lucide-folder",class:"size-4 shrink-0 text-dimmed"},null,8,["name"])):u.icon?(k(),A(B,{key:1,name:u.icon,class:"size-4 shrink-0 text-dimmed"},null,8,["name"])):(k(),A(B,{key:2,name:"i-lucide-file",class:"size-4 shrink-0 text-dimmed"})),n("span",Ze,Y(u.label),1)],42,Je)]),_:1},8,["items","get-key"]))]),_:1},8,["items"]),l(z,{open:t(I),"onUpdate:open":e[5]||(e[5]=u=>O(I)?I.value=u:null)},{content:i(()=>[l(W,null,{header:i(()=>[n("div",et,[l(B,{name:"i-lucide-file-plus",class:"size-5"}),e[16]||(e[16]=n("span",{class:"font-semibold"},"New File",-1))])]),footer:i(()=>[n("div",tt,[l(R,{color:"neutral",variant:"ghost",onClick:e[4]||(e[4]=u=>I.value=!1)},{default:i(()=>[...e[17]||(e[17]=[N(" Cancel ",-1)])]),_:1}),l(R,{onClick:Q},{default:i(()=>[...e[18]||(e[18]=[N(" Create ",-1)])]),_:1})])]),default:i(()=>[l(K,{modelValue:t(y),"onUpdate:modelValue":e[3]||(e[3]=u=>O(y)?y.value=u:null),placeholder:"filename.md",autofocus:"",onKeyup:de(Q,["enter"])},null,8,["modelValue"])]),_:1})]),_:1},8,["open"]),l(z,{open:t(V),"onUpdate:open":e[8]||(e[8]=u=>O(V)?V.value=u:null)},{content:i(()=>[l(W,null,{header:i(()=>[n("div",at,[l(B,{name:"i-lucide-folder-plus",class:"size-5"}),e[19]||(e[19]=n("span",{class:"font-semibold"},"New Folder",-1))])]),footer:i(()=>[n("div",lt,[l(R,{color:"neutral",variant:"ghost",onClick:e[7]||(e[7]=u=>V.value=!1)},{default:i(()=>[...e[20]||(e[20]=[N(" Cancel ",-1)])]),_:1}),l(R,{onClick:D},{default:i(()=>[...e[21]||(e[21]=[N(" Create ",-1)])]),_:1})])]),default:i(()=>[l(K,{modelValue:t(y),"onUpdate:modelValue":e[6]||(e[6]=u=>O(y)?y.value=u:null),placeholder:"folder-name",autofocus:"",onKeyup:de(D,["enter"])},null,8,["modelValue"])]),_:1})]),_:1},8,["open"]),l(z,{open:t(E),"onUpdate:open":e[11]||(e[11]=u=>O(E)?E.value=u:null)},{content:i(()=>[l(W,null,{header:i(()=>[n("div",ot,[l(B,{name:"i-lucide-pencil",class:"size-5"}),e[22]||(e[22]=n("span",{class:"font-semibold"},"Rename",-1))])]),footer:i(()=>[n("div",nt,[l(R,{color:"neutral",variant:"ghost",onClick:e[10]||(e[10]=u=>E.value=!1)},{default:i(()=>[...e[23]||(e[23]=[N(" Cancel ",-1)])]),_:1}),l(R,{onClick:x},{default:i(()=>[...e[24]||(e[24]=[N(" Rename ",-1)])]),_:1})])]),default:i(()=>[l(K,{modelValue:t(y),"onUpdate:modelValue":e[9]||(e[9]=u=>O(y)?y.value=u:null),placeholder:"new-name",autofocus:"",onKeyup:de(x,["enter"])},null,8,["modelValue"])]),_:1})]),_:1},8,["open"]),l(z,{open:t(P),"onUpdate:open":e[13]||(e[13]=u=>O(P)?P.value=u:null)},{content:i(()=>[l(W,null,{header:i(()=>[n("div",it,[l(B,{name:"i-lucide-trash-2",class:"size-5"}),e[25]||(e[25]=n("span",{class:"font-semibold"},"Delete",-1))])]),footer:i(()=>[n("div",dt,[l(R,{color:"neutral",variant:"ghost",onClick:e[12]||(e[12]=u=>P.value=!1)},{default:i(()=>[...e[28]||(e[28]=[N(" Cancel ",-1)])]),_:1}),l(R,{color:"error",onClick:H},{default:i(()=>[...e[29]||(e[29]=[N(" Delete ",-1)])]),_:1})])]),default:i(()=>[n("p",null,[e[26]||(e[26]=N(" Are you sure you want to delete ",-1)),n("strong",null,Y(t(f)?.label),1),e[27]||(e[27]=N("? ",-1))]),t(f)?.type==="directory"?(k(),L("p",st," This will delete all files and folders inside. ")):X("",!0)]),_:1})]),_:1},8,["open"])])}}}),ut=Object.assign(rt,{__name:"FilesFileTree"}),ct={base:"hidden lg:flex",variants:{side:{left:"",right:""}}},mt={__name:"UDashboardSidebarCollapse",props:{color:{type:null,required:!1,default:"neutral"},variant:{type:null,required:!1,default:"ghost"},side:{type:String,required:!1,default:"left"},label:{type:String,required:!1},activeColor:{type:null,required:!1},activeVariant:{type:null,required:!1},size:{type:null,required:!1},square:{type:Boolean,required:!1},block:{type:Boolean,required:!1},loadingAuto:{type:Boolean,required:!1},onClick:{type:[Function,Array],required:!1},class:{type:null,required:!1},ui:{type:null,required:!1},icon:{type:null,required:!1},avatar:{type:Object,required:!1},leading:{type:Boolean,required:!1},leadingIcon:{type:null,required:!1},trailing:{type:Boolean,required:!1},trailingIcon:{type:null,required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1},as:{type:null,required:!1},type:{type:null,required:!1},disabled:{type:Boolean,required:!1},exactActiveClass:{type:String,required:!1},viewTransition:{type:Boolean,required:!1}},setup(d){const m=d,c=ye(he(m,"icon","side","class")),{t:_}=_e(),r=be(),{sidebarCollapsed:p,collapseSidebar:b}=Fe({sidebarCollapsed:h(!1),collapseSidebar:()=>{}}),v=j(()=>ue({extend:ue(ct),...r.ui?.dashboardSidebarCollapse||{}}));return(T,F)=>(k(),A(le,ge({...t(c),icon:m.icon||(t(p)?t(r).ui.icons.panelOpen:t(r).ui.icons.panelClose),"aria-label":t(p)?t(_)("dashboardSidebarCollapse.expand"):t(_)("dashboardSidebarCollapse.collapse"),...T.$attrs},{class:v.value({class:m.class,side:m.side}),onClick:F[0]||(F[0]=C=>t(b)?.(!t(p)))}),null,16,["class"]))}},pt={class:"border-b border-default px-4 py-3 bg-elevated/50"},ft={class:"flex flex-wrap items-start gap-3"},vt={class:"flex items-start gap-2 py-0.5"},yt={class:"min-w-0"},ht={class:"font-medium"},_t={class:"text-xs text-dimmed truncate"},bt=te({__name:"DocumentMetadata",props:{metadata:{},projects:{}},emits:["update:metadata"],setup(d,{emit:m}){const c=d,_=m,r=[{label:"Hidden",value:"hidden",icon:"i-lucide-lock",description:"Hidden behind authentication and never viewable by the public"},{label:"Private",value:"private",icon:"i-lucide-eye-off",description:"Viewable by anyone with the link, but will not be indexed by search engines"},{label:"Public",value:"public",icon:"i-lucide-eye",description:"Viewable to the public and indexed by search engines"}],p=j(()=>c.metadata.shared?c.metadata.shareType||"private":"hidden"),b=j(()=>r.find(g=>g.value===p.value)),v=j({get:()=>c.metadata.tags||[],set:g=>_("update:metadata",{tags:g})});function T(g){_("update:metadata",{projectId:g||void 0})}function F(g){g==="hidden"?_("update:metadata",{shared:!1,shareType:void 0}):_("update:metadata",{shared:!0,shareType:g})}const C=j(()=>[{label:"None",value:void 0},...c.projects.map(g=>({label:g.name,value:g.id}))]);return(g,M)=>{const w=Ie,$=Pe,q=ae,o=ze;return k(),L("div",pt,[n("div",ft,[l($,{label:"Project",class:"w-40"},{default:i(()=>[l(w,{"model-value":d.metadata.projectId,items:t(C),"value-key":"value",placeholder:"None",class:"w-full","search-input":!1,"onUpdate:modelValue":T},null,8,["model-value","items"])]),_:1}),l($,{label:"Visibility",class:"w-44"},{default:i(()=>[l(w,{"model-value":t(p),items:r,"value-key":"value",class:"w-full","search-input":!1,"onUpdate:modelValue":F},{leading:i(()=>[t(b)?(k(),A(q,{key:0,name:t(b).icon,class:"size-4 text-dimmed"},null,8,["name"])):X("",!0)]),item:i(({item:a})=>[n("div",vt,[l(q,{name:a.icon,class:"size-4 mt-0.5 shrink-0"},null,8,["name"]),n("div",yt,[n("div",ht,Y(a.label),1),n("div",_t,Y(a.description),1)])])]),_:1},8,["model-value"])]),_:1}),l($,{label:"Tags",class:"flex-1 min-w-48"},{default:i(()=>[l(o,{modelValue:t(v),"onUpdate:modelValue":M[0]||(M[0]=a=>O(v)?v.value=a:null),placeholder:"Add tags...",class:"w-full"},null,8,["modelValue"])]),_:1})])])}}}),gt=Object.assign(bt,{__name:"EditorDocumentMetadata"}),xt=Be(Oe),wt={class:"h-full flex flex-col"},kt={class:"border-b border-default py-2 flex items-center justify-between"},$t={class:"flex items-center gap-2 text-sm text-dimmed min-w-0"},Ct={class:"truncate"},Dt={key:0,class:"w-40"},St={class:"flex items-center gap-3"},Ut={key:0,class:"flex items-center gap-1 text-sm text-dimmed"},Tt={class:"space-y-4"},Ft={class:"flex items-center gap-3"},jt={class:"flex items-center gap-3"},Vt={class:"flex items-center gap-3"},qt=te({__name:"DocumentEditor",props:{document:{},body:{},metadata:{},filePath:{},saveStatus:{},isDirty:{type:Boolean},metadataDirty:{type:Boolean}},emits:["update:body","update:metadata","save"],async setup(d,{emit:m}){let c,_;const r=d,p=m,{data:b}=([c,_]=xe(()=>He("/api/projects","$c96-63t_ij")),c=await c,_(),c),v=j(()=>b.value?.data||[]),T=h(!0),{editorMode:F}=pe(),C=j({get:()=>F.value==="editor",set:D=>F.value=D?"editor":"code"}),g=j(()=>r.document.fileType==="markdown"||Le(r.filePath)),M=j(()=>Re(r.filePath)),w=j(()=>g.value),$=[[{kind:"heading",level:1,icon:"i-lucide-heading-1"},{kind:"heading",level:2,icon:"i-lucide-heading-2"},{kind:"heading",level:3,icon:"i-lucide-heading-3"}],[{kind:"mark",mark:"bold",icon:"i-lucide-bold"},{kind:"mark",mark:"italic",icon:"i-lucide-italic"},{kind:"mark",mark:"code",icon:"i-lucide-code"}],[{kind:"bulletList",icon:"i-lucide-list"},{kind:"orderedList",icon:"i-lucide-list-ordered"},{kind:"blockquote",icon:"i-lucide-quote"}],[{kind:"link",icon:"i-lucide-link"},{kind:"codeBlock",icon:"i-lucide-file-code"},{kind:"horizontalRule",icon:"i-lucide-minus"}],[{kind:"undo",icon:"i-lucide-undo"},{kind:"redo",icon:"i-lucide-redo"}]],q=j(()=>{switch(r.saveStatus){case"saving":return"i-lucide-loader-2";case"saved":return"i-lucide-check";case"error":return"i-lucide-alert-circle";default:return r.isDirty||r.metadataDirty?"i-lucide-circle-dot":null}}),o=j(()=>{switch(r.saveStatus){case"saving":return"Saving...";case"saved":return"Saved";case"error":return"Error saving";default:return r.isDirty||r.metadataDirty?"Unsaved changes":""}}),a=j(()=>r.body||void 0);function s(D){p("update:body",D)}function U(D){p("update:metadata",D)}function f(D){(D.metaKey||D.ctrlKey)&&D.key==="s"&&(D.preventDefault(),p("save"))}re(()=>window.addEventListener("keydown",f)),we(()=>window.removeEventListener("keydown",f));const I=ke(),V=j(()=>r.document?.id?`${window.location.origin}/view/${r.document.id}`:""),E=h(!1),P=h(!1);function y(){r.metadata.shared?ee():P.value=!0}const{copy:J}=Ke();async function ee(){await J(V.value)?(E.value=!0,I.add({title:"Link copied!",icon:"i-lucide-check",color:"success"}),setTimeout(()=>{E.value=!1},2e3)):I.add({title:"Failed to copy link",icon:"i-lucide-x",color:"error"})}function Q(D,x){p("update:metadata",{shared:D,shareType:x??void 0}),P.value=!1,D&&setTimeout(()=>ee(),100)}return(D,x)=>{const H=ae,S=qe,e=le,K=gt,oe=Me,B=Ee,ne=xt,ie=Ae,R=Ne,W=me;return k(),L("div",wt,[n("div",kt,[n("div",$t,[l(H,{name:"i-lucide-file-text",class:"size-4 shrink-0"}),n("span",Ct,Y(d.filePath),1)]),t(w)?(k(),L("div",Dt,[l(S,{modelValue:t(C),"onUpdate:modelValue":x[0]||(x[0]=z=>O(C)?C.value=z:null),"unchecked-icon":"i-lucide-code","checked-icon":"i-lucide-pencil",label:t(C)?"Editor Mode":"Code Mode",ui:{base:"data-[state=unchecked]:bg-info",icon:"group-data-[state=unchecked]:text-info"}},null,8,["modelValue","label"])])):X("",!0),n("div",St,[l(e,{icon:t(E)?"i-lucide-check":"i-lucide-share",size:"xs",variant:"ghost",class:"rounded-full",onClick:y},null,8,["icon"]),l(e,{icon:t(T)?"i-lucide-panel-top-close":"i-lucide-panel-top-open",size:"xs",variant:"ghost",class:"rounded-full",onClick:x[1]||(x[1]=z=>T.value=!t(T))},null,8,["icon"]),t(q)?(k(),L("div",Ut,[l(H,{name:t(q),class:Z(["size-4",d.saveStatus==="saving"&&"animate-spin",d.saveStatus==="error"&&"text-error"])},null,8,["name","class"]),n("span",null,Y(t(o)),1)])):X("",!0)])]),t(T)?(k(),A(K,{key:0,metadata:d.metadata,projects:t(v),"onUpdate:metadata":U},null,8,["metadata","projects"])):X("",!0),t(g)&&t(C)?(k(),A(B,{key:1,"model-value":t(a),"content-type":"markdown",placeholder:"Start writing...",class:"markdown-editor w-full min-h-64 flex-1","onUpdate:modelValue":s},{default:i(({editor:z})=>[l(oe,{editor:z,items:$,class:"border-b border-default"},null,8,["editor"])]),_:1},8,["model-value"])):(k(),A(R,{key:2},{fallback:i(()=>[l(ie,{class:"flex-1"})]),default:i(()=>[l(ne,{"model-value":d.body,language:t(M),class:"flex-1","onUpdate:modelValue":s},null,8,["model-value","language"])]),_:1})),l(W,{open:t(P),"onUpdate:open":x[5]||(x[5]=z=>O(P)?P.value=z:null),title:"Share Document",description:"Choose how you want to share this document"},{body:i(()=>[n("div",Tt,[n("div",{class:Z(["p-4 border border-default rounded-lg cursor-pointer hover:bg-elevated transition-colors",{"border-primary bg-elevated":!d.metadata.shared}]),onClick:x[2]||(x[2]=z=>Q(!1,null))},[n("div",Ft,[l(H,{name:"i-lucide-eye-off",class:"size-5 text-dimmed"}),x[6]||(x[6]=n("div",null,[n("div",{class:"font-medium"}," Hidden "),n("div",{class:"text-sm text-dimmed"}," Only you can view this document. Not accessible via link. ")],-1))])],2),n("div",{class:Z(["p-4 border border-default rounded-lg cursor-pointer hover:bg-elevated transition-colors",{"border-primary bg-elevated":d.metadata.shared&&d.metadata.shareType==="private"}]),onClick:x[3]||(x[3]=z=>Q(!0,"private"))},[n("div",jt,[l(H,{name:"i-lucide-link",class:"size-5 text-dimmed"}),x[7]||(x[7]=n("div",null,[n("div",{class:"font-medium"}," Private (Link Only) "),n("div",{class:"text-sm text-dimmed"}," Anyone with the link can view. Not indexed by search engines. ")],-1))])],2),n("div",{class:Z(["p-4 border border-default rounded-lg cursor-pointer hover:bg-elevated transition-colors",{"border-primary bg-elevated":d.metadata.shared&&d.metadata.shareType==="public"}]),onClick:x[4]||(x[4]=z=>Q(!0,"public"))},[n("div",Vt,[l(H,{name:"i-lucide-globe",class:"size-5 text-dimmed"}),x[8]||(x[8]=n("div",null,[n("div",{class:"font-medium"}," Public "),n("div",{class:"text-sm text-dimmed"}," Visible to everyone. Indexed by search engines. ")],-1))])],2)])]),_:1},8,["open"])])}}}),It=Object.assign(qt,{__name:"EditorDocumentEditor"});function Pt(){const d=h(null),m=h(null),c=h(""),_=h(null),r=h(!1),p=h("idle"),b=h(!1),v=h(!1),T=ce(async()=>{!d.value||!b.value||await w({body:c.value})},2e3),F=ce(async()=>{!d.value||!v.value||await w()},500);async function C(o){r.value=!0,_.value=o,b.value=!1,v.value=!1,p.value="idle";try{const a=await $fetch("/api/documents/by-path",{method:"POST",body:{path:o}});d.value=a.data.document,m.value=a.data.metadata,c.value=a.data.body||""}catch(a){console.error("Failed to load document:",a),d.value=null,m.value=null,c.value=""}finally{r.value=!1}}function g(o){c.value!==o&&(c.value=o,b.value=!0,T())}function M(o){m.value&&(m.value={...m.value,...o},v.value=!0,F())}async function w(o={}){if(d.value){p.value="saving";try{const a={...o};v.value&&m.value&&(a.title=m.value.title,a.tags=m.value.tags,a.projectId=m.value.projectId,a.shared=m.value.shared,a.shareType=m.value.shareType),b.value&&o.body===void 0&&(a.body=c.value);const s=await $fetch(`/api/documents/${d.value.id}`,{method:"PUT",body:a});d.value=s.data.document,m.value=s.data.metadata,c.value=s.data.body||"",b.value=!1,v.value=!1,p.value="saved",setTimeout(()=>{p.value==="saved"&&(p.value="idle")},2e3)}catch(a){console.error("Failed to save document:",a),p.value="error"}}}async function $(){!b.value&&!v.value||await w({body:c.value})}function q(){d.value=null,m.value=null,c.value="",_.value=null,b.value=!1,v.value=!1,p.value="idle"}return{document:d,metadata:m,body:c,filePath:_,loading:r,saveStatus:p,isDirty:b,metadataDirty:v,loadDocument:C,updateBody:g,updateMetadata:M,saveDocument:w,saveNow:$,closeDocument:q}}const zt={class:"flex flex-1 min-w-0"},Mt={key:0,class:"flex-1 flex items-center justify-center h-full"},Et={key:1,class:"flex-1 flex items-center justify-center h-full text-dimmed"},Bt={class:"text-center"},qa=te({__name:"docs",setup(d){const m=$e(),{document:c,metadata:_,body:r,filePath:p,loading:b,saveStatus:v,isDirty:T,metadataDirty:F,loadDocument:C,updateBody:g,updateMetadata:M,saveNow:w}=Pt(),{lastDocumentPath:$}=pe();async function q(o){await C(o),$.value=o}return re(async()=>{const o=m.query.path;o?(await C(o),$.value=o):$.value&&await C($.value)}),(o,a)=>{const s=ut,U=Ue,f=mt,I=je,V=le,E=Ve,P=Te,y=ae,J=It;return k(),L("div",zt,[l(U,{id:"docs-filetree",collapsible:"",resizable:"","min-size":12,"default-size":16,"max-size":24,class:"hidden lg:flex"},{body:i(()=>[l(s,{class:"h-full",onSelect:q})]),_:1}),l(U,{id:"docs-editor",grow:"",ui:{body:"sm:py-0"}},{header:i(()=>[l(P,null,{title:i(()=>[l(f),a[0]||(a[0]=N(" Editor ",-1))]),right:i(()=>[l(I),l(E,null,{content:i(()=>[l(s,{class:"h-full",onSelect:q})]),default:i(()=>[l(V,{icon:"i-lucide-folder-tree",class:"block lg:hidden"})]),_:1})]),_:1})]),body:i(()=>[t(b)?(k(),L("div",Mt,[l(y,{name:"i-lucide-loader-2",class:"size-6 animate-spin text-dimmed"})])):t(p)?t(_)&&t(c)?(k(),A(J,{key:t(p),document:t(c),body:t(r),metadata:t(_),"file-path":t(p),"save-status":t(v),"is-dirty":t(T),"metadata-dirty":t(F),class:"h-full","onUpdate:body":t(g),"onUpdate:metadata":t(M),onSave:t(w)},null,8,["document","body","metadata","file-path","save-status","is-dirty","metadata-dirty","onUpdate:body","onUpdate:metadata","onSave"])):X("",!0):(k(),L("div",Et,[n("div",Bt,[l(y,{name:"i-lucide-file-text",class:"size-32 mx-auto mb-4 opacity-50"}),a[1]||(a[1]=n("p",null,"Select a file to edit",-1))])]))]),_:1})])}}});export{qa as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as al}from"./BUghTae1.js";import{_ as sl,a as ol}from"./CqNwHCpo.js";import{_ as nl}from"./wO6z2ugJ.js";import{_ as il}from"./DJTCT0bl.js";import{a as dl,ag as rl,ah as R,e as p,f as ul,q as ml,Q as ge,S as n,R as r,T as a,ab as o,G as u,ai as H,C as t,W as cl,aa as c,aj as x,ak as I,a9 as U,_ as pl,ae as w,U as fl,al as be}from"./2dNDtTiv.js";import{_ as gl}from"./x6FRJ5ac.js";import{_ as bl}from"./BR8bKz8h.js";import{_ as vl}from"./DwY7rCd_.js";import{_ as yl}from"./BmOtR1wX.js";import{_ as wl}from"./1zUTf4AP.js";import{_ as hl}from"./CPutXj8l.js";import{_ as xl}from"./BHtY0l0l.js";import{_ as kl}from"./B93pdGAW.js";import{_ as _l}from"./C3NST0BU.js";import{u as Pl,d as fe}from"./GtEM7xVU.js";import{u as Ul}from"./BKXg-alD.js";import"./D5jZq8b3.js";import"./DhI5cA_n.js";import"./DEd2xVbS.js";import"./zq-a1TeT.js";import"./88opOQSr.js";import"./BS2ZNXI1.js";import"./DmmdPt_5.js";import"./Bk6JUtIo.js";import"./D0ifH682.js";import"./CYPO5o_C.js";import"./BIXrSYwR.js";import"./DH4YkDAi.js";import"./CWyMCJQH.js";import"./JbHa4oXq.js";import"./BA_pRWwX.js";import"./BZrSPX0S.js";import"./H6JbrRBU.js";import"./DUAAXJ6Q.js";import"./apYB9dr5.js";import"./Db4KMnt8.js";import"./CQqCBrXj.js";import"./BaZwjF8o.js";const Sl={class:"p-6"},Vl={class:"space-y-8 max-w-2xl mx-auto py-6"},Cl={class:"py-6"},Al={class:"flex items-center justify-between mb-6"},Il={class:"text-sm bg-elevated px-2 py-0.5 rounded"},Bl={class:"text-dimmed"},El={class:"text-dimmed text-sm"},$l={class:"flex gap-2 justify-end"},Dl={class:"py-12 text-center"},Ml={class:"py-6"},Ll={class:"flex items-center justify-between mb-6"},Nl={key:0,class:"space-y-3"},Tl={key:1,class:"py-12 text-center"},Rl={key:2,class:"space-y-3"},Hl=["onClick"],Ol={class:"flex items-center justify-between"},Fl={class:"flex items-center gap-3"},jl={class:"font-medium"},zl={class:"text-sm text-dimmed ml-2"},ql={class:"flex items-center gap-3"},Kl={key:0,class:"text-xs text-dimmed mt-1 pl-8"},Gl={class:"max-w-2xl mx-auto py-6"},Yl={class:"mb-8"},Wl={class:"flex gap-2"},Jl={key:0,class:"space-y-3"},Ql={key:1,class:"space-y-2"},Xl={class:"flex items-center justify-between px-4 py-3"},Zl={class:"flex items-center gap-3"},et={class:"font-medium"},lt={key:0,class:"border-t border-default px-4 py-3 space-y-2 bg-elevated/50"},tt={class:"text-sm text-dimmed capitalize"},at={class:"mt-6"},st={class:"space-y-8 max-w-xl mx-auto py-6"},ot={class:"space-y-4"},nt={class:"text-lg font-semibold"},it={class:"flex justify-end gap-2 pt-4"},dt={class:"mb-4"},rt={class:"bg-elevated px-2 py-0.5 rounded"},ut={class:"flex justify-end gap-2 pt-6"},mt={class:"space-y-4"},ct={key:0,class:"flex items-start gap-2 rounded-lg bg-error/10 border border-error/20 p-3 text-sm"},pt={class:"mt-1 space-y-0.5"},ft={class:"text-xs bg-elevated px-1.5 py-0.5 rounded"},gt={class:"flex justify-end gap-2 pt-4"},bt={class:"mb-4"},vt={class:"flex justify-end gap-2 pt-6"},yt={class:"flex items-center gap-2"},wt={class:"text-lg font-semibold"},ht={class:"space-y-4"},xt={key:0,class:"flex items-start gap-2 rounded-lg bg-elevated p-3 text-sm"},kt={class:"text-dimmed"},_t={class:"bg-elevated px-1 py-0.5 rounded text-xs"},Pt={key:0,class:"flex items-start gap-2 rounded-lg bg-error/10 border border-error/20 p-3 text-sm"},Ut={class:"space-y-2"},St=["checked","onChange"],Vt={class:"text-sm"},Ct={class:"grid grid-cols-2 gap-4"},At={class:"grid grid-cols-2 gap-4"},It={class:"flex justify-end gap-2 pt-4"},ba=dl({__name:"settings",setup(Bt){const{user:ve,updateProfile:ye,changeEmail:we,changePassword:he}=Ul(),d=rl(),{updatePreferences:xe}=Pl(),O=R({name:""}),X=p(!1),E=R({newEmail:""}),Z=p(!1),h=R({currentPassword:"",newPassword:"",confirmPassword:""}),ee=p(!1),$=p([]),le=p(!1),B=p(!1),D=p(!1),F=p(null),te=p(!1),_=p(null),b=R({key:"",value:"",description:""});ul(()=>ve.value,i=>{i&&(O.name=i.name||"",E.newEmail=i.email||"")},{immediate:!0});async function G(){le.value=!0;try{const{data:i}=await $fetch("/api/secrets");$.value=i}catch{d.add({title:"Failed to load secrets",color:"error"})}le.value=!1}const ke=[{label:"Account",icon:"i-lucide-user",value:"account",slot:"account"},{label:"Secrets",icon:"i-lucide-key",value:"secrets",slot:"secrets"},{label:"Integrations",icon:"i-lucide-plug",value:"integrations",slot:"integrations"},{label:"App",icon:"i-lucide-settings",value:"app",slot:"app"}],_e=[{accessorKey:"key",header:"Key"},{accessorKey:"description",header:"Description"},{accessorKey:"updatedAt",header:"Last Updated"},{accessorKey:"actions",header:""}];function Pe(){_.value=null,b.key="",b.value="",b.description="",B.value=!0}function Ue(i){_.value=i,b.key=i.key,b.value="",b.description=i.description||"",B.value=!0}function Se(i){F.value=i,D.value=!0}async function Ve(){if(!b.key||!_.value&&!b.value){d.add({title:"Missing fields",description:_.value?"Key is required.":"Key and value are required.",color:"error"});return}te.value=!0;try{_.value?(await $fetch(`/api/secrets/${_.value.key}`,{method:"PUT",body:{value:b.value||void 0,description:b.description||void 0}}),d.add({title:"Secret updated",color:"success"})):(await $fetch("/api/secrets",{method:"POST",body:{key:b.key,value:b.value,description:b.description||void 0}}),d.add({title:"Secret created",color:"success"})),B.value=!1,await G()}catch(i){const e=i;d.add({title:_.value?"Failed to update secret":"Failed to create secret",description:e.data?.message||"An error occurred",color:"error"})}te.value=!1}async function Ce(){if(F.value)try{await $fetch(`/api/secrets/${F.value.key}`,{method:"DELETE"}),d.add({title:"Secret deleted",color:"success"}),D.value=!1,F.value=null,await G()}catch{d.add({title:"Failed to delete secret",color:"error"})}}function Ae(i){return new Date(i).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}const C=p(""),ae=p(!1);async function Ie(){try{const{data:i}=await $fetch("/api/secrets/APP_URL");C.value=i.value||""}catch{C.value=""}}async function Be(){ae.value=!0;try{C.value?$.value.some(e=>e.key==="APP_URL")?await $fetch("/api/secrets/APP_URL",{method:"PUT",body:{value:C.value,description:"Public URL for webhooks and auth callbacks"}}):await $fetch("/api/secrets",{method:"POST",body:{key:"APP_URL",value:C.value,description:"Public URL for webhooks and auth callbacks"}}):$.value.some(e=>e.key==="APP_URL")&&await $fetch("/api/secrets/APP_URL",{method:"DELETE"}),d.add({title:"Public URL saved",description:"Restart running integrations for changes to take effect.",color:"success"}),await G()}catch{d.add({title:"Failed to save URL",color:"error"})}ae.value=!1}const S=p({...fe}),se=p(!1),oe=p(!1),j=p(new Set),Ee=[{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"]},{key:"bridge",label:"Bridges",icon:"i-lucide-plug",subtypes:["create","edit","delete","complete","fail"]}];async function $e(){se.value=!0;try{const{data:i}=await $fetch("/api/settings");S.value={...fe,...i.notifications}}catch{S.value={...fe}}se.value=!1}async function De(){oe.value=!0;try{await $fetch("/api/settings",{method:"PUT",body:{notifications:S.value}}),xe(S.value),d.add({title:"Notification preferences saved",color:"success"})}catch{d.add({title:"Failed to save preferences",color:"error"})}oe.value=!1}function Me(i){j.value.has(i)?j.value.delete(i):j.value.add(i)}function Le(i,e){S.value[i]={...S.value[i],enabled:e}}function Ne(i,e,P){const V=S.value[i];S.value[i]={...V,subtypes:{...V?.subtypes,[e]:P}}}const ne=p([]),ie=p(!1),M=p(!1),de=p(!1),L=p(!1),z=p(null),k=R({platform:"telegram",name:""}),N=p(!1),y=p(null),re=p(!1),s=R({name:"",botUsername:"",allowedChatIds:"",listenMode:"mentions",guildId:"",channelId:"",strategy:"imsg",allowedNumbers:"",blueBubblesUrl:"",enabledServices:[],account:"",imapHost:"",imapPort:"",smtpHost:"",smtpPort:"",emailAddress:""}),Te=[{value:"mentions",label:"Mentions & DMs"},{value:"dm",label:"DMs only"},{value:"all",label:"All messages"}],Re=[{value:"imsg",label:"Local (imsg CLI)"},{value:"bluebubbles",label:"BlueBubbles"}],He=[{value:"gmail",label:"Gmail"},{value:"calendar",label:"Calendar"},{value:"drive",label:"Drive"},{value:"contacts",label:"Contacts"},{value:"tasks",label:"Tasks"}],Oe={telegram:"My Telegram Bot",discord:"My Discord Bot",imessage:"iMessage Bridge",google:"Google Suite",email:"Work Email"},Y={telegram:["TELEGRAM_BOT_TOKEN"],discord:["DISCORD_BOT_TOKEN"],imessage:[],google:[],email:[]},W=[{value:"telegram",label:"Telegram",icon:"i-lucide-send"},{value:"discord",label:"Discord",icon:"i-lucide-message-circle"},{value:"imessage",label:"iMessage",icon:"i-lucide-smartphone"},{value:"google",label:"Google Suite",icon:"i-lucide-mail"},{value:"email",label:"Email (IMAP)",icon:"i-lucide-at-sign"}];function J(i){const e=Y[i];if(!e.length)return[];const P=new Set($.value.map(V=>V.key));return e.filter(V=>!P.has(V))}const Fe={connected:"text-success",disconnected:"text-dimmed",error:"text-error",unconfigured:"text-dimmed"};async function q(){ie.value=!0;try{const{data:i}=await $fetch("/api/bridges");ne.value=i}catch{d.add({title:"Failed to load integrations",color:"error"})}ie.value=!1}function je(i){y.value=i,s.name=i.name;const e=i.config?JSON.parse(i.config):{};switch(s.botUsername="",s.allowedChatIds="",s.listenMode="mentions",s.guildId="",s.channelId="",s.strategy="imsg",s.allowedNumbers="",s.blueBubblesUrl="",s.enabledServices=[],s.account="",s.imapHost="",s.imapPort="",s.smtpHost="",s.smtpPort="",s.emailAddress="",i.platform){case"telegram":s.botUsername=e.botUsername||"",s.allowedChatIds=(e.allowedChatIds||[]).join(", ");break;case"discord":s.listenMode=e.listenMode||"mentions",s.guildId=e.guildId||"",s.channelId=e.channelId||"";break;case"imessage":s.strategy=e.strategy||"imsg",s.allowedNumbers=(e.allowedNumbers||[]).join(", "),s.blueBubblesUrl=e.blueBubblesUrl||"";break;case"google":s.enabledServices=e.enabledServices||[],s.account=e.account||"";break;case"email":s.imapHost=e.imapHost||"",s.imapPort=e.imapPort?.toString()||"",s.smtpHost=e.smtpHost||"",s.smtpPort=e.smtpPort?.toString()||"",s.emailAddress=e.emailAddress||"";break}N.value=!0}async function ze(){if(!y.value)return;const i=y.value.platform;let e={};switch(y.value.config&&(e=JSON.parse(y.value.config)),i){case"telegram":e.botUsername=s.botUsername||void 0,e.allowedChatIds=s.allowedChatIds?s.allowedChatIds.split(",").map(P=>P.trim()).filter(Boolean):void 0;break;case"discord":e.listenMode=s.listenMode,e.guildId=s.guildId||void 0,e.channelId=s.channelId||void 0;break;case"imessage":e.strategy=s.strategy,e.allowedNumbers=s.allowedNumbers?s.allowedNumbers.split(",").map(P=>P.trim()).filter(Boolean):void 0,e.blueBubblesUrl=s.blueBubblesUrl||void 0;break;case"google":e.enabledServices=s.enabledServices,e.account=s.account||void 0;break;case"email":e.imapHost=s.imapHost||void 0,e.imapPort=s.imapPort?Number(s.imapPort):void 0,e.smtpHost=s.smtpHost||void 0,e.smtpPort=s.smtpPort?Number(s.smtpPort):void 0,e.emailAddress=s.emailAddress||void 0;break}re.value=!0;try{await $fetch(`/api/bridges/${y.value.id}`,{method:"PUT",body:{name:s.name,config:e}}),d.add({title:"Integration updated",color:"success"}),N.value=!1,await q()}catch(P){const V=P;d.add({title:"Failed to update integration",description:V.data?.message,color:"error"})}re.value=!1}function qe(){k.platform="telegram",k.name="",M.value=!0}async function Ke(){if(!k.name){d.add({title:"Name is required",color:"error"});return}const i=J(k.platform);if(i.length){d.add({title:"Missing required secrets",description:`Add ${i.join(", ")} in the Secrets tab first.`,color:"error"});return}de.value=!0;try{await $fetch("/api/bridges",{method:"POST",body:{platform:k.platform,name:k.name}}),d.add({title:"Integration created",color:"success"}),M.value=!1,await q()}catch(e){const P=e;d.add({title:"Failed to create integration",description:P.data?.message,color:"error"})}de.value=!1}async function Ge(i){try{await $fetch(`/api/bridges/${i.id}`,{method:"PUT",body:{enabled:!i.enabled}}),await q()}catch{d.add({title:"Failed to update integration",color:"error"})}}function Ye(i){z.value=i,L.value=!0}async function We(){if(z.value)try{await $fetch(`/api/bridges/${z.value.id}`,{method:"DELETE"}),d.add({title:"Integration deleted",color:"success"}),L.value=!1,z.value=null,await q()}catch{d.add({title:"Failed to delete integration",color:"error"})}}ml(()=>{G(),$e(),q(),Ie()});async function Je(){X.value=!0;const i=await ye({name:O.name});i.error?d.add({title:"Update failed",description:i.error.message,color:"error"}):d.add({title:"Profile updated",description:"Your name has been updated successfully.",color:"success"}),X.value=!1}async function Qe(){if(!E.newEmail){d.add({title:"Email required",description:"Please enter a new email address.",color:"error"});return}Z.value=!0;const i=await we(E.newEmail);i.error?d.add({title:"Email change failed",description:i.error.message,color:"error"}):d.add({title:"Email updated",description:"Your email has been changed successfully.",color:"success"}),Z.value=!1}async function Xe(){if(h.newPassword!==h.confirmPassword){d.add({title:"Passwords do not match",description:"Please make sure your new passwords match.",color:"error"});return}if(!h.currentPassword||!h.newPassword){d.add({title:"Missing fields",description:"Please fill in all password fields.",color:"error"});return}ee.value=!0;const i=await he({currentPassword:h.currentPassword,newPassword:h.newPassword});i.error?d.add({title:"Password change failed",description:i.error.message,color:"error"}):(d.add({title:"Password changed",description:"Your password has been changed successfully.",color:"success"}),h.currentPassword="",h.newPassword="",h.confirmPassword=""),ee.value=!1}return(i,e)=>{const P=al,V=ol,f=nl,m=il,g=cl,Q=gl,ue=bl,A=pl,Ze=vl,T=yl,me=wl,el=hl,ll=xl,K=kl,ce=_l,tl=sl;return r(),ge(tl,{id:"settings",grow:""},{default:n(()=>[a(V,{title:"Settings"},{right:n(()=>[a(P)]),_:1}),o("div",Sl,[a(ll,null,{fallback:n(()=>[o("div",st,[a(T,{class:"h-10 w-full"}),o("div",ot,[a(T,{class:"h-5 w-20"}),a(T,{class:"h-10 w-full"}),a(T,{class:"h-10 w-28"})])])]),default:n(()=>[a(el,{items:ke,"default-value":"account",class:"w-full mx-auto",ui:{list:"max-w-xl"}},{account:n(()=>[o("div",Vl,[o("div",null,[e[38]||(e[38]=o("h3",{class:"text-lg font-semibold mb-4"}," Profile ",-1)),a(Q,{state:t(O),class:"space-y-4",onSubmit:Je},{default:n(()=>[a(m,{label:"Name",name:"name"},{default:n(()=>[a(f,{modelValue:t(O).name,"onUpdate:modelValue":e[0]||(e[0]=l=>t(O).name=l),placeholder:"Your name",class:"w-full"},null,8,["modelValue"])]),_:1}),a(g,{type:"submit",loading:t(X)},{default:n(()=>[...e[37]||(e[37]=[c(" Save Name ",-1)])]),_:1},8,["loading"])]),_:1},8,["state"])]),a(ue),o("div",null,[e[40]||(e[40]=o("h3",{class:"text-lg font-semibold mb-4"}," Email Address ",-1)),a(Q,{state:t(E),class:"space-y-4",onSubmit:Qe},{default:n(()=>[a(m,{label:"Email",name:"newEmail"},{default:n(()=>[a(f,{modelValue:t(E).newEmail,"onUpdate:modelValue":e[1]||(e[1]=l=>t(E).newEmail=l),type:"email",placeholder:"your@email.com",class:"w-full"},null,8,["modelValue"])]),_:1}),a(g,{type:"submit",loading:t(Z)},{default:n(()=>[...e[39]||(e[39]=[c(" Change Email ",-1)])]),_:1},8,["loading"])]),_:1},8,["state"])]),a(ue),o("div",null,[e[42]||(e[42]=o("h3",{class:"text-lg font-semibold mb-4"}," Change Password ",-1)),a(Q,{state:t(h),class:"space-y-4",onSubmit:Xe},{default:n(()=>[a(m,{label:"Current Password",name:"currentPassword"},{default:n(()=>[a(f,{modelValue:t(h).currentPassword,"onUpdate:modelValue":e[2]||(e[2]=l=>t(h).currentPassword=l),type:"password",class:"w-full"},null,8,["modelValue"])]),_:1}),a(m,{label:"New Password",name:"newPassword"},{default:n(()=>[a(f,{modelValue:t(h).newPassword,"onUpdate:modelValue":e[3]||(e[3]=l=>t(h).newPassword=l),type:"password",class:"w-full"},null,8,["modelValue"])]),_:1}),a(m,{label:"Confirm New Password",name:"confirmPassword"},{default:n(()=>[a(f,{modelValue:t(h).confirmPassword,"onUpdate:modelValue":e[4]||(e[4]=l=>t(h).confirmPassword=l),type:"password",class:"w-full"},null,8,["modelValue"])]),_:1}),a(g,{type:"submit",loading:t(ee)},{default:n(()=>[...e[41]||(e[41]=[c(" Change Password ",-1)])]),_:1},8,["loading"])]),_:1},8,["state"])])])]),secrets:n(()=>[o("div",Cl,[o("div",Al,[e[44]||(e[44]=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)),a(g,{icon:"i-lucide-plus",onClick:Pe},{default:n(()=>[...e[43]||(e[43]=[c(" Add Secret ",-1)])]),_:1})]),a(Ze,{columns:_e,data:t($),loading:t(le)},{"key-cell":n(({row:l})=>[o("code",Il,w(l.original.key),1)]),"description-cell":n(({row:l})=>[o("span",Bl,w(l.original.description||"—"),1)]),"updatedAt-cell":n(({row:l})=>[o("span",El,w(Ae(l.original.updatedAt)),1)]),"actions-cell":n(({row:l})=>[o("div",$l,[a(g,{variant:"ghost",icon:"i-lucide-pencil",size:"xs",onClick:v=>Ue(l.original)},null,8,["onClick"]),a(g,{variant:"ghost",color:"error",icon:"i-lucide-trash-2",size:"xs",onClick:v=>Se(l.original)},null,8,["onClick"])])]),empty:n(()=>[o("div",Dl,[a(A,{name:"i-lucide-key",class:"size-12 mx-auto mb-4 text-dimmed"}),e[45]||(e[45]=o("p",{class:"text-dimmed"}," No secrets yet. Add one to get started. ",-1))])]),_:1},8,["data","loading"])])]),integrations:n(()=>[o("div",Ml,[o("div",Ll,[e[47]||(e[47]=o("div",null,[o("h3",{class:"text-lg font-semibold"}," Integrations "),o("p",{class:"text-sm text-dimmed"}," Connect external platforms to the message bridge. ")],-1)),a(g,{icon:"i-lucide-plus",onClick:qe},{default:n(()=>[...e[46]||(e[46]=[c(" Add Integration ",-1)])]),_:1})]),t(ie)?(r(),u("div",Nl,[(r(),u(x,null,I(3,l=>a(T,{key:l,class:"h-16 w-full"})),64))])):t(ne).length===0?(r(),u("div",Tl,[a(A,{name:"i-lucide-plug",class:"size-12 mx-auto mb-4 text-dimmed"}),e[48]||(e[48]=o("p",{class:"text-dimmed"}," No integrations configured. ",-1)),e[49]||(e[49]=o("p",{class:"text-sm text-dimmed mt-1"}," Connect Telegram, Discord, iMessage, or Google Suite. ",-1))])):(r(),u("div",Rl,[(r(!0),u(x,null,I(t(ne),l=>(r(),u("div",{key:l.id,class:"border border-default rounded-lg px-4 py-3 cursor-pointer hover:bg-elevated/50 transition-colors",onClick:v=>je(l)},[o("div",Ol,[o("div",Fl,[a(A,{name:W.find(v=>v.value===l.platform)?.icon||"i-lucide-plug",class:"size-5 text-dimmed"},null,8,["name"]),o("div",null,[o("span",jl,w(l.name),1),o("span",zl,w(W.find(v=>v.value===l.platform)?.label),1)])]),o("div",ql,[o("span",{class:fl(["text-xs capitalize",Fe[l.healthStatus]||"text-dimmed"])},w(l.healthStatus),3),a(me,{"model-value":l.enabled,onClick:e[5]||(e[5]=be(()=>{},["stop"])),"onUpdate:modelValue":v=>Ge(l)},null,8,["model-value","onUpdate:modelValue"]),a(g,{variant:"ghost",color:"error",icon:"i-lucide-trash-2",size:"xs",onClick:be(v=>Ye(l),["stop"])},null,8,["onClick"])])]),l.healthMessage?(r(),u("p",Kl,w(l.healthMessage),1)):U("",!0)],8,Hl))),128))]))])]),app:n(()=>[o("div",Gl,[o("div",Yl,[e[51]||(e[51]=o("h3",{class:"text-lg font-semibold mb-1"}," Public URL ",-1)),e[52]||(e[52]=o("p",{class:"text-sm text-dimmed mb-4"}," The publicly accessible URL for this instance. Used for Telegram webhooks, auth callbacks, and other integrations that need to reach your server. ",-1)),o("div",Wl,[a(f,{modelValue:t(C),"onUpdate:modelValue":e[6]||(e[6]=l=>H(C)?C.value=l:null),placeholder:"https://example.com",class:"flex-1"},null,8,["modelValue"]),a(g,{loading:t(ae),onClick:Be},{default:n(()=>[...e[50]||(e[50]=[c(" Save ",-1)])]),_:1},8,["loading"])]),e[53]||(e[53]=o("p",{class:"text-xs text-dimmed mt-2"}," Leave empty to use long-polling for Telegram instead of webhooks. Changes require restarting running integrations. ",-1))]),a(ue,{class:"mb-8"}),e[55]||(e[55]=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)),t(se)?(r(),u("div",Jl,[(r(),u(x,null,I(5,l=>a(T,{key:l,class:"h-12 w-full"})),64))])):(r(),u("div",Ql,[(r(),u(x,null,I(Ee,l=>o("div",{key:l.key,class:"border border-default rounded-lg"},[o("div",Xl,[o("div",Zl,[a(g,{variant:"ghost",size:"xs",icon:t(j).has(l.key)?"i-lucide-chevron-down":"i-lucide-chevron-right",onClick:v=>Me(l.key)},null,8,["icon","onClick"]),a(A,{name:l.icon,class:"size-5 text-dimmed"},null,8,["name"]),o("span",et,w(l.label),1)]),a(me,{"model-value":t(S)[l.key]?.enabled??!1,"onUpdate:modelValue":v=>Le(l.key,v)},null,8,["model-value","onUpdate:modelValue"])]),t(j).has(l.key)&&t(S)[l.key]?.enabled?(r(),u("div",lt,[(r(!0),u(x,null,I(l.subtypes,v=>(r(),u("div",{key:v,class:"flex items-center justify-between pl-11"},[o("span",tt,w(v),1),a(me,{"model-value":t(S)[l.key]?.subtypes?.[v]!==!1,size:"sm","onUpdate:modelValue":pe=>Ne(l.key,v,pe)},null,8,["model-value","onUpdate:modelValue"])]))),128))])):U("",!0)])),64))])),o("div",at,[a(g,{loading:t(oe),onClick:De},{default:n(()=>[...e[54]||(e[54]=[c(" Save Preferences ",-1)])]),_:1},8,["loading"])])])]),_:1})]),_:1})]),a(K,{open:t(B),"onUpdate:open":e[11]||(e[11]=l=>H(B)?B.value=l:null)},{header:n(()=>[o("h3",nt,w(t(_)?"Edit Secret":"Add Secret"),1)]),body:n(()=>[a(Q,{state:t(b),class:"space-y-4",onSubmit:Ve},{default:n(()=>[a(m,{label:"Key",name:"key",hint:t(_)?"":"SCREAMING_SNAKE_CASE"},{default:n(()=>[a(f,{modelValue:t(b).key,"onUpdate:modelValue":e[7]||(e[7]=l=>t(b).key=l),disabled:!!t(_),placeholder:"MY_API_KEY",class:"w-full font-mono"},null,8,["modelValue","disabled"])]),_:1},8,["hint"]),a(m,{label:"Value",name:"value",hint:t(_)?"Leave empty to keep current value":""},{default:n(()=>[a(f,{modelValue:t(b).value,"onUpdate:modelValue":e[8]||(e[8]=l=>t(b).value=l),type:"password",placeholder:t(_)?"••••••••":"Secret value",class:"w-full"},null,8,["modelValue","placeholder"])]),_:1},8,["hint"]),a(m,{label:"Description",name:"description"},{default:n(()=>[a(f,{modelValue:t(b).description,"onUpdate:modelValue":e[9]||(e[9]=l=>t(b).description=l),placeholder:"Optional description",class:"w-full"},null,8,["modelValue"])]),_:1}),o("div",it,[a(g,{variant:"ghost",onClick:e[10]||(e[10]=l=>B.value=!1)},{default:n(()=>[...e[56]||(e[56]=[c(" Cancel ",-1)])]),_:1}),a(g,{type:"submit",loading:t(te)},{default:n(()=>[c(w(t(_)?"Update":"Create"),1)]),_:1},8,["loading"])])]),_:1},8,["state"])]),_:1},8,["open"]),a(K,{open:t(D),"onUpdate:open":e[13]||(e[13]=l=>H(D)?D.value=l:null)},{header:n(()=>[...e[57]||(e[57]=[o("h3",{class:"text-lg font-semibold"}," Delete Secret ",-1)])]),body:n(()=>[o("p",dt,[e[58]||(e[58]=c(" Are you sure you want to delete ",-1)),o("code",rt,w(t(F)?.key),1),e[59]||(e[59]=c("? ",-1))]),e[62]||(e[62]=o("p",{class:"text-sm text-dimmed"}," This action cannot be undone. Any skills using this secret will stop working. ",-1)),o("div",ut,[a(g,{variant:"ghost",onClick:e[12]||(e[12]=l=>D.value=!1)},{default:n(()=>[...e[60]||(e[60]=[c(" Cancel ",-1)])]),_:1}),a(g,{color:"error",onClick:Ce},{default:n(()=>[...e[61]||(e[61]=[c(" Delete ",-1)])]),_:1})])]),_:1},8,["open"]),a(K,{open:t(M),"onUpdate:open":e[17]||(e[17]=l=>H(M)?M.value=l:null)},{header:n(()=>[...e[63]||(e[63]=[o("h3",{class:"text-lg font-semibold"}," Add Integration ",-1)])]),body:n(()=>[o("div",mt,[a(m,{label:"Platform",name:"platform"},{default:n(()=>[a(ce,{modelValue:t(k).platform,"onUpdate:modelValue":e[14]||(e[14]=l=>t(k).platform=l),items:W,"value-key":"value",class:"w-full"},null,8,["modelValue"])]),_:1}),J(t(k).platform).length?(r(),u("div",ct,[a(A,{name:"i-lucide-alert-triangle",class:"size-4 mt-0.5 text-error shrink-0"}),o("div",null,[e[64]||(e[64]=o("p",{class:"font-medium text-error"}," Missing required secrets ",-1)),e[65]||(e[65]=o("p",{class:"text-dimmed mt-1"}," Add the following in Settings → Secrets before creating: ",-1)),o("ul",pt,[(r(!0),u(x,null,I(J(t(k).platform),l=>(r(),u("li",{key:l},[o("code",ft,w(l),1)]))),128))])])])):U("",!0),a(m,{label:"Name",name:"name"},{default:n(()=>[a(f,{modelValue:t(k).name,"onUpdate:modelValue":e[15]||(e[15]=l=>t(k).name=l),placeholder:Oe[t(k).platform],class:"w-full"},null,8,["modelValue","placeholder"])]),_:1}),o("div",gt,[a(g,{variant:"ghost",onClick:e[16]||(e[16]=l=>M.value=!1)},{default:n(()=>[...e[66]||(e[66]=[c(" Cancel ",-1)])]),_:1}),a(g,{loading:t(de),disabled:J(t(k).platform).length>0,onClick:Ke},{default:n(()=>[...e[67]||(e[67]=[c(" Create ",-1)])]),_:1},8,["loading","disabled"])])])]),_:1},8,["open"]),a(K,{open:t(L),"onUpdate:open":e[19]||(e[19]=l=>H(L)?L.value=l:null)},{header:n(()=>[...e[68]||(e[68]=[o("h3",{class:"text-lg font-semibold"}," Delete Integration ",-1)])]),body:n(()=>[o("p",bt,[e[69]||(e[69]=c(" Are you sure you want to delete ",-1)),o("strong",null,w(t(z)?.name),1),e[70]||(e[70]=c("? ",-1))]),e[73]||(e[73]=o("p",{class:"text-sm text-dimmed"}," This will remove the integration and all associated message history. ",-1)),o("div",vt,[a(g,{variant:"ghost",onClick:e[18]||(e[18]=l=>L.value=!1)},{default:n(()=>[...e[71]||(e[71]=[c(" Cancel ",-1)])]),_:1}),a(g,{color:"error",onClick:We},{default:n(()=>[...e[72]||(e[72]=[c(" Delete ",-1)])]),_:1})])]),_:1},8,["open"]),a(K,{open:t(N),"onUpdate:open":e[36]||(e[36]=l=>H(N)?N.value=l:null)},{header:n(()=>[o("div",yt,[a(A,{name:W.find(l=>l.value===t(y)?.platform)?.icon||"i-lucide-plug",class:"size-5"},null,8,["name"]),o("h3",wt," Configure "+w(t(y)?.name),1)])]),body:n(()=>[o("div",ht,[t(y)&&Y[t(y).platform].length?(r(),u("div",xt,[a(A,{name:"i-lucide-info",class:"size-4 mt-0.5 text-dimmed shrink-0"}),o("span",kt,[e[74]||(e[74]=c(" Requires ",-1)),(r(!0),u(x,null,I(Y[t(y).platform],(l,v)=>(r(),u(x,{key:l},[o("code",_t,w(l),1),v<Y[t(y).platform].length-1?(r(),u(x,{key:0},[c(", ")],64)):U("",!0)],64))),128)),e[75]||(e[75]=c(" in the Secrets tab. ",-1))])])):U("",!0),a(m,{label:"Name",name:"name"},{default:n(()=>[a(f,{modelValue:t(s).name,"onUpdate:modelValue":e[20]||(e[20]=l=>t(s).name=l),placeholder:"Integration name",class:"w-full"},null,8,["modelValue"])]),_:1}),t(y)?.platform==="telegram"?(r(),u(x,{key:1},[a(m,{label:"Bot Username",name:"botUsername",hint:"Without the @ prefix"},{default:n(()=>[a(f,{modelValue:t(s).botUsername,"onUpdate:modelValue":e[21]||(e[21]=l=>t(s).botUsername=l),placeholder:"my_bot",class:"w-full"},null,8,["modelValue"])]),_:1}),a(m,{label:"Allowed Chat IDs",name:"allowedChatIds",hint:"Comma-separated. Leave empty for all."},{default:n(()=>[a(f,{modelValue:t(s).allowedChatIds,"onUpdate:modelValue":e[22]||(e[22]=l=>t(s).allowedChatIds=l),placeholder:"123456, -100789",class:"w-full"},null,8,["modelValue"])]),_:1})],64)):U("",!0),t(y)?.platform==="discord"?(r(),u(x,{key:2},[a(m,{label:"Listen Mode",name:"listenMode"},{default:n(()=>[a(ce,{modelValue:t(s).listenMode,"onUpdate:modelValue":e[23]||(e[23]=l=>t(s).listenMode=l),items:Te,"value-key":"value",class:"w-full"},null,8,["modelValue"])]),_:1}),a(m,{label:"Server ID",name:"guildId",hint:"Optional. Limit to one server."},{default:n(()=>[a(f,{modelValue:t(s).guildId,"onUpdate:modelValue":e[24]||(e[24]=l=>t(s).guildId=l),placeholder:"Discord server ID",class:"w-full"},null,8,["modelValue"])]),_:1}),a(m,{label:"Channel ID",name:"channelId",hint:"Optional. Limit to one channel (for 'all' mode)."},{default:n(()=>[a(f,{modelValue:t(s).channelId,"onUpdate:modelValue":e[25]||(e[25]=l=>t(s).channelId=l),placeholder:"Discord channel ID",class:"w-full"},null,8,["modelValue"])]),_:1})],64)):U("",!0),t(y)?.platform==="imessage"?(r(),u(x,{key:3},[a(m,{label:"Strategy",name:"strategy"},{default:n(()=>[a(ce,{modelValue:t(s).strategy,"onUpdate:modelValue":e[26]||(e[26]=l=>t(s).strategy=l),items:Re,"value-key":"value",class:"w-full"},null,8,["modelValue"])]),_:1}),t(s).strategy==="bluebubbles"&&!t($).some(l=>l.key==="BLUEBUBBLES_PASSWORD")?(r(),u("div",Pt,[a(A,{name:"i-lucide-alert-triangle",class:"size-4 mt-0.5 text-error shrink-0"}),e[76]||(e[76]=o("span",{class:"text-dimmed"},[c(" BlueBubbles requires secret "),o("code",{class:"text-xs bg-elevated px-1.5 py-0.5 rounded"},"BLUEBUBBLES_PASSWORD"),c(" in the Secrets tab. ")],-1))])):U("",!0),t(s).strategy==="bluebubbles"?(r(),ge(m,{key:1,label:"BlueBubbles URL",name:"blueBubblesUrl"},{default:n(()=>[a(f,{modelValue:t(s).blueBubblesUrl,"onUpdate:modelValue":e[27]||(e[27]=l=>t(s).blueBubblesUrl=l),placeholder:"http://192.168.1.100:1234",class:"w-full"},null,8,["modelValue"])]),_:1})):U("",!0),a(m,{label:"Allowed Numbers",name:"allowedNumbers",hint:"Comma-separated. Leave empty for all."},{default:n(()=>[a(f,{modelValue:t(s).allowedNumbers,"onUpdate:modelValue":e[28]||(e[28]=l=>t(s).allowedNumbers=l),placeholder:"+15551234567, +15559876543",class:"w-full"},null,8,["modelValue"])]),_:1})],64)):U("",!0),t(y)?.platform==="google"?(r(),u(x,{key:4},[a(m,{label:"Enabled Services",name:"enabledServices"},{default:n(()=>[o("div",Ut,[(r(),u(x,null,I(He,l=>o("label",{key:l.value,class:"flex items-center gap-2 cursor-pointer"},[o("input",{type:"checkbox",checked:t(s).enabledServices.includes(l.value),class:"rounded",onChange:v=>t(s).enabledServices.includes(l.value)?t(s).enabledServices=t(s).enabledServices.filter(pe=>pe!==l.value):t(s).enabledServices.push(l.value)},null,40,St),o("span",Vt,w(l.label),1)])),64))])]),_:1}),a(m,{label:"Google Account",name:"account",hint:"Email used with gogcli"},{default:n(()=>[a(f,{modelValue:t(s).account,"onUpdate:modelValue":e[29]||(e[29]=l=>t(s).account=l),placeholder:"user@gmail.com",class:"w-full"},null,8,["modelValue"])]),_:1})],64)):U("",!0),t(y)?.platform==="email"?(r(),u(x,{key:5},[a(m,{label:"Email Address",name:"emailAddress"},{default:n(()=>[a(f,{modelValue:t(s).emailAddress,"onUpdate:modelValue":e[30]||(e[30]=l=>t(s).emailAddress=l),placeholder:"user@example.com",class:"w-full"},null,8,["modelValue"])]),_:1}),o("div",Ct,[a(m,{label:"IMAP Host",name:"imapHost"},{default:n(()=>[a(f,{modelValue:t(s).imapHost,"onUpdate:modelValue":e[31]||(e[31]=l=>t(s).imapHost=l),placeholder:"imap.example.com",class:"w-full"},null,8,["modelValue"])]),_:1}),a(m,{label:"IMAP Port",name:"imapPort"},{default:n(()=>[a(f,{modelValue:t(s).imapPort,"onUpdate:modelValue":e[32]||(e[32]=l=>t(s).imapPort=l),placeholder:"993",class:"w-full"},null,8,["modelValue"])]),_:1})]),o("div",At,[a(m,{label:"SMTP Host",name:"smtpHost"},{default:n(()=>[a(f,{modelValue:t(s).smtpHost,"onUpdate:modelValue":e[33]||(e[33]=l=>t(s).smtpHost=l),placeholder:"smtp.example.com",class:"w-full"},null,8,["modelValue"])]),_:1}),a(m,{label:"SMTP Port",name:"smtpPort"},{default:n(()=>[a(f,{modelValue:t(s).smtpPort,"onUpdate:modelValue":e[34]||(e[34]=l=>t(s).smtpPort=l),placeholder:"587",class:"w-full"},null,8,["modelValue"])]),_:1})])],64)):U("",!0),o("div",It,[a(g,{variant:"ghost",onClick:e[35]||(e[35]=l=>N.value=!1)},{default:n(()=>[...e[77]||(e[77]=[c(" Cancel ",-1)])]),_:1}),a(g,{loading:t(re),onClick:ze},{default:n(()=>[...e[78]||(e[78]=[c(" Save ",-1)])]),_:1},8,["loading"])])])]),_:1},8,["open"])]),_:1})}}});export{ba as default};
|
|
1
|
+
import{_ as al}from"./D2NxqyzW.js";import{_ as sl,a as ol}from"./CfCXpVn5.js";import{_ as nl}from"./ByLsRRoQ.js";import{_ as il}from"./OeVS0Rsb.js";import{a as dl,ag as rl,ah as R,e as p,f as ul,q as ml,S as ge,U as n,T as r,V as a,ab as o,G as u,ai as H,C as t,Y as cl,aa as c,aj as x,ak as I,a9 as U,_ as pl,ae as w,W as fl,al as be}from"./D6tVZcRs.js";import{_ as gl}from"./BvTUBUNN.js";import{_ as bl}from"./BD-AFJWW.js";import{_ as vl}from"./-HePz7lp.js";import{_ as yl}from"./OlF0QnKF.js";import{_ as wl}from"./7rT1DCe2.js";import{_ as hl}from"./DNcOC5zj.js";import{_ as xl}from"./DQhm-UPG.js";import{_ as kl}from"./DFZkCmLQ.js";import{_ as _l}from"./BAZ8sewA.js";import{u as Pl,d as fe}from"./Da2vwoYG.js";import{u as Ul}from"./BghuwIGa.js";import"./ZvG7a1W3.js";import"./D12qPplu.js";import"./C7m9zGMG.js";import"./B5FuOh7E.js";import"./88opOQSr.js";import"./B0nzD8Sk.js";import"./B6om4MW2.js";import"./DuzpliIL.js";import"./CxRnB4NC.js";import"./DwSY6_2U.js";import"./IYCBGuRS.js";import"./C8AtdrMH.js";import"./DWZ9ieYa.js";import"./BnMTFF5R.js";import"./DB2zZev7.js";import"./BNJJSRKh.js";import"./CAWbHTgy.js";import"./DvHS7_h2.js";import"./BvFYnRMR.js";import"./B2wI_pYg.js";import"./sBzyvWMJ.js";import"./DlPOQpH_.js";const Sl={class:"p-6"},Vl={class:"space-y-8 max-w-2xl mx-auto py-6"},Cl={class:"py-6"},Al={class:"flex items-center justify-between mb-6"},Il={class:"text-sm bg-elevated px-2 py-0.5 rounded"},Bl={class:"text-dimmed"},El={class:"text-dimmed text-sm"},$l={class:"flex gap-2 justify-end"},Dl={class:"py-12 text-center"},Ml={class:"py-6"},Ll={class:"flex items-center justify-between mb-6"},Nl={key:0,class:"space-y-3"},Tl={key:1,class:"py-12 text-center"},Rl={key:2,class:"space-y-3"},Hl=["onClick"],Ol={class:"flex items-center justify-between"},Fl={class:"flex items-center gap-3"},jl={class:"font-medium"},zl={class:"text-sm text-dimmed ml-2"},ql={class:"flex items-center gap-3"},Kl={key:0,class:"text-xs text-dimmed mt-1 pl-8"},Gl={class:"max-w-2xl mx-auto py-6"},Yl={class:"mb-8"},Wl={class:"flex gap-2"},Jl={key:0,class:"space-y-3"},Ql={key:1,class:"space-y-2"},Xl={class:"flex items-center justify-between px-4 py-3"},Zl={class:"flex items-center gap-3"},et={class:"font-medium"},lt={key:0,class:"border-t border-default px-4 py-3 space-y-2 bg-elevated/50"},tt={class:"text-sm text-dimmed capitalize"},at={class:"mt-6"},st={class:"space-y-8 max-w-xl mx-auto py-6"},ot={class:"space-y-4"},nt={class:"text-lg font-semibold"},it={class:"flex justify-end gap-2 pt-4"},dt={class:"mb-4"},rt={class:"bg-elevated px-2 py-0.5 rounded"},ut={class:"flex justify-end gap-2 pt-6"},mt={class:"space-y-4"},ct={key:0,class:"flex items-start gap-2 rounded-lg bg-error/10 border border-error/20 p-3 text-sm"},pt={class:"mt-1 space-y-0.5"},ft={class:"text-xs bg-elevated px-1.5 py-0.5 rounded"},gt={class:"flex justify-end gap-2 pt-4"},bt={class:"mb-4"},vt={class:"flex justify-end gap-2 pt-6"},yt={class:"flex items-center gap-2"},wt={class:"text-lg font-semibold"},ht={class:"space-y-4"},xt={key:0,class:"flex items-start gap-2 rounded-lg bg-elevated p-3 text-sm"},kt={class:"text-dimmed"},_t={class:"bg-elevated px-1 py-0.5 rounded text-xs"},Pt={key:0,class:"flex items-start gap-2 rounded-lg bg-error/10 border border-error/20 p-3 text-sm"},Ut={class:"space-y-2"},St=["checked","onChange"],Vt={class:"text-sm"},Ct={class:"grid grid-cols-2 gap-4"},At={class:"grid grid-cols-2 gap-4"},It={class:"flex justify-end gap-2 pt-4"},ba=dl({__name:"settings",setup(Bt){const{user:ve,updateProfile:ye,changeEmail:we,changePassword:he}=Ul(),d=rl(),{updatePreferences:xe}=Pl(),O=R({name:""}),X=p(!1),E=R({newEmail:""}),Z=p(!1),h=R({currentPassword:"",newPassword:"",confirmPassword:""}),ee=p(!1),$=p([]),le=p(!1),B=p(!1),D=p(!1),F=p(null),te=p(!1),_=p(null),b=R({key:"",value:"",description:""});ul(()=>ve.value,i=>{i&&(O.name=i.name||"",E.newEmail=i.email||"")},{immediate:!0});async function G(){le.value=!0;try{const{data:i}=await $fetch("/api/secrets");$.value=i}catch{d.add({title:"Failed to load secrets",color:"error"})}le.value=!1}const ke=[{label:"Account",icon:"i-lucide-user",value:"account",slot:"account"},{label:"Secrets",icon:"i-lucide-key",value:"secrets",slot:"secrets"},{label:"Integrations",icon:"i-lucide-plug",value:"integrations",slot:"integrations"},{label:"App",icon:"i-lucide-settings",value:"app",slot:"app"}],_e=[{accessorKey:"key",header:"Key"},{accessorKey:"description",header:"Description"},{accessorKey:"updatedAt",header:"Last Updated"},{accessorKey:"actions",header:""}];function Pe(){_.value=null,b.key="",b.value="",b.description="",B.value=!0}function Ue(i){_.value=i,b.key=i.key,b.value="",b.description=i.description||"",B.value=!0}function Se(i){F.value=i,D.value=!0}async function Ve(){if(!b.key||!_.value&&!b.value){d.add({title:"Missing fields",description:_.value?"Key is required.":"Key and value are required.",color:"error"});return}te.value=!0;try{_.value?(await $fetch(`/api/secrets/${_.value.key}`,{method:"PUT",body:{value:b.value||void 0,description:b.description||void 0}}),d.add({title:"Secret updated",color:"success"})):(await $fetch("/api/secrets",{method:"POST",body:{key:b.key,value:b.value,description:b.description||void 0}}),d.add({title:"Secret created",color:"success"})),B.value=!1,await G()}catch(i){const e=i;d.add({title:_.value?"Failed to update secret":"Failed to create secret",description:e.data?.message||"An error occurred",color:"error"})}te.value=!1}async function Ce(){if(F.value)try{await $fetch(`/api/secrets/${F.value.key}`,{method:"DELETE"}),d.add({title:"Secret deleted",color:"success"}),D.value=!1,F.value=null,await G()}catch{d.add({title:"Failed to delete secret",color:"error"})}}function Ae(i){return new Date(i).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}const C=p(""),ae=p(!1);async function Ie(){try{const{data:i}=await $fetch("/api/secrets/APP_URL");C.value=i.value||""}catch{C.value=""}}async function Be(){ae.value=!0;try{C.value?$.value.some(e=>e.key==="APP_URL")?await $fetch("/api/secrets/APP_URL",{method:"PUT",body:{value:C.value,description:"Public URL for webhooks and auth callbacks"}}):await $fetch("/api/secrets",{method:"POST",body:{key:"APP_URL",value:C.value,description:"Public URL for webhooks and auth callbacks"}}):$.value.some(e=>e.key==="APP_URL")&&await $fetch("/api/secrets/APP_URL",{method:"DELETE"}),d.add({title:"Public URL saved",description:"Restart running integrations for changes to take effect.",color:"success"}),await G()}catch{d.add({title:"Failed to save URL",color:"error"})}ae.value=!1}const S=p({...fe}),se=p(!1),oe=p(!1),j=p(new Set),Ee=[{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"]},{key:"bridge",label:"Bridges",icon:"i-lucide-plug",subtypes:["create","edit","delete","complete","fail"]}];async function $e(){se.value=!0;try{const{data:i}=await $fetch("/api/settings");S.value={...fe,...i.notifications}}catch{S.value={...fe}}se.value=!1}async function De(){oe.value=!0;try{await $fetch("/api/settings",{method:"PUT",body:{notifications:S.value}}),xe(S.value),d.add({title:"Notification preferences saved",color:"success"})}catch{d.add({title:"Failed to save preferences",color:"error"})}oe.value=!1}function Me(i){j.value.has(i)?j.value.delete(i):j.value.add(i)}function Le(i,e){S.value[i]={...S.value[i],enabled:e}}function Ne(i,e,P){const V=S.value[i];S.value[i]={...V,subtypes:{...V?.subtypes,[e]:P}}}const ne=p([]),ie=p(!1),M=p(!1),de=p(!1),L=p(!1),z=p(null),k=R({platform:"telegram",name:""}),N=p(!1),y=p(null),re=p(!1),s=R({name:"",botUsername:"",allowedChatIds:"",listenMode:"mentions",guildId:"",channelId:"",strategy:"imsg",allowedNumbers:"",blueBubblesUrl:"",enabledServices:[],account:"",imapHost:"",imapPort:"",smtpHost:"",smtpPort:"",emailAddress:""}),Te=[{value:"mentions",label:"Mentions & DMs"},{value:"dm",label:"DMs only"},{value:"all",label:"All messages"}],Re=[{value:"imsg",label:"Local (imsg CLI)"},{value:"bluebubbles",label:"BlueBubbles"}],He=[{value:"gmail",label:"Gmail"},{value:"calendar",label:"Calendar"},{value:"drive",label:"Drive"},{value:"contacts",label:"Contacts"},{value:"tasks",label:"Tasks"}],Oe={telegram:"My Telegram Bot",discord:"My Discord Bot",imessage:"iMessage Bridge",google:"Google Suite",email:"Work Email"},Y={telegram:["TELEGRAM_BOT_TOKEN"],discord:["DISCORD_BOT_TOKEN"],imessage:[],google:[],email:[]},W=[{value:"telegram",label:"Telegram",icon:"i-lucide-send"},{value:"discord",label:"Discord",icon:"i-lucide-message-circle"},{value:"imessage",label:"iMessage",icon:"i-lucide-smartphone"},{value:"google",label:"Google Suite",icon:"i-lucide-mail"},{value:"email",label:"Email (IMAP)",icon:"i-lucide-at-sign"}];function J(i){const e=Y[i];if(!e.length)return[];const P=new Set($.value.map(V=>V.key));return e.filter(V=>!P.has(V))}const Fe={connected:"text-success",disconnected:"text-dimmed",error:"text-error",unconfigured:"text-dimmed"};async function q(){ie.value=!0;try{const{data:i}=await $fetch("/api/bridges");ne.value=i}catch{d.add({title:"Failed to load integrations",color:"error"})}ie.value=!1}function je(i){y.value=i,s.name=i.name;const e=i.config?JSON.parse(i.config):{};switch(s.botUsername="",s.allowedChatIds="",s.listenMode="mentions",s.guildId="",s.channelId="",s.strategy="imsg",s.allowedNumbers="",s.blueBubblesUrl="",s.enabledServices=[],s.account="",s.imapHost="",s.imapPort="",s.smtpHost="",s.smtpPort="",s.emailAddress="",i.platform){case"telegram":s.botUsername=e.botUsername||"",s.allowedChatIds=(e.allowedChatIds||[]).join(", ");break;case"discord":s.listenMode=e.listenMode||"mentions",s.guildId=e.guildId||"",s.channelId=e.channelId||"";break;case"imessage":s.strategy=e.strategy||"imsg",s.allowedNumbers=(e.allowedNumbers||[]).join(", "),s.blueBubblesUrl=e.blueBubblesUrl||"";break;case"google":s.enabledServices=e.enabledServices||[],s.account=e.account||"";break;case"email":s.imapHost=e.imapHost||"",s.imapPort=e.imapPort?.toString()||"",s.smtpHost=e.smtpHost||"",s.smtpPort=e.smtpPort?.toString()||"",s.emailAddress=e.emailAddress||"";break}N.value=!0}async function ze(){if(!y.value)return;const i=y.value.platform;let e={};switch(y.value.config&&(e=JSON.parse(y.value.config)),i){case"telegram":e.botUsername=s.botUsername||void 0,e.allowedChatIds=s.allowedChatIds?s.allowedChatIds.split(",").map(P=>P.trim()).filter(Boolean):void 0;break;case"discord":e.listenMode=s.listenMode,e.guildId=s.guildId||void 0,e.channelId=s.channelId||void 0;break;case"imessage":e.strategy=s.strategy,e.allowedNumbers=s.allowedNumbers?s.allowedNumbers.split(",").map(P=>P.trim()).filter(Boolean):void 0,e.blueBubblesUrl=s.blueBubblesUrl||void 0;break;case"google":e.enabledServices=s.enabledServices,e.account=s.account||void 0;break;case"email":e.imapHost=s.imapHost||void 0,e.imapPort=s.imapPort?Number(s.imapPort):void 0,e.smtpHost=s.smtpHost||void 0,e.smtpPort=s.smtpPort?Number(s.smtpPort):void 0,e.emailAddress=s.emailAddress||void 0;break}re.value=!0;try{await $fetch(`/api/bridges/${y.value.id}`,{method:"PUT",body:{name:s.name,config:e}}),d.add({title:"Integration updated",color:"success"}),N.value=!1,await q()}catch(P){const V=P;d.add({title:"Failed to update integration",description:V.data?.message,color:"error"})}re.value=!1}function qe(){k.platform="telegram",k.name="",M.value=!0}async function Ke(){if(!k.name){d.add({title:"Name is required",color:"error"});return}const i=J(k.platform);if(i.length){d.add({title:"Missing required secrets",description:`Add ${i.join(", ")} in the Secrets tab first.`,color:"error"});return}de.value=!0;try{await $fetch("/api/bridges",{method:"POST",body:{platform:k.platform,name:k.name}}),d.add({title:"Integration created",color:"success"}),M.value=!1,await q()}catch(e){const P=e;d.add({title:"Failed to create integration",description:P.data?.message,color:"error"})}de.value=!1}async function Ge(i){try{await $fetch(`/api/bridges/${i.id}`,{method:"PUT",body:{enabled:!i.enabled}}),await q()}catch{d.add({title:"Failed to update integration",color:"error"})}}function Ye(i){z.value=i,L.value=!0}async function We(){if(z.value)try{await $fetch(`/api/bridges/${z.value.id}`,{method:"DELETE"}),d.add({title:"Integration deleted",color:"success"}),L.value=!1,z.value=null,await q()}catch{d.add({title:"Failed to delete integration",color:"error"})}}ml(()=>{G(),$e(),q(),Ie()});async function Je(){X.value=!0;const i=await ye({name:O.name});i.error?d.add({title:"Update failed",description:i.error.message,color:"error"}):d.add({title:"Profile updated",description:"Your name has been updated successfully.",color:"success"}),X.value=!1}async function Qe(){if(!E.newEmail){d.add({title:"Email required",description:"Please enter a new email address.",color:"error"});return}Z.value=!0;const i=await we(E.newEmail);i.error?d.add({title:"Email change failed",description:i.error.message,color:"error"}):d.add({title:"Email updated",description:"Your email has been changed successfully.",color:"success"}),Z.value=!1}async function Xe(){if(h.newPassword!==h.confirmPassword){d.add({title:"Passwords do not match",description:"Please make sure your new passwords match.",color:"error"});return}if(!h.currentPassword||!h.newPassword){d.add({title:"Missing fields",description:"Please fill in all password fields.",color:"error"});return}ee.value=!0;const i=await he({currentPassword:h.currentPassword,newPassword:h.newPassword});i.error?d.add({title:"Password change failed",description:i.error.message,color:"error"}):(d.add({title:"Password changed",description:"Your password has been changed successfully.",color:"success"}),h.currentPassword="",h.newPassword="",h.confirmPassword=""),ee.value=!1}return(i,e)=>{const P=al,V=ol,f=nl,m=il,g=cl,Q=gl,ue=bl,A=pl,Ze=vl,T=yl,me=wl,el=hl,ll=xl,K=kl,ce=_l,tl=sl;return r(),ge(tl,{id:"settings",grow:""},{default:n(()=>[a(V,{title:"Settings"},{right:n(()=>[a(P)]),_:1}),o("div",Sl,[a(ll,null,{fallback:n(()=>[o("div",st,[a(T,{class:"h-10 w-full"}),o("div",ot,[a(T,{class:"h-5 w-20"}),a(T,{class:"h-10 w-full"}),a(T,{class:"h-10 w-28"})])])]),default:n(()=>[a(el,{items:ke,"default-value":"account",class:"w-full mx-auto",ui:{list:"max-w-xl"}},{account:n(()=>[o("div",Vl,[o("div",null,[e[38]||(e[38]=o("h3",{class:"text-lg font-semibold mb-4"}," Profile ",-1)),a(Q,{state:t(O),class:"space-y-4",onSubmit:Je},{default:n(()=>[a(m,{label:"Name",name:"name"},{default:n(()=>[a(f,{modelValue:t(O).name,"onUpdate:modelValue":e[0]||(e[0]=l=>t(O).name=l),placeholder:"Your name",class:"w-full"},null,8,["modelValue"])]),_:1}),a(g,{type:"submit",loading:t(X)},{default:n(()=>[...e[37]||(e[37]=[c(" Save Name ",-1)])]),_:1},8,["loading"])]),_:1},8,["state"])]),a(ue),o("div",null,[e[40]||(e[40]=o("h3",{class:"text-lg font-semibold mb-4"}," Email Address ",-1)),a(Q,{state:t(E),class:"space-y-4",onSubmit:Qe},{default:n(()=>[a(m,{label:"Email",name:"newEmail"},{default:n(()=>[a(f,{modelValue:t(E).newEmail,"onUpdate:modelValue":e[1]||(e[1]=l=>t(E).newEmail=l),type:"email",placeholder:"your@email.com",class:"w-full"},null,8,["modelValue"])]),_:1}),a(g,{type:"submit",loading:t(Z)},{default:n(()=>[...e[39]||(e[39]=[c(" Change Email ",-1)])]),_:1},8,["loading"])]),_:1},8,["state"])]),a(ue),o("div",null,[e[42]||(e[42]=o("h3",{class:"text-lg font-semibold mb-4"}," Change Password ",-1)),a(Q,{state:t(h),class:"space-y-4",onSubmit:Xe},{default:n(()=>[a(m,{label:"Current Password",name:"currentPassword"},{default:n(()=>[a(f,{modelValue:t(h).currentPassword,"onUpdate:modelValue":e[2]||(e[2]=l=>t(h).currentPassword=l),type:"password",class:"w-full"},null,8,["modelValue"])]),_:1}),a(m,{label:"New Password",name:"newPassword"},{default:n(()=>[a(f,{modelValue:t(h).newPassword,"onUpdate:modelValue":e[3]||(e[3]=l=>t(h).newPassword=l),type:"password",class:"w-full"},null,8,["modelValue"])]),_:1}),a(m,{label:"Confirm New Password",name:"confirmPassword"},{default:n(()=>[a(f,{modelValue:t(h).confirmPassword,"onUpdate:modelValue":e[4]||(e[4]=l=>t(h).confirmPassword=l),type:"password",class:"w-full"},null,8,["modelValue"])]),_:1}),a(g,{type:"submit",loading:t(ee)},{default:n(()=>[...e[41]||(e[41]=[c(" Change Password ",-1)])]),_:1},8,["loading"])]),_:1},8,["state"])])])]),secrets:n(()=>[o("div",Cl,[o("div",Al,[e[44]||(e[44]=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)),a(g,{icon:"i-lucide-plus",onClick:Pe},{default:n(()=>[...e[43]||(e[43]=[c(" Add Secret ",-1)])]),_:1})]),a(Ze,{columns:_e,data:t($),loading:t(le)},{"key-cell":n(({row:l})=>[o("code",Il,w(l.original.key),1)]),"description-cell":n(({row:l})=>[o("span",Bl,w(l.original.description||"—"),1)]),"updatedAt-cell":n(({row:l})=>[o("span",El,w(Ae(l.original.updatedAt)),1)]),"actions-cell":n(({row:l})=>[o("div",$l,[a(g,{variant:"ghost",icon:"i-lucide-pencil",size:"xs",onClick:v=>Ue(l.original)},null,8,["onClick"]),a(g,{variant:"ghost",color:"error",icon:"i-lucide-trash-2",size:"xs",onClick:v=>Se(l.original)},null,8,["onClick"])])]),empty:n(()=>[o("div",Dl,[a(A,{name:"i-lucide-key",class:"size-12 mx-auto mb-4 text-dimmed"}),e[45]||(e[45]=o("p",{class:"text-dimmed"}," No secrets yet. Add one to get started. ",-1))])]),_:1},8,["data","loading"])])]),integrations:n(()=>[o("div",Ml,[o("div",Ll,[e[47]||(e[47]=o("div",null,[o("h3",{class:"text-lg font-semibold"}," Integrations "),o("p",{class:"text-sm text-dimmed"}," Connect external platforms to the message bridge. ")],-1)),a(g,{icon:"i-lucide-plus",onClick:qe},{default:n(()=>[...e[46]||(e[46]=[c(" Add Integration ",-1)])]),_:1})]),t(ie)?(r(),u("div",Nl,[(r(),u(x,null,I(3,l=>a(T,{key:l,class:"h-16 w-full"})),64))])):t(ne).length===0?(r(),u("div",Tl,[a(A,{name:"i-lucide-plug",class:"size-12 mx-auto mb-4 text-dimmed"}),e[48]||(e[48]=o("p",{class:"text-dimmed"}," No integrations configured. ",-1)),e[49]||(e[49]=o("p",{class:"text-sm text-dimmed mt-1"}," Connect Telegram, Discord, iMessage, or Google Suite. ",-1))])):(r(),u("div",Rl,[(r(!0),u(x,null,I(t(ne),l=>(r(),u("div",{key:l.id,class:"border border-default rounded-lg px-4 py-3 cursor-pointer hover:bg-elevated/50 transition-colors",onClick:v=>je(l)},[o("div",Ol,[o("div",Fl,[a(A,{name:W.find(v=>v.value===l.platform)?.icon||"i-lucide-plug",class:"size-5 text-dimmed"},null,8,["name"]),o("div",null,[o("span",jl,w(l.name),1),o("span",zl,w(W.find(v=>v.value===l.platform)?.label),1)])]),o("div",ql,[o("span",{class:fl(["text-xs capitalize",Fe[l.healthStatus]||"text-dimmed"])},w(l.healthStatus),3),a(me,{"model-value":l.enabled,onClick:e[5]||(e[5]=be(()=>{},["stop"])),"onUpdate:modelValue":v=>Ge(l)},null,8,["model-value","onUpdate:modelValue"]),a(g,{variant:"ghost",color:"error",icon:"i-lucide-trash-2",size:"xs",onClick:be(v=>Ye(l),["stop"])},null,8,["onClick"])])]),l.healthMessage?(r(),u("p",Kl,w(l.healthMessage),1)):U("",!0)],8,Hl))),128))]))])]),app:n(()=>[o("div",Gl,[o("div",Yl,[e[51]||(e[51]=o("h3",{class:"text-lg font-semibold mb-1"}," Public URL ",-1)),e[52]||(e[52]=o("p",{class:"text-sm text-dimmed mb-4"}," The publicly accessible URL for this instance. Used for Telegram webhooks, auth callbacks, and other integrations that need to reach your server. ",-1)),o("div",Wl,[a(f,{modelValue:t(C),"onUpdate:modelValue":e[6]||(e[6]=l=>H(C)?C.value=l:null),placeholder:"https://example.com",class:"flex-1"},null,8,["modelValue"]),a(g,{loading:t(ae),onClick:Be},{default:n(()=>[...e[50]||(e[50]=[c(" Save ",-1)])]),_:1},8,["loading"])]),e[53]||(e[53]=o("p",{class:"text-xs text-dimmed mt-2"}," Leave empty to use long-polling for Telegram instead of webhooks. Changes require restarting running integrations. ",-1))]),a(ue,{class:"mb-8"}),e[55]||(e[55]=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)),t(se)?(r(),u("div",Jl,[(r(),u(x,null,I(5,l=>a(T,{key:l,class:"h-12 w-full"})),64))])):(r(),u("div",Ql,[(r(),u(x,null,I(Ee,l=>o("div",{key:l.key,class:"border border-default rounded-lg"},[o("div",Xl,[o("div",Zl,[a(g,{variant:"ghost",size:"xs",icon:t(j).has(l.key)?"i-lucide-chevron-down":"i-lucide-chevron-right",onClick:v=>Me(l.key)},null,8,["icon","onClick"]),a(A,{name:l.icon,class:"size-5 text-dimmed"},null,8,["name"]),o("span",et,w(l.label),1)]),a(me,{"model-value":t(S)[l.key]?.enabled??!1,"onUpdate:modelValue":v=>Le(l.key,v)},null,8,["model-value","onUpdate:modelValue"])]),t(j).has(l.key)&&t(S)[l.key]?.enabled?(r(),u("div",lt,[(r(!0),u(x,null,I(l.subtypes,v=>(r(),u("div",{key:v,class:"flex items-center justify-between pl-11"},[o("span",tt,w(v),1),a(me,{"model-value":t(S)[l.key]?.subtypes?.[v]!==!1,size:"sm","onUpdate:modelValue":pe=>Ne(l.key,v,pe)},null,8,["model-value","onUpdate:modelValue"])]))),128))])):U("",!0)])),64))])),o("div",at,[a(g,{loading:t(oe),onClick:De},{default:n(()=>[...e[54]||(e[54]=[c(" Save Preferences ",-1)])]),_:1},8,["loading"])])])]),_:1})]),_:1})]),a(K,{open:t(B),"onUpdate:open":e[11]||(e[11]=l=>H(B)?B.value=l:null)},{header:n(()=>[o("h3",nt,w(t(_)?"Edit Secret":"Add Secret"),1)]),body:n(()=>[a(Q,{state:t(b),class:"space-y-4",onSubmit:Ve},{default:n(()=>[a(m,{label:"Key",name:"key",hint:t(_)?"":"SCREAMING_SNAKE_CASE"},{default:n(()=>[a(f,{modelValue:t(b).key,"onUpdate:modelValue":e[7]||(e[7]=l=>t(b).key=l),disabled:!!t(_),placeholder:"MY_API_KEY",class:"w-full font-mono"},null,8,["modelValue","disabled"])]),_:1},8,["hint"]),a(m,{label:"Value",name:"value",hint:t(_)?"Leave empty to keep current value":""},{default:n(()=>[a(f,{modelValue:t(b).value,"onUpdate:modelValue":e[8]||(e[8]=l=>t(b).value=l),type:"password",placeholder:t(_)?"••••••••":"Secret value",class:"w-full"},null,8,["modelValue","placeholder"])]),_:1},8,["hint"]),a(m,{label:"Description",name:"description"},{default:n(()=>[a(f,{modelValue:t(b).description,"onUpdate:modelValue":e[9]||(e[9]=l=>t(b).description=l),placeholder:"Optional description",class:"w-full"},null,8,["modelValue"])]),_:1}),o("div",it,[a(g,{variant:"ghost",onClick:e[10]||(e[10]=l=>B.value=!1)},{default:n(()=>[...e[56]||(e[56]=[c(" Cancel ",-1)])]),_:1}),a(g,{type:"submit",loading:t(te)},{default:n(()=>[c(w(t(_)?"Update":"Create"),1)]),_:1},8,["loading"])])]),_:1},8,["state"])]),_:1},8,["open"]),a(K,{open:t(D),"onUpdate:open":e[13]||(e[13]=l=>H(D)?D.value=l:null)},{header:n(()=>[...e[57]||(e[57]=[o("h3",{class:"text-lg font-semibold"}," Delete Secret ",-1)])]),body:n(()=>[o("p",dt,[e[58]||(e[58]=c(" Are you sure you want to delete ",-1)),o("code",rt,w(t(F)?.key),1),e[59]||(e[59]=c("? ",-1))]),e[62]||(e[62]=o("p",{class:"text-sm text-dimmed"}," This action cannot be undone. Any skills using this secret will stop working. ",-1)),o("div",ut,[a(g,{variant:"ghost",onClick:e[12]||(e[12]=l=>D.value=!1)},{default:n(()=>[...e[60]||(e[60]=[c(" Cancel ",-1)])]),_:1}),a(g,{color:"error",onClick:Ce},{default:n(()=>[...e[61]||(e[61]=[c(" Delete ",-1)])]),_:1})])]),_:1},8,["open"]),a(K,{open:t(M),"onUpdate:open":e[17]||(e[17]=l=>H(M)?M.value=l:null)},{header:n(()=>[...e[63]||(e[63]=[o("h3",{class:"text-lg font-semibold"}," Add Integration ",-1)])]),body:n(()=>[o("div",mt,[a(m,{label:"Platform",name:"platform"},{default:n(()=>[a(ce,{modelValue:t(k).platform,"onUpdate:modelValue":e[14]||(e[14]=l=>t(k).platform=l),items:W,"value-key":"value",class:"w-full"},null,8,["modelValue"])]),_:1}),J(t(k).platform).length?(r(),u("div",ct,[a(A,{name:"i-lucide-alert-triangle",class:"size-4 mt-0.5 text-error shrink-0"}),o("div",null,[e[64]||(e[64]=o("p",{class:"font-medium text-error"}," Missing required secrets ",-1)),e[65]||(e[65]=o("p",{class:"text-dimmed mt-1"}," Add the following in Settings → Secrets before creating: ",-1)),o("ul",pt,[(r(!0),u(x,null,I(J(t(k).platform),l=>(r(),u("li",{key:l},[o("code",ft,w(l),1)]))),128))])])])):U("",!0),a(m,{label:"Name",name:"name"},{default:n(()=>[a(f,{modelValue:t(k).name,"onUpdate:modelValue":e[15]||(e[15]=l=>t(k).name=l),placeholder:Oe[t(k).platform],class:"w-full"},null,8,["modelValue","placeholder"])]),_:1}),o("div",gt,[a(g,{variant:"ghost",onClick:e[16]||(e[16]=l=>M.value=!1)},{default:n(()=>[...e[66]||(e[66]=[c(" Cancel ",-1)])]),_:1}),a(g,{loading:t(de),disabled:J(t(k).platform).length>0,onClick:Ke},{default:n(()=>[...e[67]||(e[67]=[c(" Create ",-1)])]),_:1},8,["loading","disabled"])])])]),_:1},8,["open"]),a(K,{open:t(L),"onUpdate:open":e[19]||(e[19]=l=>H(L)?L.value=l:null)},{header:n(()=>[...e[68]||(e[68]=[o("h3",{class:"text-lg font-semibold"}," Delete Integration ",-1)])]),body:n(()=>[o("p",bt,[e[69]||(e[69]=c(" Are you sure you want to delete ",-1)),o("strong",null,w(t(z)?.name),1),e[70]||(e[70]=c("? ",-1))]),e[73]||(e[73]=o("p",{class:"text-sm text-dimmed"}," This will remove the integration and all associated message history. ",-1)),o("div",vt,[a(g,{variant:"ghost",onClick:e[18]||(e[18]=l=>L.value=!1)},{default:n(()=>[...e[71]||(e[71]=[c(" Cancel ",-1)])]),_:1}),a(g,{color:"error",onClick:We},{default:n(()=>[...e[72]||(e[72]=[c(" Delete ",-1)])]),_:1})])]),_:1},8,["open"]),a(K,{open:t(N),"onUpdate:open":e[36]||(e[36]=l=>H(N)?N.value=l:null)},{header:n(()=>[o("div",yt,[a(A,{name:W.find(l=>l.value===t(y)?.platform)?.icon||"i-lucide-plug",class:"size-5"},null,8,["name"]),o("h3",wt," Configure "+w(t(y)?.name),1)])]),body:n(()=>[o("div",ht,[t(y)&&Y[t(y).platform].length?(r(),u("div",xt,[a(A,{name:"i-lucide-info",class:"size-4 mt-0.5 text-dimmed shrink-0"}),o("span",kt,[e[74]||(e[74]=c(" Requires ",-1)),(r(!0),u(x,null,I(Y[t(y).platform],(l,v)=>(r(),u(x,{key:l},[o("code",_t,w(l),1),v<Y[t(y).platform].length-1?(r(),u(x,{key:0},[c(", ")],64)):U("",!0)],64))),128)),e[75]||(e[75]=c(" in the Secrets tab. ",-1))])])):U("",!0),a(m,{label:"Name",name:"name"},{default:n(()=>[a(f,{modelValue:t(s).name,"onUpdate:modelValue":e[20]||(e[20]=l=>t(s).name=l),placeholder:"Integration name",class:"w-full"},null,8,["modelValue"])]),_:1}),t(y)?.platform==="telegram"?(r(),u(x,{key:1},[a(m,{label:"Bot Username",name:"botUsername",hint:"Without the @ prefix"},{default:n(()=>[a(f,{modelValue:t(s).botUsername,"onUpdate:modelValue":e[21]||(e[21]=l=>t(s).botUsername=l),placeholder:"my_bot",class:"w-full"},null,8,["modelValue"])]),_:1}),a(m,{label:"Allowed Chat IDs",name:"allowedChatIds",hint:"Comma-separated. Leave empty for all."},{default:n(()=>[a(f,{modelValue:t(s).allowedChatIds,"onUpdate:modelValue":e[22]||(e[22]=l=>t(s).allowedChatIds=l),placeholder:"123456, -100789",class:"w-full"},null,8,["modelValue"])]),_:1})],64)):U("",!0),t(y)?.platform==="discord"?(r(),u(x,{key:2},[a(m,{label:"Listen Mode",name:"listenMode"},{default:n(()=>[a(ce,{modelValue:t(s).listenMode,"onUpdate:modelValue":e[23]||(e[23]=l=>t(s).listenMode=l),items:Te,"value-key":"value",class:"w-full"},null,8,["modelValue"])]),_:1}),a(m,{label:"Server ID",name:"guildId",hint:"Optional. Limit to one server."},{default:n(()=>[a(f,{modelValue:t(s).guildId,"onUpdate:modelValue":e[24]||(e[24]=l=>t(s).guildId=l),placeholder:"Discord server ID",class:"w-full"},null,8,["modelValue"])]),_:1}),a(m,{label:"Channel ID",name:"channelId",hint:"Optional. Limit to one channel (for 'all' mode)."},{default:n(()=>[a(f,{modelValue:t(s).channelId,"onUpdate:modelValue":e[25]||(e[25]=l=>t(s).channelId=l),placeholder:"Discord channel ID",class:"w-full"},null,8,["modelValue"])]),_:1})],64)):U("",!0),t(y)?.platform==="imessage"?(r(),u(x,{key:3},[a(m,{label:"Strategy",name:"strategy"},{default:n(()=>[a(ce,{modelValue:t(s).strategy,"onUpdate:modelValue":e[26]||(e[26]=l=>t(s).strategy=l),items:Re,"value-key":"value",class:"w-full"},null,8,["modelValue"])]),_:1}),t(s).strategy==="bluebubbles"&&!t($).some(l=>l.key==="BLUEBUBBLES_PASSWORD")?(r(),u("div",Pt,[a(A,{name:"i-lucide-alert-triangle",class:"size-4 mt-0.5 text-error shrink-0"}),e[76]||(e[76]=o("span",{class:"text-dimmed"},[c(" BlueBubbles requires secret "),o("code",{class:"text-xs bg-elevated px-1.5 py-0.5 rounded"},"BLUEBUBBLES_PASSWORD"),c(" in the Secrets tab. ")],-1))])):U("",!0),t(s).strategy==="bluebubbles"?(r(),ge(m,{key:1,label:"BlueBubbles URL",name:"blueBubblesUrl"},{default:n(()=>[a(f,{modelValue:t(s).blueBubblesUrl,"onUpdate:modelValue":e[27]||(e[27]=l=>t(s).blueBubblesUrl=l),placeholder:"http://192.168.1.100:1234",class:"w-full"},null,8,["modelValue"])]),_:1})):U("",!0),a(m,{label:"Allowed Numbers",name:"allowedNumbers",hint:"Comma-separated. Leave empty for all."},{default:n(()=>[a(f,{modelValue:t(s).allowedNumbers,"onUpdate:modelValue":e[28]||(e[28]=l=>t(s).allowedNumbers=l),placeholder:"+15551234567, +15559876543",class:"w-full"},null,8,["modelValue"])]),_:1})],64)):U("",!0),t(y)?.platform==="google"?(r(),u(x,{key:4},[a(m,{label:"Enabled Services",name:"enabledServices"},{default:n(()=>[o("div",Ut,[(r(),u(x,null,I(He,l=>o("label",{key:l.value,class:"flex items-center gap-2 cursor-pointer"},[o("input",{type:"checkbox",checked:t(s).enabledServices.includes(l.value),class:"rounded",onChange:v=>t(s).enabledServices.includes(l.value)?t(s).enabledServices=t(s).enabledServices.filter(pe=>pe!==l.value):t(s).enabledServices.push(l.value)},null,40,St),o("span",Vt,w(l.label),1)])),64))])]),_:1}),a(m,{label:"Google Account",name:"account",hint:"Email used with gogcli"},{default:n(()=>[a(f,{modelValue:t(s).account,"onUpdate:modelValue":e[29]||(e[29]=l=>t(s).account=l),placeholder:"user@gmail.com",class:"w-full"},null,8,["modelValue"])]),_:1})],64)):U("",!0),t(y)?.platform==="email"?(r(),u(x,{key:5},[a(m,{label:"Email Address",name:"emailAddress"},{default:n(()=>[a(f,{modelValue:t(s).emailAddress,"onUpdate:modelValue":e[30]||(e[30]=l=>t(s).emailAddress=l),placeholder:"user@example.com",class:"w-full"},null,8,["modelValue"])]),_:1}),o("div",Ct,[a(m,{label:"IMAP Host",name:"imapHost"},{default:n(()=>[a(f,{modelValue:t(s).imapHost,"onUpdate:modelValue":e[31]||(e[31]=l=>t(s).imapHost=l),placeholder:"imap.example.com",class:"w-full"},null,8,["modelValue"])]),_:1}),a(m,{label:"IMAP Port",name:"imapPort"},{default:n(()=>[a(f,{modelValue:t(s).imapPort,"onUpdate:modelValue":e[32]||(e[32]=l=>t(s).imapPort=l),placeholder:"993",class:"w-full"},null,8,["modelValue"])]),_:1})]),o("div",At,[a(m,{label:"SMTP Host",name:"smtpHost"},{default:n(()=>[a(f,{modelValue:t(s).smtpHost,"onUpdate:modelValue":e[33]||(e[33]=l=>t(s).smtpHost=l),placeholder:"smtp.example.com",class:"w-full"},null,8,["modelValue"])]),_:1}),a(m,{label:"SMTP Port",name:"smtpPort"},{default:n(()=>[a(f,{modelValue:t(s).smtpPort,"onUpdate:modelValue":e[34]||(e[34]=l=>t(s).smtpPort=l),placeholder:"587",class:"w-full"},null,8,["modelValue"])]),_:1})])],64)):U("",!0),o("div",It,[a(g,{variant:"ghost",onClick:e[35]||(e[35]=l=>N.value=!1)},{default:n(()=>[...e[77]||(e[77]=[c(" Cancel ",-1)])]),_:1}),a(g,{loading:t(re),onClick:ze},{default:n(()=>[...e[78]||(e[78]=[c(" Save ",-1)])]),_:1},8,["loading"])])])]),_:1},8,["open"])]),_:1})}}});export{ba as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ao as
|
|
1
|
+
import{ao as z,N as R,P as _,ay as F,az as H,aA as I,aB as h,c as k,am as q,S as d,T as o,U as u,a9 as i,V as w,C as a,W as c,a4 as n,aE as x,aF as D,X as B,aC as L,aD as U,aa as y,ae as v,G as $,ab as P,Y as G}from"./D6tVZcRs.js";import{D as K,a as W,b as X}from"./DB2zZev7.js";import{d as Y,D as J,a as C,b as S,c as M}from"./BNJJSRKh.js";const Q={slots:{overlay:"fixed inset-0 bg-elevated/75",content:"fixed bg-default divide-y divide-default sm:ring ring-default sm:shadow-lg flex flex-col focus:outline-none",header:"flex items-center gap-1.5 p-4 sm:px-6 min-h-16",wrapper:"",body:"flex-1 overflow-y-auto p-4 sm:p-6",footer:"flex items-center gap-1.5 p-4 sm:px-6",title:"text-highlighted font-semibold",description:"mt-1 text-muted text-sm",close:"absolute top-4 end-4"},variants:{side:{top:{content:""},right:{content:"max-w-md"},bottom:{content:""},left:{content:"max-w-md"}},inset:{true:{content:"rounded-lg"}},transition:{true:{overlay:"data-[state=open]:animate-[fade-in_200ms_ease-out] data-[state=closed]:animate-[fade-out_200ms_ease-in]"}}},compoundVariants:[{side:"top",inset:!0,class:{content:"max-h-[calc(100%-2rem)] inset-x-4 top-4"}},{side:"top",inset:!1,class:{content:"max-h-full inset-x-0 top-0"}},{side:"right",inset:!0,class:{content:"w-[calc(100%-2rem)] inset-y-4 right-4"}},{side:"right",inset:!1,class:{content:"w-full inset-y-0 right-0"}},{side:"bottom",inset:!0,class:{content:"max-h-[calc(100%-2rem)] inset-x-4 bottom-4"}},{side:"bottom",inset:!1,class:{content:"max-h-full inset-x-0 bottom-0"}},{side:"left",inset:!0,class:{content:"w-[calc(100%-2rem)] inset-y-4 left-4"}},{side:"left",inset:!1,class:{content:"w-full inset-y-0 left-0"}},{transition:!0,side:"top",class:{content:"data-[state=open]:animate-[slide-in-from-top_200ms_ease-in-out] data-[state=closed]:animate-[slide-out-to-top_200ms_ease-in-out]"}},{transition:!0,side:"right",class:{content:"data-[state=open]:animate-[slide-in-from-right_200ms_ease-in-out] data-[state=closed]:animate-[slide-out-to-right_200ms_ease-in-out]"}},{transition:!0,side:"bottom",class:{content:"data-[state=open]:animate-[slide-in-from-bottom_200ms_ease-in-out] data-[state=closed]:animate-[slide-out-to-bottom_200ms_ease-in-out]"}},{transition:!0,side:"left",class:{content:"data-[state=open]:animate-[slide-in-from-left_200ms_ease-in-out] data-[state=closed]:animate-[slide-out-to-left_200ms_ease-in-out]"}}]},se={__name:"USlideover",props:{title:{type:String,required:!1},description:{type:String,required:!1},content:{type:Object,required:!1},overlay:{type:Boolean,required:!1,default:!0},transition:{type:Boolean,required:!1,default:!0},side:{type:null,required:!1,default:"right"},inset:{type:Boolean,required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},close:{type:[Boolean,Object],required:!1,default:!0},closeIcon:{type:null,required:!1},dismissible:{type:Boolean,required:!1,default:!0},class:{type:null,required:!1},ui:{type:null,required:!1},open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1},modal:{type:Boolean,required:!1,default:!0}},emits:["after:leave","after:enter","close:prevent","update:open"],setup(t,{emit:O}){const e=t,p=O,s=z(),{t:V}=R(),b=_(),E=F(H(e,"open","defaultOpen","modal"),p),N=I(h(()=>e.portal)),A=h(()=>e.content),T=k(()=>e.dismissible?{}:["pointerDownOutside","interactOutside","escapeKeyDown"].reduce((f,g)=>(f[g]=m=>{m.preventDefault(),p("close:prevent")},f),{})),r=k(()=>q({extend:q(Q),...b.ui?.slideover||{}})({transition:e.transition,side:e.side,inset:e.inset}));return(l,f)=>(o(),d(a(X),x(D(a(E))),{default:u(({open:g,close:m})=>[s.default?(o(),d(a(K),{key:0,"as-child":"",class:c(e.class)},{default:u(()=>[n(l.$slots,"default",{open:g})]),_:2},1032,["class"])):i("",!0),w(a(W),x(D(a(N))),{default:u(()=>[t.overlay?(o(),d(a(Y),{key:0,"data-slot":"overlay",class:c(r.value.overlay({class:e.ui?.overlay}))},null,8,["class"])):i("",!0),w(a(J),B({"data-side":t.side,"data-slot":"content",class:r.value.content({class:[!s.default&&e.class,e.ui?.content]})},A.value,{onAfterEnter:f[0]||(f[0]=j=>p("after:enter")),onAfterLeave:f[1]||(f[1]=j=>p("after:leave"))},L(T.value)),{default:u(()=>[s.content&&(t.title||s.title||t.description||s.description)?(o(),d(a(U),{key:0},{default:u(()=>[t.title||s.title?(o(),d(a(C),{key:0},{default:u(()=>[n(l.$slots,"title",{},()=>[y(v(t.title),1)])]),_:3})):i("",!0),t.description||s.description?(o(),d(a(S),{key:1},{default:u(()=>[n(l.$slots,"description",{},()=>[y(v(t.description),1)])]),_:3})):i("",!0)]),_:3})):i("",!0),n(l.$slots,"content",{close:m},()=>[s.header||t.title||s.title||t.description||s.description||e.close||s.close?(o(),$("div",{key:0,"data-slot":"header",class:c(r.value.header({class:e.ui?.header}))},[n(l.$slots,"header",{close:m},()=>[P("div",{"data-slot":"wrapper",class:c(r.value.wrapper({class:e.ui?.wrapper}))},[t.title||s.title?(o(),d(a(C),{key:0,"data-slot":"title",class:c(r.value.title({class:e.ui?.title}))},{default:u(()=>[n(l.$slots,"title",{},()=>[y(v(t.title),1)])]),_:3},8,["class"])):i("",!0),t.description||s.description?(o(),d(a(S),{key:1,"data-slot":"description",class:c(r.value.description({class:e.ui?.description}))},{default:u(()=>[n(l.$slots,"description",{},()=>[y(v(t.description),1)])]),_:3},8,["class"])):i("",!0)],2),n(l.$slots,"actions"),e.close||s.close?(o(),d(a(M),{key:0,"as-child":""},{default:u(()=>[n(l.$slots,"close",{ui:r.value},()=>[e.close?(o(),d(G,B({key:0,icon:t.closeIcon||a(b).ui.icons.close,color:"neutral",variant:"ghost","aria-label":a(V)("slideover.close")},typeof e.close=="object"?e.close:{},{"data-slot":"close",class:r.value.close({class:e.ui?.close})}),null,16,["icon","aria-label","class"])):i("",!0)])]),_:2},1024)):i("",!0)])],2)):i("",!0),P("div",{"data-slot":"body",class:c(r.value.body({class:e.ui?.body}))},[n(l.$slots,"body",{close:m})],2),s.footer?(o(),$("div",{key:1,"data-slot":"footer",class:c(r.value.footer({class:e.ui?.footer}))},[n(l.$slots,"footer",{close:m})],2)):i("",!0)])]),_:2},1040,["data-side","class"])]),_:2},1040)]),_:3},16))}};export{se as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ao as j,L as Z,N as G,aK as _,aC as N,aJ as J,P as ee,c as V,b7 as ae,G as y,R as s,T as d,S as r,a4 as g,a9 as I,ab as D,Q as o,_ as w,U as n,C as i,ax as te,V as b,Y as p,aa as U,ae as W,aj as T,ak as q,au as ie,b8 as Q,b9 as Y,ap as le,ba as se,bb as ne,aN as E,aO as M,aI as re,aT as oe,am as F}from"./2dNDtTiv.js";import{D as u,a as de,b as ce,c as ue}from"./DS2wStH1.js";import{c as ge}from"./DhI5cA_n.js";import{_ as fe}from"./D8lwrAYS.js";const H={__name:"UDropdownMenuContent",props:{items:{type:null,required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0},sub:{type:Boolean,required:!1},labelKey:{type:null,required:!0},descriptionKey:{type:null,required:!0},checkedIcon:{type:null,required:!1},loadingIcon:{type:null,required:!1},externalIcon:{type:[Boolean,String],required:!1,skipCheck:!0},class:{type:null,required:!1},ui:{type:null,required:!0},uiOverride:{type:null,required:!1},loop:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","closeAutoFocus"],setup(e,{emit:z}){const l=e,O=z,h=j(),{dir:K}=Z(),x=G(),$=_(N(()=>l.portal)),B=J(ee(l,"sub","items","portal","labelKey","descriptionKey","checkedIcon","loadingIcon","externalIcon","class","ui","uiOverride"),O),P=()=>Y(h,["default"]),[k,v]=ge(),R=V(()=>K.value==="rtl"?x.ui.icons.chevronLeft:x.ui.icons.chevronRight),A=V(()=>l.items?.length?ae(l.items)?l.items:[l.items]:[]);return(f,C)=>(s(),y(T,null,[d(i(k),null,{default:r(({item:a,active:c,index:t})=>[g(f.$slots,a.slot||"item",{item:a,index:t,ui:e.ui},()=>[g(f.$slots,a.slot?`${a.slot}-leading`:"item-leading",{item:a,active:c,index:t,ui:e.ui},()=>[a.loading?(s(),o(w,{key:0,name:e.loadingIcon||i(x).ui.icons.loading,"data-slot":"itemLeadingIcon",class:n(e.ui.itemLeadingIcon({class:[e.uiOverride?.itemLeadingIcon,a.ui?.itemLeadingIcon],color:a?.color,loading:!0}))},null,8,["name","class"])):a.icon?(s(),o(w,{key:1,name:a.icon,"data-slot":"itemLeadingIcon",class:n(e.ui.itemLeadingIcon({class:[e.uiOverride?.itemLeadingIcon,a.ui?.itemLeadingIcon],color:a?.color,active:c}))},null,8,["name","class"])):a.avatar?(s(),o(te,b({key:2,size:a.ui?.itemLeadingAvatarSize||e.uiOverride?.itemLeadingAvatarSize||e.ui.itemLeadingAvatarSize()},a.avatar,{"data-slot":"itemLeadingAvatar",class:e.ui.itemLeadingAvatar({class:[e.uiOverride?.itemLeadingAvatar,a.ui?.itemLeadingAvatar],active:c})}),null,16,["size","class"])):I("",!0)]),i(p)(a,l.labelKey)||h[a.slot?`${a.slot}-label`:"item-label"]||i(p)(a,l.descriptionKey)||h[a.slot?`${a.slot}-description`:"item-description"]?(s(),y("span",{key:0,"data-slot":"itemWrapper",class:n(e.ui.itemWrapper({class:[e.uiOverride?.itemWrapper,a.ui?.itemWrapper]}))},[D("span",{"data-slot":"itemLabel",class:n(e.ui.itemLabel({class:[e.uiOverride?.itemLabel,a.ui?.itemLabel],active:c}))},[g(f.$slots,a.slot?`${a.slot}-label`:"item-label",{item:a,active:c,index:t},()=>[U(W(i(p)(a,l.labelKey)),1)]),a.target==="_blank"&&e.externalIcon!==!1?(s(),o(w,{key:0,name:typeof e.externalIcon=="string"?e.externalIcon:i(x).ui.icons.external,"data-slot":"itemLabelExternalIcon",class:n(e.ui.itemLabelExternalIcon({class:[e.uiOverride?.itemLabelExternalIcon,a.ui?.itemLabelExternalIcon],color:a?.color,active:c}))},null,8,["name","class"])):I("",!0)],2),i(p)(a,l.descriptionKey)?(s(),y("span",{key:0,"data-slot":"itemDescription",class:n(e.ui.itemDescription({class:[e.uiOverride?.itemDescription,a.ui?.itemDescription]}))},[g(f.$slots,a.slot?`${a.slot}-description`:"item-description",{item:a,active:c,index:t},()=>[U(W(i(p)(a,l.descriptionKey)),1)])],2)):I("",!0)],2)):I("",!0),D("span",{"data-slot":"itemTrailing",class:n(e.ui.itemTrailing({class:[e.uiOverride?.itemTrailing,a.ui?.itemTrailing]}))},[g(f.$slots,a.slot?`${a.slot}-trailing`:"item-trailing",{item:a,active:c,index:t,ui:e.ui},()=>[a.children?.length?(s(),o(w,{key:0,name:R.value,"data-slot":"itemTrailingIcon",class:n(e.ui.itemTrailingIcon({class:[e.uiOverride?.itemTrailingIcon,a.ui?.itemTrailingIcon],color:a?.color,active:c}))},null,8,["name","class"])):a.kbds?.length?(s(),y("span",{key:1,"data-slot":"itemTrailingKbds",class:n(e.ui.itemTrailingKbds({class:[e.uiOverride?.itemTrailingKbds,a.ui?.itemTrailingKbds]}))},[(s(!0),y(T,null,q(a.kbds,(m,L)=>(s(),o(fe,b({key:L,size:a.ui?.itemTrailingKbdsSize||e.uiOverride?.itemTrailingKbdsSize||e.ui.itemTrailingKbdsSize()},{ref_for:!0},typeof m=="string"?{value:m}:m),null,16,["size"]))),128))],2)):I("",!0)]),d(i(u).ItemIndicator,{"as-child":""},{default:r(()=>[d(w,{name:e.checkedIcon||i(x).ui.icons.check,"data-slot":"itemTrailingIcon",class:n(e.ui.itemTrailingIcon({class:[e.uiOverride?.itemTrailingIcon,a.ui?.itemTrailingIcon],color:a?.color}))},null,8,["name","class"])]),_:2},1024)],2)])]),_:3}),d(i(u).Portal,E(M(i($))),{default:r(()=>[(s(),o(ie(e.sub?i(u).SubContent:i(u).Content),b({"data-slot":"content",class:e.ui.content({class:[e.uiOverride?.content,l.class]})},i(B)),{default:r(()=>[g(f.$slots,"content-top",{sub:e.sub??!1}),D("div",{role:"presentation","data-slot":"viewport",class:n(e.ui.viewport({class:e.uiOverride?.viewport}))},[(s(!0),y(T,null,q(A.value,(a,c)=>(s(),o(i(u).Group,{key:`group-${c}`,"data-slot":"group",class:n(e.ui.group({class:e.uiOverride?.group}))},{default:r(()=>[(s(!0),y(T,null,q(a,(t,m)=>(s(),y(T,{key:`group-${c}-${m}`},[t.type==="label"?(s(),o(i(u).Label,{key:0,"data-slot":"label",class:n(e.ui.label({class:[e.uiOverride?.label,t.ui?.label,t.class]}))},{default:r(()=>[d(i(v),{item:t,index:m},null,8,["item","index"])]),_:2},1032,["class"])):t.type==="separator"?(s(),o(i(u).Separator,{key:1,"data-slot":"separator",class:n(e.ui.separator({class:[e.uiOverride?.separator,t.ui?.separator,t.class]}))},null,8,["class"])):t?.children?.length?(s(),o(i(u).Sub,{key:2,open:t.open,"default-open":t.defaultOpen},{default:r(()=>[d(i(u).SubTrigger,{as:"button",type:"button",disabled:t.disabled,"text-value":i(p)(t,l.labelKey),"data-slot":"item",class:n(e.ui.item({class:[e.uiOverride?.item,t.ui?.item,t.class],color:t?.color}))},{default:r(()=>[d(i(v),{item:t,index:m},null,8,["item","index"])]),_:2},1032,["disabled","text-value","class"]),d(H,b({sub:"",class:t.ui?.content,ui:e.ui,"ui-override":e.uiOverride,portal:e.portal,items:t.children,align:"start","align-offset":-4,"side-offset":3,"label-key":e.labelKey,"description-key":e.descriptionKey,"checked-icon":e.checkedIcon,"loading-icon":e.loadingIcon,"external-icon":e.externalIcon},{ref_for:!0},t.content),Q({_:2},[q(P(),(L,S)=>({name:S,fn:r(X=>[g(f.$slots,S,b({ref_for:!0},X))])}))]),1040,["class","ui","ui-override","portal","items","label-key","description-key","checked-icon","loading-icon","external-icon"])]),_:2},1032,["open","default-open"])):t.type==="checkbox"?(s(),o(i(u).CheckboxItem,{key:3,"model-value":t.checked,disabled:t.disabled,"text-value":i(p)(t,l.labelKey),"data-slot":"item",class:n(e.ui.item({class:[e.uiOverride?.item,t.ui?.item,t.class],color:t?.color})),"onUpdate:modelValue":t.onUpdateChecked,onSelect:t.onSelect},{default:r(()=>[d(i(v),{item:t,index:m},null,8,["item","index"])]),_:2},1032,["model-value","disabled","text-value","class","onUpdate:modelValue","onSelect"])):(s(),o(i(u).Item,{key:4,"as-child":"",disabled:t.disabled,"text-value":i(p)(t,l.labelKey),onSelect:t.onSelect},{default:r(()=>[d(le,b({ref_for:!0},i(se)(t),{custom:""}),{default:r(({active:L,...S})=>[d(ne,b({ref_for:!0},S,{"data-slot":"item",class:e.ui.item({class:[e.uiOverride?.item,t.ui?.item,t.class],color:t?.color,active:L})}),{default:r(()=>[d(i(v),{item:t,active:L,index:m},null,8,["item","active","index"])]),_:2},1040,["class"])]),_:2},1040)]),_:2},1032,["disabled","text-value","onSelect"]))],64))),128))]),_:2},1032,["class"]))),128))],2),g(f.$slots,"default"),g(f.$slots,"content-bottom",{sub:e.sub??!1})]),_:3},16,["class"]))]),_:3},16)],64))}},me={slots:{content:"min-w-32 bg-default shadow-lg rounded-md ring ring-default overflow-hidden data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in] origin-(--reka-dropdown-menu-content-transform-origin) flex flex-col",viewport:"relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1",arrow:"fill-default",group:"p-1 isolate",label:"w-full flex items-center font-semibold text-highlighted",separator:"-mx-1 my-1 h-px bg-border",item:"group relative w-full flex items-start select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75",itemLeadingIcon:"shrink-0",itemLeadingAvatar:"shrink-0",itemLeadingAvatarSize:"",itemTrailing:"ms-auto inline-flex gap-1.5 items-center",itemTrailingIcon:"shrink-0",itemTrailingKbds:"hidden lg:inline-flex items-center shrink-0",itemTrailingKbdsSize:"",itemWrapper:"flex-1 flex flex-col text-start min-w-0",itemLabel:"truncate",itemDescription:"truncate text-muted",itemLabelExternalIcon:"inline-block size-3 align-top text-dimmed"},variants:{color:{primary:"",secondary:"",success:"",info:"",warning:"",error:"",neutral:""},active:{true:{item:"text-highlighted before:bg-elevated",itemLeadingIcon:"text-default"},false:{item:["text-default data-highlighted:text-highlighted data-[state=open]:text-highlighted data-highlighted:before:bg-elevated/50 data-[state=open]:before:bg-elevated/50","transition-colors before:transition-colors"],itemLeadingIcon:["text-dimmed group-data-highlighted:text-default group-data-[state=open]:text-default","transition-colors"]}},loading:{true:{itemLeadingIcon:"animate-spin"}},size:{xs:{label:"p-1 text-xs gap-1",item:"p-1 text-xs gap-1",itemLeadingIcon:"size-4",itemLeadingAvatarSize:"3xs",itemTrailingIcon:"size-4",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"sm"},sm:{label:"p-1.5 text-xs gap-1.5",item:"p-1.5 text-xs gap-1.5",itemLeadingIcon:"size-4",itemLeadingAvatarSize:"3xs",itemTrailingIcon:"size-4",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"sm"},md:{label:"p-1.5 text-sm gap-1.5",item:"p-1.5 text-sm gap-1.5",itemLeadingIcon:"size-5",itemLeadingAvatarSize:"2xs",itemTrailingIcon:"size-5",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"md"},lg:{label:"p-2 text-sm gap-2",item:"p-2 text-sm gap-2",itemLeadingIcon:"size-5",itemLeadingAvatarSize:"2xs",itemTrailingIcon:"size-5",itemTrailingKbds:"gap-1",itemTrailingKbdsSize:"md"},xl:{label:"p-2 text-base gap-2",item:"p-2 text-base gap-2",itemLeadingIcon:"size-6",itemLeadingAvatarSize:"xs",itemTrailingIcon:"size-6",itemTrailingKbds:"gap-1",itemTrailingKbdsSize:"lg"}}},compoundVariants:[{color:"primary",active:!1,class:{item:"text-primary data-highlighted:text-primary data-highlighted:before:bg-primary/10 data-[state=open]:before:bg-primary/10",itemLeadingIcon:"text-primary/75 group-data-highlighted:text-primary group-data-[state=open]:text-primary"}},{color:"secondary",active:!1,class:{item:"text-secondary data-highlighted:text-secondary data-highlighted:before:bg-secondary/10 data-[state=open]:before:bg-secondary/10",itemLeadingIcon:"text-secondary/75 group-data-highlighted:text-secondary group-data-[state=open]:text-secondary"}},{color:"success",active:!1,class:{item:"text-success data-highlighted:text-success data-highlighted:before:bg-success/10 data-[state=open]:before:bg-success/10",itemLeadingIcon:"text-success/75 group-data-highlighted:text-success group-data-[state=open]:text-success"}},{color:"info",active:!1,class:{item:"text-info data-highlighted:text-info data-highlighted:before:bg-info/10 data-[state=open]:before:bg-info/10",itemLeadingIcon:"text-info/75 group-data-highlighted:text-info group-data-[state=open]:text-info"}},{color:"warning",active:!1,class:{item:"text-warning data-highlighted:text-warning data-highlighted:before:bg-warning/10 data-[state=open]:before:bg-warning/10",itemLeadingIcon:"text-warning/75 group-data-highlighted:text-warning group-data-[state=open]:text-warning"}},{color:"error",active:!1,class:{item:"text-error data-highlighted:text-error data-highlighted:before:bg-error/10 data-[state=open]:before:bg-error/10",itemLeadingIcon:"text-error/75 group-data-highlighted:text-error group-data-[state=open]:text-error"}},{color:"primary",active:!0,class:{item:"text-primary before:bg-primary/10",itemLeadingIcon:"text-primary"}},{color:"secondary",active:!0,class:{item:"text-secondary before:bg-secondary/10",itemLeadingIcon:"text-secondary"}},{color:"success",active:!0,class:{item:"text-success before:bg-success/10",itemLeadingIcon:"text-success"}},{color:"info",active:!0,class:{item:"text-info before:bg-info/10",itemLeadingIcon:"text-info"}},{color:"warning",active:!0,class:{item:"text-warning before:bg-warning/10",itemLeadingIcon:"text-warning"}},{color:"error",active:!0,class:{item:"text-error before:bg-error/10",itemLeadingIcon:"text-error"}}],defaultVariants:{size:"md"}},xe={__name:"UDropdownMenu",props:{size:{type:null,required:!1},items:{type:null,required:!1},checkedIcon:{type:null,required:!1},loadingIcon:{type:null,required:!1},externalIcon:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},content:{type:Object,required:!1},arrow:{type:[Boolean,Object],required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},labelKey:{type:null,required:!1,default:"label"},descriptionKey:{type:null,required:!1,default:"description"},disabled:{type:Boolean,required:!1},class:{type:null,required:!1},ui:{type:null,required:!1},defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1},modal:{type:Boolean,required:!1,default:!0}},emits:["update:open"],setup(e,{emit:z}){const l=e,O=z,h=j(),K=G(),x=J(re(l,"defaultOpen","open","modal"),O),$=N(()=>oe(l.content,{side:"bottom",sideOffset:8,collisionPadding:8})),B=N(()=>l.arrow),P=()=>Y(h,["default"]),k=V(()=>F({extend:F(me),...K.ui?.dropdownMenu||{}})({size:l.size}));return(v,R)=>(s(),o(i(ue),E(M(i(x))),{default:r(({open:A})=>[h.default?(s(),o(i(de),{key:0,"as-child":"",class:n(l.class),disabled:e.disabled},{default:r(()=>[g(v.$slots,"default",{open:A})]),_:2},1032,["class","disabled"])):I("",!0),d(H,b({class:k.value.content({class:[!h.default&&l.class,l.ui?.content]}),ui:k.value,"ui-override":l.ui},$.value,{items:e.items,portal:e.portal,"label-key":e.labelKey,"description-key":e.descriptionKey,"checked-icon":e.checkedIcon,"loading-icon":e.loadingIcon,"external-icon":e.externalIcon}),Q({default:r(()=>[e.arrow?(s(),o(i(ce),b({key:0},B.value,{"data-slot":"arrow",class:k.value.arrow({class:l.ui?.arrow})}),null,16,["class"])):I("",!0)]),_:2},[q(P(),(f,C)=>({name:C,fn:r(a=>[g(v.$slots,C,E(M(a)))])}))]),1040,["class","ui","ui-override","items","portal","label-key","description-key","checked-icon","loading-icon","external-icon"])]),_:3},16))}};export{xe as _};
|
|
1
|
+
import{ao as j,N as Y,P as G,aA as _,aB as N,ay as X,R as ee,c as V,b7 as ae,G as y,T as s,V as d,U as r,a4 as g,a9 as I,ab as D,S as o,_ as w,W as n,C as i,ax as te,X as b,Z as p,aa as U,ae as W,aj as T,ak as q,au as ie,b8 as Z,b9 as H,ap as le,ba as se,bb as ne,aE as E,aF as M,az as re,aT as oe,am as F}from"./D6tVZcRs.js";import{D as u,a as de,b as ce,c as ue}from"./qcVwZv8e.js";import{c as ge}from"./D12qPplu.js";import{_ as fe}from"./BNeeERBt.js";const J={__name:"UDropdownMenuContent",props:{items:{type:null,required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0},sub:{type:Boolean,required:!1},labelKey:{type:null,required:!0},descriptionKey:{type:null,required:!0},checkedIcon:{type:null,required:!1},loadingIcon:{type:null,required:!1},externalIcon:{type:[Boolean,String],required:!1,skipCheck:!0},class:{type:null,required:!1},ui:{type:null,required:!0},uiOverride:{type:null,required:!1},loop:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","closeAutoFocus"],setup(e,{emit:z}){const l=e,O=z,h=j(),{dir:K}=Y(),x=G(),$=_(N(()=>l.portal)),B=X(ee(l,"sub","items","portal","labelKey","descriptionKey","checkedIcon","loadingIcon","externalIcon","class","ui","uiOverride"),O),P=()=>H(h,["default"]),[k,v]=ge(),R=V(()=>K.value==="rtl"?x.ui.icons.chevronLeft:x.ui.icons.chevronRight),A=V(()=>l.items?.length?ae(l.items)?l.items:[l.items]:[]);return(f,C)=>(s(),y(T,null,[d(i(k),null,{default:r(({item:a,active:c,index:t})=>[g(f.$slots,a.slot||"item",{item:a,index:t,ui:e.ui},()=>[g(f.$slots,a.slot?`${a.slot}-leading`:"item-leading",{item:a,active:c,index:t,ui:e.ui},()=>[a.loading?(s(),o(w,{key:0,name:e.loadingIcon||i(x).ui.icons.loading,"data-slot":"itemLeadingIcon",class:n(e.ui.itemLeadingIcon({class:[e.uiOverride?.itemLeadingIcon,a.ui?.itemLeadingIcon],color:a?.color,loading:!0}))},null,8,["name","class"])):a.icon?(s(),o(w,{key:1,name:a.icon,"data-slot":"itemLeadingIcon",class:n(e.ui.itemLeadingIcon({class:[e.uiOverride?.itemLeadingIcon,a.ui?.itemLeadingIcon],color:a?.color,active:c}))},null,8,["name","class"])):a.avatar?(s(),o(te,b({key:2,size:a.ui?.itemLeadingAvatarSize||e.uiOverride?.itemLeadingAvatarSize||e.ui.itemLeadingAvatarSize()},a.avatar,{"data-slot":"itemLeadingAvatar",class:e.ui.itemLeadingAvatar({class:[e.uiOverride?.itemLeadingAvatar,a.ui?.itemLeadingAvatar],active:c})}),null,16,["size","class"])):I("",!0)]),i(p)(a,l.labelKey)||h[a.slot?`${a.slot}-label`:"item-label"]||i(p)(a,l.descriptionKey)||h[a.slot?`${a.slot}-description`:"item-description"]?(s(),y("span",{key:0,"data-slot":"itemWrapper",class:n(e.ui.itemWrapper({class:[e.uiOverride?.itemWrapper,a.ui?.itemWrapper]}))},[D("span",{"data-slot":"itemLabel",class:n(e.ui.itemLabel({class:[e.uiOverride?.itemLabel,a.ui?.itemLabel],active:c}))},[g(f.$slots,a.slot?`${a.slot}-label`:"item-label",{item:a,active:c,index:t},()=>[U(W(i(p)(a,l.labelKey)),1)]),a.target==="_blank"&&e.externalIcon!==!1?(s(),o(w,{key:0,name:typeof e.externalIcon=="string"?e.externalIcon:i(x).ui.icons.external,"data-slot":"itemLabelExternalIcon",class:n(e.ui.itemLabelExternalIcon({class:[e.uiOverride?.itemLabelExternalIcon,a.ui?.itemLabelExternalIcon],color:a?.color,active:c}))},null,8,["name","class"])):I("",!0)],2),i(p)(a,l.descriptionKey)?(s(),y("span",{key:0,"data-slot":"itemDescription",class:n(e.ui.itemDescription({class:[e.uiOverride?.itemDescription,a.ui?.itemDescription]}))},[g(f.$slots,a.slot?`${a.slot}-description`:"item-description",{item:a,active:c,index:t},()=>[U(W(i(p)(a,l.descriptionKey)),1)])],2)):I("",!0)],2)):I("",!0),D("span",{"data-slot":"itemTrailing",class:n(e.ui.itemTrailing({class:[e.uiOverride?.itemTrailing,a.ui?.itemTrailing]}))},[g(f.$slots,a.slot?`${a.slot}-trailing`:"item-trailing",{item:a,active:c,index:t,ui:e.ui},()=>[a.children?.length?(s(),o(w,{key:0,name:R.value,"data-slot":"itemTrailingIcon",class:n(e.ui.itemTrailingIcon({class:[e.uiOverride?.itemTrailingIcon,a.ui?.itemTrailingIcon],color:a?.color,active:c}))},null,8,["name","class"])):a.kbds?.length?(s(),y("span",{key:1,"data-slot":"itemTrailingKbds",class:n(e.ui.itemTrailingKbds({class:[e.uiOverride?.itemTrailingKbds,a.ui?.itemTrailingKbds]}))},[(s(!0),y(T,null,q(a.kbds,(m,L)=>(s(),o(fe,b({key:L,size:a.ui?.itemTrailingKbdsSize||e.uiOverride?.itemTrailingKbdsSize||e.ui.itemTrailingKbdsSize()},{ref_for:!0},typeof m=="string"?{value:m}:m),null,16,["size"]))),128))],2)):I("",!0)]),d(i(u).ItemIndicator,{"as-child":""},{default:r(()=>[d(w,{name:e.checkedIcon||i(x).ui.icons.check,"data-slot":"itemTrailingIcon",class:n(e.ui.itemTrailingIcon({class:[e.uiOverride?.itemTrailingIcon,a.ui?.itemTrailingIcon],color:a?.color}))},null,8,["name","class"])]),_:2},1024)],2)])]),_:3}),d(i(u).Portal,E(M(i($))),{default:r(()=>[(s(),o(ie(e.sub?i(u).SubContent:i(u).Content),b({"data-slot":"content",class:e.ui.content({class:[e.uiOverride?.content,l.class]})},i(B)),{default:r(()=>[g(f.$slots,"content-top",{sub:e.sub??!1}),D("div",{role:"presentation","data-slot":"viewport",class:n(e.ui.viewport({class:e.uiOverride?.viewport}))},[(s(!0),y(T,null,q(A.value,(a,c)=>(s(),o(i(u).Group,{key:`group-${c}`,"data-slot":"group",class:n(e.ui.group({class:e.uiOverride?.group}))},{default:r(()=>[(s(!0),y(T,null,q(a,(t,m)=>(s(),y(T,{key:`group-${c}-${m}`},[t.type==="label"?(s(),o(i(u).Label,{key:0,"data-slot":"label",class:n(e.ui.label({class:[e.uiOverride?.label,t.ui?.label,t.class]}))},{default:r(()=>[d(i(v),{item:t,index:m},null,8,["item","index"])]),_:2},1032,["class"])):t.type==="separator"?(s(),o(i(u).Separator,{key:1,"data-slot":"separator",class:n(e.ui.separator({class:[e.uiOverride?.separator,t.ui?.separator,t.class]}))},null,8,["class"])):t?.children?.length?(s(),o(i(u).Sub,{key:2,open:t.open,"default-open":t.defaultOpen},{default:r(()=>[d(i(u).SubTrigger,{as:"button",type:"button",disabled:t.disabled,"text-value":i(p)(t,l.labelKey),"data-slot":"item",class:n(e.ui.item({class:[e.uiOverride?.item,t.ui?.item,t.class],color:t?.color}))},{default:r(()=>[d(i(v),{item:t,index:m},null,8,["item","index"])]),_:2},1032,["disabled","text-value","class"]),d(J,b({sub:"",class:t.ui?.content,ui:e.ui,"ui-override":e.uiOverride,portal:e.portal,items:t.children,align:"start","align-offset":-4,"side-offset":3,"label-key":e.labelKey,"description-key":e.descriptionKey,"checked-icon":e.checkedIcon,"loading-icon":e.loadingIcon,"external-icon":e.externalIcon},{ref_for:!0},t.content),Z({_:2},[q(P(),(L,S)=>({name:S,fn:r(Q=>[g(f.$slots,S,b({ref_for:!0},Q))])}))]),1040,["class","ui","ui-override","portal","items","label-key","description-key","checked-icon","loading-icon","external-icon"])]),_:2},1032,["open","default-open"])):t.type==="checkbox"?(s(),o(i(u).CheckboxItem,{key:3,"model-value":t.checked,disabled:t.disabled,"text-value":i(p)(t,l.labelKey),"data-slot":"item",class:n(e.ui.item({class:[e.uiOverride?.item,t.ui?.item,t.class],color:t?.color})),"onUpdate:modelValue":t.onUpdateChecked,onSelect:t.onSelect},{default:r(()=>[d(i(v),{item:t,index:m},null,8,["item","index"])]),_:2},1032,["model-value","disabled","text-value","class","onUpdate:modelValue","onSelect"])):(s(),o(i(u).Item,{key:4,"as-child":"",disabled:t.disabled,"text-value":i(p)(t,l.labelKey),onSelect:t.onSelect},{default:r(()=>[d(le,b({ref_for:!0},i(se)(t),{custom:""}),{default:r(({active:L,...S})=>[d(ne,b({ref_for:!0},S,{"data-slot":"item",class:e.ui.item({class:[e.uiOverride?.item,t.ui?.item,t.class],color:t?.color,active:L})}),{default:r(()=>[d(i(v),{item:t,active:L,index:m},null,8,["item","active","index"])]),_:2},1040,["class"])]),_:2},1040)]),_:2},1032,["disabled","text-value","onSelect"]))],64))),128))]),_:2},1032,["class"]))),128))],2),g(f.$slots,"default"),g(f.$slots,"content-bottom",{sub:e.sub??!1})]),_:3},16,["class"]))]),_:3},16)],64))}},me={slots:{content:"min-w-32 bg-default shadow-lg rounded-md ring ring-default overflow-hidden data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in] origin-(--reka-dropdown-menu-content-transform-origin) flex flex-col",viewport:"relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1",arrow:"fill-default",group:"p-1 isolate",label:"w-full flex items-center font-semibold text-highlighted",separator:"-mx-1 my-1 h-px bg-border",item:"group relative w-full flex items-start select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75",itemLeadingIcon:"shrink-0",itemLeadingAvatar:"shrink-0",itemLeadingAvatarSize:"",itemTrailing:"ms-auto inline-flex gap-1.5 items-center",itemTrailingIcon:"shrink-0",itemTrailingKbds:"hidden lg:inline-flex items-center shrink-0",itemTrailingKbdsSize:"",itemWrapper:"flex-1 flex flex-col text-start min-w-0",itemLabel:"truncate",itemDescription:"truncate text-muted",itemLabelExternalIcon:"inline-block size-3 align-top text-dimmed"},variants:{color:{primary:"",secondary:"",success:"",info:"",warning:"",error:"",neutral:""},active:{true:{item:"text-highlighted before:bg-elevated",itemLeadingIcon:"text-default"},false:{item:["text-default data-highlighted:text-highlighted data-[state=open]:text-highlighted data-highlighted:before:bg-elevated/50 data-[state=open]:before:bg-elevated/50","transition-colors before:transition-colors"],itemLeadingIcon:["text-dimmed group-data-highlighted:text-default group-data-[state=open]:text-default","transition-colors"]}},loading:{true:{itemLeadingIcon:"animate-spin"}},size:{xs:{label:"p-1 text-xs gap-1",item:"p-1 text-xs gap-1",itemLeadingIcon:"size-4",itemLeadingAvatarSize:"3xs",itemTrailingIcon:"size-4",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"sm"},sm:{label:"p-1.5 text-xs gap-1.5",item:"p-1.5 text-xs gap-1.5",itemLeadingIcon:"size-4",itemLeadingAvatarSize:"3xs",itemTrailingIcon:"size-4",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"sm"},md:{label:"p-1.5 text-sm gap-1.5",item:"p-1.5 text-sm gap-1.5",itemLeadingIcon:"size-5",itemLeadingAvatarSize:"2xs",itemTrailingIcon:"size-5",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"md"},lg:{label:"p-2 text-sm gap-2",item:"p-2 text-sm gap-2",itemLeadingIcon:"size-5",itemLeadingAvatarSize:"2xs",itemTrailingIcon:"size-5",itemTrailingKbds:"gap-1",itemTrailingKbdsSize:"md"},xl:{label:"p-2 text-base gap-2",item:"p-2 text-base gap-2",itemLeadingIcon:"size-6",itemLeadingAvatarSize:"xs",itemTrailingIcon:"size-6",itemTrailingKbds:"gap-1",itemTrailingKbdsSize:"lg"}}},compoundVariants:[{color:"primary",active:!1,class:{item:"text-primary data-highlighted:text-primary data-highlighted:before:bg-primary/10 data-[state=open]:before:bg-primary/10",itemLeadingIcon:"text-primary/75 group-data-highlighted:text-primary group-data-[state=open]:text-primary"}},{color:"secondary",active:!1,class:{item:"text-secondary data-highlighted:text-secondary data-highlighted:before:bg-secondary/10 data-[state=open]:before:bg-secondary/10",itemLeadingIcon:"text-secondary/75 group-data-highlighted:text-secondary group-data-[state=open]:text-secondary"}},{color:"success",active:!1,class:{item:"text-success data-highlighted:text-success data-highlighted:before:bg-success/10 data-[state=open]:before:bg-success/10",itemLeadingIcon:"text-success/75 group-data-highlighted:text-success group-data-[state=open]:text-success"}},{color:"info",active:!1,class:{item:"text-info data-highlighted:text-info data-highlighted:before:bg-info/10 data-[state=open]:before:bg-info/10",itemLeadingIcon:"text-info/75 group-data-highlighted:text-info group-data-[state=open]:text-info"}},{color:"warning",active:!1,class:{item:"text-warning data-highlighted:text-warning data-highlighted:before:bg-warning/10 data-[state=open]:before:bg-warning/10",itemLeadingIcon:"text-warning/75 group-data-highlighted:text-warning group-data-[state=open]:text-warning"}},{color:"error",active:!1,class:{item:"text-error data-highlighted:text-error data-highlighted:before:bg-error/10 data-[state=open]:before:bg-error/10",itemLeadingIcon:"text-error/75 group-data-highlighted:text-error group-data-[state=open]:text-error"}},{color:"primary",active:!0,class:{item:"text-primary before:bg-primary/10",itemLeadingIcon:"text-primary"}},{color:"secondary",active:!0,class:{item:"text-secondary before:bg-secondary/10",itemLeadingIcon:"text-secondary"}},{color:"success",active:!0,class:{item:"text-success before:bg-success/10",itemLeadingIcon:"text-success"}},{color:"info",active:!0,class:{item:"text-info before:bg-info/10",itemLeadingIcon:"text-info"}},{color:"warning",active:!0,class:{item:"text-warning before:bg-warning/10",itemLeadingIcon:"text-warning"}},{color:"error",active:!0,class:{item:"text-error before:bg-error/10",itemLeadingIcon:"text-error"}}],defaultVariants:{size:"md"}},xe={__name:"UDropdownMenu",props:{size:{type:null,required:!1},items:{type:null,required:!1},checkedIcon:{type:null,required:!1},loadingIcon:{type:null,required:!1},externalIcon:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},content:{type:Object,required:!1},arrow:{type:[Boolean,Object],required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},labelKey:{type:null,required:!1,default:"label"},descriptionKey:{type:null,required:!1,default:"description"},disabled:{type:Boolean,required:!1},class:{type:null,required:!1},ui:{type:null,required:!1},defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1},modal:{type:Boolean,required:!1,default:!0}},emits:["update:open"],setup(e,{emit:z}){const l=e,O=z,h=j(),K=G(),x=X(re(l,"defaultOpen","open","modal"),O),$=N(()=>oe(l.content,{side:"bottom",sideOffset:8,collisionPadding:8})),B=N(()=>l.arrow),P=()=>H(h,["default"]),k=V(()=>F({extend:F(me),...K.ui?.dropdownMenu||{}})({size:l.size}));return(v,R)=>(s(),o(i(ue),E(M(i(x))),{default:r(({open:A})=>[h.default?(s(),o(i(de),{key:0,"as-child":"",class:n(l.class),disabled:e.disabled},{default:r(()=>[g(v.$slots,"default",{open:A})]),_:2},1032,["class","disabled"])):I("",!0),d(J,b({class:k.value.content({class:[!h.default&&l.class,l.ui?.content]}),ui:k.value,"ui-override":l.ui},$.value,{items:e.items,portal:e.portal,"label-key":e.labelKey,"description-key":e.descriptionKey,"checked-icon":e.checkedIcon,"loading-icon":e.loadingIcon,"external-icon":e.externalIcon}),Z({default:r(()=>[e.arrow?(s(),o(i(ce),b({key:0},B.value,{"data-slot":"arrow",class:k.value.arrow({class:l.ui?.arrow})}),null,16,["class"])):I("",!0)]),_:2},[q(P(),(f,C)=>({name:C,fn:r(a=>[g(v.$slots,C,E(M(a)))])}))]),1040,["class","ui","ui-override","items","portal","label-key","description-key","checked-icon","loading-icon","external-icon"])]),_:3},16))}};export{xe as _};
|