orcaq 1.1.7 → 1.1.9

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 (179) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{BRVpLa1E.js → B-E4SrDA.js} +2 -2
  3. package/.output/public/_nuxt/B-OC4Wzf.js +9 -0
  4. package/.output/public/_nuxt/{DTlu-CJn.js → B-cBPXHS.js} +1 -1
  5. package/.output/public/_nuxt/B1ydsdXg.js +1 -0
  6. package/.output/public/_nuxt/B2Wngdut.js +1 -0
  7. package/.output/public/_nuxt/{CB56S0b2.js → B3ZoiMh5.js} +3 -3
  8. package/.output/public/_nuxt/B3jyHGmo.js +1 -0
  9. package/.output/public/_nuxt/{CrwM3gOU.js → B6aTbrvX.js} +1 -1
  10. package/.output/public/_nuxt/B9vFZSzU.js +20 -0
  11. package/.output/public/_nuxt/BFlFdtcI.js +12 -0
  12. package/.output/public/_nuxt/BFxd7ZWZ.js +1 -0
  13. package/.output/public/_nuxt/BI0OYmAG.js +1 -0
  14. package/.output/public/_nuxt/BIYjBgOJ.js +1 -0
  15. package/.output/public/_nuxt/BMwuBt1W.js +1 -0
  16. package/.output/public/_nuxt/BP23Jaxf.js +1 -0
  17. package/.output/public/_nuxt/BWpduGRB.js +1 -0
  18. package/.output/public/_nuxt/{CWGzL6OE.js → BX-NC3FD.js} +1 -1
  19. package/.output/public/_nuxt/{CJnTtXrv.js → BY0VC_fp.js} +1 -1
  20. package/.output/public/_nuxt/BZOLz5Xw.js +1 -0
  21. package/.output/public/_nuxt/BblWMS7J.js +26 -0
  22. package/.output/public/_nuxt/{CG4v011f.js → Bc7Kpanq.js} +1 -1
  23. package/.output/public/_nuxt/{DzaPC1WB.js → BcbezgEJ.js} +1 -1
  24. package/.output/public/_nuxt/BeMg7yb6.js +2 -0
  25. package/.output/public/_nuxt/Bg0K-n53.js +18 -0
  26. package/.output/public/_nuxt/BgFbw5aK.js +1 -0
  27. package/.output/public/_nuxt/BkHJ3kuB.js +1 -0
  28. package/.output/public/_nuxt/BlVXGJOG.js +1 -0
  29. package/.output/public/_nuxt/BorA7uj6.js +1 -0
  30. package/.output/public/_nuxt/BqQfmS94.js +1 -0
  31. package/.output/public/_nuxt/{DzN4YRfa.js → Btu3pVWi.js} +2 -2
  32. package/.output/public/_nuxt/{BLEKzUmC.js → C0kVUAwR.js} +1 -1
  33. package/.output/public/_nuxt/C1GKs4YV.js +1 -0
  34. package/.output/public/_nuxt/C4fd0pgB.js +1 -0
  35. package/.output/public/_nuxt/{Ch-A9iSC.js → C4zVAAUp.js} +1 -1
  36. package/.output/public/_nuxt/{DtgJAz2h.js → C6ajLfO0.js} +1 -1
  37. package/.output/public/_nuxt/{Clm3Z8VL.js → C9JT2-RE.js} +1 -1
  38. package/.output/public/_nuxt/{RTN5rY4m.js → CAnZNTn6.js} +1 -1
  39. package/.output/public/_nuxt/CB2XoHaK.js +2 -0
  40. package/.output/public/_nuxt/{DStg2VwN.js → CBy17iCN.js} +1 -1
  41. package/.output/public/_nuxt/{Cj9tYr3P.js → CCwJzmTT.js} +1 -1
  42. package/.output/public/_nuxt/{DzjHXopz.js → CGlRJg9T.js} +1 -1
  43. package/.output/public/_nuxt/{jJeqAxmP.js → CH3m0zKs.js} +1 -1
  44. package/.output/public/_nuxt/{DuKway_J.js → CHFYZcjC.js} +1 -1
  45. package/.output/public/_nuxt/CM4UzWO5.js +1 -0
  46. package/.output/public/_nuxt/{D_fdC3mJ.js → CM7fDldV.js} +1 -1
  47. package/.output/public/_nuxt/{DLIUYAz9.js → CQi4GvAy.js} +1 -1
  48. package/.output/public/_nuxt/{CpkrwN3Q.js → CRtMS55w.js} +1 -1
  49. package/.output/public/_nuxt/CSIDbD5d.js +1 -0
  50. package/.output/public/_nuxt/{2TwRWQjG.js → CT4V-SdE.js} +1 -1
  51. package/.output/public/_nuxt/{3vYvhEat.js → CV3uHXW4.js} +1 -1
  52. package/.output/public/_nuxt/{CBgbjsPd.js → CX2dGf8T.js} +1 -1
  53. package/.output/public/_nuxt/{BGAd-CMD.js → Ce00XEKL.js} +1 -1
  54. package/.output/public/_nuxt/{z1xPtaLw.js → CfglFxLQ.js} +1 -1
  55. package/.output/public/_nuxt/{Bw-4PosZ.js → Cgc3lXst.js} +1 -1
  56. package/.output/public/_nuxt/{39ZZCZCn.js → CiGbpFVs.js} +1 -1
  57. package/.output/public/_nuxt/{BG_B-fo0.js → Cilp0euQ.js} +1 -1
  58. package/.output/public/_nuxt/CjE9xodL.js +1 -0
  59. package/.output/public/_nuxt/{CRDIOG8r.js → Ck7gJ0Ru.js} +1 -1
  60. package/.output/public/_nuxt/CkVRbNxk.js +1 -0
  61. package/.output/public/_nuxt/CmROOZW3.js +1 -0
  62. package/.output/public/_nuxt/{Cym7bWgs.js → CqwK0iC2.js} +1 -1
  63. package/.output/public/_nuxt/{LUfaevBS.js → CsRqTS8p.js} +1 -1
  64. package/.output/public/_nuxt/Cv8aMucD.js +31 -0
  65. package/.output/public/_nuxt/CvFBHqKj.js +1 -0
  66. package/.output/public/_nuxt/{BCm7jnPt.js → CvrjITPr.js} +1 -1
  67. package/.output/public/_nuxt/CwEAH09c.js +1 -0
  68. package/.output/public/_nuxt/{B-u0WX5Q.js → D0TQTmc_.js} +1 -1
  69. package/.output/public/_nuxt/D33qa5aT.js +1 -0
  70. package/.output/public/_nuxt/D6FGhPpz.js +53 -0
  71. package/.output/public/_nuxt/{gWmEw6BT.js → D8dLCNO1.js} +1 -1
  72. package/.output/public/_nuxt/DA2L1Ivx.js +1 -0
  73. package/.output/public/_nuxt/{DcXAnOS1.js → DB45HoaN.js} +1 -1
  74. package/.output/public/_nuxt/DBIf1geQ.js +1 -0
  75. package/.output/public/_nuxt/{D7uoAo-G.js → DD6NieRw.js} +74 -74
  76. package/.output/public/_nuxt/{BjpSpz5C.js → DDNFAZ6A.js} +1 -1
  77. package/.output/public/_nuxt/DDgsZmht.js +1 -0
  78. package/.output/public/_nuxt/DEBj_roB.js +1 -0
  79. package/.output/public/_nuxt/{nrlEwpIH.js → DI-I25kb.js} +1 -1
  80. package/.output/public/_nuxt/{BhT0iBlH.js → DMhhDVL0.js} +1 -1
  81. package/.output/public/_nuxt/{D0oaRUYx.js → DNL5Q-iy.js} +1 -1
  82. package/.output/public/_nuxt/DX42Brjy.js +1 -0
  83. package/.output/public/_nuxt/DYBPW385.js +1 -0
  84. package/.output/public/_nuxt/{DEjwIQuc.js → DYFx7Tau.js} +1 -1
  85. package/.output/public/_nuxt/{BO-QgaRL.js → DZJEpoYA.js} +1 -1
  86. package/.output/public/_nuxt/{XVZ0obUR.js → D_dxq6Av.js} +1 -1
  87. package/.output/public/_nuxt/DcIKg-oA.js +52 -0
  88. package/.output/public/_nuxt/Dcf3u1x9.js +1 -0
  89. package/.output/public/_nuxt/{vGkKA7iH.js → DdjYB9eX.js} +2 -2
  90. package/.output/public/_nuxt/{B41tp0B8.js → DeGwWuWf.js} +1 -1
  91. package/.output/public/_nuxt/Dgh1FhxQ.js +1 -0
  92. package/.output/public/_nuxt/{CxZK-Vs6.js → DghZRCwT.js} +1 -1
  93. package/.output/public/_nuxt/DngnCd9Q.js +1 -0
  94. package/.output/public/_nuxt/{Z5g5B4NJ.js → Dpdssse1.js} +1 -1
  95. package/.output/public/_nuxt/{CczQKYUP.js → DrfFcngk.js} +1 -1
  96. package/.output/public/_nuxt/{C7A87LE3.js → Ds4LpS8e.js} +1 -1
  97. package/.output/public/_nuxt/{DUvUg_V7.js → DsHltPpv.js} +1 -1
  98. package/.output/public/_nuxt/DuvFgQqu.js +1 -0
  99. package/.output/public/_nuxt/{DSOwr8Hs.js → Dzy2Amcc.js} +4 -4
  100. package/.output/public/_nuxt/{RFRrMFyH.js → EzQMUIRl.js} +1 -1
  101. package/.output/public/_nuxt/FrxNy5Hb.js +2 -0
  102. package/.output/public/_nuxt/ImQ5Dcjp.js +1 -0
  103. package/.output/public/_nuxt/{DxF9DsEl.js → QZbgg6bx.js} +1 -1
  104. package/.output/public/_nuxt/{BV4g1sVY.js → RCyqQNC4.js} +1 -1
  105. package/.output/public/_nuxt/{DQdL5Jcl.js → RpDfSk0l.js} +1 -1
  106. package/.output/public/_nuxt/UowwUtRH.js +1 -0
  107. package/.output/public/_nuxt/{BvD9dW-2.js → V_GiMERb.js} +1 -1
  108. package/.output/public/_nuxt/{1VXrIDkr.js → W2el5otm.js} +1 -1
  109. package/.output/public/_nuxt/{_fileId_.DxhkUVGK.css → _fileId_.CiauI_x3.css} +1 -1
  110. package/.output/public/_nuxt/{CCk2r9DD.js → bJGrilFb.js} +1 -1
  111. package/.output/public/_nuxt/builds/latest.json +1 -1
  112. package/.output/public/_nuxt/builds/meta/657bdee4-fa56-4862-bc13-309345429302.json +1 -0
  113. package/.output/public/_nuxt/entry.CQwtqNMg.css +1 -0
  114. package/.output/public/_nuxt/jgZoykhT.js +1 -0
  115. package/.output/public/_nuxt/lFU3Ma5J.js +1 -0
  116. package/.output/public/_nuxt/{BZQUF1W4.js → lPZuSUw2.js} +1 -1
  117. package/.output/public/_nuxt/ljX6O69y.js +1 -0
  118. package/.output/public/_nuxt/mtBjWkj4.js +1 -0
  119. package/.output/public/_nuxt/ngeX9iiO.js +1 -0
  120. package/.output/public/_nuxt/s10hyhzI.js +1 -0
  121. package/.output/public/_nuxt/w8sha2t6.js +3 -0
  122. package/.output/public/_nuxt/yPPOBtqs.js +1 -0
  123. package/.output/server/chunks/_/tables.factory.mjs +1 -1
  124. package/.output/server/chunks/build/client.manifest.mjs +838 -736
  125. package/.output/server/chunks/build/client.manifest.mjs.map +1 -1
  126. package/.output/server/chunks/nitro/nitro.mjs +704 -655
  127. package/.output/server/package.json +1 -1
  128. package/package.json +1 -1
  129. package/.output/public/_nuxt/1fIGBJPQ.js +0 -1
  130. package/.output/public/_nuxt/1kY3DHv7.js +0 -1
  131. package/.output/public/_nuxt/9bnMBg54.js +0 -1
  132. package/.output/public/_nuxt/BFMjnjgH.js +0 -1
  133. package/.output/public/_nuxt/BN2mQ8OV.js +0 -20
  134. package/.output/public/_nuxt/BNnChlxR.js +0 -1
  135. package/.output/public/_nuxt/BNyWhB4W.js +0 -1
  136. package/.output/public/_nuxt/BOVFFCPB.js +0 -1
  137. package/.output/public/_nuxt/BXziI6Bt.js +0 -3
  138. package/.output/public/_nuxt/BZmEvFAZ.js +0 -28
  139. package/.output/public/_nuxt/Ba_fqsW2.js +0 -1
  140. package/.output/public/_nuxt/BbzZxPNQ.js +0 -1
  141. package/.output/public/_nuxt/Bhm1GL_M.js +0 -1
  142. package/.output/public/_nuxt/BiSZmDoN.js +0 -1
  143. package/.output/public/_nuxt/BjK8Fug8.js +0 -1
  144. package/.output/public/_nuxt/BkqB6n0T.js +0 -1
  145. package/.output/public/_nuxt/BoPjUGS6.js +0 -1
  146. package/.output/public/_nuxt/BtwwqY0e.js +0 -1
  147. package/.output/public/_nuxt/C0l_59dE.js +0 -1
  148. package/.output/public/_nuxt/C1TOiVRQ.js +0 -9
  149. package/.output/public/_nuxt/C80Zs8U0.js +0 -1
  150. package/.output/public/_nuxt/CFZerEKx.js +0 -2
  151. package/.output/public/_nuxt/CSPqdI4x.js +0 -1
  152. package/.output/public/_nuxt/CTYqoFvv.js +0 -1
  153. package/.output/public/_nuxt/CYJEOEaU.js +0 -1
  154. package/.output/public/_nuxt/CYu-xp_f.js +0 -1
  155. package/.output/public/_nuxt/CZvnl0uO.js +0 -52
  156. package/.output/public/_nuxt/CadjlDLt.js +0 -1
  157. package/.output/public/_nuxt/CeXr_3vU.js +0 -2
  158. package/.output/public/_nuxt/Culm7V2R.js +0 -53
  159. package/.output/public/_nuxt/CzBFxx8v.js +0 -1
  160. package/.output/public/_nuxt/D8KJQqug.js +0 -1
  161. package/.output/public/_nuxt/D8Z5BXgG.js +0 -26
  162. package/.output/public/_nuxt/DDK9-_jm.js +0 -1
  163. package/.output/public/_nuxt/DDQU7vSH.js +0 -1
  164. package/.output/public/_nuxt/DRuCf0Sx.js +0 -1
  165. package/.output/public/_nuxt/DSEkO8kW.js +0 -1
  166. package/.output/public/_nuxt/Da1F0IxL.js +0 -1
  167. package/.output/public/_nuxt/DdtQIDaq.js +0 -1
  168. package/.output/public/_nuxt/Dfz8k_Rn.js +0 -1
  169. package/.output/public/_nuxt/DitYzGT4.js +0 -1
  170. package/.output/public/_nuxt/Djh3G2Nf.js +0 -1
  171. package/.output/public/_nuxt/DmWFeTaU.js +0 -1
  172. package/.output/public/_nuxt/DyFXtlg0.js +0 -1
  173. package/.output/public/_nuxt/_ltJfz1p.js +0 -1
  174. package/.output/public/_nuxt/builds/meta/1cbed594-12e2-48e6-bea9-7a9159c3c1d3.json +0 -1
  175. package/.output/public/_nuxt/dkyHOJLf.js +0 -1
  176. package/.output/public/_nuxt/entry.D1DMaixs.css +0 -1
  177. package/.output/public/_nuxt/ixgiI20S.js +0 -1
  178. package/.output/public/_nuxt/lisFd8W1.js +0 -2
  179. package/.output/public/_nuxt/uHyBIwWw.js +0 -1
@@ -1,7 +1,7 @@
1
- import{_ as qt}from"./BOVFFCPB.js";import{d as G,e as P,m as a,t as h,F as Q,s as X,o as d,k as B,w as i,z as k,bf as de,f as s,A as se,l as F,a4 as ae,n as me,r as I,an as Z,g as e,bg as ee,_ as Je,i as oe,h as He,bP as We,x as Qe,B as Ge,bc as zt,cD as Ke,bj as Xe,cE as At,c as g,bh as Ye,bL as Ot,bM as Vt,bN as Nt,bO as Mt,bE as jt,bQ as Ut,bR as Jt,a8 as Ht,cF as Wt,bp as Qt,G as ye,E as Ze,a0 as et,bw as Gt,O as Kt,aY as Xt,R as Yt,af as Zt,I as Le,aF as qe,bx as eo,by as to,bz as oo}from"./D7uoAo-G.js";import{_ as tt,a as ot}from"./CxZK-Vs6.js";import{_ as st,g as so,a as at}from"./BNyWhB4W.js";import{_ as ao}from"./DDQU7vSH.js";import{u as no}from"./Clm3Z8VL.js";const lo={class:"rounded-lg border bg-muted/20 p-4"},ro={class:"space-y-4"},io={class:"text-sm font-medium"},uo={class:"mt-1 text-xs text-muted-foreground"},co={class:"text-xs text-muted-foreground"},mo={class:"mt-2 flex flex-wrap gap-2"},po={class:"mt-1 text-sm text-muted-foreground"},fo={class:"mt-1 text-sm font-medium"},ze=G({__name:"BackupProfileCard",props:{title:{},description:{},formats:{},toolHint:{},targetName:{},formatsLabel:{default:"Supported Files"}},setup(p){return(l,t)=>{const o=de;return d(),P("div",lo,[a("div",ro,[a("div",null,[a("p",io,h(l.title),1),a("p",uo,h(l.description),1)]),a("div",null,[a("p",co,h(l.formatsLabel),1),a("div",mo,[(d(!0),P(Q,null,X(l.formats,u=>(d(),B(o,{key:u.format,variant:"outline",class:"font-normal"},{default:i(()=>[k(h(u.extension),1)]),_:2},1024))),128))])]),a("div",null,[t[0]||(t[0]=a("p",{class:"text-xs text-muted-foreground"},"Runtime Tools",-1)),a("p",po,h(l.toolHint),1)]),a("div",null,[t[1]||(t[1]=a("p",{class:"text-xs text-muted-foreground"},"Target",-1)),a("p",fo,h(l.targetName),1)])])])}}}),vo={class:"text-muted-foreground"},go={class:"space-y-2 text-xs"},_o={class:"mt-4 pt-2 border-t border-border/40 flex flex-wrap items-center gap-3"},bo=`brew install postgresql # macOS
1
+ import{_ as qt}from"./s10hyhzI.js";import{d as G,c as P,e as a,t as h,F as Q,x as X,o as d,q as E,w as i,f as k,bi as de,a as s,_ as se,b as F,N as ae,n as me,r as I,am as Z,u as e,bj as ee,k as He,l as oe,m as Je,bS as We,z as Qe,B as Ge,bf as zt,cE as Ke,bm as Xe,cF as At,i as g,bk as Ye,bO as Vt,bP as Ot,bQ as Nt,bR as Mt,bH as Ut,bT as jt,bU as Ht,M as Jt,cG as Wt,bs as Qt,H as ye,G as Ze,a6 as et,bz as Gt,V as Kt,a$ as Xt,D as Yt,ae as Zt,Q as Le,aE as qe,bA as eo,bB as to,bC as oo}from"./DD6NieRw.js";import{_ as tt,a as ot}from"./DghZRCwT.js";import{_ as st}from"./CvFBHqKj.js";import{g as so,a as at}from"./BkHJ3kuB.js";import{_ as ao}from"./C1GKs4YV.js";import{u as no}from"./C9JT2-RE.js";const lo={class:"rounded-lg border bg-muted/20 p-4"},ro={class:"space-y-4"},io={class:"text-sm font-medium"},uo={class:"mt-1 text-xs text-muted-foreground"},co={class:"text-xs text-muted-foreground"},mo={class:"mt-2 flex flex-wrap gap-2"},po={class:"mt-1 text-sm text-muted-foreground"},fo={class:"mt-1 text-sm font-medium"},ze=G({__name:"BackupProfileCard",props:{title:{},description:{},formats:{},toolHint:{},targetName:{},formatsLabel:{default:"Supported Files"}},setup(p){return(l,t)=>{const o=de;return d(),P("div",lo,[a("div",ro,[a("div",null,[a("p",io,h(l.title),1),a("p",uo,h(l.description),1)]),a("div",null,[a("p",co,h(l.formatsLabel),1),a("div",mo,[(d(!0),P(Q,null,X(l.formats,u=>(d(),E(o,{key:u.format,variant:"outline",class:"font-normal"},{default:i(()=>[k(h(u.extension),1)]),_:2},1024))),128))])]),a("div",null,[t[0]||(t[0]=a("p",{class:"text-xs text-muted-foreground"},"Runtime Tools",-1)),a("p",po,h(l.toolHint),1)]),a("div",null,[t[1]||(t[1]=a("p",{class:"text-xs text-muted-foreground"},"Target",-1)),a("p",fo,h(l.targetName),1)])])])}}}),vo={class:"text-muted-foreground"},go={class:"space-y-2 text-xs"},_o={class:"mt-4 pt-2 border-t border-border/40 flex flex-wrap items-center gap-3"},bo=`brew install postgresql # macOS
2
2
  apt-get install postgresql-client # Linux
3
3
  # Windows: Download from https://www.postgresql.org/download/windows/`,ho=`brew install mysql # macOS
4
4
  apt-get install mysql-client # Linux
5
5
  # Windows: Download from https://dev.mysql.com/downloads/`,yo=`brew install sqlite # macOS
6
6
  apt-get install sqlite3 # Linux
