cognova 0.2.8 → 0.2.10

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.
Files changed (199) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{CH_jROT9.js → 0NJ3PaRM.js} +1 -1
  3. package/.output/public/_nuxt/{C075hYlX.js → 0yk-pS3R.js} +2 -2
  4. package/.output/public/_nuxt/{CVYcsqmL.js → 10_wwHSz.js} +1 -1
  5. package/.output/public/_nuxt/{BUC36BHp.js → 1zUTf4AP.js} +1 -1
  6. package/.output/public/_nuxt/{njnzCNrH.js → 2dNDtTiv.js} +3 -3
  7. package/.output/public/_nuxt/{B8TQvzYX.js → 2nOqGUPr.js} +1 -1
  8. package/.output/public/_nuxt/{ijmD2cEW.js → 3jQMk_5H.js} +1 -1
  9. package/.output/public/_nuxt/{D4X6ONPF.js → 4K03TkGA.js} +1 -1
  10. package/.output/public/_nuxt/{C3tximD1.js → 6boMs_nF.js} +1 -1
  11. package/.output/public/_nuxt/{Drxf7nJz.js → 7oCGSglN.js} +1 -1
  12. package/.output/public/_nuxt/{Dt5mOzXj.js → 8q5NepGW.js} +1 -1
  13. package/.output/public/_nuxt/{GYf-vnR6.js → B93pdGAW.js} +1 -1
  14. package/.output/public/_nuxt/{BZBNJD7U.js → BA_pRWwX.js} +1 -1
  15. package/.output/public/_nuxt/{eE8TtXgC.js → BDyn4ApB.js} +3 -3
  16. package/.output/public/_nuxt/{0dqQoCHY.js → BGgwYWjH.js} +1 -1
  17. package/.output/public/_nuxt/{BrOKokPO.js → BH0QDWEm.js} +1 -1
  18. package/.output/public/_nuxt/{B5SnZL2l.js → BHtY0l0l.js} +1 -1
  19. package/.output/public/_nuxt/{ImPsUDiH.js → BIXrSYwR.js} +1 -1
  20. package/.output/public/_nuxt/BK8S2ony.js +1 -0
  21. package/.output/public/_nuxt/{Bkc1Hpcf.js → BKXg-alD.js} +1 -1
  22. package/.output/public/_nuxt/{BahXyh-A.js → BLnYhy_t.js} +1 -1
  23. package/.output/public/_nuxt/{Bhhg7oSf.js → BR8bKz8h.js} +1 -1
  24. package/.output/public/_nuxt/{D2kQkOaG.js → BS2ZNXI1.js} +1 -1
  25. package/.output/public/_nuxt/{BLm0UviR.js → BUghTae1.js} +1 -1
  26. package/.output/public/_nuxt/{D4_89MZm.js → BXuWCWsJ.js} +1 -1
  27. package/.output/public/_nuxt/{LQNRVThr.js → BYHCP8x7.js} +1 -1
  28. package/.output/public/_nuxt/{BYtVdUIW.js → BZrSPX0S.js} +1 -1
  29. package/.output/public/_nuxt/{U3f6dy8i.js → B_wilgcd.js} +1 -1
  30. package/.output/public/_nuxt/BaZwjF8o.js +1 -0
  31. package/.output/public/_nuxt/{BefOhWHD.js → Bciqk4dX.js} +1 -1
  32. package/.output/public/_nuxt/{CewcVxDS.js → Beom-INj.js} +1 -1
  33. package/.output/public/_nuxt/{BlsIfvSf.js → BfcLZ_fC.js} +1 -1
  34. package/.output/public/_nuxt/{dB7G4iIC.js → Bk6JUtIo.js} +1 -1
  35. package/.output/public/_nuxt/BkfI94R8.js +1 -0
  36. package/.output/public/_nuxt/{DqzomZoo.js → BmOtR1wX.js} +1 -1
  37. package/.output/public/_nuxt/{4XnyUc7C.js → BmVLxnDU.js} +1 -1
  38. package/.output/public/_nuxt/{DtJnWtpL.js → BtHQ1T0f.js} +1 -1
  39. package/.output/public/_nuxt/{DcbbfwCe.js → ByYh0uRg.js} +1 -1
  40. package/.output/public/_nuxt/{CbvNJVrk.js → C27WoGNZ.js} +1 -1
  41. package/.output/public/_nuxt/{CY7f553E.js → C2FxZbO_.js} +1 -1
  42. package/.output/public/_nuxt/{zO9MgHj2.js → C2vq6Te8.js} +1 -1
  43. package/.output/public/_nuxt/{BXtZVbmx.js → C39dQ88F.js} +1 -1
  44. package/.output/public/_nuxt/{DmDPSvxi.js → C3NST0BU.js} +1 -1
  45. package/.output/public/_nuxt/{nHSiDk8N.js → C4mwL7SE.js} +1 -1
  46. package/.output/public/_nuxt/{BBDxhFYY.js → C5R5QaCA.js} +1 -1
  47. package/.output/public/_nuxt/{D79lbuWG.js → C6qKcgOY.js} +1 -1
  48. package/.output/public/_nuxt/{C-HCArYP.js → C71_a1IX.js} +1 -1
  49. package/.output/public/_nuxt/{CSjOaBKu.js → C9WIgRRL.js} +1 -1
  50. package/.output/public/_nuxt/{DmOS3vFH.js → CBTkrk2M.js} +1 -1
  51. package/.output/public/_nuxt/CEnSeCqn.js +1 -0
  52. package/.output/public/_nuxt/{CAfyXyeo.js → CKxSHyww.js} +1 -1
  53. package/.output/public/_nuxt/{D4Cizi4y.js → CLfF6dSn.js} +1 -1
  54. package/.output/public/_nuxt/{C7qhmmZh.js → CPutXj8l.js} +1 -1
  55. package/.output/public/_nuxt/{BCCYopTB.js → CQqCBrXj.js} +1 -1
  56. package/.output/public/_nuxt/{D-Ge96eV.js → CSKJ-Ahh.js} +1 -1
  57. package/.output/public/_nuxt/{B2Xfh7am.js → CTCcEJU3.js} +1 -1
  58. package/.output/public/_nuxt/{BnJ-6YDw.js → CVFwOzbl.js} +1 -1
  59. package/.output/public/_nuxt/{C21BjagS.js → CVdCqaby.js} +1 -1
  60. package/.output/public/_nuxt/{2QHXgMyi.js → CVqlefTY.js} +1 -1
  61. package/.output/public/_nuxt/CWyMCJQH.js +1 -0
  62. package/.output/public/_nuxt/{B6-U3KqJ.js → CY-QVcA5.js} +2 -2
  63. package/.output/public/_nuxt/{Cr0NfhPB.js → CY-cjAwJ.js} +1 -1
  64. package/.output/public/_nuxt/{Bwn-CRYH.js → CYPO5o_C.js} +1 -1
  65. package/.output/public/_nuxt/{B-AlyT2D.js → CZRnNmU8.js} +1 -1
  66. package/.output/public/_nuxt/{DwIYtFfA.js → CZVzFlpI.js} +1 -1
  67. package/.output/public/_nuxt/{BkO884Ds.js → CZoEPC_Q.js} +3 -3
  68. package/.output/public/_nuxt/{BJUff9Ku.js → Cc-2ziaZ.js} +1 -1
  69. package/.output/public/_nuxt/{BLwctszt.js → ChcO9s3o.js} +1 -1
  70. package/.output/public/_nuxt/{DX_9SfFb.js → Cl-LOSDV.js} +1 -1
  71. package/.output/public/_nuxt/{CSHcfejh.js → CobqYwkp.js} +1 -1
  72. package/.output/public/_nuxt/{B0xuHXvN.js → CqNwHCpo.js} +1 -1
  73. package/.output/public/_nuxt/{DMb_1D81.js → CuxrHsu-.js} +1 -1
  74. package/.output/public/_nuxt/{GGcn5KPW.js → CwPdIZ9J.js} +1 -1
  75. package/.output/public/_nuxt/{D7pKT3IW.js → D0ifH682.js} +1 -1
  76. package/.output/public/_nuxt/{KEeoKtq_.js → D3AZaldL.js} +1 -1
  77. package/.output/public/_nuxt/{BdxP21ep.js → D4UJwDQJ.js} +1 -1
  78. package/.output/public/_nuxt/{C-Ygk9x5.js → D5jZq8b3.js} +1 -1
  79. package/.output/public/_nuxt/{B6G3NLfW.js → D5q8SnqE.js} +1 -1
  80. package/.output/public/_nuxt/{CDkyQ1eQ.js → D8M722pn.js} +1 -1
  81. package/.output/public/_nuxt/{BjnQ1pI1.js → D8lwrAYS.js} +1 -1
  82. package/.output/public/_nuxt/{C13FKhqK.js → D9nmzBAw.js} +1 -1
  83. package/.output/public/_nuxt/{ClGn48iq.js → DC4idAGt.js} +1 -1
  84. package/.output/public/_nuxt/{vES4kgx7.js → DEd2xVbS.js} +1 -1
  85. package/.output/public/_nuxt/{CClsKJ9A.js → DH4YkDAi.js} +1 -1
  86. package/.output/public/_nuxt/{D-5A6cMB.js → DJTCT0bl.js} +1 -1
  87. package/.output/public/_nuxt/{D_O7SlHm.js → DNP5E1bC.js} +1 -1
  88. package/.output/public/_nuxt/{BF3tVKtX.js → DO9SFIh1.js} +1 -1
  89. package/.output/public/_nuxt/DPklr_tJ.js +2 -0
  90. package/.output/public/_nuxt/{mfAEx0Kz.js → DQM4eBdt.js} +1 -1
  91. package/.output/public/_nuxt/{cPPThz84.js → DQh6I9z9.js} +1 -1
  92. package/.output/public/_nuxt/{CXTrUfQ5.js → DS2wStH1.js} +1 -1
  93. package/.output/public/_nuxt/{CYQP4zpi.js → DTAStixR.js} +1 -1
  94. package/.output/public/_nuxt/{CEz288t8.js → DTGenhcA.js} +1 -1
  95. package/.output/public/_nuxt/{B9zgEO8N.js → DUAAXJ6Q.js} +1 -1
  96. package/.output/public/_nuxt/{CzAZpALW.js → DUVzIl3o.js} +1 -1
  97. package/.output/public/_nuxt/{DJt7Rogf.js → DXdwpJ-I.js} +1 -1
  98. package/.output/public/_nuxt/{MWUW1sIF.js → DY3uK7wM.js} +1 -1
  99. package/.output/public/_nuxt/{CfY_bsV0.js → DYbZBZet.js} +1 -1
  100. package/.output/public/_nuxt/{DZEuR9ms.js → D_4LPm1U.js} +1 -1
  101. package/.output/public/_nuxt/{CrmE-JGu.js → Db4KMnt8.js} +1 -1
  102. package/.output/public/_nuxt/{BwC62XRN.js → DcJbYLTp.js} +1 -1
  103. package/.output/public/_nuxt/{C6sX7TYf.js → DfF81NlA.js} +1 -1
  104. package/.output/public/_nuxt/{BHn8tRjg.js → DhI5cA_n.js} +1 -1
  105. package/.output/public/_nuxt/{CQ3tAemj.js → DhuOKJda.js} +1 -1
  106. package/.output/public/_nuxt/{D887s9k9.js → Di-Nc75e.js} +1 -1
  107. package/.output/public/_nuxt/{D_obX2Hj.js → Djs0Tlpa.js} +1 -1
  108. package/.output/public/_nuxt/DmmdPt_5.js +1 -0
  109. package/.output/public/_nuxt/{DKKY8zWm.js → Dn5a-guE.js} +1 -1
  110. package/.output/public/_nuxt/{BvstjGHC.js → DtjjnHnt.js} +1 -1
  111. package/.output/public/_nuxt/{Dbfwn2zk.js → DuvzM-P1.js} +1 -1
  112. package/.output/public/_nuxt/{BxShcW0K.js → DwY7rCd_.js} +1 -1
  113. package/.output/public/_nuxt/{BmaHzvZM.js → Dya5oK8u.js} +1 -1
  114. package/.output/public/_nuxt/{CO3hceDE.js → DzA58_Lm.js} +1 -1
  115. package/.output/public/_nuxt/{CF33v_m5.js → DzGy77Vr.js} +1 -1
  116. package/.output/public/_nuxt/{DmlZSBjF.js → E3rXPwU8.js} +1 -1
  117. package/.output/public/_nuxt/{CEDw8osP.js → EgKnQnf-.js} +1 -1
  118. package/.output/public/_nuxt/{it8syoZI.js → GtEM7xVU.js} +1 -1
  119. package/.output/public/_nuxt/{DLUvsixu.js → H6JbrRBU.js} +1 -1
  120. package/.output/public/_nuxt/{BE1CVWts.js → ILEvizzp.js} +1 -1
  121. package/.output/public/_nuxt/{BSA-U0so.js → JX1oqJI9.js} +1 -1
  122. package/.output/public/_nuxt/{yJ9vRvHj.js → JbHa4oXq.js} +1 -1
  123. package/.output/public/_nuxt/{zXvvpsZj.js → Kw0zy3FG.js} +1 -1
  124. package/.output/public/_nuxt/{C6FFW_cO.js → N5XtbYVD.js} +1 -1
  125. package/.output/public/_nuxt/{D04CyXmf.js → PP_4ebzl.js} +1 -1
  126. package/.output/public/_nuxt/{6QDVg5TO.js → SrncdpaW.js} +1 -1
  127. package/.output/public/_nuxt/{36ZHqDPo.js → U1MWjQMi.js} +1 -1
  128. package/.output/public/_nuxt/{mT7Mt2d7.js → Um1vPiAz.js} +1 -1
  129. package/.output/public/_nuxt/{CqFcWBkW.js → XCjS70z4.js} +1 -1
  130. package/.output/public/_nuxt/{C24so3m7.js → YX8avsvq.js} +2 -2
  131. package/.output/public/_nuxt/{DaBSQDif.js → _cy8R3nk.js} +1 -1
  132. package/.output/public/_nuxt/{D9aYkNhQ.js → apYB9dr5.js} +1 -1
  133. package/.output/public/_nuxt/builds/latest.json +1 -1
  134. package/.output/public/_nuxt/builds/meta/def74b99-d70c-4f30-aa29-70248cbeac7d.json +1 -0
  135. package/.output/public/_nuxt/entry.NKPfH2kE.css +1 -0
  136. package/.output/public/_nuxt/{BqTdsCnW.js → fbyIeNkc.js} +1 -1
  137. package/.output/public/_nuxt/{-2AbaFNH.js → g5MjDvm5.js} +1 -1
  138. package/.output/public/_nuxt/{C1tCdK-M.js → gTrVszwd.js} +1 -1
  139. package/.output/public/_nuxt/{BVEFmI4I.js → ixlNW2So.js} +1 -1
  140. package/.output/public/_nuxt/{DtyyytRx.js → nnQqD5pb.js} +1 -1
  141. package/.output/public/_nuxt/{pHCJ6lhw.js → rfGRTJJW.js} +1 -1
  142. package/.output/public/_nuxt/{Buf1PAiO.js → t8aDAkZ5.js} +1 -1
  143. package/.output/public/_nuxt/{BmdlymIW.js → vIOxcXKR.js} +1 -1
  144. package/.output/public/_nuxt/{Cve4psva.js → vScW1Zgm.js} +1 -1
  145. package/.output/public/_nuxt/{SfaNtyKS.js → wO6z2ugJ.js} +1 -1
  146. package/.output/public/_nuxt/{BhYoxmLV.js → x6FRJ5ac.js} +1 -1
  147. package/.output/public/_nuxt/{Pn7VD6uQ.js → zq-a1TeT.js} +1 -1
  148. package/.output/server/chunks/build/{chat-CZMiB68R.mjs → chat-CR3JIVEq.mjs} +65 -11
  149. package/.output/server/chunks/build/chat-CR3JIVEq.mjs.map +1 -0
  150. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  151. package/.output/server/chunks/build/server.mjs +3 -3
  152. package/.output/server/chunks/build/{settings-ByUXa46k.mjs → settings-B2KXoGcz.mjs} +213 -26
  153. package/.output/server/chunks/build/settings-B2KXoGcz.mjs.map +1 -0
  154. package/.output/server/chunks/build/styles.mjs +2 -2
  155. package/.output/server/chunks/build/{usage-CSrBh4Or.mjs → usage-BHdQZbfI.mjs} +9 -5
  156. package/.output/server/chunks/build/{usage-CSrBh4Or.mjs.map → usage-BHdQZbfI.mjs.map} +1 -1
  157. package/.output/server/chunks/nitro/nitro.mjs +1161 -891
  158. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  159. package/.output/server/chunks/routes/_ws/chat.mjs +2 -1
  160. package/.output/server/chunks/routes/_ws/chat.mjs.map +1 -1
  161. package/.output/server/chunks/routes/api/conversations/_id_.delete.mjs +4 -1
  162. package/.output/server/chunks/routes/api/conversations/_id_.delete.mjs.map +1 -1
  163. package/.output/server/chunks/routes/api/index.get3.mjs +1 -1
  164. package/.output/server/chunks/routes/api/index.get3.mjs.map +1 -1
  165. package/.output/server/chunks/routes/api/usage/stats.get.mjs +2 -0
  166. package/.output/server/chunks/routes/api/usage/stats.get.mjs.map +1 -1
  167. package/.output/server/package.json +1 -1
  168. package/app/components/chat/ConversationList.vue +7 -1
  169. package/app/components/chat/MessageBubble.vue +45 -1
  170. package/app/components/usage/UsageRecordsTable.vue +4 -2
  171. package/app/components/usage/UsageSourceDonut.client.vue +4 -2
  172. package/app/components/usage/UsageTopConsumers.vue +4 -2
  173. package/app/composables/useChat.ts +3 -0
  174. package/app/pages/settings.vue +148 -9
  175. package/package.json +1 -1
  176. package/server/api/conversations/[id].delete.ts +9 -0
  177. package/server/api/conversations/index.get.ts +2 -1
  178. package/server/api/usage/stats.get.ts +2 -0
  179. package/server/bridge/adapters/telegram.ts +83 -8
  180. package/server/bridge/responder.ts +248 -0
  181. package/server/bridge/router.ts +6 -4
  182. package/server/db/schema.ts +3 -1
  183. package/server/drizzle/migrations/0015_great_mephistopheles.sql +2 -0
  184. package/server/drizzle/migrations/meta/0015_snapshot.json +1972 -0
  185. package/server/drizzle/migrations/meta/_journal.json +7 -0
  186. package/server/routes/_ws/chat.ts +2 -1
  187. package/server/utils/log-token-usage.ts +1 -1
  188. package/shared/types/index.ts +6 -0
  189. package/.output/public/_nuxt/BIo-9u_O.js +0 -1
  190. package/.output/public/_nuxt/BMs0mHEp.js +0 -1
  191. package/.output/public/_nuxt/BwyXWqBY.js +0 -1
  192. package/.output/public/_nuxt/CE9_ECxx.js +0 -1
  193. package/.output/public/_nuxt/DmcMCO8x.js +0 -1
  194. package/.output/public/_nuxt/JReYPlwF.js +0 -2
  195. package/.output/public/_nuxt/builds/meta/410e449d-9fe8-43a0-ae07-80797693b9b8.json +0 -1
  196. package/.output/public/_nuxt/entry._7ZkP07A.css +0 -1
  197. package/.output/public/_nuxt/iBaivqi8.js +0 -1
  198. package/.output/server/chunks/build/chat-CZMiB68R.mjs.map +0 -1
  199. package/.output/server/chunks/build/settings-ByUXa46k.mjs.map +0 -1
