orcaq 1.0.29 → 1.0.30

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 (190) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{PvVK-MAV.js → 6I72R6kW.js} +1 -1
  3. package/.output/public/_nuxt/{CGwTk9S6.js → 8_EuFD3X.js} +1 -1
  4. package/.output/public/_nuxt/{DxyZJIEB.js → B6H7odCi.js} +1 -1
  5. package/.output/public/_nuxt/B7nSJBpY.js +1 -0
  6. package/.output/public/_nuxt/{Czgl_Hwt.js → BBNxNerU.js} +1 -1
  7. package/.output/public/_nuxt/{CzKuUqKr.js → BDKd-SA5.js} +1 -1
  8. package/.output/public/_nuxt/{CUoNnXI-.js → BDRdbLz0.js} +1 -1
  9. package/.output/public/_nuxt/{DGQ8S2BB.js → BKWWO5HE.js} +1 -1
  10. package/.output/public/_nuxt/{DhSSuHOz.js → BV6TSzbC.js} +4 -1
  11. package/.output/public/_nuxt/{D7foW8ay.js → BVKG-F8j.js} +1 -1
  12. package/.output/public/_nuxt/{JKgaKw6B.js → BoGW82nK.js} +1 -1
  13. package/.output/public/_nuxt/{BrRUiTjN.js → Bs_ItSbk.js} +1 -1
  14. package/.output/public/_nuxt/{h6y10o04.js → Btu7FO8S.js} +1 -1
  15. package/.output/public/_nuxt/C04Tz2vC.js +67 -0
  16. package/.output/public/_nuxt/{DyuFRrhb.js → C4JPKbJK.js} +1 -1
  17. package/.output/public/_nuxt/{4x4kB_KO.js → C5KSeJUi.js} +3 -3
  18. package/.output/public/_nuxt/CDnZBTSk.js +1 -0
  19. package/.output/public/_nuxt/CKq06U7u.js +19 -0
  20. package/.output/public/_nuxt/{CfO8d9Bt.js → CQpD-JHn.js} +1 -1
  21. package/.output/public/_nuxt/{DWyxfi-N.js → C_CjS9Yt.js} +1 -1
  22. package/.output/public/_nuxt/{ofyafEal.js → Chcc8yNZ.js} +1 -1
  23. package/.output/public/_nuxt/{DxeQuh0J.js → ClnidwGv.js} +1 -1
  24. package/.output/public/_nuxt/{CHou-I1v.js → CpzDNDcD.js} +1 -1
  25. package/.output/public/_nuxt/{BOkIXaEe.js → Cs1HkKH7.js} +1 -1
  26. package/.output/public/_nuxt/{ygC3Ln5E.js → CsYOf3m-.js} +1 -1
  27. package/.output/public/_nuxt/{CLbK1asi.js → CtRc_P0d.js} +1 -1
  28. package/.output/public/_nuxt/{CtfC7hZd.js → Ctr2mpV9.js} +2 -2
  29. package/.output/public/_nuxt/{CDXxlCEu.js → CzF1NEwP.js} +1 -1
  30. package/.output/public/_nuxt/{BHXluG0b.js → D2j2esR5.js} +1 -1
  31. package/.output/public/_nuxt/{D_YpHjVy.js → D4ZGn1tW.js} +1 -1
  32. package/.output/public/_nuxt/{BIEijd7m.js → D6YseYA6.js} +1 -1
  33. package/.output/public/_nuxt/{Dhm_IkhS.js → D7EPcL9i.js} +1 -1
  34. package/.output/public/_nuxt/{BhIsPYGi.js → DCMJS6Fh.js} +1 -1
  35. package/.output/public/_nuxt/{Do5Kx8YW.js → DFd73eNR.js} +1 -1
  36. package/.output/public/_nuxt/{CdQPU0ns.js → DQiMjOqm.js} +1 -1
  37. package/.output/public/_nuxt/{Cdk6FUfD.js → DVe5MHjS.js} +1 -1
  38. package/.output/public/_nuxt/{B3AfHsM5.js → D_G1mAJ8.js} +1 -1
  39. package/.output/public/_nuxt/{Bdb6FZys.js → De1hkrJC.js} +1 -1
  40. package/.output/public/_nuxt/{DQGbtuZC.js → DnCs9xpG.js} +1 -1
  41. package/.output/public/_nuxt/{D9QB1whk.js → DvJ2MjiW.js} +2 -2
  42. package/.output/public/_nuxt/{Yt1TBeFM.js → DzJD_fir.js} +1 -1
  43. package/.output/public/_nuxt/{CT64oPpF.js → Dzr_z_mY.js} +1 -1
  44. package/.output/public/_nuxt/{D09YoF-H.js → FyrDS92w.js} +68 -68
  45. package/.output/public/_nuxt/{Bw2tvR21.js → HQyqkOpZ.js} +1 -1
  46. package/.output/public/_nuxt/{B2cJQGvd.js → KlH93fIm.js} +1 -1
  47. package/.output/public/_nuxt/{DWVMI-TP.js → MLO1tLKS.js} +1 -1
  48. package/.output/public/_nuxt/{AC9QwkAM.js → OEVyCyyD.js} +1 -1
  49. package/.output/public/_nuxt/{_fileId_.B3PtfMYN.css → _fileId_.DDOcnoDQ.css} +1 -1
  50. package/.output/public/_nuxt/builds/latest.json +1 -1
  51. package/.output/public/_nuxt/builds/meta/0ab6db39-d52b-46b9-a687-0df3b4c65db5.json +1 -0
  52. package/.output/public/_nuxt/builds/meta/dev.json +1 -0
  53. package/.output/public/_nuxt/{CbUYBSfT.js → e_Ir8LP9.js} +1 -1
  54. package/.output/public/_nuxt/{CGjlsViU.js → fRxmPZZB.js} +5 -5
  55. package/.output/public/_nuxt/{T2j-VZaT.js → h2fvG4Xe.js} +1 -1
  56. package/.output/public/_nuxt/{TCy3aJbM.js → llxtZpFD.js} +1 -1
  57. package/.output/public/_nuxt/{DTJ9n82C.js → q4KcRwD-.js} +1 -1
  58. package/.output/public/_nuxt/{B-AS4nOA.js → qIKg23Pc.js} +1 -1
  59. package/.output/public/_nuxt/{Dj_2PaSj.js → txD20ixW.js} +1 -1
  60. package/.output/public/_nuxt/{CruogVcW.js → ubO-cWd-.js} +1 -1
  61. package/.output/public/_nuxt/{Bw3n6OcX.js → x2HBvptj.js} +1 -1
  62. package/.output/public/_nuxt/{8Dyt4g6g.js → y68LmDX2.js} +1 -1
  63. package/.output/server/chunks/build/client.manifest.mjs +367 -367
  64. package/.output/server/chunks/build/client.manifest.mjs.map +1 -1
  65. package/.output/server/chunks/nitro/nitro.mjs +380 -370
  66. package/.output/server/chunks/routes/api/ai/agent.mjs +1 -0
  67. package/.output/server/chunks/routes/api/ai/agent.mjs.map +1 -1
  68. package/.output/server/chunks/routes/api/ai/chat.mjs +1 -0
  69. package/.output/server/chunks/routes/api/ai/chat.mjs.map +1 -1
  70. package/.output/server/chunks/routes/api/database-export/export-database.mjs +1 -0
  71. package/.output/server/chunks/routes/api/database-export/export-database.mjs.map +1 -1
  72. package/.output/server/chunks/routes/api/database-import/import-database.mjs +1 -0
  73. package/.output/server/chunks/routes/api/database-import/import-database.mjs.map +1 -1
  74. package/.output/server/chunks/routes/api/database-roles/create-role.mjs +1 -0
  75. package/.output/server/chunks/routes/api/database-roles/create-role.mjs.map +1 -1
  76. package/.output/server/chunks/routes/api/database-roles/delete-role.mjs +1 -0
  77. package/.output/server/chunks/routes/api/database-roles/delete-role.mjs.map +1 -1
  78. package/.output/server/chunks/routes/api/database-roles/get-databases-with-permissions.mjs +1 -0
  79. package/.output/server/chunks/routes/api/database-roles/get-databases-with-permissions.mjs.map +1 -1
  80. package/.output/server/chunks/routes/api/database-roles/get-databases.mjs +1 -0
  81. package/.output/server/chunks/routes/api/database-roles/get-databases.mjs.map +1 -1
  82. package/.output/server/chunks/routes/api/database-roles/get-permissions.mjs +1 -0
  83. package/.output/server/chunks/routes/api/database-roles/get-permissions.mjs.map +1 -1
  84. package/.output/server/chunks/routes/api/database-roles/get-role-inheritance.mjs +1 -0
  85. package/.output/server/chunks/routes/api/database-roles/get-role-inheritance.mjs.map +1 -1
  86. package/.output/server/chunks/routes/api/database-roles/get-role.mjs +1 -0
  87. package/.output/server/chunks/routes/api/database-roles/get-role.mjs.map +1 -1
  88. package/.output/server/chunks/routes/api/database-roles/get-roles.mjs +1 -0
  89. package/.output/server/chunks/routes/api/database-roles/get-roles.mjs.map +1 -1
  90. package/.output/server/chunks/routes/api/database-roles/get-schema-objects.mjs +1 -0
  91. package/.output/server/chunks/routes/api/database-roles/get-schema-objects.mjs.map +1 -1
  92. package/.output/server/chunks/routes/api/database-roles/get-schemas.mjs +1 -0
  93. package/.output/server/chunks/routes/api/database-roles/get-schemas.mjs.map +1 -1
  94. package/.output/server/chunks/routes/api/database-roles/grant-bulk-permissions.mjs +1 -0
  95. package/.output/server/chunks/routes/api/database-roles/grant-bulk-permissions.mjs.map +1 -1
  96. package/.output/server/chunks/routes/api/database-roles/grant-permission.mjs +1 -0
  97. package/.output/server/chunks/routes/api/database-roles/grant-permission.mjs.map +1 -1
  98. package/.output/server/chunks/routes/api/database-roles/revoke-permission.mjs +1 -0
  99. package/.output/server/chunks/routes/api/database-roles/revoke-permission.mjs.map +1 -1
  100. package/.output/server/chunks/routes/api/functions/definition.post.mjs +1 -0
  101. package/.output/server/chunks/routes/api/functions/definition.post.mjs.map +1 -1
  102. package/.output/server/chunks/routes/api/functions/delete.post.mjs +1 -0
  103. package/.output/server/chunks/routes/api/functions/delete.post.mjs.map +1 -1
  104. package/.output/server/chunks/routes/api/functions/overview.post.mjs +1 -0
  105. package/.output/server/chunks/routes/api/functions/overview.post.mjs.map +1 -1
  106. package/.output/server/chunks/routes/api/functions/rename.post.mjs +1 -0
  107. package/.output/server/chunks/routes/api/functions/rename.post.mjs.map +1 -1
  108. package/.output/server/chunks/routes/api/functions/signature.post.mjs +1 -0
  109. package/.output/server/chunks/routes/api/functions/signature.post.mjs.map +1 -1
  110. package/.output/server/chunks/routes/api/functions/update.post.mjs +1 -0
  111. package/.output/server/chunks/routes/api/functions/update.post.mjs.map +1 -1
  112. package/.output/server/chunks/routes/api/instance-insights/cancel-query.post.mjs +1 -0
  113. package/.output/server/chunks/routes/api/instance-insights/cancel-query.post.mjs.map +1 -1
  114. package/.output/server/chunks/routes/api/instance-insights/configuration.post.mjs +1 -0
  115. package/.output/server/chunks/routes/api/instance-insights/configuration.post.mjs.map +1 -1
  116. package/.output/server/chunks/routes/api/instance-insights/dashboard.post.mjs +1 -0
  117. package/.output/server/chunks/routes/api/instance-insights/dashboard.post.mjs.map +1 -1
  118. package/.output/server/chunks/routes/api/instance-insights/drop-slot.post.mjs +1 -0
  119. package/.output/server/chunks/routes/api/instance-insights/drop-slot.post.mjs.map +1 -1
  120. package/.output/server/chunks/routes/api/instance-insights/replication.post.mjs +1 -0
  121. package/.output/server/chunks/routes/api/instance-insights/replication.post.mjs.map +1 -1
  122. package/.output/server/chunks/routes/api/instance-insights/state.post.mjs +1 -0
  123. package/.output/server/chunks/routes/api/instance-insights/state.post.mjs.map +1 -1
  124. package/.output/server/chunks/routes/api/instance-insights/terminate-connection.post.mjs +1 -0
  125. package/.output/server/chunks/routes/api/instance-insights/terminate-connection.post.mjs.map +1 -1
  126. package/.output/server/chunks/routes/api/instance-insights/toggle-slot-status.post.mjs +1 -0
  127. package/.output/server/chunks/routes/api/instance-insights/toggle-slot-status.post.mjs.map +1 -1
  128. package/.output/server/chunks/routes/api/managment-connection/health-check.mjs +1 -0
  129. package/.output/server/chunks/routes/api/managment-connection/health-check.mjs.map +1 -1
  130. package/.output/server/chunks/routes/api/metadata/erd.post.mjs +1 -0
  131. package/.output/server/chunks/routes/api/metadata/erd.post.mjs.map +1 -1
  132. package/.output/server/chunks/routes/api/metadata/meta-data.post.mjs +1 -0
  133. package/.output/server/chunks/routes/api/metadata/meta-data.post.mjs.map +1 -1
  134. package/.output/server/chunks/routes/api/metadata/reverse-schemas.post.mjs +1 -0
  135. package/.output/server/chunks/routes/api/metadata/reverse-schemas.post.mjs.map +1 -1
  136. package/.output/server/chunks/routes/api/metrics/monitor.post.mjs +1 -0
  137. package/.output/server/chunks/routes/api/metrics/monitor.post.mjs.map +1 -1
  138. package/.output/server/chunks/routes/api/query/execute.post.mjs +1 -0
  139. package/.output/server/chunks/routes/api/query/execute.post.mjs.map +1 -1
  140. package/.output/server/chunks/routes/api/query/raw-execute-stream.post.mjs +1 -0
  141. package/.output/server/chunks/routes/api/query/raw-execute-stream.post.mjs.map +1 -1
  142. package/.output/server/chunks/routes/api/query/raw-execute.post.mjs +1 -0
  143. package/.output/server/chunks/routes/api/query/raw-execute.post.mjs.map +1 -1
  144. package/.output/server/chunks/routes/api/tables/bulk-delete.post.mjs +1 -0
  145. package/.output/server/chunks/routes/api/tables/bulk-delete.post.mjs.map +1 -1
  146. package/.output/server/chunks/routes/api/tables/bulk-update.post.mjs +1 -0
  147. package/.output/server/chunks/routes/api/tables/bulk-update.post.mjs.map +1 -1
  148. package/.output/server/chunks/routes/api/tables/ddl.post.mjs +1 -0
  149. package/.output/server/chunks/routes/api/tables/ddl.post.mjs.map +1 -1
  150. package/.output/server/chunks/routes/api/tables/export.post.mjs +1 -0
  151. package/.output/server/chunks/routes/api/tables/export.post.mjs.map +1 -1
  152. package/.output/server/chunks/routes/api/tables/indexes.post.mjs +1 -0
  153. package/.output/server/chunks/routes/api/tables/indexes.post.mjs.map +1 -1
  154. package/.output/server/chunks/routes/api/tables/meta.post.mjs +1 -0
  155. package/.output/server/chunks/routes/api/tables/meta.post.mjs.map +1 -1
  156. package/.output/server/chunks/routes/api/tables/overview.post.mjs +1 -0
  157. package/.output/server/chunks/routes/api/tables/overview.post.mjs.map +1 -1
  158. package/.output/server/chunks/routes/api/tables/rls.post.mjs +1 -0
  159. package/.output/server/chunks/routes/api/tables/rls.post.mjs.map +1 -1
  160. package/.output/server/chunks/routes/api/tables/rules.post.mjs +1 -0
  161. package/.output/server/chunks/routes/api/tables/rules.post.mjs.map +1 -1
  162. package/.output/server/chunks/routes/api/tables/size.post.mjs +1 -0
  163. package/.output/server/chunks/routes/api/tables/size.post.mjs.map +1 -1
  164. package/.output/server/chunks/routes/api/tables/structure.post.mjs +1 -0
  165. package/.output/server/chunks/routes/api/tables/structure.post.mjs.map +1 -1
  166. package/.output/server/chunks/routes/api/tables/triggers.post.mjs +1 -0
  167. package/.output/server/chunks/routes/api/tables/triggers.post.mjs.map +1 -1
  168. package/.output/server/chunks/routes/api/views/definition.post.mjs +1 -0
  169. package/.output/server/chunks/routes/api/views/definition.post.mjs.map +1 -1
  170. package/.output/server/chunks/routes/api/views/dependencies.post.mjs +1 -0
  171. package/.output/server/chunks/routes/api/views/dependencies.post.mjs.map +1 -1
  172. package/.output/server/chunks/routes/api/views/explain.post.mjs +1 -0
  173. package/.output/server/chunks/routes/api/views/explain.post.mjs.map +1 -1
  174. package/.output/server/chunks/routes/api/views/indexes.post.mjs +1 -0
  175. package/.output/server/chunks/routes/api/views/indexes.post.mjs.map +1 -1
  176. package/.output/server/chunks/routes/api/views/meta.post.mjs +1 -0
  177. package/.output/server/chunks/routes/api/views/meta.post.mjs.map +1 -1
  178. package/.output/server/chunks/routes/api/views/overview.post.mjs +1 -0
  179. package/.output/server/chunks/routes/api/views/overview.post.mjs.map +1 -1
  180. package/.output/server/chunks/routes/renderer.mjs +1 -0
  181. package/.output/server/index.mjs +1 -0
  182. package/.output/server/index.mjs.map +1 -1
  183. package/.output/server/package.json +1 -1
  184. package/bin/cli.mjs +55 -9
  185. package/package.json +1 -1
  186. package/.output/public/_nuxt/BtNmJfLi.js +0 -1
  187. package/.output/public/_nuxt/CASbKWSc.js +0 -67
  188. package/.output/public/_nuxt/D_Wnuz3u.js +0 -1
  189. package/.output/public/_nuxt/DoGLcnwT.js +0 -19
  190. package/.output/public/_nuxt/builds/meta/66552d6f-8a7c-4ec1-8e99-7c58907fa77f.json +0 -1