7
- # Windows: Download from https://www.sqlite.org/download.html`,xo=G({__name:"BackupRestoreUnsupportedAlert",props:{supportMessage:{},connectionType:{},isLoading:{type:Boolean}},emits:["reload"],setup(p,{emit:l}){const t=l;return(o,u)=>{const m=se,y=st,b=ao,r=ae,f=ot,x=tt;return d(),B(x,null,{default:i(()=>[s(y,{class:"flex items-center font-medium gap-1"},{default:i(()=>[s(m,{name:"hugeicons:alert-circle",class:"size-4"}),u[1]||(u[1]=k(" Native Tools Required"))]),_:1}),s(f,{class:"space-y-3"},{default:i(()=>[a("p",vo,h(o.supportMessage),1),a("div",go,[u[2]||(u[2]=a("p",{class:"font-medium"},"Installation instructions:",-1)),o.connectionType==="postgres"?(d(),B(b,{key:0,code:bo,language:"bash"})):o.connectionType==="mysql"||o.connectionType==="mariadb"?(d(),B(b,{key:1,code:ho,language:"bash"})):o.connectionType==="sqlite3"?(d(),B(b,{key:2,code:yo,language:"bash"})):F("",!0)]),a("div",_o,[s(r,{size:"sm",variant:"outline",class:"cursor-pointer transition-all duration-300 hover:bg-accent hover:text-accent-foreground active:scale-95 group",disabled:o.isLoading,onClick:u[0]||(u[0]=_=>t("reload"))},{default:i(()=>[s(m,{name:"hugeicons:refresh",class:me(["size-4 mr-2 shrink-0",o.isLoading?"animate-spin":"transition-transform duration-500 group-hover:rotate-180"])},null,8,["class"]),k(" "+h(o.isLoading?"Checking...":"Check Again"),1)]),_:1},8,["disabled"]),u[3]||(u[3]=a("span",{class:"text-[11px] text-muted-foreground"}," Installed the tools? Click check again to re-detect capabilities and enable Backup & Restore. ",-1))])]),_:1})]),_:1})}}}),ko={class:"space-y-4"},wo={class:"space-y-2"},$o={class:"grid gap-2 sm:grid-cols-2"},Co=["onClick"],So={class:"flex items-center justify-between gap-2"},Po={class:"text-sm font-medium"},To={class:"mt-1 text-xs text-muted-foreground"},Do={class:"space-y-2"},Eo={key:0,class:"space-y-2"},Bo={key:0,class:"flex flex-wrap gap-2 max-h-32 overflow-y-auto p-2 border rounded-md"},Io={key:1,class:"text-xs text-destructive"},Fo={key:2,class:"text-xs text-muted-foreground"},Ro={key:3,class:"text-xs text-muted-foreground"},Ae="plain",Lo=G({__name:"ExportOptionsForm",props:{schemas:{},schemaLoading:{type:Boolean},schemaError:{},loading:{type:Boolean},disabled:{type:Boolean},formatOptions:{},defaultFormat:{},toolHint:{}},emits:["submit"],setup(p,{emit:l}){var f;const t=p,o=l,u=I("full"),m=I(t.defaultFormat||((f=t.formatOptions[0])==null?void 0:f.format)||Ae),y=I([]);Z([()=>t.formatOptions,()=>t.defaultFormat],([x,_])=>{var w;x.some(D=>D.format===m.value)||(m.value=((w=x[0])==null?void 0:w.format)||_||Ae)},{immediate:!0});const b=[{value:"full",label:"Full (schema + data)"},{value:"schema-only",label:"Schema only (no data)"},{value:"data-only",label:"Data only (no schema)"}],r=()=>{const x={format:m.value,scope:u.value};x.schemas=y.value.length>0?y.value:t.schemas,o("submit",x)};return(x,_)=>{const w=We,D=He,v=Ge,T=Qe,E=Je,R=se,q=ae;return d(),P("div",ko,[a("div",wo,[s(e(ee),null,{default:i(()=>_[1]||(_[1]=[k("Backup Format")])),_:1}),a("div",$o,[(d(!0),P(Q,null,X(x.formatOptions,C=>(d(),P("button",{key:C.format,type:"button",class:me(["rounded-lg border p-3 text-left transition-colors",e(m)===C.format?"border-primary bg-primary/5":"hover:border-primary/40 hover:bg-muted/20"]),onClick:J=>m.value=C.format},[a("div",So,[a("p",Po,h(C.label),1),s(e(de),{variant:"secondary",class:"font-normal"},{default:i(()=>[k(h(C.extension),1)]),_:2},1024)]),a("p",To," Runtime uses "+h(t.toolHint||"Native database tools")+". ",1)],10,Co))),128))])]),a("div",Do,[s(e(ee),null,{default:i(()=>_[2]||(_[2]=[k("Export Scope")])),_:1}),s(E,{modelValue:e(u),"onUpdate:modelValue":_[0]||(_[0]=C=>oe(u)?u.value=C:null),size:"xs"},{default:i(()=>[s(D,null,{default:i(()=>[s(w,{placeholder:"Select scope"})]),_:1}),s(T,null,{default:i(()=>[(d(),P(Q,null,X(b,C=>s(v,{key:C.value,value:C.value},{default:i(()=>[k(h(C.label),1)]),_:2},1032,["value"])),64))]),_:1})]),_:1},8,["modelValue"])]),x.schemaLoading||x.schemaError||x.schemas.length>0?(d(),P("div",Eo,[s(e(ee),null,{default:i(()=>_[3]||(_[3]=[k("Schemas (optional)")])),_:1}),x.schemas.length>0?(d(),P("div",Bo,[(d(!0),P(Q,null,X(x.schemas,C=>(d(),B(e(de),{key:C,variant:e(y).includes(C)?"default":"outline",class:"cursor-pointer",onClick:()=>e(y).includes(C)?y.value=e(y).filter(J=>J!==C):e(y).push(C)},{default:i(()=>[k(h(C),1)]),_:2},1032,["variant","onClick"]))),128))])):F("",!0),x.schemaError?(d(),P("p",Io,h(x.schemaError),1)):x.schemaLoading?(d(),P("p",Fo," Loading schemas... ")):(d(),P("p",Ro,h(e(y).length?`${e(y).length} selected`:"All visible schemas"),1))])):F("",!0),s(q,{class:"w-full",disabled:x.loading||x.disabled,onClick:r},{default:i(()=>[x.loading?(d(),B(R,{key:0,name:"hugeicons:loading-03",class:"size-4 mr-2 animate-spin"})):(d(),B(R,{key:1,name:"lucide:download",class:"size-4 mr-2"})),k(" "+h(x.loading?"Creating Backup...":"Create Backup"),1)]),_:1},8,["disabled"])])}}}),qo={class:"relative mt-2 cursor-pointer rounded-lg border-2 border-dashed p-6 text-center transition-colors hover:border-primary/50"},zo=["accept"],Ao={key:0,class:"text-muted-foreground pointer-events-none"},Oo={class:"text-xs mt-1"},Vo={key:1,class:"flex items-center justify-center gap-3"},No={class:"text-left"},Mo={class:"text-sm font-medium"},jo={class:"text-xs text-muted-foreground"},Uo=G({__name:"ImportFileDropzone",props:{selectedFile:{},accept:{},extensionSummary:{}},emits:["change","clear"],setup(p){const l=t=>t<1024?`${t} B`:t<1048576?`${(t/1024).toFixed(1)} KB`:`${(t/1048576).toFixed(1)} MB`;return(t,o)=>{const u=ee,m=se,y=ae;return d(),P("div",null,[s(u,{class:"text-sm font-medium"},{default:i(()=>o[2]||(o[2]=[k("Backup File")])),_:1}),a("div",qo,[a("input",{type:"file",accept:t.accept,class:"absolute inset-0 w-full h-full opacity-0 cursor-pointer",onChange:o[0]||(o[0]=b=>t.$emit("change",b))},null,40,zo),t.selectedFile?(d(),P("div",Vo,[s(m,{name:"hugeicons:file-01",class:"size-8 text-primary"}),a("div",No,[a("p",Mo,h(t.selectedFile.name),1),a("p",jo,h(l(t.selectedFile.size)),1)]),s(y,{variant:"ghost",size:"icon",class:"ml-2 relative z-10",type:"button",onClick:o[1]||(o[1]=zt(b=>t.$emit("clear"),["stop"]))},{default:i(()=>[s(m,{name:"hugeicons:x-close",class:"size-4"})]),_:1})])):(d(),P("div",Ao,[s(m,{name:"hugeicons:upload-cloud-01",class:"size-10 mx-auto mb-2 opacity-50"}),o[3]||(o[3]=a("p",{class:"text-sm font-medium"},"Click to select a file",-1)),a("p",Oo,"Supports "+h(t.extensionSummary)+" backups",1)]))])])}}}),Jo={class:"space-y-3"},Ho={class:"grid grid-cols-2 gap-4"},Wo=G({__name:"ImportOptionsForm",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(p){const l=Ke(p,"modelValue"),t=(u,m)=>{l.value[u]=m},o=[{key:"clean",label:"Drop Objects First",id:"import-clean"},{key:"dataOnly",label:"Data Only",id:"import-data-only"},{key:"schemaOnly",label:"Schema Only",id:"import-schema-only"},{key:"exitOnError",label:"Exit on Error",id:"import-exit-on-error"}];return(u,m)=>{const y=ee,b=Xe;return d(),P("div",Jo,[s(y,{class:"text-sm font-medium"},{default:i(()=>m[0]||(m[0]=[k("Options")])),_:1}),a("div",Ho,[(d(),P(Q,null,X(o,r=>a("div",{key:r.key,class:"flex items-center space-x-2"},[s(b,{id:r.id,"model-value":l.value[r.key],"onUpdate:modelValue":f=>t(r.key,f)},null,8,["id","model-value","onUpdate:modelValue"]),s(y,{for:r.id,class:"text-sm"},{default:i(()=>[k(h(r.label),1)]),_:2},1032,["for"])])),64))])])}}}),Qo={class:"space-y-3 rounded-lg border border-dashed p-3"},Go={class:"flex items-start justify-between gap-3"},Ko={class:"space-y-1"},Xo={key:0,class:"text-xs text-muted-foreground"},Yo={key:0,class:"space-y-2"},Zo={key:1,class:"flex items-start justify-between gap-3 rounded-md bg-muted/40 px-3 py-2"},es={key:2,class:"text-xs text-muted-foreground"},ts={key:3,class:"grid gap-3 md:grid-cols-[180px_minmax(0,1fr)]"},os={class:"space-y-1"},ss={class:"space-y-1"},Oe=G({__name:"NativeToolSelector",props:At({title:{},description:{},detectedPaths:{},toolChoices:{},disabled:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(p){const l=p,t=Ke(p,"modelValue"),o=g(()=>l.detectedPaths.length>0),u=g(()=>t.value.useCustomPath||!o.value),m=g(()=>l.detectedPaths.length===1?"1 executable found":`${l.detectedPaths.length} executables found`),y=g(()=>{switch(t.value.customTool||l.toolChoices[0]){case"pg_dump":return"/Applications/Postgres.app/.../bin/pg_dump";case"pg_restore":return"/Applications/Postgres.app/.../bin/pg_restore";case"psql":return"/Applications/Postgres.app/.../bin/psql";case"mysqldump":return"/opt/homebrew/Cellar/mysql/.../bin/mysqldump";case"mysqlpump":return"/opt/homebrew/Cellar/mysql/.../bin/mysqlpump";case"mysql":return"/opt/homebrew/Cellar/mysql/.../bin/mysql";case"sqlite3":return"/usr/local/bin/sqlite3";default:return"/usr/local/bin/native-tool"}}),b=_=>{t.value.selectedPath=_},r=_=>{t.value.customTool=_},f=_=>{t.value.useCustomPath=o.value?_:!0},x=_=>`${_.tool} • ${_.path}`;return(_,w)=>{const D=ee,v=de,T=We,E=He,R=Ge,q=Qe,C=Je,J=Xe,S=Ye;return d(),P("div",Qo,[a("div",Go,[a("div",Ko,[s(D,{class:"text-sm font-medium"},{default:i(()=>[k(h(_.title),1)]),_:1}),_.description?(d(),P("p",Xo,h(_.description),1)):F("",!0)]),e(o)?(d(),B(v,{key:0,variant:"secondary",class:"shrink-0"},{default:i(()=>[k(h(e(m)),1)]),_:1})):F("",!0)]),e(o)&&!t.value.useCustomPath?(d(),P("div",Yo,[s(D,{class:"text-xs font-medium text-muted-foreground"},{default:i(()=>w[4]||(w[4]=[k(" Detected Executable ")])),_:1}),s(C,{"model-value":t.value.selectedPath,disabled:_.disabled,size:"xs","onUpdate:modelValue":w[0]||(w[0]=$=>b(String($)))},{default:i(()=>[s(E,null,{default:i(()=>[s(T,{placeholder:"Choose a native tool"})]),_:1}),s(q,null,{default:i(()=>[(d(!0),P(Q,null,X(_.detectedPaths,$=>(d(),B(R,{key:$.path,value:$.path},{default:i(()=>[k(h(x($)),1)]),_:2},1032,["value"]))),128))]),_:1})]),_:1},8,["model-value","disabled"])])):F("",!0),e(o)?(d(),P("div",Zo,[w[5]||(w[5]=a("div",{class:"space-y-1"},[a("p",{class:"text-sm font-medium"},"Use custom executable path"),a("p",{class:"text-xs text-muted-foreground"}," Point HeraQ to a specific binary when you need a different version. ")],-1)),s(J,{"model-value":t.value.useCustomPath,disabled:_.disabled,"onUpdate:modelValue":w[1]||(w[1]=$=>f(!!$))},null,8,["model-value","disabled"])])):(d(),P("p",es," No executable was detected automatically. Enter the full path to the driver you want to run. ")),e(u)?(d(),P("div",ts,[a("div",os,[s(D,{class:"text-xs font-medium text-muted-foreground"},{default:i(()=>w[6]||(w[6]=[k(" Tool ")])),_:1}),s(C,{"model-value":t.value.customTool||_.toolChoices[0],disabled:_.disabled,size:"sm","onUpdate:modelValue":w[2]||(w[2]=$=>r(String($)))},{default:i(()=>[s(E,null,{default:i(()=>[s(T,{placeholder:"Choose a tool"})]),_:1}),s(q,null,{default:i(()=>[(d(!0),P(Q,null,X(_.toolChoices,$=>(d(),B(R,{key:$,value:$},{default:i(()=>[k(h($),1)]),_:2},1032,["value"]))),128))]),_:1})]),_:1},8,["model-value","disabled"])]),a("div",ss,[s(D,{class:"text-xs font-medium text-muted-foreground"},{default:i(()=>w[7]||(w[7]=[k(" Executable Path ")])),_:1}),s(S,{modelValue:t.value.customPath,"onUpdate:modelValue":w[3]||(w[3]=$=>t.value.customPath=$),disabled:_.disabled,placeholder:e(y),class:"h-8!",autocomplete:"off",spellcheck:"false"},null,8,["modelValue","disabled","placeholder"]),w[8]||(w[8]=a("p",{class:"text-xs text-muted-foreground"}," Enter the absolute path to the binary you want HeraQ to execute. ",-1))])])):F("",!0)])}}}),as={class:"space-y-3 py-1"},xe="restore backup",ns=G({__name:"RestoreConfirmDialog",props:{open:{type:Boolean}},emits:["confirm","cancel"],setup(p,{emit:l}){const t=p,o=l,u=I("");Z(()=>t.open,b=>{b&&(u.value="")});const m=g(()=>u.value===xe),y=()=>{m.value&&o("confirm")};return(b,r)=>{const f=se,x=Nt,_=Mt,w=Vt,D=ee,v=Ye,T=ae,E=Ut,R=Jt,q=Ot;return d(),B(q,{open:b.open,"onUpdate:open":r[2]||(r[2]=C=>!C&&b.$emit("cancel"))},{default:i(()=>[s(R,{class:"max-w-sm"},{default:i(()=>[s(w,null,{default:i(()=>[s(x,{class:"flex items-center gap-2 text-destructive"},{default:i(()=>[s(f,{name:"hugeicons:alert-02",class:"size-5"}),r[3]||(r[3]=k(" Confirm Restore "))]),_:1}),s(_,null,{default:i(()=>r[4]||(r[4]=[k(" This will overwrite existing data in the target database. This action cannot be undone. ")])),_:1})]),_:1}),a("div",as,[s(D,{for:"restore-confirm-input"},{default:i(()=>[r[5]||(r[5]=k(" Type ")),a("code",{class:"rounded bg-muted px-1 py-0.5 text-xs font-mono"},h(xe)),r[6]||(r[6]=k(" to continue: "))]),_:1}),s(v,{id:"restore-confirm-input",modelValue:e(u),"onUpdate:modelValue":r[0]||(r[0]=C=>oe(u)?u.value=C:null),placeholder:xe,autocomplete:"off",onKeydown:jt(y,["enter"])},null,8,["modelValue"])]),s(E,null,{default:i(()=>[s(T,{variant:"outline",onClick:r[1]||(r[1]=C=>b.$emit("cancel"))},{default:i(()=>r[7]||(r[7]=[k("Cancel")])),_:1}),s(T,{variant:"destructive",disabled:!e(m),onClick:y},{default:i(()=>r[8]||(r[8]=[k(" Restore ")])),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["open"])}}}),ls={class:"rounded-lg border bg-muted/30 p-4"},rs={class:"flex items-center justify-between gap-4"},is={class:"text-sm font-medium"},us={class:"text-xs text-muted-foreground"},cs={class:"flex shrink-0 items-center gap-2"},ds={class:"text-sm font-medium"},ms={class:"mt-3 h-2 overflow-hidden rounded-full bg-border/60"},Ve=G({__name:"TransferProgressCard",props:{tool:{},stage:{},statusMessage:{},progress:{},isRunning:{type:Boolean},progressClass:{default:"bg-primary"},actionLabel:{default:void 0},actionDisabled:{type:Boolean,default:!1}},emits:["action"],setup(p,{emit:l}){const t=l;return(o,u)=>{const m=se,y=ae;return d(),P("div",ls,[a("div",rs,[a("div",null,[a("p",is,h(o.tool)+" · "+h(o.stage),1),a("p",us,h(o.statusMessage||"Preparing job..."),1)]),a("div",cs,[o.actionLabel?(d(),B(y,{key:0,type:"button",variant:"outline",size:"sm",disabled:o.actionDisabled,onClick:u[0]||(u[0]=b=>t("action"))},{default:i(()=>[s(m,{name:"lucide:folder-open",class:"size-4 mr-2"}),k(" "+h(o.actionLabel),1)]),_:1},8,["disabled"])):F("",!0),a("span",ds,h(o.progress)+"%",1)])]),a("div",ms,[a("div",{class:me(["h-full rounded-full transition-all duration-300",o.progressClass]),style:Ht({width:`${Math.max(o.progress,o.isRunning?8:0)}%`})},null,6)])])}}});function Ne(p){return!!(p&&(p.status==="completed"||p.status==="error"))}const nt=()=>{const p=I(null),l=I(null),t=I(null),o=I(!1);let u=null,m=null;const y=v=>{u==null||u(v),u=null,m=null},b=v=>{m==null||m(v),u=null,m=null},r=async()=>{if(!t.value)throw new Error("Backup job status URL is missing.");if(o.value){if(p.value)return p.value;throw new Error("Backup job refresh is already in progress.")}o.value=!0;try{const v=await $fetch(t.value);return p.value=v,v.status==="error"&&(l.value=v.error||v.message),Ne(v)&&(f(),y(v)),v}catch(v){const T=v instanceof Error?v:new Error("Failed to refresh backup job status.");throw l.value=T.message,f(),b(T),T}finally{o.value=!1}},{pause:f,resume:x,isActive:_}=Wt(()=>{r()},1e3,{immediate:!1,immediateCallback:!1}),w=async v=>{t.value=v,l.value=null;const T=await r();return Ne(T)?T:(x(),await new Promise((E,R)=>{u=E,m=R}))},D=()=>{f(),t.value=null,p.value=null,l.value=null,o.value=!1,u=null,m=null};return Qt(()=>{f()}),{job:p,error:l,isRefreshing:o,isPolling:_,progress:g(()=>{var v;return((v=p.value)==null?void 0:v.progress)??0}),message:g(()=>{var v;return((v=p.value)==null?void 0:v.message)??null}),stage:g(()=>{var v;return((v=p.value)==null?void 0:v.stage)??"queued"}),status:g(()=>{var v;return((v=p.value)==null?void 0:v.status)??"queued"}),isRunning:g(()=>{var v,T;return((v=p.value)==null?void 0:v.status)==="queued"||((T=p.value)==null?void 0:T.status)==="running"}),monitorJob:w,refresh:r,reset:D}},ps=p=>(p||"database").trim().replace(/[\\/:*?"<>|]+/g,"-").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")||"database",fs=()=>new Date().toISOString().replace(/[:.]/g,"-"),vs=(p,l)=>`${p.replace(/[\\/]$/,"")}/${l}`,Me=p=>!Number.isFinite(p)||p<=0?"0.0s":`${(p/1e3).toFixed(1)}s`,gs=(p,l)=>{const t=I(null),o=I(null),u=nt(),{downloadStream:m,isDownloading:y,downloadedBytes:b}=no(),r=g(()=>u.isRunning.value||y.value),f=g(()=>o.value||y.value?100:u.progress.value),x=g(()=>o.value?`Backup is ready. ${ye(o.value.size)} generated in ${Me(o.value.duration)}.`:y.value?`Saving backup artifact (${ye(b.value)})...`:u.message.value),_=g(()=>u.job.value),w=async(T,E)=>{var J,S,$,M,A,W;if(!p.value)return t.value="No database connection provided",!1;const{options:R,runtime:q,promptForSaveLocation:C}=E;if(l!=null&&l.value&&!l.value.exportAvailable&&!((J=q==null?void 0:q.executablePath)!=null&&J.trim()))return t.value=l.value.exportMessage,!1;t.value=null,o.value=null;try{let L=((S=E.saveDirectoryPath)==null?void 0:S.trim())||void 0,O=(($=E.saveFilePath)==null?void 0:$.trim())||void 0;const K=`${ps(T)}_backup_${fs()}${D((M=p.value)==null?void 0:M.type,R.format)}`;if(!L&&!O&&C&&((A=window.electronAPI)!=null&&A.window.pickDirectory)){const z=await window.electronAPI.window.pickDirectory();if(!z)return t.value="No save location was selected.",!1;L=z}!O&&L&&(O=vs(L,K));const H=await $fetch("/api/database-export/export-database",{method:"POST",body:{...Ze(p.value),databaseName:T,options:R,runtime:q}}),U=await u.monitorJob(H.statusUrl);if(U.status==="error")return t.value=U.error||U.message,!1;if(!U.downloadUrl||!U.downloadFileName)return t.value="Export finished but no download artifact was returned.",!1;const te=await m({url:U.downloadUrl,method:"GET",filename:O?K:U.downloadFileName||K,saveFilePath:O,openPath:L,successTitle:"Backup is ready",getSuccessDescription:z=>`${ye(z)} generated in ${Me(U.duration||0)}.`});return te.success?(o.value={fileName:O?K:U.downloadFileName,duration:U.duration||0,size:te.size||0,saveDirectoryPath:L,saveFilePath:O},!0):(t.value=((W=te.error)==null?void 0:W.message)||"Download failed.",!1)}catch(L){return t.value=L instanceof Error?L.message:"Export failed. Check the connection and backup configuration.",console.error("Export error:",L),!1}},D=(T,E)=>so(T,E);return{isExporting:r,progress:f,error:t,lastExport:o,currentJob:_,statusMessage:x,exportDatabase:w,reset:()=>{u.reset(),t.value=null,o.value=null}}},_s=(p,l)=>{const t=nt(),o=g(()=>t.isRunning.value),u=g(()=>t.progress.value),m=g(()=>t.message.value),y=g(()=>t.job.value),b=I(null),r=I(null),f=I(null),x=I(null),_=I({clean:!1,dataOnly:!1,schemaOnly:!1,exitOnError:!0}),w=g(()=>{var S;return(S=p.value)==null?void 0:S.type}),D=g(()=>{var S;return((S=l.value)==null?void 0:S.formatOptions)||[]}),v=g(()=>at(w.value)),T=g(()=>{var S;return((S=l.value)==null?void 0:S.acceptExtensions)||D.value.map($=>$.extension).join(" / ")||".sql"}),E=()=>{f.value=null,x.value&&(x.value.value="")};return{isImporting:o,progress:u,statusMessage:m,currentJob:y,error:b,success:r,selectedFile:f,fileInputRef:x,options:_,extensionSummary:T,clearSelectedFile:E,openFilePicker:()=>{var S;(S=x.value)==null||S.click()},onFileSelect:S=>{var W;const $=S.target;if(!((W=$.files)!=null&&W.length))return;const M=$.files[0];if(!D.value.some(L=>M.name.toLowerCase().endsWith(L.extension.toLowerCase()))){E(),b.value=`Unsupported file type. Use ${T.value} for ${v.value}.`,r.value=null;return}f.value=M,b.value=null,r.value=null},importDatabase:async S=>{var $,M;if(!(!f.value||!p.value)){if(l.value&&!l.value.importAvailable&&!(($=S==null?void 0:S.executablePath)!=null&&$.trim())){b.value=l.value.importMessage,r.value=null;return}b.value=null,r.value=null;try{const A=new FormData;A.append("file",f.value);const W=Ze(p.value);Object.entries(W).forEach(([K,H])=>{H!==void 0&&A.append(K,typeof H=="object"?JSON.stringify(H):String(H))}),A.append("options",JSON.stringify(_.value)),(M=S==null?void 0:S.executablePath)!=null&&M.trim()&&A.append("runtime",JSON.stringify(S));const L=await $fetch("/api/database-import/import-database",{method:"POST",body:A}),O=await t.monitorJob(L.statusUrl);if(O.status==="completed"){r.value=O.message||"Database imported successfully",E();return}b.value=O.error||O.message||"Import failed"}catch(A){b.value=A instanceof Error?A.message:"Import failed. Check the backup file and connection compatibility.",console.error("Import error:",A)}}},reset:()=>{t.reset(),b.value=null,r.value=null,E()}}},bs=p=>{const l=I(null),t=I(!1),o=I(null);let u=0;const m=async()=>{const y=p.value,b=++u;if(!y){l.value=null,o.value=null,t.value=!1;return}t.value=!0,o.value=null;try{const r=await $fetch("/api/database-backup/capability",{query:{type:y,discoverAll:et()}});if(b!==u)return;l.value=r}catch(r){if(b!==u)return;l.value=null,o.value=r instanceof Error?r.message:"Unable to detect native backup tools."}finally{b===u&&(t.value=!1)}};return Z(p,()=>{m()},{immediate:!0}),{capability:l,isLoading:t,error:o,refresh:m}};function je(){return{useCustomPath:!1,selectedPath:"",customPath:"",customTool:""}}const Ue=(p,l,t)=>{const o=I(je()),u=g(()=>{const r=new Set(l.value);return p.value.filter(f=>r.size===0||r.has(f.tool))}),m=g(()=>u.value.find(r=>r.path===o.value.selectedPath)||null);Z([u,l,t],([r,f,x])=>{var _;if(!x){o.value=je();return}if(f.includes(o.value.customTool)||(o.value.customTool=f[0]||""),r.some(w=>w.path===o.value.selectedPath)||(o.value.selectedPath=((_=r[0])==null?void 0:_.path)||""),!r.length){o.value.useCustomPath=!0;return}o.value.useCustomPath&&!o.value.customPath.trim()&&(o.value.useCustomPath=!1)},{immediate:!0});const y=g(()=>{if(t.value){if(o.value.useCustomPath){const r=o.value.customPath.trim(),f=o.value.customTool;return!r||!f?void 0:{tool:f,executablePath:r}}if(m.value)return{tool:m.value.tool,executablePath:m.value.path}}}),b=g(()=>!t.value||!!y.value);return{selection:o,filteredToolPaths:u,runtimeSelection:y,canSubmit:b}},hs={class:"flex flex-col h-full gap-3 overflow-hidden p-3"},ys={class:"font-medium text-foreground"},xs={class:"text-muted-foreground/60"},ks={class:"flex items-center justify-between gap-2"},ws={class:"text-xs text-muted-foreground"},$s={class:"relative flex-1 overflow-y-auto rounded-lg border bg-background p-4"},Cs={class:"space-y-4"},Ss={class:"flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between"},Ps={class:"mt-1 text-sm text-muted-foreground"},Ts={class:"grid gap-4 xl:grid-cols-[minmax(0,1fr)_280px]"},Ds={class:"rounded-lg border p-4 space-y-4"},Es={class:"space-y-4"},Bs={class:"flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between"},Is={class:"mt-1 text-sm text-muted-foreground"},Fs={class:"grid gap-4 xl:grid-cols-[minmax(0,1fr)_280px]"},Rs={class:"rounded-lg border p-4 space-y-4"},Ls={class:"text-muted-foreground text-xs inline-flex items-center gap-0.5"},qs={class:"text-destructive gap-0.5 items-center inline-flex"},Us=G({__name:"BackupRestoreContainer",props:{connectionId:{},initialTab:{}},setup(p){const l=p,{workspaceId:t}=Gt(),o=Kt(),u=Xt(),m=g(()=>{if(l.connectionId)return o.connections.find(n=>n.id===l.connectionId)}),y=g(()=>{var n;return(n=m.value)==null?void 0:n.type}),b=g(()=>{var n,c;return((n=m.value)==null?void 0:n.database)||((c=m.value)==null?void 0:c.name)||"database"}),r=g(()=>at(y.value)),{capability:f,isLoading:x,error:_,refresh:w}=bs(y),D=I(!1),v=g(()=>et()),T=async()=>{D.value=!0;try{await w()}finally{D.value=!1}},E=g(()=>{var n;return((n=f.value)==null?void 0:n.supported)??!1}),R=g(()=>{var n;return((n=f.value)==null?void 0:n.exportAvailable)??!1}),q=g(()=>{var n;return((n=f.value)==null?void 0:n.importAvailable)??!1}),C=g(()=>E.value&&(R.value||v.value)),J=g(()=>E.value&&(q.value||v.value)),S=g(()=>_.value?_.value:f.value?f.value.supportMessage:y.value?`Checking ${r.value} native tools...`:"Select a connection to open database tools."),$=g(()=>{var n;return((n=f.value)==null?void 0:n.toolHint)||"Native database tools"}),M=g(()=>{var n;return((n=f.value)==null?void 0:n.formatOptions)||[]}),A=g(()=>{var n;return((n=f.value)==null?void 0:n.acceptExtensions)||".sql"}),W=g(()=>M.value.map(n=>n.extension).join(" / ")||".sql"),L=g(()=>{var n,c;return x.value||!E.value||R.value&&q.value?null:[R.value?null:(n=f.value)==null?void 0:n.exportMessage,q.value?null:(c=f.value)==null?void 0:c.importMessage].filter(Boolean).join(" ")}),O=g(()=>{var c;if(!l.connectionId)return[];const n=t.value||((c=m.value)==null?void 0:c.workspaceId);return(u.schemas[l.connectionId]||[]).filter(j=>j.connectionId===l.connectionId&&(!n||j.workspaceId===n)).map(j=>j.name)}),K=g(()=>u.loading[l.connectionId]||!1),H=I(null),U=async()=>{const n=m.value,c=t.value||(n==null?void 0:n.workspaceId);if(!l.connectionId||!c||!n)return;if((u.schemas[l.connectionId]||[]).some(V=>V.connectionId===l.connectionId&&V.workspaceId===c)){H.value=null;return}try{H.value=null,await u.fetchSchemas({connectionId:l.connectionId,workspaceId:c,connection:n})}catch(V){H.value=V instanceof Error?V.message:"Failed to load schemas."}};Z([m,()=>t.value],()=>{U()},{immediate:!0});const te=[{id:"export",tabLabel:"Create Backup",subtitle:"Generate native backup artifacts for the current connection.",icon:"hugeicons:download-01"},{id:"import",tabLabel:"Restore Backup",subtitle:"Apply a native backup artifact back into this connection.",icon:"hugeicons:upload-01"}],z=I(l.initialTab),lt=g(()=>te.find(n=>n.id===z.value));Z(()=>l.initialTab,n=>{z.value=n}),Z([z,C,J],([n,c,j])=>{if(n==="export"&&!c&&j){z.value="import";return}n==="import"&&!j&&c&&(z.value="export")},{immediate:!0});const rt=n=>{z.value=n},{isExporting:ne,progress:it,error:ke,lastExport:we,currentJob:pe,statusMessage:ut,exportDatabase:ct,reset:dt}=gs(m,f),$e=(n=[],c=[])=>[...new Set([...n,...c])],Ce=g(()=>{var n,c;return $e(((n=f.value)==null?void 0:n.availableExportTools)||[],((c=f.value)==null?void 0:c.missingExportTools)||[])}),mt=g(()=>{var n;return((n=f.value)==null?void 0:n.availableExportToolPaths)||[]}),{selection:fe,filteredToolPaths:pt,runtimeSelection:ft,canSubmit:vt}=Ue(mt,Ce,v),gt=async()=>{var c,j;const n=(c=we.value)==null?void 0:c.saveDirectoryPath;!n||!((j=window.electronAPI)!=null&&j.window.openPath)||await window.electronAPI.window.openPath(n)},_t=async n=>{await ct(b.value,{options:n,runtime:ft.value,promptForSaveLocation:v.value,saveDirectoryPath:void 0})},{isImporting:Y,progress:bt,statusMessage:ht,currentJob:ve,error:Se,success:Pe,selectedFile:ue,options:ge,extensionSummary:yt,onFileSelect:xt,clearSelectedFile:kt,importDatabase:wt,reset:$t}=_s(m,f),Ct=g(()=>{var n,c;return $e(((n=f.value)==null?void 0:n.availableImportTools)||[],((c=f.value)==null?void 0:c.missingImportTools)||[])}),_e=g(()=>{var n;return y.value!==Yt.POSTGRES||!((n=ue.value)!=null&&n.name)?Ct.value:[ue.value.name.toLowerCase().endsWith(".dump")?"pg_restore":"psql"]}),St=g(()=>{var n;return(((n=f.value)==null?void 0:n.availableImportToolPaths)||[]).filter(c=>_e.value.includes(c.tool))}),{selection:be,filteredToolPaths:Pt,runtimeSelection:Tt,canSubmit:Dt}=Ue(St,_e,v),ce=I(!1),Et=()=>{ce.value=!0},Bt=async()=>{ce.value=!1,await wt(Tt.value)},It=()=>{ce.value=!1};return(n,c)=>{var Te,De,Ee,Be,Ie,Fe,Re;const j=qt,V=se,Ft=oo,Rt=to,Lt=eo,le=st,re=ot,ie=tt,he=ae;return d(),P("div",hs,[s(ns,{open:e(ce),onConfirm:Bt,onCancel:It},null,8,["open"]),s(j,{icon:"hugeicons:database-import",title:"Backup & Restore"},{context:i(()=>[a("span",ys,h(e(b)),1),a("span",xs,"· "+h(e(r)),1)]),_:1}),a("div",ks,[s(Lt,{modelValue:e(z),"onUpdate:modelValue":c[0]||(c[0]=N=>oe(z)?z.value=N:null),class:"min-w-0 flex-1 gap-0"},{default:i(()=>[s(Rt,{size:"sm",class:"max-w-full justify-start! overflow-x-auto"},{default:i(()=>[(d(),P(Q,null,X(te,N=>s(Ft,{size:"xs",key:N.id,value:N.id,class:"min-w-fit shrink-0 cursor-pointer rounded-sm",disabled:e(x)||(N.id==="export"?!e(C):!e(J)),onClick:zs=>rt(N.id)},{default:i(()=>[s(V,{name:N.icon,class:"shrink-0 size-3.5"},null,8,["name"]),k(" "+h(N.tabLabel),1)]),_:2},1032,["value","disabled","onClick"])),64))]),_:1})]),_:1},8,["modelValue"]),a("div",ws,h((Te=e(lt))==null?void 0:Te.subtitle),1)]),a("div",$s,[e(x)&&!e(D)?(d(),B(Zt,{key:0,visible:""})):F("",!0),(!e(x)||e(D))&&e(_)?(d(),B(ie,{key:1,variant:"destructive"},{default:i(()=>[s(V,{name:"hugeicons:alert-circle",class:"size-4"}),s(le,null,{default:i(()=>c[4]||(c[4]=[k("Capability Check Failed")])),_:1}),s(re,null,{default:i(()=>[k(h(e(S)),1)]),_:1})]),_:1})):(!e(x)||e(D))&&!e(E)?(d(),B(xo,{key:2,"support-message":e(S),"connection-type":e(y),"is-loading":e(D),onReload:T},null,8,["support-message","connection-type","is-loading"])):!e(x)&&!e(D)?(d(),P(Q,{key:3},[e(L)?(d(),B(ie,{key:0},{default:i(()=>[s(V,{name:"hugeicons:alert-circle",class:"size-4"}),s(le,null,{default:i(()=>c[5]||(c[5]=[k("Partial Native Tool Support")])),_:1}),s(re,null,{default:i(()=>[k(h(e(L)),1)]),_:1})]),_:1})):F("",!0),Le(a("div",Cs,[a("div",Ss,[a("div",null,[c[6]||(c[6]=a("h3",{class:"text-base font-medium"},"Create Backup",-1)),a("p",Ps," Export "+h(e(b))+" using "+h(e($))+". ",1)])]),e(ke)?(d(),B(ie,{key:0,variant:"destructive"},{default:i(()=>[s(V,{name:"hugeicons:alert-circle",class:"size-4"}),s(le,null,{default:i(()=>c[7]||(c[7]=[k("Backup Failed")])),_:1}),s(re,null,{default:i(()=>[k(h(e(ke)),1)]),_:1}),s(he,{size:"sm",variant:"outline",class:"mt-2",onClick:e(dt)},{default:i(()=>c[8]||(c[8]=[k(" Try Again ")])),_:1},8,["onClick"])]),_:1})):F("",!0),e(ne)||e(pe)?(d(),B(Ve,{key:1,tool:((De=e(pe))==null?void 0:De.tool)||e($),stage:((Ee=e(pe))==null?void 0:Ee.stage)||"queued","status-message":e(ut)||"",progress:e(it),"is-running":e(ne),"action-label":(Be=e(we))!=null&&Be.saveDirectoryPath&&!e(ne)?"Open":void 0,onAction:gt},null,8,["tool","stage","status-message","progress","is-running","action-label"])):F("",!0),a("div",Ts,[a("div",Ds,[e(v)?(d(),B(Oe,{key:0,modelValue:e(fe),"onUpdate:modelValue":c[1]||(c[1]=N=>oe(fe)?fe.value=N:null),title:"Backup Driver",description:"Choose the exact executable OrcaQ should run for this backup job.","detected-paths":e(pt),"tool-choices":e(Ce),disabled:e(ne)},null,8,["modelValue","detected-paths","tool-choices","disabled"])):F("",!0),s(Lo,{schemas:e(O),"schema-loading":e(K),"schema-error":e(H),loading:e(ne),disabled:e(v)&&!e(vt),"format-options":e(M),"default-format":(Ie=e(f))==null?void 0:Ie.defaultExportFormat,"tool-hint":e($),onSubmit:_t},null,8,["schemas","schema-loading","schema-error","loading","disabled","format-options","default-format","tool-hint"])]),s(ze,{title:"Backup Profile",description:"Exports run on the local runtime host and stream the artifact directly into a downloadable file.",formats:e(M),"tool-hint":e($),"target-name":e(b),"formats-label":"Supported Files"},null,8,["formats","tool-hint","target-name"])])],512),[[qe,e(z)==="export"]]),Le(a("div",Es,[a("div",Bs,[a("div",null,[c[9]||(c[9]=a("h3",{class:"text-base font-medium"},"Restore Backup",-1)),a("p",Is," Restore a "+h(e(W))+" backup into "+h(e(b))+". ",1)])]),e(Se)?(d(),B(ie,{key:0,variant:"destructive"},{default:i(()=>[s(V,{name:"hugeicons:alert-circle",class:"size-4"}),s(le,null,{default:i(()=>c[10]||(c[10]=[k("Import Failed")])),_:1}),s(re,null,{default:i(()=>[k(h(e(Se)),1)]),_:1}),s(he,{size:"sm",variant:"outline",class:"mt-2",onClick:e($t)},{default:i(()=>c[11]||(c[11]=[k(" Try Again ")])),_:1},8,["onClick"])]),_:1})):F("",!0),e(Pe)?(d(),B(ie,{key:1},{default:i(()=>[s(V,{name:"hugeicons:checkmark-circle-02",class:"size-4 text-green-500"}),s(le,null,{default:i(()=>c[12]||(c[12]=[k("Import Complete")])),_:1}),s(re,null,{default:i(()=>[k(h(e(Pe)),1)]),_:1})]),_:1})):F("",!0),e(Y)||e(ve)?(d(),B(Ve,{key:2,tool:((Fe=e(ve))==null?void 0:Fe.tool)||e($),stage:((Re=e(ve))==null?void 0:Re.stage)||"queued","status-message":e(ht)||"",progress:e(bt),"is-running":e(Y),"progress-class":"bg-emerald-500"},null,8,["tool","stage","status-message","progress","is-running"])):F("",!0),a("div",Fs,[a("div",Rs,[s(Uo,{"selected-file":e(ue),accept:e(A),"extension-summary":e(yt),onChange:e(xt),onClear:e(kt)},null,8,["selected-file","accept","extension-summary","onChange","onClear"]),e(v)?(d(),B(Oe,{key:0,modelValue:e(be),"onUpdate:modelValue":c[2]||(c[2]=N=>oe(be)?be.value=N:null),title:"Restore Driver",description:"Choose the executable HeraQ should use to restore this backup artifact.","detected-paths":e(Pt),"tool-choices":e(_e),disabled:e(Y)},null,8,["modelValue","detected-paths","tool-choices","disabled"])):F("",!0),s(Wo,{modelValue:e(ge),"onUpdate:modelValue":c[3]||(c[3]=N=>oe(ge)?ge.value=N:null)},null,8,["modelValue"]),s(he,{class:"w-full",disabled:!e(ue)||e(Y)||e(v)&&!e(Dt),onClick:Et},{default:i(()=>[s(V,{name:e(Y)?"hugeicons:loading-03":"hugeicons:upload-01",class:me(["size-4 mr-2",e(Y)&&"animate-spin"])},null,8,["name","class"]),k(" "+h(e(Y)?"Restoring...":"Restore Backup"),1)]),_:1},8,["disabled"]),a("p",Ls,[a("polyline",qs,[s(V,{name:"hugeicons:alert-circle",class:"size-4 text-destructive"}),c[13]||(c[13]=k(" Warning: "))]),c[14]||(c[14]=k(" Importing a database can overwrite existing data. Make sure you have a backup before proceeding. "))])]),s(ze,{title:"Restore Profile",description:"Use a backup file produced for the same database family and runtime toolchain.",formats:e(M),"tool-hint":e($),"target-name":e(b),"formats-label":"Accepted Files"},null,8,["formats","tool-hint","target-name"])])],512),[[qe,e(z)==="import"]])],64)):F("",!0)])])}}});export{Us as _};
7
+ # Windows: Download from https://www.sqlite.org/download.html`,xo=G({__name:"BackupRestoreUnsupportedAlert",props:{supportMessage:{},connectionType:{},isLoading:{type:Boolean}},emits:["reload"],setup(p,{emit:l}){const t=l;return(o,u)=>{const m=se,y=st,b=ao,r=ae,f=ot,x=tt;return d(),E(x,null,{default:i(()=>[s(y,{class:"flex items-center font-medium gap-1"},{default:i(()=>[s(m,{name:"hugeicons:alert-circle",class:"size-4"}),u[1]||(u[1]=k(" Native Tools Required"))]),_:1}),s(f,{class:"space-y-3"},{default:i(()=>[a("p",vo,h(o.supportMessage),1),a("div",go,[u[2]||(u[2]=a("p",{class:"font-medium"},"Installation instructions:",-1)),o.connectionType==="postgres"?(d(),E(b,{key:0,code:bo,language:"bash"})):o.connectionType==="mysql"||o.connectionType==="mariadb"?(d(),E(b,{key:1,code:ho,language:"bash"})):o.connectionType==="sqlite3"?(d(),E(b,{key:2,code:yo,language:"bash"})):F("",!0)]),a("div",_o,[s(r,{size:"sm",variant:"outline",class:"cursor-pointer transition-all duration-300 hover:bg-accent hover:text-accent-foreground active:scale-95 group",disabled:o.isLoading,onClick:u[0]||(u[0]=_=>t("reload"))},{default:i(()=>[s(m,{name:"hugeicons:refresh",class:me(["size-4 mr-2 shrink-0",o.isLoading?"animate-spin":"transition-transform duration-500 group-hover:rotate-180"])},null,8,["class"]),k(" "+h(o.isLoading?"Checking...":"Check Again"),1)]),_:1},8,["disabled"]),u[3]||(u[3]=a("span",{class:"text-[11px] text-muted-foreground"}," Installed the tools? Click check again to re-detect capabilities and enable Backup & Restore. ",-1))])]),_:1})]),_:1})}}}),ko={class:"space-y-4"},wo={class:"space-y-2"},$o={class:"grid gap-2 sm:grid-cols-2"},Co=["onClick"],So={class:"flex items-center justify-between gap-2"},Po={class:"text-sm font-medium"},To={class:"mt-1 text-xs text-muted-foreground"},Do={class:"space-y-2"},Bo={key:0,class:"space-y-2"},Eo={key:0,class:"flex flex-wrap gap-2 max-h-32 overflow-y-auto p-2 border rounded-md"},Io={key:1,class:"text-xs text-destructive"},Fo={key:2,class:"text-xs text-muted-foreground"},Ro={key:3,class:"text-xs text-muted-foreground"},Ae="plain",Lo=G({__name:"ExportOptionsForm",props:{schemas:{},schemaLoading:{type:Boolean},schemaError:{},loading:{type:Boolean},disabled:{type:Boolean},formatOptions:{},defaultFormat:{},toolHint:{}},emits:["submit"],setup(p,{emit:l}){var f;const t=p,o=l,u=I("full"),m=I(t.defaultFormat||((f=t.formatOptions[0])==null?void 0:f.format)||Ae),y=I([]);Z([()=>t.formatOptions,()=>t.defaultFormat],([x,_])=>{var w;x.some(D=>D.format===m.value)||(m.value=((w=x[0])==null?void 0:w.format)||_||Ae)},{immediate:!0});const b=[{value:"full",label:"Full (schema + data)"},{value:"schema-only",label:"Schema only (no data)"},{value:"data-only",label:"Data only (no schema)"}],r=()=>{const x={format:m.value,scope:u.value};x.schemas=y.value.length>0?y.value:t.schemas,o("submit",x)};return(x,_)=>{const w=We,D=Je,v=Ge,T=Qe,B=He,R=se,q=ae;return d(),P("div",ko,[a("div",wo,[s(e(ee),null,{default:i(()=>_[1]||(_[1]=[k("Backup Format")])),_:1}),a("div",$o,[(d(!0),P(Q,null,X(x.formatOptions,C=>(d(),P("button",{key:C.format,type:"button",class:me(["rounded-lg border p-3 text-left transition-colors",e(m)===C.format?"border-primary bg-primary/5":"hover:border-primary/40 hover:bg-muted/20"]),onClick:H=>m.value=C.format},[a("div",So,[a("p",Po,h(C.label),1),s(e(de),{variant:"secondary",class:"font-normal"},{default:i(()=>[k(h(C.extension),1)]),_:2},1024)]),a("p",To," Runtime uses "+h(t.toolHint||"Native database tools")+". ",1)],10,Co))),128))])]),a("div",Do,[s(e(ee),null,{default:i(()=>_[2]||(_[2]=[k("Export Scope")])),_:1}),s(B,{modelValue:e(u),"onUpdate:modelValue":_[0]||(_[0]=C=>oe(u)?u.value=C:null),size:"xs"},{default:i(()=>[s(D,null,{default:i(()=>[s(w,{placeholder:"Select scope"})]),_:1}),s(T,null,{default:i(()=>[(d(),P(Q,null,X(b,C=>s(v,{key:C.value,value:C.value},{default:i(()=>[k(h(C.label),1)]),_:2},1032,["value"])),64))]),_:1})]),_:1},8,["modelValue"])]),x.schemaLoading||x.schemaError||x.schemas.length>0?(d(),P("div",Bo,[s(e(ee),null,{default:i(()=>_[3]||(_[3]=[k("Schemas (optional)")])),_:1}),x.schemas.length>0?(d(),P("div",Eo,[(d(!0),P(Q,null,X(x.schemas,C=>(d(),E(e(de),{key:C,variant:e(y).includes(C)?"default":"outline",class:"cursor-pointer",onClick:()=>e(y).includes(C)?y.value=e(y).filter(H=>H!==C):e(y).push(C)},{default:i(()=>[k(h(C),1)]),_:2},1032,["variant","onClick"]))),128))])):F("",!0),x.schemaError?(d(),P("p",Io,h(x.schemaError),1)):x.schemaLoading?(d(),P("p",Fo," Loading schemas... ")):(d(),P("p",Ro,h(e(y).length?`${e(y).length} selected`:"All visible schemas"),1))])):F("",!0),s(q,{class:"w-full",disabled:x.loading||x.disabled,onClick:r},{default:i(()=>[x.loading?(d(),E(R,{key:0,name:"hugeicons:loading-03",class:"size-4 mr-2 animate-spin"})):(d(),E(R,{key:1,name:"lucide:download",class:"size-4 mr-2"})),k(" "+h(x.loading?"Creating Backup...":"Create Backup"),1)]),_:1},8,["disabled"])])}}}),qo={class:"relative mt-2 cursor-pointer rounded-lg border-2 border-dashed p-6 text-center transition-colors hover:border-primary/50"},zo=["accept"],Ao={key:0,class:"text-muted-foreground pointer-events-none"},Vo={class:"text-xs mt-1"},Oo={key:1,class:"flex items-center justify-center gap-3"},No={class:"text-left"},Mo={class:"text-sm font-medium"},Uo={class:"text-xs text-muted-foreground"},jo=G({__name:"ImportFileDropzone",props:{selectedFile:{},accept:{},extensionSummary:{}},emits:["change","clear"],setup(p){const l=t=>t<1024?`${t} B`:t<1048576?`${(t/1024).toFixed(1)} KB`:`${(t/1048576).toFixed(1)} MB`;return(t,o)=>{const u=ee,m=se,y=ae;return d(),P("div",null,[s(u,{class:"text-sm font-medium"},{default:i(()=>o[2]||(o[2]=[k("Backup File")])),_:1}),a("div",qo,[a("input",{type:"file",accept:t.accept,class:"absolute inset-0 w-full h-full opacity-0 cursor-pointer",onChange:o[0]||(o[0]=b=>t.$emit("change",b))},null,40,zo),t.selectedFile?(d(),P("div",Oo,[s(m,{name:"hugeicons:file-01",class:"size-8 text-primary"}),a("div",No,[a("p",Mo,h(t.selectedFile.name),1),a("p",Uo,h(l(t.selectedFile.size)),1)]),s(y,{variant:"ghost",size:"icon",class:"ml-2 relative z-10",type:"button",onClick:o[1]||(o[1]=zt(b=>t.$emit("clear"),["stop"]))},{default:i(()=>[s(m,{name:"hugeicons:x-close",class:"size-4"})]),_:1})])):(d(),P("div",Ao,[s(m,{name:"hugeicons:upload-cloud-01",class:"size-10 mx-auto mb-2 opacity-50"}),o[3]||(o[3]=a("p",{class:"text-sm font-medium"},"Click to select a file",-1)),a("p",Vo,"Supports "+h(t.extensionSummary)+" backups",1)]))])])}}}),Ho={class:"space-y-3"},Jo={class:"grid grid-cols-2 gap-4"},Wo=G({__name:"ImportOptionsForm",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(p){const l=Ke(p,"modelValue"),t=(u,m)=>{l.value[u]=m},o=[{key:"clean",label:"Drop Objects First",id:"import-clean"},{key:"dataOnly",label:"Data Only",id:"import-data-only"},{key:"schemaOnly",label:"Schema Only",id:"import-schema-only"},{key:"exitOnError",label:"Exit on Error",id:"import-exit-on-error"}];return(u,m)=>{const y=ee,b=Xe;return d(),P("div",Ho,[s(y,{class:"text-sm font-medium"},{default:i(()=>m[0]||(m[0]=[k("Options")])),_:1}),a("div",Jo,[(d(),P(Q,null,X(o,r=>a("div",{key:r.key,class:"flex items-center space-x-2"},[s(b,{id:r.id,"model-value":l.value[r.key],"onUpdate:modelValue":f=>t(r.key,f)},null,8,["id","model-value","onUpdate:modelValue"]),s(y,{for:r.id,class:"text-sm"},{default:i(()=>[k(h(r.label),1)]),_:2},1032,["for"])])),64))])])}}}),Qo={class:"space-y-3 rounded-lg border border-dashed p-3"},Go={class:"flex items-start justify-between gap-3"},Ko={class:"space-y-1"},Xo={key:0,class:"text-xs text-muted-foreground"},Yo={key:0,class:"space-y-2"},Zo={key:1,class:"flex items-start justify-between gap-3 rounded-md bg-muted/40 px-3 py-2"},es={key:2,class:"text-xs text-muted-foreground"},ts={key:3,class:"grid gap-3 md:grid-cols-[180px_minmax(0,1fr)]"},os={class:"space-y-1"},ss={class:"space-y-1"},Ve=G({__name:"NativeToolSelector",props:At({title:{},description:{},detectedPaths:{},toolChoices:{},disabled:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(p){const l=p,t=Ke(p,"modelValue"),o=g(()=>l.detectedPaths.length>0),u=g(()=>t.value.useCustomPath||!o.value),m=g(()=>l.detectedPaths.length===1?"1 executable found":`${l.detectedPaths.length} executables found`),y=g(()=>{switch(t.value.customTool||l.toolChoices[0]){case"pg_dump":return"/Applications/Postgres.app/.../bin/pg_dump";case"pg_restore":return"/Applications/Postgres.app/.../bin/pg_restore";case"psql":return"/Applications/Postgres.app/.../bin/psql";case"mysqldump":return"/opt/homebrew/Cellar/mysql/.../bin/mysqldump";case"mysqlpump":return"/opt/homebrew/Cellar/mysql/.../bin/mysqlpump";case"mysql":return"/opt/homebrew/Cellar/mysql/.../bin/mysql";case"sqlite3":return"/usr/local/bin/sqlite3";default:return"/usr/local/bin/native-tool"}}),b=_=>{t.value.selectedPath=_},r=_=>{t.value.customTool=_},f=_=>{t.value.useCustomPath=o.value?_:!0},x=_=>`${_.tool} • ${_.path}`;return(_,w)=>{const D=ee,v=de,T=We,B=Je,R=Ge,q=Qe,C=He,H=Xe,S=Ye;return d(),P("div",Qo,[a("div",Go,[a("div",Ko,[s(D,{class:"text-sm font-medium"},{default:i(()=>[k(h(_.title),1)]),_:1}),_.description?(d(),P("p",Xo,h(_.description),1)):F("",!0)]),e(o)?(d(),E(v,{key:0,variant:"secondary",class:"shrink-0"},{default:i(()=>[k(h(e(m)),1)]),_:1})):F("",!0)]),e(o)&&!t.value.useCustomPath?(d(),P("div",Yo,[s(D,{class:"text-xs font-medium text-muted-foreground"},{default:i(()=>w[4]||(w[4]=[k(" Detected Executable ")])),_:1}),s(C,{"model-value":t.value.selectedPath,disabled:_.disabled,size:"xs","onUpdate:modelValue":w[0]||(w[0]=$=>b(String($)))},{default:i(()=>[s(B,null,{default:i(()=>[s(T,{placeholder:"Choose a native tool"})]),_:1}),s(q,null,{default:i(()=>[(d(!0),P(Q,null,X(_.detectedPaths,$=>(d(),E(R,{key:$.path,value:$.path},{default:i(()=>[k(h(x($)),1)]),_:2},1032,["value"]))),128))]),_:1})]),_:1},8,["model-value","disabled"])])):F("",!0),e(o)?(d(),P("div",Zo,[w[5]||(w[5]=a("div",{class:"space-y-1"},[a("p",{class:"text-sm font-medium"},"Use custom executable path"),a("p",{class:"text-xs text-muted-foreground"}," Point HeraQ to a specific binary when you need a different version. ")],-1)),s(H,{"model-value":t.value.useCustomPath,disabled:_.disabled,"onUpdate:modelValue":w[1]||(w[1]=$=>f(!!$))},null,8,["model-value","disabled"])])):(d(),P("p",es," No executable was detected automatically. Enter the full path to the driver you want to run. ")),e(u)?(d(),P("div",ts,[a("div",os,[s(D,{class:"text-xs font-medium text-muted-foreground"},{default:i(()=>w[6]||(w[6]=[k(" Tool ")])),_:1}),s(C,{"model-value":t.value.customTool||_.toolChoices[0],disabled:_.disabled,size:"sm","onUpdate:modelValue":w[2]||(w[2]=$=>r(String($)))},{default:i(()=>[s(B,null,{default:i(()=>[s(T,{placeholder:"Choose a tool"})]),_:1}),s(q,null,{default:i(()=>[(d(!0),P(Q,null,X(_.toolChoices,$=>(d(),E(R,{key:$,value:$},{default:i(()=>[k(h($),1)]),_:2},1032,["value"]))),128))]),_:1})]),_:1},8,["model-value","disabled"])]),a("div",ss,[s(D,{class:"text-xs font-medium text-muted-foreground"},{default:i(()=>w[7]||(w[7]=[k(" Executable Path ")])),_:1}),s(S,{modelValue:t.value.customPath,"onUpdate:modelValue":w[3]||(w[3]=$=>t.value.customPath=$),disabled:_.disabled,placeholder:e(y),class:"h-8!",autocomplete:"off",spellcheck:"false"},null,8,["modelValue","disabled","placeholder"]),w[8]||(w[8]=a("p",{class:"text-xs text-muted-foreground"}," Enter the absolute path to the binary you want HeraQ to execute. ",-1))])])):F("",!0)])}}}),as={class:"space-y-3 py-1"},xe="restore backup",ns=G({__name:"RestoreConfirmDialog",props:{open:{type:Boolean}},emits:["confirm","cancel"],setup(p,{emit:l}){const t=p,o=l,u=I("");Z(()=>t.open,b=>{b&&(u.value="")});const m=g(()=>u.value===xe),y=()=>{m.value&&o("confirm")};return(b,r)=>{const f=se,x=Nt,_=Mt,w=Ot,D=ee,v=Ye,T=ae,B=jt,R=Ht,q=Vt;return d(),E(q,{open:b.open,"onUpdate:open":r[2]||(r[2]=C=>!C&&b.$emit("cancel"))},{default:i(()=>[s(R,{class:"max-w-sm"},{default:i(()=>[s(w,null,{default:i(()=>[s(x,{class:"flex items-center gap-2 text-destructive"},{default:i(()=>[s(f,{name:"hugeicons:alert-02",class:"size-5"}),r[3]||(r[3]=k(" Confirm Restore "))]),_:1}),s(_,null,{default:i(()=>r[4]||(r[4]=[k(" This will overwrite existing data in the target database. This action cannot be undone. ")])),_:1})]),_:1}),a("div",as,[s(D,{for:"restore-confirm-input"},{default:i(()=>[r[5]||(r[5]=k(" Type ")),a("code",{class:"rounded bg-muted px-1 py-0.5 text-xs font-mono"},h(xe)),r[6]||(r[6]=k(" to continue: "))]),_:1}),s(v,{id:"restore-confirm-input",modelValue:e(u),"onUpdate:modelValue":r[0]||(r[0]=C=>oe(u)?u.value=C:null),placeholder:xe,autocomplete:"off",onKeydown:Ut(y,["enter"])},null,8,["modelValue"])]),s(B,null,{default:i(()=>[s(T,{variant:"outline",onClick:r[1]||(r[1]=C=>b.$emit("cancel"))},{default:i(()=>r[7]||(r[7]=[k("Cancel")])),_:1}),s(T,{variant:"destructive",disabled:!e(m),onClick:y},{default:i(()=>r[8]||(r[8]=[k(" Restore ")])),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["open"])}}}),ls={class:"rounded-lg border bg-muted/30 p-4"},rs={class:"flex items-center justify-between gap-4"},is={class:"text-sm font-medium"},us={class:"text-xs text-muted-foreground"},cs={class:"flex shrink-0 items-center gap-2"},ds={class:"text-sm font-medium"},ms={class:"mt-3 h-2 overflow-hidden rounded-full bg-border/60"},Oe=G({__name:"TransferProgressCard",props:{tool:{},stage:{},statusMessage:{},progress:{},isRunning:{type:Boolean},progressClass:{default:"bg-primary"},actionLabel:{default:void 0},actionDisabled:{type:Boolean,default:!1}},emits:["action"],setup(p,{emit:l}){const t=l;return(o,u)=>{const m=se,y=ae;return d(),P("div",ls,[a("div",rs,[a("div",null,[a("p",is,h(o.tool)+" · "+h(o.stage),1),a("p",us,h(o.statusMessage||"Preparing job..."),1)]),a("div",cs,[o.actionLabel?(d(),E(y,{key:0,type:"button",variant:"outline",size:"sm",disabled:o.actionDisabled,onClick:u[0]||(u[0]=b=>t("action"))},{default:i(()=>[s(m,{name:"lucide:folder-open",class:"size-4 mr-2"}),k(" "+h(o.actionLabel),1)]),_:1},8,["disabled"])):F("",!0),a("span",ds,h(o.progress)+"%",1)])]),a("div",ms,[a("div",{class:me(["h-full rounded-full transition-all duration-300",o.progressClass]),style:Jt({width:`${Math.max(o.progress,o.isRunning?8:0)}%`})},null,6)])])}}});function Ne(p){return!!(p&&(p.status==="completed"||p.status==="error"))}const nt=()=>{const p=I(null),l=I(null),t=I(null),o=I(!1);let u=null,m=null;const y=v=>{u==null||u(v),u=null,m=null},b=v=>{m==null||m(v),u=null,m=null},r=async()=>{if(!t.value)throw new Error("Backup job status URL is missing.");if(o.value){if(p.value)return p.value;throw new Error("Backup job refresh is already in progress.")}o.value=!0;try{const v=await $fetch(t.value);return p.value=v,v.status==="error"&&(l.value=v.error||v.message),Ne(v)&&(f(),y(v)),v}catch(v){const T=v instanceof Error?v:new Error("Failed to refresh backup job status.");throw l.value=T.message,f(),b(T),T}finally{o.value=!1}},{pause:f,resume:x,isActive:_}=Wt(()=>{r()},1e3,{immediate:!1,immediateCallback:!1}),w=async v=>{t.value=v,l.value=null;const T=await r();return Ne(T)?T:(x(),await new Promise((B,R)=>{u=B,m=R}))},D=()=>{f(),t.value=null,p.value=null,l.value=null,o.value=!1,u=null,m=null};return Qt(()=>{f()}),{job:p,error:l,isRefreshing:o,isPolling:_,progress:g(()=>{var v;return((v=p.value)==null?void 0:v.progress)??0}),message:g(()=>{var v;return((v=p.value)==null?void 0:v.message)??null}),stage:g(()=>{var v;return((v=p.value)==null?void 0:v.stage)??"queued"}),status:g(()=>{var v;return((v=p.value)==null?void 0:v.status)??"queued"}),isRunning:g(()=>{var v,T;return((v=p.value)==null?void 0:v.status)==="queued"||((T=p.value)==null?void 0:T.status)==="running"}),monitorJob:w,refresh:r,reset:D}},ps=p=>(p||"database").trim().replace(/[\\/:*?"<>|]+/g,"-").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")||"database",fs=()=>new Date().toISOString().replace(/[:.]/g,"-"),vs=(p,l)=>`${p.replace(/[\\/]$/,"")}/${l}`,Me=p=>!Number.isFinite(p)||p<=0?"0.0s":`${(p/1e3).toFixed(1)}s`,gs=(p,l)=>{const t=I(null),o=I(null),u=nt(),{downloadStream:m,isDownloading:y,downloadedBytes:b}=no(),r=g(()=>u.isRunning.value||y.value),f=g(()=>o.value||y.value?100:u.progress.value),x=g(()=>o.value?`Backup is ready. ${ye(o.value.size)} generated in ${Me(o.value.duration)}.`:y.value?`Saving backup artifact (${ye(b.value)})...`:u.message.value),_=g(()=>u.job.value),w=async(T,B)=>{var H,S,$,M,A,W;if(!p.value)return t.value="No database connection provided",!1;const{options:R,runtime:q,promptForSaveLocation:C}=B;if(l!=null&&l.value&&!l.value.exportAvailable&&!((H=q==null?void 0:q.executablePath)!=null&&H.trim()))return t.value=l.value.exportMessage,!1;t.value=null,o.value=null;try{let L=((S=B.saveDirectoryPath)==null?void 0:S.trim())||void 0,V=(($=B.saveFilePath)==null?void 0:$.trim())||void 0;const K=`${ps(T)}_backup_${fs()}${D((M=p.value)==null?void 0:M.type,R.format)}`;if(!L&&!V&&C&&((A=window.electronAPI)!=null&&A.window.pickDirectory)){const z=await window.electronAPI.window.pickDirectory();if(!z)return t.value="No save location was selected.",!1;L=z}!V&&L&&(V=vs(L,K));const J=await $fetch("/api/database-export/export-database",{method:"POST",body:{...Ze(p.value),databaseName:T,options:R,runtime:q}}),j=await u.monitorJob(J.statusUrl);if(j.status==="error")return t.value=j.error||j.message,!1;if(!j.downloadUrl||!j.downloadFileName)return t.value="Export finished but no download artifact was returned.",!1;const te=await m({url:j.downloadUrl,method:"GET",filename:V?K:j.downloadFileName||K,saveFilePath:V,openPath:L,successTitle:"Backup is ready",getSuccessDescription:z=>`${ye(z)} generated in ${Me(j.duration||0)}.`});return te.success?(o.value={fileName:V?K:j.downloadFileName,duration:j.duration||0,size:te.size||0,saveDirectoryPath:L,saveFilePath:V},!0):(t.value=((W=te.error)==null?void 0:W.message)||"Download failed.",!1)}catch(L){return t.value=L instanceof Error?L.message:"Export failed. Check the connection and backup configuration.",console.error("Export error:",L),!1}},D=(T,B)=>so(T,B);return{isExporting:r,progress:f,error:t,lastExport:o,currentJob:_,statusMessage:x,exportDatabase:w,reset:()=>{u.reset(),t.value=null,o.value=null}}},_s=(p,l)=>{const t=nt(),o=g(()=>t.isRunning.value),u=g(()=>t.progress.value),m=g(()=>t.message.value),y=g(()=>t.job.value),b=I(null),r=I(null),f=I(null),x=I(null),_=I({clean:!1,dataOnly:!1,schemaOnly:!1,exitOnError:!0}),w=g(()=>{var S;return(S=p.value)==null?void 0:S.type}),D=g(()=>{var S;return((S=l.value)==null?void 0:S.formatOptions)||[]}),v=g(()=>at(w.value)),T=g(()=>{var S;return((S=l.value)==null?void 0:S.acceptExtensions)||D.value.map($=>$.extension).join(" / ")||".sql"}),B=()=>{f.value=null,x.value&&(x.value.value="")};return{isImporting:o,progress:u,statusMessage:m,currentJob:y,error:b,success:r,selectedFile:f,fileInputRef:x,options:_,extensionSummary:T,clearSelectedFile:B,openFilePicker:()=>{var S;(S=x.value)==null||S.click()},onFileSelect:S=>{var W;const $=S.target;if(!((W=$.files)!=null&&W.length))return;const M=$.files[0];if(!D.value.some(L=>M.name.toLowerCase().endsWith(L.extension.toLowerCase()))){B(),b.value=`Unsupported file type. Use ${T.value} for ${v.value}.`,r.value=null;return}f.value=M,b.value=null,r.value=null},importDatabase:async S=>{var $,M;if(!(!f.value||!p.value)){if(l.value&&!l.value.importAvailable&&!(($=S==null?void 0:S.executablePath)!=null&&$.trim())){b.value=l.value.importMessage,r.value=null;return}b.value=null,r.value=null;try{const A=new FormData;A.append("file",f.value);const W=Ze(p.value);Object.entries(W).forEach(([K,J])=>{J!==void 0&&A.append(K,typeof J=="object"?JSON.stringify(J):String(J))}),A.append("options",JSON.stringify(_.value)),(M=S==null?void 0:S.executablePath)!=null&&M.trim()&&A.append("runtime",JSON.stringify(S));const L=await $fetch("/api/database-import/import-database",{method:"POST",body:A}),V=await t.monitorJob(L.statusUrl);if(V.status==="completed"){r.value=V.message||"Database imported successfully",B();return}b.value=V.error||V.message||"Import failed"}catch(A){b.value=A instanceof Error?A.message:"Import failed. Check the backup file and connection compatibility.",console.error("Import error:",A)}}},reset:()=>{t.reset(),b.value=null,r.value=null,B()}}},bs=p=>{const l=I(null),t=I(!1),o=I(null);let u=0;const m=async()=>{const y=p.value,b=++u;if(!y){l.value=null,o.value=null,t.value=!1;return}t.value=!0,o.value=null;try{const r=await $fetch("/api/database-backup/capability",{query:{type:y,discoverAll:et()}});if(b!==u)return;l.value=r}catch(r){if(b!==u)return;l.value=null,o.value=r instanceof Error?r.message:"Unable to detect native backup tools."}finally{b===u&&(t.value=!1)}};return Z(p,()=>{m()},{immediate:!0}),{capability:l,isLoading:t,error:o,refresh:m}};function Ue(){return{useCustomPath:!1,selectedPath:"",customPath:"",customTool:""}}const je=(p,l,t)=>{const o=I(Ue()),u=g(()=>{const r=new Set(l.value);return p.value.filter(f=>r.size===0||r.has(f.tool))}),m=g(()=>u.value.find(r=>r.path===o.value.selectedPath)||null);Z([u,l,t],([r,f,x])=>{var _;if(!x){o.value=Ue();return}if(f.includes(o.value.customTool)||(o.value.customTool=f[0]||""),r.some(w=>w.path===o.value.selectedPath)||(o.value.selectedPath=((_=r[0])==null?void 0:_.path)||""),!r.length){o.value.useCustomPath=!0;return}o.value.useCustomPath&&!o.value.customPath.trim()&&(o.value.useCustomPath=!1)},{immediate:!0});const y=g(()=>{if(t.value){if(o.value.useCustomPath){const r=o.value.customPath.trim(),f=o.value.customTool;return!r||!f?void 0:{tool:f,executablePath:r}}if(m.value)return{tool:m.value.tool,executablePath:m.value.path}}}),b=g(()=>!t.value||!!y.value);return{selection:o,filteredToolPaths:u,runtimeSelection:y,canSubmit:b}},hs={class:"flex flex-col h-full gap-3 overflow-hidden p-3"},ys={class:"font-medium text-foreground"},xs={class:"text-muted-foreground/60"},ks={class:"flex items-center justify-between gap-2"},ws={class:"text-xs text-muted-foreground"},$s={class:"relative flex-1 overflow-y-auto rounded-lg border bg-background p-4"},Cs={class:"space-y-4"},Ss={class:"flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between"},Ps={class:"mt-1 text-sm text-muted-foreground"},Ts={class:"grid gap-4 xl:grid-cols-[minmax(0,1fr)_280px]"},Ds={class:"rounded-lg border p-4 space-y-4"},Bs={class:"space-y-4"},Es={class:"flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between"},Is={class:"mt-1 text-sm text-muted-foreground"},Fs={class:"grid gap-4 xl:grid-cols-[minmax(0,1fr)_280px]"},Rs={class:"rounded-lg border p-4 space-y-4"},Ls={class:"text-muted-foreground text-xs inline-flex items-center gap-0.5"},qs={class:"text-destructive gap-0.5 items-center inline-flex"},Hs=G({__name:"BackupRestoreContainer",props:{connectionId:{},initialTab:{}},setup(p){const l=p,{workspaceId:t}=Gt(),o=Kt(),u=Xt(),m=g(()=>{if(l.connectionId)return o.connections.find(n=>n.id===l.connectionId)}),y=g(()=>{var n;return(n=m.value)==null?void 0:n.type}),b=g(()=>{var n,c;return((n=m.value)==null?void 0:n.database)||((c=m.value)==null?void 0:c.name)||"database"}),r=g(()=>at(y.value)),{capability:f,isLoading:x,error:_,refresh:w}=bs(y),D=I(!1),v=g(()=>et()),T=async()=>{D.value=!0;try{await w()}finally{D.value=!1}},B=g(()=>{var n;return((n=f.value)==null?void 0:n.supported)??!1}),R=g(()=>{var n;return((n=f.value)==null?void 0:n.exportAvailable)??!1}),q=g(()=>{var n;return((n=f.value)==null?void 0:n.importAvailable)??!1}),C=g(()=>B.value&&(R.value||v.value)),H=g(()=>B.value&&(q.value||v.value)),S=g(()=>_.value?_.value:f.value?f.value.supportMessage:y.value?`Checking ${r.value} native tools...`:"Select a connection to open database tools."),$=g(()=>{var n;return((n=f.value)==null?void 0:n.toolHint)||"Native database tools"}),M=g(()=>{var n;return((n=f.value)==null?void 0:n.formatOptions)||[]}),A=g(()=>{var n;return((n=f.value)==null?void 0:n.acceptExtensions)||".sql"}),W=g(()=>M.value.map(n=>n.extension).join(" / ")||".sql"),L=g(()=>{var n,c;return x.value||!B.value||R.value&&q.value?null:[R.value?null:(n=f.value)==null?void 0:n.exportMessage,q.value?null:(c=f.value)==null?void 0:c.importMessage].filter(Boolean).join(" ")}),V=g(()=>{var c;if(!l.connectionId)return[];const n=t.value||((c=m.value)==null?void 0:c.workspaceId);return(u.schemas[l.connectionId]||[]).filter(U=>U.connectionId===l.connectionId&&(!n||U.workspaceId===n)).map(U=>U.name)}),K=g(()=>u.loading[l.connectionId]||!1),J=I(null),j=async()=>{const n=m.value,c=t.value||(n==null?void 0:n.workspaceId);if(!l.connectionId||!c||!n)return;if((u.schemas[l.connectionId]||[]).some(O=>O.connectionId===l.connectionId&&O.workspaceId===c)){J.value=null;return}try{J.value=null,await u.fetchSchemas({connectionId:l.connectionId,workspaceId:c,connection:n})}catch(O){J.value=O instanceof Error?O.message:"Failed to load schemas."}};Z([m,()=>t.value],()=>{j()},{immediate:!0});const te=[{id:"export",tabLabel:"Create Backup",subtitle:"Generate native backup artifacts for the current connection.",icon:"hugeicons:download-01"},{id:"import",tabLabel:"Restore Backup",subtitle:"Apply a native backup artifact back into this connection.",icon:"hugeicons:upload-01"}],z=I(l.initialTab),lt=g(()=>te.find(n=>n.id===z.value));Z(()=>l.initialTab,n=>{z.value=n}),Z([z,C,H],([n,c,U])=>{if(n==="export"&&!c&&U){z.value="import";return}n==="import"&&!U&&c&&(z.value="export")},{immediate:!0});const rt=n=>{z.value=n},{isExporting:ne,progress:it,error:ke,lastExport:we,currentJob:pe,statusMessage:ut,exportDatabase:ct,reset:dt}=gs(m,f),$e=(n=[],c=[])=>[...new Set([...n,...c])],Ce=g(()=>{var n,c;return $e(((n=f.value)==null?void 0:n.availableExportTools)||[],((c=f.value)==null?void 0:c.missingExportTools)||[])}),mt=g(()=>{var n;return((n=f.value)==null?void 0:n.availableExportToolPaths)||[]}),{selection:fe,filteredToolPaths:pt,runtimeSelection:ft,canSubmit:vt}=je(mt,Ce,v),gt=async()=>{var c,U;const n=(c=we.value)==null?void 0:c.saveDirectoryPath;!n||!((U=window.electronAPI)!=null&&U.window.openPath)||await window.electronAPI.window.openPath(n)},_t=async n=>{await ct(b.value,{options:n,runtime:ft.value,promptForSaveLocation:v.value,saveDirectoryPath:void 0})},{isImporting:Y,progress:bt,statusMessage:ht,currentJob:ve,error:Se,success:Pe,selectedFile:ue,options:ge,extensionSummary:yt,onFileSelect:xt,clearSelectedFile:kt,importDatabase:wt,reset:$t}=_s(m,f),Ct=g(()=>{var n,c;return $e(((n=f.value)==null?void 0:n.availableImportTools)||[],((c=f.value)==null?void 0:c.missingImportTools)||[])}),_e=g(()=>{var n;return y.value!==Yt.POSTGRES||!((n=ue.value)!=null&&n.name)?Ct.value:[ue.value.name.toLowerCase().endsWith(".dump")?"pg_restore":"psql"]}),St=g(()=>{var n;return(((n=f.value)==null?void 0:n.availableImportToolPaths)||[]).filter(c=>_e.value.includes(c.tool))}),{selection:be,filteredToolPaths:Pt,runtimeSelection:Tt,canSubmit:Dt}=je(St,_e,v),ce=I(!1),Bt=()=>{ce.value=!0},Et=async()=>{ce.value=!1,await wt(Tt.value)},It=()=>{ce.value=!1};return(n,c)=>{var Te,De,Be,Ee,Ie,Fe,Re;const U=qt,O=se,Ft=oo,Rt=to,Lt=eo,le=st,re=ot,ie=tt,he=ae;return d(),P("div",hs,[s(ns,{open:e(ce),onConfirm:Et,onCancel:It},null,8,["open"]),s(U,{icon:"hugeicons:database-import",title:"Backup & Restore"},{context:i(()=>[a("span",ys,h(e(b)),1),a("span",xs,"· "+h(e(r)),1)]),_:1}),a("div",ks,[s(Lt,{modelValue:e(z),"onUpdate:modelValue":c[0]||(c[0]=N=>oe(z)?z.value=N:null),class:"min-w-0 flex-1 gap-0"},{default:i(()=>[s(Rt,{size:"sm",class:"max-w-full justify-start! overflow-x-auto"},{default:i(()=>[(d(),P(Q,null,X(te,N=>s(Ft,{size:"xs",key:N.id,value:N.id,class:"min-w-fit shrink-0 cursor-pointer rounded-sm",disabled:e(x)||(N.id==="export"?!e(C):!e(H)),onClick:zs=>rt(N.id)},{default:i(()=>[s(O,{name:N.icon,class:"shrink-0 size-3.5"},null,8,["name"]),k(" "+h(N.tabLabel),1)]),_:2},1032,["value","disabled","onClick"])),64))]),_:1})]),_:1},8,["modelValue"]),a("div",ws,h((Te=e(lt))==null?void 0:Te.subtitle),1)]),a("div",$s,[e(x)&&!e(D)?(d(),E(Zt,{key:0,visible:""})):F("",!0),(!e(x)||e(D))&&e(_)?(d(),E(ie,{key:1,variant:"destructive"},{default:i(()=>[s(O,{name:"hugeicons:alert-circle",class:"size-4"}),s(le,null,{default:i(()=>c[4]||(c[4]=[k("Capability Check Failed")])),_:1}),s(re,null,{default:i(()=>[k(h(e(S)),1)]),_:1})]),_:1})):(!e(x)||e(D))&&!e(B)?(d(),E(xo,{key:2,"support-message":e(S),"connection-type":e(y),"is-loading":e(D),onReload:T},null,8,["support-message","connection-type","is-loading"])):!e(x)&&!e(D)?(d(),P(Q,{key:3},[e(L)?(d(),E(ie,{key:0},{default:i(()=>[s(O,{name:"hugeicons:alert-circle",class:"size-4"}),s(le,null,{default:i(()=>c[5]||(c[5]=[k("Partial Native Tool Support")])),_:1}),s(re,null,{default:i(()=>[k(h(e(L)),1)]),_:1})]),_:1})):F("",!0),Le(a("div",Cs,[a("div",Ss,[a("div",null,[c[6]||(c[6]=a("h3",{class:"text-base font-medium"},"Create Backup",-1)),a("p",Ps," Export "+h(e(b))+" using "+h(e($))+". ",1)])]),e(ke)?(d(),E(ie,{key:0,variant:"destructive"},{default:i(()=>[s(O,{name:"hugeicons:alert-circle",class:"size-4"}),s(le,null,{default:i(()=>c[7]||(c[7]=[k("Backup Failed")])),_:1}),s(re,null,{default:i(()=>[k(h(e(ke)),1)]),_:1}),s(he,{size:"sm",variant:"outline",class:"mt-2",onClick:e(dt)},{default:i(()=>c[8]||(c[8]=[k(" Try Again ")])),_:1},8,["onClick"])]),_:1})):F("",!0),e(ne)||e(pe)?(d(),E(Oe,{key:1,tool:((De=e(pe))==null?void 0:De.tool)||e($),stage:((Be=e(pe))==null?void 0:Be.stage)||"queued","status-message":e(ut)||"",progress:e(it),"is-running":e(ne),"action-label":(Ee=e(we))!=null&&Ee.saveDirectoryPath&&!e(ne)?"Open":void 0,onAction:gt},null,8,["tool","stage","status-message","progress","is-running","action-label"])):F("",!0),a("div",Ts,[a("div",Ds,[e(v)?(d(),E(Ve,{key:0,modelValue:e(fe),"onUpdate:modelValue":c[1]||(c[1]=N=>oe(fe)?fe.value=N:null),title:"Backup Driver",description:"Choose the exact executable OrcaQ should run for this backup job.","detected-paths":e(pt),"tool-choices":e(Ce),disabled:e(ne)},null,8,["modelValue","detected-paths","tool-choices","disabled"])):F("",!0),s(Lo,{schemas:e(V),"schema-loading":e(K),"schema-error":e(J),loading:e(ne),disabled:e(v)&&!e(vt),"format-options":e(M),"default-format":(Ie=e(f))==null?void 0:Ie.defaultExportFormat,"tool-hint":e($),onSubmit:_t},null,8,["schemas","schema-loading","schema-error","loading","disabled","format-options","default-format","tool-hint"])]),s(ze,{title:"Backup Profile",description:"Exports run on the local runtime host and stream the artifact directly into a downloadable file.",formats:e(M),"tool-hint":e($),"target-name":e(b),"formats-label":"Supported Files"},null,8,["formats","tool-hint","target-name"])])],512),[[qe,e(z)==="export"]]),Le(a("div",Bs,[a("div",Es,[a("div",null,[c[9]||(c[9]=a("h3",{class:"text-base font-medium"},"Restore Backup",-1)),a("p",Is," Restore a "+h(e(W))+" backup into "+h(e(b))+". ",1)])]),e(Se)?(d(),E(ie,{key:0,variant:"destructive"},{default:i(()=>[s(O,{name:"hugeicons:alert-circle",class:"size-4"}),s(le,null,{default:i(()=>c[10]||(c[10]=[k("Import Failed")])),_:1}),s(re,null,{default:i(()=>[k(h(e(Se)),1)]),_:1}),s(he,{size:"sm",variant:"outline",class:"mt-2",onClick:e($t)},{default:i(()=>c[11]||(c[11]=[k(" Try Again ")])),_:1},8,["onClick"])]),_:1})):F("",!0),e(Pe)?(d(),E(ie,{key:1},{default:i(()=>[s(O,{name:"hugeicons:checkmark-circle-02",class:"size-4 text-green-500"}),s(le,null,{default:i(()=>c[12]||(c[12]=[k("Import Complete")])),_:1}),s(re,null,{default:i(()=>[k(h(e(Pe)),1)]),_:1})]),_:1})):F("",!0),e(Y)||e(ve)?(d(),E(Oe,{key:2,tool:((Fe=e(ve))==null?void 0:Fe.tool)||e($),stage:((Re=e(ve))==null?void 0:Re.stage)||"queued","status-message":e(ht)||"",progress:e(bt),"is-running":e(Y),"progress-class":"bg-emerald-500"},null,8,["tool","stage","status-message","progress","is-running"])):F("",!0),a("div",Fs,[a("div",Rs,[s(jo,{"selected-file":e(ue),accept:e(A),"extension-summary":e(yt),onChange:e(xt),onClear:e(kt)},null,8,["selected-file","accept","extension-summary","onChange","onClear"]),e(v)?(d(),E(Ve,{key:0,modelValue:e(be),"onUpdate:modelValue":c[2]||(c[2]=N=>oe(be)?be.value=N:null),title:"Restore Driver",description:"Choose the executable HeraQ should use to restore this backup artifact.","detected-paths":e(Pt),"tool-choices":e(_e),disabled:e(Y)},null,8,["modelValue","detected-paths","tool-choices","disabled"])):F("",!0),s(Wo,{modelValue:e(ge),"onUpdate:modelValue":c[3]||(c[3]=N=>oe(ge)?ge.value=N:null)},null,8,["modelValue"]),s(he,{class:"w-full",disabled:!e(ue)||e(Y)||e(v)&&!e(Dt),onClick:Bt},{default:i(()=>[s(O,{name:e(Y)?"hugeicons:loading-03":"hugeicons:upload-01",class:me(["size-4 mr-2",e(Y)&&"animate-spin"])},null,8,["name","class"]),k(" "+h(e(Y)?"Restoring...":"Restore Backup"),1)]),_:1},8,["disabled"]),a("p",Ls,[a("polyline",qs,[s(O,{name:"hugeicons:alert-circle",class:"size-4 text-destructive"}),c[13]||(c[13]=k(" Warning: "))]),c[14]||(c[14]=k(" Importing a database can overwrite existing data. Make sure you have a backup before proceeding. "))])]),s(ze,{title:"Restore Profile",description:"Use a backup file produced for the same database family and runtime toolchain.",formats:e(M),"tool-hint":e($),"target-name":e(b),"formats-label":"Accepted Files"},null,8,["formats","tool-hint","target-name"])])],512),[[qe,e(z)==="import"]])],64)):F("",!0)])])}}});export{Hs as _};
@@ -1,4 +1,4 @@
1
- import{_ as o,s as _e,g as Ae,t as ie,q as ke,a as Fe,b as Pe,c as wt,l as At,d as zt,e as ve,A as Ce,I as D,a1 as Le,i as Ee}from"./DSOwr8Hs.js";import{l as ee}from"./CRDIOG8r.js";import"./D7uoAo-G.js";import"./Gi6I4Gst.js";import"./DX6XiGOO.js";var Vt=function(){var t=o(function(j,r,l,g){for(l=l||{},g=j.length;g--;l[j[g]]=r);return l},"o"),n=[1,3],u=[1,4],c=[1,5],h=[1,6],p=[1,7],y=[1,4,5,10,12,13,14,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],S=[1,4,5,10,12,13,14,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],a=[55,56,57],A=[2,36],d=[1,37],T=[1,36],q=[1,38],m=[1,35],b=[1,43],x=[1,41],O=[1,14],Y=[1,23],G=[1,18],yt=[1,19],Tt=[1,20],dt=[1,21],Ft=[1,22],ut=[1,24],xt=[1,25],ft=[1,26],gt=[1,27],i=[1,28],Bt=[1,29],W=[1,32],U=[1,33],k=[1,34],F=[1,39],P=[1,40],v=[1,42],C=[1,44],H=[1,62],X=[1,61],L=[4,5,8,10,12,13,14,18,44,47,49,55,56,57,63,64,65,66,67],Rt=[1,65],Nt=[1,66],Wt=[1,67],Ut=[1,68],Qt=[1,69],Ot=[1,70],Ht=[1,71],Xt=[1,72],Mt=[1,73],Yt=[1,74],jt=[1,75],Gt=[1,76],I=[4,5,6,7,8,9,10,11,12,13,14,15,18],J=[1,90],$=[1,91],tt=[1,92],et=[1,99],it=[1,93],at=[1,96],nt=[1,94],st=[1,95],rt=[1,97],ot=[1,98],Pt=[1,102],Kt=[10,55,56,57],R=[4,5,6,8,10,11,13,17,18,19,20,55,56,57],vt={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,idStringToken:3,ALPHA:4,NUM:5,NODE_STRING:6,DOWN:7,MINUS:8,DEFAULT:9,COMMA:10,COLON:11,AMP:12,BRKT:13,MULT:14,UNICODE_TEXT:15,styleComponent:16,UNIT:17,SPACE:18,STYLE:19,PCT:20,idString:21,style:22,stylesOpt:23,classDefStatement:24,CLASSDEF:25,start:26,eol:27,QUADRANT:28,document:29,line:30,statement:31,axisDetails:32,quadrantDetails:33,points:34,title:35,title_value:36,acc_title:37,acc_title_value:38,acc_descr:39,acc_descr_value:40,acc_descr_multiline_value:41,section:42,text:43,point_start:44,point_x:45,point_y:46,class_name:47,"X-AXIS":48,"AXIS-TEXT-DELIMITER":49,"Y-AXIS":50,QUADRANT_1:51,QUADRANT_2:52,QUADRANT_3:53,QUADRANT_4:54,NEWLINE:55,SEMI:56,EOF:57,alphaNumToken:58,textNoTagsToken:59,STR:60,MD_STR:61,alphaNum:62,PUNCTUATION:63,PLUS:64,EQUALS:65,DOT:66,UNDERSCORE:67,$accept:0,$end:1},terminals_:{2:"error",4:"ALPHA",5:"NUM",6:"NODE_STRING",7:"DOWN",8:"MINUS",9:"DEFAULT",10:"COMMA",11:"COLON",12:"AMP",13:"BRKT",14:"MULT",15:"UNICODE_TEXT",17:"UNIT",18:"SPACE",19:"STYLE",20:"PCT",25:"CLASSDEF",28:"QUADRANT",35:"title",36:"title_value",37:"acc_title",38:"acc_title_value",39:"acc_descr",40:"acc_descr_value",41:"acc_descr_multiline_value",42:"section",44:"point_start",45:"point_x",46:"point_y",47:"class_name",48:"X-AXIS",49:"AXIS-TEXT-DELIMITER",50:"Y-AXIS",51:"QUADRANT_1",52:"QUADRANT_2",53:"QUADRANT_3",54:"QUADRANT_4",55:"NEWLINE",56:"SEMI",57:"EOF",60:"STR",61:"MD_STR",63:"PUNCTUATION",64:"PLUS",65:"EQUALS",66:"DOT",67:"UNDERSCORE"},productions_:[0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[21,1],[21,2],[22,1],[22,2],[23,1],[23,3],[24,5],[26,2],[26,2],[26,2],[29,0],[29,2],[30,2],[31,0],[31,1],[31,2],[31,1],[31,1],[31,1],[31,2],[31,2],[31,2],[31,1],[31,1],[34,4],[34,5],[34,5],[34,6],[32,4],[32,3],[32,2],[32,4],[32,3],[32,2],[33,2],[33,2],[33,2],[33,2],[27,1],[27,1],[27,1],[43,1],[43,2],[43,1],[43,1],[62,1],[62,2],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[59,1]],performAction:o(function(r,l,g,f,_,e,pt){var s=e.length-1;switch(_){case 23:this.$=e[s];break;case 24:this.$=e[s-1]+""+e[s];break;case 26:this.$=e[s-1]+e[s];break;case 27:this.$=[e[s].trim()];break;case 28:e[s-2].push(e[s].trim()),this.$=e[s-2];break;case 29:this.$=e[s-4],f.addClass(e[s-2],e[s]);break;case 37:this.$=[];break;case 42:this.$=e[s].trim(),f.setDiagramTitle(this.$);break;case 43:this.$=e[s].trim(),f.setAccTitle(this.$);break;case 44:case 45:this.$=e[s].trim(),f.setAccDescription(this.$);break;case 46:f.addSection(e[s].substr(8)),this.$=e[s].substr(8);break;case 47:f.addPoint(e[s-3],"",e[s-1],e[s],[]);break;case 48:f.addPoint(e[s-4],e[s-3],e[s-1],e[s],[]);break;case 49:f.addPoint(e[s-4],"",e[s-2],e[s-1],e[s]);break;case 50:f.addPoint(e[s-5],e[s-4],e[s-2],e[s-1],e[s]);break;case 51:f.setXAxisLeftText(e[s-2]),f.setXAxisRightText(e[s]);break;case 52:e[s-1].text+=" ⟶ ",f.setXAxisLeftText(e[s-1]);break;case 53:f.setXAxisLeftText(e[s]);break;case 54:f.setYAxisBottomText(e[s-2]),f.setYAxisTopText(e[s]);break;case 55:e[s-1].text+=" ⟶ ",f.setYAxisBottomText(e[s-1]);break;case 56:f.setYAxisBottomText(e[s]);break;case 57:f.setQuadrant1Text(e[s]);break;case 58:f.setQuadrant2Text(e[s]);break;case 59:f.setQuadrant3Text(e[s]);break;case 60:f.setQuadrant4Text(e[s]);break;case 64:this.$={text:e[s],type:"text"};break;case 65:this.$={text:e[s-1].text+""+e[s],type:e[s-1].type};break;case 66:this.$={text:e[s],type:"text"};break;case 67:this.$={text:e[s],type:"markdown"};break;case 68:this.$=e[s];break;case 69:this.$=e[s-1]+""+e[s];break}},"anonymous"),table:[{18:n,26:1,27:2,28:u,55:c,56:h,57:p},{1:[3]},{18:n,26:8,27:2,28:u,55:c,56:h,57:p},{18:n,26:9,27:2,28:u,55:c,56:h,57:p},t(y,[2,33],{29:10}),t(S,[2,61]),t(S,[2,62]),t(S,[2,63]),{1:[2,30]},{1:[2,31]},t(a,A,{30:11,31:12,24:13,32:15,33:16,34:17,43:30,58:31,1:[2,32],4:d,5:T,10:q,12:m,13:b,14:x,18:O,25:Y,35:G,37:yt,39:Tt,41:dt,42:Ft,48:ut,50:xt,51:ft,52:gt,53:i,54:Bt,60:W,61:U,63:k,64:F,65:P,66:v,67:C}),t(y,[2,34]),{27:45,55:c,56:h,57:p},t(a,[2,37]),t(a,A,{24:13,32:15,33:16,34:17,43:30,58:31,31:46,4:d,5:T,10:q,12:m,13:b,14:x,18:O,25:Y,35:G,37:yt,39:Tt,41:dt,42:Ft,48:ut,50:xt,51:ft,52:gt,53:i,54:Bt,60:W,61:U,63:k,64:F,65:P,66:v,67:C}),t(a,[2,39]),t(a,[2,40]),t(a,[2,41]),{36:[1,47]},{38:[1,48]},{40:[1,49]},t(a,[2,45]),t(a,[2,46]),{18:[1,50]},{4:d,5:T,10:q,12:m,13:b,14:x,43:51,58:31,60:W,61:U,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:x,43:52,58:31,60:W,61:U,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:x,43:53,58:31,60:W,61:U,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:x,43:54,58:31,60:W,61:U,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:x,43:55,58:31,60:W,61:U,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:x,43:56,58:31,60:W,61:U,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,44:[1,57],47:[1,58],58:60,59:59,63:k,64:F,65:P,66:v,67:C},t(L,[2,64]),t(L,[2,66]),t(L,[2,67]),t(L,[2,70]),t(L,[2,71]),t(L,[2,72]),t(L,[2,73]),t(L,[2,74]),t(L,[2,75]),t(L,[2,76]),t(L,[2,77]),t(L,[2,78]),t(L,[2,79]),t(L,[2,80]),t(y,[2,35]),t(a,[2,38]),t(a,[2,42]),t(a,[2,43]),t(a,[2,44]),{3:64,4:Rt,5:Nt,6:Wt,7:Ut,8:Qt,9:Ot,10:Ht,11:Xt,12:Mt,13:Yt,14:jt,15:Gt,21:63},t(a,[2,53],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,49:[1,77],63:k,64:F,65:P,66:v,67:C}),t(a,[2,56],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,49:[1,78],63:k,64:F,65:P,66:v,67:C}),t(a,[2,57],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),t(a,[2,58],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),t(a,[2,59],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),t(a,[2,60],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),{45:[1,79]},{44:[1,80]},t(L,[2,65]),t(L,[2,81]),t(L,[2,82]),t(L,[2,83]),{3:82,4:Rt,5:Nt,6:Wt,7:Ut,8:Qt,9:Ot,10:Ht,11:Xt,12:Mt,13:Yt,14:jt,15:Gt,18:[1,81]},t(I,[2,23]),t(I,[2,1]),t(I,[2,2]),t(I,[2,3]),t(I,[2,4]),t(I,[2,5]),t(I,[2,6]),t(I,[2,7]),t(I,[2,8]),t(I,[2,9]),t(I,[2,10]),t(I,[2,11]),t(I,[2,12]),t(a,[2,52],{58:31,43:83,4:d,5:T,10:q,12:m,13:b,14:x,60:W,61:U,63:k,64:F,65:P,66:v,67:C}),t(a,[2,55],{58:31,43:84,4:d,5:T,10:q,12:m,13:b,14:x,60:W,61:U,63:k,64:F,65:P,66:v,67:C}),{46:[1,85]},{45:[1,86]},{4:J,5:$,6:tt,8:et,11:it,13:at,16:89,17:nt,18:st,19:rt,20:ot,22:88,23:87},t(I,[2,24]),t(a,[2,51],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),t(a,[2,54],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),t(a,[2,47],{22:88,16:89,23:100,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot}),{46:[1,101]},t(a,[2,29],{10:Pt}),t(Kt,[2,27],{16:103,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot}),t(R,[2,25]),t(R,[2,13]),t(R,[2,14]),t(R,[2,15]),t(R,[2,16]),t(R,[2,17]),t(R,[2,18]),t(R,[2,19]),t(R,[2,20]),t(R,[2,21]),t(R,[2,22]),t(a,[2,49],{10:Pt}),t(a,[2,48],{22:88,16:89,23:104,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot}),{4:J,5:$,6:tt,8:et,11:it,13:at,16:89,17:nt,18:st,19:rt,20:ot,22:105},t(R,[2,26]),t(a,[2,50],{10:Pt}),t(Kt,[2,28],{16:103,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot})],defaultActions:{8:[2,30],9:[2,31]},parseError:o(function(r,l){if(l.recoverable)this.trace(r);else{var g=new Error(r);throw g.hash=l,g}},"parseError"),parse:o(function(r){var l=this,g=[0],f=[],_=[null],e=[],pt=this.table,s="",mt=0,Zt=0,qe=2,Jt=1,me=e.slice.call(arguments,1),E=Object.create(this.lexer),K={yy:{}};for(var Ct in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ct)&&(K.yy[Ct]=this.yy[Ct]);E.setInput(r,K.yy),K.yy.lexer=E,K.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var Lt=E.yylloc;e.push(Lt);var be=E.options&&E.options.ranges;typeof K.yy.parseError=="function"?this.parseError=K.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Se(B){g.length=g.length-2*B,_.length=_.length-B,e.length=e.length-B}o(Se,"popStack");function $t(){var B;return B=f.pop()||E.lex()||Jt,typeof B!="number"&&(B instanceof Array&&(f=B,B=f.pop()),B=l.symbols_[B]||B),B}o($t,"lex");for(var w,Z,N,Et,lt={},bt,M,te,St;;){if(Z=g[g.length-1],this.defaultActions[Z]?N=this.defaultActions[Z]:((w===null||typeof w>"u")&&(w=$t()),N=pt[Z]&&pt[Z][w]),typeof N>"u"||!N.length||!N[0]){var Dt="";St=[];for(bt in pt[Z])this.terminals_[bt]&&bt>qe&&St.push("'"+this.terminals_[bt]+"'");E.showPosition?Dt="Parse error on line "+(mt+1)+`:
1
+ import{_ as o,s as _e,g as Ae,t as ie,q as ke,a as Fe,b as Pe,c as wt,l as At,d as zt,e as ve,A as Ce,I as D,a1 as Le,i as Ee}from"./Dzy2Amcc.js";import{l as ee}from"./Ck7gJ0Ru.js";import"./DD6NieRw.js";import"./Gi6I4Gst.js";import"./DX6XiGOO.js";var Vt=function(){var t=o(function(j,r,l,g){for(l=l||{},g=j.length;g--;l[j[g]]=r);return l},"o"),n=[1,3],u=[1,4],c=[1,5],h=[1,6],p=[1,7],y=[1,4,5,10,12,13,14,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],S=[1,4,5,10,12,13,14,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],a=[55,56,57],A=[2,36],d=[1,37],T=[1,36],q=[1,38],m=[1,35],b=[1,43],x=[1,41],O=[1,14],Y=[1,23],G=[1,18],yt=[1,19],Tt=[1,20],dt=[1,21],Ft=[1,22],ut=[1,24],xt=[1,25],ft=[1,26],gt=[1,27],i=[1,28],Bt=[1,29],W=[1,32],U=[1,33],k=[1,34],F=[1,39],P=[1,40],v=[1,42],C=[1,44],H=[1,62],X=[1,61],L=[4,5,8,10,12,13,14,18,44,47,49,55,56,57,63,64,65,66,67],Rt=[1,65],Nt=[1,66],Wt=[1,67],Ut=[1,68],Qt=[1,69],Ot=[1,70],Ht=[1,71],Xt=[1,72],Mt=[1,73],Yt=[1,74],jt=[1,75],Gt=[1,76],I=[4,5,6,7,8,9,10,11,12,13,14,15,18],J=[1,90],$=[1,91],tt=[1,92],et=[1,99],it=[1,93],at=[1,96],nt=[1,94],st=[1,95],rt=[1,97],ot=[1,98],Pt=[1,102],Kt=[10,55,56,57],R=[4,5,6,8,10,11,13,17,18,19,20,55,56,57],vt={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,idStringToken:3,ALPHA:4,NUM:5,NODE_STRING:6,DOWN:7,MINUS:8,DEFAULT:9,COMMA:10,COLON:11,AMP:12,BRKT:13,MULT:14,UNICODE_TEXT:15,styleComponent:16,UNIT:17,SPACE:18,STYLE:19,PCT:20,idString:21,style:22,stylesOpt:23,classDefStatement:24,CLASSDEF:25,start:26,eol:27,QUADRANT:28,document:29,line:30,statement:31,axisDetails:32,quadrantDetails:33,points:34,title:35,title_value:36,acc_title:37,acc_title_value:38,acc_descr:39,acc_descr_value:40,acc_descr_multiline_value:41,section:42,text:43,point_start:44,point_x:45,point_y:46,class_name:47,"X-AXIS":48,"AXIS-TEXT-DELIMITER":49,"Y-AXIS":50,QUADRANT_1:51,QUADRANT_2:52,QUADRANT_3:53,QUADRANT_4:54,NEWLINE:55,SEMI:56,EOF:57,alphaNumToken:58,textNoTagsToken:59,STR:60,MD_STR:61,alphaNum:62,PUNCTUATION:63,PLUS:64,EQUALS:65,DOT:66,UNDERSCORE:67,$accept:0,$end:1},terminals_:{2:"error",4:"ALPHA",5:"NUM",6:"NODE_STRING",7:"DOWN",8:"MINUS",9:"DEFAULT",10:"COMMA",11:"COLON",12:"AMP",13:"BRKT",14:"MULT",15:"UNICODE_TEXT",17:"UNIT",18:"SPACE",19:"STYLE",20:"PCT",25:"CLASSDEF",28:"QUADRANT",35:"title",36:"title_value",37:"acc_title",38:"acc_title_value",39:"acc_descr",40:"acc_descr_value",41:"acc_descr_multiline_value",42:"section",44:"point_start",45:"point_x",46:"point_y",47:"class_name",48:"X-AXIS",49:"AXIS-TEXT-DELIMITER",50:"Y-AXIS",51:"QUADRANT_1",52:"QUADRANT_2",53:"QUADRANT_3",54:"QUADRANT_4",55:"NEWLINE",56:"SEMI",57:"EOF",60:"STR",61:"MD_STR",63:"PUNCTUATION",64:"PLUS",65:"EQUALS",66:"DOT",67:"UNDERSCORE"},productions_:[0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[21,1],[21,2],[22,1],[22,2],[23,1],[23,3],[24,5],[26,2],[26,2],[26,2],[29,0],[29,2],[30,2],[31,0],[31,1],[31,2],[31,1],[31,1],[31,1],[31,2],[31,2],[31,2],[31,1],[31,1],[34,4],[34,5],[34,5],[34,6],[32,4],[32,3],[32,2],[32,4],[32,3],[32,2],[33,2],[33,2],[33,2],[33,2],[27,1],[27,1],[27,1],[43,1],[43,2],[43,1],[43,1],[62,1],[62,2],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[59,1]],performAction:o(function(r,l,g,f,_,e,pt){var s=e.length-1;switch(_){case 23:this.$=e[s];break;case 24:this.$=e[s-1]+""+e[s];break;case 26:this.$=e[s-1]+e[s];break;case 27:this.$=[e[s].trim()];break;case 28:e[s-2].push(e[s].trim()),this.$=e[s-2];break;case 29:this.$=e[s-4],f.addClass(e[s-2],e[s]);break;case 37:this.$=[];break;case 42:this.$=e[s].trim(),f.setDiagramTitle(this.$);break;case 43:this.$=e[s].trim(),f.setAccTitle(this.$);break;case 44:case 45:this.$=e[s].trim(),f.setAccDescription(this.$);break;case 46:f.addSection(e[s].substr(8)),this.$=e[s].substr(8);break;case 47:f.addPoint(e[s-3],"",e[s-1],e[s],[]);break;case 48:f.addPoint(e[s-4],e[s-3],e[s-1],e[s],[]);break;case 49:f.addPoint(e[s-4],"",e[s-2],e[s-1],e[s]);break;case 50:f.addPoint(e[s-5],e[s-4],e[s-2],e[s-1],e[s]);break;case 51:f.setXAxisLeftText(e[s-2]),f.setXAxisRightText(e[s]);break;case 52:e[s-1].text+=" ⟶ ",f.setXAxisLeftText(e[s-1]);break;case 53:f.setXAxisLeftText(e[s]);break;case 54:f.setYAxisBottomText(e[s-2]),f.setYAxisTopText(e[s]);break;case 55:e[s-1].text+=" ⟶ ",f.setYAxisBottomText(e[s-1]);break;case 56:f.setYAxisBottomText(e[s]);break;case 57:f.setQuadrant1Text(e[s]);break;case 58:f.setQuadrant2Text(e[s]);break;case 59:f.setQuadrant3Text(e[s]);break;case 60:f.setQuadrant4Text(e[s]);break;case 64:this.$={text:e[s],type:"text"};break;case 65:this.$={text:e[s-1].text+""+e[s],type:e[s-1].type};break;case 66:this.$={text:e[s],type:"text"};break;case 67:this.$={text:e[s],type:"markdown"};break;case 68:this.$=e[s];break;case 69:this.$=e[s-1]+""+e[s];break}},"anonymous"),table:[{18:n,26:1,27:2,28:u,55:c,56:h,57:p},{1:[3]},{18:n,26:8,27:2,28:u,55:c,56:h,57:p},{18:n,26:9,27:2,28:u,55:c,56:h,57:p},t(y,[2,33],{29:10}),t(S,[2,61]),t(S,[2,62]),t(S,[2,63]),{1:[2,30]},{1:[2,31]},t(a,A,{30:11,31:12,24:13,32:15,33:16,34:17,43:30,58:31,1:[2,32],4:d,5:T,10:q,12:m,13:b,14:x,18:O,25:Y,35:G,37:yt,39:Tt,41:dt,42:Ft,48:ut,50:xt,51:ft,52:gt,53:i,54:Bt,60:W,61:U,63:k,64:F,65:P,66:v,67:C}),t(y,[2,34]),{27:45,55:c,56:h,57:p},t(a,[2,37]),t(a,A,{24:13,32:15,33:16,34:17,43:30,58:31,31:46,4:d,5:T,10:q,12:m,13:b,14:x,18:O,25:Y,35:G,37:yt,39:Tt,41:dt,42:Ft,48:ut,50:xt,51:ft,52:gt,53:i,54:Bt,60:W,61:U,63:k,64:F,65:P,66:v,67:C}),t(a,[2,39]),t(a,[2,40]),t(a,[2,41]),{36:[1,47]},{38:[1,48]},{40:[1,49]},t(a,[2,45]),t(a,[2,46]),{18:[1,50]},{4:d,5:T,10:q,12:m,13:b,14:x,43:51,58:31,60:W,61:U,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:x,43:52,58:31,60:W,61:U,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:x,43:53,58:31,60:W,61:U,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:x,43:54,58:31,60:W,61:U,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:x,43:55,58:31,60:W,61:U,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:x,43:56,58:31,60:W,61:U,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,44:[1,57],47:[1,58],58:60,59:59,63:k,64:F,65:P,66:v,67:C},t(L,[2,64]),t(L,[2,66]),t(L,[2,67]),t(L,[2,70]),t(L,[2,71]),t(L,[2,72]),t(L,[2,73]),t(L,[2,74]),t(L,[2,75]),t(L,[2,76]),t(L,[2,77]),t(L,[2,78]),t(L,[2,79]),t(L,[2,80]),t(y,[2,35]),t(a,[2,38]),t(a,[2,42]),t(a,[2,43]),t(a,[2,44]),{3:64,4:Rt,5:Nt,6:Wt,7:Ut,8:Qt,9:Ot,10:Ht,11:Xt,12:Mt,13:Yt,14:jt,15:Gt,21:63},t(a,[2,53],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,49:[1,77],63:k,64:F,65:P,66:v,67:C}),t(a,[2,56],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,49:[1,78],63:k,64:F,65:P,66:v,67:C}),t(a,[2,57],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),t(a,[2,58],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),t(a,[2,59],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),t(a,[2,60],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),{45:[1,79]},{44:[1,80]},t(L,[2,65]),t(L,[2,81]),t(L,[2,82]),t(L,[2,83]),{3:82,4:Rt,5:Nt,6:Wt,7:Ut,8:Qt,9:Ot,10:Ht,11:Xt,12:Mt,13:Yt,14:jt,15:Gt,18:[1,81]},t(I,[2,23]),t(I,[2,1]),t(I,[2,2]),t(I,[2,3]),t(I,[2,4]),t(I,[2,5]),t(I,[2,6]),t(I,[2,7]),t(I,[2,8]),t(I,[2,9]),t(I,[2,10]),t(I,[2,11]),t(I,[2,12]),t(a,[2,52],{58:31,43:83,4:d,5:T,10:q,12:m,13:b,14:x,60:W,61:U,63:k,64:F,65:P,66:v,67:C}),t(a,[2,55],{58:31,43:84,4:d,5:T,10:q,12:m,13:b,14:x,60:W,61:U,63:k,64:F,65:P,66:v,67:C}),{46:[1,85]},{45:[1,86]},{4:J,5:$,6:tt,8:et,11:it,13:at,16:89,17:nt,18:st,19:rt,20:ot,22:88,23:87},t(I,[2,24]),t(a,[2,51],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),t(a,[2,54],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),t(a,[2,47],{22:88,16:89,23:100,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot}),{46:[1,101]},t(a,[2,29],{10:Pt}),t(Kt,[2,27],{16:103,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot}),t(R,[2,25]),t(R,[2,13]),t(R,[2,14]),t(R,[2,15]),t(R,[2,16]),t(R,[2,17]),t(R,[2,18]),t(R,[2,19]),t(R,[2,20]),t(R,[2,21]),t(R,[2,22]),t(a,[2,49],{10:Pt}),t(a,[2,48],{22:88,16:89,23:104,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot}),{4:J,5:$,6:tt,8:et,11:it,13:at,16:89,17:nt,18:st,19:rt,20:ot,22:105},t(R,[2,26]),t(a,[2,50],{10:Pt}),t(Kt,[2,28],{16:103,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot})],defaultActions:{8:[2,30],9:[2,31]},parseError:o(function(r,l){if(l.recoverable)this.trace(r);else{var g=new Error(r);throw g.hash=l,g}},"parseError"),parse:o(function(r){var l=this,g=[0],f=[],_=[null],e=[],pt=this.table,s="",mt=0,Zt=0,qe=2,Jt=1,me=e.slice.call(arguments,1),E=Object.create(this.lexer),K={yy:{}};for(var Ct in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ct)&&(K.yy[Ct]=this.yy[Ct]);E.setInput(r,K.yy),K.yy.lexer=E,K.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var Lt=E.yylloc;e.push(Lt);var be=E.options&&E.options.ranges;typeof K.yy.parseError=="function"?this.parseError=K.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Se(B){g.length=g.length-2*B,_.length=_.length-B,e.length=e.length-B}o(Se,"popStack");function $t(){var B;return B=f.pop()||E.lex()||Jt,typeof B!="number"&&(B instanceof Array&&(f=B,B=f.pop()),B=l.symbols_[B]||B),B}o($t,"lex");for(var w,Z,N,Et,lt={},bt,M,te,St;;){if(Z=g[g.length-1],this.defaultActions[Z]?N=this.defaultActions[Z]:((w===null||typeof w>"u")&&(w=$t()),N=pt[Z]&&pt[Z][w]),typeof N>"u"||!N.length||!N[0]){var Dt="";St=[];for(bt in pt[Z])this.terminals_[bt]&&bt>qe&&St.push("'"+this.terminals_[bt]+"'");E.showPosition?Dt="Parse error on line "+(mt+1)+`:
2
2
  `+E.showPosition()+`
3
3
  Expecting `+St.join(", ")+", got '"+(this.terminals_[w]||w)+"'":Dt="Parse error on line "+(mt+1)+": Unexpected "+(w==Jt?"end of input":"'"+(this.terminals_[w]||w)+"'"),this.parseError(Dt,{text:E.match,token:this.terminals_[w]||w,line:E.yylineno,loc:Lt,expected:St})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Z+", token: "+w);switch(N[0]){case 1:g.push(w),_.push(E.yytext),e.push(E.yylloc),g.push(N[1]),w=null,Zt=E.yyleng,s=E.yytext,mt=E.yylineno,Lt=E.yylloc;break;case 2:if(M=this.productions_[N[1]][1],lt.$=_[_.length-M],lt._$={first_line:e[e.length-(M||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(M||1)].first_column,last_column:e[e.length-1].last_column},be&&(lt._$.range=[e[e.length-(M||1)].range[0],e[e.length-1].range[1]]),Et=this.performAction.apply(lt,[s,Zt,mt,K.yy,N[1],_,e].concat(me)),typeof Et<"u")return Et;M&&(g=g.slice(0,-1*M*2),_=_.slice(0,-1*M),e=e.slice(0,-1*M)),g.push(this.productions_[N[1]][0]),_.push(lt.$),e.push(lt._$),te=pt[g[g.length-2]][g[g.length-1]],g.push(te);break;case 3:return!0}}return!0},"parse")},Te=function(){var j={EOF:1,parseError:o(function(l,g){if(this.yy.parser)this.yy.parser.parseError(l,g);else throw new Error(l)},"parseError"),setInput:o(function(r,l){return this.yy=l||this.yy||{},this._input=r,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var l=r.match(/(?:\r\n?|\n).*/g);return l?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},"input"),unput:o(function(r){var l=r.length,g=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-l),this.offset-=l;var f=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),g.length-1&&(this.yylineno-=g.length-1);var _=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:g?(g.length===f.length?this.yylloc.first_column:0)+f[f.length-g.length].length-g[0].length:this.yylloc.first_column-l},this.options.ranges&&(this.yylloc.range=[_[0],_[0]+this.yyleng-l]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(r){this.unput(this.match.slice(r))},"less"),pastInput:o(function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var r=this.pastInput(),l=new Array(r.length+1).join("-");return r+this.upcomingInput()+`
@@ -0,0 +1 @@
1
+ import{r as x,d as B,i as m,c as i,e as l,a as f,t as g,u as t,O as I,w as d,M as z,o as s,J as L,q as v,b as w,_ as N,n as b,N as S,L as $}from"./DD6NieRw.js";import{c as k}from"./B-OC4Wzf.js";import{u as V}from"./CT4V-SdE.js";function j(c=2e3){const e=x(!1),n=x({});return{copied:e,handleCopy:async o=>{await k(o),e.value=!0,setTimeout(()=>{e.value=!1},c)},copiedStates:n,handleCopyWithKey:async(o,r)=>{await k(r),n.value[o]=!0,setTimeout(()=>{n.value[o]=!1},c)},isCopied:o=>n.value[o]??!1,getCopyIcon:(o=e.value)=>o?"hugeicons:tick-02":"hugeicons:copy-01",getCopyIconClass:(o=e.value)=>o?"text-primary":"",getCopyTooltip:(o=e.value,r="Copy")=>o?"Copied!":r}}const q={class:"rounded-lg border border-border/60 bg-muted/30 overflow-hidden shadow-sm"},K={class:"flex items-center justify-between px-3 py-1 border-b border-border/40 bg-muted/50"},M={class:"text-xxs font-semibold tracking-widest uppercase text-muted-foreground select-none"},W={class:"flex items-center gap-1 justify-center"},E=["innerHTML"],J={key:1,class:"p-3 font-mono whitespace-pre leading-relaxed text-foreground/80 m-0 w-fit min-w-full chat-code-text"},Y=B({__name:"CodeHighlightPreview",props:{code:{},language:{default:"sql"},showCopyButton:{type:Boolean,default:!0},maxHeight:{default:void 0},decorations:{default:()=>[]}},setup(c){const e=c,{highlight:n}=V(),p=m(()=>e.code?n(e.code,e.language,{decorations:e.decorations}):null),h=m(()=>e.maxHeight?{maxHeight:e.maxHeight,overflowY:"auto",overflowX:"auto"}:{}),{copied:a,handleCopy:y,getCopyIcon:C,getCopyIconClass:u,getCopyTooltip:o}=j(),r=async()=>{e.code&&await y(e.code)},T=m(()=>e.language.toUpperCase());return(_,O)=>{const H=N;return s(),i("div",q,[l("div",K,[l("span",M,g(T.value),1),f(t(I),null,{default:d(()=>[f(t(L),{"as-child":""},{default:d(()=>[_.showCopyButton?(s(),v(t(S),{key:0,variant:"ghost",size:"xxs",onClick:r},{default:d(()=>[l("span",W,[(s(),v(H,{key:t(a)?"tick":"copy",name:t(C)(t(a)),class:b(["size-3.5",t(u)(t(a))])},null,8,["name","class"])),t(a)?(s(),i("span",{key:0,class:b(["text-xxs font-medium leading-none",t(u)(t(a))])},"Copied",2)):w("",!0)])]),_:1})):w("",!0)]),_:1}),f(t($),null,{default:d(()=>[l("p",null,g(t(o)(t(a),"Copy code")),1)]),_:1})]),_:1})]),l("div",{style:z(h.value)},[p.value?(s(),i("div",{key:0,class:"[&>pre]:p-3 [&>pre]:font-mono [&>pre]:whitespace-pre [&>pre]:leading-relaxed [&>pre]:m-0 [&>pre]:w-fit [&>pre]:min-w-full [&>pre]:rounded-none chat-code-text",innerHTML:p.value},null,8,E)):(s(),i("pre",J,g(_.code),1))],4)])}}});export{Y as _,j as u};
@@ -0,0 +1 @@
1
+ import{d as ie,aH as me,r as _,i as g,am as M,aI as fe,c,a as d,e as s,w as b,F as U,x as L,u as a,b as N,l as D,f as m,Q as ue,R as ge,bi as Z,q as I,ai as xe,N as he,bj as ye,bk as _e,o as i,_ as we,t as x,bl as ke,ae as Ie,n as Se,bm as Re,bn as Te,ah as be,Z as Ce,U as Ve,V as Pe,ad as Ke}from"./DD6NieRw.js";import{_ as ze}from"./s10hyhzI.js";import{_ as Ee,u as Ne}from"./DDNFAZ6A.js";import{_ as Ue,a as Le}from"./DghZRCwT.js";import{i as Oe}from"./DeGwWuWf.js";import{g as Be,a as Ae}from"./CCwJzmTT.js";const je={class:"flex h-full flex-col gap-4 overflow-hidden p-4"},Me={class:"flex flex-wrap items-center gap-2"},De={class:"grid min-h-0 flex-1 gap-4 grid-cols-5"},Fe={class:"flex min-h-0 flex-col gap-4 col-span-2"},He={class:"rounded-lg border bg-background p-4 space-y-4"},Je={class:"space-y-3"},qe={class:"space-y-2"},We={class:"flex flex-wrap gap-2"},Qe={key:0,class:"space-y-2"},Ze={class:"space-y-2"},Ge={class:"min-w-0"},Xe={class:"truncate text-sm font-medium"},Ye={class:"text-xs text-muted-foreground"},et={class:"rounded-lg border bg-background p-4 space-y-4"},tt={class:"space-y-2"},st={class:"space-y-2"},at={class:"flex justify-end"},nt={class:"flex min-h-0 flex-col overflow-hidden rounded-lg border bg-background col-span-3"},lt={class:"border-b px-4 py-3"},ot={class:"flex flex-wrap items-center gap-2"},it={class:"min-h-0 flex-1 overflow-auto p-4"},dt={key:1,class:"space-y-3"},rt={class:"flex flex-wrap items-center gap-2 text-xs text-muted-foreground"},ut={class:"mt-2 overflow-auto rounded-md border bg-background p-3 text-xs"},ct=ie({__name:"RedisPubSubPanel",props:{connection:{},databaseIndex:{},databases:{}},emits:["update:databaseIndex"],setup(F,{emit:T}){const t=F,P=T,f=me(null),h=_([]),y=_(""),r=_(""),w=_(""),p=_(null),k=_(!1),O=_(!1),S=_(!1);let $=null;const H=g(()=>{var o;return((o=f.value)==null?void 0:o.subscription)??{sessionId:p.value,target:null,mode:null,targets:[]}}),K=g(()=>H.value.targets??[]),J=g(()=>{var o,n;return[{label:`${((o=f.value)==null?void 0:o.channels.length)??0} channels`},{label:`${((n=f.value)==null?void 0:n.patternCount)??0} patterns`},{label:K.value.length?`${K.value.length} active target${K.value.length===1?"":"s"}`:"Not subscribed"}]}),B=g(()=>h.value.slice().reverse()),G=o=>({method:o.method,stringConnection:o.connectionString,host:o.host,port:o.port,username:o.username,password:o.password,database:o.database,ssl:o.ssl,ssh:o.ssh}),q=async()=>{if(!t.connection){f.value=null;return}k.value=!0;try{f.value=await $fetch("/api/redis/pubsub/overview",{method:"POST",body:{...G(t.connection),databaseIndex:t.databaseIndex,sessionId:p.value}})}finally{k.value=!1}},de=async()=>{if(!p.value){h.value=[];return}const o=await $fetch("/api/redis/pubsub/messages",{method:"POST",body:{sessionId:p.value}});h.value=o.messages,f.value&&(f.value={...f.value,subscription:o.subscription})},A=async()=>{await Promise.all([q(),de()])},z=()=>{$&&(clearInterval($),$=null)},ae=()=>{z(),$=ke(()=>{A()},2e3)},re=async()=>{if(!(!t.connection||!y.value.trim())){O.value=!0;try{const o=await $fetch("/api/redis/pubsub/subscribe",{method:"POST",body:{...G(t.connection),databaseIndex:t.databaseIndex,target:y.value.trim(),sessionId:p.value}});p.value=o.subscription.sessionId,h.value=o.messages,y.value="";const n=o.subscription.targets.find(C=>C.mode==="channel");!r.value&&n&&(r.value=n.target),await q(),ae()}finally{O.value=!1}}},X=async o=>{var V;if(!p.value)return;const n=p.value,C=await $fetch("/api/redis/pubsub/unsubscribe",{method:"POST",body:{sessionId:n,target:o??null}});if(!o||C.closed){p.value=null,h.value=[],z(),await q();return}await A(),(((V=f.value)==null?void 0:V.subscription.targets.length)??0)===0&&(p.value=null,h.value=[],z())},ne=async()=>{if(!(!t.connection||!r.value.trim())){S.value=!0;try{await $fetch("/api/redis/pubsub/publish",{method:"POST",body:{...G(t.connection),databaseIndex:t.databaseIndex,channel:r.value.trim(),payload:w.value}}),w.value="",await A()}finally{S.value=!1}}};return M(()=>{var o;return(o=f.value)==null?void 0:o.subscription.sessionId},o=>{p.value=o??null}),M(K,o=>{if(o.length===0){p.value&&z();return}if(!r.value){const n=o.find(C=>C.mode==="channel");n&&(r.value=n.target)}},{immediate:!0}),M(p,o=>{if(o){ae();return}z()}),M(()=>{var o;return[(o=t.connection)==null?void 0:o.id,t.databaseIndex]},async()=>{if(z(),p.value){await X();return}h.value=[],await q()},{immediate:!0}),fe(()=>{z(),p.value&&$fetch("/api/redis/pubsub/unsubscribe",{method:"POST",body:{sessionId:p.value,target:null}}).catch(()=>{})}),(o,n)=>{const C=we,V=he,le=ze,Y=ye,j=_e,ee=xe;return i(),c("div",je,[d(le,{icon:"hugeicons:radio",title:"Pub/Sub",description:"Subscribe to a channel or pattern, publish test events, and watch live messages without leaving the detail flow."},{context:b(()=>n[5]||(n[5]=[])),actions:b(()=>[d(Ee,{compact:"","trigger-id":"redis-pubsub-db-index","trigger-class":"bg-background",databases:o.databases,"database-index":o.databaseIndex,"onUpdate:databaseIndex":n[0]||(n[0]=v=>P("update:databaseIndex",v))},null,8,["databases","database-index"]),d(V,{variant:"outline",size:"xxs",disabled:a(k),onClick:A},{default:b(()=>[d(C,{name:"hugeicons:redo",class:"size-3.5! min-w-3.5"}),n[6]||(n[6]=m(" Refresh "))]),_:1},8,["disabled"])]),_:1}),s("div",Me,[(i(!0),c(U,null,L(a(J),v=>(i(),I(a(Z),{key:v.label,variant:"outline",class:"h-6 px-2 text-[11px] font-normal"},{default:b(()=>[m(x(v.label),1)]),_:2},1024))),128))]),s("div",De,[s("div",Fe,[s("div",He,[s("div",Je,[n[12]||(n[12]=s("div",null,[s("div",null,[s("div",{class:"text-sm font-medium"},"Subscription"),s("p",{class:"text-xs text-muted-foreground"}," Add channels or wildcard patterns to the same live session. Pattern detection is automatic. ")])],-1)),s("div",qe,[d(Y,{for:"redis-pubsub-target"},{default:b(()=>n[7]||(n[7]=[m("Target")])),_:1}),d(j,{size:"sm",id:"redis-pubsub-target",modelValue:a(y),"onUpdate:modelValue":n[1]||(n[1]=v=>D(y)?y.value=v:null),placeholder:"orders.events or orders.*"},null,8,["modelValue"]),n[8]||(n[8]=s("p",{class:"text-xs text-muted-foreground"},[m(" Use a plain channel name or include wildcard characters like "),s("span",{class:"font-mono"},"*"),m(" and "),s("span",{class:"font-mono"},"?"),m(" for patterns. ")],-1))]),s("div",We,[d(V,{size:"xs",disabled:a(O),onClick:re},{default:b(()=>n[9]||(n[9]=[m(" Add target ")])),_:1},8,["disabled"]),d(V,{size:"xs",variant:"outline",disabled:!a(p),onClick:n[2]||(n[2]=v=>X(void 0))},{default:b(()=>n[10]||(n[10]=[m(" Clear all ")])),_:1},8,["disabled"])]),a(K).length?(i(),c("div",Qe,[n[11]||(n[11]=s("div",{class:"text-xs font-medium uppercase tracking-[0.08em] text-muted-foreground"}," Active targets ",-1)),s("div",Ze,[(i(!0),c(U,null,L(a(K),v=>(i(),c("div",{key:v.target,class:"flex items-center justify-between gap-3 rounded-lg border bg-muted/10 px-3 py-2"},[s("div",Ge,[s("div",Xe,x(v.target),1),s("div",Ye,x(v.mode==="pattern"?"Pattern detected automatically":"Channel detected automatically"),1)]),d(V,{size:"iconSm",variant:"ghost","aria-label":`Remove ${v.target}`,onClick:e=>X(v.target)},{default:b(()=>[d(C,{name:"hugeicons:cancel-01",class:"size-4! min-w-4"})]),_:2},1032,["aria-label","onClick"])]))),128))])])):N("",!0)])]),s("div",et,[n[16]||(n[16]=s("div",null,[s("div",{class:"text-sm font-medium"},"Publish"),s("p",{class:"text-xs text-muted-foreground"}," Send a quick payload to a channel and inspect the response stream on the right. ")],-1)),s("div",tt,[d(Y,{for:"redis-pubsub-channel"},{default:b(()=>n[13]||(n[13]=[m("Channel")])),_:1}),d(j,{size:"sm",id:"redis-pubsub-channel",modelValue:a(r),"onUpdate:modelValue":n[3]||(n[3]=v=>D(r)?r.value=v:null),placeholder:"orders.events"},null,8,["modelValue"])]),s("div",st,[d(Y,{for:"redis-pubsub-payload"},{default:b(()=>n[14]||(n[14]=[m("Payload")])),_:1}),ue(s("textarea",{id:"redis-pubsub-payload","onUpdate:modelValue":n[4]||(n[4]=v=>D(w)?w.value=v:null),class:"min-h-[140px] w-full rounded-lg border bg-background px-3 py-2 text-sm font-mono",placeholder:'{"event":"order.created"}'},null,512),[[ge,a(w)]])]),s("div",at,[d(V,{size:"sm",disabled:a(S),onClick:ne},{default:b(()=>n[15]||(n[15]=[m(" Publish ")])),_:1},8,["disabled"])])])]),s("div",nt,[s("div",lt,[s("div",ot,[n[18]||(n[18]=s("div",{class:"text-sm font-medium"},"Live Messages",-1)),d(a(Z),{variant:"outline",class:"h-5 px-1.5 text-xxs font-normal"},{default:b(()=>[m(x(a(B).length)+" messages ",1)]),_:1}),d(a(Z),{variant:"outline",class:"h-5 px-1.5 text-xxs font-normal"},{default:b(()=>n[17]||(n[17]=[m(" Polling 2s ")])),_:1})]),n[19]||(n[19]=s("div",{class:"mt-1 text-xs text-muted-foreground"}," Message polling stays active while the current subscription session is connected. ",-1))]),s("div",it,[a(B).length===0?(i(),I(ee,{key:0,title:"No Pub/Sub messages yet",desc:"Subscribe to a channel or pattern, then publish an event to watch it appear here."})):(i(),c("div",dt,[(i(!0),c(U,null,L(a(B),v=>(i(),c("div",{key:v.id,class:"rounded-lg border bg-muted/10 p-3"},[s("div",rt,[d(a(Z),{variant:"outline",class:"h-5 px-1.5 text-xxs font-normal text-foreground"},{default:b(()=>[m(x(v.channel),1)]),_:2},1024),v.pattern?(i(),I(a(Z),{key:0,variant:"outline",class:"h-5 px-1.5 text-xxs font-normal"},{default:b(()=>[m(" Pattern "+x(v.pattern),1)]),_:2},1024)):N("",!0),s("span",null,x(new Date(v.receivedAt).toLocaleTimeString()),1)]),s("pre",ut,[s("code",null,x(v.payload),1)])]))),128))]))])])])])}}}),pt={class:"h-full flex flex-col gap-3 p-4 overflow-auto"},vt={key:0,class:"relative min-h-[240px] overflow-hidden rounded-lg border bg-background"},bt={key:3,class:"space-y-4"},mt={class:"flex flex-col gap-1"},ft={class:"flex items-start gap-2"},gt={class:"text-sm font-semibold break-all"},xt={class:"text-xs text-muted-foreground"},ht={class:"flex flex-wrap items-center gap-2"},yt={class:"ml-auto flex items-center gap-2"},_t=["value"],wt={class:"grid gap-3 md:grid-cols-[220px_1fr] items-start"},kt={class:"space-y-1"},$t={class:"flex items-center gap-2"},It={class:"text-xs text-muted-foreground"},St={key:0,class:"text-xs text-destructive"},Rt={key:1,class:"space-y-3"},Tt=["readonly"],Ct={key:2,class:"min-h-[360px] overflow-hidden rounded-lg border"},Vt={key:3,class:"space-y-3"},Pt={class:"flex justify-end"},Kt={class:"overflow-hidden rounded-lg border"},zt={class:"w-full text-sm"},Et={class:"bg-muted/30 text-left"},Nt={key:1},Ut={class:"px-3 py-2 text-right"},Lt={key:0},Ot=["colspan"],Bt={key:4,class:"min-h-[320px] overflow-auto rounded-lg border bg-muted/20 p-3 text-xs"},At={class:"flex justify-end"},jt=ie({__name:"RedisValueEditor",props:{detail:{},loading:{type:Boolean},saving:{type:Boolean},canEdit:{type:Boolean},unavailableReason:{}},emits:["save","refresh"],setup(F,{emit:T}){const t=F,P=T,f=_(""),h=me(null),y=_("tree"),r=_([]),w=_(""),p=_(!1),k=_(5),O=[5,10,30],S=e=>e==null?e:JSON.parse(JSON.stringify(e)),$=(e,l)=>JSON.stringify(e)===JSON.stringify(l);M(()=>t.detail,e=>{f.value=(e==null?void 0:e.previewKind)==="text"?String(e.value??""):"",h.value=(e==null?void 0:e.previewKind)==="json"?S(e.value):null,r.value=e!=null&&e.tableRows?S(e.tableRows):[],w.value=(e==null?void 0:e.ttl)!==void 0&&e.ttl>=0?`${e.ttl}`:""},{immediate:!0});const H=g(()=>t.detail?typeof t.detail.value=="string"?t.detail.value:JSON.stringify(t.detail.value,null,2):""),K=g(()=>{var e;return t.unavailableReason?t.unavailableReason:((e=t.detail)==null?void 0:e.previewKind)==="readonly"?"Value editing is unavailable for this Redis type. TTL changes can still be saved.":""}),J=g(()=>{const e=w.value.trim();if(!e)return"";const l=Number.parseInt(e,10);return!Number.isFinite(l)||l<0?"TTL must be empty or a non-negative integer.":""}),B=g(()=>{if(!t.detail)return;const e=w.value.trim(),l=t.detail.ttl>=0?`${t.detail.ttl}`:"";if(e===l)return;if(!e)return null;const R=Number.parseInt(e,10);return Number.isFinite(R)&&R>=0?R:void 0}),G=g(()=>t.detail?[{label:`DB ${t.detail.databaseIndex}`},{label:t.detail.type},{label:`TTL ${t.detail.ttlLabel}`},{label:`Size ${t.detail.memoryUsageHuman??"n/a"}`},{label:t.detail.length!==null&&t.detail.length!==void 0?`Length ${t.detail.length}`:"Length n/a"},{label:`Encoding ${t.detail.encoding??"n/a"}`}]:[]),q=g(()=>!t.detail||t.detail.type==="none"?"hugeicons:database-02":Be(t.detail.type)),de=g(()=>!t.detail||t.detail.type==="none"?"text-primary":Ae(t.detail.type)),A=g(()=>!t.detail||!t.canEdit||J.value||t.saving?!1:B.value!==void 0),z=g(()=>"Update TTL"),ae=g(()=>{var e;return t.canEdit&&((e=t.detail)==null?void 0:e.previewKind)==="table"}),re=g(()=>{if(!t.detail)return!1;switch(t.detail.previewKind){case"text":return f.value!==String(t.detail.value??"");case"json":return!$(h.value,t.detail.value);case"table":return!$(r.value,t.detail.tableRows??[]);default:return!1}}),X=g(()=>re.value||B.value!==void 0),ne=g(()=>!t.detail||!t.canEdit||J.value?!1:X.value),o=(e,l,R)=>{var E,oe;const te=r.value.find(se=>se.id===e);if(!te)return;const W=(oe=(E=t.detail)==null?void 0:E.tableColumns)==null?void 0:oe.find(se=>se.key===l);te[l]=(W==null?void 0:W.type)==="number"?Number(R||0):R},n=()=>{var e;((e=t.detail)==null?void 0:e.tableKind)==="list"&&(r.value=r.value.map((l,R)=>({...l,index:R})))},C=()=>{var l;if(!((l=t.detail)!=null&&l.tableKind))return;const e=`row-${Date.now()}-${r.value.length}`;switch(t.detail.tableKind){case"hash":r.value.push({id:e,field:"",value:""});break;case"list":r.value.push({id:e,index:r.value.length,value:""});break;case"set":r.value.push({id:e,value:""});break;case"zset":r.value.push({id:e,value:"",score:0});break}},V=e=>{r.value=r.value.filter(l=>l.id!==e),n()},le=()=>{if(!t.detail||!ne.value)return;const e={previewKind:t.detail.previewKind,stringFormat:t.detail.stringFormat,tableKind:t.detail.tableKind,ttlSeconds:B.value,value:t.detail.value};t.detail.previewKind==="text"&&(e.value=f.value),t.detail.previewKind==="json"&&(e.value=h.value),t.detail.previewKind==="table"&&(e.value=S(r.value)),P("save",e)},Y=()=>{A.value&&le()};let j=null;const ee=()=>{j!==null&&(clearInterval(j),j=null)};return M([p,k,()=>{var e;return(e=t.detail)==null?void 0:e.key}],()=>{ee(),!(!p.value||!t.detail)&&(j=ke(()=>{!t.detail||t.loading||t.saving||P("refresh")},k.value*1e3))},{immediate:!0}),M(()=>t.detail,e=>{e||ee()}),fe(()=>{ee()}),(e,l)=>{var pe,ve;const R=xe,te=we,W=ye,E=he,oe=Le,se=Ue,ce=_e;return i(),c("div",pt,[e.loading&&!e.detail?(i(),c("div",vt,[l[7]||(l[7]=s("div",{class:"flex h-full min-h-[240px] items-center justify-center px-4 text-sm text-muted-foreground"}," Loading Redis key detail... ",-1)),d(a(Ie),{visible:!0})])):!e.detail&&!e.loading?(i(),I(R,{key:1,title:"Select a Redis key",desc:"Choose a key from the Redis browser to inspect its value and metadata."})):((pe=e.detail)==null?void 0:pe.type)==="none"?(i(),I(R,{key:2,icon:"icons:404",title:"Key not found",desc:"This key no longer exists. It may have expired or been deleted."})):e.detail?(i(),c("div",bt,[s("div",mt,[s("div",ft,[d(te,{name:a(q),class:Se(["mt-0.5 size-4 min-w-4",a(de)])},null,8,["name","class"]),s("div",gt,x(e.detail.key),1)]),s("div",xt,x(e.detail.type)+" key preview ",1)]),s("div",ht,[(i(!0),c(U,null,L(a(G),u=>(i(),I(a(Z),{key:u.label,variant:"outline",class:"h-6 px-2 text-[11px] font-normal"},{default:b(()=>[m(x(u.label),1)]),_:2},1024))),128)),s("div",yt,[d(a(Re),{id:"redis-auto-refresh",checked:a(p),"onUpdate:checked":l[0]||(l[0]=u=>D(p)?p.value=u:null)},null,8,["checked"]),d(W,{for:"redis-auto-refresh",class:"text-xs font-medium"},{default:b(()=>l[8]||(l[8]=[m(" Auto refresh ")])),_:1}),d(E,{variant:"ghost",size:"sm",class:"h-7 px-2 text-xs","aria-label":"Refresh key detail",disabled:e.loading||e.saving,onClick:l[1]||(l[1]=u=>P("refresh"))},{default:b(()=>[d(te,{name:"hugeicons:redo",class:"size-3.5! min-w-3.5"}),l[9]||(l[9]=m(" Refresh "))]),_:1},8,["disabled"]),a(p)?ue((i(),c("select",{key:0,"onUpdate:modelValue":l[2]||(l[2]=u=>D(k)?k.value=u:null),class:"h-7 rounded-md border bg-background px-2 text-xs","aria-label":"Auto refresh interval"},[(i(),c(U,null,L(O,u=>s("option",{key:u,value:u},x(u)+"s ",9,_t)),64))],512)),[[Te,a(k)]]):N("",!0)])]),a(K)?(i(),I(se,{key:0,class:"border-border bg-muted/20"},{default:b(()=>[d(oe,{class:"text-muted-foreground"},{default:b(()=>[m(x(a(K)),1)]),_:1})]),_:1})):N("",!0),s("div",wt,[s("div",kt,[d(W,{for:"redis-ttl-input"},{default:b(()=>l[10]||(l[10]=[m("TTL (seconds)")])),_:1}),s("div",$t,[d(ce,{id:"redis-ttl-input",size:"sm","model-value":a(w),disabled:!e.canEdit,placeholder:"Leave empty to persist","onUpdate:modelValue":l[3]||(l[3]=u=>w.value=String(u||""))},null,8,["model-value","disabled"]),d(E,{variant:"outline",size:"xs",disabled:!a(A),onClick:Y},{default:b(()=>[m(x(a(z)),1)]),_:1},8,["disabled"])]),s("p",It," Current: "+x(e.detail.ttlLabel),1),a(J)?(i(),c("p",St,x(a(J)),1)):N("",!0)])]),e.detail.previewKind==="text"?(i(),c("div",Rt,[ue(s("textarea",{"onUpdate:modelValue":l[4]||(l[4]=u=>D(f)?f.value=u:null),readonly:!e.canEdit,class:"min-h-[320px] w-full rounded-lg border bg-background px-3 py-2 text-sm font-mono"},null,8,Tt),[[ge,a(f)]])])):e.detail.previewKind==="json"?(i(),c("div",Ct,[d(a(Oe),{modelValue:a(h),"onUpdate:modelValue":l[5]||(l[5]=u=>D(h)?h.value=u:null),class:"h-[360px]",mode:a(y),navigationBar:!1,readOnly:!e.canEdit,onModeChange:l[6]||(l[6]=u=>y.value=u)},null,8,["modelValue","mode","readOnly"])])):e.detail.previewKind==="table"?(i(),c("div",Vt,[s("div",Pt,[a(ae)?(i(),I(E,{key:0,variant:"outline",size:"sm",onClick:C},{default:b(()=>l[11]||(l[11]=[m(" Add Row ")])),_:1})):N("",!0)]),s("div",Kt,[s("table",zt,[s("thead",Et,[s("tr",null,[(i(!0),c(U,null,L(e.detail.tableColumns,u=>(i(),c("th",{key:u.key,class:"px-3 py-2 font-medium"},x(u.label),1))),128)),l[12]||(l[12]=s("th",{class:"w-16 px-3 py-2 font-medium"},null,-1))])]),s("tbody",null,[(i(!0),c(U,null,L(a(r),u=>(i(),c("tr",{key:u.id,class:"border-t align-top"},[(i(!0),c(U,null,L(e.detail.tableColumns,Q=>(i(),c("td",{key:Q.key,class:"px-3 py-2"},[Q.editable?(i(),I(ce,{key:0,size:"sm","model-value":`${u[Q.key]??""}`,disabled:!e.canEdit,"onUpdate:modelValue":$e=>o(u.id,Q.key,String($e||""))},null,8,["model-value","disabled","onUpdate:modelValue"])):(i(),c("span",Nt,x(u[Q.key]),1))]))),128)),s("td",Ut,[d(E,{variant:"ghost",size:"sm",disabled:!e.canEdit,onClick:Q=>V(u.id)},{default:b(()=>l[13]||(l[13]=[m(" Remove ")])),_:2},1032,["disabled","onClick"])])]))),128)),a(r).length===0?(i(),c("tr",Lt,[s("td",{colspan:(((ve=e.detail.tableColumns)==null?void 0:ve.length)||0)+1,class:"px-3 py-6 text-center text-sm text-muted-foreground"}," No rows available. ",8,Ot)])):N("",!0)])])])])):(i(),c("pre",Bt,[s("code",null,x(a(H)),1)])),s("div",At,[d(E,{size:"sm",disabled:e.saving||!a(ne),onClick:le},{default:b(()=>l[14]||(l[14]=[m(" Save Changes ")])),_:1},8,["disabled"])])])):N("",!0)])}}}),Mt=ie({__name:"RedisWorkspace",props:{connection:{},tabInfo:{}},setup(F){const T=F,t=Ne({connection:()=>T.connection,tabInfo:()=>T.tabInfo}),{canEditSelectedValue:P,databases:f,editUnavailableReason:h,loadingKeys:y,loadingSelectedKeyDetail:r,savingValue:w,selectedDatabaseIndex:p,selectedKeyDetail:k}=t,O=g(()=>{var S;return((S=T.tabInfo)==null?void 0:S.type)||be.RedisBrowser});return(S,$)=>a(O)===a(be).RedisPubSub?(i(),I(ct,{key:0,connection:T.connection,"database-index":a(p),databases:a(f),"onUpdate:databaseIndex":$[0]||($[0]=H=>a(t).selectedDatabaseIndex.value=H)},null,8,["connection","database-index","databases"])):(i(),I(jt,{key:1,detail:a(k),loading:a(y)||a(r),saving:a(w),"can-edit":a(P),"unavailable-reason":a(h),onSave:a(t).saveSelectedValue,onRefresh:$[1]||($[1]=H=>a(k)&&a(t).focusKey(a(k).key))},null,8,["detail","loading","saving","can-edit","unavailable-reason","onSave"]))}}),Qt=ie({__name:"[tabViewId]",setup(F){const T=Ce(),t=Ve(),P=Pe(),{tabViews:f}=Ke(t),h=g(()=>f.value.find(y=>y.id===T.params.tabViewId));return(y,r)=>(i(),I(Mt,{connection:a(P).selectedConnection,"tab-info":a(h)},null,8,["connection","tab-info"]))}});export{Qt as default};
@@ -1,4 +1,4 @@
1
- import{g as le}from"./RTN5rY4m.js";import{s as he}from"./DuKway_J.js";import{_ as l,l as C,p as de,r as ge,I as j,c as X,i as F,ay as ue,ad as pe,ae as fe,af as ye}from"./DSOwr8Hs.js";import"./D7uoAo-G.js";const E=[];for(let t=0;t<256;++t)E.push((t+256).toString(16).slice(1));function me(t,e=0){return(E[t[e+0]]+E[t[e+1]]+E[t[e+2]]+E[t[e+3]]+"-"+E[t[e+4]]+E[t[e+5]]+"-"+E[t[e+6]]+E[t[e+7]]+"-"+E[t[e+8]]+E[t[e+9]]+"-"+E[t[e+10]]+E[t[e+11]]+E[t[e+12]]+E[t[e+13]]+E[t[e+14]]+E[t[e+15]]).toLowerCase()}let Y;const Ee=new Uint8Array(16);function _e(){if(!Y){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Y=crypto.getRandomValues.bind(crypto)}return Y(Ee)}const be=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),ne={randomUUID:be};function Se(t,e,n){var u;if(ne.randomUUID&&!t)return ne.randomUUID();t=t||{};const c=t.random??((u=t.rng)==null?void 0:u.call(t))??_e();if(c.length<16)throw new Error("Random bytes length must be >= 16");return c[6]=c[6]&15|64,c[8]=c[8]&63|128,me(c)}var q=function(){var t=l(function(v,s,i,a){for(i=i||{},a=v.length;a--;i[v[a]]=s);return i},"o"),e=[1,4],n=[1,13],c=[1,12],u=[1,15],h=[1,16],p=[1,20],y=[1,19],_=[6,7,8],b=[1,26],m=[1,24],w=[1,25],N=[6,7,11],J=[1,6,13,15,16,19,22],K=[1,33],Q=[1,34],A=[1,6,7,11,13,15,16,19,22],G={trace:l(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:l(function(s,i,a,o,g,r,U){var d=r.length-1;switch(g){case 6:case 7:return o;case 8:o.getLogger().trace("Stop NL ");break;case 9:o.getLogger().trace("Stop EOF ");break;case 11:o.getLogger().trace("Stop NL2 ");break;case 12:o.getLogger().trace("Stop EOF2 ");break;case 15:o.getLogger().info("Node: ",r[d].id),o.addNode(r[d-1].length,r[d].id,r[d].descr,r[d].type);break;case 16:o.getLogger().trace("Icon: ",r[d]),o.decorateNode({icon:r[d]});break;case 17:case 21:o.decorateNode({class:r[d]});break;case 18:o.getLogger().trace("SPACELIST");break;case 19:o.getLogger().trace("Node: ",r[d].id),o.addNode(0,r[d].id,r[d].descr,r[d].type);break;case 20:o.decorateNode({icon:r[d]});break;case 25:o.getLogger().trace("node found ..",r[d-2]),this.$={id:r[d-1],descr:r[d-1],type:o.getType(r[d-2],r[d])};break;case 26:this.$={id:r[d],descr:r[d],type:o.nodeType.DEFAULT};break;case 27:o.getLogger().trace("node found ..",r[d-3]),this.$={id:r[d-3],descr:r[d-1],type:o.getType(r[d-2],r[d])};break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:n,7:[1,10],9:9,12:11,13:c,14:14,15:u,16:h,17:17,18:18,19:p,22:y},t(_,[2,3]),{1:[2,2]},t(_,[2,4]),t(_,[2,5]),{1:[2,6],6:n,12:21,13:c,14:14,15:u,16:h,17:17,18:18,19:p,22:y},{6:n,9:22,12:11,13:c,14:14,15:u,16:h,17:17,18:18,19:p,22:y},{6:b,7:m,10:23,11:w},t(N,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:p,22:y}),t(N,[2,18]),t(N,[2,19]),t(N,[2,20]),t(N,[2,21]),t(N,[2,23]),t(N,[2,24]),t(N,[2,26],{19:[1,30]}),{20:[1,31]},{6:b,7:m,10:32,11:w},{1:[2,7],6:n,12:21,13:c,14:14,15:u,16:h,17:17,18:18,19:p,22:y},t(J,[2,14],{7:K,11:Q}),t(A,[2,8]),t(A,[2,9]),t(A,[2,10]),t(N,[2,15]),t(N,[2,16]),t(N,[2,17]),{20:[1,35]},{21:[1,36]},t(J,[2,13],{7:K,11:Q}),t(A,[2,11]),t(A,[2,12]),{21:[1,37]},t(N,[2,25]),t(N,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:l(function(s,i){if(i.recoverable)this.trace(s);else{var a=new Error(s);throw a.hash=i,a}},"parseError"),parse:l(function(s){var i=this,a=[0],o=[],g=[null],r=[],U=this.table,d="",M=0,Z=0,re=2,ee=1,ae=r.slice.call(arguments,1),f=Object.create(this.lexer),T={yy:{}};for(var H in this.yy)Object.prototype.hasOwnProperty.call(this.yy,H)&&(T.yy[H]=this.yy[H]);f.setInput(s,T.yy),T.yy.lexer=f,T.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var $=f.yylloc;r.push($);var oe=f.options&&f.options.ranges;typeof T.yy.parseError=="function"?this.parseError=T.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ce(D){a.length=a.length-2*D,g.length=g.length-D,r.length=r.length-D}l(ce,"popStack");function te(){var D;return D=o.pop()||f.lex()||ee,typeof D!="number"&&(D instanceof Array&&(o=D,D=o.pop()),D=i.symbols_[D]||D),D}l(te,"lex");for(var S,O,k,z,I={},V,L,ie,B;;){if(O=a[a.length-1],this.defaultActions[O]?k=this.defaultActions[O]:((S===null||typeof S>"u")&&(S=te()),k=U[O]&&U[O][S]),typeof k>"u"||!k.length||!k[0]){var W="";B=[];for(V in U[O])this.terminals_[V]&&V>re&&B.push("'"+this.terminals_[V]+"'");f.showPosition?W="Parse error on line "+(M+1)+`:
1
+ import{g as le}from"./CAnZNTn6.js";import{s as he}from"./CHFYZcjC.js";import{_ as l,l as C,p as de,r as ge,I as j,c as X,i as F,ay as ue,ad as pe,ae as fe,af as ye}from"./Dzy2Amcc.js";import"./DD6NieRw.js";const E=[];for(let t=0;t<256;++t)E.push((t+256).toString(16).slice(1));function me(t,e=0){return(E[t[e+0]]+E[t[e+1]]+E[t[e+2]]+E[t[e+3]]+"-"+E[t[e+4]]+E[t[e+5]]+"-"+E[t[e+6]]+E[t[e+7]]+"-"+E[t[e+8]]+E[t[e+9]]+"-"+E[t[e+10]]+E[t[e+11]]+E[t[e+12]]+E[t[e+13]]+E[t[e+14]]+E[t[e+15]]).toLowerCase()}let Y;const Ee=new Uint8Array(16);function _e(){if(!Y){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Y=crypto.getRandomValues.bind(crypto)}return Y(Ee)}const be=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),ne={randomUUID:be};function Se(t,e,n){var u;if(ne.randomUUID&&!t)return ne.randomUUID();t=t||{};const c=t.random??((u=t.rng)==null?void 0:u.call(t))??_e();if(c.length<16)throw new Error("Random bytes length must be >= 16");return c[6]=c[6]&15|64,c[8]=c[8]&63|128,me(c)}var q=function(){var t=l(function(v,s,i,a){for(i=i||{},a=v.length;a--;i[v[a]]=s);return i},"o"),e=[1,4],n=[1,13],c=[1,12],u=[1,15],h=[1,16],p=[1,20],y=[1,19],_=[6,7,8],b=[1,26],m=[1,24],w=[1,25],N=[6,7,11],J=[1,6,13,15,16,19,22],K=[1,33],Q=[1,34],A=[1,6,7,11,13,15,16,19,22],G={trace:l(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:l(function(s,i,a,o,g,r,U){var d=r.length-1;switch(g){case 6:case 7:return o;case 8:o.getLogger().trace("Stop NL ");break;case 9:o.getLogger().trace("Stop EOF ");break;case 11:o.getLogger().trace("Stop NL2 ");break;case 12:o.getLogger().trace("Stop EOF2 ");break;case 15:o.getLogger().info("Node: ",r[d].id),o.addNode(r[d-1].length,r[d].id,r[d].descr,r[d].type);break;case 16:o.getLogger().trace("Icon: ",r[d]),o.decorateNode({icon:r[d]});break;case 17:case 21:o.decorateNode({class:r[d]});break;case 18:o.getLogger().trace("SPACELIST");break;case 19:o.getLogger().trace("Node: ",r[d].id),o.addNode(0,r[d].id,r[d].descr,r[d].type);break;case 20:o.decorateNode({icon:r[d]});break;case 25:o.getLogger().trace("node found ..",r[d-2]),this.$={id:r[d-1],descr:r[d-1],type:o.getType(r[d-2],r[d])};break;case 26:this.$={id:r[d],descr:r[d],type:o.nodeType.DEFAULT};break;case 27:o.getLogger().trace("node found ..",r[d-3]),this.$={id:r[d-3],descr:r[d-1],type:o.getType(r[d-2],r[d])};break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:n,7:[1,10],9:9,12:11,13:c,14:14,15:u,16:h,17:17,18:18,19:p,22:y},t(_,[2,3]),{1:[2,2]},t(_,[2,4]),t(_,[2,5]),{1:[2,6],6:n,12:21,13:c,14:14,15:u,16:h,17:17,18:18,19:p,22:y},{6:n,9:22,12:11,13:c,14:14,15:u,16:h,17:17,18:18,19:p,22:y},{6:b,7:m,10:23,11:w},t(N,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:p,22:y}),t(N,[2,18]),t(N,[2,19]),t(N,[2,20]),t(N,[2,21]),t(N,[2,23]),t(N,[2,24]),t(N,[2,26],{19:[1,30]}),{20:[1,31]},{6:b,7:m,10:32,11:w},{1:[2,7],6:n,12:21,13:c,14:14,15:u,16:h,17:17,18:18,19:p,22:y},t(J,[2,14],{7:K,11:Q}),t(A,[2,8]),t(A,[2,9]),t(A,[2,10]),t(N,[2,15]),t(N,[2,16]),t(N,[2,17]),{20:[1,35]},{21:[1,36]},t(J,[2,13],{7:K,11:Q}),t(A,[2,11]),t(A,[2,12]),{21:[1,37]},t(N,[2,25]),t(N,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:l(function(s,i){if(i.recoverable)this.trace(s);else{var a=new Error(s);throw a.hash=i,a}},"parseError"),parse:l(function(s){var i=this,a=[0],o=[],g=[null],r=[],U=this.table,d="",M=0,Z=0,re=2,ee=1,ae=r.slice.call(arguments,1),f=Object.create(this.lexer),T={yy:{}};for(var H in this.yy)Object.prototype.hasOwnProperty.call(this.yy,H)&&(T.yy[H]=this.yy[H]);f.setInput(s,T.yy),T.yy.lexer=f,T.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var $=f.yylloc;r.push($);var oe=f.options&&f.options.ranges;typeof T.yy.parseError=="function"?this.parseError=T.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ce(D){a.length=a.length-2*D,g.length=g.length-D,r.length=r.length-D}l(ce,"popStack");function te(){var D;return D=o.pop()||f.lex()||ee,typeof D!="number"&&(D instanceof Array&&(o=D,D=o.pop()),D=i.symbols_[D]||D),D}l(te,"lex");for(var S,O,k,z,I={},V,L,ie,B;;){if(O=a[a.length-1],this.defaultActions[O]?k=this.defaultActions[O]:((S===null||typeof S>"u")&&(S=te()),k=U[O]&&U[O][S]),typeof k>"u"||!k.length||!k[0]){var W="";B=[];for(V in U[O])this.terminals_[V]&&V>re&&B.push("'"+this.terminals_[V]+"'");f.showPosition?W="Parse error on line "+(M+1)+`:
2
2
  `+f.showPosition()+`
3
3
  Expecting `+B.join(", ")+", got '"+(this.terminals_[S]||S)+"'":W="Parse error on line "+(M+1)+": Unexpected "+(S==ee?"end of input":"'"+(this.terminals_[S]||S)+"'"),this.parseError(W,{text:f.match,token:this.terminals_[S]||S,line:f.yylineno,loc:$,expected:B})}if(k[0]instanceof Array&&k.length>1)throw new Error("Parse Error: multiple actions possible at state: "+O+", token: "+S);switch(k[0]){case 1:a.push(S),g.push(f.yytext),r.push(f.yylloc),a.push(k[1]),S=null,Z=f.yyleng,d=f.yytext,M=f.yylineno,$=f.yylloc;break;case 2:if(L=this.productions_[k[1]][1],I.$=g[g.length-L],I._$={first_line:r[r.length-(L||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(L||1)].first_column,last_column:r[r.length-1].last_column},oe&&(I._$.range=[r[r.length-(L||1)].range[0],r[r.length-1].range[1]]),z=this.performAction.apply(I,[d,Z,M,T.yy,k[1],g,r].concat(ae)),typeof z<"u")return z;L&&(a=a.slice(0,-1*L*2),g=g.slice(0,-1*L),r=r.slice(0,-1*L)),a.push(this.productions_[k[1]][0]),g.push(I.$),r.push(I._$),ie=U[a[a.length-2]][a[a.length-1]],a.push(ie);break;case 3:return!0}}return!0},"parse")},se=function(){var v={EOF:1,parseError:l(function(i,a){if(this.yy.parser)this.yy.parser.parseError(i,a);else throw new Error(i)},"parseError"),setInput:l(function(s,i){return this.yy=i||this.yy||{},this._input=s,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:l(function(){var s=this._input[0];this.yytext+=s,this.yyleng++,this.offset++,this.match+=s,this.matched+=s;var i=s.match(/(?:\r\n?|\n).*/g);return i?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),s},"input"),unput:l(function(s){var i=s.length,a=s.split(/(?:\r\n?|\n)/g);this._input=s+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;var o=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),a.length-1&&(this.yylineno-=a.length-1);var g=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===o.length?this.yylloc.first_column:0)+o[o.length-a.length].length-a[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[g[0],g[0]+this.yyleng-i]),this.yyleng=this.yytext.length,this},"unput"),more:l(function(){return this._more=!0,this},"more"),reject:l(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:l(function(s){this.unput(this.match.slice(s))},"less"),pastInput:l(function(){var s=this.matched.substr(0,this.matched.length-this.match.length);return(s.length>20?"...":"")+s.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:l(function(){var s=this.match;return s.length<20&&(s+=this._input.substr(0,20-s.length)),(s.substr(0,20)+(s.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:l(function(){var s=this.pastInput(),i=new Array(s.length+1).join("-");return s+this.upcomingInput()+`
@@ -1,4 +1,4 @@
1
- import{g as Ht}from"./D_fdC3mJ.js";import{_ as m,o as Mt,l as t1,c as b1,d as O1,p as Xt,r as Qt,u as rt,b as Jt,s as Zt,q as $t,a as te,g as ee,t as se,k as ie,v as re,J as ae,x as ne,y as it,z as ue,A as oe,B as le,C as ce}from"./DSOwr8Hs.js";import{c as he}from"./CWGzL6OE.js";import{g as de}from"./RTN5rY4m.js";import{s as pe}from"./DuKway_J.js";import{c as fe}from"./CzBFxx8v.js";import"./D7uoAo-G.js";var ge="flowchart-",G1,be=(G1=class{constructor(){this.vertexCounter=0,this.config=b1(),this.vertices=new Map,this.edges=[],this.classes=new Map,this.subGraphs=[],this.subGraphLookup=new Map,this.tooltips=new Map,this.subCount=0,this.firstGraphFlag=!0,this.secCount=-1,this.posCrossRef=[],this.funs=[],this.setAccTitle=Jt,this.setAccDescription=Zt,this.setDiagramTitle=$t,this.getAccTitle=te,this.getAccDescription=ee,this.getDiagramTitle=se,this.funs.push(this.setupToolTips.bind(this)),this.addVertex=this.addVertex.bind(this),this.firstGraph=this.firstGraph.bind(this),this.setDirection=this.setDirection.bind(this),this.addSubGraph=this.addSubGraph.bind(this),this.addLink=this.addLink.bind(this),this.setLink=this.setLink.bind(this),this.updateLink=this.updateLink.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.destructLink=this.destructLink.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setTooltip=this.setTooltip.bind(this),this.updateLinkInterpolate=this.updateLinkInterpolate.bind(this),this.setClickFun=this.setClickFun.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.lex={firstGraph:this.firstGraph.bind(this)},this.clear(),this.setGen("gen-2")}sanitizeText(i){return ie.sanitizeText(i,this.config)}sanitizeNodeLabelType(i){switch(i){case"markdown":case"string":case"text":return i;default:return"markdown"}}lookUpDomId(i){for(const n of this.vertices.values())if(n.id===i)return n.domId;return i}addVertex(i,n,a,u,o,f,c={},A){var L,C;if(!i||i.trim().length===0)return;let r;if(A!==void 0){let d;A.includes(`
1
+ import{g as Ht}from"./CM7fDldV.js";import{_ as m,o as Mt,l as t1,c as b1,d as O1,p as Xt,r as Qt,u as rt,b as Jt,s as Zt,q as $t,a as te,g as ee,t as se,k as ie,v as re,J as ae,x as ne,y as it,z as ue,A as oe,B as le,C as ce}from"./Dzy2Amcc.js";import{c as he}from"./BX-NC3FD.js";import{g as de}from"./CAnZNTn6.js";import{s as pe}from"./CHFYZcjC.js";import{c as fe}from"./DX42Brjy.js";import"./DD6NieRw.js";var ge="flowchart-",G1,be=(G1=class{constructor(){this.vertexCounter=0,this.config=b1(),this.vertices=new Map,this.edges=[],this.classes=new Map,this.subGraphs=[],this.subGraphLookup=new Map,this.tooltips=new Map,this.subCount=0,this.firstGraphFlag=!0,this.secCount=-1,this.posCrossRef=[],this.funs=[],this.setAccTitle=Jt,this.setAccDescription=Zt,this.setDiagramTitle=$t,this.getAccTitle=te,this.getAccDescription=ee,this.getDiagramTitle=se,this.funs.push(this.setupToolTips.bind(this)),this.addVertex=this.addVertex.bind(this),this.firstGraph=this.firstGraph.bind(this),this.setDirection=this.setDirection.bind(this),this.addSubGraph=this.addSubGraph.bind(this),this.addLink=this.addLink.bind(this),this.setLink=this.setLink.bind(this),this.updateLink=this.updateLink.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.destructLink=this.destructLink.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setTooltip=this.setTooltip.bind(this),this.updateLinkInterpolate=this.updateLinkInterpolate.bind(this),this.setClickFun=this.setClickFun.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.lex={firstGraph:this.firstGraph.bind(this)},this.clear(),this.setGen("gen-2")}sanitizeText(i){return ie.sanitizeText(i,this.config)}sanitizeNodeLabelType(i){switch(i){case"markdown":case"string":case"text":return i;default:return"markdown"}}lookUpDomId(i){for(const n of this.vertices.values())if(n.id===i)return n.domId;return i}addVertex(i,n,a,u,o,f,c={},A){var L,C;if(!i||i.trim().length===0)return;let r;if(A!==void 0){let d;A.includes(`
2
2
  `)?d=A+`
3
3
  `:d=`{
4
4
  `+A+`
@@ -1 +1 @@
1
- import{r as g,K as u,G as x}from"./D7uoAo-G.js";function L(){const p=g(!1),f=g(0),h=g(null),C=(w,m)=>{const l=new Uint8Array(m);let i=0;return w.forEach(t=>{l.set(t,i),i+=t.length}),l};return{isDownloading:p,downloadedBytes:f,error:h,downloadStream:async w=>{var E;const{url:m,method:l="POST",body:i,filename:t,contentType:P,saveFilePath:c,openPath:v,successTitle:R,getSuccessDescription:y}=w;p.value=!0,f.value=0,h.value=null;const b=u.loading(`Exporting ${t}...`,{description:"Starting download..."});try{const o=await fetch(m,{method:l,headers:{"Content-Type":"application/json"},body:i?JSON.stringify(i):void 0});if(!o.ok){let r="Export failed";try{r=(await o.json()).message||r}catch{}throw new Error(r)}if(!o.body)throw new Error("Response body is not available for streaming");const d=o.body.getReader(),B=[];let n=0;for(;;){const{done:r,value:s}=await d.read();if(r)break;B.push(s),n+=s.length,f.value=n;const a=x(n);u.loading(`Exporting ${t}...`,{id:b,description:`Downloaded ${a}`,position:"bottom-right"})}const $=C(B,n),e=typeof window<"u"?(E=window.electronAPI)==null?void 0:E.window:void 0;if(c&&(e!=null&&e.writeFile))await e.writeFile(c,$);else{const r=new Blob([$],{type:P||o.headers.get("Content-Type")||"application/octet-stream"}),s=URL.createObjectURL(r),a=document.createElement("a");a.href=s,a.download=t,document.body.appendChild(a),a.click(),document.body.removeChild(a),URL.revokeObjectURL(s)}const k=x(n);return u.success(R||`Exported ${t}`,{id:b,description:(y==null?void 0:y(n))||(c?`${k} saved to ${c}`:`${k} downloaded`),position:"bottom-right",action:v&&(e!=null&&e.openPath)?{label:"Open",onClick:()=>{e.openPath(v)}}:void 0}),{success:!0,size:n}}catch(o){const d=o;return h.value=d,u.error("Export failed",{id:b,description:d.message,position:"bottom-right"}),{success:!1,error:d}}finally{p.value=!1}}}}export{L as u};
1
+ import{r as g,K as u,H as x}from"./DD6NieRw.js";function L(){const p=g(!1),f=g(0),h=g(null),C=(w,m)=>{const l=new Uint8Array(m);let i=0;return w.forEach(t=>{l.set(t,i),i+=t.length}),l};return{isDownloading:p,downloadedBytes:f,error:h,downloadStream:async w=>{var E;const{url:m,method:l="POST",body:i,filename:t,contentType:P,saveFilePath:c,openPath:v,successTitle:R,getSuccessDescription:y}=w;p.value=!0,f.value=0,h.value=null;const b=u.loading(`Exporting ${t}...`,{description:"Starting download..."});try{const o=await fetch(m,{method:l,headers:{"Content-Type":"application/json"},body:i?JSON.stringify(i):void 0});if(!o.ok){let r="Export failed";try{r=(await o.json()).message||r}catch{}throw new Error(r)}if(!o.body)throw new Error("Response body is not available for streaming");const d=o.body.getReader(),B=[];let n=0;for(;;){const{done:r,value:s}=await d.read();if(r)break;B.push(s),n+=s.length,f.value=n;const a=x(n);u.loading(`Exporting ${t}...`,{id:b,description:`Downloaded ${a}`,position:"bottom-right"})}const $=C(B,n),e=typeof window<"u"?(E=window.electronAPI)==null?void 0:E.window:void 0;if(c&&(e!=null&&e.writeFile))await e.writeFile(c,$);else{const r=new Blob([$],{type:P||o.headers.get("Content-Type")||"application/octet-stream"}),s=URL.createObjectURL(r),a=document.createElement("a");a.href=s,a.download=t,document.body.appendChild(a),a.click(),document.body.removeChild(a),URL.revokeObjectURL(s)}const k=x(n);return u.success(R||`Exported ${t}`,{id:b,description:(y==null?void 0:y(n))||(c?`${k} saved to ${c}`:`${k} downloaded`),position:"bottom-right",action:v&&(e!=null&&e.openPath)?{label:"Open",onClick:()=>{e.openPath(v)}}:void 0}),{success:!0,size:n}}catch(o){const d=o;return h.value=d,u.error("Export failed",{id:b,description:d.message,position:"bottom-right"}),{success:!1,error:d}}finally{p.value=!1}}}}export{L as u};
@@ -1 +1 @@
1
- import{_ as a,d as o}from"./DSOwr8Hs.js";var d=a((t,e)=>{let n;return e==="sandbox"&&(n=o("#i"+t)),(e==="sandbox"?o(n.nodes()[0].contentDocument.body):o("body")).select(`[id="${t}"]`)},"getDiagramElement");export{d as g};
1
+ import{_ as a,d as o}from"./Dzy2Amcc.js";var d=a((t,e)=>{let n;return e==="sandbox"&&(n=o("#i"+t)),(e==="sandbox"?o(n.nodes()[0].contentDocument.body):o("body")).select(`[id="${t}"]`)},"getDiagramElement");export{d as g};
@@ -0,0 +1,2 @@
1
+ import{d as D,a0 as ht,r as O,aC as _t,q as B,b as V,u as o,o as S,w as l,E as R,ab as yt,aB as kt,c as M,e as I,n as j,p as z,g as Ie,h as je,dA as Ve,ar as bt,_ as L,i as oe,j as We,ai as Ke,a as i,N as F,f as W,F as Y,x as ne,v as Ye,t as U,O as Ct,J as xt,L as $t,y as Ge,bg as St,b8 as Et,b9 as Tt,ba as It,bb as Wt,bc as At,bd as Bt,be as Mt,X as ge,dB as Dt,D as Lt,V as Ae,bO as ve,bU as we,s as $e,a5 as Ne,dC as Nt,al as Pt,aK as Ot,bj as Rt,aF as Ht,cA as Ft,cx as he,dD as Be,K as Pe,ay as Q,az as Qe,bP as Me,bQ as De,bk as Je,bT as Xe,dE as zt,by as qt,bR as Ut,l as te,k as jt,bf as Vt,z as Kt,A as Yt,C as Gt,B as Qt,dF as Jt,dG as Xt,dH as Zt,aH as eo,cy as to,cz as oo}from"./DD6NieRw.js";import{i as Ze,g as et,a as se}from"./Cilp0euQ.js";import{_ as tt}from"./BgFbw5aK.js";import{i as no,_ as Se}from"./ImQ5Dcjp.js";import{a as so,b as ro,c as io,d as ao,e as lo,E as co,u as uo,t as po,F as _e}from"./B-E4SrDA.js";import{_ as mo,a as fo,b as vo}from"./DngnCd9Q.js";import{_ as wo}from"./BZOLz5Xw.js";import{_ as go,e as ho,f as _o}from"./mtBjWkj4.js";import{_ as yo}from"./lFU3Ma5J.js";import{_ as ko,a as bo}from"./CkVRbNxk.js";import"./D33qa5aT.js";import"./DDgsZmht.js";import"./B5rxJs06.js";import"./yPPOBtqs.js";var Co=D({__name:"AvatarFallback",props:{delayMs:{type:Number,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(e){const t=e,s=no();ht();const r=O(t.delayMs===void 0);return _t(n=>{if(t.delayMs&&kt){const a=window.setTimeout(()=>{r.value=!0},t.delayMs);n(()=>{window.clearTimeout(a)})}}),(n,a)=>r.value&&o(s).imageLoadingStatus.value!=="loaded"?(S(),B(o(yt),{key:0,"as-child":n.asChild,as:n.as},{default:l(()=>[R(n.$slots,"default")]),_:3},8,["as-child","as"])):V("v-if",!0)}}),xo=Co;const $o={"data-slot":"table-container",class:"relative w-full overflow-auto"},So=D({__name:"Table",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("div",$o,[I("table",{"data-slot":"table",class:j(o(z)("w-full caption-bottom text-sm",t.class))},[R(s.$slots,"default")],2)]))}}),Eo=D({__name:"TableBody",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("tbody",{"data-slot":"table-body",class:j(o(z)("[&_tr:last-child]:border-0",t.class))},[R(s.$slots,"default")],2))}}),ae=D({__name:"TableCell",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("td",{"data-slot":"table-cell",class:j(o(z)("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t.class))},[R(s.$slots,"default")],2))}}),Oe=D({__name:"TableRow",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("tr",{"data-slot":"table-row",class:j(o(z)("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",t.class))},[R(s.$slots,"default")],2))}}),le=D({__name:"TableHead",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("th",{"data-slot":"table-head",class:j(o(z)("text-muted-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t.class))},[R(s.$slots,"default")],2))}}),To=D({__name:"TableHeader",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("thead",{"data-slot":"table-header",class:j(o(z)("[&_tr]:border-b",t.class))},[R(s.$slots,"default")],2))}}),Io={key:1,class:"rounded-md border border-border w-full"},Wo={class:"flex items-center gap-2 truncate"},Ao={class:"w-80"},Bo={class:"text-muted-foreground truncate"},Mo={class:"flex flex-wrap gap-1"},Do={class:"flex items-center justify-end gap-1"},Lo=D({__name:"ConnectionsList",props:{connections:{}},emits:["edit","delete","create"],setup(e,{emit:t}){const{openWorkspaceWithConnection:s}=Ie(),r=je(),{checkAndConfirm:n}=Ve(),a=We(),v=e,w=t,u=O(null),d=bt(L,{name:"hugeicons:database"}),c=oe(()=>Ze(a.public.sqlite3ConnectionsEnabled)),E=_=>{if(_.method!==ge.STRING||!_.connectionString)return null;try{return Dt(_.connectionString)}catch{return null}},p=_=>_.type===Lt.ORACLE?_.serviceName:_.database,g=_=>{if(_.method===ge.FILE){const y=_.filePath||"SQLite file not selected";return{summary:y,tooltip:y}}if(_.method===ge.STRING){const y=E(_),T=_.connectionString||"Invalid connection string";return y?{summary:`${y.host}${y.database?`:${y.database}`:""}`,tooltip:`${y.host}${y.port?`:${y.port}`:""}${y.database?`/${y.database}`:""}`}:{summary:T,tooltip:T}}const m=_.host||"Host not set",x=p(_);return{summary:`${m}${x?`:${x}`:""}`,tooltip:`${m}${_.port?`:${_.port}`:""}${x?`/${x}`:""}`}},f=oe(()=>v.connections.map(_=>{var m;return{connection:_,details:g(_),icon:((m=et(_.type))==null?void 0:m.icon)??d}})),$=_=>{u.value=_},b=()=>{u.value&&(w("delete",u.value),u.value=null)},C=async _=>{se(_,c.value)||!await n(_)||s({connId:_.id,wsId:_.workspaceId})};return(_,m)=>{const x=Ke;return v.connections.length===0?(S(),B(x,{key:0,title:"No connections yet",desc:"Click Add Connection to create your first database connection."},{default:l(()=>[i(o(F),{size:"sm",variant:"outline",onClick:m[0]||(m[0]=y=>w("create"))},{default:l(()=>[i(o(L),{name:"hugeicons:plus-sign",class:"size-4!"}),m[3]||(m[3]=W(" Add Connection "))]),_:1})]),_:1})):(S(),M("div",Io,[i(o(So),null,{default:l(()=>[i(o(To),null,{default:l(()=>[i(o(Oe),{class:"hover:bg-transparent"},{default:l(()=>[i(o(le),null,{default:l(()=>m[4]||(m[4]=[W("Name")])),_:1}),i(o(le),null,{default:l(()=>m[5]||(m[5]=[W("Connection Details")])),_:1}),i(o(le),null,{default:l(()=>m[6]||(m[6]=[W("Tag Envs")])),_:1}),i(o(le),{class:"text-right"},{default:l(()=>m[7]||(m[7]=[W("Actions")])),_:1})]),_:1})]),_:1}),i(o(Eo),null,{default:l(()=>[(S(!0),M(Y,null,ne(f.value,y=>(S(),B(o(Oe),{key:y.connection.id,class:"hover:bg-muted/30 w-full"},{default:l(()=>[i(o(ae),null,{default:l(()=>[I("div",Wo,[(S(),B(Ye(y.icon),{class:"size-5!"})),W(" "+U(y.connection.name),1)])]),_:2},1024),i(o(ae),null,{default:l(()=>[i(o(Ct),null,{default:l(()=>[i(o(xt),{"as-child":""},{default:l(()=>[I("div",Ao,[I("div",Bo,U(y.details.summary),1)])]),_:2},1024),i(o($t),null,{default:l(()=>[I("p",null,U(y.details.tooltip),1)]),_:2},1024)]),_:2},1024)]),_:2},1024),i(o(ae),null,{default:l(()=>[I("div",Mo,[(S(!0),M(Y,null,ne(o(r).getTagsByIds(y.connection.tagIds??[]),T=>(S(),B(o(Ge),{key:T.id,tag:T},null,8,["tag"]))),128))])]),_:2},1024),i(o(ae),{class:"text-right"},{default:l(()=>[I("div",Do,[i(o(F),{variant:"outline",size:"iconMd",onClick:T=>_.$emit("edit",y.connection)},{default:l(()=>[i(o(L),{name:"hugeicons:edit-02"})]),_:2},1032,["onClick"]),i(o(F),{variant:"outline",size:"iconMd",onClick:T=>$(y.connection.id)},{default:l(()=>[i(o(L),{name:"hugeicons:delete-02"})]),_:2},1032,["onClick"]),i(o(F),{variant:"default",size:"sm",disabled:o(se)(y.connection,c.value),onClick:T=>C(y.connection)},{default:l(()=>[i(o(L),{name:"hugeicons:square-arrow-up-right"}),W(" "+U(o(se)(y.connection,c.value)?"Disabled":"Connect"),1)]),_:2},1032,["disabled","onClick"])])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1}),i(o(St),{open:!!u.value,"onUpdate:open":m[2]||(m[2]=y=>!y)},{default:l(()=>[i(o(Et),{class:"border"},{default:l(()=>[i(o(Tt),null,{default:l(()=>[i(o(It),null,{default:l(()=>m[8]||(m[8]=[W("Are you sure?")])),_:1}),i(o(Wt),null,{default:l(()=>m[9]||(m[9]=[W(" This will permanently delete this database connection. This action cannot be undone. ")])),_:1})]),_:1}),i(o(At),null,{default:l(()=>[i(o(Bt),{class:"border",onClick:m[1]||(m[1]=y=>u.value=null)},{default:l(()=>m[10]||(m[10]=[W("Cancel")])),_:1}),i(o(Mt),{class:"border bg-red-600 hover:bg-red-700",onClick:b},{default:l(()=>m[11]||(m[11]=[W(" Delete ")])),_:1})]),_:1})]),_:1})]),_:1},8,["open"])]))}}}),No=D({__name:"CardFooter",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("div",{"data-slot":"card-footer",class:j(o(z)("flex items-center px-6 [.border-t]:pt-6",t.class))},[R(s.$slots,"default")],2))}}),Po=D({__name:"CardHeader",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("div",{"data-slot":"card-header",class:j(o(z)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",t.class))},[R(s.$slots,"default")],2))}}),Oo=D({__name:"CardTitle",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("h3",{"data-slot":"card-title",class:j(o(z)("leading-none font-semibold",t.class))},[R(s.$slots,"default")],2))}}),Ro={class:"flex flex-col items-center"},Ho={class:"w-full"},Fo={class:"flex items-center justify-between rounded-md bg-card py-4"},zo=D({__name:"ManagementConnection",props:{connections:{},workspaceId:{}},setup(e){const t=O(!1),{createConnection:s}=Ie(),r=Ae(),n=O(null),a=()=>{n.value=null,t.value=!0},v=c=>{s(c)},w=c=>{r.updateConnection(c)},u=c=>{n.value=c,t.value=!0},d=c=>{r.onDeleteConnection(c)};return(c,E)=>{const p=L;return S(),M("div",Ro,[I("div",Ho,[I("div",Fo,[E[2]||(E[2]=I("div",null,[I("h1",{class:"text-xl font-medium"},"Management Connections"),I("p",{class:"text-muted-foreground"}," Manage your database connections in one place ")],-1)),i(o(F),{id:"tour-add-connection-btn",size:"sm",variant:"outline",onClick:a},{default:l(()=>[i(p,{name:"lucide:plus",class:"size-4!"}),E[1]||(E[1]=W(" Add Connection "))]),_:1})]),i(Lo,{connections:c.connections,onEdit:u,onDelete:d,onCreate:a},null,8,["connections"]),i(tt,{open:t.value,"editing-connection":n.value,"onUpdate:open":E[0]||(E[0]=g=>t.value=g),onAddNew:v,onUpdate:w,workspaceId:c.workspaceId},null,8,["open","editing-connection","workspaceId"])])])}}}),qo={class:"w-full overflow-x-auto"},Uo=D({__name:"ManagementConnectionModal",props:{open:{},connections:{},workspaceId:{}},emits:["update:open"],setup(e,{emit:t}){const s=t;return(r,n)=>(S(),B(o(ve),{open:!!r.open,"onUpdate:open":n[0]||(n[0]=a=>s("update:open",a))},{default:l(()=>[i(o(we),{size:"preview"},{default:l(()=>[I("div",qo,[i(zo,{connections:r.connections,"workspace-id":r.workspaceId},null,8,["connections","workspace-id"])])]),_:1})]),_:1},8,["open"]))}}),Ee=D({__name:"AvatarFallback",props:{delayMs:{},asChild:{type:Boolean},as:{},class:{}},setup(e){const t=e,s=oe(()=>{const{class:r,...n}=t;return n});return(r,n)=>(S(),B(o(xo),$e({"data-slot":"avatar-fallback"},s.value,{class:o(z)("bg-muted flex size-full items-center justify-center rounded-full",t.class)}),{default:l(()=>[R(r.$slots,"default")]),_:3},16,["class"]))}}),ot=Symbol();function Le(){const e=Ne(so),t=Ne(ot);if(!e)throw new Error("useFormField should be used within <FormField>");const{name:s}=e,r=t,n={valid:lo(s),isDirty:ao(s),isTouched:io(s),error:ro(s)};return{id:r,name:s,formItemId:`${r}-form-item`,formDescriptionId:`${r}-form-item-description`,formMessageId:`${r}-form-item-message`,...n}}const ye=D({__name:"FormControl",setup(e){const{error:t,formItemId:s,formDescriptionId:r,formMessageId:n}=Le();return(a,v)=>(S(),B(o(Nt),{id:o(s),"data-slot":"form-control","aria-describedby":o(t)?`${o(r)} ${o(n)}`:`${o(r)}`,"aria-invalid":!!o(t)},{default:l(()=>[R(a.$slots,"default")]),_:3},8,["id","aria-describedby","aria-invalid"]))}}),ke=D({__name:"FormItem",props:{class:{}},setup(e){const t=e,s=Pt();return Ot(ot,s),(r,n)=>(S(),M("div",{"data-slot":"form-item",class:j(o(z)("grid gap-2",t.class))},[R(r.$slots,"default")],2))}}),be=D({__name:"FormLabel",props:{for:{},asChild:{type:Boolean},as:{},class:{}},setup(e){const t=e,{error:s,formItemId:r}=Le();return(n,a)=>(S(),B(o(Rt),{"data-slot":"form-label","data-error":!!o(s),class:j(o(z)("data-[error=true]:text-destructive-foreground",t.class)),for:o(r)},{default:l(()=>[R(n.$slots,"default")]),_:3},8,["data-error","class","for"]))}}),Ce=D({__name:"FormMessage",props:{class:{}},setup(e){const t=e,{name:s,formMessageId:r}=Le();return(n,a)=>(S(),B(o(co),{id:o(r),"data-slot":"form-message",as:"p",name:Ht(o(s)),class:j(o(z)("text-destructive-foreground text-sm",t.class))},null,8,["id","name","class"]))}}),nt=["lucide:badge","lucide:building-2","lucide:bone","lucide:book","hugeicons:ai-brain-05","lucide:circle-dashed","lucide:chess-bishop","lucide:chess-king","lucide:chess-pawn","lucide:chess-queen","lucide:chess-rook","lucide:fan","lucide:skull","lucide:ship-wheel","lucide:bug","lucide:hamburger"],pe=nt[0],jo=Ft({name:he({message:"Workspace name is required."}),desc:he().optional(),icon:he().default(pe)});function Vo(e){const t=Be(),s=uo({validationSchema:po(jo),initialValues:e.workspace?{name:e.workspace.name,desc:e.workspace.desc,icon:e.workspace.icon||pe}:{name:`My workspace ${(e==null?void 0:e.workspaceSeq)||0}`,icon:pe},name:"workspace-form"}),r=s.handleSubmit(n=>{!!e.workspace?(t.updateWorkspace({...e.workspace,desc:(n==null?void 0:n.desc)||void 0,name:n.name,icon:n.icon}),Pe("Workspace has been updated",{description:Q().toString()})):(t.createWorkspace({desc:(n==null?void 0:n.desc)||void 0,id:Qe(),name:n.name,icon:n.icon,createdAt:Q().toISOString()}),Pe("Workspace has been created",{description:Q().toString()})),e.onClose()});return{form:s,onSubmit:r}}const Ko={class:"grid grid-cols-8 gap-2"},st=D({__name:"CreateWorkspaceModal",props:{open:{},workspace:{},workspaceSeq:{}},emits:["update:open"],setup(e,{emit:t}){const s=e,r=t,n=()=>{r("update:open",!1)},{onSubmit:a}=Vo({workspace:s.workspace,workspaceSeq:s.workspaceSeq,onClose:n});return(v,w)=>{const u=L;return S(),B(o(ve),{open:!!v.open,"onUpdate:open":w[1]||(w[1]=d=>r("update:open",d))},{default:l(()=>[i(o(we),null,{default:l(()=>[i(o(Me),null,{default:l(()=>[i(o(De),null,{default:l(()=>[W(U(v.workspace?"Update workspace":"New workspace"),1)]),_:1})]),_:1}),I("form",{class:"space-y-4",onSubmit:w[0]||(w[0]=(...d)=>o(a)&&o(a)(...d))},[i(o(_e),{name:"icon"},{default:l(({componentField:d})=>[i(o(ke),null,{default:l(()=>[i(o(be),null,{default:l(()=>w[2]||(w[2]=[W("Icon")])),_:1}),i(o(ye),null,{default:l(()=>[i(o(mo),null,{default:l(()=>[i(o(fo),{"as-child":""},{default:l(()=>[i(o(Se),{id:"tour-workspace-icon",class:"cursor-pointer focus:ring-2 focus:ring-primary focus:outline-none",tabindex:"0",role:"button","aria-label":"Select workspace icon"},{default:l(()=>[i(o(Ee),null,{default:l(()=>[i(u,{name:d.modelValue||"hugeicons:folder-01",class:"size-5!"},null,8,["name"])]),_:2},1024)]),_:2},1024)]),_:2},1024),i(o(vo),{class:"w-full p-4"},{default:l(()=>[I("div",Ko,[(S(!0),M(Y,null,ne(o(nt),c=>(S(),B(o(Se),{onClick:E=>d.onChange(c),key:c,class:"cursor-pointer"},{default:l(()=>[i(o(Ee),null,{default:l(()=>[i(u,{name:c,class:"size-5!"},null,8,["name"])]),_:2},1024)]),_:2},1032,["onClick"]))),128))])]),_:2},1024)]),_:2},1024)]),_:2},1024),i(o(Ce))]),_:2},1024)]),_:1}),i(o(_e),{name:"name"},{default:l(({componentField:d})=>[i(o(ke),null,{default:l(()=>[i(o(be),{class:"gap-1"},{default:l(()=>w[3]||(w[3]=[W("Name "),I("span",{class:"text-red-500"},"*",-1)])),_:1}),i(o(ye),null,{default:l(()=>[i(o(Je),$e({id:"tour-workspace-name",type:"text",placeholder:"Workspace name"},d),null,16)]),_:2},1024),i(o(Ce))]),_:2},1024)]),_:1}),i(o(_e),{name:"desc"},{default:l(({componentField:d})=>[i(o(ke),null,{default:l(()=>[i(o(be),null,{default:l(()=>w[4]||(w[4]=[W("Description")])),_:1}),i(o(ye),null,{default:l(()=>[i(o(wo),$e({id:"tour-workspace-desc",placeholder:"Workspace description ..."},d),null,16)]),_:2},1024),i(o(Ce))]),_:2},1024)]),_:1}),i(o(Xe),{class:"mt-4"},{default:l(()=>[i(o(F),{id:"tour-workspace-create",type:"submit"},{default:l(()=>[W(U(v.workspace?"Update":"Create"),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,["open"])}}}),Yo=D({__name:"RestoreDataModal",props:{open:{type:Boolean}},emits:["update:open"],setup(e,{emit:t}){const s=t,r=O(null),n=()=>{var a;r.value&&!r.value.canClose()||((a=r.value)==null||a.resetState(),s("update:open",!1))};return(a,v)=>{const w=L;return S(),B(o(ve),{open:a.open,"onUpdate:open":n},{default:l(()=>[i(o(we),{class:"sm:max-w-2xl flex flex-col"},{default:l(()=>[i(o(Me),null,{default:l(()=>[i(o(De),{class:"flex items-center gap-2"},{default:l(()=>[i(w,{name:"hugeicons:file-download",class:"size-4!"}),v[0]||(v[0]=W(" Restore Data "))]),_:1})]),_:1}),i(o(zt),{ref_key:"importPanelRef",ref:r,layout:"modal","success-action-label":"Close","success-action-mode":"emit",onSuccessAction:n},null,512)]),_:1})]),_:1},8,["open"])}}});var ue={exports:{}},Go=ue.exports,Re;function Qo(){return Re||(Re=1,function(e,t){(function(s,r){e.exports=r()})(Go,function(){return function(s,r,n){s=s||{};var a=r.prototype,v={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function w(d,c,E,p){return a.fromToBase(d,c,E,p)}n.en.relativeTime=v,a.fromToBase=function(d,c,E,p,g){for(var f,$,b,C=E.$locale().relativeTime||v,_=s.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],m=_.length,x=0;x<m;x+=1){var y=_[x];y.d&&(f=p?n(d).diff(E,y.d,!0):E.diff(d,y.d,!0));var T=(s.rounding||Math.round)(Math.abs(f));if(b=f>0,T<=y.r||!y.r){T<=1&&x>0&&(y=_[x-1]);var P=C[y.l];g&&(T=g(""+T)),$=typeof P=="string"?P.replace("%d",T):P(T,c,y.l,b);break}}if(c)return $;var q=b?C.future:C.past;return typeof q=="function"?q($):q.replace("%s",$)},a.to=function(d,c){return w(d,c,this,!0)},a.from=function(d,c){return w(d,c,this)};var u=function(d){return d.$u?n.utc():n()};a.toNow=function(d){return this.to(u(this),d)},a.fromNow=function(d){return this.from(u(this),d)}}})}(ue)),ue.exports}var Jo=Qo();const Xo=qt(Jo);function Zo(e){const{createConnection:t,openWorkspaceWithConnection:s}=Ie(),r=Be(),n=Ae(),{checkAndConfirm:a}=Ve(),v=O(!1),w=O(!1),u=O(!1),d=O(),c=O(!1),E=()=>{w.value=!1,r.deleteWorkspace(e.workspace.id)},p=oe(()=>n.getConnectionsByWorkspaceId(e.workspace.id));return{workspaceStore:r,isOpenEditModal:v,isOpenDeleteModal:w,isOpenConnectionSelector:u,dropdownTriggerRef:d,isModalCreateConnectionOpen:c,connections:p,onConfirmDelete:E,onOpenWorkspace:()=>{var C;(C=e.onSelectWorkspace)==null||C.call(e,e.workspace.id)},onOpenConnectionSelector:()=>{u.value=!0},onOpenWorkspaceWithConnection:async C=>{u.value=!1;const _=p.value.find(m=>m.id===C);_&&!await a(_)||await s({connId:C,wsId:e.workspace.id})},handleAddConnection:C=>{t(C)}}}const en=D({__name:"DeleteWorkspaceModal",props:{open:{},onConfirm:{type:Function}},emits:["update:open"],setup(e,{emit:t}){const s=t;return(r,n)=>{const a=F,v=we;return S(),B(o(ve),{open:!!r.open,"onUpdate:open":n[0]||(n[0]=w=>s("update:open",w))},{default:l(()=>[i(v,null,{default:l(()=>[i(o(Me),null,{default:l(()=>[i(o(De),null,{default:l(()=>n[1]||(n[1]=[W("Delete workspace")])),_:1}),i(o(Ut),null,{default:l(()=>n[2]||(n[2]=[W(" Are you sure you want to delete this workspace? "),I("br",null,null,-1),W(" All data will be permanently deleted this action cannot be undone. ")])),_:1})]),_:1}),i(o(Xe),null,{default:l(()=>[i(a,{type:"submit",onClick:r.onConfirm,variant:"default"},{default:l(()=>n[3]||(n[3]=[W(" Delete ")])),_:1},8,["onClick"])]),_:1})]),_:1})]),_:1},8,["open"])}}}),tn={class:"flex items-center space-x-2"},on={class:"space-y-1"},nn={class:"text-sm line-clamp-2 break-words break-all text-left"},sn={class:"flex items-center pt-2"},rn={class:"text-xs text-muted-foreground"},an={class:"flex items-center pt-2"},ln={key:0,class:"text-xs text-muted-foreground"},cn={key:1,class:"text-xs text-muted-foreground"},dn={class:"flex items-center pt-2"},un={class:"text-xs text-muted-foreground"},pn={class:"flex items-center gap-1"},mn={class:"flex items-center gap-2 min-w-0"},fn={class:"truncate"},vn={key:0,class:"flex items-center gap-1 ml-auto flex-shrink-0"},wn={key:1,class:"ml-auto text-xs text-muted-foreground"},gn=D({__name:"WorkspaceCard",props:{workspace:{},onOpenWorkspace:{type:Function}},emits:["onSelectWorkspace"],setup(e,{emit:t}){Q.extend(Xo);const s=je(),r=We(),n=oe(()=>Ze(r.public.sqlite3ConnectionsEnabled)),a=e,v=t,{workspaceStore:w,isOpenEditModal:u,isOpenDeleteModal:d,isOpenConnectionSelector:c,dropdownTriggerRef:E,isModalCreateConnectionOpen:p,connections:g,onConfirmDelete:f,onOpenWorkspace:$,onOpenConnectionSelector:b,onOpenWorkspaceWithConnection:C,handleAddConnection:_}=Zo({workspace:a.workspace,onSelectWorkspace:m=>v("onSelectWorkspace",m)});return(m,x)=>{const y=Ee,T=Se,P=ho,q=yo,X=_o,Z=go,G=Gt,ee=Yt;return S(),M(Y,null,[o(p)?(S(),B(o(tt),{key:0,open:o(p),"editing-connection":null,"onUpdate:open":x[0]||(x[0]=A=>p.value=A),onAddNew:o(_),workspaceId:m.workspace.id},null,8,["open","onAddNew","workspaceId"])):V("",!0),o(u)?(S(),B(st,{key:1,open:o(u),"onUpdate:open":x[1]||(x[1]=A=>te(u)?u.value=A:null),workspace:m.workspace,workspaceSeq:o(w).workspaces.length},null,8,["open","workspace","workspaceSeq"])):V("",!0),o(d)?(S(),B(en,{key:2,open:o(d),"onUpdate:open":x[2]||(x[2]=A=>te(d)?d.value=A:null),onConfirm:o(f)},null,8,["open","onConfirm"])):V("",!0),i(o(bo),{class:"gap-4 justify-between!"},{default:l(()=>[i(o(Po),{class:"flex justify-between px-4"},{default:l(()=>[I("div",tn,[i(T,null,{default:l(()=>[i(y,null,{default:l(()=>[i(o(L),{name:m.workspace.icon,class:"size-5!"},null,8,["name"])]),_:1})]),_:1}),I("div",null,[i(o(Oo),{class:"line-clamp-1"},{default:l(()=>[W(U(m.workspace.name),1)]),_:1})])]),i(Z,null,{default:l(()=>[i(P,null,{default:l(()=>[i(o(F),{size:"icon",variant:"ghost"},{default:l(()=>[i(o(L),{name:"hugeicons:more-vertical-circle-01",class:"size-4!"})]),_:1})]),_:1}),i(X,null,{default:l(()=>[i(q,{class:"cursor-pointer flex items-center",onClick:x[3]||(x[3]=A=>u.value=!0)},{default:l(()=>[i(o(L),{name:"hugeicons:pencil-edit-02",class:"size-4! min-w-4"}),x[9]||(x[9]=W(" Edit workspace "))]),_:1}),i(q,{class:"cursor-pointer flex items-center",disabled:""},{default:l(()=>[i(o(L),{name:"hugeicons:link-04",class:"size-4! min-w-4"}),x[10]||(x[10]=W(" Invite "))]),_:1}),i(q,{class:"cursor-pointer flex items-center",onClick:x[4]||(x[4]=A=>d.value=!0)},{default:l(()=>[i(o(L),{name:"hugeicons:delete-02",class:"size-4! min-w-4"}),x[11]||(x[11]=W(" Delete workspace "))]),_:1})]),_:1})]),_:1})]),_:1}),i(o(ko),{class:"grid gap-4 overflow-hidden px-4"},{default:l(()=>[I("div",on,[I("p",nn,U(m.workspace.desc),1),I("div",sn,[i(o(L),{name:"hugeicons:connect",class:"mr-2 h-4 w-4 opacity-70"}),I("span",rn," Connection : "+U(o(g).length),1)]),I("div",an,[i(o(L),{name:"hugeicons:clock-05",class:"mr-2 h-4 w-4 opacity-70"}),m.workspace.lastOpened?(S(),M("span",ln," Last opened : "+U(o(Q)(m.workspace.lastOpened).fromNow()),1)):(S(),M("span",cn," Last opened : -/- "))]),I("div",dn,[i(o(L),{name:"hugeicons:clock-01",class:"mr-2 h-4 w-4 opacity-70"}),I("span",un," Created : "+U(o(Q)(m.workspace.createdAt).fromNow()),1)])])]),_:1}),i(o(No),{class:"px-4"},{default:l(()=>[i(o(jt),{open:o(c),"onUpdate:open":x[8]||(x[8]=A=>te(c)?c.value=A:null)},{default:l(()=>[i(o(F),{id:`tour-open-workspace-${m.workspace.id}`,ref_key:"dropdownTriggerRef",ref:E,variant:"default",class:"w-full flex items-center justify-between",onClick:x[6]||(x[6]=A=>o($)()),size:"sm"},{default:l(()=>[I("div",pn,[i(o(L),{name:"hugeicons:square-arrow-up-right",class:"h-4 w-4"}),x[12]||(x[12]=W(" Open workspace "))]),i(o(F),{size:"iconSm",variant:"ghost",onClick:x[5]||(x[5]=Vt(A=>o(b)(),["stop"]))},{default:l(()=>[i(o(L),{name:"hugeicons:arrow-down-01",class:"size-5!"})]),_:1})]),_:1},8,["id"]),i(o(Kt),{reference:o(E)},{default:l(()=>[i(ee,null,{default:l(()=>[I("div",{class:"flex px-2 py-0.5 h-8 hover:bg-muted rounded-md font-normal text-sm items-center gap-1 cursor-pointer",onClick:x[7]||(x[7]=A=>p.value=!0)},[i(o(L),{name:"hugeicons:plus-sign"}),x[13]||(x[13]=W(" Add new connection "))]),o(g).length?(S(),B(G,{key:0})):V("",!0),(S(!0),M(Y,null,ne(o(g),A=>(S(),B(o(Qt),{class:"cursor-pointer",value:A.id,key:A.id,disabled:o(se)(A,o(n)),onSelect:K=>o(C)(A.id)},{default:l(()=>{var K;return[I("div",mn,[(S(),B(Ye((K=o(et)(A.type))==null?void 0:K.icon),{class:"size-4! shrink-0"})),I("span",fn,U(A.name),1),(A.tagIds??[]).length?(S(),M("div",vn,[(S(!0),M(Y,null,ne(o(s).getTagsByIds(A.tagIds??[]),ie=>(S(),B(o(Ge),{key:ie.id,tag:ie},null,8,["tag"]))),128))])):V("",!0),o(se)(A,o(n))?(S(),M("span",wn," Disabled ")):V("",!0)])]}),_:2},1032,["value","disabled","onSelect"]))),128))]),_:1})]),_:1},8,["reference"])]),_:1},8,["open"])]),_:1})]),_:1})],64)}}}),hn={class:"flex items-center justify-between mt-2"},_n={class:"container flex flex-col items-start gap-1 py-2"},yn={class:"text-3xl flex items-center gap-2 font-bold leading-tight tracking-tighter lg:leading-[1.1]"},kn={class:"flex items-center gap-2 shrink-0"},bn=D({__name:"WorkspaceHeader",props:{isShowButtonCreate:{type:Boolean},isShowButtonRestore:{type:Boolean}},emits:["create","restore"],setup(e,{emit:t}){const s=t;return(r,n)=>{const a=L;return S(),M("div",hn,[I("div",_n,[I("h1",yn,[n[2]||(n[2]=W(" Hello ")),i(a,{name:"hugeicons:waving-hand-01"})]),n[3]||(n[3]=I("p",{class:"max-w-2xl text-lg font-light text-foreground"}," Welcome to your workspaces ",-1))]),I("div",kn,[r.isShowButtonRestore?(S(),B(o(F),{key:0,type:"button",variant:"outline",size:"sm",onClick:n[0]||(n[0]=v=>s("restore"))},{default:l(()=>[i(a,{name:"lucide:upload"}),n[4]||(n[4]=W(" Restore Data "))]),_:1})):V("",!0),r.isShowButtonCreate?(S(),B(o(F),{key:1,id:"tour-new-workspace-btn",variant:"outline",size:"sm",onClick:n[1]||(n[1]=v=>s("create"))},{default:l(()=>[i(a,{name:"lucide:plus"}),n[5]||(n[5]=W(" New Workspace "))]),_:1})):V("",!0)])])}}});let Te={},rt;function xe(e={}){Te={animate:!0,allowClose:!0,overlayClickBehavior:"close",overlayOpacity:.7,smoothScroll:!1,disableActiveInteraction:!1,showProgress:!1,stagePadding:10,stageRadius:5,popoverOffset:10,showButtons:["next","previous","close"],disableButtons:[],overlayColor:"#000",...e}}function h(e){return e?Te[e]:Te}function Cn(e){rt=e}function H(){return rt}let me={};function ce(e,t){me[e]=t}function J(e){var t;(t=me[e])==null||t.call(me)}function xn(){me={}}function de(e,t,s,r){return(e/=r/2)<1?s/2*e*e+t:-s/2*(--e*(e-2)-1)+t}function it(e){const t='a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), input[type="radio"]:not([disabled]), input[type="checkbox"]:not([disabled]), select:not([disabled])';return e.flatMap(s=>{const r=s.matches(t),n=Array.from(s.querySelectorAll(t));return[...r?[s]:[],...n]}).filter(s=>getComputedStyle(s).pointerEvents!=="none"&&En(s))}function at(e){if(!e||Sn(e))return;const t=h("smoothScroll"),s=e.offsetHeight>window.innerHeight;e.scrollIntoView({behavior:!t||$n(e)?"auto":"smooth",inline:"center",block:s?"start":"center"})}function $n(e){if(!e||!e.parentElement)return;const t=e.parentElement;return t.scrollHeight>t.clientHeight}function Sn(e){const t=e.getBoundingClientRect();return t.top>=0&&t.left>=0&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.right<=(window.innerWidth||document.documentElement.clientWidth)}function En(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)}let fe={};function N(e,t){fe[e]=t}function k(e){return e?fe[e]:fe}function He(){fe={}}function Tn(e,t,s,r){let n=k("__activeStagePosition");const a=n||s.getBoundingClientRect(),v=r.getBoundingClientRect(),w=de(e,a.x,v.x-a.x,t),u=de(e,a.y,v.y-a.y,t),d=de(e,a.width,v.width-a.width,t),c=de(e,a.height,v.height-a.height,t);n={x:w,y:u,width:d,height:c},ct(n),N("__activeStagePosition",n)}function lt(e){if(!e)return;const t=e.getBoundingClientRect(),s={x:t.x,y:t.y,width:t.width,height:t.height};N("__activeStagePosition",s),ct(s)}function In(){const e=k("__activeStagePosition"),t=k("__overlaySvg");if(!e)return;if(!t){console.warn("No stage svg found.");return}const s=window.innerWidth,r=window.innerHeight;t.setAttribute("viewBox",`0 0 ${s} ${r}`)}function Wn(e){const t=An(e);document.body.appendChild(t),pt(t,s=>{s.target.tagName==="path"&&J("overlayClick")}),N("__overlaySvg",t)}function ct(e){const t=k("__overlaySvg");if(!t){Wn(e);return}const s=t.firstElementChild;if((s==null?void 0:s.tagName)!=="path")throw new Error("no path element found in stage svg");s.setAttribute("d",dt(e))}function An(e){const t=window.innerWidth,s=window.innerHeight,r=document.createElementNS("http://www.w3.org/2000/svg","svg");r.classList.add("driver-overlay","driver-overlay-animated"),r.setAttribute("viewBox",`0 0 ${t} ${s}`),r.setAttribute("xmlSpace","preserve"),r.setAttribute("xmlnsXlink","http://www.w3.org/1999/xlink"),r.setAttribute("version","1.1"),r.setAttribute("preserveAspectRatio","xMinYMin slice"),r.style.fillRule="evenodd",r.style.clipRule="evenodd",r.style.strokeLinejoin="round",r.style.strokeMiterlimit="2",r.style.zIndex="10000",r.style.position="fixed",r.style.top="0",r.style.left="0",r.style.width="100%",r.style.height="100%";const n=document.createElementNS("http://www.w3.org/2000/svg","path");return n.setAttribute("d",dt(e)),n.style.fill=h("overlayColor")||"rgb(0,0,0)",n.style.opacity=`${h("overlayOpacity")}`,n.style.pointerEvents="auto",n.style.cursor="auto",r.appendChild(n),r}function dt(e){const t=window.innerWidth,s=window.innerHeight,r=h("stagePadding")||0,n=h("stageRadius")||0,a=e.width+r*2,v=e.height+r*2,w=Math.min(n,a/2,v/2),u=Math.floor(Math.max(w,0)),d=e.x-r+u,c=e.y-r,E=a-u*2,p=v-u*2;return`M${t},0L0,0L0,${s}L${t},${s}L${t},0Z
2
+ M${d},${c} h${E} a${u},${u} 0 0 1 ${u},${u} v${p} a${u},${u} 0 0 1 -${u},${u} h-${E} a${u},${u} 0 0 1 -${u},-${u} v-${p} a${u},${u} 0 0 1 ${u},-${u} z`}function Bn(){const e=k("__overlaySvg");e&&e.remove()}function Mn(){const e=document.getElementById("driver-dummy-element");if(e)return e;let t=document.createElement("div");return t.id="driver-dummy-element",t.style.width="0",t.style.height="0",t.style.pointerEvents="none",t.style.opacity="0",t.style.position="fixed",t.style.top="50%",t.style.left="50%",document.body.appendChild(t),t}function Fe(e){const{element:t}=e;let s=typeof t=="function"?t():typeof t=="string"?document.querySelector(t):t;s||(s=Mn()),Ln(s,e)}function Dn(){const e=k("__activeElement"),t=k("__activeStep");e&&(lt(e),In(),ft(e,t))}function Ln(e,t){var s;const r=Date.now(),n=k("__activeStep"),a=k("__activeElement")||e,v=!a||a===e,w=e.id==="driver-dummy-element",u=a.id==="driver-dummy-element",d=h("animate"),c=t.onHighlightStarted||h("onHighlightStarted"),E=(t==null?void 0:t.onHighlighted)||h("onHighlighted"),p=(n==null?void 0:n.onDeselected)||h("onDeselected"),g=h(),f=k();!v&&p&&p(u?void 0:a,n,{config:g,state:f,driver:H()}),c&&c(w?void 0:e,t,{config:g,state:f,driver:H()});const $=!v&&d;let b=!1;Hn(),N("previousStep",n),N("previousElement",a),N("activeStep",t),N("activeElement",e);const C=()=>{if(k("__transitionCallback")!==C)return;const _=Date.now()-r,m=400-_<=400/2;t.popover&&m&&!b&&$&&(ze(e,t),b=!0),h("animate")&&_<400?Tn(_,400,a,e):(lt(e),E&&E(w?void 0:e,t,{config:h(),state:k(),driver:H()}),N("__transitionCallback",void 0),N("__previousStep",n),N("__previousElement",a),N("__activeStep",t),N("__activeElement",e)),window.requestAnimationFrame(C)};N("__transitionCallback",C),window.requestAnimationFrame(C),at(e),!$&&t.popover&&ze(e,t),a.classList.remove("driver-active-element","driver-no-interaction"),a.removeAttribute("aria-haspopup"),a.removeAttribute("aria-expanded"),a.removeAttribute("aria-controls"),((s=t.disableActiveInteraction)!=null?s:h("disableActiveInteraction"))&&e.classList.add("driver-no-interaction"),e.classList.add("driver-active-element"),e.setAttribute("aria-haspopup","dialog"),e.setAttribute("aria-expanded","true"),e.setAttribute("aria-controls","driver-popover-content")}function Nn(){var e;(e=document.getElementById("driver-dummy-element"))==null||e.remove(),document.querySelectorAll(".driver-active-element").forEach(t=>{t.classList.remove("driver-active-element","driver-no-interaction"),t.removeAttribute("aria-haspopup"),t.removeAttribute("aria-expanded"),t.removeAttribute("aria-controls")})}function re(){const e=k("__resizeTimeout");e&&window.cancelAnimationFrame(e),N("__resizeTimeout",window.requestAnimationFrame(Dn))}function Pn(e){var t;if(!k("isInitialized")||!(e.key==="Tab"||e.keyCode===9))return;const s=k("__activeElement"),r=(t=k("popover"))==null?void 0:t.wrapper,n=it([...r?[r]:[],...s?[s]:[]]),a=n[0],v=n[n.length-1];if(e.preventDefault(),e.shiftKey){const w=n[n.indexOf(document.activeElement)-1]||v;w==null||w.focus()}else{const w=n[n.indexOf(document.activeElement)+1]||a;w==null||w.focus()}}function ut(e){var t;((t=h("allowKeyboardControl"))==null||t)&&(e.key==="Escape"?J("escapePress"):e.key==="ArrowRight"?J("arrowRightPress"):e.key==="ArrowLeft"&&J("arrowLeftPress"))}function pt(e,t,s){const r=(n,a)=>{const v=n.target;e.contains(v)&&((!s||s(v))&&(n.preventDefault(),n.stopPropagation(),n.stopImmediatePropagation()),a==null||a(n))};document.addEventListener("pointerdown",r,!0),document.addEventListener("mousedown",r,!0),document.addEventListener("pointerup",r,!0),document.addEventListener("mouseup",r,!0),document.addEventListener("click",n=>{r(n,t)},!0)}function On(){window.addEventListener("keyup",ut,!1),window.addEventListener("keydown",Pn,!1),window.addEventListener("resize",re),window.addEventListener("scroll",re)}function Rn(){window.removeEventListener("keyup",ut),window.removeEventListener("resize",re),window.removeEventListener("scroll",re)}function Hn(){const e=k("popover");e&&(e.wrapper.style.display="none")}function ze(e,t){var s,r;let n=k("popover");n&&document.body.removeChild(n.wrapper),n=zn(),document.body.appendChild(n.wrapper);const{title:a,description:v,showButtons:w,disableButtons:u,showProgress:d,nextBtnText:c=h("nextBtnText")||"Next &rarr;",prevBtnText:E=h("prevBtnText")||"&larr; Previous",progressText:p=h("progressText")||"{current} of {total}"}=t.popover||{};n.nextButton.innerHTML=c,n.previousButton.innerHTML=E,n.progress.innerHTML=p,a?(n.title.innerHTML=a,n.title.style.display="block"):n.title.style.display="none",v?(n.description.innerHTML=v,n.description.style.display="block"):n.description.style.display="none";const g=w||h("showButtons"),f=d||h("showProgress")||!1,$=(g==null?void 0:g.includes("next"))||(g==null?void 0:g.includes("previous"))||f;n.closeButton.style.display=g.includes("close")?"block":"none",$?(n.footer.style.display="flex",n.progress.style.display=f?"block":"none",n.nextButton.style.display=g.includes("next")?"block":"none",n.previousButton.style.display=g.includes("previous")?"block":"none"):n.footer.style.display="none";const b=u||h("disableButtons")||[];b!=null&&b.includes("next")&&(n.nextButton.disabled=!0,n.nextButton.classList.add("driver-popover-btn-disabled")),b!=null&&b.includes("previous")&&(n.previousButton.disabled=!0,n.previousButton.classList.add("driver-popover-btn-disabled")),b!=null&&b.includes("close")&&(n.closeButton.disabled=!0,n.closeButton.classList.add("driver-popover-btn-disabled"));const C=n.wrapper;C.style.display="block",C.style.left="",C.style.top="",C.style.bottom="",C.style.right="",C.id="driver-popover-content",C.setAttribute("role","dialog"),C.setAttribute("aria-labelledby","driver-popover-title"),C.setAttribute("aria-describedby","driver-popover-description");const _=n.arrow;_.className="driver-popover-arrow";const m=((s=t.popover)==null?void 0:s.popoverClass)||h("popoverClass")||"";C.className=`driver-popover ${m}`.trim(),pt(n.wrapper,P=>{var q,X,Z;const G=P.target,ee=((q=t.popover)==null?void 0:q.onNextClick)||h("onNextClick"),A=((X=t.popover)==null?void 0:X.onPrevClick)||h("onPrevClick"),K=((Z=t.popover)==null?void 0:Z.onCloseClick)||h("onCloseClick");if(G.closest(".driver-popover-next-btn"))return ee?ee(e,t,{config:h(),state:k(),driver:H()}):J("nextClick");if(G.closest(".driver-popover-prev-btn"))return A?A(e,t,{config:h(),state:k(),driver:H()}):J("prevClick");if(G.closest(".driver-popover-close-btn"))return K?K(e,t,{config:h(),state:k(),driver:H()}):J("closeClick")},P=>!(n!=null&&n.description.contains(P))&&!(n!=null&&n.title.contains(P))&&typeof P.className=="string"&&P.className.includes("driver-popover")),N("popover",n);const x=((r=t.popover)==null?void 0:r.onPopoverRender)||h("onPopoverRender");x&&x(n,{config:h(),state:k(),driver:H()}),ft(e,t),at(C);const y=e.classList.contains("driver-dummy-element"),T=it([C,...y?[]:[e]]);T.length>0&&T[0].focus()}function mt(){const e=k("popover");if(!(e!=null&&e.wrapper))return;const t=e.wrapper.getBoundingClientRect(),s=h("stagePadding")||0,r=h("popoverOffset")||0;return{width:t.width+s+r,height:t.height+s+r,realWidth:t.width,realHeight:t.height}}function qe(e,t){const{elementDimensions:s,popoverDimensions:r,popoverPadding:n,popoverArrowDimensions:a}=t;return e==="start"?Math.max(Math.min(s.top-n,window.innerHeight-r.realHeight-a.width),a.width):e==="end"?Math.max(Math.min(s.top-(r==null?void 0:r.realHeight)+s.height+n,window.innerHeight-(r==null?void 0:r.realHeight)-a.width),a.width):e==="center"?Math.max(Math.min(s.top+s.height/2-(r==null?void 0:r.realHeight)/2,window.innerHeight-(r==null?void 0:r.realHeight)-a.width),a.width):0}function Ue(e,t){const{elementDimensions:s,popoverDimensions:r,popoverPadding:n,popoverArrowDimensions:a}=t;return e==="start"?Math.max(Math.min(s.left-n,window.innerWidth-r.realWidth-a.width),a.width):e==="end"?Math.max(Math.min(s.left-(r==null?void 0:r.realWidth)+s.width+n,window.innerWidth-(r==null?void 0:r.realWidth)-a.width),a.width):e==="center"?Math.max(Math.min(s.left+s.width/2-(r==null?void 0:r.realWidth)/2,window.innerWidth-(r==null?void 0:r.realWidth)-a.width),a.width):0}function ft(e,t){const s=k("popover");if(!s)return;const{align:r="start",side:n="left"}=(t==null?void 0:t.popover)||{},a=r,v=e.id==="driver-dummy-element"?"over":n,w=h("stagePadding")||0,u=mt(),d=s.arrow.getBoundingClientRect(),c=e.getBoundingClientRect(),E=c.top-u.height;let p=E>=0;const g=window.innerHeight-(c.bottom+u.height);let f=g>=0;const $=c.left-u.width;let b=$>=0;const C=window.innerWidth-(c.right+u.width);let _=C>=0;const m=!p&&!f&&!b&&!_;let x=v;if(v==="top"&&p?_=b=f=!1:v==="bottom"&&f?_=b=p=!1:v==="left"&&b?_=p=f=!1:v==="right"&&_&&(b=p=f=!1),v==="over"){const y=window.innerWidth/2-u.realWidth/2,T=window.innerHeight/2-u.realHeight/2;s.wrapper.style.left=`${y}px`,s.wrapper.style.right="auto",s.wrapper.style.top=`${T}px`,s.wrapper.style.bottom="auto"}else if(m){const y=window.innerWidth/2-(u==null?void 0:u.realWidth)/2,T=10;s.wrapper.style.left=`${y}px`,s.wrapper.style.right="auto",s.wrapper.style.bottom=`${T}px`,s.wrapper.style.top="auto"}else if(b){const y=Math.min($,window.innerWidth-(u==null?void 0:u.realWidth)-d.width),T=qe(a,{elementDimensions:c,popoverDimensions:u,popoverPadding:w,popoverArrowDimensions:d});s.wrapper.style.left=`${y}px`,s.wrapper.style.top=`${T}px`,s.wrapper.style.bottom="auto",s.wrapper.style.right="auto",x="left"}else if(_){const y=Math.min(C,window.innerWidth-(u==null?void 0:u.realWidth)-d.width),T=qe(a,{elementDimensions:c,popoverDimensions:u,popoverPadding:w,popoverArrowDimensions:d});s.wrapper.style.right=`${y}px`,s.wrapper.style.top=`${T}px`,s.wrapper.style.bottom="auto",s.wrapper.style.left="auto",x="right"}else if(p){const y=Math.min(E,window.innerHeight-u.realHeight-d.width);let T=Ue(a,{elementDimensions:c,popoverDimensions:u,popoverPadding:w,popoverArrowDimensions:d});s.wrapper.style.top=`${y}px`,s.wrapper.style.left=`${T}px`,s.wrapper.style.bottom="auto",s.wrapper.style.right="auto",x="top"}else if(f){const y=Math.min(g,window.innerHeight-(u==null?void 0:u.realHeight)-d.width);let T=Ue(a,{elementDimensions:c,popoverDimensions:u,popoverPadding:w,popoverArrowDimensions:d});s.wrapper.style.left=`${T}px`,s.wrapper.style.bottom=`${y}px`,s.wrapper.style.top="auto",s.wrapper.style.right="auto",x="bottom"}m?s.arrow.classList.add("driver-popover-arrow-none"):Fn(a,x,e)}function Fn(e,t,s){const r=k("popover");if(!r)return;const n=s.getBoundingClientRect(),a=mt(),v=r.arrow,w=a.width,u=window.innerWidth,d=n.width,c=n.left,E=a.height,p=window.innerHeight,g=n.top,f=n.height;v.className="driver-popover-arrow";let $=t,b=e;if(t==="top"?(c+d<=0?($="right",b="end"):c+d-w<=0&&($="top",b="start"),c>=u?($="left",b="end"):c+w>=u&&($="top",b="end")):t==="bottom"?(c+d<=0?($="right",b="start"):c+d-w<=0&&($="bottom",b="start"),c>=u?($="left",b="start"):c+w>=u&&($="bottom",b="end")):t==="left"?(g+f<=0?($="bottom",b="end"):g+f-E<=0&&($="left",b="start"),g>=p?($="top",b="end"):g+E>=p&&($="left",b="end")):t==="right"&&(g+f<=0?($="bottom",b="start"):g+f-E<=0&&($="right",b="start"),g>=p?($="top",b="start"):g+E>=p&&($="right",b="end")),!$)v.classList.add("driver-popover-arrow-none");else{v.classList.add(`driver-popover-arrow-side-${$}`),v.classList.add(`driver-popover-arrow-align-${b}`);const C=s.getBoundingClientRect(),_=v.getBoundingClientRect(),m=h("stagePadding")||0,x=C.left-m<window.innerWidth&&C.right+m>0&&C.top-m<window.innerHeight&&C.bottom+m>0;t==="bottom"&&x&&(_.x>C.x&&_.x+_.width<C.x+C.width?r.wrapper.style.transform="translateY(0)":(v.classList.remove(`driver-popover-arrow-align-${b}`),v.classList.add("driver-popover-arrow-none"),r.wrapper.style.transform=`translateY(-${m/2}px)`))}}function zn(){const e=document.createElement("div");e.classList.add("driver-popover");const t=document.createElement("div");t.classList.add("driver-popover-arrow");const s=document.createElement("header");s.id="driver-popover-title",s.classList.add("driver-popover-title"),s.style.display="none",s.innerText="Popover Title";const r=document.createElement("div");r.id="driver-popover-description",r.classList.add("driver-popover-description"),r.style.display="none",r.innerText="Popover description is here";const n=document.createElement("button");n.type="button",n.classList.add("driver-popover-close-btn"),n.setAttribute("aria-label","Close"),n.innerHTML="&times;";const a=document.createElement("footer");a.classList.add("driver-popover-footer");const v=document.createElement("span");v.classList.add("driver-popover-progress-text"),v.innerText="";const w=document.createElement("span");w.classList.add("driver-popover-navigation-btns");const u=document.createElement("button");u.type="button",u.classList.add("driver-popover-prev-btn"),u.innerHTML="&larr; Previous";const d=document.createElement("button");return d.type="button",d.classList.add("driver-popover-next-btn"),d.innerHTML="Next &rarr;",w.appendChild(u),w.appendChild(d),a.appendChild(v),a.appendChild(w),e.appendChild(n),e.appendChild(t),e.appendChild(s),e.appendChild(r),e.appendChild(a),{wrapper:e,arrow:t,title:s,description:r,footer:a,previousButton:u,nextButton:d,closeButton:n,footerButtons:w,progress:v}}function qn(){var e;const t=k("popover");t&&((e=t.wrapper.parentElement)==null||e.removeChild(t.wrapper))}function Un(e={}){xe(e);function t(){h("allowClose")&&c()}function s(){const p=h("overlayClickBehavior");if(h("allowClose")&&p==="close"){c();return}if(typeof p=="function"){const g=k("__activeStep"),f=k("__activeElement");p(f,g,{config:h(),state:k(),driver:H()});return}p==="nextStep"&&r()}function r(){const p=k("activeIndex"),g=h("steps")||[];if(typeof p>"u")return;const f=p+1;g[f]?d(f):c()}function n(){const p=k("activeIndex"),g=h("steps")||[];if(typeof p>"u")return;const f=p-1;g[f]?d(f):c()}function a(p){(h("steps")||[])[p]?d(p):c()}function v(){var p;if(k("__transitionCallback"))return;const g=k("activeIndex"),f=k("__activeStep"),$=k("__activeElement");if(typeof g>"u"||typeof f>"u"||typeof k("activeIndex")>"u")return;const b=((p=f.popover)==null?void 0:p.onPrevClick)||h("onPrevClick");if(b)return b($,f,{config:h(),state:k(),driver:H()});n()}function w(){var p;if(k("__transitionCallback"))return;const g=k("activeIndex"),f=k("__activeStep"),$=k("__activeElement");if(typeof g>"u"||typeof f>"u")return;const b=((p=f.popover)==null?void 0:p.onNextClick)||h("onNextClick");if(b)return b($,f,{config:h(),state:k(),driver:H()});r()}function u(){k("isInitialized")||(N("isInitialized",!0),document.body.classList.add("driver-active",h("animate")?"driver-fade":"driver-simple"),On(),ce("overlayClick",s),ce("escapePress",t),ce("arrowLeftPress",v),ce("arrowRightPress",w))}function d(p=0){var g,f,$,b,C,_,m,x;const y=h("steps");if(!y){console.error("No steps to drive through"),c();return}if(!y[p]){c();return}N("__activeOnDestroyed",document.activeElement),N("activeIndex",p);const T=y[p],P=y[p+1],q=y[p-1],X=((g=T.popover)==null?void 0:g.doneBtnText)||h("doneBtnText")||"Done",Z=h("allowClose"),G=typeof((f=T.popover)==null?void 0:f.showProgress)<"u"?($=T.popover)==null?void 0:$.showProgress:h("showProgress"),ee=(((b=T.popover)==null?void 0:b.progressText)||h("progressText")||"{{current}} of {{total}}").replace("{{current}}",`${p+1}`).replace("{{total}}",`${y.length}`),A=((C=T.popover)==null?void 0:C.showButtons)||h("showButtons"),K=["next","previous",...Z?["close"]:[]].filter(gt=>!(A!=null&&A.length)||A.includes(gt)),ie=((_=T.popover)==null?void 0:_.onNextClick)||h("onNextClick"),vt=((m=T.popover)==null?void 0:m.onPrevClick)||h("onPrevClick"),wt=((x=T.popover)==null?void 0:x.onCloseClick)||h("onCloseClick");Fe({...T,popover:{showButtons:K,nextBtnText:P?void 0:X,disableButtons:[...q?[]:["previous"]],showProgress:G,progressText:ee,onNextClick:ie||(()=>{P?d(p+1):c()}),onPrevClick:vt||(()=>{d(p-1)}),onCloseClick:wt||(()=>{c()}),...(T==null?void 0:T.popover)||{}}})}function c(p=!0){const g=k("__activeElement"),f=k("__activeStep"),$=k("__activeOnDestroyed"),b=h("onDestroyStarted");if(p&&b){const m=!g||(g==null?void 0:g.id)==="driver-dummy-element";b(m?void 0:g,f,{config:h(),state:k(),driver:H()});return}const C=(f==null?void 0:f.onDeselected)||h("onDeselected"),_=h("onDestroyed");if(document.body.classList.remove("driver-active","driver-fade","driver-simple"),Rn(),qn(),Nn(),Bn(),xn(),He(),g&&f){const m=g.id==="driver-dummy-element";C&&C(m?void 0:g,f,{config:h(),state:k(),driver:H()}),_&&_(m?void 0:g,f,{config:h(),state:k(),driver:H()})}$&&$.focus()}const E={isActive:()=>k("isInitialized")||!1,refresh:re,drive:(p=0)=>{u(),d(p)},setConfig:xe,setSteps:p=>{He(),xe({...h(),steps:p})},getConfig:h,getState:k,getActiveIndex:()=>k("activeIndex"),isFirstStep:()=>k("activeIndex")===0,isLastStep:()=>{const p=h("steps")||[],g=k("activeIndex");return g!==void 0&&g===p.length-1},getActiveStep:()=>k("activeStep"),getActiveElement:()=>k("activeElement"),getPreviousElement:()=>k("previousElement"),getPreviousStep:()=>k("previousStep"),moveNext:r,movePrevious:n,moveTo:a,hasNextStep:()=>{const p=h("steps")||[],g=k("activeIndex");return g!==void 0&&!!p[g+1]},hasPreviousStep:()=>{const p=h("steps")||[],g=k("activeIndex");return g!==void 0&&!!p[g-1]},highlight:p=>{u(),Fe({...p,popover:p.popover?{showButtons:[],showProgress:!1,progressText:"",...p.popover}:void 0})},destroy:()=>{c(!1)}};return Cn(E),E}function jn({isOpenCreateWSModal:e,isOpenSelectConnectionModal:t,workspaceId:s,workspaceStore:r,onSelectWorkspace:n}){const a=Jt(Xt.HAS_SEEN_TOUR,!1,Zt());return{startTour:()=>{a.value=!0;const w=document.getElementById("tour-new-workspace-btn")?"#tour-new-workspace-btn":"#tour-new-workspace-btn-empty",d=Un({popoverClass:"driver-theme-system",showProgress:!0,allowClose:!0,steps:[{popover:{title:"Welcome to OrcaQ!",description:"Let us take a quick tour to get you familiar with the app."}},{element:"#tour-workspace-area",popover:{title:"Workspaces",description:"This is where you manage your workspaces."}},{element:w,popover:{title:"Create Workspace",description:"Click here to create a new workspace.",onNextClick:()=>{e.value=!0,setTimeout(()=>d.moveNext(),500)}}},{element:"#tour-workspace-icon",popover:{title:"Workspace Icon",description:"Choose an icon to identify your workspace."}},{element:"#tour-workspace-name",popover:{title:"Workspace Name",description:"Enter a unique name for your workspace."}},{element:"#tour-workspace-desc",popover:{title:"Workspace Description",description:"Provide a brief description."}},{element:"#tour-workspace-create",popover:{title:"Save Workspace",description:"After filling out the form, click here to create it.",onNextClick:()=>{const c=Qe();r.createWorkspace({desc:"My first workspace created from tour",id:c,name:"My Tour Workspace",icon:pe,createdAt:Q().toISOString()}),e.value=!1,s.value=c,setTimeout(()=>{d.moveNext()},600)}}},{element:document.getElementById(`tour-open-workspace-${s.value}`)||"#tour-workspace-area",popover:{title:"New Workspace Card",description:'Your new workspace appears here. Click "Open workspace" to manage its connections.',onNextClick:()=>{const c=document.getElementById(`tour-open-workspace-${s.value}`);c?c.click():(n(s.value),t.value=!0),setTimeout(()=>{d.moveNext()},800)}}},{element:"#tour-add-connection-btn",popover:{title:"Add Connection",description:"Inside a workspace, you can manage and add database connections.",onNextClick:()=>{var c;(c=document.getElementById("tour-add-connection-btn"))==null||c.click(),setTimeout(()=>d.moveNext(),600)}}},{element:"#tour-database-type-cards",popover:{title:"Select Database",description:"First, choose the database engine you want to connect to."}},{element:"#tour-database-type-next",popover:{title:"Next Step",description:"Click Next after selecting your database engine.",onNextClick:()=>{const c=document.querySelector("#tour-database-type-cards > div");c?(c.click(),setTimeout(()=>{var E;(E=document.getElementById("tour-database-type-next"))==null||E.click(),setTimeout(()=>d.moveNext(),600)},100)):d.moveNext()}}},{element:"#tour-connection-method-tabs",popover:{title:"Connection Method",description:"You can choose between connection string or form based setup."}},{element:"#tour-connection-string-tab",popover:{title:"Connection String Method",description:"Click here to use the connection string option.",onNextClick:()=>{var c;(c=document.getElementById("tour-connection-string-tab"))==null||c.click(),setTimeout(()=>d.moveNext(),300)}}},{element:"#connection-string",popover:{title:"Enter URI",description:"Paste your database URI here for quick access."}},{element:"#tour-connection-form-tab",popover:{title:"Connection Form Method",description:"Or click here to manually enter host, port, username, and password.",onNextClick:()=>{var c;(c=document.getElementById("tour-connection-form-tab"))==null||c.click(),setTimeout(()=>d.moveNext(),300)}}},{element:"#tour-create-update-connection-btn",popover:{title:"Create Connection",description:"After filling out the connection details, click here to save it."}},{popover:{title:"Tour Completed!",description:"You are now ready to use OrcaQ! Happy querying.",onNextClick:()=>{d.destroy()}}}],onDestroyStarted:()=>{e.value=!1,t.value=!1,document.querySelectorAll('[role="dialog"]').forEach(E=>{const p=E.querySelector('button[aria-label="Close"]');p&&p.click()}),document.dispatchEvent(new KeyboardEvent("keydown",{key:"Escape"})),d.destroy()}});d.drive()}}}function Vn(){const e=Be(),t=Ae(),s=eo(""),r=O(""),n=to(s,oo),a=oe(()=>(e.workspaces||[]).filter(d=>d.name.toLowerCase().includes(n.value.toLowerCase()))),v=O(!1),w=O(!1);return{workspaceStore:e,connectionStore:t,search:s,workspaceId:r,mappedWorkspaces:a,isOpenSelectConnectionModal:v,isOpenCreateWSModal:w,onSelectWorkspace:d=>{v.value=!0,r.value=d}}}const Kn={id:"tour-workspace-area",class:"flex flex-col h-full overflow-y-auto p-4 pt-0 space-y-4 relative"},Yn={class:"flex items-center gap-2"},Gn={class:"relative flex-1"},Qn={key:0,class:"grid grid-cols-3 gap-4 overflow-y-auto"},Jn={class:"flex items-center gap-2"},Xn=["href"],Zn=D({__name:"Workspaces",setup(e){const{workspaceStore:t,connectionStore:s,search:r,workspaceId:n,mappedWorkspaces:a,isOpenSelectConnectionModal:v,isOpenCreateWSModal:w,onSelectWorkspace:u}=Vn(),{startTour:d}=jn({isOpenCreateWSModal:w,isOpenSelectConnectionModal:v,workspaceId:n,workspaceStore:t,onSelectWorkspace:u}),c=O(!1),p=We().public.ggFormLink;return(g,f)=>{const $=L,b=Je,C=F,_=Ke;return S(),M(Y,null,[o(w)?(S(),B(st,{key:0,open:o(w),"onUpdate:open":f[0]||(f[0]=m=>te(w)?w.value=m:null),workspaceSeq:o(t).workspaces.length},null,8,["open","workspaceSeq"])):V("",!0),i(Yo,{open:c.value,"onUpdate:open":f[1]||(f[1]=m=>c.value=m)},null,8,["open"]),i(o(Uo),{open:o(v),"onUpdate:open":f[2]||(f[2]=m=>te(v)?v.value=m:null),connections:o(s).getConnectionsByWorkspaceId(o(n)),"workspace-id":o(n)},null,8,["open","connections","workspace-id"]),I("div",Kn,[i(bn,{onCreate:f[3]||(f[3]=m=>w.value=!0),onRestore:f[4]||(f[4]=m=>c.value=!0),"is-show-button-create":!!o(a).length,"is-show-button-restore":!!o(a).length},null,8,["is-show-button-create","is-show-button-restore"]),I("div",Yn,[I("div",Gn,[i($,{name:"hugeicons:search-01",class:"absolute left-2.5 -translate-y-1/2 top-1/2 size-4"}),i(b,{type:"text",modelValue:o(r),"onUpdate:modelValue":f[5]||(f[5]=m=>te(r)?r.value=m:null),placeholder:"Search workspaces...",class:"pl-10 w-full"},null,8,["modelValue"])])]),o(a).length?(S(),M("div",Qn,[(S(!0),M(Y,null,ne(o(a),m=>(S(),B(gn,{workspace:m,onOnSelectWorkspace:o(u)},null,8,["workspace","onOnSelectWorkspace"]))),256))])):(S(),B(_,{key:1,title:"No workspaces found",desc:"There is nothing here to show. Let's create your first workspace."},{default:l(()=>[I("div",Jn,[i(C,{id:"tour-new-workspace-btn-empty",variant:"default",size:"sm",onClick:f[6]||(f[6]=m=>w.value=!0)},{default:l(()=>[i($,{name:"hugeicons:plus-sign"}),f[8]||(f[8]=W(" New Workspace "))]),_:1}),i(C,{variant:"outline",size:"sm",onClick:f[7]||(f[7]=m=>c.value=!0)},{default:l(()=>[i($,{name:"lucide:upload"}),f[9]||(f[9]=W(" Restore Data "))]),_:1}),i(C,{variant:"secondary",size:"sm",onClick:o(d)},{default:l(()=>[i($,{name:"hugeicons:book-open-02"}),f[10]||(f[10]=W(" Take a tour "))]),_:1},8,["onClick"])])]),_:1})),i(C,{class:"fixed bottom-0 right-4 z-10",variant:"secondary"},{default:l(()=>[I("a",{href:o(p),target:"_blank"},[i($,{name:"hugeicons:chat-feedback-01"}),f[11]||(f[11]=W(" Give me Feedback "))],8,Xn)]),_:1}),i(C,{class:"fixed bottom-16 right-4",variant:"secondary",onClick:o(d),title:"Start Tour"},{default:l(()=>[i($,{name:"hugeicons:book-open-02"}),f[12]||(f[12]=W(" Take a tour "))]),_:1},8,["onClick"])])],64)}}}),fs=D({__name:"index",setup(e){return(t,s)=>(S(),B(o(Zn)))}});export{fs as default};