@@ -1 +1 @@
1
- import{_ as fe}from"./SfaNtyKS.js";import{_ as ve}from"./Bhhg7oSf.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,al 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"./njnzCNrH.js";import{_ as Ce,a as De}from"./Drxf7nJz.js";import{_ as Se}from"./zO9MgHj2.js";import{_ as me}from"./GYf-vnR6.js";import{_ as Ue,a as Te}from"./B0xuHXvN.js";import{u as Fe}from"./C-Ygk9x5.js";import{_ as je}from"./BLm0UviR.js";import{_ as Ve}from"./BlsIfvSf.js";import{_ as qe}from"./BUC36BHp.js";import{_ as Ie}from"./Dbfwn2zk.js";import{_ as Pe}from"./D-5A6cMB.js";import{_ as ze}from"./CfY_bsV0.js";import{_ as Me,a as Ee}from"./D79lbuWG.js";import{c as Be,_ as Oe}from"./B5SnZL2l.js";import{_ as Ne}from"./pHCJ6lhw.js";import{i as Le,d as Re,_ as Ae,u as Ke}from"./BahXyh-A.js";import{u as He}from"./CF33v_m5.js";import{u as pe}from"./2QHXgMyi.js";import"./BHn8tRjg.js";import"./Pn7VD6uQ.js";import"./CAfyXyeo.js";import"./CClsKJ9A.js";import"./BIo-9u_O.js";import"./Bwn-CRYH.js";import"./ImPsUDiH.js";import"./BvstjGHC.js";import"./BCCYopTB.js";import"./D2kQkOaG.js";import"./MWUW1sIF.js";import"./CXTrUfQ5.js";import"./D9aYkNhQ.js";import"./B9zgEO8N.js";import"./C6Y-ieo6.js";import"./DLUvsixu.js";import"./CrmE-JGu.js";import"./BjnQ1pI1.js";import"./BZBNJD7U.js";import"./BYtVdUIW.js";import"./vES4kgx7.js";import"./iBaivqi8.js";import"./dB7G4iIC.js";import"./DMb_1D81.js";import"./Cve4psva.js";import"./Vcq4gwWv.js";import"./Buf1PAiO.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"./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 +1 @@
1
- import{c as s,aQ as R,a6 as I,a as m,aR as x,aP as w,a_ as A,Q as g,R as _,S as y,a4 as b,C as o,a3 as k,bm as O}from"./njnzCNrH.js";import{b as E,a as M,C as D}from"./DcbbfwCe.js";import{u as T}from"./BIo-9u_O.js";import{u as H}from"./ImPsUDiH.js";import{i as K}from"./BqTdsCnW.js";import{u as P}from"./C6Y-ieo6.js";function $({type:t,defaultValue:l,modelValue:a}){const e=a||l;return a!==void 0||l!==void 0?Array.isArray(e)?"multiple":"single":t??"single"}function j({type:t,defaultValue:l,modelValue:a}){return t||$({type:t,defaultValue:l,modelValue:a})}function F({type:t,defaultValue:l}){return l!==void 0?l:t==="single"?void 0:[]}function Q(t,l){const a=s(()=>j(t)),e=R(t,"modelValue",l,{defaultValue:F(t),passive:t.modelValue===void 0,deep:!0});function n(i){if(a.value==="single")e.value=I(i,e.value)?void 0:i;else{const d=Array.isArray(e.value)?[...e.value||[]]:[e.value].filter(Boolean);if(K(d,i)){const u=d.findIndex(p=>I(p,i));d.splice(u,1)}else d.push(i);e.value=d}}const r=s(()=>a.value==="single");return{modelValue:e,changeModelValue:n,isSingle:r}}const[q,N]=x("AccordionRoot");var z=m({__name:"AccordionRoot",props:{collapsible:{type:Boolean,required:!1,default:!1},disabled:{type:Boolean,required:!1,default:!1},dir:{type:String,required:!1},orientation:{type:String,required:!1,default:"vertical"},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},type:{type:String,required:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1}},emits:["update:modelValue"],setup(t,{emit:l}){const a=t,e=l,{dir:n,disabled:r,unmountOnHide:i}=w(a),d=H(n),{modelValue:u,changeModelValue:p,isSingle:h}=Q(a,e),{forwardRef:c,currentElement:f}=A();return N({disabled:r,direction:d,orientation:a.orientation,parentElement:f,isSingle:h,collapsible:a.collapsible,modelValue:u,changeModelValue:p,unmountOnHide:i}),(v,B)=>(_(),g(o(k),{ref:o(c),"as-child":v.asChild,as:v.as},{default:y(()=>[b(v.$slots,"default",{modelValue:o(u)})]),_:3},8,["as-child","as"]))}}),te=z,C=(function(t){return t.Open="open",t.Closed="closed",t})(C||{});const[V,G]=x("AccordionItem");var J=m({__name:"AccordionItem",props:{disabled:{type:Boolean,required:!1},value:{type:String,required:!0},unmountOnHide:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t,{expose:l}){const a=t,e=q(),n=s(()=>e.isSingle.value?a.value===e.modelValue.value:Array.isArray(e.modelValue.value)&&e.modelValue.value.includes(a.value)),r=s(()=>e.disabled.value||a.disabled),i=s(()=>r.value?"":void 0),d=s(()=>n.value?C.Open:C.Closed);l({open:n,dataDisabled:i});const{currentRef:u,currentElement:p}=A();G({open:n,dataState:d,disabled:r,dataDisabled:i,triggerId:"",currentRef:u,currentElement:p,value:s(()=>a.value)});function h(c){const f=c.target;if(Array.from(e.parentElement.value?.querySelectorAll("[data-reka-collection-item]")??[]).findIndex(S=>S===f)===-1)return null;P(c,f,e.parentElement.value,{arrowKeyOptions:e.orientation,dir:e.direction.value,focus:!0})}return(c,f)=>(_(),g(o(E),{"data-orientation":o(e).orientation,"data-disabled":i.value,"data-state":d.value,disabled:r.value,open:n.value,as:a.as,"as-child":a.asChild,"unmount-on-hide":a.unmountOnHide??o(e).unmountOnHide.value,onKeydown:O(h,["up","down","left","right","home","end"])},{default:y(()=>[b(c.$slots,"default",{open:n.value})]),_:3},8,["data-orientation","data-disabled","data-state","disabled","open","as","as-child","unmount-on-hide"]))}}),oe=J,L=m({__name:"AccordionContent",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){const l=t,a=q(),e=V();return A(),(n,r)=>(_(),g(o(M),{role:"region","as-child":l.asChild,as:n.as,"force-mount":l.forceMount,"aria-labelledby":o(e).triggerId,"data-state":o(e).dataState.value,"data-disabled":o(e).dataDisabled.value,"data-orientation":o(a).orientation,style:{"--reka-accordion-content-width":"var(--reka-collapsible-content-width)","--reka-accordion-content-height":"var(--reka-collapsible-content-height)"},onContentFound:r[0]||(r[0]=i=>o(a).changeModelValue(o(e).value.value))},{default:y(()=>[b(n.$slots,"default")]),_:3},8,["as-child","as","force-mount","aria-labelledby","data-state","data-disabled","data-orientation"]))}}),le=L,U=m({__name:"AccordionTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){const l=t,a=q(),e=V();e.triggerId||=T(void 0,"reka-accordion-trigger");function n(){const r=a.isSingle.value&&e.open.value&&!a.collapsible;e.disabled.value||r||a.changeModelValue(e.value.value)}return(r,i)=>(_(),g(o(D),{id:o(e).triggerId,ref:o(e).currentRef,"data-reka-collection-item":"",as:l.as,"as-child":l.asChild,"aria-disabled":o(e).disabled.value||void 0,"aria-expanded":o(e).open.value||!1,"data-disabled":o(e).dataDisabled.value,"data-orientation":o(a).orientation,"data-state":o(e).dataState.value,disabled:o(e).disabled.value,onClick:n},{default:y(()=>[b(r.$slots,"default")]),_:3},8,["id","as","as-child","aria-disabled","aria-expanded","data-disabled","data-orientation","data-state","disabled"]))}}),ne=U;export{oe as A,V as a,ne as b,le as c,te as d,q as i};
1
+ import{c as s,aQ as R,a6 as I,a as m,aR as x,aP as w,a_ as A,Q as g,R as _,S as y,a4 as b,C as o,a3 as k,bm as O}from"./2dNDtTiv.js";import{b as E,a as M,C as D}from"./ByYh0uRg.js";import{u as T}from"./CWyMCJQH.js";import{u as H}from"./BIXrSYwR.js";import{i as K}from"./fbyIeNkc.js";import{u as P}from"./C6Y-ieo6.js";function $({type:t,defaultValue:l,modelValue:a}){const e=a||l;return a!==void 0||l!==void 0?Array.isArray(e)?"multiple":"single":t??"single"}function j({type:t,defaultValue:l,modelValue:a}){return t||$({type:t,defaultValue:l,modelValue:a})}function F({type:t,defaultValue:l}){return l!==void 0?l:t==="single"?void 0:[]}function Q(t,l){const a=s(()=>j(t)),e=R(t,"modelValue",l,{defaultValue:F(t),passive:t.modelValue===void 0,deep:!0});function n(i){if(a.value==="single")e.value=I(i,e.value)?void 0:i;else{const d=Array.isArray(e.value)?[...e.value||[]]:[e.value].filter(Boolean);if(K(d,i)){const u=d.findIndex(p=>I(p,i));d.splice(u,1)}else d.push(i);e.value=d}}const r=s(()=>a.value==="single");return{modelValue:e,changeModelValue:n,isSingle:r}}const[q,N]=x("AccordionRoot");var z=m({__name:"AccordionRoot",props:{collapsible:{type:Boolean,required:!1,default:!1},disabled:{type:Boolean,required:!1,default:!1},dir:{type:String,required:!1},orientation:{type:String,required:!1,default:"vertical"},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},type:{type:String,required:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1}},emits:["update:modelValue"],setup(t,{emit:l}){const a=t,e=l,{dir:n,disabled:r,unmountOnHide:i}=w(a),d=H(n),{modelValue:u,changeModelValue:p,isSingle:h}=Q(a,e),{forwardRef:c,currentElement:f}=A();return N({disabled:r,direction:d,orientation:a.orientation,parentElement:f,isSingle:h,collapsible:a.collapsible,modelValue:u,changeModelValue:p,unmountOnHide:i}),(v,B)=>(_(),g(o(k),{ref:o(c),"as-child":v.asChild,as:v.as},{default:y(()=>[b(v.$slots,"default",{modelValue:o(u)})]),_:3},8,["as-child","as"]))}}),te=z,C=(function(t){return t.Open="open",t.Closed="closed",t})(C||{});const[V,G]=x("AccordionItem");var J=m({__name:"AccordionItem",props:{disabled:{type:Boolean,required:!1},value:{type:String,required:!0},unmountOnHide:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t,{expose:l}){const a=t,e=q(),n=s(()=>e.isSingle.value?a.value===e.modelValue.value:Array.isArray(e.modelValue.value)&&e.modelValue.value.includes(a.value)),r=s(()=>e.disabled.value||a.disabled),i=s(()=>r.value?"":void 0),d=s(()=>n.value?C.Open:C.Closed);l({open:n,dataDisabled:i});const{currentRef:u,currentElement:p}=A();G({open:n,dataState:d,disabled:r,dataDisabled:i,triggerId:"",currentRef:u,currentElement:p,value:s(()=>a.value)});function h(c){const f=c.target;if(Array.from(e.parentElement.value?.querySelectorAll("[data-reka-collection-item]")??[]).findIndex(S=>S===f)===-1)return null;P(c,f,e.parentElement.value,{arrowKeyOptions:e.orientation,dir:e.direction.value,focus:!0})}return(c,f)=>(_(),g(o(E),{"data-orientation":o(e).orientation,"data-disabled":i.value,"data-state":d.value,disabled:r.value,open:n.value,as:a.as,"as-child":a.asChild,"unmount-on-hide":a.unmountOnHide??o(e).unmountOnHide.value,onKeydown:O(h,["up","down","left","right","home","end"])},{default:y(()=>[b(c.$slots,"default",{open:n.value})]),_:3},8,["data-orientation","data-disabled","data-state","disabled","open","as","as-child","unmount-on-hide"]))}}),oe=J,L=m({__name:"AccordionContent",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){const l=t,a=q(),e=V();return A(),(n,r)=>(_(),g(o(M),{role:"region","as-child":l.asChild,as:n.as,"force-mount":l.forceMount,"aria-labelledby":o(e).triggerId,"data-state":o(e).dataState.value,"data-disabled":o(e).dataDisabled.value,"data-orientation":o(a).orientation,style:{"--reka-accordion-content-width":"var(--reka-collapsible-content-width)","--reka-accordion-content-height":"var(--reka-collapsible-content-height)"},onContentFound:r[0]||(r[0]=i=>o(a).changeModelValue(o(e).value.value))},{default:y(()=>[b(n.$slots,"default")]),_:3},8,["as-child","as","force-mount","aria-labelledby","data-state","data-disabled","data-orientation"]))}}),le=L,U=m({__name:"AccordionTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){const l=t,a=q(),e=V();e.triggerId||=T(void 0,"reka-accordion-trigger");function n(){const r=a.isSingle.value&&e.open.value&&!a.collapsible;e.disabled.value||r||a.changeModelValue(e.value.value)}return(r,i)=>(_(),g(o(D),{id:o(e).triggerId,ref:o(e).currentRef,"data-reka-collection-item":"",as:l.as,"as-child":l.asChild,"aria-disabled":o(e).disabled.value||void 0,"aria-expanded":o(e).open.value||!1,"data-disabled":o(e).dataDisabled.value,"data-orientation":o(a).orientation,"data-state":o(e).dataState.value,disabled:o(e).disabled.value,onClick:n},{default:y(()=>[b(r.$slots,"default")]),_:3},8,["id","as","as-child","aria-disabled","aria-expanded","data-disabled","data-orientation","data-state","disabled"]))}}),ne=U;export{oe as A,V as a,ne as b,le as c,te as d,q as i};
@@ -1 +1 @@
1
- import{u as D}from"./vES4kgx7.js";import{c as a}from"./njnzCNrH.js";const O="sb-preferences",v=3600*24*365,k={editorMode:"editor",viewSourceMode:!1,lastDocumentPath:null,sidebarOpen:!0,docsTreeWidth:16,assistantPanelOpen:!1,assistantPanelTab:"chat",assistantLastConversationId:null,taskStatusFilter:"all",taskProjectFilter:null,agentStatsPeriod:"7d",usageStatsPeriod:"7d",usageDisplayMode:"tokens",onboardingDismissed:!1};function T(){const o=D(O,{maxAge:v,default:()=>({})});function e(t){return o.value[t]??k[t]}function s(t,f){o.value={...o.value,[t]:f}}const n=a({get:()=>e("editorMode"),set:t=>s("editorMode",t)}),i=a({get:()=>e("viewSourceMode"),set:t=>s("viewSourceMode",t)}),r=a({get:()=>e("lastDocumentPath"),set:t=>s("lastDocumentPath",t)}),d=a({get:()=>e("sidebarOpen"),set:t=>s("sidebarOpen",t)}),c=a({get:()=>e("docsTreeWidth"),set:t=>s("docsTreeWidth",t)}),l=a({get:()=>e("taskStatusFilter"),set:t=>s("taskStatusFilter",t)}),u=a({get:()=>e("taskProjectFilter"),set:t=>s("taskProjectFilter",t)}),g=a({get:()=>e("agentStatsPeriod"),set:t=>s("agentStatsPeriod",t)}),P=a({get:()=>e("assistantPanelOpen"),set:t=>s("assistantPanelOpen",t)}),p=a({get:()=>e("assistantPanelTab"),set:t=>s("assistantPanelTab",t)}),S=a({get:()=>e("assistantLastConversationId"),set:t=>s("assistantLastConversationId",t)}),m=a({get:()=>e("usageStatsPeriod"),set:t=>s("usageStatsPeriod",t)}),M=a({get:()=>e("usageDisplayMode"),set:t=>s("usageDisplayMode",t)}),b=a({get:()=>e("onboardingDismissed"),set:t=>s("onboardingDismissed",t)});return{get:e,set:s,editorMode:n,viewSourceMode:i,lastDocumentPath:r,sidebarOpen:d,docsTreeWidth:c,assistantPanelOpen:P,assistantPanelTab:p,assistantLastConversationId:S,taskStatusFilter:l,taskProjectFilter:u,agentStatsPeriod:g,usageStatsPeriod:m,usageDisplayMode:M,onboardingDismissed:b}}export{T as u};
1
+ import{u as D}from"./DEd2xVbS.js";import{c as a}from"./2dNDtTiv.js";const O="sb-preferences",v=3600*24*365,k={editorMode:"editor",viewSourceMode:!1,lastDocumentPath:null,sidebarOpen:!0,docsTreeWidth:16,assistantPanelOpen:!1,assistantPanelTab:"chat",assistantLastConversationId:null,taskStatusFilter:"all",taskProjectFilter:null,agentStatsPeriod:"7d",usageStatsPeriod:"7d",usageDisplayMode:"tokens",onboardingDismissed:!1};function T(){const o=D(O,{maxAge:v,default:()=>({})});function e(t){return o.value[t]??k[t]}function s(t,f){o.value={...o.value,[t]:f}}const n=a({get:()=>e("editorMode"),set:t=>s("editorMode",t)}),i=a({get:()=>e("viewSourceMode"),set:t=>s("viewSourceMode",t)}),r=a({get:()=>e("lastDocumentPath"),set:t=>s("lastDocumentPath",t)}),d=a({get:()=>e("sidebarOpen"),set:t=>s("sidebarOpen",t)}),c=a({get:()=>e("docsTreeWidth"),set:t=>s("docsTreeWidth",t)}),l=a({get:()=>e("taskStatusFilter"),set:t=>s("taskStatusFilter",t)}),u=a({get:()=>e("taskProjectFilter"),set:t=>s("taskProjectFilter",t)}),g=a({get:()=>e("agentStatsPeriod"),set:t=>s("agentStatsPeriod",t)}),P=a({get:()=>e("assistantPanelOpen"),set:t=>s("assistantPanelOpen",t)}),p=a({get:()=>e("assistantPanelTab"),set:t=>s("assistantPanelTab",t)}),S=a({get:()=>e("assistantLastConversationId"),set:t=>s("assistantLastConversationId",t)}),m=a({get:()=>e("usageStatsPeriod"),set:t=>s("usageStatsPeriod",t)}),M=a({get:()=>e("usageDisplayMode"),set:t=>s("usageDisplayMode",t)}),b=a({get:()=>e("onboardingDismissed"),set:t=>s("onboardingDismissed",t)});return{get:e,set:s,editorMode:n,viewSourceMode:i,lastDocumentPath:r,sidebarOpen:d,docsTreeWidth:c,assistantPanelOpen:P,assistantPanelTab:p,assistantLastConversationId:S,taskStatusFilter:l,taskProjectFilter:u,agentStatsPeriod:g,usageStatsPeriod:m,usageDisplayMode:M,onboardingDismissed:b}}export{T as u};
@@ -0,0 +1 @@
1
+ import{X as e}from"./2dNDtTiv.js";function a(r,u="reka"){return r||`${u}-${e?.()}`}export{a as u};