@@ -1,5 +1,5 @@
1
1
  {
2
- "date": "2026-03-18T16:24:53.844Z",
2
+ "date": "2026-03-19T17:22:55.084Z",
3
3
  "preset": "node-server",
4
4
  "framework": {
5
5
  "name": "nuxt",
@@ -1,4 +1,4 @@
1
- import{bn as c}from"./D09YoF-H.js";/**
1
+ import{bn as c}from"./FyrDS92w.js";/**
2
2
  * @license lucide-vue-next v0.487.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1 +1 @@
1
- import{d as r,u,ad as i,r as p,c as o,o as l,e as n,f as d,b as e,P as c,n as _,j as f}from"./D09YoF-H.js";const[R,v]=i("AvatarRoot");var h=r({__name:"AvatarRoot",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(s){return u(),v({imageLoadingStatus:p("idle")}),(a,t)=>(l(),o(e(c),{"as-child":a.asChild,as:a.as},{default:n(()=>[d(a.$slots,"default")]),_:3},8,["as-child","as"]))}}),m=h;const x=r({__name:"Avatar",props:{class:{}},setup(s){const a=s;return(t,C)=>(l(),o(e(m),{"data-slot":"avatar",class:_(e(f)("relative flex size-8 shrink-0 overflow-hidden rounded-full",a.class))},{default:n(()=>[d(t.$slots,"default")]),_:3},8,["class"]))}});export{x as _,R as i};
1
+ import{d as r,u,ad as i,r as p,c as o,o as l,e as n,f as d,b as e,P as c,n as _,j as f}from"./FyrDS92w.js";const[R,v]=i("AvatarRoot");var h=r({__name:"AvatarRoot",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(s){return u(),v({imageLoadingStatus:p("idle")}),(a,t)=>(l(),o(e(c),{"as-child":a.asChild,as:a.as},{default:n(()=>[d(a.$slots,"default")]),_:3},8,["as-child","as"]))}}),m=h;const x=r({__name:"Avatar",props:{class:{}},setup(s){const a=s;return(t,C)=>(l(),o(e(m),{"data-slot":"avatar",class:_(e(f)("relative flex size-8 shrink-0 overflow-hidden rounded-full",a.class))},{default:n(()=>[d(t.$slots,"default")]),_:3},8,["class"]))}});export{x as _,R as i};
@@ -1 +1 @@
1
- import{d as v,k as h,al as w,E as n,bf as b,g as C,o as y,l as i,b as o,aR as E}from"./D09YoF-H.js";import{b as I,a as V}from"./BVmBXPoG.js";import{u as g}from"./8Dyt4g6g.js";import{_ as O}from"./DxeQuh0J.js";import"./CDXxlCEu.js";import"./Bdtn2mn5.js";const S={class:"h-full relative p-1"},W=v({__name:"ViewOverview",props:{connectionId:{}},setup(m){const l=["name","schema","type","owner","comment"],t=m,{connectionStore:s,wsStateStore:d}=h(),{schemaId:a}=w(d),u=n(()=>t.connectionId?s.connections.find(e=>e.id===t.connectionId):s.selectedConnection),c=n(()=>({...b(u.value),schema:a.value})),{data:r,status:p}=g("/api/views/overview",{method:"POST",body:c,watch:[a,c]},"$Vc52vsyWw1"),f=n(()=>{const e=r.value||[];return e.length>0?I(e):V(l)});return(e,R)=>{const _=E;return y(),C("div",S,[i(_,{visible:o(p)==="pending"},null,8,["visible"]),i(o(O),{columns:o(f),data:o(r)||[],class:"h-full border rounded-md",columnKeyBy:"field"},null,8,["columns","data"])])}}});export{W as default};
1
+ import{d as v,k as h,al as w,E as n,bf as b,g as C,o as y,l as i,b as o,aR as E}from"./FyrDS92w.js";import{b as I,a as V}from"./BVmBXPoG.js";import{u as g}from"./y68LmDX2.js";import{_ as O}from"./ClnidwGv.js";import"./CzF1NEwP.js";import"./Bdtn2mn5.js";const S={class:"h-full relative p-1"},W=v({__name:"ViewOverview",props:{connectionId:{}},setup(m){const l=["name","schema","type","owner","comment"],t=m,{connectionStore:s,wsStateStore:d}=h(),{schemaId:a}=w(d),u=n(()=>t.connectionId?s.connections.find(e=>e.id===t.connectionId):s.selectedConnection),c=n(()=>({...b(u.value),schema:a.value})),{data:r,status:p}=g("/api/views/overview",{method:"POST",body:c,watch:[a,c]},"$Vc52vsyWw1"),f=n(()=>{const e=r.value||[];return e.length>0?I(e):V(l)});return(e,R)=>{const _=E;return y(),C("div",S,[i(_,{visible:o(p)==="pending"},null,8,["visible"]),i(o(O),{columns:o(f),data:o(r)||[],class:"h-full border rounded-md",columnKeyBy:"field"},null,8,["columns","data"])])}}});export{W as default};
@@ -0,0 +1 @@
1
+ import{_ as o}from"./CsYOf3m-.js";import{d as e,c as t,o as r}from"./FyrDS92w.js";import"./Btu7FO8S.js";import"./kehy-5uo.js";import"./y68LmDX2.js";const d=e({__name:"index",setup(a){return(i,m)=>(r(),t(o,{"table-id":void 0}))}});export{d as default};
@@ -1 +1 @@
1
- import{d as S,g as y,o as g,h,a as b,x as r,F as j,s as B,n as I,p as D,l as v,b as $,q as N,bO as i,aH as w,bw as K}from"./D09YoF-H.js";const V={class:"gap-1 flex flex-col text-sm min-w-[20rem]"},L={class:"font-medium text-sm mb-1"},P={class:"text-xs text-muted-foreground"},z={key:0,class:"text-xs text-muted-foreground"},E={key:1,class:"text-xs text-muted-foreground"},O={class:"mt-1 text-xs max-h-[12rem] overflow-auto"},Z={class:"text-muted-foreground"},J=S({__name:"SuggestionTableInfo",props:{schemaName:{},tableName:{},columns:{},pkColumns:{},fkColumns:{}},setup(t){return(e,s)=>(g(),y("div",V,[h("div",L,r(e.tableName)+" ("+r(e.schemaName||"public")+") ",1),h("div",P," Columns: "+r(e.columns.length),1),e.pkColumns.length>0?(g(),y("div",z," Primary Keys: "+r(e.pkColumns.join(", ")),1)):b("",!0),e.fkColumns.length>0?(g(),y("div",E," Foreign Keys: "+r(e.fkColumns.join(", ")),1)):b("",!0),h("div",O,[(g(!0),y(j,null,B(e.columns,n=>(g(),y("div",{key:n.name,class:I(["py-0.5",{"font-semibold":e.pkColumns.includes(n.name)}])},[D(r(n.name)+": ",1),h("span",Z,r(n.short_type_name),1)],2))),128))])]))}}),M={class:"gap-1 flex flex-col text-sm min-w-[10rem]"},q={class:"font-medium text-sm mb-1"},H={class:"text-xs text-muted-foreground"},W={class:"text-xs text-muted-foreground"},G={key:0,class:"text-xs text-yellow-500 mt-1 flex items-center gap-1"},Q={key:1,class:"text-xs text-blue-500 mt-1 flex items-center gap-1"},R=S({__name:"SuggetionColumnInfo",props:{columnName:{},dataType:{},tableName:{},isPrimaryKey:{type:Boolean},foreignKey:{}},setup(t){return(e,s)=>(g(),y("div",M,[h("div",q,r(e.columnName),1),h("div",H,"Type: "+r(e.dataType),1),h("div",W,"Table: "+r(e.tableName),1),e.isPrimaryKey?(g(),y("div",G,[v($(N),{name:"hugeicons:key-01",class:"w-4 text-yellow-400 text-xl"}),s[0]||(s[0]=h("span",null,"Primary Key",-1))])):b("",!0),e.foreignKey?(g(),y("div",Q,[v($(N),{name:"hugeicons:key-01",class:"w-4 text-muted-foreground text-xl"}),h("span",null,"FK → "+r(e.foreignKey.referenced_table)+"."+r(e.foreignKey.referenced_column),1)])):b("",!0)]))}});function U(t){let e=t.toLowerCase();const s=["tbl_","table_"];for(const o of s)e!=null&&e.startsWith(o)&&(e=e.slice(o.length));e=e.replace(/(_v\d+|_\d+)$/,"");let n=e.split(/[_-]/);n.length===1&&(n=e.match(/[A-Z]?[a-z]+|[A-Z]+(?=[A-Z][a-z]|\b)/g)||[e]);let l=n.filter(o=>o.length>0).map(o=>o[0]).join("");return!l&&e&&(l=e[0]),l}function X(t,e,s){var a,u;const n=document.createElement("div"),l=((a=e.primary_keys)==null?void 0:a.map(d=>d.column))||[],o=((u=e.foreign_keys)==null?void 0:u.map(d=>d.column))||[],c=w(J,{tableName:t,columns:e.columns,pkColumns:l,fkColumns:o,schemaName:s});return K(c,n),n}function T(t,e,s,n,l,o){const c=document.createElement("div"),a=w(R,{columnName:t,dataType:e,tableName:o?`${o}.${s}`:s,isPrimaryKey:n,foreignKey:l});return K(a,c),c}function Y(t){const e=t.toLowerCase();return e.includes("int")||e.includes("numeric")||e.includes("decimal")||e.includes("float")||e.includes("double")||e.includes("real")||e.includes("serial")||e.includes("money")?i.Numeric:e.includes("char")||e.includes("text")||e.includes("varchar")||e.includes("string")||e.includes("uuid")||e.includes("citext")?i.String:e.includes("date")||e.includes("time")||e.includes("timestamp")||e.includes("interval")?i.Calendar:e.includes("array")||e.includes("json")||e.includes("jsonb")||e.includes("[]")?i.Brackets:e.includes("vector")?i.Vector:i.Field}function ee({typeName:t,isPrimaryKey:e,hasForeignKey:s}){return e?i.Keyword:s?i.ForeignKey:Y(t)}function te({column:t,tableName:e,schemaName:s,isPrimaryKey:n,foreignKey:l,info:o}){const c={label:t.name,type:ee({typeName:t.short_type_name,isPrimaryKey:n,hasForeignKey:!!l}),detail:t.short_type_name,boost:-t.ordinal_position};return o?c.info=o:c.info=()=>T(t.name,t.short_type_name,e,n,l,s),c}function se({schemas:t,defaultSchemaName:e="public",fileVariables:s}){var o,c;const n={};if(t&&t.length>0)for(const a of t){if(!a.tableDetails)continue;const u=a.name,d={};for(const m in a.tableDetails){const p=a.tableDetails[m],_={},C=new Set(((o=p.primary_keys)==null?void 0:o.map(f=>f.column))||[]),x=new Map(((c=p.foreign_keys)==null?void 0:c.map(f=>[f.column,f]))||[]);for(const f of p.columns){const F=C.has(f.name),A=x.get(f.name);_[f.name]={self:te({column:f,tableName:m,schemaName:u,isPrimaryKey:F,foreignKey:A}),children:{}}}_["*"]={self:{label:"*",type:i.Function,detail:"All columns",boost:50,info:()=>T("* All columns","Selects all columns",m,!1,void 0,u)},children:{}};const k=U(m);d[m]={self:{label:m,displayLabel:`${m} AS ${k}`,type:i.Table,detail:`${p.columns.length} columns`,apply:`${m} AS ${k}`,boost:100,info:()=>X(m,p,u)},children:_}}n[u]={self:{label:u,type:i.Database,detail:`${Object.keys(d).length} tables`},children:d}}const l=[];if(s)try{const a=JSON.parse(s);for(const u in a)l.push({label:`:${u}`,type:i.Variable,boost:120,detail:"variable",apply(d,m,p,_){const x=d.state.doc.sliceString(p-1,p)===":"?p-1:p;d.dispatch({changes:{from:x,to:_,insert:m.label}})}})}catch(a){console.error("🚀 ~ mappedSchemaSuggestion ~ error:",a)}return{schema:n,variableCompletions:l,defaultSchema:e}}export{te as c,U as g,se as m};
1
+ import{d as S,g as y,o as g,h,a as b,x as r,F as j,s as B,n as I,p as D,l as v,b as $,q as N,bP as i,aH as w,bw as K}from"./FyrDS92w.js";const P={class:"gap-1 flex flex-col text-sm min-w-[20rem]"},V={class:"font-medium text-sm mb-1"},L={class:"text-xs text-muted-foreground"},z={key:0,class:"text-xs text-muted-foreground"},E={key:1,class:"text-xs text-muted-foreground"},Z={class:"mt-1 text-xs max-h-[12rem] overflow-auto"},J={class:"text-muted-foreground"},M=S({__name:"SuggestionTableInfo",props:{schemaName:{},tableName:{},columns:{},pkColumns:{},fkColumns:{}},setup(t){return(e,s)=>(g(),y("div",P,[h("div",V,r(e.tableName)+" ("+r(e.schemaName||"public")+") ",1),h("div",L," Columns: "+r(e.columns.length),1),e.pkColumns.length>0?(g(),y("div",z," Primary Keys: "+r(e.pkColumns.join(", ")),1)):b("",!0),e.fkColumns.length>0?(g(),y("div",E," Foreign Keys: "+r(e.fkColumns.join(", ")),1)):b("",!0),h("div",Z,[(g(!0),y(j,null,B(e.columns,n=>(g(),y("div",{key:n.name,class:I(["py-0.5",{"font-semibold":e.pkColumns.includes(n.name)}])},[D(r(n.name)+": ",1),h("span",J,r(n.short_type_name),1)],2))),128))])]))}}),O={class:"gap-1 flex flex-col text-sm min-w-[10rem]"},q={class:"font-medium text-sm mb-1"},H={class:"text-xs text-muted-foreground"},W={class:"text-xs text-muted-foreground"},G={key:0,class:"text-xs text-yellow-500 mt-1 flex items-center gap-1"},Q={key:1,class:"text-xs text-blue-500 mt-1 flex items-center gap-1"},R=S({__name:"SuggetionColumnInfo",props:{columnName:{},dataType:{},tableName:{},isPrimaryKey:{type:Boolean},foreignKey:{}},setup(t){return(e,s)=>(g(),y("div",O,[h("div",q,r(e.columnName),1),h("div",H,"Type: "+r(e.dataType),1),h("div",W,"Table: "+r(e.tableName),1),e.isPrimaryKey?(g(),y("div",G,[v($(N),{name:"hugeicons:key-01",class:"w-4 text-yellow-400 text-xl"}),s[0]||(s[0]=h("span",null,"Primary Key",-1))])):b("",!0),e.foreignKey?(g(),y("div",Q,[v($(N),{name:"hugeicons:key-01",class:"w-4 text-muted-foreground text-xl"}),h("span",null,"FK → "+r(e.foreignKey.referenced_table)+"."+r(e.foreignKey.referenced_column),1)])):b("",!0)]))}});function U(t){let e=t.toLowerCase();const s=["tbl_","table_"];for(const o of s)e!=null&&e.startsWith(o)&&(e=e.slice(o.length));e=e.replace(/(_v\d+|_\d+)$/,"");let n=e.split(/[_-]/);n.length===1&&(n=e.match(/[A-Z]?[a-z]+|[A-Z]+(?=[A-Z][a-z]|\b)/g)||[e]);let l=n.filter(o=>o.length>0).map(o=>o[0]).join("");return!l&&e&&(l=e[0]),l}function X(t,e,s){var a,u;const n=document.createElement("div"),l=((a=e.primary_keys)==null?void 0:a.map(d=>d.column))||[],o=((u=e.foreign_keys)==null?void 0:u.map(d=>d.column))||[],c=w(M,{tableName:t,columns:e.columns,pkColumns:l,fkColumns:o,schemaName:s});return K(c,n),n}function T(t,e,s,n,l,o){const c=document.createElement("div"),a=w(R,{columnName:t,dataType:e,tableName:o?`${o}.${s}`:s,isPrimaryKey:n,foreignKey:l});return K(a,c),c}function Y(t){const e=t.toLowerCase();return e.includes("int")||e.includes("numeric")||e.includes("decimal")||e.includes("float")||e.includes("double")||e.includes("real")||e.includes("serial")||e.includes("money")?i.Numeric:e.includes("char")||e.includes("text")||e.includes("varchar")||e.includes("string")||e.includes("uuid")||e.includes("citext")?i.String:e.includes("date")||e.includes("time")||e.includes("timestamp")||e.includes("interval")?i.Calendar:e.includes("array")||e.includes("json")||e.includes("jsonb")||e.includes("[]")?i.Brackets:e.includes("vector")?i.Vector:i.Field}function ee({typeName:t,isPrimaryKey:e,hasForeignKey:s}){return e?i.Keyword:s?i.ForeignKey:Y(t)}function te({column:t,tableName:e,schemaName:s,isPrimaryKey:n,foreignKey:l,info:o}){const c={label:t.name,type:ee({typeName:t.short_type_name,isPrimaryKey:n,hasForeignKey:!!l}),detail:t.short_type_name,boost:-t.ordinal_position};return o?c.info=o:c.info=()=>T(t.name,t.short_type_name,e,n,l,s),c}function se({schemas:t,defaultSchemaName:e="public",fileVariables:s}){var o,c;const n={};if(t&&t.length>0)for(const a of t){if(!a.tableDetails)continue;const u=a.name,d={};for(const m in a.tableDetails){const p=a.tableDetails[m],_={},C=new Set(((o=p.primary_keys)==null?void 0:o.map(f=>f.column))||[]),x=new Map(((c=p.foreign_keys)==null?void 0:c.map(f=>[f.column,f]))||[]);for(const f of p.columns){const F=C.has(f.name),A=x.get(f.name);_[f.name]={self:te({column:f,tableName:m,schemaName:u,isPrimaryKey:F,foreignKey:A}),children:{}}}_["*"]={self:{label:"*",type:i.Function,detail:"All columns",boost:50,info:()=>T("* All columns","Selects all columns",m,!1,void 0,u)},children:{}};const k=U(m);d[m]={self:{label:m,displayLabel:`${m} AS ${k}`,type:i.Table,detail:`${p.columns.length} columns`,apply:`${m} AS ${k}`,boost:100,info:()=>X(m,p,u)},children:_}}n[u]={self:{label:u,type:i.Database,detail:`${Object.keys(d).length} tables`},children:d}}const l=[];if(s)try{const a=JSON.parse(s);for(const u in a)l.push({label:`:${u}`,type:i.Variable,boost:120,detail:"variable",apply(d,m,p,_){const x=d.state.doc.sliceString(p-1,p)===":"?p-1:p;d.dispatch({changes:{from:x,to:_,insert:m.label}})}})}catch(a){console.error("🚀 ~ mappedSchemaSuggestion ~ error:",a)}return{schema:n,variableCompletions:l,defaultSchema:e}}export{te as c,U as g,se as m};
@@ -1 +1 @@
1
- import{_ as C}from"./Yt1TBeFM.js";import{d as y,E as c,c as $,o as x,b as e,e as o,l as n,aR as h,p as l,x as r,q as S}from"./D09YoF-H.js";import{_ as k,a as B,b as D,c as q,d as L,e as T,f as N,g as O}from"./BhIsPYGi.js";const E=y({__name:"SafeModeConfirmDialog",props:{open:{type:Boolean},sql:{},type:{},loading:{type:Boolean}},emits:["update:open","confirm","cancel"],setup(p,{emit:m}){const i=p,a=m,f=c(()=>i.type==="save"?"Confirm Save Operation":"Confirm Delete Operation"),_=c(()=>i.type==="save"?"The following SQL will be executed to save your changes:":"The following SQL will be executed to delete the selected rows:"),d=c(()=>i.type==="save"?"Save":"Delete"),u=()=>{a("confirm"),a("update:open",!1)},v=()=>{a("cancel"),a("update:open",!1)};return(t,s)=>{const b=C,g=S;return x(),$(e(k),{open:t.open,"onUpdate:open":s[0]||(s[0]=w=>a("update:open",w))},{default:o(()=>[n(e(B),{class:"border w-[55vw]! max-w-[55vw]!"},{default:o(()=>[n(e(h),{visible:!!t.loading},null,8,["visible"]),n(e(D),null,{default:o(()=>[n(e(q),{class:"flex items-center text-base font-medium"},{default:o(()=>[l(r(e(f)),1)]),_:1}),n(e(L),null,{default:o(()=>[l(r(e(_)),1)]),_:1})]),_:1}),n(b,{code:t.sql,"show-copy-button":"","max-height":"24rem"},null,8,["code"]),n(e(T),null,{default:o(()=>[n(e(N),{class:"border font-normal",onClick:v},{default:o(()=>s[1]||(s[1]=[l(" Cancel ")])),_:1}),n(e(O),{class:"border font-normal flex gap-1",onClick:u},{default:o(()=>[n(g,{name:t.type==="save"?"lucide:save":"lucide:trash-2",class:"size-4"},null,8,["name"]),l(" "+r(e(d)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["open"])}}});export{E as _};
1
+ import{_ as C}from"./DzJD_fir.js";import{d as y,E as c,c as $,o as x,b as e,e as o,l as n,aR as h,p as l,x as r,q as S}from"./FyrDS92w.js";import{_ as k,a as B,b as D,c as q,d as L,e as T,f as N,g as O}from"./DCMJS6Fh.js";const E=y({__name:"SafeModeConfirmDialog",props:{open:{type:Boolean},sql:{},type:{},loading:{type:Boolean}},emits:["update:open","confirm","cancel"],setup(p,{emit:m}){const i=p,a=m,f=c(()=>i.type==="save"?"Confirm Save Operation":"Confirm Delete Operation"),_=c(()=>i.type==="save"?"The following SQL will be executed to save your changes:":"The following SQL will be executed to delete the selected rows:"),d=c(()=>i.type==="save"?"Save":"Delete"),u=()=>{a("confirm"),a("update:open",!1)},v=()=>{a("cancel"),a("update:open",!1)};return(t,s)=>{const b=C,g=S;return x(),$(e(k),{open:t.open,"onUpdate:open":s[0]||(s[0]=w=>a("update:open",w))},{default:o(()=>[n(e(B),{class:"border w-[55vw]! max-w-[55vw]!"},{default:o(()=>[n(e(h),{visible:!!t.loading},null,8,["visible"]),n(e(D),null,{default:o(()=>[n(e(q),{class:"flex items-center text-base font-medium"},{default:o(()=>[l(r(e(f)),1)]),_:1}),n(e(L),null,{default:o(()=>[l(r(e(_)),1)]),_:1})]),_:1}),n(b,{code:t.sql,"show-copy-button":"","max-height":"24rem"},null,8,["code"]),n(e(T),null,{default:o(()=>[n(e(N),{class:"border font-normal",onClick:v},{default:o(()=>s[1]||(s[1]=[l(" Cancel ")])),_:1}),n(e(O),{class:"border font-normal flex gap-1",onClick:u},{default:o(()=>[n(g,{name:t.type==="save"?"lucide:save":"lucide:trash-2",class:"size-4"},null,8,["name"]),l(" "+r(e(d)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["open"])}}});export{E as _};
@@ -1 +1 @@
1
- import{d as f,u as b,E as o,r as C,aD as y,aE as g,c as p,o as v,e as d,l as h,b as t,P as B,aG as I,f as m,a as P,ag as T,G as k,j as q}from"./D09YoF-H.js";import{i as M,m as x,c as S}from"./BIEijd7m.js";var w=f({__name:"TabsContent",props:{value:{type:[String,Number],required:!0},forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(r){const a=r,{forwardRef:l}=b(),e=M(),s=o(()=>x(e.baseId,a.value)),_=o(()=>S(e.baseId,a.value)),u=o(()=>a.value===e.modelValue.value),i=C(u.value);return y(()=>{e.registerContent(a.value),requestAnimationFrame(()=>{i.value=!1})}),g(()=>{e.unregisterContent(a.value)}),(n,N)=>(v(),p(t(T),{present:n.forceMount||u.value,"force-mount":""},{default:d(({present:c})=>[h(t(B),{id:_.value,ref:t(l),"as-child":n.asChild,as:n.as,role:"tabpanel","data-state":u.value?"active":"inactive","data-orientation":t(e).orientation.value,"aria-labelledby":s.value,hidden:!c,tabindex:"0",style:I({animationDuration:i.value?"0s":void 0})},{default:d(()=>[!t(e).unmountOnHide.value||c?m(n.$slots,"default",{key:0}):P("v-if",!0)]),_:2},1032,["id","as-child","as","data-state","data-orientation","aria-labelledby","hidden","style"])]),_:3},8,["present"]))}}),E=w;const j=f({__name:"TabsContent",props:{value:{},forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(r){const a=r,l=o(()=>{const{class:e,...s}=a;return s});return(e,s)=>(v(),p(t(E),k({"data-slot":"tabs-content",class:t(q)("flex-1 outline-none",a.class)},l.value),{default:d(()=>[m(e.$slots,"default")]),_:3},16,["class"]))}});export{j as _};
1
+ import{d as f,u as b,E as o,r as C,aD as y,aE as g,c as p,o as v,e as d,l as h,b as t,P as B,aG as I,f as m,a as P,ag as T,G as k,j as q}from"./FyrDS92w.js";import{i as M,m as x,c as S}from"./D6YseYA6.js";var w=f({__name:"TabsContent",props:{value:{type:[String,Number],required:!0},forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(r){const a=r,{forwardRef:l}=b(),e=M(),s=o(()=>x(e.baseId,a.value)),_=o(()=>S(e.baseId,a.value)),u=o(()=>a.value===e.modelValue.value),i=C(u.value);return y(()=>{e.registerContent(a.value),requestAnimationFrame(()=>{i.value=!1})}),g(()=>{e.unregisterContent(a.value)}),(n,N)=>(v(),p(t(T),{present:n.forceMount||u.value,"force-mount":""},{default:d(({present:c})=>[h(t(B),{id:_.value,ref:t(l),"as-child":n.asChild,as:n.as,role:"tabpanel","data-state":u.value?"active":"inactive","data-orientation":t(e).orientation.value,"aria-labelledby":s.value,hidden:!c,tabindex:"0",style:I({animationDuration:i.value?"0s":void 0})},{default:d(()=>[!t(e).unmountOnHide.value||c?m(n.$slots,"default",{key:0}):P("v-if",!0)]),_:2},1032,["id","as-child","as","data-state","data-orientation","aria-labelledby","hidden","style"])]),_:3},8,["present"]))}}),E=w;const j=f({__name:"TabsContent",props:{value:{},forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(r){const a=r,l=o(()=>{const{class:e,...s}=a;return s});return(e,s)=>(v(),p(t(E),k({"data-slot":"tabs-content",class:t(q)("flex-1 outline-none",a.class)},l.value),{default:d(()=>[m(e.$slots,"default")]),_:3},16,["class"]))}});export{j as _};
@@ -1 +1 @@
1
- import{d as t,a5 as a,x as s,b as n}from"./D09YoF-H.js";const c=t({__name:"index",setup(r){const e=a();return(o,i)=>s(n(e).activeTab)}});export{c as default};
1
+ import{d as t,a5 as a,x as s,b as n}from"./FyrDS92w.js";const c=t({__name:"index",setup(r){const e=a();return(o,i)=>s(n(e).activeTab)}});export{c as default};
@@ -29,4 +29,7 @@ We are excited to announce version 1.0.25, featuring critical bug fixes and work
29
29
  - **Syntax Highlighting:** Added specific highlighting for SQL functions to improve code readability.
30
30
  - **Error Tab:** Introduced a dedicated "Error" tab in the results pane for clearer error reporting.
31
31
  - **Smart Autocomplete:** Improved the intelligence of schema suggestions (IntelliSense) for faster and more accurate query writing.
32
- `;export{e as default};
32
+
33
+
34
+ ## ⚠️ Breaking Changes
35
+ - **Raw query editor:** Not support can parser -- PARAMETERS: [...] in comment of query, because this feature is only for internal use when execute query from UI, not for user write query in editor, so this not support for now, we will consider to support in future if have demand from user`;export{e as default};
@@ -1 +1 @@
1
- import{r as o,bf as d,E as p}from"./D09YoF-H.js";const y=t=>{const a=o(!1),e=o(null),r=o([]),i=async()=>{if(!t.value){e.value="No database connection provided";return}a.value=!0,e.value=null;try{const n=await $fetch("/api/database-roles/get-roles",{method:"POST",body:{...d(t.value)}});r.value=n}catch(n){e.value=n instanceof Error?n.message:"Failed to fetch roles",console.error("Error fetching database roles:",n)}finally{a.value=!1}},s=()=>i(),f=p(()=>{const n=[],l=[],c=[];for(const u of r.value)u.isSuperuser?n.push(u):u.canLogin?l.push(u):c.push(u);return{superusers:n,users:l,roles:c}});return{isLoading:a,error:e,roles:r,categorizedRoles:f,fetchRoles:i,refresh:s}},P=t=>{const a=o(!1),e=o(!1),r=o(null),i=n=>{const l="control plane:",c=n.indexOf(l);if(c===-1)return null;const u=n.slice(c+l.length).trim(),m=u.indexOf("{"),v=u.lastIndexOf("}");if(m===-1||v===-1)return null;const b=u.slice(m,v+1);try{const h=JSON.parse(b);if(h!=null&&h.error&&typeof h.error=="string")return h.error}catch{return null}return null};return{isCreating:a,isDeleting:e,error:r,createRole:async n=>{var l;if(!t.value)return r.value="No database connection provided",null;a.value=!0,r.value=null;try{return await $fetch("/api/database-roles/create-role",{method:"POST",body:{...n,...d(t.value)}})}catch(c){const u=((l=c==null?void 0:c.data)==null?void 0:l.message)||(c instanceof Error?c.message:"Failed to create role"),v=i(u)||u.replace(/^Failed to create role:\s*/i,"").trim();return r.value=v,console.error("Error creating role:",c),{success:!1,message:v,sql:""}}finally{a.value=!1}},deleteRole:async n=>{if(!t.value)return r.value="No database connection provided",null;e.value=!0,r.value=null;try{return await $fetch("/api/database-roles/delete-role",{method:"POST",body:{...d(t.value),roleName:n}})}catch(l){return r.value=l instanceof Error?l.message:"Failed to delete role",console.error("Error deleting role:",l),null}finally{e.value=!1}}}},E=t=>{const a=o(!1),e=o(null),r=o([]);return{isLoading:a,error:e,databasePermissions:r,fetchDatabasePermissions:async s=>{if(!t.value||!s){e.value="Missing connection or role name";return}a.value=!0,e.value=null;try{const f=await $fetch("/api/database-roles/get-databases-with-permissions",{method:"POST",body:{...d(t.value),roleName:s}});r.value=f}catch(f){e.value=f instanceof Error?f.message:"Failed to fetch database permissions",console.error("Error fetching database permissions:",f)}finally{a.value=!1}}}},O=t=>{const a=o(!1),e=o(null),r=o([]);return{isLoading:a,error:e,databases:r,fetchDatabases:async()=>{if(!t.value){e.value="No database connection provided";return}a.value=!0,e.value=null;try{const s=await $fetch("/api/database-roles/get-databases",{method:"POST",body:{...d(t.value)}});r.value=s}catch(s){e.value=s instanceof Error?s.message:"Failed to fetch databases",console.error("Error fetching databases:",s)}finally{a.value=!1}}}},S=t=>{const a=o(!1),e=o(null),r=o([]);return{isLoading:a,error:e,schemas:r,fetchSchemas:async()=>{if(!t.value){e.value="No database connection provided";return}a.value=!0,e.value=null;try{const s=await $fetch("/api/database-roles/get-schemas",{method:"POST",body:{...d(t.value)}});r.value=s}catch(s){e.value=s instanceof Error?s.message:"Failed to fetch schemas",console.error("Error fetching schemas:",s)}finally{a.value=!1}}}},w=t=>{const a=o(!1),e=o(null);return{isGranting:a,error:e,grantBulkPermissions:async i=>{if(!t.value)return e.value="No database connection provided",null;a.value=!0,e.value=null;try{return await $fetch("/api/database-roles/grant-bulk-permissions",{method:"POST",body:{...i,...d(t.value)}})}catch(s){return e.value=s instanceof Error?s.message:"Failed to grant permissions",console.error("Error granting bulk permissions:",s),null}finally{a.value=!1}}}};export{y as a,P as b,O as c,S as d,w as e,E as u};
1
+ import{r as o,bf as d,E as p}from"./FyrDS92w.js";const y=t=>{const a=o(!1),e=o(null),r=o([]),i=async()=>{if(!t.value){e.value="No database connection provided";return}a.value=!0,e.value=null;try{const n=await $fetch("/api/database-roles/get-roles",{method:"POST",body:{...d(t.value)}});r.value=n}catch(n){e.value=n instanceof Error?n.message:"Failed to fetch roles",console.error("Error fetching database roles:",n)}finally{a.value=!1}},s=()=>i(),f=p(()=>{const n=[],l=[],c=[];for(const u of r.value)u.isSuperuser?n.push(u):u.canLogin?l.push(u):c.push(u);return{superusers:n,users:l,roles:c}});return{isLoading:a,error:e,roles:r,categorizedRoles:f,fetchRoles:i,refresh:s}},P=t=>{const a=o(!1),e=o(!1),r=o(null),i=n=>{const l="control plane:",c=n.indexOf(l);if(c===-1)return null;const u=n.slice(c+l.length).trim(),m=u.indexOf("{"),v=u.lastIndexOf("}");if(m===-1||v===-1)return null;const b=u.slice(m,v+1);try{const h=JSON.parse(b);if(h!=null&&h.error&&typeof h.error=="string")return h.error}catch{return null}return null};return{isCreating:a,isDeleting:e,error:r,createRole:async n=>{var l;if(!t.value)return r.value="No database connection provided",null;a.value=!0,r.value=null;try{return await $fetch("/api/database-roles/create-role",{method:"POST",body:{...n,...d(t.value)}})}catch(c){const u=((l=c==null?void 0:c.data)==null?void 0:l.message)||(c instanceof Error?c.message:"Failed to create role"),v=i(u)||u.replace(/^Failed to create role:\s*/i,"").trim();return r.value=v,console.error("Error creating role:",c),{success:!1,message:v,sql:""}}finally{a.value=!1}},deleteRole:async n=>{if(!t.value)return r.value="No database connection provided",null;e.value=!0,r.value=null;try{return await $fetch("/api/database-roles/delete-role",{method:"POST",body:{...d(t.value),roleName:n}})}catch(l){return r.value=l instanceof Error?l.message:"Failed to delete role",console.error("Error deleting role:",l),null}finally{e.value=!1}}}},E=t=>{const a=o(!1),e=o(null),r=o([]);return{isLoading:a,error:e,databasePermissions:r,fetchDatabasePermissions:async s=>{if(!t.value||!s){e.value="Missing connection or role name";return}a.value=!0,e.value=null;try{const f=await $fetch("/api/database-roles/get-databases-with-permissions",{method:"POST",body:{...d(t.value),roleName:s}});r.value=f}catch(f){e.value=f instanceof Error?f.message:"Failed to fetch database permissions",console.error("Error fetching database permissions:",f)}finally{a.value=!1}}}},O=t=>{const a=o(!1),e=o(null),r=o([]);return{isLoading:a,error:e,databases:r,fetchDatabases:async()=>{if(!t.value){e.value="No database connection provided";return}a.value=!0,e.value=null;try{const s=await $fetch("/api/database-roles/get-databases",{method:"POST",body:{...d(t.value)}});r.value=s}catch(s){e.value=s instanceof Error?s.message:"Failed to fetch databases",console.error("Error fetching databases:",s)}finally{a.value=!1}}}},S=t=>{const a=o(!1),e=o(null),r=o([]);return{isLoading:a,error:e,schemas:r,fetchSchemas:async()=>{if(!t.value){e.value="No database connection provided";return}a.value=!0,e.value=null;try{const s=await $fetch("/api/database-roles/get-schemas",{method:"POST",body:{...d(t.value)}});r.value=s}catch(s){e.value=s instanceof Error?s.message:"Failed to fetch schemas",console.error("Error fetching schemas:",s)}finally{a.value=!1}}}},w=t=>{const a=o(!1),e=o(null);return{isGranting:a,error:e,grantBulkPermissions:async i=>{if(!t.value)return e.value="No database connection provided",null;a.value=!0,e.value=null;try{return await $fetch("/api/database-roles/grant-bulk-permissions",{method:"POST",body:{...i,...d(t.value)}})}catch(s){return e.value=s instanceof Error?s.message:"Failed to grant permissions",console.error("Error granting bulk permissions:",s),null}finally{a.value=!1}}}};export{y as a,P as b,O as c,S as d,w as e,E as u};
@@ -1 +1 @@
1
- import{E as I,aj as Se,bP as re,d as $,al as we,bb as xe,u as Q,ad as fe,c as k,o as b,e as n,f as T,b as e,P as me,bc as ke,I as Ve,an as $e,G as X,h as i,n as q,j as ne,ai as Ae,l as a,bQ as Ee,bA as se,r as B,ao as H,aS as Ie,aC as de,bR as Pe,N as Ke,q as P,g as U,a as N,K as S,p as g,bg as ve,F as Z,R as K,X as Re,at as Ue,bd as Te,Z as Oe,a1 as M,t as Be,x as G,aO as qe,O as ge,Q as ye,V as he,s as Ne,T as be,m as F,C as He,D as ze,W as ae,bS as Me}from"./D09YoF-H.js";import{i as Fe,_ as ie}from"./DQGbtuZC.js";import{_ as je,a as Le,b as ue}from"./BIEijd7m.js";import{_ as pe}from"./CUoNnXI-.js";import{u as Ge}from"./kehy-5uo.js";import{C as Ye,a as We,b as Qe}from"./Dj_2PaSj.js";import{u as Xe,a as Ze,f as L,_ as Je}from"./CbUYBSfT.js";import{_ as Y}from"./DyuFRrhb.js";function es({type:o,defaultValue:l,modelValue:r}){const t=r||l;return r!==void 0||l!==void 0?Array.isArray(t)?"multiple":"single":o??"single"}function ss({type:o,defaultValue:l,modelValue:r}){return o||es({type:o,defaultValue:l,modelValue:r})}function as({type:o,defaultValue:l}){return l!==void 0?l:o==="single"?void 0:[]}function ts(o,l){const r=I(()=>ss(o)),t=Se(o,"modelValue",l,{defaultValue:as(o),passive:o.modelValue===void 0,deep:!0});function u(v){if(r.value==="single")t.value=re(v,t.value)?void 0:v;else{const f=Array.isArray(t.value)?[...t.value||[]]:[t.value].filter(Boolean);if(Fe(f,v)){const d=f.findIndex(s=>re(s,v));f.splice(d,1)}else f.push(v);t.value=f}}const p=I(()=>r.value==="single");return{modelValue:t,changeModelValue:u,isSingle:p}}const[J,os]=fe("AccordionRoot");var ns=$({__name:"AccordionRoot",props:{collapsible:{type:Boolean,required:!1,default:!1},disabled:{type:Boolean,required:!1,default:!1},dir:{type:String,required:!1},orientation:{type:String,required:!1,default:"vertical"},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},type:{type:String,required:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1}},emits:["update:modelValue"],setup(o,{emit:l}){const r=o,t=l,{dir:u,disabled:p,unmountOnHide:v}=we(r),f=xe(u),{modelValue:d,changeModelValue:s,isSingle:w}=ts(r,t),{forwardRef:h,currentElement:x}=Q();return os({disabled:p,direction:f,orientation:r.orientation,parentElement:x,isSingle:w,collapsible:r.collapsible,modelValue:d,changeModelValue:s,unmountOnHide:v}),(R,_)=>(b(),k(e(me),{ref:e(h),"as-child":R.asChild,as:R.as},{default:n(()=>[T(R.$slots,"default",{modelValue:e(d)})]),_:3},8,["as-child","as"]))}}),ls=ns,te=function(o){return o.Open="open",o.Closed="closed",o}(te||{});const[le,rs]=fe("AccordionItem");var ds=$({__name:"AccordionItem",props:{disabled:{type:Boolean,required:!1},value:{type:String,required:!0},unmountOnHide:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(o,{expose:l}){const r=o,t=J(),u=I(()=>t.isSingle.value?r.value===t.modelValue.value:Array.isArray(t.modelValue.value)&&t.modelValue.value.includes(r.value)),p=I(()=>t.disabled.value||r.disabled),v=I(()=>p.value?"":void 0),f=I(()=>u.value?te.Open:te.Closed);l({open:u,dataDisabled:v});const{currentRef:d,currentElement:s}=Q();rs({open:u,dataState:f,disabled:p,dataDisabled:v,triggerId:"",currentRef:d,currentElement:s,value:I(()=>r.value)});function w(h){var m;const x=h.target;if(Array.from(((m=t.parentElement.value)==null?void 0:m.querySelectorAll("[data-reka-collection-item]"))??[]).findIndex(V=>V===x)===-1)return null;Xe(h,x,t.parentElement.value,{arrowKeyOptions:t.orientation,dir:t.direction.value,focus:!0})}return(h,x)=>(b(),k(e(Ye),{"data-orientation":e(t).orientation,"data-disabled":v.value,"data-state":f.value,disabled:p.value,open:u.value,as:r.as,"as-child":r.asChild,"unmount-on-hide":r.unmountOnHide??e(t).unmountOnHide.value,onKeydown:ke(w,["up","down","left","right","home","end"])},{default:n(()=>[T(h.$slots,"default",{open:u.value})]),_:3},8,["data-orientation","data-disabled","data-state","disabled","open","as","as-child","unmount-on-hide"]))}}),is=ds,us=$({__name:"AccordionContent",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(o){const l=o,r=J(),t=le();return Q(),(u,p)=>(b(),k(e(We),{role:"region","as-child":l.asChild,as:u.as,"force-mount":l.forceMount,"aria-labelledby":e(t).triggerId,"data-state":e(t).dataState.value,"data-disabled":e(t).dataDisabled.value,"data-orientation":e(r).orientation,style:{"--reka-accordion-content-width":"var(--reka-collapsible-content-width)","--reka-accordion-content-height":"var(--reka-collapsible-content-height)"},onContentFound:p[0]||(p[0]=v=>e(r).changeModelValue(e(t).value.value))},{default:n(()=>[T(u.$slots,"default")]),_:3},8,["as-child","as","force-mount","aria-labelledby","data-state","data-disabled","data-orientation"]))}}),ps=us,cs=$({__name:"AccordionHeader",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"h3"}},setup(o){const l=o,r=J(),t=le();return Q(),(u,p)=>(b(),k(e(me),{as:l.as,"as-child":l.asChild,"data-orientation":e(r).orientation,"data-state":e(t).dataState.value,"data-disabled":e(t).dataDisabled.value},{default:n(()=>[T(u.$slots,"default")]),_:3},8,["as","as-child","data-orientation","data-state","data-disabled"]))}}),fs=cs,ms=$({__name:"AccordionTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(o){const l=o,r=J(),t=le();t.triggerId||(t.triggerId=Ve(void 0,"reka-accordion-trigger"));function u(){const p=r.isSingle.value&&t.open.value&&!r.collapsible;t.disabled.value||p||r.changeModelValue(t.value.value)}return(p,v)=>(b(),k(e(Qe),{id:e(t).triggerId,ref:e(t).currentRef,"data-reka-collection-item":"",as:l.as,"as-child":l.asChild,"aria-disabled":e(t).disabled.value||void 0,"aria-expanded":e(t).open.value||!1,"data-disabled":e(t).dataDisabled.value,"data-orientation":e(r).orientation,"data-state":e(t).dataState.value,disabled:e(t).disabled.value,onClick:u},{default:n(()=>[T(p.$slots,"default")]),_:3},8,["id","as","as-child","aria-disabled","aria-expanded","data-disabled","data-orientation","data-state","disabled"]))}}),vs=ms;const ce=$({__name:"Accordion",props:{collapsible:{type:Boolean},disabled:{type:Boolean},dir:{},orientation:{},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{},type:{},modelValue:{},defaultValue:{}},emits:["update:modelValue"],setup(o,{emit:l}){const u=$e(o,l);return(p,v)=>(b(),k(e(ls),X({"data-slot":"accordion"},e(u)),{default:n(()=>[T(p.$slots,"default")]),_:3},16))}}),_e=$({__name:"AccordionContent",props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(o){const l=o,r=I(()=>{const{class:t,...u}=l;return u});return(t,u)=>(b(),k(e(ps),X({"data-slot":"accordion-content"},r.value,{class:"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm"}),{default:n(()=>[i("div",{class:q(e(ne)("pt-0 pb-4",l.class))},[T(t.$slots,"default")],2)]),_:3},16))}}),De=$({__name:"AccordionItem",props:{disabled:{type:Boolean},value:{},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(o){const l=o,r=I(()=>{const{class:u,...p}=l;return p}),t=Ae(r);return(u,p)=>(b(),k(e(is),X({"data-slot":"accordion-item"},e(t),{class:e(ne)("border-b last:border-b-0",l.class)}),{default:n(()=>[T(u.$slots,"default")]),_:3},16,["class"]))}}),Ce=$({__name:"AccordionTrigger",props:{asChild:{type:Boolean},as:{},class:{}},setup(o){const l=o,r=I(()=>{const{class:t,...u}=l;return u});return(t,u)=>(b(),k(e(fs),{class:"flex"},{default:n(()=>[a(e(vs),X({"data-slot":"accordion-trigger"},r.value,{class:e(ne)("focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",l.class)}),{default:n(()=>[T(t.$slots,"default"),T(t.$slots,"icon",{},()=>[a(e(Ee),{class:"text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200"})])]),_:3},16,["class"])]),_:3}))}}),gs={healthCheck:o=>$fetch("/api/managment-connection/health-check",{method:"POST",body:o})};var z=(o=>(o.STRING="string",o.FORM="form",o))(z||{}),oe=(o=>(o.DISABLE="disable",o.PREFERRED="preferred",o.REQUIRE="require",o.VERIFY_CA="verify-ca",o.VERIFY_FULL="verify-full",o))(oe||{}),O=(o=>(o.PASSWORD="password",o.KEY="key",o))(O||{});function ys(o){const l=se(o.open),r=se(o.editingConnection),t=se(o.workspaceId),u=B(1),p=B(H.POSTGRES),v=B("my-abc-db:dev"),f=B(z.STRING),d=B(""),s=Ie({host:"",port:"",username:"",password:"",database:"",sslEnabled:!1,sslMode:oe.DISABLE,sslCA:"",sslCert:"",sslKey:"",sslRejectUnauthorized:!0,sshEnabled:!1,sshHost:"",sshPort:22,sshUsername:"",sshAuthMethod:O.PASSWORD,sshPassword:"",sshPrivateKey:"",sshStoreInKeychain:!0,sshUseKey:!1}),w=B("idle"),h=D=>D&&Pe[D]||"",x=()=>{u.value=1,p.value=H.POSTGRES,v.value="my-abc-db:dev",f.value=z.STRING,d.value="",s.host="",s.port=h(H.POSTGRES),s.username="",s.password="",s.database="",s.sslEnabled=!1,s.sslMode=oe.DISABLE,s.sslCA="",s.sslCert="",s.sslKey="",s.sslRejectUnauthorized=!0,s.sshEnabled=!1,s.sshHost="",s.sshPort=22,s.sshUsername="",s.sshAuthMethod=O.PASSWORD,s.sshPassword="",s.sshPrivateKey="",s.sshStoreInKeychain=!0,s.sshUseKey=!1,w.value="idle"},R=()=>{u.value===1&&p.value&&(u.value=2)},_=()=>{u.value=1,w.value="idle"},m=async()=>{w.value="testing";const D={type:p.value};f.value===z.STRING?D.stringConnection=d.value:(D.host=s.host,D.port=s.port||h(p.value),D.username=s.username,D.password=s.password,D.database=s.database,s.sslEnabled&&(D.ssl={mode:s.sslMode,ca:s.sslCA,cert:s.sslCert,key:s.sslKey,rejectUnauthorized:s.sslRejectUnauthorized}),s.sshEnabled&&(D.ssh={enabled:!0,host:s.sshHost,port:s.sshPort,username:s.sshUsername,authMethod:s.sshUseKey?O.KEY:O.PASSWORD,password:s.sshPassword,privateKey:s.sshPrivateKey,storeInKeychain:s.sshStoreInKeychain,useSshKey:s.sshUseKey}));try{return(await gs.healthCheck(D)).isConnectedSuccess?(w.value="success",!0):(w.value="error",!1)}catch{return w.value="error",!1}},V=async()=>{var E,c;const y=!!!r.value;if(y&&!await m())return;const A={workspaceId:t.value,id:((E=r.value)==null?void 0:E.id)||Ge(),name:v.value,type:p.value,method:f.value,createdAt:((c=r.value)==null?void 0:c.createdAt)||Ke().toISOString()};if(f.value===z.STRING)A.connectionString=d.value;else{A.host=s.host,A.port=s.port||h(p.value),A.username=s.username,A.password=s.password,A.database=s.database,s.sslEnabled&&(A.ssl={mode:s.sslMode,ca:s.sslCA,cert:s.sslCert,key:s.sslKey,rejectUnauthorized:s.sslRejectUnauthorized}),s.sshEnabled&&(A.ssh={enabled:!0,host:s.sshHost,port:s.sshPort,username:s.sshUsername,authMethod:s.sshUseKey?O.KEY:O.PASSWORD,password:s.sshPassword,privateKey:s.sshPrivateKey,storeInKeychain:s.sshStoreInKeychain,useSshKey:s.sshUseKey});const C=p.value===H.POSTGRES?"postgresql":"mysql";A.connectionString=`${C}://${s.username}:${s.password}@${s.host}:${A.port}/${s.database}`}y?o.onAddNew(A):o.onUpdate(A),o.onClose()},ee=()=>{switch(p.value){case H.POSTGRES:return"postgresql://username:password@localhost:5432/database";case H.MYSQL:case H.MYSQL2:return"mysql://username:password@localhost:3306/database";default:return""}},j=I(()=>v.value?f.value===z.STRING?!!d.value:!!(s.host&&(s.port||h(p.value))&&s.username&&s.database):!1);return de(p,D=>{D&&!r.value&&(s.port=h(D))}),de(()=>[l.value,r.value],()=>{var D;if(l.value)if(r.value){const y=r.value;v.value=y.name,p.value=y.type,f.value=y.method,d.value=y.connectionString||"",s.host=y.host||"",s.port=y.port||"",s.username=y.username||"",s.password=y.password||"",s.database=y.database||"",s.sslEnabled=!!y.ssl,y.ssl&&(s.sslMode=y.ssl.mode,s.sslCA=y.ssl.ca||"",s.sslCert=y.ssl.cert||"",s.sslKey=y.ssl.key||"",s.sslRejectUnauthorized=y.ssl.rejectUnauthorized??!0),s.sshEnabled=!!((D=y.ssh)!=null&&D.enabled),y.ssh&&(s.sshHost=y.ssh.host||"",s.sshPort=y.ssh.port||22,s.sshUsername=y.ssh.username||"",s.sshAuthMethod=y.ssh.authMethod||O.PASSWORD,s.sshPassword=y.ssh.password||"",s.sshPrivateKey=y.ssh.privateKey||"",s.sshStoreInKeychain=y.ssh.storeInKeychain??!0,s.sshUseKey=y.ssh.useSshKey??y.ssh.authMethod===O.KEY),u.value=2}else x()},{immediate:!0}),{step:u,dbType:p,connectionName:v,connectionMethod:f,connectionString:d,formData:s,testStatus:w,handleNext:R,handleBack:_,handleTestConnection:m,handleCreateConnection:V,getDefaultPort:()=>h(p.value),getConnectionPlaceholder:ee,isFormValid:j,resetForm:x}}function W(o){const l=B(!1);return{isDragging:l,onDragOver:p=>{p.preventDefault(),l.value=!0},onDragLeave:()=>{l.value=!1},onDrop:async p=>{var s;p.preventDefault(),l.value=!1;const v=(s=p.dataTransfer)==null?void 0:s.files;if(!v||v.length===0)return;const f=v[0],d=new FileReader;d.onload=w=>{var x;const h=(x=w.target)==null?void 0:x.result;o&&o(h)},d.readAsText(f)}}}const hs={class:"flex items-center gap-2"},bs={class:"flex items-center justify-between"},_s={class:"grid grid-cols-4 gap-4"},Ds={class:"col-span-3 space-y-2"},Cs={class:"space-y-2"},Ss={class:"grid grid-cols-2 gap-4"},ws={class:"space-y-2"},xs={class:"space-y-2"},ks={class:"relative"},Vs=["aria-label"],$s={class:"flex items-center gap-2"},As={class:"space-y-4 pt-2 border-t"},Es={class:"flex items-center gap-2"},Is={key:0,class:"space-y-2"},Ps=$({__name:"ConnectionSSHTunnel",props:{formData:{}},setup(o){const l=o,{onDragOver:r,onDragLeave:t,onDrop:u,isDragging:p}=W(f=>{l.formData.sshPrivateKey=f}),v=B(!1);return(f,d)=>(b(),k(e(De),{value:"ssh"},{default:n(()=>[a(e(Ce),{class:"hover:no-underline"},{default:n(()=>[i("div",hs,[a(e(P),{name:"lucide:terminal",class:"size-4 text-primary"}),d[9]||(d[9]=i("span",null,"SSH Tunnel",-1))])]),_:1}),a(e(_e),{class:"space-y-4 pt-4 px-1"},{default:n(()=>[i("div",bs,[a(e(S),{for:"ssh-enabled"},{default:n(()=>d[10]||(d[10]=[g("Over SSH")])),_:1}),a(e(ve),{id:"ssh-enabled","model-value":f.formData.sshEnabled,"onUpdate:modelValue":d[0]||(d[0]=s=>f.formData.sshEnabled=s)},null,8,["model-value"])]),f.formData.sshEnabled?(b(),U(Z,{key:0},[i("div",_s,[i("div",Ds,[a(e(S),{for:"ssh-host"},{default:n(()=>d[11]||(d[11]=[g("Server")])),_:1}),a(e(K),{id:"ssh-host",placeholder:"e.g. ssh.example.com or 1.2.3.4",modelValue:f.formData.sshHost,"onUpdate:modelValue":d[1]||(d[1]=s=>f.formData.sshHost=s)},null,8,["modelValue"])]),i("div",Cs,[a(e(S),{for:"ssh-port"},{default:n(()=>d[12]||(d[12]=[g("Port")])),_:1}),a(e(K),{id:"ssh-port",type:"number",placeholder:"22",modelValue:f.formData.sshPort,"onUpdate:modelValue":d[2]||(d[2]=s=>f.formData.sshPort=s)},null,8,["modelValue"])])]),i("div",Ss,[i("div",ws,[a(e(S),{for:"ssh-user"},{default:n(()=>d[13]||(d[13]=[g("User")])),_:1}),a(e(K),{id:"ssh-user",placeholder:"e.g. root or ubuntu",modelValue:f.formData.sshUsername,"onUpdate:modelValue":d[3]||(d[3]=s=>f.formData.sshUsername=s)},null,8,["modelValue"])]),i("div",xs,[a(e(S),{for:"ssh-password"},{default:n(()=>d[14]||(d[14]=[g("Password")])),_:1}),i("div",ks,[a(e(K),{id:"ssh-password",type:e(v)?"text":"password",placeholder:"SSH password (optional if using key)",modelValue:f.formData.sshPassword,"onUpdate:modelValue":d[4]||(d[4]=s=>f.formData.sshPassword=s),class:"pr-8"},null,8,["type","modelValue"]),i("button",{type:"button",class:"absolute right-2 top-1/2 h-4 cursor-pointer -translate-y-1/2 text-muted-foreground hover:text-foreground transition-colors",onClick:d[5]||(d[5]=s=>v.value=!e(v)),"aria-label":e(v)?"Hide password":"Show password"},[a(e(P),{name:e(v)?"hugeicons:view":"hugeicons:view-off",class:"size-4!"},null,8,["name"])],8,Vs)])])]),i("div",$s,[a(e(ie),{id:"ssh-keychain","model-value":f.formData.sshStoreInKeychain,"onUpdate:modelValue":d[6]||(d[6]=s=>f.formData.sshStoreInKeychain=s)},null,8,["model-value"]),a(e(S),{for:"ssh-keychain",class:"text-sm font-normal"},{default:n(()=>d[15]||(d[15]=[g("Store in keychain")])),_:1})]),i("div",As,[i("div",Es,[a(e(ie),{id:"ssh-use-key","model-value":f.formData.sshUseKey,"onUpdate:modelValue":d[7]||(d[7]=s=>f.formData.sshUseKey=s)},null,8,["model-value"]),a(e(S),{for:"ssh-use-key",class:"text-sm font-semibold"},{default:n(()=>d[16]||(d[16]=[g("SSH Key Authentication")])),_:1})]),f.formData.sshUseKey?(b(),U("div",Is,[a(e(S),{for:"ssh-key-file"},{default:n(()=>d[17]||(d[17]=[g("Private Key")])),_:1}),a(e(Y),{id:"ssh-key-file",modelValue:f.formData.sshPrivateKey,"onUpdate:modelValue":d[8]||(d[8]=s=>f.formData.sshPrivateKey=s),placeholder:"-----BEGIN OPENSSH PRIVATE KEY-----\\n...\\n-----END OPENSSH PRIVATE KEY-----",class:q(["min-h-[100px] max-h-[200px] text-xs font-mono",e(p)?"ring-2 ring-primary":""]),onDragover:e(r),onDragleave:e(t),onDrop:e(u)},null,8,["modelValue","class","onDragover","onDragleave","onDrop"]),d[18]||(d[18]=i("p",{class:"text-xs text-muted-foreground"}," Drop a .pem / .key file here, or paste the SSH private key content ",-1))])):N("",!0)])],64)):N("",!0)]),_:1})]),_:1}))}}),Ks={class:"flex items-center gap-2"},Rs={class:"flex items-center justify-between"},Us={class:"space-y-2"},Ts={class:"space-y-4"},Os={class:"space-y-2"},Bs={class:"space-y-2"},qs={class:"space-y-2"},Ns=$({__name:"ConnectionSSLConfig",props:{formData:{}},setup(o){const l=o,{onDragOver:r,onDragLeave:t,onDrop:u,isDragging:p}=W(_=>{l.formData.sslCA=_}),{onDragOver:v,onDragLeave:f,onDrop:d,isDragging:s}=W(_=>{l.formData.sslCert=_}),{onDragOver:w,onDragLeave:h,onDrop:x,isDragging:R}=W(_=>{l.formData.sslKey=_});return(_,m)=>(b(),k(e(De),{value:"ssl"},{default:n(()=>[a(e(Ce),{class:"hover:no-underline"},{default:n(()=>[i("div",Ks,[a(e(P),{name:"hugeicons:security-check",class:"size-4 text-primary"}),m[5]||(m[5]=i("span",null,"SSL Configuration",-1))])]),_:1}),a(e(_e),{class:"space-y-4 pt-4 px-1"},{default:n(()=>[i("div",Rs,[a(e(S),{for:"ssl-enabled"},{default:n(()=>m[6]||(m[6]=[g("Enable SSL")])),_:1}),a(e(ve),{id:"ssl-enabled","model-value":_.formData.sslEnabled,"onUpdate:modelValue":m[0]||(m[0]=V=>_.formData.sslEnabled=V)},null,8,["model-value"])]),_.formData.sslEnabled?(b(),U(Z,{key:0},[i("div",Us,[a(e(S),{for:"ssl-mode"},{default:n(()=>m[7]||(m[7]=[g("SSL Mode")])),_:1}),a(e(Re),{modelValue:_.formData.sslMode,"onUpdate:modelValue":m[1]||(m[1]=V=>_.formData.sslMode=V)},{default:n(()=>[a(e(Ue),{id:"ssl-mode"},{default:n(()=>[a(e(Te),{placeholder:"Select mode"})]),_:1}),a(e(Oe),null,{default:n(()=>[a(e(M),{value:"disable"},{default:n(()=>m[8]||(m[8]=[g("Disable")])),_:1}),a(e(M),{value:"preferred"},{default:n(()=>m[9]||(m[9]=[g("Preferred")])),_:1}),a(e(M),{value:"require"},{default:n(()=>m[10]||(m[10]=[g("Require")])),_:1}),a(e(M),{value:"verify-ca"},{default:n(()=>m[11]||(m[11]=[g("Verify CA")])),_:1}),a(e(M),{value:"verify-full"},{default:n(()=>m[12]||(m[12]=[g("Verify Full")])),_:1})]),_:1})]),_:1},8,["modelValue"])]),i("div",Ts,[i("div",Os,[a(e(S),{for:"ssl-ca"},{default:n(()=>m[13]||(m[13]=[g("CA Certificate")])),_:1}),a(e(Y),{id:"ssl-ca",modelValue:_.formData.sslCA,"onUpdate:modelValue":m[2]||(m[2]=V=>_.formData.sslCA=V),placeholder:"-----BEGIN CERTIFICATE-----\\n...\\n-----END CERTIFICATE-----",class:q(["min-h-[80px] max-h-[160px] text-xs font-mono",e(p)?"ring-2 ring-primary":""]),onDragover:e(r),onDragleave:e(t),onDrop:e(u)},null,8,["modelValue","class","onDragover","onDragleave","onDrop"]),m[14]||(m[14]=i("p",{class:"text-xs text-muted-foreground"}," Drop a .pem / .crt file here, or paste the CA certificate content ",-1))]),i("div",Bs,[a(e(S),{for:"ssl-cert"},{default:n(()=>m[15]||(m[15]=[g("Client Certificate")])),_:1}),a(e(Y),{id:"ssl-cert",modelValue:_.formData.sslCert,"onUpdate:modelValue":m[3]||(m[3]=V=>_.formData.sslCert=V),placeholder:"-----BEGIN CERTIFICATE-----\\n...\\n-----END CERTIFICATE-----",class:q(["min-h-[80px] max-h-[160px] text-xs font-mono",e(s)?"ring-2 ring-primary":""]),onDragover:e(v),onDragleave:e(f),onDrop:e(d)},null,8,["modelValue","class","onDragover","onDragleave","onDrop"]),m[16]||(m[16]=i("p",{class:"text-xs text-muted-foreground"}," Drop a .pem / .crt file here, or paste the client certificate content ",-1))]),i("div",qs,[a(e(S),{for:"ssl-key"},{default:n(()=>m[17]||(m[17]=[g("SSL Key")])),_:1}),a(e(Y),{id:"ssl-key",modelValue:_.formData.sslKey,"onUpdate:modelValue":m[4]||(m[4]=V=>_.formData.sslKey=V),placeholder:"-----BEGIN RSA PRIVATE KEY-----\\n...\\n-----END RSA PRIVATE KEY-----",class:q(["min-h-[80px] max-h-[160px] text-xs font-mono",e(R)?"ring-2 ring-primary":""]),onDragover:e(w),onDragleave:e(h),onDrop:e(x)},null,8,["modelValue","class","onDragover","onDragleave","onDrop"]),m[18]||(m[18]=i("p",{class:"text-xs text-muted-foreground"}," Drop a .pem / .key file here, or paste the private key content ",-1))])])],64)):N("",!0)]),_:1})]),_:1}))}}),Hs={key:0,class:"flex items-center gap-2 rounded-md border p-3 text-sm"},zs={key:1,class:"flex items-center gap-2 rounded-md border border-green-200 bg-green-50 p-3 text-sm text-green-600 dark:border-green-900 dark:bg-green-950/50 dark:text-green-400"},Ms={key:2,class:"flex items-center gap-2 rounded-md border border-red-200 bg-red-50 p-3 text-sm text-red-600 dark:border-red-900 dark:bg-red-950/50 dark:text-red-400"},Fs=$({__name:"ConnectionStatusSection",props:{testStatus:{}},setup(o){return(l,r)=>(b(),U(Z,null,[l.testStatus==="testing"?(b(),U("div",Hs,[a(e(P),{name:"hugeicons:loading-03",class:"animate-spin size-5!"}),r[0]||(r[0]=i("span",null,"Testing connection...",-1))])):N("",!0),l.testStatus==="success"?(b(),U("div",zs,[a(e(P),{name:"hugeicons:checkmark-circle-02",class:"shrink-0 size-4"}),r[1]||(r[1]=i("span",null,"Connection successful! Your database is ready to use.",-1))])):N("",!0),l.testStatus==="error"?(b(),U("div",Ms,[a(e(P),{name:"hugeicons:cancel-01",class:"shrink-0 size-4"}),r[2]||(r[2]=i("span",null,"Connection failed. Please check your details and try again.",-1))])):N("",!0)],64))}}),js={class:"flex flex-col items-center gap-1.5 text-center"},Ls=$({__name:"DatabaseTypeCard",props:{name:{},icon:{},selected:{type:Boolean},isSupport:{type:Boolean},iconClass:{}},setup(o){return(l,r)=>(b(),k(e(Ze),{class:q(e(L)("relative",l.isSupport?"cursor-pointer":"opacity-90 cursor-not-allowed ",l.selected&&l.isSupport?"border-muted-foreground shadow-lg":"border-transparent bg-background"))},{default:n(()=>[a(e(Je),{class:"flex flex-col items-center justify-center p-0 w-full"},{default:n(()=>[i("div",{class:q(e(L)("flex items-center justify-center rounded-xl p-2 transition-transform duration-300",l.selected&&l.isSupport?"scale-105":"group-hover:scale-105",!l.isSupport&&"opacity-40"))},[(b(),k(Be(l.icon),{class:q(e(L)("size-12",l.iconClass))},null,8,["class"]))],2),i("div",js,[i("span",{class:q(e(L)("text-sm font-medium tracking-tight transition-colors",l.selected&&l.isSupport?"text-primary":"text-foreground/70",!l.isSupport&&"text-muted-foreground"))},G(l.name),3),l.isSupport?N("",!0):(b(),k(e(qe),{key:0,variant:"secondary",class:"text-[9px] px-1.5 py-0 h-3.5 uppercase tracking-widest font-bold opacity-60"},{default:n(()=>r[0]||(r[0]=[g(" Soon ")])),_:1}))])]),_:1})]),_:1},8,["class"]))}}),Gs={class:"flex flex-col h-full overflow-hidden"},Ys={class:"flex-1 overflow-y-auto p-6"},Ws={class:"grid grid-cols-3 gap-4 py-4"},Qs=$({__name:"ConnectionStepType",props:{databaseOptions:{},dbType:{}},emits:["next","close"],setup(o,{emit:l}){const r=t=>{t.isSupport&&t.onClick()};return(t,u)=>{const p=P;return b(),U("div",Gs,[a(e(ge),{class:"p-6"},{default:n(()=>[a(e(ye),null,{default:n(()=>u[2]||(u[2]=[g("Select Database Type")])),_:1}),a(e(he),null,{default:n(()=>u[3]||(u[3]=[g("Choose the type of database you want to connect to")])),_:1})]),_:1}),i("div",Ys,[i("div",Ws,[(b(!0),U(Z,null,Ne(t.databaseOptions,v=>(b(),k(Ls,{key:v.type,name:v.name,icon:v.icon,selected:v.isActive,onClick:()=>r(v),isSupport:v.isSupport,iconClass:"size-14!"},null,8,["name","icon","selected","onClick","isSupport"]))),128))])]),a(e(be),{class:"p-6 flex items-center justify-end gap-2"},{default:n(()=>[a(e(F),{variant:"outline",onClick:u[0]||(u[0]=v=>t.$emit("close")),size:"sm"},{default:n(()=>u[4]||(u[4]=[g(" Cancel ")])),_:1}),a(e(F),{onClick:u[1]||(u[1]=v=>t.$emit("next")),disabled:!t.dbType,size:"sm"},{default:n(()=>[u[5]||(u[5]=g(" Next ")),a(p,{name:"hugeicons:arrow-right-02"})]),_:1},8,["disabled"])]),_:1})])}}}),Xs={key:1,class:"flex flex-col h-full overflow-hidden"},Zs={class:"flex-1 overflow-y-auto p-4 space-y-4"},Js={class:"space-y-2 mt-2"},ea={class:"space-y-2"},sa={class:"text-xs text-muted-foreground"},aa={class:"space-y-4"},ta={class:"grid grid-cols-4 gap-2"},oa={class:"col-span-3 space-y-2"},na={class:"space-y-2"},la={class:"grid grid-cols-2 gap-2"},ra={class:"space-y-2"},da={class:"space-y-2"},ia={class:"relative"},ua=["aria-label"],pa={class:"space-y-2"},ca={class:"space-y-4"},fa={class:"flex flex-1 space-x-2"},ma={class:"flex space-x-2"},Sa=$({__name:"CreateConnectionModal",props:{open:{type:Boolean},editingConnection:{},workspaceId:{}},emits:["update:open","addNew","update"],setup(o,{emit:l}){const r=o,t=l,u=()=>{t("update:open",!1),setTimeout(y,300)},p=B(!1),{step:v,dbType:f,connectionName:d,connectionMethod:s,connectionString:w,formData:h,testStatus:x,handleNext:R,handleBack:_,handleTestConnection:m,handleCreateConnection:V,getDefaultPort:ee,getConnectionPlaceholder:j,isFormValid:D,resetForm:y}=ys({open:()=>r.open,editingConnection:()=>r.editingConnection,workspaceId:()=>r.workspaceId,onAddNew:E=>t("addNew",E),onUpdate:E=>t("update",E),onClose:u}),A=I(()=>Me.map(E=>({...E,isActive:f.value===E.type,onClick:()=>f.value=E.type})));return(E,c)=>(b(),k(e(He),{open:E.open,"onUpdate:open":c[9]||(c[9]=C=>E.$emit("update:open",C))},{default:n(()=>[a(e(ze),{class:"max-w-[50vw]! w-full h-[60vh]! max-h-[90vh] p-0 flex flex-col overflow-hidden"},{default:n(()=>[e(v)===1?(b(),k(Qs,{key:0,"database-options":A.value,"db-type":e(f),onNext:e(R),onClose:u},null,8,["database-options","db-type","onNext"])):(b(),U("div",Xs,[a(e(ge),{class:"p-6 pb-2"},{default:n(()=>[a(e(ye),null,{default:n(()=>c[10]||(c[10]=[g("Connection Details")])),_:1}),a(e(he),null,{default:n(()=>[g(" Enter the details for your "+G(e(f))+" database ",1)]),_:1})]),_:1}),i("div",Zs,[a(e(je),{modelValue:e(s),"onUpdate:modelValue":c[8]||(c[8]=C=>ae(s)?s.value=C:null),class:"w-full"},{default:n(()=>[a(e(Le),{class:"grid w-fit grid-cols-2"},{default:n(()=>[a(e(ue),{value:"string",class:"cursor-pointer"},{default:n(()=>c[11]||(c[11]=[g("Connection String")])),_:1}),a(e(ue),{value:"form",class:"cursor-pointer"},{default:n(()=>c[12]||(c[12]=[g("Connection Form")])),_:1})]),_:1}),i("div",Js,[a(e(S),{for:"connection-name",class:"flex items-center gap-2"},{default:n(()=>[a(e(P),{name:"hugeicons:database",class:"h-3.5 w-3.5 text-muted-foreground"}),c[13]||(c[13]=g(" Connection Name ")),c[14]||(c[14]=i("span",{class:"text-destructive"},"*",-1))]),_:1}),a(e(K),{id:"connection-name",placeholder:"My Database Connection",modelValue:e(d),"onUpdate:modelValue":c[0]||(c[0]=C=>ae(d)?d.value=C:null)},null,8,["modelValue"])]),a(e(pe),{value:"string",class:"space-y-4 pt-4"},{default:n(()=>[i("div",ea,[a(e(S),{for:"connection-string",class:"flex items-center gap-2"},{default:n(()=>[a(e(P),{name:"hugeicons:connect",class:"h-3.5 w-3.5 text-muted-foreground"}),c[15]||(c[15]=g(" Connection String ")),c[16]||(c[16]=i("span",{class:"text-destructive"},"*",-1))]),_:1}),a(e(K),{id:"connection-string",placeholder:e(j)(),modelValue:e(w),"onUpdate:modelValue":c[1]||(c[1]=C=>ae(w)?w.value=C:null),class:"font-mono text-sm"},null,8,["placeholder","modelValue"]),i("p",sa," Example: "+G(e(j)()),1)])]),_:1}),a(e(pe),{value:"form",class:"space-y-6 pt-2"},{default:n(()=>[i("div",aa,[i("div",ta,[i("div",oa,[a(e(S),{for:"host"},{default:n(()=>c[17]||(c[17]=[g("Host "),i("span",{class:"text-destructive"},"*",-1)])),_:1}),a(e(K),{id:"host",placeholder:"localhost",modelValue:e(h).host,"onUpdate:modelValue":c[2]||(c[2]=C=>e(h).host=C)},null,8,["modelValue"])]),i("div",na,[a(e(S),{for:"port"},{default:n(()=>c[18]||(c[18]=[g("Port "),i("span",{class:"text-destructive"},"*",-1)])),_:1}),a(e(K),{id:"port",placeholder:e(ee)(),modelValue:e(h).port,"onUpdate:modelValue":c[3]||(c[3]=C=>e(h).port=C)},null,8,["placeholder","modelValue"])])]),i("div",la,[i("div",ra,[a(e(S),{for:"username"},{default:n(()=>c[19]||(c[19]=[g("User "),i("span",{class:"text-destructive"},"*",-1)])),_:1}),a(e(K),{id:"username",placeholder:"username",modelValue:e(h).username,"onUpdate:modelValue":c[4]||(c[4]=C=>e(h).username=C)},null,8,["modelValue"])]),i("div",da,[a(e(S),{for:"password"},{default:n(()=>c[20]||(c[20]=[g("Password")])),_:1}),i("div",ia,[a(e(K),{id:"password",type:e(p)?"text":"password",placeholder:"••••••••",modelValue:e(h).password,"onUpdate:modelValue":c[5]||(c[5]=C=>e(h).password=C),class:"pr-8"},null,8,["type","modelValue"]),i("button",{type:"button",class:"absolute right-2 top-1/2 h-5 cursor-pointer -translate-y-1/2 text-muted-foreground hover:text-foreground transition-colors",onClick:c[6]||(c[6]=C=>p.value=!e(p)),"aria-label":e(p)?"Hide password":"Show password"},[a(e(P),{name:e(p)?"hugeicons:view":"hugeicons:view-off",class:"size-4!"},null,8,["name"])],8,ua)])])]),i("div",pa,[a(e(S),{for:"database"},{default:n(()=>c[21]||(c[21]=[g("Database "),i("span",{class:"text-destructive"},"*",-1)])),_:1}),a(e(K),{id:"database",placeholder:"my_database",modelValue:e(h).database,"onUpdate:modelValue":c[7]||(c[7]=C=>e(h).database=C)},null,8,["modelValue"])])]),i("div",ca,[a(e(ce),{type:"single",collapsible:"",class:"w-full border px-4 rounded-lg shadow"},{default:n(()=>[a(Ns,{"form-data":e(h)},null,8,["form-data"])]),_:1}),a(e(ce),{type:"single",collapsible:"",class:"w-full border px-4 rounded-lg shadow"},{default:n(()=>[a(Ps,{"form-data":e(h)},null,8,["form-data"])]),_:1})])]),_:1})]),_:1},8,["modelValue"]),a(Fs,{"test-status":e(x)},null,8,["test-status"])]),a(e(be),{class:"p-6 pt-4 flex flex-col-reverse gap-2 sm:flex-row sm:justify-between sm:space-x-2"},{default:n(()=>[i("div",fa,[a(e(F),{variant:"outline",onClick:e(_),size:"sm"},{default:n(()=>[a(e(P),{name:"hugeicons:arrow-left-02"}),c[22]||(c[22]=g(" Back "))]),_:1},8,["onClick"])]),i("div",ma,[a(e(F),{variant:"outline",onClick:e(m),size:"sm",disabled:e(x)==="testing"||!e(D)},{default:n(()=>[e(x)==="testing"?(b(),k(e(P),{key:0,name:"hugeicons:loading-03",class:"mr-2 size-4 animate-spin"})):N("",!0),c[23]||(c[23]=g(" Test "))]),_:1},8,["onClick","disabled"]),a(e(F),{onClick:e(V),size:"sm",disabled:e(x)==="testing"||!e(D)},{default:n(()=>[g(G(E.editingConnection?"Update":"Create"),1)]),_:1},8,["onClick","disabled"])])]),_:1})]))]),_:1})]),_:1},8,["open"]))}});export{Sa as _};
1
+ import{E as I,aj as Se,bQ as re,d as $,al as we,bb as xe,u as Q,ad as fe,c as k,o as b,e as n,f as T,b as e,P as me,bc as ke,I as Ve,an as $e,G as X,h as i,n as q,j as ne,ai as Ae,l as a,bR as Ee,bB as se,r as B,ao as H,aS as Ie,aC as de,bS as Pe,N as Ke,q as P,g as U,a as N,K as S,p as g,bg as ve,F as Z,R as K,X as Re,at as Ue,bd as Te,Z as Oe,a1 as M,t as Be,x as G,aO as qe,O as ge,Q as ye,V as he,s as Ne,T as be,m as F,C as He,D as ze,W as ae,bT as Me}from"./FyrDS92w.js";import{i as Fe,_ as ie}from"./DnCs9xpG.js";import{_ as je,a as Le,b as ue}from"./D6YseYA6.js";import{_ as pe}from"./BDRdbLz0.js";import{u as Ge}from"./kehy-5uo.js";import{C as Ye,a as We,b as Qe}from"./txD20ixW.js";import{u as Xe,a as Ze,f as L,_ as Je}from"./e_Ir8LP9.js";import{_ as Y}from"./C4JPKbJK.js";function es({type:o,defaultValue:l,modelValue:r}){const t=r||l;return r!==void 0||l!==void 0?Array.isArray(t)?"multiple":"single":o??"single"}function ss({type:o,defaultValue:l,modelValue:r}){return o||es({type:o,defaultValue:l,modelValue:r})}function as({type:o,defaultValue:l}){return l!==void 0?l:o==="single"?void 0:[]}function ts(o,l){const r=I(()=>ss(o)),t=Se(o,"modelValue",l,{defaultValue:as(o),passive:o.modelValue===void 0,deep:!0});function u(v){if(r.value==="single")t.value=re(v,t.value)?void 0:v;else{const f=Array.isArray(t.value)?[...t.value||[]]:[t.value].filter(Boolean);if(Fe(f,v)){const d=f.findIndex(s=>re(s,v));f.splice(d,1)}else f.push(v);t.value=f}}const p=I(()=>r.value==="single");return{modelValue:t,changeModelValue:u,isSingle:p}}const[J,os]=fe("AccordionRoot");var ns=$({__name:"AccordionRoot",props:{collapsible:{type:Boolean,required:!1,default:!1},disabled:{type:Boolean,required:!1,default:!1},dir:{type:String,required:!1},orientation:{type:String,required:!1,default:"vertical"},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},type:{type:String,required:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1}},emits:["update:modelValue"],setup(o,{emit:l}){const r=o,t=l,{dir:u,disabled:p,unmountOnHide:v}=we(r),f=xe(u),{modelValue:d,changeModelValue:s,isSingle:w}=ts(r,t),{forwardRef:h,currentElement:x}=Q();return os({disabled:p,direction:f,orientation:r.orientation,parentElement:x,isSingle:w,collapsible:r.collapsible,modelValue:d,changeModelValue:s,unmountOnHide:v}),(R,_)=>(b(),k(e(me),{ref:e(h),"as-child":R.asChild,as:R.as},{default:n(()=>[T(R.$slots,"default",{modelValue:e(d)})]),_:3},8,["as-child","as"]))}}),ls=ns,te=function(o){return o.Open="open",o.Closed="closed",o}(te||{});const[le,rs]=fe("AccordionItem");var ds=$({__name:"AccordionItem",props:{disabled:{type:Boolean,required:!1},value:{type:String,required:!0},unmountOnHide:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(o,{expose:l}){const r=o,t=J(),u=I(()=>t.isSingle.value?r.value===t.modelValue.value:Array.isArray(t.modelValue.value)&&t.modelValue.value.includes(r.value)),p=I(()=>t.disabled.value||r.disabled),v=I(()=>p.value?"":void 0),f=I(()=>u.value?te.Open:te.Closed);l({open:u,dataDisabled:v});const{currentRef:d,currentElement:s}=Q();rs({open:u,dataState:f,disabled:p,dataDisabled:v,triggerId:"",currentRef:d,currentElement:s,value:I(()=>r.value)});function w(h){var m;const x=h.target;if(Array.from(((m=t.parentElement.value)==null?void 0:m.querySelectorAll("[data-reka-collection-item]"))??[]).findIndex(V=>V===x)===-1)return null;Xe(h,x,t.parentElement.value,{arrowKeyOptions:t.orientation,dir:t.direction.value,focus:!0})}return(h,x)=>(b(),k(e(Ye),{"data-orientation":e(t).orientation,"data-disabled":v.value,"data-state":f.value,disabled:p.value,open:u.value,as:r.as,"as-child":r.asChild,"unmount-on-hide":r.unmountOnHide??e(t).unmountOnHide.value,onKeydown:ke(w,["up","down","left","right","home","end"])},{default:n(()=>[T(h.$slots,"default",{open:u.value})]),_:3},8,["data-orientation","data-disabled","data-state","disabled","open","as","as-child","unmount-on-hide"]))}}),is=ds,us=$({__name:"AccordionContent",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(o){const l=o,r=J(),t=le();return Q(),(u,p)=>(b(),k(e(We),{role:"region","as-child":l.asChild,as:u.as,"force-mount":l.forceMount,"aria-labelledby":e(t).triggerId,"data-state":e(t).dataState.value,"data-disabled":e(t).dataDisabled.value,"data-orientation":e(r).orientation,style:{"--reka-accordion-content-width":"var(--reka-collapsible-content-width)","--reka-accordion-content-height":"var(--reka-collapsible-content-height)"},onContentFound:p[0]||(p[0]=v=>e(r).changeModelValue(e(t).value.value))},{default:n(()=>[T(u.$slots,"default")]),_:3},8,["as-child","as","force-mount","aria-labelledby","data-state","data-disabled","data-orientation"]))}}),ps=us,cs=$({__name:"AccordionHeader",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"h3"}},setup(o){const l=o,r=J(),t=le();return Q(),(u,p)=>(b(),k(e(me),{as:l.as,"as-child":l.asChild,"data-orientation":e(r).orientation,"data-state":e(t).dataState.value,"data-disabled":e(t).dataDisabled.value},{default:n(()=>[T(u.$slots,"default")]),_:3},8,["as","as-child","data-orientation","data-state","data-disabled"]))}}),fs=cs,ms=$({__name:"AccordionTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(o){const l=o,r=J(),t=le();t.triggerId||(t.triggerId=Ve(void 0,"reka-accordion-trigger"));function u(){const p=r.isSingle.value&&t.open.value&&!r.collapsible;t.disabled.value||p||r.changeModelValue(t.value.value)}return(p,v)=>(b(),k(e(Qe),{id:e(t).triggerId,ref:e(t).currentRef,"data-reka-collection-item":"",as:l.as,"as-child":l.asChild,"aria-disabled":e(t).disabled.value||void 0,"aria-expanded":e(t).open.value||!1,"data-disabled":e(t).dataDisabled.value,"data-orientation":e(r).orientation,"data-state":e(t).dataState.value,disabled:e(t).disabled.value,onClick:u},{default:n(()=>[T(p.$slots,"default")]),_:3},8,["id","as","as-child","aria-disabled","aria-expanded","data-disabled","data-orientation","data-state","disabled"]))}}),vs=ms;const ce=$({__name:"Accordion",props:{collapsible:{type:Boolean},disabled:{type:Boolean},dir:{},orientation:{},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{},type:{},modelValue:{},defaultValue:{}},emits:["update:modelValue"],setup(o,{emit:l}){const u=$e(o,l);return(p,v)=>(b(),k(e(ls),X({"data-slot":"accordion"},e(u)),{default:n(()=>[T(p.$slots,"default")]),_:3},16))}}),_e=$({__name:"AccordionContent",props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(o){const l=o,r=I(()=>{const{class:t,...u}=l;return u});return(t,u)=>(b(),k(e(ps),X({"data-slot":"accordion-content"},r.value,{class:"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm"}),{default:n(()=>[i("div",{class:q(e(ne)("pt-0 pb-4",l.class))},[T(t.$slots,"default")],2)]),_:3},16))}}),De=$({__name:"AccordionItem",props:{disabled:{type:Boolean},value:{},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(o){const l=o,r=I(()=>{const{class:u,...p}=l;return p}),t=Ae(r);return(u,p)=>(b(),k(e(is),X({"data-slot":"accordion-item"},e(t),{class:e(ne)("border-b last:border-b-0",l.class)}),{default:n(()=>[T(u.$slots,"default")]),_:3},16,["class"]))}}),Ce=$({__name:"AccordionTrigger",props:{asChild:{type:Boolean},as:{},class:{}},setup(o){const l=o,r=I(()=>{const{class:t,...u}=l;return u});return(t,u)=>(b(),k(e(fs),{class:"flex"},{default:n(()=>[a(e(vs),X({"data-slot":"accordion-trigger"},r.value,{class:e(ne)("focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",l.class)}),{default:n(()=>[T(t.$slots,"default"),T(t.$slots,"icon",{},()=>[a(e(Ee),{class:"text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200"})])]),_:3},16,["class"])]),_:3}))}}),gs={healthCheck:o=>$fetch("/api/managment-connection/health-check",{method:"POST",body:o})};var z=(o=>(o.STRING="string",o.FORM="form",o))(z||{}),oe=(o=>(o.DISABLE="disable",o.PREFERRED="preferred",o.REQUIRE="require",o.VERIFY_CA="verify-ca",o.VERIFY_FULL="verify-full",o))(oe||{}),O=(o=>(o.PASSWORD="password",o.KEY="key",o))(O||{});function ys(o){const l=se(o.open),r=se(o.editingConnection),t=se(o.workspaceId),u=B(1),p=B(H.POSTGRES),v=B("my-abc-db:dev"),f=B(z.STRING),d=B(""),s=Ie({host:"",port:"",username:"",password:"",database:"",sslEnabled:!1,sslMode:oe.DISABLE,sslCA:"",sslCert:"",sslKey:"",sslRejectUnauthorized:!0,sshEnabled:!1,sshHost:"",sshPort:22,sshUsername:"",sshAuthMethod:O.PASSWORD,sshPassword:"",sshPrivateKey:"",sshStoreInKeychain:!0,sshUseKey:!1}),w=B("idle"),h=D=>D&&Pe[D]||"",x=()=>{u.value=1,p.value=H.POSTGRES,v.value="my-abc-db:dev",f.value=z.STRING,d.value="",s.host="",s.port=h(H.POSTGRES),s.username="",s.password="",s.database="",s.sslEnabled=!1,s.sslMode=oe.DISABLE,s.sslCA="",s.sslCert="",s.sslKey="",s.sslRejectUnauthorized=!0,s.sshEnabled=!1,s.sshHost="",s.sshPort=22,s.sshUsername="",s.sshAuthMethod=O.PASSWORD,s.sshPassword="",s.sshPrivateKey="",s.sshStoreInKeychain=!0,s.sshUseKey=!1,w.value="idle"},R=()=>{u.value===1&&p.value&&(u.value=2)},_=()=>{u.value=1,w.value="idle"},m=async()=>{w.value="testing";const D={type:p.value};f.value===z.STRING?D.stringConnection=d.value:(D.host=s.host,D.port=s.port||h(p.value),D.username=s.username,D.password=s.password,D.database=s.database,s.sslEnabled&&(D.ssl={mode:s.sslMode,ca:s.sslCA,cert:s.sslCert,key:s.sslKey,rejectUnauthorized:s.sslRejectUnauthorized}),s.sshEnabled&&(D.ssh={enabled:!0,host:s.sshHost,port:s.sshPort,username:s.sshUsername,authMethod:s.sshUseKey?O.KEY:O.PASSWORD,password:s.sshPassword,privateKey:s.sshPrivateKey,storeInKeychain:s.sshStoreInKeychain,useSshKey:s.sshUseKey}));try{return(await gs.healthCheck(D)).isConnectedSuccess?(w.value="success",!0):(w.value="error",!1)}catch{return w.value="error",!1}},V=async()=>{var E,c;const y=!!!r.value;if(y&&!await m())return;const A={workspaceId:t.value,id:((E=r.value)==null?void 0:E.id)||Ge(),name:v.value,type:p.value,method:f.value,createdAt:((c=r.value)==null?void 0:c.createdAt)||Ke().toISOString()};if(f.value===z.STRING)A.connectionString=d.value;else{A.host=s.host,A.port=s.port||h(p.value),A.username=s.username,A.password=s.password,A.database=s.database,s.sslEnabled&&(A.ssl={mode:s.sslMode,ca:s.sslCA,cert:s.sslCert,key:s.sslKey,rejectUnauthorized:s.sslRejectUnauthorized}),s.sshEnabled&&(A.ssh={enabled:!0,host:s.sshHost,port:s.sshPort,username:s.sshUsername,authMethod:s.sshUseKey?O.KEY:O.PASSWORD,password:s.sshPassword,privateKey:s.sshPrivateKey,storeInKeychain:s.sshStoreInKeychain,useSshKey:s.sshUseKey});const C=p.value===H.POSTGRES?"postgresql":"mysql";A.connectionString=`${C}://${s.username}:${s.password}@${s.host}:${A.port}/${s.database}`}y?o.onAddNew(A):o.onUpdate(A),o.onClose()},ee=()=>{switch(p.value){case H.POSTGRES:return"postgresql://username:password@localhost:5432/database";case H.MYSQL:case H.MYSQL2:return"mysql://username:password@localhost:3306/database";default:return""}},j=I(()=>v.value?f.value===z.STRING?!!d.value:!!(s.host&&(s.port||h(p.value))&&s.username&&s.database):!1);return de(p,D=>{D&&!r.value&&(s.port=h(D))}),de(()=>[l.value,r.value],()=>{var D;if(l.value)if(r.value){const y=r.value;v.value=y.name,p.value=y.type,f.value=y.method,d.value=y.connectionString||"",s.host=y.host||"",s.port=y.port||"",s.username=y.username||"",s.password=y.password||"",s.database=y.database||"",s.sslEnabled=!!y.ssl,y.ssl&&(s.sslMode=y.ssl.mode,s.sslCA=y.ssl.ca||"",s.sslCert=y.ssl.cert||"",s.sslKey=y.ssl.key||"",s.sslRejectUnauthorized=y.ssl.rejectUnauthorized??!0),s.sshEnabled=!!((D=y.ssh)!=null&&D.enabled),y.ssh&&(s.sshHost=y.ssh.host||"",s.sshPort=y.ssh.port||22,s.sshUsername=y.ssh.username||"",s.sshAuthMethod=y.ssh.authMethod||O.PASSWORD,s.sshPassword=y.ssh.password||"",s.sshPrivateKey=y.ssh.privateKey||"",s.sshStoreInKeychain=y.ssh.storeInKeychain??!0,s.sshUseKey=y.ssh.useSshKey??y.ssh.authMethod===O.KEY),u.value=2}else x()},{immediate:!0}),{step:u,dbType:p,connectionName:v,connectionMethod:f,connectionString:d,formData:s,testStatus:w,handleNext:R,handleBack:_,handleTestConnection:m,handleCreateConnection:V,getDefaultPort:()=>h(p.value),getConnectionPlaceholder:ee,isFormValid:j,resetForm:x}}function W(o){const l=B(!1);return{isDragging:l,onDragOver:p=>{p.preventDefault(),l.value=!0},onDragLeave:()=>{l.value=!1},onDrop:async p=>{var s;p.preventDefault(),l.value=!1;const v=(s=p.dataTransfer)==null?void 0:s.files;if(!v||v.length===0)return;const f=v[0],d=new FileReader;d.onload=w=>{var x;const h=(x=w.target)==null?void 0:x.result;o&&o(h)},d.readAsText(f)}}}const hs={class:"flex items-center gap-2"},bs={class:"flex items-center justify-between"},_s={class:"grid grid-cols-4 gap-4"},Ds={class:"col-span-3 space-y-2"},Cs={class:"space-y-2"},Ss={class:"grid grid-cols-2 gap-4"},ws={class:"space-y-2"},xs={class:"space-y-2"},ks={class:"relative"},Vs=["aria-label"],$s={class:"flex items-center gap-2"},As={class:"space-y-4 pt-2 border-t"},Es={class:"flex items-center gap-2"},Is={key:0,class:"space-y-2"},Ps=$({__name:"ConnectionSSHTunnel",props:{formData:{}},setup(o){const l=o,{onDragOver:r,onDragLeave:t,onDrop:u,isDragging:p}=W(f=>{l.formData.sshPrivateKey=f}),v=B(!1);return(f,d)=>(b(),k(e(De),{value:"ssh"},{default:n(()=>[a(e(Ce),{class:"hover:no-underline"},{default:n(()=>[i("div",hs,[a(e(P),{name:"lucide:terminal",class:"size-4 text-primary"}),d[9]||(d[9]=i("span",null,"SSH Tunnel",-1))])]),_:1}),a(e(_e),{class:"space-y-4 pt-4 px-1"},{default:n(()=>[i("div",bs,[a(e(S),{for:"ssh-enabled"},{default:n(()=>d[10]||(d[10]=[g("Over SSH")])),_:1}),a(e(ve),{id:"ssh-enabled","model-value":f.formData.sshEnabled,"onUpdate:modelValue":d[0]||(d[0]=s=>f.formData.sshEnabled=s)},null,8,["model-value"])]),f.formData.sshEnabled?(b(),U(Z,{key:0},[i("div",_s,[i("div",Ds,[a(e(S),{for:"ssh-host"},{default:n(()=>d[11]||(d[11]=[g("Server")])),_:1}),a(e(K),{id:"ssh-host",placeholder:"e.g. ssh.example.com or 1.2.3.4",modelValue:f.formData.sshHost,"onUpdate:modelValue":d[1]||(d[1]=s=>f.formData.sshHost=s)},null,8,["modelValue"])]),i("div",Cs,[a(e(S),{for:"ssh-port"},{default:n(()=>d[12]||(d[12]=[g("Port")])),_:1}),a(e(K),{id:"ssh-port",type:"number",placeholder:"22",modelValue:f.formData.sshPort,"onUpdate:modelValue":d[2]||(d[2]=s=>f.formData.sshPort=s)},null,8,["modelValue"])])]),i("div",Ss,[i("div",ws,[a(e(S),{for:"ssh-user"},{default:n(()=>d[13]||(d[13]=[g("User")])),_:1}),a(e(K),{id:"ssh-user",placeholder:"e.g. root or ubuntu",modelValue:f.formData.sshUsername,"onUpdate:modelValue":d[3]||(d[3]=s=>f.formData.sshUsername=s)},null,8,["modelValue"])]),i("div",xs,[a(e(S),{for:"ssh-password"},{default:n(()=>d[14]||(d[14]=[g("Password")])),_:1}),i("div",ks,[a(e(K),{id:"ssh-password",type:e(v)?"text":"password",placeholder:"SSH password (optional if using key)",modelValue:f.formData.sshPassword,"onUpdate:modelValue":d[4]||(d[4]=s=>f.formData.sshPassword=s),class:"pr-8"},null,8,["type","modelValue"]),i("button",{type:"button",class:"absolute right-2 top-1/2 h-4 cursor-pointer -translate-y-1/2 text-muted-foreground hover:text-foreground transition-colors",onClick:d[5]||(d[5]=s=>v.value=!e(v)),"aria-label":e(v)?"Hide password":"Show password"},[a(e(P),{name:e(v)?"hugeicons:view":"hugeicons:view-off",class:"size-4!"},null,8,["name"])],8,Vs)])])]),i("div",$s,[a(e(ie),{id:"ssh-keychain","model-value":f.formData.sshStoreInKeychain,"onUpdate:modelValue":d[6]||(d[6]=s=>f.formData.sshStoreInKeychain=s)},null,8,["model-value"]),a(e(S),{for:"ssh-keychain",class:"text-sm font-normal"},{default:n(()=>d[15]||(d[15]=[g("Store in keychain")])),_:1})]),i("div",As,[i("div",Es,[a(e(ie),{id:"ssh-use-key","model-value":f.formData.sshUseKey,"onUpdate:modelValue":d[7]||(d[7]=s=>f.formData.sshUseKey=s)},null,8,["model-value"]),a(e(S),{for:"ssh-use-key",class:"text-sm font-semibold"},{default:n(()=>d[16]||(d[16]=[g("SSH Key Authentication")])),_:1})]),f.formData.sshUseKey?(b(),U("div",Is,[a(e(S),{for:"ssh-key-file"},{default:n(()=>d[17]||(d[17]=[g("Private Key")])),_:1}),a(e(Y),{id:"ssh-key-file",modelValue:f.formData.sshPrivateKey,"onUpdate:modelValue":d[8]||(d[8]=s=>f.formData.sshPrivateKey=s),placeholder:"-----BEGIN OPENSSH PRIVATE KEY-----\\n...\\n-----END OPENSSH PRIVATE KEY-----",class:q(["min-h-[100px] max-h-[200px] text-xs font-mono",e(p)?"ring-2 ring-primary":""]),onDragover:e(r),onDragleave:e(t),onDrop:e(u)},null,8,["modelValue","class","onDragover","onDragleave","onDrop"]),d[18]||(d[18]=i("p",{class:"text-xs text-muted-foreground"}," Drop a .pem / .key file here, or paste the SSH private key content ",-1))])):N("",!0)])],64)):N("",!0)]),_:1})]),_:1}))}}),Ks={class:"flex items-center gap-2"},Rs={class:"flex items-center justify-between"},Us={class:"space-y-2"},Ts={class:"space-y-4"},Os={class:"space-y-2"},Bs={class:"space-y-2"},qs={class:"space-y-2"},Ns=$({__name:"ConnectionSSLConfig",props:{formData:{}},setup(o){const l=o,{onDragOver:r,onDragLeave:t,onDrop:u,isDragging:p}=W(_=>{l.formData.sslCA=_}),{onDragOver:v,onDragLeave:f,onDrop:d,isDragging:s}=W(_=>{l.formData.sslCert=_}),{onDragOver:w,onDragLeave:h,onDrop:x,isDragging:R}=W(_=>{l.formData.sslKey=_});return(_,m)=>(b(),k(e(De),{value:"ssl"},{default:n(()=>[a(e(Ce),{class:"hover:no-underline"},{default:n(()=>[i("div",Ks,[a(e(P),{name:"hugeicons:security-check",class:"size-4 text-primary"}),m[5]||(m[5]=i("span",null,"SSL Configuration",-1))])]),_:1}),a(e(_e),{class:"space-y-4 pt-4 px-1"},{default:n(()=>[i("div",Rs,[a(e(S),{for:"ssl-enabled"},{default:n(()=>m[6]||(m[6]=[g("Enable SSL")])),_:1}),a(e(ve),{id:"ssl-enabled","model-value":_.formData.sslEnabled,"onUpdate:modelValue":m[0]||(m[0]=V=>_.formData.sslEnabled=V)},null,8,["model-value"])]),_.formData.sslEnabled?(b(),U(Z,{key:0},[i("div",Us,[a(e(S),{for:"ssl-mode"},{default:n(()=>m[7]||(m[7]=[g("SSL Mode")])),_:1}),a(e(Re),{modelValue:_.formData.sslMode,"onUpdate:modelValue":m[1]||(m[1]=V=>_.formData.sslMode=V)},{default:n(()=>[a(e(Ue),{id:"ssl-mode"},{default:n(()=>[a(e(Te),{placeholder:"Select mode"})]),_:1}),a(e(Oe),null,{default:n(()=>[a(e(M),{value:"disable"},{default:n(()=>m[8]||(m[8]=[g("Disable")])),_:1}),a(e(M),{value:"preferred"},{default:n(()=>m[9]||(m[9]=[g("Preferred")])),_:1}),a(e(M),{value:"require"},{default:n(()=>m[10]||(m[10]=[g("Require")])),_:1}),a(e(M),{value:"verify-ca"},{default:n(()=>m[11]||(m[11]=[g("Verify CA")])),_:1}),a(e(M),{value:"verify-full"},{default:n(()=>m[12]||(m[12]=[g("Verify Full")])),_:1})]),_:1})]),_:1},8,["modelValue"])]),i("div",Ts,[i("div",Os,[a(e(S),{for:"ssl-ca"},{default:n(()=>m[13]||(m[13]=[g("CA Certificate")])),_:1}),a(e(Y),{id:"ssl-ca",modelValue:_.formData.sslCA,"onUpdate:modelValue":m[2]||(m[2]=V=>_.formData.sslCA=V),placeholder:"-----BEGIN CERTIFICATE-----\\n...\\n-----END CERTIFICATE-----",class:q(["min-h-[80px] max-h-[160px] text-xs font-mono",e(p)?"ring-2 ring-primary":""]),onDragover:e(r),onDragleave:e(t),onDrop:e(u)},null,8,["modelValue","class","onDragover","onDragleave","onDrop"]),m[14]||(m[14]=i("p",{class:"text-xs text-muted-foreground"}," Drop a .pem / .crt file here, or paste the CA certificate content ",-1))]),i("div",Bs,[a(e(S),{for:"ssl-cert"},{default:n(()=>m[15]||(m[15]=[g("Client Certificate")])),_:1}),a(e(Y),{id:"ssl-cert",modelValue:_.formData.sslCert,"onUpdate:modelValue":m[3]||(m[3]=V=>_.formData.sslCert=V),placeholder:"-----BEGIN CERTIFICATE-----\\n...\\n-----END CERTIFICATE-----",class:q(["min-h-[80px] max-h-[160px] text-xs font-mono",e(s)?"ring-2 ring-primary":""]),onDragover:e(v),onDragleave:e(f),onDrop:e(d)},null,8,["modelValue","class","onDragover","onDragleave","onDrop"]),m[16]||(m[16]=i("p",{class:"text-xs text-muted-foreground"}," Drop a .pem / .crt file here, or paste the client certificate content ",-1))]),i("div",qs,[a(e(S),{for:"ssl-key"},{default:n(()=>m[17]||(m[17]=[g("SSL Key")])),_:1}),a(e(Y),{id:"ssl-key",modelValue:_.formData.sslKey,"onUpdate:modelValue":m[4]||(m[4]=V=>_.formData.sslKey=V),placeholder:"-----BEGIN RSA PRIVATE KEY-----\\n...\\n-----END RSA PRIVATE KEY-----",class:q(["min-h-[80px] max-h-[160px] text-xs font-mono",e(R)?"ring-2 ring-primary":""]),onDragover:e(w),onDragleave:e(h),onDrop:e(x)},null,8,["modelValue","class","onDragover","onDragleave","onDrop"]),m[18]||(m[18]=i("p",{class:"text-xs text-muted-foreground"}," Drop a .pem / .key file here, or paste the private key content ",-1))])])],64)):N("",!0)]),_:1})]),_:1}))}}),Hs={key:0,class:"flex items-center gap-2 rounded-md border p-3 text-sm"},zs={key:1,class:"flex items-center gap-2 rounded-md border border-green-200 bg-green-50 p-3 text-sm text-green-600 dark:border-green-900 dark:bg-green-950/50 dark:text-green-400"},Ms={key:2,class:"flex items-center gap-2 rounded-md border border-red-200 bg-red-50 p-3 text-sm text-red-600 dark:border-red-900 dark:bg-red-950/50 dark:text-red-400"},Fs=$({__name:"ConnectionStatusSection",props:{testStatus:{}},setup(o){return(l,r)=>(b(),U(Z,null,[l.testStatus==="testing"?(b(),U("div",Hs,[a(e(P),{name:"hugeicons:loading-03",class:"animate-spin size-5!"}),r[0]||(r[0]=i("span",null,"Testing connection...",-1))])):N("",!0),l.testStatus==="success"?(b(),U("div",zs,[a(e(P),{name:"hugeicons:checkmark-circle-02",class:"shrink-0 size-4"}),r[1]||(r[1]=i("span",null,"Connection successful! Your database is ready to use.",-1))])):N("",!0),l.testStatus==="error"?(b(),U("div",Ms,[a(e(P),{name:"hugeicons:cancel-01",class:"shrink-0 size-4"}),r[2]||(r[2]=i("span",null,"Connection failed. Please check your details and try again.",-1))])):N("",!0)],64))}}),js={class:"flex flex-col items-center gap-1.5 text-center"},Ls=$({__name:"DatabaseTypeCard",props:{name:{},icon:{},selected:{type:Boolean},isSupport:{type:Boolean},iconClass:{}},setup(o){return(l,r)=>(b(),k(e(Ze),{class:q(e(L)("relative",l.isSupport?"cursor-pointer":"opacity-90 cursor-not-allowed ",l.selected&&l.isSupport?"border-muted-foreground shadow-lg":"border-transparent bg-background"))},{default:n(()=>[a(e(Je),{class:"flex flex-col items-center justify-center p-0 w-full"},{default:n(()=>[i("div",{class:q(e(L)("flex items-center justify-center rounded-xl p-2 transition-transform duration-300",l.selected&&l.isSupport?"scale-105":"group-hover:scale-105",!l.isSupport&&"opacity-40"))},[(b(),k(Be(l.icon),{class:q(e(L)("size-12",l.iconClass))},null,8,["class"]))],2),i("div",js,[i("span",{class:q(e(L)("text-sm font-medium tracking-tight transition-colors",l.selected&&l.isSupport?"text-primary":"text-foreground/70",!l.isSupport&&"text-muted-foreground"))},G(l.name),3),l.isSupport?N("",!0):(b(),k(e(qe),{key:0,variant:"secondary",class:"text-[9px] px-1.5 py-0 h-3.5 uppercase tracking-widest font-bold opacity-60"},{default:n(()=>r[0]||(r[0]=[g(" Soon ")])),_:1}))])]),_:1})]),_:1},8,["class"]))}}),Gs={class:"flex flex-col h-full overflow-hidden"},Ys={class:"flex-1 overflow-y-auto p-6"},Ws={class:"grid grid-cols-3 gap-4 py-4"},Qs=$({__name:"ConnectionStepType",props:{databaseOptions:{},dbType:{}},emits:["next","close"],setup(o,{emit:l}){const r=t=>{t.isSupport&&t.onClick()};return(t,u)=>{const p=P;return b(),U("div",Gs,[a(e(ge),{class:"p-6"},{default:n(()=>[a(e(ye),null,{default:n(()=>u[2]||(u[2]=[g("Select Database Type")])),_:1}),a(e(he),null,{default:n(()=>u[3]||(u[3]=[g("Choose the type of database you want to connect to")])),_:1})]),_:1}),i("div",Ys,[i("div",Ws,[(b(!0),U(Z,null,Ne(t.databaseOptions,v=>(b(),k(Ls,{key:v.type,name:v.name,icon:v.icon,selected:v.isActive,onClick:()=>r(v),isSupport:v.isSupport,iconClass:"size-14!"},null,8,["name","icon","selected","onClick","isSupport"]))),128))])]),a(e(be),{class:"p-6 flex items-center justify-end gap-2"},{default:n(()=>[a(e(F),{variant:"outline",onClick:u[0]||(u[0]=v=>t.$emit("close")),size:"sm"},{default:n(()=>u[4]||(u[4]=[g(" Cancel ")])),_:1}),a(e(F),{onClick:u[1]||(u[1]=v=>t.$emit("next")),disabled:!t.dbType,size:"sm"},{default:n(()=>[u[5]||(u[5]=g(" Next ")),a(p,{name:"hugeicons:arrow-right-02"})]),_:1},8,["disabled"])]),_:1})])}}}),Xs={key:1,class:"flex flex-col h-full overflow-hidden"},Zs={class:"flex-1 overflow-y-auto p-4 space-y-4"},Js={class:"space-y-2 mt-2"},ea={class:"space-y-2"},sa={class:"text-xs text-muted-foreground"},aa={class:"space-y-4"},ta={class:"grid grid-cols-4 gap-2"},oa={class:"col-span-3 space-y-2"},na={class:"space-y-2"},la={class:"grid grid-cols-2 gap-2"},ra={class:"space-y-2"},da={class:"space-y-2"},ia={class:"relative"},ua=["aria-label"],pa={class:"space-y-2"},ca={class:"space-y-4"},fa={class:"flex flex-1 space-x-2"},ma={class:"flex space-x-2"},Sa=$({__name:"CreateConnectionModal",props:{open:{type:Boolean},editingConnection:{},workspaceId:{}},emits:["update:open","addNew","update"],setup(o,{emit:l}){const r=o,t=l,u=()=>{t("update:open",!1),setTimeout(y,300)},p=B(!1),{step:v,dbType:f,connectionName:d,connectionMethod:s,connectionString:w,formData:h,testStatus:x,handleNext:R,handleBack:_,handleTestConnection:m,handleCreateConnection:V,getDefaultPort:ee,getConnectionPlaceholder:j,isFormValid:D,resetForm:y}=ys({open:()=>r.open,editingConnection:()=>r.editingConnection,workspaceId:()=>r.workspaceId,onAddNew:E=>t("addNew",E),onUpdate:E=>t("update",E),onClose:u}),A=I(()=>Me.map(E=>({...E,isActive:f.value===E.type,onClick:()=>f.value=E.type})));return(E,c)=>(b(),k(e(He),{open:E.open,"onUpdate:open":c[9]||(c[9]=C=>E.$emit("update:open",C))},{default:n(()=>[a(e(ze),{class:"max-w-[50vw]! w-full h-[60vh]! max-h-[90vh] p-0 flex flex-col overflow-hidden"},{default:n(()=>[e(v)===1?(b(),k(Qs,{key:0,"database-options":A.value,"db-type":e(f),onNext:e(R),onClose:u},null,8,["database-options","db-type","onNext"])):(b(),U("div",Xs,[a(e(ge),{class:"p-6 pb-2"},{default:n(()=>[a(e(ye),null,{default:n(()=>c[10]||(c[10]=[g("Connection Details")])),_:1}),a(e(he),null,{default:n(()=>[g(" Enter the details for your "+G(e(f))+" database ",1)]),_:1})]),_:1}),i("div",Zs,[a(e(je),{modelValue:e(s),"onUpdate:modelValue":c[8]||(c[8]=C=>ae(s)?s.value=C:null),class:"w-full"},{default:n(()=>[a(e(Le),{class:"grid w-fit grid-cols-2"},{default:n(()=>[a(e(ue),{value:"string",class:"cursor-pointer"},{default:n(()=>c[11]||(c[11]=[g("Connection String")])),_:1}),a(e(ue),{value:"form",class:"cursor-pointer"},{default:n(()=>c[12]||(c[12]=[g("Connection Form")])),_:1})]),_:1}),i("div",Js,[a(e(S),{for:"connection-name",class:"flex items-center gap-2"},{default:n(()=>[a(e(P),{name:"hugeicons:database",class:"h-3.5 w-3.5 text-muted-foreground"}),c[13]||(c[13]=g(" Connection Name ")),c[14]||(c[14]=i("span",{class:"text-destructive"},"*",-1))]),_:1}),a(e(K),{id:"connection-name",placeholder:"My Database Connection",modelValue:e(d),"onUpdate:modelValue":c[0]||(c[0]=C=>ae(d)?d.value=C:null)},null,8,["modelValue"])]),a(e(pe),{value:"string",class:"space-y-4 pt-4"},{default:n(()=>[i("div",ea,[a(e(S),{for:"connection-string",class:"flex items-center gap-2"},{default:n(()=>[a(e(P),{name:"hugeicons:connect",class:"h-3.5 w-3.5 text-muted-foreground"}),c[15]||(c[15]=g(" Connection String ")),c[16]||(c[16]=i("span",{class:"text-destructive"},"*",-1))]),_:1}),a(e(K),{id:"connection-string",placeholder:e(j)(),modelValue:e(w),"onUpdate:modelValue":c[1]||(c[1]=C=>ae(w)?w.value=C:null),class:"font-mono text-sm"},null,8,["placeholder","modelValue"]),i("p",sa," Example: "+G(e(j)()),1)])]),_:1}),a(e(pe),{value:"form",class:"space-y-6 pt-2"},{default:n(()=>[i("div",aa,[i("div",ta,[i("div",oa,[a(e(S),{for:"host"},{default:n(()=>c[17]||(c[17]=[g("Host "),i("span",{class:"text-destructive"},"*",-1)])),_:1}),a(e(K),{id:"host",placeholder:"localhost",modelValue:e(h).host,"onUpdate:modelValue":c[2]||(c[2]=C=>e(h).host=C)},null,8,["modelValue"])]),i("div",na,[a(e(S),{for:"port"},{default:n(()=>c[18]||(c[18]=[g("Port "),i("span",{class:"text-destructive"},"*",-1)])),_:1}),a(e(K),{id:"port",placeholder:e(ee)(),modelValue:e(h).port,"onUpdate:modelValue":c[3]||(c[3]=C=>e(h).port=C)},null,8,["placeholder","modelValue"])])]),i("div",la,[i("div",ra,[a(e(S),{for:"username"},{default:n(()=>c[19]||(c[19]=[g("User "),i("span",{class:"text-destructive"},"*",-1)])),_:1}),a(e(K),{id:"username",placeholder:"username",modelValue:e(h).username,"onUpdate:modelValue":c[4]||(c[4]=C=>e(h).username=C)},null,8,["modelValue"])]),i("div",da,[a(e(S),{for:"password"},{default:n(()=>c[20]||(c[20]=[g("Password")])),_:1}),i("div",ia,[a(e(K),{id:"password",type:e(p)?"text":"password",placeholder:"••••••••",modelValue:e(h).password,"onUpdate:modelValue":c[5]||(c[5]=C=>e(h).password=C),class:"pr-8"},null,8,["type","modelValue"]),i("button",{type:"button",class:"absolute right-2 top-1/2 h-5 cursor-pointer -translate-y-1/2 text-muted-foreground hover:text-foreground transition-colors",onClick:c[6]||(c[6]=C=>p.value=!e(p)),"aria-label":e(p)?"Hide password":"Show password"},[a(e(P),{name:e(p)?"hugeicons:view":"hugeicons:view-off",class:"size-4!"},null,8,["name"])],8,ua)])])]),i("div",pa,[a(e(S),{for:"database"},{default:n(()=>c[21]||(c[21]=[g("Database "),i("span",{class:"text-destructive"},"*",-1)])),_:1}),a(e(K),{id:"database",placeholder:"my_database",modelValue:e(h).database,"onUpdate:modelValue":c[7]||(c[7]=C=>e(h).database=C)},null,8,["modelValue"])])]),i("div",ca,[a(e(ce),{type:"single",collapsible:"",class:"w-full border px-4 rounded-lg shadow"},{default:n(()=>[a(Ns,{"form-data":e(h)},null,8,["form-data"])]),_:1}),a(e(ce),{type:"single",collapsible:"",class:"w-full border px-4 rounded-lg shadow"},{default:n(()=>[a(Ps,{"form-data":e(h)},null,8,["form-data"])]),_:1})])]),_:1})]),_:1},8,["modelValue"]),a(Fs,{"test-status":e(x)},null,8,["test-status"])]),a(e(be),{class:"p-6 pt-4 flex flex-col-reverse gap-2 sm:flex-row sm:justify-between sm:space-x-2"},{default:n(()=>[i("div",fa,[a(e(F),{variant:"outline",onClick:e(_),size:"sm"},{default:n(()=>[a(e(P),{name:"hugeicons:arrow-left-02"}),c[22]||(c[22]=g(" Back "))]),_:1},8,["onClick"])]),i("div",ma,[a(e(F),{variant:"outline",onClick:e(m),size:"sm",disabled:e(x)==="testing"||!e(D)},{default:n(()=>[e(x)==="testing"?(b(),k(e(P),{key:0,name:"hugeicons:loading-03",class:"mr-2 size-4 animate-spin"})):N("",!0),c[23]||(c[23]=g(" Test "))]),_:1},8,["onClick","disabled"]),a(e(F),{onClick:e(V),size:"sm",disabled:e(x)==="testing"||!e(D)},{default:n(()=>[g(G(E.editingConnection?"Update":"Create"),1)]),_:1},8,["onClick","disabled"])])]),_:1})]))]),_:1})]),_:1},8,["open"]))}});export{Sa as _};
@@ -1 +1 @@
1
- import{d as v,k as h,al as b,E as o,bf as C,g as w,o as I,l as i,b as e,aR as y}from"./D09YoF-H.js";import{b as E,a as F}from"./BVmBXPoG.js";import{u as O}from"./8Dyt4g6g.js";import{_ as g}from"./DxeQuh0J.js";import"./CDXxlCEu.js";import"./Bdtn2mn5.js";const S={class:"h-full relative p-1"},V=v({__name:"FunctionOverview",props:{connectionId:{}},setup(m){const l=["name","schema","kind","owner","comment"],t=m,{connectionStore:s,wsStateStore:u}=h(),{schemaId:a}=b(u),d=o(()=>t.connectionId?s.connections.find(n=>n.id===t.connectionId):s.selectedConnection),c=o(()=>({...C(d.value),schema:a.value})),{data:r,status:p}=O("/api/functions/overview",{method:"POST",body:c,watch:[a,c]},"$ezFEyK7joI"),f=o(()=>{const n=r.value||[];return n.length>0?E(n):F(l)});return(n,k)=>{const _=y;return I(),w("div",S,[i(_,{visible:e(p)==="pending"},null,8,["visible"]),i(e(g),{columns:e(f),data:e(r)||[],class:"h-full border rounded-md",columnKeyBy:"field"},null,8,["columns","data"])])}}});export{V as default};
1
+ import{d as v,k as h,al as b,E as o,bf as C,g as w,o as I,l as i,b as e,aR as y}from"./FyrDS92w.js";import{b as E,a as F}from"./BVmBXPoG.js";import{u as O}from"./y68LmDX2.js";import{_ as g}from"./ClnidwGv.js";import"./CzF1NEwP.js";import"./Bdtn2mn5.js";const S={class:"h-full relative p-1"},V=v({__name:"FunctionOverview",props:{connectionId:{}},setup(m){const l=["name","schema","kind","owner","comment"],t=m,{connectionStore:s,wsStateStore:u}=h(),{schemaId:a}=b(u),d=o(()=>t.connectionId?s.connections.find(n=>n.id===t.connectionId):s.selectedConnection),c=o(()=>({...C(d.value),schema:a.value})),{data:r,status:p}=O("/api/functions/overview",{method:"POST",body:c,watch:[a,c]},"$ezFEyK7joI"),f=o(()=>{const n=r.value||[];return n.length>0?E(n):F(l)});return(n,k)=>{const _=y;return I(),w("div",S,[i(_,{visible:e(p)==="pending"},null,8,["visible"]),i(e(g),{columns:e(f),data:e(r)||[],class:"h-full border rounded-md",columnKeyBy:"field"},null,8,["columns","data"])])}}});export{V as default};
@@ -1 +1 @@
1
- import{d as h,ad as D,al as N,bb as P,aj as $,r as F,dc as C,c as _,o as q,e as m,l as R,b as u,P as B,f as K,eb as w,ec as V,ed as U,I as j,E as T,aD as Q,aQ as Y,ee as z,ef as H,aI as J}from"./D09YoF-H.js";const[L,W]=D("RovingFocusGroup");var X=h({__name:"RovingFocusGroup",props:{orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!1},currentTabStopId:{type:[String,null],required:!1},defaultCurrentTabStopId:{type:String,required:!1},preventScrollOnEntryFocus:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["entryFocus","update:currentTabStopId"],setup(I,{expose:i,emit:o}){const l=I,d=o,{loop:y,orientation:p,dir:g}=N(l),v=P(g),e=$(l,"currentTabStopId",d,{defaultValue:l.defaultCurrentTabStopId,passive:l.currentTabStopId===void 0}),t=F(!1),a=F(!1),s=F(0),{getItems:S,CollectionSlot:E}=C({isProvider:!0});function x(n){const c=!a.value;if(n.currentTarget&&n.target===n.currentTarget&&c&&!t.value){const f=new CustomEvent(V,U);if(n.currentTarget.dispatchEvent(f),d("entryFocus",f),!f.defaultPrevented){const b=S().map(r=>r.ref).filter(r=>r.dataset.disabled!==""),k=b.find(r=>r.getAttribute("data-active")===""),G=b.find(r=>r.getAttribute("data-highlighted")===""),M=b.find(r=>r.id===e.value),A=[k,G,M,...b].filter(Boolean);w(A,l.preventScrollOnEntryFocus)}}a.value=!1}function O(){setTimeout(()=>{a.value=!1},1)}return i({getItems:S}),W({loop:y,dir:v,orientation:p,currentTabStopId:e,onItemFocus:n=>{e.value=n},onItemShiftTab:()=>{t.value=!0},onFocusableItemAdd:()=>{s.value++},onFocusableItemRemove:()=>{s.value--}}),(n,c)=>(q(),_(u(E),null,{default:m(()=>[R(u(B),{tabindex:t.value||s.value===0?-1:0,"data-orientation":u(p),as:n.as,"as-child":n.asChild,dir:u(v),style:{outline:"none"},onMousedown:c[0]||(c[0]=f=>a.value=!0),onMouseup:O,onFocus:x,onBlur:c[1]||(c[1]=f=>t.value=!1)},{default:m(()=>[K(n.$slots,"default")]),_:3},8,["tabindex","data-orientation","as","as-child","dir"])]),_:3}))}}),te=X,Z=h({__name:"RovingFocusItem",props:{tabStopId:{type:String,required:!1},focusable:{type:Boolean,required:!1,default:!0},active:{type:Boolean,required:!1},allowShiftKey:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(I){const i=I,o=L(),l=j(),d=T(()=>i.tabStopId||l),y=T(()=>o.currentTabStopId.value===d.value),{getItems:p,CollectionItem:g}=C();Q(()=>{i.focusable&&o.onFocusableItemAdd()}),Y(()=>{i.focusable&&o.onFocusableItemRemove()});function v(e){if(e.key==="Tab"&&e.shiftKey){o.onItemShiftTab();return}if(e.target!==e.currentTarget)return;const t=z(e,o.orientation.value,o.dir.value);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||!i.allowShiftKey&&e.shiftKey)return;e.preventDefault();let a=[...p().map(s=>s.ref).filter(s=>s.dataset.disabled!=="")];if(t==="last")a.reverse();else if(t==="prev"||t==="next"){t==="prev"&&a.reverse();const s=a.indexOf(e.currentTarget);a=o.loop.value?H(a,s+1):a.slice(s+1)}J(()=>w(a))}}return(e,t)=>(q(),_(u(g),null,{default:m(()=>[R(u(B),{tabindex:y.value?0:-1,"data-orientation":u(o).orientation.value,"data-active":e.active?"":void 0,"data-disabled":e.focusable?void 0:"",as:e.as,"as-child":e.asChild,onMousedown:t[0]||(t[0]=a=>{e.focusable?u(o).onItemFocus(d.value):a.preventDefault()}),onFocus:t[1]||(t[1]=a=>u(o).onItemFocus(d.value)),onKeydown:v},{default:m(()=>[K(e.$slots,"default")]),_:3},8,["tabindex","data-orientation","data-active","data-disabled","as","as-child"])]),_:3}))}}),ae=Z;export{te as R,ae as a};
1
+ import{d as h,ad as D,al as N,bb as P,aj as $,r as F,dd as C,c as _,o as q,e as m,l as R,b as u,P as B,f as K,ec as w,ed as V,ee as U,I as j,E as T,aD as Q,aQ as Y,ef as z,eg as H,aI as J}from"./FyrDS92w.js";const[L,W]=D("RovingFocusGroup");var X=h({__name:"RovingFocusGroup",props:{orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!1},currentTabStopId:{type:[String,null],required:!1},defaultCurrentTabStopId:{type:String,required:!1},preventScrollOnEntryFocus:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["entryFocus","update:currentTabStopId"],setup(I,{expose:i,emit:o}){const l=I,d=o,{loop:g,orientation:p,dir:y}=N(l),v=P(y),e=$(l,"currentTabStopId",d,{defaultValue:l.defaultCurrentTabStopId,passive:l.currentTabStopId===void 0}),t=F(!1),a=F(!1),s=F(0),{getItems:S,CollectionSlot:E}=C({isProvider:!0});function x(n){const c=!a.value;if(n.currentTarget&&n.target===n.currentTarget&&c&&!t.value){const f=new CustomEvent(V,U);if(n.currentTarget.dispatchEvent(f),d("entryFocus",f),!f.defaultPrevented){const b=S().map(r=>r.ref).filter(r=>r.dataset.disabled!==""),k=b.find(r=>r.getAttribute("data-active")===""),G=b.find(r=>r.getAttribute("data-highlighted")===""),M=b.find(r=>r.id===e.value),A=[k,G,M,...b].filter(Boolean);w(A,l.preventScrollOnEntryFocus)}}a.value=!1}function O(){setTimeout(()=>{a.value=!1},1)}return i({getItems:S}),W({loop:g,dir:v,orientation:p,currentTabStopId:e,onItemFocus:n=>{e.value=n},onItemShiftTab:()=>{t.value=!0},onFocusableItemAdd:()=>{s.value++},onFocusableItemRemove:()=>{s.value--}}),(n,c)=>(q(),_(u(E),null,{default:m(()=>[R(u(B),{tabindex:t.value||s.value===0?-1:0,"data-orientation":u(p),as:n.as,"as-child":n.asChild,dir:u(v),style:{outline:"none"},onMousedown:c[0]||(c[0]=f=>a.value=!0),onMouseup:O,onFocus:x,onBlur:c[1]||(c[1]=f=>t.value=!1)},{default:m(()=>[K(n.$slots,"default")]),_:3},8,["tabindex","data-orientation","as","as-child","dir"])]),_:3}))}}),te=X,Z=h({__name:"RovingFocusItem",props:{tabStopId:{type:String,required:!1},focusable:{type:Boolean,required:!1,default:!0},active:{type:Boolean,required:!1},allowShiftKey:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(I){const i=I,o=L(),l=j(),d=T(()=>i.tabStopId||l),g=T(()=>o.currentTabStopId.value===d.value),{getItems:p,CollectionItem:y}=C();Q(()=>{i.focusable&&o.onFocusableItemAdd()}),Y(()=>{i.focusable&&o.onFocusableItemRemove()});function v(e){if(e.key==="Tab"&&e.shiftKey){o.onItemShiftTab();return}if(e.target!==e.currentTarget)return;const t=z(e,o.orientation.value,o.dir.value);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||!i.allowShiftKey&&e.shiftKey)return;e.preventDefault();let a=[...p().map(s=>s.ref).filter(s=>s.dataset.disabled!=="")];if(t==="last")a.reverse();else if(t==="prev"||t==="next"){t==="prev"&&a.reverse();const s=a.indexOf(e.currentTarget);a=o.loop.value?H(a,s+1):a.slice(s+1)}J(()=>w(a))}}return(e,t)=>(q(),_(u(y),null,{default:m(()=>[R(u(B),{tabindex:g.value?0:-1,"data-orientation":u(o).orientation.value,"data-active":e.active?"":void 0,"data-disabled":e.focusable?void 0:"",as:e.as,"as-child":e.asChild,onMousedown:t[0]||(t[0]=a=>{e.focusable?u(o).onItemFocus(d.value):a.preventDefault()}),onFocus:t[1]||(t[1]=a=>u(o).onItemFocus(d.value)),onKeydown:v},{default:m(()=>[K(e.$slots,"default")]),_:3},8,["tabindex","data-orientation","data-active","data-disabled","as","as-child"])]),_:3}))}}),ae=Z;export{te as R,ae as a};