@hienlh/ppm 0.20.6 → 0.20.7

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 (432) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/assets/skills/ppm/SKILL.md +1 -1
  3. package/assets/skills/ppm/references/cli-reference.md +4 -4
  4. package/assets/skills/ppm/references/http-api.md +1 -1
  5. package/dist/web/assets/{accounts-settings-section-B-F7U-gq.js → accounts-settings-section-Df1KoGg7.js} +1 -1
  6. package/dist/web/assets/{ai-resource-editor-qRHwpktf.js → ai-resource-editor-C6s6A57b.js} +1 -1
  7. package/dist/web/assets/{ai-settings-section-DSlsTrpf.js → ai-settings-section-BQTsEJzp.js} +1 -1
  8. package/dist/web/assets/{ai-settings-section-BePrVceb.js → ai-settings-section-CMIkIxZU.js} +1 -1
  9. package/dist/web/assets/{angular-html-BtJLNcMw.js → angular-html-K0aKyuHe.js} +1 -1
  10. package/dist/web/assets/{angular-ts-CQiu5F_W.js → angular-ts-CLY0DVNM.js} +1 -1
  11. package/dist/web/assets/{apl-CKZvgs-w.js → apl-Cl1oeOZc.js} +1 -1
  12. package/dist/web/assets/{appearance-settings-section-BMlkj9U2.js → appearance-settings-section-B7CwHA7Y.js} +1 -1
  13. package/dist/web/assets/architecture-PBZL5I3N-CkWx_Sv3.js +1 -0
  14. package/dist/web/assets/{astro-D0b8ssLD.js → astro-S8gLldib.js} +1 -1
  15. package/dist/web/assets/{audio-preview-B4E5_7TW.js → audio-preview-C2PCzvr5.js} +1 -1
  16. package/dist/web/assets/{blade-DOIpINLw.js → blade-DZ96Anzi.js} +1 -1
  17. package/dist/web/assets/{bsl-CJ7_JlQ8.js → bsl-BrlZLefQ.js} +1 -1
  18. package/dist/web/assets/{cairo-5CpV2T1P.js → cairo-B0UdH8CG.js} +1 -1
  19. package/dist/web/assets/{chat-tab-DmqV3MlC.js → chat-tab-BJokwok-.js} +4 -4
  20. package/dist/web/assets/click-outside-container-XmmmdSm7.js +1 -0
  21. package/dist/web/assets/{cobol-BreMVrtc.js → cobol-DCeQgIC6.js} +1 -1
  22. package/dist/web/assets/code-editor-BVyFjaoM.js +7 -0
  23. package/dist/web/assets/{coffee-D7DoKh5b.js → coffee-D3V0ISG7.js} +1 -1
  24. package/dist/web/assets/{conflict-editor-LfQoRcK-.js → conflict-editor-hGsVMmtG.js} +1 -1
  25. package/dist/web/assets/{cpp-BnWeWAoE.js → cpp-UPgqRL5h.js} +1 -1
  26. package/dist/web/assets/{crystal-D2pJbFUn.js → crystal-B7BOJUR4.js} +1 -1
  27. package/dist/web/assets/{csv-preview-BEYKn68B.js → csv-preview-DiSiq6UJ.js} +1 -1
  28. package/dist/web/assets/data-grid-overlay-editor-QyH_oklj.js +1 -0
  29. package/dist/web/assets/database-viewer-BWQMTwjf.js +1 -0
  30. package/dist/web/assets/{diff-viewer-D91SI_zb.js → diff-viewer-Usuuf35X.js} +1 -1
  31. package/dist/web/assets/dist-CQbltjRp.js +11 -0
  32. package/dist/web/assets/{edge-aqGMtbY3.js → edge-Dw-s4XKj.js} +1 -1
  33. package/dist/web/assets/{edit-diff-preview-xdDQvPhs.js → edit-diff-preview-F7YlT9fY.js} +1 -1
  34. package/dist/web/assets/{elixir-CsYMBLc5.js → elixir-Dntyzyed.js} +1 -1
  35. package/dist/web/assets/{elm-BU8C2gFp.js → elm-C83eppJ0.js} +1 -1
  36. package/dist/web/assets/{erb-Z_E49ab8.js → erb-Bjv2Lozz.js} +1 -1
  37. package/dist/web/assets/{erlang-BRqOjXH9.js → erlang-5PAcE8_t.js} +1 -1
  38. package/dist/web/assets/esm-Brdy2Atb.js +2 -0
  39. package/dist/web/assets/{explorer-body-ColVUjgk.js → explorer-body-BL9hg1yr.js} +1 -1
  40. package/dist/web/assets/{explorer-window-content-VSMJfZC2.js → explorer-window-content-C3BSd4Qf.js} +1 -1
  41. package/dist/web/assets/{extension-manager-section-B-BRHGu1.js → extension-manager-section-CE0aB9ed.js} +1 -1
  42. package/dist/web/assets/{extension-webview-DufzanN9.js → extension-webview-CGhuot2v.js} +1 -1
  43. package/dist/web/assets/{files-settings-section-Do5YbTUK.js → files-settings-section-D_sgDKwF.js} +1 -1
  44. package/dist/web/assets/{fortran-fixed-form-CWbxmDGR.js → fortran-fixed-form-Di9Yw_ao.js} +1 -1
  45. package/dist/web/assets/{fsharp-DKMYbq6I.js → fsharp-IRAdAkHt.js} +1 -1
  46. package/dist/web/assets/{gdresource-B3yFau4V.js → gdresource-DVdwnvP-.js} +1 -1
  47. package/dist/web/assets/{general-settings-section-B-n_PYzs.js → general-settings-section-D7DMjoNj.js} +1 -1
  48. package/dist/web/assets/{git-commit-BW0p3Ekk.js → git-commit-CD6jLHvg.js} +1 -1
  49. package/dist/web/assets/{git-log-panel-BQzOHgxG.js → git-log-panel-prL5-n-F.js} +1 -1
  50. package/dist/web/assets/{git-rebase-DrvmQCS7.js → git-rebase-DvxNkg7t.js} +1 -1
  51. package/dist/web/assets/gitGraph-HDMCJU4V-BUlbZgyf.js +1 -0
  52. package/dist/web/assets/glide-data-grid-lbUFJwCD.js +141 -0
  53. package/dist/web/assets/{glimmer-js-BY1XApJJ.js → glimmer-js-aM9jbY2M.js} +1 -1
  54. package/dist/web/assets/{glimmer-ts-DPZtxF8N.js → glimmer-ts-Bd4jKeuF.js} +1 -1
  55. package/dist/web/assets/{glsl-DZ8G_Hvf.js → glsl-CUUtWNTx.js} +1 -1
  56. package/dist/web/assets/{graphql-Ck06uCZy.js → graphql-DkY6xCcc.js} +1 -1
  57. package/dist/web/assets/{group-chat-tab-CkHXqorZ.js → group-chat-tab-C4oY3IKi.js} +1 -1
  58. package/dist/web/assets/{hack-pLogDwAs.js → hack-DnaR9DJk.js} +1 -1
  59. package/dist/web/assets/{haml-CBqeCQ2A.js → haml-BDubxAIK.js} +1 -1
  60. package/dist/web/assets/{handlebars-B66JmVtp.js → handlebars-OxsbI1gt.js} +1 -1
  61. package/dist/web/assets/{html-Dk4wmfwC.js → html-Cjiwd8dp.js} +1 -1
  62. package/dist/web/assets/{html-derivative-CJWqfN51.js → html-derivative-CfzXt9Cs.js} +1 -1
  63. package/dist/web/assets/{http-CexhotTh.js → http-DRF6Wp6Y.js} +1 -1
  64. package/dist/web/assets/{hurl-BScKFk3Z.js → hurl-6SunVID_.js} +1 -1
  65. package/dist/web/assets/{hxml-DAle7vtu.js → hxml-CR72N708.js} +1 -1
  66. package/dist/web/assets/{image-preview-fuU4h2nr.js → image-preview-C7dCEQCx.js} +1 -1
  67. package/dist/web/assets/{index-Cx1meAwb.js → index-A3ripVe5.js} +6 -6
  68. package/dist/web/assets/info-3K5VOQVL-DXzjBxZf.js +1 -0
  69. package/dist/web/assets/{jinja-yHpyD80t.js → jinja-CYjAWnk3.js} +1 -1
  70. package/dist/web/assets/{jira-watcher-section-BQ4hVqWo.js → jira-watcher-section-DvKEiqtb.js} +1 -1
  71. package/dist/web/assets/{jison-BY6WLJVu.js → jison-UERnq4ds.js} +1 -1
  72. package/dist/web/assets/{julia-Dd_iYQDT.js → julia-WAZzVFSs.js} +1 -1
  73. package/dist/web/assets/{just-BTuUKpxF.js → just-B1YYfl1D.js} +1 -1
  74. package/dist/web/assets/{keybindings-store-yYx88hvw.js → keybindings-store-BOJPwIOB.js} +1 -1
  75. package/dist/web/assets/{keyboard-shortcuts-section-BZUYdXGx.js → keyboard-shortcuts-section-CPsFUned.js} +1 -1
  76. package/dist/web/assets/{latex-Dt3OUlMZ.js → latex-B6zwM9GI.js} +1 -1
  77. package/dist/web/assets/{liquid-BxPJU2ix.js → liquid-n4OK-yxz.js} +1 -1
  78. package/dist/web/assets/{lua-DEGIvn7d.js → lua-DJYn-zFg.js} +1 -1
  79. package/dist/web/assets/{markdown-renderer-BA3C2L-a.js → markdown-renderer-C1KVXiXr.js} +3 -3
  80. package/dist/web/assets/{markdown-renderer-CMFkajd7.js → markdown-renderer-HPQE8ilD.js} +1 -1
  81. package/dist/web/assets/{marko-BDxwBJur.js → marko-C27Qtq0P.js} +1 -1
  82. package/dist/web/assets/{mdc-B8aXPTg7.js → mdc-CypKG7qW.js} +1 -1
  83. package/dist/web/assets/{mobile-explorer-sheet-gvO7a80O.js → mobile-explorer-sheet-DkvtLBgs.js} +1 -1
  84. package/dist/web/assets/{nextflow-DBVZnnT_.js → nextflow-DuRHA0PY.js} +1 -1
  85. package/dist/web/assets/{nginx-Crpyd-Do.js → nginx-vxFTb1fh.js} +1 -1
  86. package/dist/web/assets/{nim-BSqTBYDj.js → nim-ChQDNOKe.js} +1 -1
  87. package/dist/web/assets/{notification-store-CCh6a8RD.js → notification-store-B1pBUO0W.js} +1 -1
  88. package/dist/web/assets/{notifications-settings-section-JQ3l-Qp-.js → notifications-settings-section-CaQVTa3a.js} +1 -1
  89. package/dist/web/assets/{number-overlay-editor-DRjTIcPH.js → number-overlay-editor-HmOZ3ETg.js} +1 -1
  90. package/dist/web/assets/{overview-panel-DiiA3B_Z.js → overview-panel-CaU5AtCB.js} +1 -1
  91. package/dist/web/assets/packet-RMMSAZCW-DrX3I-bv.js +1 -0
  92. package/dist/web/assets/{pdf-preview-B-JAU8JV.js → pdf-preview-QeXX_VpL.js} +1 -1
  93. package/dist/web/assets/{perl-BU0kbB-K.js → perl-BKH-mNmF.js} +1 -1
  94. package/dist/web/assets/{php-D9n1ikHN.js → php-W3oWF62o.js} +1 -1
  95. package/dist/web/assets/pie-UPGHQEXC-czhViDrP.js +1 -0
  96. package/dist/web/assets/postgres-viewer-DO50GwMs.js +3 -0
  97. package/dist/web/assets/{ppmbot-settings-section-D1SCOc0_.js → ppmbot-settings-section-B_00Zb-K.js} +1 -1
  98. package/dist/web/assets/{process-table-D9z7cEmb.js → process-table-DweR4FR3.js} +1 -1
  99. package/dist/web/assets/{proxy-settings-section-y7VwH0Hf.js → proxy-settings-section-sGhA3t_m.js} +1 -1
  100. package/dist/web/assets/{pug-BOpaczDr.js → pug-DscH2YvH.js} +1 -1
  101. package/dist/web/assets/{qml-B-cQXhrg.js → qml-CbBrfy74.js} +1 -1
  102. package/dist/web/assets/{query-audit-section-Ca_gRQ_s.js → query-audit-section-BtqND9WE.js} +1 -1
  103. package/dist/web/assets/radar-KQ55EAFF-BAHP0n2V.js +1 -0
  104. package/dist/web/assets/{razor-DFB0pNCh.js → razor-_oKX4NEv.js} +1 -1
  105. package/dist/web/assets/remote-desktop-mobile-sheet-DMn2uDXn.js +2 -0
  106. package/dist/web/assets/{remote-desktop-mobile-view-CGQ8vSf1.js → remote-desktop-mobile-view-xlO-gk_f.js} +1 -1
  107. package/dist/web/assets/{remote-desktop-readiness-gate-BmC3b05e.js → remote-desktop-readiness-gate-BmyUd1vt.js} +1 -1
  108. package/dist/web/assets/{remote-desktop-window-content-Cdaoltdz.js → remote-desktop-window-content-BaPixhFs.js} +1 -1
  109. package/dist/web/assets/{rst-DAXedsgm.js → rst-C3yqfWYA.js} +1 -1
  110. package/dist/web/assets/{ruby-BCO4polC.js → ruby-BaanPyyv.js} +1 -1
  111. package/dist/web/assets/{sas-DfB5dcFC.js → sas-DQg1FY8E.js} +1 -1
  112. package/dist/web/assets/{schedules-settings-section--0s10CfA.js → schedules-settings-section-Ctu9STMV.js} +1 -1
  113. package/dist/web/assets/{scss-BknIVgn7.js → scss-N-LxVilh.js} +1 -1
  114. package/dist/web/assets/{settings-body-DEMqFm5z.js → settings-body-B0ZdO6qx.js} +2 -2
  115. package/dist/web/assets/{settings-store-CzLnTR8p.js → settings-store-Bsu_5zIU.js} +2 -2
  116. package/dist/web/assets/settings-tab-BQvukPz5.js +1 -0
  117. package/dist/web/assets/{settings-window-content-3KrQ6imZ.js → settings-window-content-DUmULFsq.js} +1 -1
  118. package/dist/web/assets/{shaderlab-CPu31TpY.js → shaderlab-BShqbudx.js} +1 -1
  119. package/dist/web/assets/{shellsession-CFX4c_TM.js → shellsession-B8_nNEok.js} +1 -1
  120. package/dist/web/assets/{soy-rz9hilgm.js → soy-CW5oqa-M.js} +1 -1
  121. package/dist/web/assets/{sparql-Bo8ZDeqE.js → sparql-BJFHPosZ.js} +1 -1
  122. package/dist/web/assets/{sql-query-editor-Clo90z8-.js → sql-query-editor-DPtExW0C.js} +1 -1
  123. package/dist/web/assets/sqlite-viewer-DkzvIzyG.js +1 -0
  124. package/dist/web/assets/{stata-B5J-QMyE.js → stata-twP3WAnN.js} +1 -1
  125. package/dist/web/assets/{surrealql-Caw1ADnG.js → surrealql-CqwoQxwG.js} +1 -1
  126. package/dist/web/assets/{svelte-D3oMVcxz.js → svelte-CoTGkG7y.js} +1 -1
  127. package/dist/web/assets/{system-monitor-body-30-TFH3a.js → system-monitor-body-Bfx7yImc.js} +2 -2
  128. package/dist/web/assets/system-monitor-tab-Bn7sDAiO.js +1 -0
  129. package/dist/web/assets/{system-monitor-window-content-C1Cd_pT7.js → system-monitor-window-content-DVwdAvly.js} +1 -1
  130. package/dist/web/assets/{tab-host-window-content-C6eG_Rf1.js → tab-host-window-content-By35Ri11.js} +1 -1
  131. package/dist/web/assets/team-member-sheet-B8vZnJrJ.js +2 -0
  132. package/dist/web/assets/{team-member-window-content-BN3luct-.js → team-member-window-content-2_P22CXN.js} +1 -1
  133. package/dist/web/assets/{templ-BAdNyIOL.js → templ-BSuNrgD0.js} +1 -1
  134. package/dist/web/assets/{terminal-tab-afylLiLY.js → terminal-tab-DqAZMwhA.js} +1 -1
  135. package/dist/web/assets/{tex-IQ8mELOR.js → tex-DTdKTZSa.js} +1 -1
  136. package/dist/web/assets/{tool-cards-Ct1QdT8c.js → tool-cards-CiCZqw1w.js} +3 -3
  137. package/dist/web/assets/treemap-KZPCXAKY-DL_-JS7u.js +1 -0
  138. package/dist/web/assets/{ts-tags-D1DDO2jl.js → ts-tags-jpjff8fb.js} +1 -1
  139. package/dist/web/assets/{twig-C8Fd5RvV.js → twig-Utgjq3Am.js} +1 -1
  140. package/dist/web/assets/{use-accounts-data-C0bvcMhi.js → use-accounts-data-DMQAUXSO.js} +1 -1
  141. package/dist/web/assets/{use-monaco-theme-cgPbRDUm.js → use-monaco-theme-Ck1i7NEe.js} +1 -1
  142. package/dist/web/assets/{use-remote-desktop-display-choice-DSqF1Rgx.js → use-remote-desktop-display-choice-DVDOUQg2.js} +1 -1
  143. package/dist/web/assets/use-websocket-BkBvJbEt.js +1 -0
  144. package/dist/web/assets/{vendor-mermaid-CfY1-PkA.js → vendor-mermaid-CXxglerV.js} +193 -193
  145. package/dist/web/assets/{video-preview-BTzstVhM.js → video-preview-DzzFr0gI.js} +1 -1
  146. package/dist/web/assets/{vue-EvccXlkP.js → vue-CUms54DI.js} +1 -1
  147. package/dist/web/assets/{vue-html-Dg0xUJCh.js → vue-html-D7fbWTZW.js} +1 -1
  148. package/dist/web/assets/{vue-vine-BdrMg72k.js → vue-vine-BontZ1iR.js} +1 -1
  149. package/dist/web/assets/{xml-MmDclzxK.js → xml-CVHJ-Tda.js} +1 -1
  150. package/dist/web/assets/{xsl-DQEFs6Dd.js → xsl-BUDXwDuV.js} +1 -1
  151. package/dist/web/index.html +24 -24
  152. package/dist/web/sw.js +1 -1
  153. package/docs/architecture/ai-chat-and-providers.md +4 -0
  154. package/package.json +1 -1
  155. package/src/services/db.service.ts +18 -4
  156. package/src/services/edge-forwarder.ts +191 -191
  157. package/src/services/windows-process-tree.ts +351 -351
  158. package/src/web/hooks/use-chat.ts +4 -0
  159. package/src/web/hooks/use-websocket.ts +7 -1
  160. package/dist/web/assets/architecture-PBZL5I3N-DfR8k8Bc.js +0 -1
  161. package/dist/web/assets/code-editor-C4CriX9c.js +0 -7
  162. package/dist/web/assets/data-grid-overlay-editor-CbBkhhJa.js +0 -1
  163. package/dist/web/assets/data-grid-types-DeY60CLU.js +0 -1
  164. package/dist/web/assets/database-viewer-BL9R-ciJ.js +0 -1
  165. package/dist/web/assets/dist-BKOM_AoT.js +0 -11
  166. package/dist/web/assets/esm-B-vXxHUd.js +0 -2
  167. package/dist/web/assets/gitGraph-HDMCJU4V-CPd78aaT.js +0 -1
  168. package/dist/web/assets/glide-data-grid-BUS44oLM.js +0 -141
  169. package/dist/web/assets/info-3K5VOQVL-BciNds6R.js +0 -1
  170. package/dist/web/assets/packet-RMMSAZCW-ClD3l2Bs.js +0 -1
  171. package/dist/web/assets/pie-UPGHQEXC-PU6kD0rW.js +0 -1
  172. package/dist/web/assets/postgres-viewer-B--Y59n5.js +0 -3
  173. package/dist/web/assets/radar-KQ55EAFF-4LzjL0Zt.js +0 -1
  174. package/dist/web/assets/remote-desktop-mobile-sheet-CdO2aMXl.js +0 -2
  175. package/dist/web/assets/settings-tab-Dh1FpBny.js +0 -1
  176. package/dist/web/assets/sqlite-viewer-C08QQR_L.js +0 -1
  177. package/dist/web/assets/system-monitor-tab-ChIXfOWg.js +0 -1
  178. package/dist/web/assets/team-member-sheet-BhatQbL1.js +0 -2
  179. package/dist/web/assets/treemap-KZPCXAKY-DiumLNMg.js +0 -1
  180. package/dist/web/assets/use-websocket-BQssVSIR.js +0 -1
  181. package/packages/vscode-compat/node_modules/.bin/tsc.bunx +0 -0
  182. package/packages/vscode-compat/node_modules/.bin/tsc.exe +0 -0
  183. package/packages/vscode-compat/node_modules/.bin/tsserver.bunx +0 -0
  184. package/packages/vscode-compat/node_modules/.bin/tsserver.exe +0 -0
  185. /package/dist/web/assets/{abap-D-o-bvtI.js → abap-BGbkXtK3.js} +0 -0
  186. /package/dist/web/assets/{actionscript-3-D2tIzAm8.js → actionscript-3-CTWUcAG5.js} +0 -0
  187. /package/dist/web/assets/{ada-DxatBcxS.js → ada-2xQ2Am_-.js} +0 -0
  188. /package/dist/web/assets/{andromeeda-D0LK9YJ3.js → andromeeda-DfXLrHKa.js} +0 -0
  189. /package/dist/web/assets/{apache-B7uMPNiW.js → apache-CBLZGsyo.js} +0 -0
  190. /package/dist/web/assets/{apex-B7GiXrAr.js → apex-UYnVUoc7.js} +0 -0
  191. /package/dist/web/assets/{api-settings-D18Q4Ocp.js → api-settings-ClKLkiR9.js} +0 -0
  192. /package/dist/web/assets/{api-themes-sSv-6OLk.js → api-themes-B_Za9tdP.js} +0 -0
  193. /package/dist/web/assets/{applescript-D_SIFkKe.js → applescript-9me9Xoqf.js} +0 -0
  194. /package/dist/web/assets/{ara-C3iECgdg.js → ara-CHhiJzie.js} +0 -0
  195. /package/dist/web/assets/{asciidoc-gc8z_MMY.js → asciidoc-CKk0H4sD.js} +0 -0
  196. /package/dist/web/assets/{asm-27qeoPOI.js → asm-CVc_SeQB.js} +0 -0
  197. /package/dist/web/assets/{aurora-x-C5J9fWe1.js → aurora-x-BRYBKvUk.js} +0 -0
  198. /package/dist/web/assets/{awk-B7GBzF92.js → awk-BsBtss7k.js} +0 -0
  199. /package/dist/web/assets/{ayu-dark-XlnQhuLL.js → ayu-dark-x3ChmRrr.js} +0 -0
  200. /package/dist/web/assets/{ayu-light-DKLLilkU.js → ayu-light-DUbhGec6.js} +0 -0
  201. /package/dist/web/assets/{ayu-mirage-Dv-XOprJ.js → ayu-mirage-Bc9Dyu4v.js} +0 -0
  202. /package/dist/web/assets/{ballerina-DACRT-sT.js → ballerina-B0CV6yyC.js} +0 -0
  203. /package/dist/web/assets/{bat-BlQCq2XE.js → bat-BmukVhcd.js} +0 -0
  204. /package/dist/web/assets/{beancount-DYDztRI0.js → beancount-DfRKW4qX.js} +0 -0
  205. /package/dist/web/assets/{berry-BE5YKqvx.js → berry-BXO-GbOz.js} +0 -0
  206. /package/dist/web/assets/{bibtex-CAm7mgEm.js → bibtex-BIMgGN81.js} +0 -0
  207. /package/dist/web/assets/{bicep-BKgAbfVa.js → bicep-CIaj_N_V.js} +0 -0
  208. /package/dist/web/assets/{bird2-yrBNbW1G.js → bird2-Ca5CJ-1r.js} +0 -0
  209. /package/dist/web/assets/{c-txZFr4RM.js → c-BgN-FzVO.js} +0 -0
  210. /package/dist/web/assets/{c3-D_DrzBUd.js → c3-B366g85t.js} +0 -0
  211. /package/dist/web/assets/{cadence-CUFCEgG9.js → cadence-BDCY3xvX.js} +0 -0
  212. /package/dist/web/assets/{can-open-in-ppm-_yqa69dV.js → can-open-in-ppm-DyFXJvuW.js} +0 -0
  213. /package/dist/web/assets/{catppuccin-frappe-Dn32MuhA.js → catppuccin-frappe-C2dWlEOM.js} +0 -0
  214. /package/dist/web/assets/{catppuccin-latte-Dewo7yDf.js → catppuccin-latte-B6AgUzC2.js} +0 -0
  215. /package/dist/web/assets/{catppuccin-macchiato-D8WOWZeo.js → catppuccin-macchiato-D2r_sUYa.js} +0 -0
  216. /package/dist/web/assets/{catppuccin-mocha-b0md48XM.js → catppuccin-mocha-CCJOmGcr.js} +0 -0
  217. /package/dist/web/assets/{clarity-Ct3UqLBj.js → clarity-7c_yM38y.js} +0 -0
  218. /package/dist/web/assets/{clojure-CwP5aPEo.js → clojure-Cx30u1gg.js} +0 -0
  219. /package/dist/web/assets/{cmake-D5RF49e5.js → cmake-D8nfcw9r.js} +0 -0
  220. /package/dist/web/assets/{codeowners-Cl5897L_.js → codeowners-z9VeFgy0.js} +0 -0
  221. /package/dist/web/assets/{codeql-BKh1RCg0.js → codeql-DXYEc0p7.js} +0 -0
  222. /package/dist/web/assets/{common-lisp-BhHuD6t0.js → common-lisp-QB2DYRB7.js} +0 -0
  223. /package/dist/web/assets/{coq-Dco3qwD8.js → coq-DC4-vZSI.js} +0 -0
  224. /package/dist/web/assets/{csharp-Dpjw9ZA9.js → csharp-iBJcXIuz.js} +0 -0
  225. /package/dist/web/assets/{css-CPe4cabH.js → css-DzLteUnC.js} +0 -0
  226. /package/dist/web/assets/{csv-parser-DbxGKdMG.js → csv-parser-0OmrzV4G.js} +0 -0
  227. /package/dist/web/assets/{csv-BAcTN8Kt.js → csv-plVZ5iV_.js} +0 -0
  228. /package/dist/web/assets/{cue-Cr6y60TA.js → cue-MFyM4FwJ.js} +0 -0
  229. /package/dist/web/assets/{cypher-DWtqXXFP.js → cypher-BmV76dTw.js} +0 -0
  230. /package/dist/web/assets/{d-BASiTZk4.js → d-CukQ97B6.js} +0 -0
  231. /package/dist/web/assets/{dark-plus-56kmnrcl.js → dark-plus-BDhlhnd-.js} +0 -0
  232. /package/dist/web/assets/{dart-C5mZnjoE.js → dart-BEDiNp89.js} +0 -0
  233. /package/dist/web/assets/{dax-B4I2e7d8.js → dax-CKMJPpmb.js} +0 -0
  234. /package/dist/web/assets/{desktop-DekGg0BT.js → desktop-CjjGerHK.js} +0 -0
  235. /package/dist/web/assets/{diff-CWnJBd73.js → diff-CuRWQEJk.js} +0 -0
  236. /package/dist/web/assets/{dist-B0J2eYBz.js → dist-BuUB-Gou.js} +0 -0
  237. /package/dist/web/assets/{docker-DevchDxK.js → docker-BzeqNwXY.js} +0 -0
  238. /package/dist/web/assets/{docx-preview-Xy7SZ7Vf.js → docx-preview-Dg8lD3f3.js} +0 -0
  239. /package/dist/web/assets/{dotenv-DCvtdaGJ.js → dotenv-maAByz4s.js} +0 -0
  240. /package/dist/web/assets/{dracula-8U6Vkk3l.js → dracula-BK-58eQL.js} +0 -0
  241. /package/dist/web/assets/{dracula-soft-Bfeew5Wg.js → dracula-soft-BiBFiJ4B.js} +0 -0
  242. /package/dist/web/assets/{dream-maker-DDTJVuoy.js → dream-maker-SLz866k9.js} +0 -0
  243. /package/dist/web/assets/{emacs-lisp-CEHJqI4m.js → emacs-lisp-DVVSBvYb.js} +0 -0
  244. /package/dist/web/assets/{everforest-dark-CHHLt7cq.js → everforest-dark-B3wCaZGh.js} +0 -0
  245. /package/dist/web/assets/{everforest-light-TcTbK1sM.js → everforest-light-BOv6DEcT.js} +0 -0
  246. /package/dist/web/assets/{fennel-Bh4vsA1A.js → fennel-mxeAVgSR.js} +0 -0
  247. /package/dist/web/assets/{fish-D0T0fILG.js → fish-CNPEh-7O.js} +0 -0
  248. /package/dist/web/assets/{fluent-CgXDXdyy.js → fluent-DzjF371g.js} +0 -0
  249. /package/dist/web/assets/{format-bytes-Bc6SqF7M.js → format-bytes-BxBoqnS1.js} +0 -0
  250. /package/dist/web/assets/{fortran-free-form-CUg3Xhz4.js → fortran-free-form-BwcDAA-k.js} +0 -0
  251. /package/dist/web/assets/{gdscript-Cx056p_k.js → gdscript-Dw53oyoq.js} +0 -0
  252. /package/dist/web/assets/{gdshader-Dj1qP4I5.js → gdshader-Ch4uX8TL.js} +0 -0
  253. /package/dist/web/assets/{genie-SBt15wn7.js → genie-BmyA3sav.js} +0 -0
  254. /package/dist/web/assets/{gherkin-bTJiHIrB.js → gherkin-TJfGbfw6.js} +0 -0
  255. /package/dist/web/assets/{github-dark-BOPhyugs.js → github-dark-DfjGEBZm.js} +0 -0
  256. /package/dist/web/assets/{github-dark-default-Cktqe6NF.js → github-dark-default-C05CO5WG.js} +0 -0
  257. /package/dist/web/assets/{github-dark-dimmed-CeWfII_B.js → github-dark-dimmed-tc58hIbY.js} +0 -0
  258. /package/dist/web/assets/{github-dark-high-contrast-CTx8LpdV.js → github-dark-high-contrast-Cbjouhax.js} +0 -0
  259. /package/dist/web/assets/{github-light-DVsO5Un1.js → github-light-DyPx5kxT.js} +0 -0
  260. /package/dist/web/assets/{github-light-default-BiyPxicr.js → github-light-default-CwQhvvq0.js} +0 -0
  261. /package/dist/web/assets/{github-light-high-contrast-BPlnke0a.js → github-light-high-contrast-BSEfGuGA.js} +0 -0
  262. /package/dist/web/assets/{gleam-CWSxvD0C.js → gleam-CO9BliEd.js} +0 -0
  263. /package/dist/web/assets/{gn-D7NUVJuv.js → gn-3w7c2jXR.js} +0 -0
  264. /package/dist/web/assets/{gnuplot-c5uXmJKc.js → gnuplot-B9V8Da0h.js} +0 -0
  265. /package/dist/web/assets/{go-CRsHi4Cw.js → go-DZFS3BH_.js} +0 -0
  266. /package/dist/web/assets/{groovy-DpV0RA5r.js → groovy-BoXoCYbJ.js} +0 -0
  267. /package/dist/web/assets/{gruvbox-dark-hard-DD9fguUN.js → gruvbox-dark-hard-PlwQadvn.js} +0 -0
  268. /package/dist/web/assets/{gruvbox-dark-medium-BvcwpYJ-.js → gruvbox-dark-medium-BCuSx7jF.js} +0 -0
  269. /package/dist/web/assets/{gruvbox-dark-soft-48dCxX9M.js → gruvbox-dark-soft-BxNVGg5m.js} +0 -0
  270. /package/dist/web/assets/{gruvbox-light-hard-CjJ994Ip.js → gruvbox-light-hard-Caj_mHvE.js} +0 -0
  271. /package/dist/web/assets/{gruvbox-light-medium-DQJQZ_rV.js → gruvbox-light-medium-BbWauaVM.js} +0 -0
  272. /package/dist/web/assets/{gruvbox-light-soft-AqsC9mKw.js → gruvbox-light-soft-sTtAiBhF.js} +0 -0
  273. /package/dist/web/assets/{haskell-B5V7yvmh.js → haskell-DdAcCutT.js} +0 -0
  274. /package/dist/web/assets/{haxe-LWTKfPKr.js → haxe-CAaBQSbQ.js} +0 -0
  275. /package/dist/web/assets/{hcl-QmNZdAtI.js → hcl-D1Y6h8Ni.js} +0 -0
  276. /package/dist/web/assets/{hjson-CboJsAzK.js → hjson-C7gAy4J-.js} +0 -0
  277. /package/dist/web/assets/{hlsl-Bd-DO_WL.js → hlsl-BLCpvTDs.js} +0 -0
  278. /package/dist/web/assets/{horizon-CU8Bi_ss.js → horizon-A4TcfP_V.js} +0 -0
  279. /package/dist/web/assets/{horizon-bright-iSQ3_3jP.js → horizon-bright-D4gSyLkJ.js} +0 -0
  280. /package/dist/web/assets/{houston-CTXv3Puz.js → houston-B57jZ5OJ.js} +0 -0
  281. /package/dist/web/assets/{hy-Cd4hTidD.js → hy-C-_Ikdzx.js} +0 -0
  282. /package/dist/web/assets/{image-gallery-J8h8IY0c.js → image-gallery-DZFo6X0Q.js} +0 -0
  283. /package/dist/web/assets/{imba-BipCHEY2.js → imba-BwypdGq0.js} +0 -0
  284. /package/dist/web/assets/{ini-Dd1KkMrB.js → ini-DFC2fVTV.js} +0 -0
  285. /package/dist/web/assets/{java-rGr0OQD8.js → java-K2R-OeI_.js} +0 -0
  286. /package/dist/web/assets/{javascript-DHhCH2TN.js → javascript-Dwc_x-Qy.js} +0 -0
  287. /package/dist/web/assets/{json-CMMLBCUf.js → json-BWJ0jCOR.js} +0 -0
  288. /package/dist/web/assets/{json5-mPOwTOsB.js → json5-CyjYMs2j.js} +0 -0
  289. /package/dist/web/assets/{jsonc-Bie0E6D3.js → jsonc-DpY-971T.js} +0 -0
  290. /package/dist/web/assets/{jsonl-CpqHmtC1.js → jsonl-MOid1Cv5.js} +0 -0
  291. /package/dist/web/assets/{jsonnet-D21Ms51e.js → jsonnet-C8r7u8hK.js} +0 -0
  292. /package/dist/web/assets/{jssm-BXnl1nur.js → jssm-aiVzgRKq.js} +0 -0
  293. /package/dist/web/assets/{jsx-Chnii_vB.js → jsx-BouDi2uL.js} +0 -0
  294. /package/dist/web/assets/{kanagawa-dragon-DhxR0UjL.js → kanagawa-dragon-BDBacW42.js} +0 -0
  295. /package/dist/web/assets/{kanagawa-lotus-fupRg5wp.js → kanagawa-lotus-Bjc_h4S5.js} +0 -0
  296. /package/dist/web/assets/{kanagawa-wave-DSWbRS9M.js → kanagawa-wave-h12w2GK-.js} +0 -0
  297. /package/dist/web/assets/{kdl-DirGHqUy.js → kdl-By4Gal6E.js} +0 -0
  298. /package/dist/web/assets/{kotlin-DkhUVMDC.js → kotlin-BaieUpjq.js} +0 -0
  299. /package/dist/web/assets/{kusto-DU7OpovF.js → kusto-bFewy_Sb.js} +0 -0
  300. /package/dist/web/assets/{laserwave-iLKb1ZCT.js → laserwave-DpFhqINu.js} +0 -0
  301. /package/dist/web/assets/{lean-Cuvh_QAP.js → lean-DDn2i30H.js} +0 -0
  302. /package/dist/web/assets/{less-B5tQZOdI.js → less-DtaLKtJv.js} +0 -0
  303. /package/dist/web/assets/{lib-el9rA30D.js → lib-Bss7BrXJ.js} +0 -0
  304. /package/dist/web/assets/{libesm-CdttTIAd.js → libesm-DJd6dkYL.js} +0 -0
  305. /package/dist/web/assets/{light-plus-DiHU2KL5.js → light-plus-BiMMZ8in.js} +0 -0
  306. /package/dist/web/assets/{llvm-sCBTKCKN.js → llvm-BI0xMYjk.js} +0 -0
  307. /package/dist/web/assets/{log-DtyR34Ie.js → log-BDnXCvPh.js} +0 -0
  308. /package/dist/web/assets/{logo-CP91aQyG.js → logo-DeOTbfcP.js} +0 -0
  309. /package/dist/web/assets/{luau-nfGo2ulP.js → luau-C8pWPPhP.js} +0 -0
  310. /package/dist/web/assets/{make-XbDn9GHe.js → make-Du6n4Vqb.js} +0 -0
  311. /package/dist/web/assets/{markdown-BB1_3xLr.js → markdown-CQOwzr1d.js} +0 -0
  312. /package/dist/web/assets/{material-theme-CIx_sxAy.js → material-theme-V1uvvG3T.js} +0 -0
  313. /package/dist/web/assets/{material-theme-darker-DsQeueDD.js → material-theme-darker-YOeOea0A.js} +0 -0
  314. /package/dist/web/assets/{material-theme-lighter-x_lMi74j.js → material-theme-lighter-gsPcqGZh.js} +0 -0
  315. /package/dist/web/assets/{material-theme-ocean-Bkgh25P8.js → material-theme-ocean-DXpcGhUO.js} +0 -0
  316. /package/dist/web/assets/{material-theme-palenight-CoOjdbti.js → material-theme-palenight-CuXKc4Kv.js} +0 -0
  317. /package/dist/web/assets/{matlab-D6xZas_8.js → matlab-DKfAoKWM.js} +0 -0
  318. /package/dist/web/assets/{mdx-Cl5_YNoz.js → mdx-B3lHrBfA.js} +0 -0
  319. /package/dist/web/assets/{media-url-BMeBaB0q.js → media-url-TGgkntUW.js} +0 -0
  320. /package/dist/web/assets/{mermaid-8Eow4jz_.js → mermaid-aFxjKRiq.js} +0 -0
  321. /package/dist/web/assets/{min-dark-D4DhjgRE.js → min-dark-z_K9sY1g.js} +0 -0
  322. /package/dist/web/assets/{min-light-DzAckd0t.js → min-light-CKEPOwP-.js} +0 -0
  323. /package/dist/web/assets/{mipsasm-zI_zu0tj.js → mipsasm-Czl4687V.js} +0 -0
  324. /package/dist/web/assets/{mojo-DQnGGPHf.js → mojo-XEmb6dMz.js} +0 -0
  325. /package/dist/web/assets/{monokai-CrFoD2VD.js → monokai-CeewfP-T.js} +0 -0
  326. /package/dist/web/assets/{moonbit-DdphIGs6.js → moonbit-BFs6rC9o.js} +0 -0
  327. /package/dist/web/assets/{move-BUlkn0xW.js → move-Dru-OXAq.js} +0 -0
  328. /package/dist/web/assets/{narrat-CbOBdtCn.js → narrat-C6i2yGbz.js} +0 -0
  329. /package/dist/web/assets/{nextflow-groovy-CeVLUTuQ.js → nextflow-groovy-CNbSHaJ-.js} +0 -0
  330. /package/dist/web/assets/{night-owl-Bm4LhUR1.js → night-owl-XXoqvAPs.js} +0 -0
  331. /package/dist/web/assets/{night-owl-light-DtcBiMEf.js → night-owl-light-Dm8251t1.js} +0 -0
  332. /package/dist/web/assets/{nix-DrdwQ70g.js → nix-DUvtyLsY.js} +0 -0
  333. /package/dist/web/assets/{nord-B0Head1v.js → nord-DapQODEA.js} +0 -0
  334. /package/dist/web/assets/{nushell-CmUdltKn.js → nushell-WDWgg9A2.js} +0 -0
  335. /package/dist/web/assets/{objective-c-BGDR33XN.js → objective-c-Dg6Li1Kw.js} +0 -0
  336. /package/dist/web/assets/{objective-cpp-Buc1Zhd0.js → objective-cpp-DLTQ4Pyg.js} +0 -0
  337. /package/dist/web/assets/{ocaml-xdzl9rRD.js → ocaml-gH2M-t6b.js} +0 -0
  338. /package/dist/web/assets/{odin-DiUFngnd.js → odin-BBj0SPaN.js} +0 -0
  339. /package/dist/web/assets/{one-dark-pro-BURxmIp3.js → one-dark-pro-C8irccD3.js} +0 -0
  340. /package/dist/web/assets/{one-light-BMRMInAj.js → one-light-THMntV-R.js} +0 -0
  341. /package/dist/web/assets/{openscad-DAgLA5J3.js → openscad-BEjRF8ZV.js} +0 -0
  342. /package/dist/web/assets/{pascal-CoDZxcRB.js → pascal-C7Kr1uH_.js} +0 -0
  343. /package/dist/web/assets/{pkl-DzKM6BuM.js → pkl-CBAaOrr-.js} +0 -0
  344. /package/dist/web/assets/{plastic-vF15LmNS.js → plastic-B1qtUEVU.js} +0 -0
  345. /package/dist/web/assets/{plsql-C1v07teA.js → plsql-KzVm4VQQ.js} +0 -0
  346. /package/dist/web/assets/{po-CLLC8BuA.js → po-BDthh1AB.js} +0 -0
  347. /package/dist/web/assets/{poimandres-Uq0xysxM.js → poimandres-DIsV0oVO.js} +0 -0
  348. /package/dist/web/assets/{polar-2-luY1Pc.js → polar-HfZSDZob.js} +0 -0
  349. /package/dist/web/assets/{postcss-lbFhe0rz.js → postcss-D2mpQWcD.js} +0 -0
  350. /package/dist/web/assets/{powerquery-RL8O9Wie.js → powerquery-BmWOahNZ.js} +0 -0
  351. /package/dist/web/assets/{powershell-upFWhb-b.js → powershell-DuBkKB6U.js} +0 -0
  352. /package/dist/web/assets/{prisma-DBtYaWFk.js → prisma-DMOCr8t3.js} +0 -0
  353. /package/dist/web/assets/{prolog-D8jSMykJ.js → prolog-OntlFpI5.js} +0 -0
  354. /package/dist/web/assets/{proto-BM4eadF7.js → proto-kD5tYlX3.js} +0 -0
  355. /package/dist/web/assets/{puppet-BQDQ3Snu.js → puppet-CO4XS5MF.js} +0 -0
  356. /package/dist/web/assets/{purescript-Cj2aTX4s.js → purescript-D_e2LzQx.js} +0 -0
  357. /package/dist/web/assets/{python-BYpqq6u4.js → python-BcK-Cw6k.js} +0 -0
  358. /package/dist/web/assets/{qmldir-4uiTcwAu.js → qmldir-B-9b87fC.js} +0 -0
  359. /package/dist/web/assets/{qss-D5xB-Mqo.js → qss-hWjUDAxi.js} +0 -0
  360. /package/dist/web/assets/{r-P6Ujy8rf.js → r-D0sNqudq.js} +0 -0
  361. /package/dist/web/assets/{racket-COKgCFuM.js → racket-9cjYYXcq.js} +0 -0
  362. /package/dist/web/assets/{raku-z14Q9i7K.js → raku-ntPupo_R.js} +0 -0
  363. /package/dist/web/assets/{red-ObAvgvQ5.js → red-D814sEjX.js} +0 -0
  364. /package/dist/web/assets/{reg-Qv4f0JFA.js → reg-bPzNEQh4.js} +0 -0
  365. /package/dist/web/assets/{regexp-CEOVGIzy.js → regexp-B_zg64Ge.js} +0 -0
  366. /package/dist/web/assets/{rel-cWOyTUwd.js → rel-CoB0Qjm-.js} +0 -0
  367. /package/dist/web/assets/{riscv-BZDwx-lv.js → riscv-DcVTEi_B.js} +0 -0
  368. /package/dist/web/assets/{ron-BpjosPS0.js → ron-CcAQMYzM.js} +0 -0
  369. /package/dist/web/assets/{rose-pine-dawn-BbGt9Wy_.js → rose-pine-dawn-DkSLvjDV.js} +0 -0
  370. /package/dist/web/assets/{rose-pine-DhxfJWcm.js → rose-pine-jtG38kvA.js} +0 -0
  371. /package/dist/web/assets/{rose-pine-moon-dj4Zxgik.js → rose-pine-moon-DJx8AxMs.js} +0 -0
  372. /package/dist/web/assets/{rosmsg-EciOaHo2.js → rosmsg-BnfYFiWk.js} +0 -0
  373. /package/dist/web/assets/{run-in-terminal-wHKwAnWP.js → run-in-terminal-Sb6TFU4f.js} +0 -0
  374. /package/dist/web/assets/{rust-C_eH59O_.js → rust-DxgQnpfl.js} +0 -0
  375. /package/dist/web/assets/{sass-Dos3R5lL.js → sass-DTgjjspH.js} +0 -0
  376. /package/dist/web/assets/{scala-8lVKsTvf.js → scala-xEozebyS.js} +0 -0
  377. /package/dist/web/assets/{scheme-Bd3VdaZj.js → scheme-sfgxdr_D.js} +0 -0
  378. /package/dist/web/assets/{sdbl-C4Yrjlgh.js → sdbl-BpdzD-Uv.js} +0 -0
  379. /package/dist/web/assets/{send-to-chat-BI7-fFpG.js → send-to-chat-BDws0-k0.js} +0 -0
  380. /package/dist/web/assets/{separator-W_hJcXPk.js → separator-GeVzERIl.js} +0 -0
  381. /package/dist/web/assets/{shellscript-OFZbPKZH.js → shellscript-B2o7zCrN.js} +0 -0
  382. /package/dist/web/assets/{slack-dark-aL6vlxZs.js → slack-dark-DxfgNfgJ.js} +0 -0
  383. /package/dist/web/assets/{slack-ochin-BKt1E7sL.js → slack-ochin-BMSGMkt8.js} +0 -0
  384. /package/dist/web/assets/{smalltalk-D6qVBL1U.js → smalltalk-DCb8haRt.js} +0 -0
  385. /package/dist/web/assets/{snazzy-light-BrWerT0t.js → snazzy-light-Y06j56Vj.js} +0 -0
  386. /package/dist/web/assets/{solarized-dark-CzxTJgVQ.js → solarized-dark-z1W-RVhp.js} +0 -0
  387. /package/dist/web/assets/{solarized-light-BecaDAnG.js → solarized-light-BRAGTpW5.js} +0 -0
  388. /package/dist/web/assets/{solidity-C9t7pZ84.js → solidity-CDTZVMHy.js} +0 -0
  389. /package/dist/web/assets/{splunk-CtxfFKtF.js → splunk-CFjv6-V_.js} +0 -0
  390. /package/dist/web/assets/{sql-7FE_Duz0.js → sql-Ce-1ETwT.js} +0 -0
  391. /package/dist/web/assets/{ssh-config-3Fr37ACC.js → ssh-config-Bcs3SD-x.js} +0 -0
  392. /package/dist/web/assets/{stylus-BP4mE1sO.js → stylus-Co5Var6O.js} +0 -0
  393. /package/dist/web/assets/{swift-0uqTFouD.js → swift-Irt_r7Fy.js} +0 -0
  394. /package/dist/web/assets/{synthwave-84-DQaNM3DI.js → synthwave-84-BOgCDIL-.js} +0 -0
  395. /package/dist/web/assets/{system-verilog-DUIVrZHZ.js → system-verilog-DSwfS0ci.js} +0 -0
  396. /package/dist/web/assets/{systemd-CtNo_WIh.js → systemd-C-HqVFLV.js} +0 -0
  397. /package/dist/web/assets/{talonscript-B0HXaCVT.js → talonscript-B7lshRGY.js} +0 -0
  398. /package/dist/web/assets/{tasl-Cb7RAl11.js → tasl-BZXSTCA-.js} +0 -0
  399. /package/dist/web/assets/{tcl-B79aC6l5.js → tcl-B_vaMM01.js} +0 -0
  400. /package/dist/web/assets/{terraform-75jJDjpW.js → terraform-B7kDBVtX.js} +0 -0
  401. /package/dist/web/assets/{tokyo-night-Cz9Uh9qb.js → tokyo-night-CW1uC1bG.js} +0 -0
  402. /package/dist/web/assets/{toml-CD6y9A-z.js → toml-Af6Dxufp.js} +0 -0
  403. /package/dist/web/assets/{tsv-CXJMbBrb.js → tsv-BSFZ-g3s.js} +0 -0
  404. /package/dist/web/assets/{tsx-BuYN0I2t.js → tsx-CN8kIwG_.js} +0 -0
  405. /package/dist/web/assets/{turtle-DWH-Rjse.js → turtle-BSUyR8DV.js} +0 -0
  406. /package/dist/web/assets/{typescript-BPd-hsrR.js → typescript-2AZeIhCA.js} +0 -0
  407. /package/dist/web/assets/{typespec-B0wvVykx.js → typespec-DRZ0XiHC.js} +0 -0
  408. /package/dist/web/assets/{typst-DWG2c48-.js → typst-p1gfDr4O.js} +0 -0
  409. /package/dist/web/assets/{use-blob-url-CrwoZJUJ.js → use-blob-url-BMtoAEL4.js} +0 -0
  410. /package/dist/web/assets/{use-open-team-member-CSUU7Z8N.js → use-open-team-member-C9EUqPvl.js} +0 -0
  411. /package/dist/web/assets/{v-Ch6E4Egd.js → v-B705HYgD.js} +0 -0
  412. /package/dist/web/assets/{vala-CGVKwbPx.js → vala-CyU0S4KW.js} +0 -0
  413. /package/dist/web/assets/{vb-BIEbSxyT.js → vb-DCWUzR_1.js} +0 -0
  414. /package/dist/web/assets/{vendor-xterm-YQlzIWv2.js → vendor-xterm-MrmaYoD2.js} +0 -0
  415. /package/dist/web/assets/{verilog-A-3pYPad.js → verilog-CrRE3TC7.js} +0 -0
  416. /package/dist/web/assets/{vesper-CK1naZAV.js → vesper-BH5N5eRr.js} +0 -0
  417. /package/dist/web/assets/{vhdl-CVawmgMg.js → vhdl-CT1Mz-fu.js} +0 -0
  418. /package/dist/web/assets/{viml-CiWjaqBY.js → viml-B0LtAesb.js} +0 -0
  419. /package/dist/web/assets/{vitesse-black-PYXW4-BO.js → vitesse-black-DqQvxGCJ.js} +0 -0
  420. /package/dist/web/assets/{vitesse-dark-BU5s4AuG.js → vitesse-dark-C6MRSe2N.js} +0 -0
  421. /package/dist/web/assets/{vitesse-light-DgkIT-N7.js → vitesse-light-B-8DQ5R9.js} +0 -0
  422. /package/dist/web/assets/{vyper-D8cRDPp3.js → vyper-D7YgYuMk.js} +0 -0
  423. /package/dist/web/assets/{wasm-ClFJgzmT.js → wasm-BgEp8ivq.js} +0 -0
  424. /package/dist/web/assets/{wasm-C02wlRbP.js → wasm-Dj9JHuDf.js} +0 -0
  425. /package/dist/web/assets/{wenyan-B8plxIr8.js → wenyan-CLcU30u4.js} +0 -0
  426. /package/dist/web/assets/{wgsl-CVujtm3V.js → wgsl-DEtNo0DR.js} +0 -0
  427. /package/dist/web/assets/{wikitext-CmcG9B69.js → wikitext-CXiDN9zY.js} +0 -0
  428. /package/dist/web/assets/{wit--gl2Jium.js → wit-0hROlx_P.js} +0 -0
  429. /package/dist/web/assets/{wolfram-6T_1D-NS.js → wolfram-nhKFI8Qz.js} +0 -0
  430. /package/dist/web/assets/{yaml-CIVV9uA1.js → yaml-CNoUgoPD.js} +0 -0
  431. /package/dist/web/assets/{zenscript-CoT4yNdA.js → zenscript-BgGAyJ15.js} +0 -0
  432. /package/dist/web/assets/{zig-BWs2Qo3G.js → zig-Be_I-6Rs.js} +0 -0
@@ -863,6 +863,9 @@ export function useChat(
863
863
  // Handle session state (replaces connected + status)
864
864
  if ((data as any).type === "session_state") {
865
865
  setIsConnected(true);
866
+ // A live session may have no buffered events yet, so no turn_events frame
867
+ // will follow. This acknowledgement already confirms the connection.
868
+ setIsReconnecting(false);
866
869
  setConnectedSessionId((data as any).sessionId ?? sessionIdRef.current);
867
870
  const state = data as any;
868
871
  const p = state.phase as SessionPhase;
@@ -1060,6 +1063,7 @@ export function useChat(
1060
1063
  if (syncRafRef.current) { clearTimeout(syncRafRef.current); syncRafRef.current = 0; }
1061
1064
  setIsConnected(false);
1062
1065
  setConnectedSessionId(null);
1066
+ setIsReconnecting(false);
1063
1067
  // Reset team state
1064
1068
  teamActivityRef.current = { teamNames: new Set(), messages: [] };
1065
1069
  teamUnreadRef.current = 0;
@@ -21,9 +21,12 @@ export function useWebSocket({
21
21
  onConnectionChangeRef.current = onConnectionChange;
22
22
 
23
23
  useEffect(() => {
24
+ let active = true;
24
25
  const client = new WsClient(url, {
25
26
  idleTimeoutMs,
26
- onConnectionChange: (connected) => onConnectionChangeRef.current?.(connected),
27
+ onConnectionChange: (connected) => {
28
+ if (active) onConnectionChangeRef.current?.(connected);
29
+ },
27
30
  });
28
31
  clientRef.current = client;
29
32
 
@@ -34,6 +37,9 @@ export function useWebSocket({
34
37
  }
35
38
 
36
39
  return () => {
40
+ // Replacing a session socket is intentional, not a connection failure.
41
+ // The old client's cleanup must not update the new session's UI.
42
+ active = false;
37
43
  client.disconnect();
38
44
  clientRef.current = null;
39
45
  };
@@ -1 +0,0 @@
1
- import{K as e}from"./vendor-mermaid-CfY1-PkA.js";export{e as createArchitectureServices};
@@ -1,7 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/markdown-renderer-CMFkajd7.js","assets/vendor-mermaid-CfY1-PkA.js","assets/rolldown-runtime-FhOqtrmT.js","assets/vendor-ui-CaeeFO0B.js","assets/vendor-markdown-Ls5AcU91.js","assets/markdown-renderer-BA3C2L-a.js","assets/index-Cx1meAwb.js","assets/button-DX32ffge.js","assets/utils-IrnQujwR.js","assets/createLucideIcon-D8pyde1A.js","assets/arrow-left-CyFcsyzD.js","assets/bot-D6sx11y0.js","assets/check-DN75Ucvz.js","assets/chevron-down-Dp0rpHb8.js","assets/chevron-right-De-Wz5Lz.js","assets/chevron-up-8PbsNiJp.js","assets/circle-BCy0AUCo.js","assets/clock-C1CQUQPZ.js","assets/sparkles-Dh-_J2Rd.js","assets/copy-BewHj66E.js","assets/database-Y3ESDK4-.js","assets/download-DG3_9xXy.js","assets/use-coarse-long-press-BmI_GVW5.js","assets/eye-off-GjXVuAOn.js","assets/eye-gWwaF4Lg.js","assets/loader-circle-DPMrnLQ2.js","assets/monitor-C835ucWH.js","assets/x-CxoBA0po.js","assets/api-client-CEYCBt_0.js","assets/react-D1Yg256j.js","assets/window-store-D0HbQ1pM.js","assets/window-pip-registry-CrCYYTTf.js","assets/panel-store-BmdcSBNb.js","assets/context-menu-CJL8L98s.js","assets/portal-container-context-DKymYOY-.js","assets/mobile-bottom-sheet-CmySDB6I.js","assets/use-visual-viewport-Bfl3Bxxb.js","assets/use-is-mobile-D1weanbj.js","assets/project-store-wWZ6bjwq.js","assets/ws-auth-D111jj32.js","assets/settings-store-CzLnTR8p.js","assets/streaming-store-9XVmAMfV.js","assets/tab-store-1xYJb0gM.js","assets/apply-theme-BVXAUYoN.js","assets/resolve-theme-CMp5xxCW.js","assets/index-B9Wbjl0o.css","assets/image-gallery-J8h8IY0c.js","assets/run-in-terminal-wHKwAnWP.js","assets/csv-preview-BEYKn68B.js","assets/lib-el9rA30D.js","assets/csv-parser-DbxGKdMG.js","assets/image-preview-fuU4h2nr.js","assets/file-exclamation-point-JzhTU2TX.js","assets/use-blob-url-CrwoZJUJ.js","assets/pdf-preview-B-JAU8JV.js","assets/video-preview-BTzstVhM.js","assets/can-open-in-ppm-_yqa69dV.js","assets/media-url-BMeBaB0q.js","assets/audio-preview-B4E5_7TW.js","assets/docx-preview-Xy7SZ7Vf.js"])))=>i.map(i=>d[i]);
2
- import{o as e}from"./rolldown-runtime-FhOqtrmT.js";import{S as t,x as n}from"./vendor-markdown-Ls5AcU91.js";import"./vendor-ui-CaeeFO0B.js";import{t as r}from"./createLucideIcon-D8pyde1A.js";import{t as i}from"./chevron-right-De-Wz5Lz.js";import{t as a}from"./code-DJgYrFzm.js";import{t as o}from"./database-Y3ESDK4-.js";import{t as s}from"./download-DG3_9xXy.js";import{t as c}from"./eye-gWwaF4Lg.js";import{t as l}from"./file-exclamation-point-JzhTU2TX.js";import{a as u,i as d,o as f,r as p,t as m}from"./glide-data-grid-BUS44oLM.js";import{t as h}from"./loader-circle-DPMrnLQ2.js";import{t as ee}from"./shield-check-BsG3LV8i.js";import{t as te}from"./shield-off-7jKWpJBD.js";import{t as ne}from"./table-CRJsmfeg.js";import{t as re}from"./text-wrap-oiekm5SB.js";import{n as g,t as ie}from"./use-inline-blame-C1G-_NjC.js";import{t as _}from"./x-CxoBA0po.js";import{i as ae,n as v}from"./api-client-CEYCBt_0.js";import{q as y}from"./vendor-mermaid-CfY1-PkA.js";import{t as b}from"./settings-store-CzLnTR8p.js";import{t as x}from"./utils-IrnQujwR.js";import"./portal-container-context-DKymYOY-.js";import{t as oe}from"./panel-store-BmdcSBNb.js";import"./window-store-D0HbQ1pM.js";import{i as S}from"./project-store-wWZ6bjwq.js";import{t as se}from"./tab-store-1xYJb0gM.js";import{t as C}from"./button-DX32ffge.js";import{$n as ce,$t as w,Cr as T,Dr as E,Er as le,Fn as ue,Gt as de,It as fe,K as pe,Kt as D,Lt as O,Qt as me,Rt as k,Sr as he,Tr as A,Wt as j,X as ge,Xn as _e,Xt as ve,Yt as ye,an as be,en as M,gn as N,gr as xe,kr as Se,q as Ce,qt as we,rn as Te,s as Ee,xr as De,yr as Oe,zt as P}from"./index-Cx1meAwb.js";import"./data-grid-types-DeY60CLU.js";import{t as ke}from"./use-monaco-theme-cgPbRDUm.js";import{i as Ae,n as je,r as Me,t as Ne}from"./can-open-in-ppm-_yqa69dV.js";var F=r(`redo-2`,[[`path`,{d:`m15 14 5-5-5-5`,key:`12vg1m`}],[`path`,{d:`M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13`,key:`6uklza`}]]),I=e(t(),1),L=n();function R(e){let t=e.startsWith(`/`),n=e.split(/[/\\]/).filter(Boolean),r=e=>{let r=(t?`/`:``)+n.slice(0,e+1).join(`/`);return/^[A-Za-z]:$/.test(r)?r+`/`:r},i=t?`/`:(n[0]??``)+`/`;return n.map((e,t)=>({name:e,absPath:r(t),parentDir:t>0?r(t-1):i}))}async function Pe(e){return(await v.get(`/api/fs/browse?path=${encodeURIComponent(e)}`)).entries}function Fe({filePath:e,projectName:t,tabId:n,className:r}){let{updateTab:a,openTab:o}=se(fe(e=>({updateTab:e.updateTab,openTab:e.openTab}))),s=(0,I.useRef)(null),c=(0,I.useMemo)(()=>R(e),[e]);(0,I.useEffect)(()=>{s.current&&(s.current.scrollLeft=s.current.scrollWidth)},[c]);let l=(0,I.useCallback)((e,r)=>{let i=x(e),s={filePath:e,projectName:t};r.metaKey||r.ctrlKey?o({type:`editor`,title:i,metadata:s,projectId:t,closable:!0}):a(n,{title:i,metadata:s})},[t,n,o,a]);return(0,L.jsx)(`div`,{ref:s,className:r,children:c.map((e,t)=>(0,L.jsxs)(`div`,{className:`flex items-center shrink-0`,children:[t>0&&(0,L.jsx)(i,{className:`size-3 text-muted-foreground shrink-0 mx-0.5`}),(0,L.jsx)(Ie,{segment:e,isLast:t===c.length-1,onFileClick:l})]},e.absPath))})}function Ie({segment:e,isLast:t,onFileClick:n}){let[r,i]=(0,I.useState)(null),[a,o]=(0,I.useState)(null);function s(t){t&&r===null&&Pe(e.parentDir).then(i).catch(e=>{o(e.message||`Failed to browse`),i([])})}return(0,L.jsxs)(O,{onOpenChange:s,children:[(0,L.jsx)(we,{asChild:!0,children:(0,L.jsx)(`button`,{type:`button`,className:`text-xs px-1 py-0.5 rounded hover:bg-muted transition-colors truncate max-w-[120px] ${t?`text-foreground font-medium`:`text-muted-foreground`}`,children:e.name})}),(0,L.jsx)(k,{align:`start`,className:`max-h-[300px] overflow-y-auto p-1`,children:r===null?(0,L.jsx)(P,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Loading…`}):a?(0,L.jsx)(P,{disabled:!0,className:`text-xs text-destructive`,children:a}):r.length===0?(0,L.jsx)(P,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Empty`}):r.map(t=>(0,L.jsx)(Le,{entry:t,activePath:e.absPath,onFileClick:n},t.path))})]})}function Le({entry:e,activePath:t,onFileClick:n}){let r=ze(e.name,e.type===`directory`),i=e.path===t,[a,o]=(0,I.useState)(null);if(e.type===`directory`){function s(t){t&&a===null&&Pe(e.path).then(o).catch(()=>o([]))}return(0,L.jsxs)(j,{onOpenChange:s,children:[(0,L.jsxs)(D,{className:`text-xs gap-1.5 ${i?`bg-muted`:``}`,children:[(0,L.jsx)(r,{className:`size-3.5 shrink-0 text-muted-foreground`}),(0,L.jsx)(`span`,{className:`truncate`,children:e.name})]}),(0,L.jsx)(de,{className:`max-h-[300px] overflow-y-auto p-1`,children:a===null?(0,L.jsx)(P,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Loading…`}):a.length===0?(0,L.jsx)(P,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Empty`}):a.map(e=>(0,L.jsx)(Le,{entry:e,activePath:t,onFileClick:n},e.path))})]})}return(0,L.jsxs)(P,{className:`text-xs gap-1.5 cursor-pointer ${i?`bg-muted`:``}`,onClick:t=>n(e.path,t),children:[(0,L.jsx)(r,{className:`size-3.5 shrink-0 text-muted-foreground`}),(0,L.jsx)(`span`,{className:`truncate`,children:e.name})]})}var Re={ts:A,tsx:A,js:A,jsx:A,py:A,rs:A,go:A,html:A,css:A,scss:A,json:le,md:T,txt:T,yaml:he,yml:he};function ze(e,t){return t?Oe:Re[e.split(`.`).pop()?.toLowerCase()??``]??De}function Be(e,t){let n=[],r=e,i=``;for(let e=0;e<t.length;e++){let a=t[e],o=t.slice(0,e+1).join(`/`),s=r.find(e=>e.name===a);if(n.push({name:a,fullPath:o,node:s??null,siblings:r,parentPath:i}),s?.children)i=s.path,r=s.children;else{for(let r=e+1;r<t.length;r++)n.push({name:t[r],fullPath:t.slice(0,r+1).join(`/`),node:null,siblings:[],parentPath:t.slice(0,r).join(`/`)});break}}return n}function Ve(e){return[...e].sort((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1)}function He({filePath:e,projectName:t,tabId:n,className:r}){let a=N(e=>e.tree),{updateTab:o,openTab:s}=se(fe(e=>({updateTab:e.updateTab,openTab:e.openTab}))),c=S(e=>e.projects.find(e=>e.name===t)?.path??``),l=(0,I.useRef)(null),{prefixParts:u,relativePath:d,isExternal:f}=(0,I.useMemo)(()=>{let t=e.startsWith(`/`)?e.slice(1):e,n=c.startsWith(`/`)?c.slice(1):c;if(n&&t.startsWith(n+`/`)){let e=t.slice(n.length+1);return{prefixParts:n.split(`/`),relativePath:e,isExternal:!1}}return{prefixParts:[],relativePath:t,isExternal:/^(\/|[A-Za-z]:[/\\])/.test(e)}},[e,c]),p=(0,I.useMemo)(()=>Be(a,d.split(`/`).filter(Boolean)),[a,d]);(0,I.useEffect)(()=>{l.current&&(l.current.scrollLeft=l.current.scrollWidth)},[p]);function m(e,r){let i=x(e);r.metaKey||r.ctrlKey?s({type:`editor`,title:i,metadata:{filePath:e,projectName:t},projectId:t,closable:!0}):o(n,{title:i,metadata:{filePath:e,projectName:t}})}return f?(0,L.jsx)(Fe,{filePath:e,projectName:t,tabId:n,className:r}):(0,L.jsxs)(`div`,{ref:l,className:r,children:[u.map((e,t)=>(0,L.jsxs)(`div`,{className:`flex items-center shrink-0`,children:[t>0&&(0,L.jsx)(i,{className:`size-3 text-muted-foreground shrink-0 mx-0.5`}),(0,L.jsx)(`span`,{className:`text-xs text-muted-foreground px-1 py-0.5`,children:e})]},`prefix-${t}`)),p.map((e,n)=>(0,L.jsxs)(`div`,{className:`flex items-center shrink-0`,children:[(n>0||u.length>0)&&(0,L.jsx)(i,{className:`size-3 text-muted-foreground shrink-0 mx-0.5`}),(0,L.jsx)(z,{segment:e,isLast:n===p.length-1,projectName:t,onFileClick:m})]},e.fullPath))]})}function z({segment:e,isLast:t,projectName:n,onFileClick:r}){let i=N(e=>e.loadChildren),a=N(e=>e.loadedPaths),o=(0,I.useMemo)(()=>Ve(e.siblings),[e.siblings]),s=a.has(e.parentPath);function c(t){if(t&&!s){let t=e.parentPath.split(`/`).filter(Boolean);(async()=>{for(let e=0;e<=t.length;e++)await i(n,t.slice(0,e).join(`/`))})()}}return(0,L.jsxs)(O,{onOpenChange:c,children:[(0,L.jsx)(we,{asChild:!0,children:(0,L.jsx)(`button`,{type:`button`,className:`text-xs px-1 py-0.5 rounded hover:bg-muted transition-colors truncate max-w-[120px] ${t?`text-foreground font-medium`:`text-muted-foreground`}`,children:e.name})}),(0,L.jsx)(k,{align:`start`,className:`max-h-[300px] p-1`,children:o.length===0?(0,L.jsx)(P,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Loading…`}):o.map(t=>(0,L.jsx)(B,{node:t,projectName:n,activePath:e.fullPath,onFileClick:r},t.path))})]})}function B({node:e,projectName:t,activePath:n,onFileClick:r}){let i=ze(e.name,e.type===`directory`),a=e.path===n,o=N(e=>e.loadChildren),s=N(e=>e.loadedPaths);if(e.type===`directory`){let c=e.children??[],l=s.has(e.path);function u(n){n&&!l&&o(t,e.path)}return(0,L.jsxs)(j,{onOpenChange:u,children:[(0,L.jsxs)(D,{className:`text-xs gap-1.5 ${a?`bg-muted`:``}`,children:[(0,L.jsx)(i,{className:`size-3.5 shrink-0 text-muted-foreground`}),(0,L.jsx)(`span`,{className:`truncate`,children:e.name})]}),(0,L.jsx)(de,{className:`max-h-[300px] overflow-y-auto p-1`,children:c.length===0?(0,L.jsx)(P,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Loading…`}):Ve(c).map(e=>(0,L.jsx)(B,{node:e,projectName:t,activePath:n,onFileClick:r},e.path))})]})}return(0,L.jsxs)(P,{className:`text-xs gap-1.5 cursor-pointer ${a?`bg-muted`:``}`,onSelect:e=>{},onClick:t=>{r(e.path,t)},children:[(0,L.jsx)(i,{className:`size-3.5 shrink-0 text-muted-foreground`}),(0,L.jsx)(`span`,{className:`truncate`,children:e.name})]})}function V({active:e,onClick:t,icon:n,label:r,title:i}){return(0,L.jsxs)(`button`,{type:`button`,title:i,onClick:t,className:`flex items-center gap-1 px-2 py-1 rounded text-xs transition-colors ${e?`bg-muted text-foreground`:`text-muted-foreground hover:text-foreground`}`,children:[(0,L.jsx)(n,{className:`size-3`}),(0,L.jsx)(`span`,{className:`hidden sm:inline`,children:r})]})}function Ue({ext:e,mdMode:t,onMdModeChange:n,csvMode:r,onCsvModeChange:i,wordWrap:o,onToggleWordWrap:l,inlineBlame:u,onToggleInlineBlame:d,blameStale:f,onRefresh:p,refreshing:m,filePath:h,projectName:ee,className:te}){return(0,L.jsxs)(`div`,{className:te,children:[(e===`md`||e===`mdx`)&&n&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(V,{active:t===`edit`,onClick:()=>n(`edit`),icon:a,label:`Edit`}),(0,L.jsx)(V,{active:t===`preview`,onClick:()=>n(`preview`),icon:c,label:`Preview`})]}),e===`csv`&&i&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(V,{active:r===`table`,onClick:()=>i(`table`),icon:ne,label:`Table`}),(0,L.jsx)(V,{active:r===`raw`,onClick:()=>i(`raw`),icon:a,label:`Raw`})]}),(0,L.jsx)(V,{active:o,onClick:l,icon:re,label:`Wrap`}),d&&(0,L.jsx)(V,{active:u===!0,onClick:d,icon:g,label:`Blame`,title:u&&f?`Blame is hidden until this file is saved — the line numbers have moved`:`Inline blame (Alt+B)`}),p&&(0,L.jsxs)(`button`,{type:`button`,onClick:p,disabled:m,title:`Reload file from disk`,className:`flex items-center gap-1 px-2 py-1 rounded text-xs text-muted-foreground hover:text-foreground transition-colors disabled:opacity-50`,children:[(0,L.jsx)(_e,{className:`size-3 ${m?`animate-spin`:``}`}),(0,L.jsx)(`span`,{className:`hidden sm:inline`,children:`Refresh`})]}),h&&ee&&(0,L.jsx)(V,{active:!1,onClick:()=>Te(ee,h),icon:s,label:`Download`})]})}var H=[{id:`plaintext`,label:`Plain Text`},{id:`javascript`,label:`JavaScript`},{id:`typescript`,label:`TypeScript`},{id:`sql`,label:`SQL`},{id:`json`,label:`JSON`},{id:`xml`,label:`XML`},{id:`html`,label:`HTML`},{id:`css`,label:`CSS`},{id:`python`,label:`Python`},{id:`markdown`,label:`Markdown`},{id:`yaml`,label:`YAML`},{id:`shell`,label:`Shell`}];function We({value:e,onChange:t}){return(0,L.jsxs)(`div`,{className:`shrink-0 flex items-center gap-1 px-2 border-l border-border`,children:[(0,L.jsx)(A,{className:`size-3 text-muted-foreground`}),(0,L.jsx)(`select`,{value:e,onChange:e=>t(e.target.value),className:`h-5 text-[10px] bg-transparent border border-border rounded px-1 text-foreground outline-none max-w-[120px]`,title:`Select editor language`,children:H.map(e=>(0,L.jsx)(`option`,{value:e.id,children:e.label},e.id))})]})}function Ge({open:e,defaultName:t,content:n,onSave:r,onCancel:i}){let[a,o]=(0,I.useState)(t),[s,c]=(0,I.useState)(!1),[l,u]=(0,I.useState)(``),d=S(e=>e.activeProject),f=(0,I.useCallback)(()=>{let e=a.trim();if(!e){u(`Filename cannot be empty`);return}if(/[/\\]/.test(e)){u(`Filename cannot contain / or \\`);return}u(``),c(!0)},[a]),p=(0,I.useCallback)(e=>{let t=e.includes(`\\`)?`\\`:`/`;r(e.endsWith(t)?`${e}${a.trim()}`:`${e}${t}${a.trim()}`,n)},[a,n,r]);return s?(0,L.jsx)(Ce,{open:!0,mode:`folder`,root:d?.path,title:`Save "${a.trim()}" to...`,onSelect:p,onCancel:()=>c(!1)}):(0,L.jsx)(ye,{open:e,onOpenChange:e=>{e||i()},children:(0,L.jsxs)(ve,{className:`sm:max-w-md`,children:[(0,L.jsx)(w,{children:(0,L.jsx)(M,{children:`Save As`})}),(0,L.jsxs)(`div`,{className:`flex flex-col gap-2 py-2`,children:[(0,L.jsx)(`label`,{className:`text-sm text-muted-foreground`,children:`Filename`}),(0,L.jsx)(ge,{value:a,onChange:e=>{o(e.target.value),u(``)},onKeyDown:e=>{e.key===`Enter`&&f()},placeholder:`e.g. my-file.ts`,autoFocus:!0}),l&&(0,L.jsx)(`p`,{className:`text-xs text-destructive`,children:l})]}),(0,L.jsxs)(me,{children:[(0,L.jsx)(C,{variant:`outline`,onClick:i,children:`Cancel`}),(0,L.jsx)(C,{onClick:f,children:`Choose Folder...`})]})]})})}var U=typeof window<`u`&&window.isSecureContext,W=[`(`,`)`,`{`,`}`,`[`,`]`,`<`,`>`,`;`,`:`,`=`,`"`,`'`,"`",`/`,`\\`,`_`,`#`],Ke=`px-2 py-1.5 rounded text-xs min-w-[36px] min-h-[32px] bg-surface-elevated text-text-primary active:bg-primary active:text-primary-foreground transition-colors select-none`,G=`px-3 py-1.5 rounded text-xs font-mono min-w-[36px] min-h-[32px] bg-surface-elevated text-text-primary active:bg-primary active:text-primary-foreground transition-colors select-none`,K=`w-px h-5 bg-border mx-0.5 shrink-0`;function qe({editorRef:e,readOnly:t}){let n=(0,I.useCallback)(()=>e.current,[e]),r=(0,I.useCallback)(e=>{let t=n();if(!t)return;t.focus();let r=t.getSelection();r&&t.executeEdits(`mobile-toolbar`,[{range:r,text:e}])},[n]),[i,a]=(0,I.useState)(!1),o=(0,I.useRef)(null),s=(0,I.useCallback)(async()=>{try{let e=await navigator.clipboard.readText();e&&r(e)}catch{}},[r]),c=(0,I.useCallback)(()=>{a(!0),requestAnimationFrame(()=>o.current?.focus())},[]),l=(0,I.useCallback)(e=>{e.preventDefault();let t=e.clipboardData.getData(`text/plain`);t&&(a(!1),r(t))},[r]),u=(0,I.useCallback)(()=>{let e=n();e&&(e.focus(),e.trigger(`mobile-toolbar`,`undo`,null))},[n]),d=(0,I.useCallback)(()=>{let e=n();e&&(e.focus(),e.trigger(`mobile-toolbar`,`redo`,null))},[n]),f=(0,I.useCallback)(()=>{let e=n();e&&(e.focus(),e.trigger(`mobile-toolbar`,`tab`,null))},[n]);return t?null:(0,L.jsxs)(`div`,{className:`shrink-0 border-t border-border bg-surface`,children:[!U&&i&&(0,L.jsxs)(`div`,{className:`flex items-center gap-2 px-2 py-1.5 border-b border-border bg-muted/50`,children:[(0,L.jsx)(`textarea`,{ref:o,onPaste:l,placeholder:`Long-press here → Paste`,className:`flex-1 h-8 rounded border border-border bg-background text-foreground text-xs px-2 py-1.5 resize-none focus:outline-none focus:ring-1 focus:ring-primary`}),(0,L.jsx)(`button`,{type:`button`,onClick:()=>a(!1),className:`p-1.5 rounded text-muted-foreground active:bg-muted transition-colors`,children:(0,L.jsx)(_,{size:14})})]}),(0,L.jsxs)(`div`,{className:`flex items-center gap-1 px-2 py-1.5 overflow-x-auto`,children:[(0,L.jsx)(`button`,{type:`button`,onClick:U?s:c,className:Ke,title:`Paste`,children:(0,L.jsx)(Se,{size:14})}),(0,L.jsx)(`button`,{type:`button`,onClick:u,className:Ke,title:`Undo`,children:(0,L.jsx)(ue,{size:14})}),(0,L.jsx)(`button`,{type:`button`,onClick:d,className:Ke,title:`Redo`,children:(0,L.jsx)(F,{size:14})}),(0,L.jsx)(`div`,{className:K}),(0,L.jsx)(`button`,{type:`button`,onClick:f,className:G,children:`Tab`}),(0,L.jsx)(`div`,{className:K}),W.map(e=>(0,L.jsx)(`button`,{type:`button`,onClick:()=>r(e),className:G,children:e},e))]})]})}var Je=(0,I.lazy)(()=>y(()=>import(`./markdown-renderer-CMFkajd7.js`).then(e=>({default:e.MarkdownRenderer})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47]))),Ye=(0,I.lazy)(()=>y(()=>import(`./csv-preview-BEYKn68B.js`).then(e=>({default:e.CsvPreview})),__vite__mapDeps([48,2,6,1,3,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,49,50]))),Xe=(0,I.lazy)(()=>y(()=>import(`./image-preview-fuU4h2nr.js`).then(e=>({default:e.ImagePreview})),__vite__mapDeps([51,3,2,4,52,9,25,28,53]))),Ze=(0,I.lazy)(()=>y(()=>import(`./pdf-preview-B-JAU8JV.js`).then(e=>({default:e.PdfPreview})),__vite__mapDeps([54,2,6,1,3,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,52]))),Qe=(0,I.lazy)(()=>y(()=>import(`./video-preview-BTzstVhM.js`).then(e=>({default:e.VideoPreview})),__vite__mapDeps([55,2,6,1,3,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,52,56,57]))),$e=(0,I.lazy)(()=>y(()=>import(`./audio-preview-B4E5_7TW.js`).then(e=>({default:e.AudioPreview})),__vite__mapDeps([58,2,3,4,8,9,52,28,57]))),et=(0,I.lazy)(()=>y(()=>import(`./docx-preview-Xy7SZ7Vf.js`).then(e=>({default:e.DocxPreview})),__vite__mapDeps([59,2,3,4,52,9,25,28])));function tt(e){return e.split(`.`).pop()?.toLowerCase()??``}function nt(e){return{js:`javascript`,jsx:`javascript`,ts:`typescript`,tsx:`typescript`,py:`python`,html:`html`,css:`css`,scss:`scss`,json:`json`,md:`markdown`,mdx:`markdown`,yaml:`yaml`,yml:`yaml`,sh:`shell`,bash:`shell`,sql:`sql`}[tt(e)]??`plaintext`}var rt=(0,I.memo)(function({metadata:e,tabId:t}){let n=e?.filePath,r=e?.projectName,i=e?.inlineContent,a=e?.inlineLanguage,[s,c]=(0,I.useState)(i??null),[m,ne]=(0,I.useState)(`utf-8`),[re,g]=(0,I.useState)(!0),[_,y]=(0,I.useState)(null),[S,C]=(0,I.useState)(!1),w=(0,I.useRef)(null),T=(0,I.useRef)(``),E=(0,I.useRef)(null),[le,ue]=(0,I.useState)(null),{tabs:de,updateTab:D}=se(fe(e=>({tabs:e.tabs,updateTab:e.updateTab}))),{wordWrap:O,toggleWordWrap:me}=b(fe(e=>({wordWrap:e.wordWrap,toggleWordWrap:e.toggleWordWrap}))),k=b(e=>e.inlineBlame),he=b(e=>e.toggleInlineBlame),A=ke(),j=e?.isUntitled===!0,ge=e?.unsavedContent,[_e,ve]=(0,I.useState)(!1),ye=de.find(e=>e.id===t),M=n?tt(n):``,N=je.has(M),xe=M===`pdf`,Se=M===`docx`,Ce=Ae.has(M),we=Ne.has(M),Te=Me.has(M),De=M===`md`||M===`mdx`,Oe=M===`csv`,P=e?.language,F=a??P??nt(n??``),R=F===`sql`,[Pe,Fe]=(0,I.useState)(`preview`),[Ie,Le]=(0,I.useState)(`table`),{connections:Re,cachedTables:ze,refreshTables:Be,updateConnection:Ve}=pe(),z=n?`ppm:sql-conn:${n}`:t?`ppm:sql-conn:tab:${t}`:null,[B,V]=(0,I.useState)(()=>{if(!z)return null;let e=localStorage.getItem(z);return e?Number(e):null}),H=(0,I.useRef)(null),U=(0,I.useRef)(null),W=(0,I.useMemo)(()=>Re.find(e=>e.id===B)??null,[Re,B]),Ke=i!=null&&(a===`json`||a===`xml`),[G,K]=(0,I.useState)(!1),Je=(0,I.useCallback)(()=>{if(i)if(G)c(i),K(!1);else{let e=i.trimStart();if(a===`json`)try{c(JSON.stringify(JSON.parse(e),null,2)),K(!0)}catch{}else if(a===`xml`){let t=0;c(e.replace(/(>)(<)(\/*)/g,`$1
3
- $2$3`).split(`
4
- `).map(e=>{let n=e.trim();n.startsWith(`</`)&&(t=Math.max(0,t-1));let r=` `.repeat(t)+n;return n.startsWith(`<`)&&!n.startsWith(`</`)&&!n.endsWith(`/>`)&&!n.includes(`</`)&&t++,r}).join(`
5
- `)),K(!0)}}},[i,a,G]),rt=(0,I.useCallback)(e=>{V(e),z&&localStorage.setItem(z,String(e)),Be(e).catch(()=>{})},[z,Be]),q=(0,I.useCallback)(n=>{t&&D(t,{metadata:{...e,language:n}})},[t,e,D]),Y=(0,I.useMemo)(()=>{if(!R||!B)return;let e=(ze.get(B)??[]).map(e=>({name:e.tableName,schema:e.schemaName}));if(e.length!==0)return{tables:e,getColumns:async(e,t)=>v.get(`/api/db/connections/${B}/schema?table=${encodeURIComponent(e)}${t?`&schema=${encodeURIComponent(t)}`:``}`)}},[R,B,ze]);(0,I.useEffect)(()=>{if(!(!H.current||!Y))return U.current?.dispose(),p(),U.current=H.current.languages.registerCompletionItemProvider(`sql`,d(H.current,Y)),()=>{U.current?.dispose()}},[Y]);let ot=se(e=>e.openTab),[st,ct]=(0,I.useState)(null),[lt,ut]=(0,I.useState)(null),[dt,ft]=(0,I.useState)(!1),[pt,mt]=(0,I.useState)(``),ht=(0,I.useCallback)(async e=>{if(W){ft(!0),ut(null),mt(e);try{ct(await v.post(`/api/db/connections/${W.id}/query`,{sql:e}))}catch(e){ut(e.message),ct(null)}finally{ft(!1)}}},[W]),gt=(0,I.useCallback)(()=>{!W||!pt||ot({type:`database`,title:`${W.name} · Query`,projectId:null,closable:!0,metadata:{connectionId:W.id,connectionName:W.name,dbType:W.type,initialSql:pt}})},[W,ot,pt]),_t=(0,I.useCallback)(()=>{if(!E.current||!W)return;let e=E.current,t=e.getSelection();ht(t&&!t.isEmpty()?e.getModel()?.getValueInRange(t)??e.getValue():e.getValue())},[W,ht]),vt=typeof window<`u`&&`ontouchstart`in window,yt=(0,I.useRef)(null),[bt,xt]=(0,I.useState)(null);(0,I.useEffect)(()=>{if(!vt)return;let e=window.visualViewport;if(!e)return;let t=()=>{let t=yt.current;if(!t)return;let n=t.getBoundingClientRect().top;xt(e.height-Math.max(0,n))};return e.addEventListener(`resize`,t),e.addEventListener(`scroll`,t),()=>{e.removeEventListener(`resize`,t),e.removeEventListener(`scroll`,t)}},[vt]),(0,I.useEffect)(()=>be(yt.current,()=>E.current?.layout()),[re,_]);let X=(0,I.useRef)([]),St=(0,I.useRef)(ht);St.current=ht,(0,I.useEffect)(()=>()=>{X.current.forEach(e=>e.dispose()),X.current=[]},[]),(0,I.useEffect)(()=>{Te&&t&&D(t,{type:`sqlite`})},[Te,t,D]);let Z=n?/^(\/|[A-Za-z]:[/\\])/.test(n):!1;(0,I.useEffect)(()=>{if(i!=null){g(!1);return}if(j){c(ge??``),T.current=ge??``,g(!1),ge&&C(!0);return}if(!n||!Z&&!r)return;if(N||xe||Se||Ce||we){g(!1);return}g(!0),y(null);let e=Z?`/api/fs/read?path=${encodeURIComponent(n)}`:`${ae(r)}/files/read?path=${encodeURIComponent(n)}`;return v.get(e).then(e=>{c(e.content),e.encoding&&ne(e.encoding),T.current=e.content,g(!1)}).catch(e=>{y(e instanceof Error?e.message:`Failed to load file`),g(!1)}),()=>{w.current&&clearTimeout(w.current)}},[n,r,N,xe,Se,Z,j]);let[Ct,wt]=(0,I.useState)(!1),Tt=(0,I.useCallback)(()=>{if(!n||i!=null||j||!Z&&!r)return;let e=Z?`/api/fs/read?path=${encodeURIComponent(n)}`:`${ae(r)}/files/read?path=${encodeURIComponent(n)}`;wt(!0),v.get(e).then(e=>{c(e.content),T.current=e.content,e.encoding&&ne(e.encoding),C(!1),y(null)}).catch(e=>y(e instanceof Error?e.message:`Failed to reload file`)).finally(()=>wt(!1))},[n,r,Z,i,j]),Et=(0,I.useRef)(S);Et.current=S,(0,I.useEffect)(()=>{if(!n||!r||i!=null||j)return;let e=e=>{let t=e.detail;if(t.projectName!==r||t.path!==n||Et.current)return;let i=Z?`/api/fs/read?path=${encodeURIComponent(n)}`:`${ae(r)}/files/read?path=${encodeURIComponent(n)}`;v.get(i).then(e=>{e.content!==T.current&&(c(e.content),T.current=e.content,e.encoding&&ne(e.encoding))}).catch(()=>{})};return window.addEventListener(`file:changed`,e),()=>window.removeEventListener(`file:changed`,e)},[n,r,Z,i,j]),(0,I.useEffect)(()=>{if(!ye||i!=null)return;let t=j?`Untitled-${e?.untitledNumber??1}`:n?x(n):`Untitled`,r=S?`${t} \u25CF`:t;ye.title!==r&&D(ye.id,{title:r})},[S]);let Dt=!j&&i==null&&!!n&&!!r,Ot=ie({editor:le?.editor??null,monaco:le?.monaco??null,projectName:r,filePath:Dt?n:void 0,enabled:k&&Dt}),kt=(0,I.useCallback)(async e=>{if(n&&!(!Z&&!r))try{Z?await v.put(`/api/fs/write`,{path:n,content:e}):await v.put(`${ae(r)}/files/write`,{path:n,content:e}),C(!1),Ot.refresh()}catch{}},[n,r,Z,Ot.refresh]);function At(n){let r=n??``;c(r),T.current=r,C(!0),w.current&&clearTimeout(w.current),j?w.current=setTimeout(()=>{t&&D(t,{metadata:{...e,unsavedContent:T.current}})},2e3):w.current=setTimeout(()=>kt(T.current),1e3)}let jt=(0,I.useCallback)(async(e,n)=>{try{if(w.current&&clearTimeout(w.current),await v.put(`/api/fs/write`,{path:e,content:n}),t){let{closeTab:n,openTab:r}=oe.getState();n(t),r({type:`editor`,title:x(e),projectId:null,metadata:{filePath:e},closable:!0})}C(!1),ve(!1)}catch{}},[t]),Q=e?.lineNumber,$=e?.endLine,Mt=e?.revealAt,Nt=(0,I.useCallback)(()=>{let e=E.current;if(!(!e||!Q||Q<=0)){if(e.revealLineInCenter(Q),e.setPosition({lineNumber:Q,column:1}),$&&$>=Q){let t=e.getModel(),n=t?.getLineCount()??Q,r=Math.min($,n),i=t?.getLineMaxColumn(r)??1;e.setSelection({startLineNumber:Q,startColumn:1,endLineNumber:r,endColumn:i})}e.focus()}},[Q,$]);(0,I.useEffect)(()=>{Mt!=null&&Nt()},[Mt,Nt]);let Pt=(0,I.useCallback)((e,t)=>{if(E.current=e,H.current=t,ue({editor:e,monaco:t}),Q&&Q>0&&setTimeout(()=>Nt(),100),j&&e.addCommand(t.KeyMod.CtrlCmd|t.KeyCode.KeyS,()=>ve(!0)),e.addCommand(t.KeyMod.Alt|t.KeyCode.KeyZ,()=>b.getState().toggleWordWrap()),e.addCommand(t.KeyMod.Alt|t.KeyCode.KeyB,()=>b.getState().toggleInlineBlame()),t.languages.typescript.typescriptDefaults.setDiagnosticsOptions({noSemanticValidation:!0,noSyntaxValidation:!0,noSuggestionDiagnostics:!0}),t.languages.typescript.javascriptDefaults.setDiagnosticsOptions({noSemanticValidation:!0,noSyntaxValidation:!0,noSuggestionDiagnostics:!0}),Y&&(U.current?.dispose(),U.current=t.languages.registerCompletionItemProvider(`sql`,d(t,Y))),R){e.addAction({id:`run-sql-at-cursor`,label:`Run Statement at Cursor`,keybindings:[t.KeyMod.CtrlCmd|t.KeyCode.Enter],run:e=>{let t=e.getPosition();if(!t)return;let n=u(e.getValue(),t.lineNumber);n&&St.current(n)}}),X.current.forEach(e=>e.dispose()),X.current=[];let n=e.getModel(),r=e.addCommand(0,(e,t)=>{t&&St.current(t)});if(r&&n){let e=t.languages.registerCodeLensProvider(`sql`,{provideCodeLenses:e=>{if(e!==n)return{lenses:[],dispose:()=>{}};let t=[],i=(e,n,i=`▷ Run`)=>{let a=n.trim();a&&t.push({range:{startLineNumber:e,startColumn:1,endLineNumber:e,endColumn:1},command:{id:r,title:i,arguments:[a]}})},a=/^(BEGIN|COMMIT|ROLLBACK|END)(;|\s|$)/i,o=-1,s=[];for(let{sql:t,startLine:n}of f(e.getValue())){let e=/^BEGIN(;|\s|$)/i.test(t),r=/^(COMMIT|ROLLBACK|END)(;|\s|$)/i.test(t);o===-1&&e?(o=n,s=[t]):o>-1?(s.push(t),!r&&!a.test(t)&&i(n,t),r&&(i(o,s.join(`
6
- `),`▷ Run Transaction`),o=-1,s=[])):i(n,t)}return o>-1&&s.length>1&&i(o,s.join(`
7
- `),`▷ Run Transaction`),{lenses:t,dispose:()=>{}}}});X.current.push(e);let i=t.languages.registerFoldingRangeProvider(`sql`,{provideFoldingRanges:e=>{if(e!==n)return[];let r=[],i=e.getLineCount(),a=[];for(let n=1;n<=i;n++){let i=e.getLineContent(n).trim();if(/^BEGIN(;|\s|$)/i.test(i))a.push(n);else if(/^(COMMIT|ROLLBACK|END)(;|\s|$)/i.test(i)&&a.length>0){let e=a.pop();r.push({start:e,end:n,kind:t.languages.FoldingRangeKind.Region})}}return r}});X.current.push(i)}}},[Y,R]);if(!i&&!j&&(!n||!Z&&!r))return(0,L.jsx)(`div`,{className:`flex items-center justify-center h-full text-text-secondary text-sm`,children:`No file selected.`});if(re)return(0,L.jsxs)(`div`,{className:`flex items-center justify-center h-full gap-2 text-text-secondary`,children:[(0,L.jsx)(h,{className:`size-5 animate-spin`}),(0,L.jsx)(`span`,{className:`text-sm`,children:`Loading file...`})]});if(_)return(0,L.jsx)(`div`,{className:`flex items-center justify-center h-full text-error text-sm`,children:_});if(N)return(0,L.jsx)(I.Suspense,{fallback:(0,L.jsx)(J,{}),children:(0,L.jsx)(Xe,{filePath:n,projectName:r})});if(xe)return(0,L.jsx)(I.Suspense,{fallback:(0,L.jsx)(J,{}),children:(0,L.jsx)(Ze,{filePath:n,projectName:r})});if(Se)return(0,L.jsx)(I.Suspense,{fallback:(0,L.jsx)(J,{}),children:(0,L.jsx)(et,{filePath:n,projectName:r})});if(Ce)return(0,L.jsx)(I.Suspense,{fallback:(0,L.jsx)(J,{}),children:(0,L.jsx)(Qe,{filePath:n,projectName:r})});if(we)return(0,L.jsx)(I.Suspense,{fallback:(0,L.jsx)(J,{}),children:(0,L.jsx)($e,{filePath:n,projectName:r})});if(m===`base64`)return(0,L.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-3 text-text-secondary`,children:[(0,L.jsx)(l,{className:`size-10 text-text-subtle`}),(0,L.jsx)(`p`,{className:`text-sm`,children:`This file is a binary format and cannot be displayed.`}),(0,L.jsx)(`p`,{className:`text-xs text-text-subtle`,children:n})]});let Ft=R?(0,L.jsxs)(`div`,{className:`shrink-0 flex items-center gap-1 px-2 border-l border-border`,children:[(0,L.jsx)(o,{className:`size-3 text-muted-foreground`}),(0,L.jsxs)(`select`,{value:B??``,onChange:e=>{let t=Number(e.target.value);t&&rt(t)},className:`h-5 text-[10px] bg-transparent border border-border rounded px-1 text-foreground outline-none max-w-[140px]`,title:`Select connection for autocomplete`,children:[(0,L.jsx)(`option`,{value:``,children:`Connection…`}),Re.map(e=>(0,L.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,L.jsx)(`button`,{type:`button`,onClick:_t,disabled:!W,className:`p-0.5 rounded text-muted-foreground hover:text-primary disabled:opacity-30 transition-colors`,title:`Run SQL`,children:(0,L.jsx)(ce,{className:`size-3.5`})}),W&&(0,L.jsx)(`button`,{type:`button`,onClick:()=>Ve(W.id,{readonly:W.readonly?0:1}),className:`flex items-center gap-0.5 px-1 py-0.5 rounded text-[10px] transition-colors ${W.readonly?`text-muted-foreground hover:text-foreground`:`bg-destructive/15 text-destructive`}`,title:W.readonly?`Readonly — click to allow writes`:`WRITE mode — click to enable readonly`,children:W.readonly?(0,L.jsx)(ee,{className:`size-3`}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(te,{className:`size-3`}),(0,L.jsx)(`span`,{className:`font-medium`,children:`WRITE`})]})})]}):null;return(0,L.jsxs)(`div`,{ref:yt,className:`flex flex-col h-full w-full overflow-hidden`,style:bt?{height:`${bt}px`,maxHeight:`${bt}px`}:void 0,children:[i!=null&&Ke&&(0,L.jsx)(`div`,{className:`flex items-center h-7 border-b border-border bg-background shrink-0 px-2 gap-2`,children:(0,L.jsx)(`button`,{type:`button`,onClick:Je,className:`text-[10px] px-2 py-0.5 rounded border border-border hover:bg-muted transition-colors text-foreground`,children:G?`Raw`:`Beautify`})}),n&&r&&t&&(0,L.jsxs)(`div`,{className:`hidden md:flex items-center h-7 border-b border-border bg-background shrink-0`,children:[(0,L.jsx)(He,{filePath:n,projectName:r,tabId:t,className:`flex items-center flex-1 min-w-0 overflow-x-auto scrollbar-none px-2 gap-0.5`}),(0,L.jsx)(We,{value:F,onChange:q}),Ft,(0,L.jsx)(Ue,{ext:M,mdMode:Pe,onMdModeChange:Fe,csvMode:Ie,onCsvModeChange:Le,wordWrap:O,onToggleWordWrap:me,inlineBlame:k,onToggleInlineBlame:Dt?he:void 0,blameStale:Ot.stale,onRefresh:Tt,refreshing:Ct,filePath:n,projectName:r,className:`shrink-0 flex items-center gap-1 px-2`})]}),i==null&&t&&(j||n&&!r)&&(0,L.jsxs)(`div`,{className:`hidden md:flex items-center h-7 border-b border-border bg-background shrink-0 px-2`,children:[(0,L.jsx)(`span`,{className:`text-xs text-muted-foreground truncate flex-1`,children:j?`Untitled-${e?.untitledNumber??1}`:n?x(n):`Untitled`}),(0,L.jsx)(We,{value:F,onChange:q}),Ft]}),Oe&&Ie===`table`?(0,L.jsx)(I.Suspense,{fallback:(0,L.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,L.jsx)(h,{className:`size-5 animate-spin text-text-subtle`})}),children:(0,L.jsx)(Ye,{content:s??``,onContentChange:At,wordWrap:O})}):De&&Pe===`preview`?(0,L.jsx)(at,{content:s??``}):(0,L.jsx)(`div`,{className:`flex-1 overflow-hidden min-h-0`,children:(0,L.jsx)(Ee,{height:`100%`,language:F,value:s??``,onChange:i==null?At:void 0,onMount:Pt,theme:A,options:{fontSize:13,fontFamily:`Menlo, Monaco, Consolas, monospace`,wordWrap:O?`on`:`off`,minimap:{enabled:!1},scrollBeyondLastLine:!1,automaticLayout:!0,lineNumbers:`on`,folding:!0,bracketPairColorization:{enabled:!0},readOnly:i!=null},loading:(0,L.jsx)(h,{className:`size-5 animate-spin text-text-subtle`})},F)}),R&&(st||lt||dt)&&(0,L.jsx)(it,{result:st,error:lt,loading:dt,connName:W?.name,onClose:()=>{ct(null),ut(null),ft(!1)},onOpenInTab:gt}),vt&&(0,L.jsx)(qe,{editorRef:E,readOnly:i!=null}),_e&&(0,L.jsx)(Ge,{open:_e,defaultName:`Untitled-${e?.untitledNumber??1}`,content:T.current,onSave:jt,onCancel:()=>ve(!1)})]})}),q=()=>{};function it({result:e,error:t,loading:n,connName:r,onClose:i,onOpenInTab:a}){let s=(0,I.useMemo)(()=>e?.changeType===`select`&&e.rows.length>0?{columns:e.columns,rows:e.rows,total:e.rows.length,limit:e.rows.length}:null,[e]),c=(0,I.useMemo)(()=>(e?.columns??[]).map(e=>({name:e,type:`text`,nullable:!0,pk:!1,defaultValue:null})),[e?.columns]),[l,u]=(0,I.useState)(250),d=(0,I.useCallback)(e=>{e.preventDefault();let t=e.clientY,n=l,r=e.currentTarget.ownerDocument,i=e=>u(Math.max(80,n+(t-e.clientY))),a=()=>{r.removeEventListener(`mousemove`,i),r.removeEventListener(`mouseup`,a)};r.addEventListener(`mousemove`,i),r.addEventListener(`mouseup`,a)},[l]);return(0,L.jsxs)(`div`,{className:`shrink-0 border-t border-border flex flex-col`,style:{height:l},children:[(0,L.jsx)(`div`,{onMouseDown:d,className:`shrink-0 h-1.5 cursor-row-resize bg-border/50 hover:bg-primary/30 flex items-center justify-center transition-colors`,children:(0,L.jsx)(xe,{className:`size-3 text-muted-foreground/50`})}),(0,L.jsxs)(`div`,{className:`flex items-center gap-2 px-2 py-1 bg-muted/50 border-b border-border shrink-0`,children:[(0,L.jsx)(o,{className:`size-3 text-muted-foreground`}),(0,L.jsxs)(`span`,{className:`text-xs font-medium text-foreground truncate flex-1`,children:[r?`${r} · Results`:`Query Results`,e?.executionTimeMs!=null&&(0,L.jsxs)(`span`,{className:`text-muted-foreground ml-1.5 font-normal`,children:[e.executionTimeMs,`ms`]})]}),(0,L.jsxs)(`button`,{type:`button`,onClick:a,title:`Open in DB Viewer tab`,className:`flex items-center gap-1 px-1.5 py-0.5 rounded text-[10px] text-muted-foreground hover:text-foreground hover:bg-muted transition-colors`,children:[(0,L.jsx)(E,{className:`size-3`}),(0,L.jsx)(`span`,{className:`hidden sm:inline`,children:`Open in Tab`})]}),(0,L.jsx)(`button`,{type:`button`,onClick:i,title:`Close results`,className:`p-0.5 rounded text-muted-foreground hover:text-foreground transition-colors`,children:(0,L.jsx)(_,{className:`size-3`})})]}),(0,L.jsxs)(`div`,{className:`flex-1 overflow-hidden min-h-0`,children:[n&&(0,L.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,L.jsx)(h,{className:`size-4 animate-spin text-muted-foreground`})}),t&&(0,L.jsx)(`div`,{className:`px-3 py-2 text-xs text-destructive bg-destructive/5`,children:t}),e?.changeType===`modify`&&(0,L.jsxs)(`div`,{className:`px-3 py-2 text-xs text-success`,children:[e.rowsAffected,` row(s) affected`]}),s&&(0,L.jsx)(m,{columns:s.columns,rows:s.rows,total:s.total,limit:s.limit,schema:c,loading:!1,page:1,onPageChange:q,onCellUpdate:q,readOnly:!0,orderBy:null,orderDir:`ASC`,onToggleSort:q,connectionName:r}),e?.changeType===`select`&&e.rows.length===0&&(0,L.jsx)(`div`,{className:`px-3 py-2 text-xs text-muted-foreground`,children:`No results`})]})]})}function J(){return(0,L.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,L.jsx)(h,{className:`size-5 animate-spin text-text-subtle`})})}function at({content:e}){return(0,L.jsx)(I.Suspense,{fallback:(0,L.jsx)(`div`,{className:`animate-pulse h-4 bg-muted rounded m-4`}),children:(0,L.jsx)(Je,{content:e,className:`flex-1 overflow-auto p-4`})})}export{rt as CodeEditor};
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-FhOqtrmT.js";import{S as t}from"./vendor-markdown-Ls5AcU91.js";import{ft as n}from"./vendor-ui-CaeeFO0B.js";import{B as r,G as i,R as a,c as o,o as s,s as c}from"./data-grid-types-DeY60CLU.js";import{t as l}from"./dist-B0J2eYBz.js";var u=e(n(),1),d=e(t(),1),f=()=>e=>e.targetX,p=()=>e=>e.targetY,m=()=>e=>e.targetWidth,h=()=>e=>e.targetHeight,g=()=>e=>e.targetY+10,_=()=>e=>Math.max(0,(e.targetHeight-28)/2),v=l(`div`)({name:`DataGridOverlayEditorStyle`,class:`gdg-d19meir1`,propsAsIs:!1,vars:{"d19meir1-0":[p(),`px`],"d19meir1-1":[f(),`px`],"d19meir1-2":[m(),`px`],"d19meir1-3":[h(),`px`],"d19meir1-4":[g(),`px`],"d19meir1-5":[_(),`px`]}});function y(){let[e,t]=d.useState();return[e??void 0,t]}function b(){let[e,t]=y(),[n,r]=d.useState(0),[i,a]=d.useState(!0);return d.useLayoutEffect(()=>{if(e===void 0||!(`IntersectionObserver`in window))return;let t=new IntersectionObserver(e=>{e.length!==0&&a(e[0].isIntersecting)},{threshold:1});return t.observe(e),()=>t.disconnect()},[e]),d.useEffect(()=>{if(i||e===void 0)return;let t,n=()=>{let{right:i}=e.getBoundingClientRect();r(e=>Math.min(e+window.innerWidth-i-10,0)),t=requestAnimationFrame(n)};return t=requestAnimationFrame(n),()=>{t!==void 0&&cancelAnimationFrame(t)}},[e,i]),{ref:t,style:d.useMemo(()=>({transform:`translateX(${n}px)`}),[n])}}var x=e=>{let{target:t,content:n,onFinishEditing:l,forceEditMode:f,initialValue:p,imageEditorOverride:m,markdownDivCreateNode:h,highlight:g,className:_,theme:y,id:x,cell:S,bloom:C,validateCell:w,getCellRenderer:T,provideEditor:E,isOutsideClick:D}=e,[O,k]=d.useState(f?n:void 0),A=d.useRef(O??n);A.current=O??n;let[j,M]=d.useState(()=>w===void 0?!0:!(s(n)&&w?.(S,n,A.current)===!1)),N=d.useCallback((e,t)=>{l(j?e:void 0,t)},[j,l]),P=d.useCallback(e=>{if(w!==void 0&&e!==void 0&&s(e)){let t=w(S,e,A.current);t===!1?M(!1):(typeof t==`object`&&(e=t),M(!0))}k(e)},[S,w]),F=d.useRef(!1),I=d.useRef(void 0),L=d.useCallback(()=>{N(O,[0,0]),F.current=!0},[O,N]),R=d.useCallback((e,t)=>{N(e,t??I.current??[0,0]),F.current=!0},[N]),z=d.useCallback(async e=>{let t=!1;e.key===`Escape`?(e.stopPropagation(),e.preventDefault(),I.current=[0,0]):e.key===`Enter`&&!e.shiftKey?(e.stopPropagation(),e.preventDefault(),I.current=[0,1],t=!0):e.key===`Tab`&&(e.stopPropagation(),e.preventDefault(),I.current=[e.shiftKey?-1:1,0],t=!0),window.setTimeout(()=>{!F.current&&I.current!==void 0&&(N(t?O:void 0,I.current),F.current=!0)},0)},[N,O]),B=O??n,[V,H]=d.useMemo(()=>{if(c(n))return[];let e=E?.(n);return e===void 0?[T(n)?.provideEditor?.(n),!1]:[e,!1]},[n,T,E]),{ref:U,style:W}=b(),G=!0,K,q=!0,J;if(V!==void 0){G=V.disablePadding!==!0,q=V.disableStyling!==!0;let e=o(V);e&&(J=V.styleOverride);let n=e?V.editor:V;K=d.createElement(n,{isHighlighted:g,onChange:P,value:B,initialValue:p,onFinishedEditing:R,validatedSelection:s(B)?B.selectionRange:void 0,forceEditMode:f,target:t,imageEditorOverride:m,markdownDivCreateNode:h,isValid:j,theme:y})}J={...J,...W};let Y=document.getElementById(`portal`);if(Y===null)return console.error('Cannot open Data Grid overlay editor, because portal not found. Please add `<div id="portal" />` as the last child of your `<body>`.'),null;let X=q?`gdg-style`:`gdg-unstyle`;j||(X+=` gdg-invalid`),G&&(X+=` gdg-pad`);let Z=C?.[0]??1,Q=C?.[1]??1;return(0,u.createPortal)(d.createElement(a.Provider,{value:y},d.createElement(i,{style:r(y),className:_,onClickOutside:L,isOutsideClick:D},d.createElement(v,{ref:U,id:x,className:X,style:J,as:H===!0?`label`:void 0,targetX:t.x-Z,targetY:t.y-Q,targetWidth:t.width+Z*2,targetHeight:t.height+Q*2},d.createElement(`div`,{className:`gdg-clip-region`,onKeyDown:z},K)))),Y)};export{x as default};
@@ -1 +0,0 @@
1
- import{o as e,t}from"./rolldown-runtime-FhOqtrmT.js";import{S as n}from"./vendor-markdown-Ls5AcU91.js";var r=e(n(),1),i=class extends r.PureComponent{wrapperRef=r.createRef();componentDidMount(){document.addEventListener(`touchend`,this.clickOutside,!0),document.addEventListener(`mousedown`,this.clickOutside,!0),document.addEventListener(`contextmenu`,this.clickOutside,!0)}componentWillUnmount(){document.removeEventListener(`touchend`,this.clickOutside,!0),document.removeEventListener(`mousedown`,this.clickOutside,!0),document.removeEventListener(`contextmenu`,this.clickOutside,!0)}clickOutside=e=>{if(!(this.props.isOutsideClick&&!this.props.isOutsideClick(e))&&this.wrapperRef.current!==null&&!this.wrapperRef.current.contains(e.target)){let t=e.target;for(;t!==null;){if(t.classList.contains(`click-outside-ignore`))return;t=t.parentElement}this.props.onClickOutside()}};render(){let{onClickOutside:e,isOutsideClick:t,...n}=this.props;return r.createElement(`div`,{...n,ref:this.wrapperRef},this.props.children)}},a={},o=null;function s(){let e=document.createElement(`div`);return e.style.opacity=`0`,e.style.pointerEvents=`none`,e.style.position=`fixed`,document.body.append(e),e}function c(e){let t=e.toLowerCase().trim();if(a[t]!==void 0)return a[t];o||=s(),o.style.color=`#000`,o.style.color=t;let n=getComputedStyle(o).color;o.style.color=`#fff`,o.style.color=t;let r=getComputedStyle(o).color;if(r!==n)return[0,0,0,1];let i=r.replace(/[^\d.,]/g,``).split(`,`).map(Number.parseFloat);return i.length<4&&i.push(1),i=i.map(e=>Number.isNaN(e)?0:e),a[t]=i,i}function l(e,t){let[n,r,i]=c(e);return`rgba(${n}, ${r}, ${i}, ${t})`}var u=new Map;function d(e,t){let n=`${e}-${t}`,r=u.get(n);if(r!==void 0)return r;let i=f(e,t);return u.set(n,i),i}function f(e,t){if(t===void 0)return e;let[n,r,i,a]=c(e);if(a===1)return e;let[o,s,l,u]=c(t),d=a+u*(1-a);return`rgba(${(a*n+u*o*(1-a))/d}, ${(a*r+u*s*(1-a))/d}, ${(a*i+u*l*(1-a))/d}, ${d})`}function p(e){return{"--gdg-accent-color":e.accentColor,"--gdg-accent-fg":e.accentFg,"--gdg-accent-light":e.accentLight,"--gdg-text-dark":e.textDark,"--gdg-text-medium":e.textMedium,"--gdg-text-light":e.textLight,"--gdg-text-bubble":e.textBubble,"--gdg-bg-icon-header":e.bgIconHeader,"--gdg-fg-icon-header":e.fgIconHeader,"--gdg-text-header":e.textHeader,"--gdg-text-group-header":e.textGroupHeader??e.textHeader,"--gdg-text-header-selected":e.textHeaderSelected,"--gdg-bg-cell":e.bgCell,"--gdg-bg-cell-medium":e.bgCellMedium,"--gdg-bg-header":e.bgHeader,"--gdg-bg-header-has-focus":e.bgHeaderHasFocus,"--gdg-bg-header-hovered":e.bgHeaderHovered,"--gdg-bg-bubble":e.bgBubble,"--gdg-bg-bubble-selected":e.bgBubbleSelected,"--gdg-bg-search-result":e.bgSearchResult,"--gdg-border-color":e.borderColor,"--gdg-horizontal-border-color":e.horizontalBorderColor??e.borderColor,"--gdg-drilldown-border":e.drilldownBorder,"--gdg-link-color":e.linkColor,"--gdg-cell-horizontal-padding":`${e.cellHorizontalPadding}px`,"--gdg-cell-vertical-padding":`${e.cellVerticalPadding}px`,"--gdg-header-font-style":e.headerFontStyle,"--gdg-base-font-style":e.baseFontStyle,"--gdg-marker-font-style":e.markerFontStyle,"--gdg-font-family":e.fontFamily,"--gdg-editor-font-size":e.editorFontSize,...e.resizeIndicatorColor===void 0?{}:{"--gdg-resize-indicator-color":e.resizeIndicatorColor},...e.headerBottomBorderColor===void 0?{}:{"--gdg-header-bottom-border-color":e.headerBottomBorderColor},...e.roundingRadius===void 0?{}:{"--gdg-rounding-radius":`${e.roundingRadius}px`}}}var m={accentColor:`#4F5DFF`,accentFg:`#FFFFFF`,accentLight:`rgba(62, 116, 253, 0.1)`,textDark:`#313139`,textMedium:`#737383`,textLight:`#B2B2C0`,textBubble:`#313139`,bgIconHeader:`#737383`,fgIconHeader:`#FFFFFF`,textHeader:`#313139`,textGroupHeader:`#313139BB`,textHeaderSelected:`#FFFFFF`,bgCell:`#FFFFFF`,bgCellMedium:`#FAFAFB`,bgHeader:`#F7F7F8`,bgHeaderHasFocus:`#E9E9EB`,bgHeaderHovered:`#EFEFF1`,bgBubble:`#EDEDF3`,bgBubbleSelected:`#FFFFFF`,bgSearchResult:`#fff9e3`,borderColor:`rgba(115, 116, 131, 0.16)`,drilldownBorder:`rgba(0, 0, 0, 0)`,linkColor:`#353fb5`,cellHorizontalPadding:8,cellVerticalPadding:3,headerIconSize:18,headerFontStyle:`600 13px`,baseFontStyle:`13px`,markerFontStyle:`9px`,fontFamily:`Inter, Roboto, -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Ubuntu, noto, arial, sans-serif`,editorFontSize:`13px`,lineHeight:1.4};function ee(){return m}var te=r.createContext(m);function ne(e,...t){let n={...e};for(let e of t)if(e!==void 0)for(let t in e)e.hasOwnProperty(t)&&(t===`bgCell`?n[t]=f(e[t],n[t]):n[t]=e[t]);return(n.headerFontFull===void 0||e.fontFamily!==n.fontFamily||e.headerFontStyle!==n.headerFontStyle)&&(n.headerFontFull=`${n.headerFontStyle} ${n.fontFamily}`),(n.baseFontFull===void 0||e.fontFamily!==n.fontFamily||e.baseFontStyle!==n.baseFontStyle)&&(n.baseFontFull=`${n.baseFontStyle} ${n.fontFamily}`),(n.markerFontFull===void 0||e.fontFamily!==n.fontFamily||e.markerFontStyle!==n.markerFontStyle)&&(n.markerFontFull=`${n.markerFontStyle} ${n.fontFamily}`),n}function h(e=`This should not happen`){throw Error(e)}function g(e,t=`Assertion failed`){if(!e)return h(t)}function _(e,t){return h(t??`Hell froze over`)}function re(e,t){try{return e()}catch{return t}}var v=Object.prototype.hasOwnProperty;function y(e,t){let n,r;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((r=e.length)===t.length)for(;r--&&y(e[r],t[r]););return r===-1}if(!n||typeof e==`object`){for(n in r=0,e)if(v.call(e,n)&&++r&&!v.call(t,n)||!(n in t)||!y(e[n],t[n]))return!1;return Object.keys(t).length===r}}return e!==e&&t!==t}var ie=t(((e,t)=>{var n=Object.prototype.hasOwnProperty;function r(e,t){return e!=null&&n.call(e,t)}t.exports=r})),b=t(((e,t)=>{t.exports=Array.isArray})),x=t(((e,t)=>{t.exports=typeof global==`object`&&global&&global.Object===Object&&global})),S=t(((e,t)=>{var n=x(),r=typeof self==`object`&&self&&self.Object===Object&&self;t.exports=n||r||Function(`return this`)()})),C=t(((e,t)=>{t.exports=S().Symbol})),ae=t(((e,t)=>{var n=C(),r=Object.prototype,i=r.hasOwnProperty,a=r.toString,o=n?n.toStringTag:void 0;function s(e){var t=i.call(e,o),n=e[o];try{e[o]=void 0;var r=!0}catch{}var s=a.call(e);return r&&(t?e[o]=n:delete e[o]),s}t.exports=s})),oe=t(((e,t)=>{var n=Object.prototype.toString;function r(e){return n.call(e)}t.exports=r})),w=t(((e,t)=>{var n=C(),r=ae(),i=oe(),a=`[object Null]`,o=`[object Undefined]`,s=n?n.toStringTag:void 0;function c(e){return e==null?e===void 0?o:a:s&&s in Object(e)?r(e):i(e)}t.exports=c})),T=t(((e,t)=>{function n(e){return typeof e==`object`&&!!e}t.exports=n})),E=t(((e,t)=>{var n=w(),r=T(),i=`[object Symbol]`;function a(e){return typeof e==`symbol`||r(e)&&n(e)==i}t.exports=a})),D=t(((e,t)=>{var n=b(),r=E(),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;function o(e,t){if(n(e))return!1;var o=typeof e;return o==`number`||o==`symbol`||o==`boolean`||e==null||r(e)?!0:a.test(e)||!i.test(e)||t!=null&&e in Object(t)}t.exports=o})),O=t(((e,t)=>{function n(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}t.exports=n})),k=t(((e,t)=>{var n=w(),r=O(),i=`[object AsyncFunction]`,a=`[object Function]`,o=`[object GeneratorFunction]`,s=`[object Proxy]`;function c(e){if(!r(e))return!1;var t=n(e);return t==a||t==o||t==i||t==s}t.exports=c})),A=t(((e,t)=>{t.exports=S()[`__core-js_shared__`]})),se=t(((e,t)=>{var n=A(),r=function(){var e=/[^.]+$/.exec(n&&n.keys&&n.keys.IE_PROTO||``);return e?`Symbol(src)_1.`+e:``}();function i(e){return!!r&&r in e}t.exports=i})),j=t(((e,t)=>{var n=Function.prototype.toString;function r(e){if(e!=null){try{return n.call(e)}catch{}try{return e+``}catch{}}return``}t.exports=r})),ce=t(((e,t)=>{var n=k(),r=se(),i=O(),a=j(),o=/[\\^$.*+?()[\]{}|]/g,s=/^\[object .+?Constructor\]$/,c=Function.prototype,l=Object.prototype,u=c.toString,d=l.hasOwnProperty,f=RegExp(`^`+u.call(d).replace(o,`\\$&`).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,`$1.*?`)+`$`);function p(e){return!i(e)||r(e)?!1:(n(e)?f:s).test(a(e))}t.exports=p})),le=t(((e,t)=>{function n(e,t){return e?.[t]}t.exports=n})),M=t(((e,t)=>{var n=ce(),r=le();function i(e,t){var i=r(e,t);return n(i)?i:void 0}t.exports=i})),N=t(((e,t)=>{t.exports=M()(Object,`create`)})),ue=t(((e,t)=>{var n=N();function r(){this.__data__=n?n(null):{},this.size=0}t.exports=r})),de=t(((e,t)=>{function n(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}t.exports=n})),fe=t(((e,t)=>{var n=N(),r=`__lodash_hash_undefined__`,i=Object.prototype.hasOwnProperty;function a(e){var t=this.__data__;if(n){var a=t[e];return a===r?void 0:a}return i.call(t,e)?t[e]:void 0}t.exports=a})),pe=t(((e,t)=>{var n=N(),r=Object.prototype.hasOwnProperty;function i(e){var t=this.__data__;return n?t[e]!==void 0:r.call(t,e)}t.exports=i})),me=t(((e,t)=>{var n=N(),r=`__lodash_hash_undefined__`;function i(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=n&&t===void 0?r:t,this}t.exports=i})),he=t(((e,t)=>{var n=ue(),r=de(),i=fe(),a=pe(),o=me();function s(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=n,s.prototype.delete=r,s.prototype.get=i,s.prototype.has=a,s.prototype.set=o,t.exports=s})),P=t(((e,t)=>{function n(){this.__data__=[],this.size=0}t.exports=n})),F=t(((e,t)=>{function n(e,t){return e===t||e!==e&&t!==t}t.exports=n})),I=t(((e,t)=>{var n=F();function r(e,t){for(var r=e.length;r--;)if(n(e[r][0],t))return r;return-1}t.exports=r})),L=t(((e,t)=>{var n=I(),r=Array.prototype.splice;function i(e){var t=this.__data__,i=n(t,e);return i<0?!1:(i==t.length-1?t.pop():r.call(t,i,1),--this.size,!0)}t.exports=i})),R=t(((e,t)=>{var n=I();function r(e){var t=this.__data__,r=n(t,e);return r<0?void 0:t[r][1]}t.exports=r})),ge=t(((e,t)=>{var n=I();function r(e){return n(this.__data__,e)>-1}t.exports=r})),_e=t(((e,t)=>{var n=I();function r(e,t){var r=this.__data__,i=n(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}t.exports=r})),z=t(((e,t)=>{var n=P(),r=L(),i=R(),a=ge(),o=_e();function s(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=n,s.prototype.delete=r,s.prototype.get=i,s.prototype.has=a,s.prototype.set=o,t.exports=s})),B=t(((e,t)=>{t.exports=M()(S(),`Map`)})),ve=t(((e,t)=>{var n=he(),r=z(),i=B();function a(){this.size=0,this.__data__={hash:new n,map:new(i||r),string:new n}}t.exports=a})),ye=t(((e,t)=>{function n(e){var t=typeof e;return t==`string`||t==`number`||t==`symbol`||t==`boolean`?e!==`__proto__`:e===null}t.exports=n})),V=t(((e,t)=>{var n=ye();function r(e,t){var r=e.__data__;return n(t)?r[typeof t==`string`?`string`:`hash`]:r.map}t.exports=r})),be=t(((e,t)=>{var n=V();function r(e){var t=n(this,e).delete(e);return this.size-=t?1:0,t}t.exports=r})),xe=t(((e,t)=>{var n=V();function r(e){return n(this,e).get(e)}t.exports=r})),Se=t(((e,t)=>{var n=V();function r(e){return n(this,e).has(e)}t.exports=r})),Ce=t(((e,t)=>{var n=V();function r(e,t){var r=n(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}t.exports=r})),H=t(((e,t)=>{var n=ve(),r=be(),i=xe(),a=Se(),o=Ce();function s(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=n,s.prototype.delete=r,s.prototype.get=i,s.prototype.has=a,s.prototype.set=o,t.exports=s})),we=t(((e,t)=>{var n=H(),r=`Expected a function`;function i(e,t){if(typeof e!=`function`||t!=null&&typeof t!=`function`)throw TypeError(r);var a=function(){var n=arguments,r=t?t.apply(this,n):n[0],i=a.cache;if(i.has(r))return i.get(r);var o=e.apply(this,n);return a.cache=i.set(r,o)||i,o};return a.cache=new(i.Cache||n),a}i.Cache=n,t.exports=i})),Te=t(((e,t)=>{var n=we(),r=500;function i(e){var t=n(e,function(e){return i.size===r&&i.clear(),e}),i=t.cache;return t}t.exports=i})),Ee=t(((e,t)=>{var n=Te(),r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,i=/\\(\\)?/g;t.exports=n(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(``),e.replace(r,function(e,n,r,a){t.push(r?a.replace(i,`$1`):n||e)}),t})})),De=t(((e,t)=>{function n(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}t.exports=n})),Oe=t(((e,t)=>{var n=C(),r=De(),i=b(),a=E(),o=1/0,s=n?n.prototype:void 0,c=s?s.toString:void 0;function l(e){if(typeof e==`string`)return e;if(i(e))return r(e,l)+``;if(a(e))return c?c.call(e):``;var t=e+``;return t==`0`&&1/e==-o?`-0`:t}t.exports=l})),ke=t(((e,t)=>{var n=Oe();function r(e){return e==null?``:n(e)}t.exports=r})),U=t(((e,t)=>{var n=b(),r=D(),i=Ee(),a=ke();function o(e,t){return n(e)?e:r(e,t)?[e]:i(a(e))}t.exports=o})),Ae=t(((e,t)=>{var n=w(),r=T(),i=`[object Arguments]`;function a(e){return r(e)&&n(e)==i}t.exports=a})),W=t(((e,t)=>{var n=Ae(),r=T(),i=Object.prototype,a=i.hasOwnProperty,o=i.propertyIsEnumerable;t.exports=n(function(){return arguments}())?n:function(e){return r(e)&&a.call(e,`callee`)&&!o.call(e,`callee`)}})),G=t(((e,t)=>{var n=9007199254740991,r=/^(?:0|[1-9]\d*)$/;function i(e,t){var i=typeof e;return t??=n,!!t&&(i==`number`||i!=`symbol`&&r.test(e))&&e>-1&&e%1==0&&e<t}t.exports=i})),K=t(((e,t)=>{var n=9007199254740991;function r(e){return typeof e==`number`&&e>-1&&e%1==0&&e<=n}t.exports=r})),q=t(((e,t)=>{var n=E(),r=1/0;function i(e){if(typeof e==`string`||n(e))return e;var t=e+``;return t==`0`&&1/e==-r?`-0`:t}t.exports=i})),J=t(((e,t)=>{var n=U(),r=W(),i=b(),a=G(),o=K(),s=q();function c(e,t,c){t=n(t,e);for(var l=-1,u=t.length,d=!1;++l<u;){var f=s(t[l]);if(!(d=e!=null&&c(e,f)))break;e=e[f]}return d||++l!=u?d:(u=e==null?0:e.length,!!u&&o(u)&&a(f,u)&&(i(e)||r(e)))}t.exports=c})),je=e(t(((e,t)=>{var n=ie(),r=J();function i(e,t){return e!=null&&r(e,t,n)}t.exports=i}))(),1),Y;(function(e){e.Uri=`uri`,e.Text=`text`,e.Image=`image`,e.RowID=`row-id`,e.Number=`number`,e.Bubble=`bubble`,e.Boolean=`boolean`,e.Loading=`loading`,e.Markdown=`markdown`,e.Drilldown=`drilldown`,e.Protected=`protected`,e.Custom=`custom`})(Y||={});var Me;(function(e){e.HeaderRowID=`headerRowID`,e.HeaderCode=`headerCode`,e.HeaderNumber=`headerNumber`,e.HeaderString=`headerString`,e.HeaderBoolean=`headerBoolean`,e.HeaderAudioUri=`headerAudioUri`,e.HeaderVideoUri=`headerVideoUri`,e.HeaderEmoji=`headerEmoji`,e.HeaderImage=`headerImage`,e.HeaderUri=`headerUri`,e.HeaderPhone=`headerPhone`,e.HeaderMarkdown=`headerMarkdown`,e.HeaderDate=`headerDate`,e.HeaderTime=`headerTime`,e.HeaderEmail=`headerEmail`,e.HeaderReference=`headerReference`,e.HeaderIfThenElse=`headerIfThenElse`,e.HeaderSingleValue=`headerSingleValue`,e.HeaderLookup=`headerLookup`,e.HeaderTextTemplate=`headerTextTemplate`,e.HeaderMath=`headerMath`,e.HeaderRollup=`headerRollup`,e.HeaderJoinStrings=`headerJoinStrings`,e.HeaderSplitString=`headerSplitString`,e.HeaderGeoDistance=`headerGeoDistance`,e.HeaderArray=`headerArray`,e.RowOwnerOverlay=`rowOwnerOverlay`,e.ProtectedColumnOverlay=`protectedColumnOverlay`})(Me||={});var X;(function(e){e.Triangle=`triangle`,e.Dots=`dots`})(X||={});function Ne(e){return`width`in e&&typeof e.width==`number`}async function Pe(e){return typeof e==`object`?e:await e()}function Z(e){return!(e.kind===Y.Loading||e.kind===Y.Bubble||e.kind===Y.RowID||e.kind===Y.Protected||e.kind===Y.Drilldown)}function Fe(e){return e.kind===$.Marker||e.kind===$.NewRow}function Q(e){if(!Z(e)||e.kind===Y.Image)return!1;if(e.kind===Y.Text||e.kind===Y.Number||e.kind===Y.Markdown||e.kind===Y.Uri||e.kind===Y.Custom||e.kind===Y.Boolean)return e.readonly!==!0;_(e,`A cell was passed with an invalid kind`)}function Ie(e){return(0,je.default)(e,`editor`)}function Le(e){return!(e.readonly??!1)}var $;(function(e){e.NewRow=`new-row`,e.Marker=`marker`})($||={});function Re(e){if(e.length===0)return[];let t=[...e],n=[];t.sort(function(e,t){return e[0]-t[0]}),n.push([...t[0]]);for(let e of t.slice(1)){let t=n[n.length-1];t[1]<e[0]?n.push([...e]):t[1]<e[1]&&(t[1]=e[1])}return n}var ze,Be=class e{items;constructor(e){this.items=e}static empty=()=>ze??=new e([]);static fromSingleSelection=t=>e.empty().add(t);offset(t){return t===0?this:new e(this.items.map(e=>[e[0]+t,e[1]+t]))}add(t){let n=typeof t==`number`?[t,t+1]:t;return new e(Re([...this.items,n]))}remove(t){let n=[...this.items],r=typeof t==`number`?t:t[0],i=typeof t==`number`?t+1:t[1];for(let[e,t]of n.entries()){let[a,o]=t;if(a<=i&&r<=o){let t=[];a<r&&t.push([a,r]),i<o&&t.push([i,o]),n.splice(e,1,...t)}}return new e(n)}first(){if(this.items.length!==0)return this.items[0][0]}last(){if(this.items.length!==0)return this.items.slice(-1)[0][1]-1}hasIndex(e){for(let t=0;t<this.items.length;t++){let[n,r]=this.items[t];if(e>=n&&e<r)return!0}return!1}hasAll(e){for(let t=e[0];t<e[1];t++)if(!this.hasIndex(t))return!1;return!0}some(e){for(let t of this)if(e(t))return!0;return!1}equals(e){if(e===this)return!0;if(e.items.length!==this.items.length)return!1;for(let t=0;t<this.items.length;t++){let n=e.items[t],r=this.items[t];if(n[0]!==r[0]||n[1]!==r[1])return!1}return!0}toArray(){let e=[];for(let[t,n]of this.items)for(let r=t;r<n;r++)e.push(r);return e}get length(){let e=0;for(let[t,n]of this.items)e+=n-t;return e}*[Symbol.iterator](){for(let[e,t]of this.items)for(let n=e;n<t;n++)yield n}};export{C as A,p as B,j as C,E as D,D as E,_ as F,i as G,f as H,y as I,re as L,x as M,b as N,T as O,g as P,te as R,M as S,O as T,d as U,ne as V,l as W,U as _,Le as a,z as b,Ie as c,Pe as d,J as f,W as g,G as h,$ as i,S as j,w as k,Q as l,K as m,Y as n,Z as o,q as p,X as r,Fe as s,Be as t,Ne as u,H as v,k as w,F as x,B as y,ee as z};
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-FhOqtrmT.js";import{S as t,x as n}from"./vendor-markdown-Ls5AcU91.js";import"./vendor-ui-CaeeFO0B.js";import{t as r}from"./database-Y3ESDK4-.js";import{n as i,t as a}from"./glide-data-grid-BUS44oLM.js";import{t as o}from"./loader-circle-DPMrnLQ2.js";import{t as s}from"./shield-check-BsG3LV8i.js";import{t as c}from"./shield-off-7jKWpJBD.js";import{n as l,s as u}from"./api-client-CEYCBt_0.js";import"./vendor-mermaid-CfY1-PkA.js";import"./settings-store-CzLnTR8p.js";import"./panel-store-BmdcSBNb.js";import"./window-store-D0HbQ1pM.js";import{t as d}from"./tab-store-1xYJb0gM.js";import{K as f,Xn as p,gr as m}from"./index-Cx1meAwb.js";import"./data-grid-types-DeY60CLU.js";import"./use-monaco-theme-cgPbRDUm.js";import{t as h}from"./sql-query-editor-Clo90z8-.js";var g=e(t(),1);function _(e,t,n,r){return`ppm-db-${e}-${n}.${t}-p${r}`}function v(e,t,n,r){try{let i=sessionStorage.getItem(_(e,t,n,r));return i?JSON.parse(i):null}catch{return null}}function y(e,t,n,r,i,a){try{sessionStorage.setItem(_(e,t,n,r),JSON.stringify({data:i,cols:a}))}catch{}}function b(e){let t=`/api/db/connections/${e}`,[n,r]=(0,g.useState)(null),[i,a]=(0,g.useState)(`public`),[o,s]=(0,g.useState)(null),[c,d]=(0,g.useState)([]),[f,p]=(0,g.useState)(!1),[m,h]=(0,g.useState)(null),[_,b]=(0,g.useState)(1),[x,S]=(0,g.useState)(null),[C,w]=(0,g.useState)(null),[T,E]=(0,g.useState)(!1),[D,O]=(0,g.useState)(null),[k,A]=(0,g.useState)(`ASC`),j=(0,g.useRef)(null),M=(0,g.useCallback)(async(r,a,o,c,u)=>{let f=r??n,m=a??i;if(!f)return;j.current=null,p(!0);let g=c===void 0?D:c,v=u??k;try{let n=g?`&orderBy=${encodeURIComponent(g)}&orderDir=${v}`:``,[r,i]=await Promise.all([l.get(`${t}/data?table=${encodeURIComponent(f)}&schema=${m}&page=${o??_}&limit=100${n}`),l.get(`${t}/schema?table=${encodeURIComponent(f)}&schema=${m}`)]);s(r),d(i),y(e,f,m,o??_,r,i)}catch(e){h(e.message)}finally{p(!1)}},[t,e,n,i,_,D,k]),N=(0,g.useCallback)((t,n=`public`)=>{r(t),a(n),b(1),S(null);let i=v(e,t,n,1);i?(s(i.data),d(i.cols),p(!1),M(t,n,1)):M(t,n,1)},[e,M]),P=(0,g.useCallback)(e=>{b(e),M(void 0,void 0,e)},[M]),F=(0,g.useCallback)(async e=>{j.current={sql:e,mode:`table`},p(!0);try{let n=await l.post(`${t}/query`,{sql:e,source:`filter`});n.changeType===`select`&&s({columns:n.columns,rows:n.rows,total:n.rows.length,page:1,limit:n.rows.length})}catch(e){h(e.message)}finally{p(!1)}},[t]),I=(0,g.useCallback)(async e=>{E(!0),w(null);try{let r=await l.post(`${t}/query`,{sql:e});S(r),r.changeType===`modify`?(j.current=null,M(n??void 0,i)):j.current={sql:e,mode:`query`}}catch(e){w(e.message)}finally{E(!1)}},[t,n,i,M]),L=(0,g.useCallback)((e,t)=>{let n=j.current;if(n?.mode===`table`){F(n.sql);return}M(e,t)},[F,M]),R=(0,g.useCallback)((e,t)=>{let n=t.message;h(n),u.error(`${e} failed`,{description:n})},[]),z=(0,g.useCallback)(async(e,r,a,o)=>{if(!n)return;let s=n,c=i;try{await l.put(`${t}/cell`,{table:s,schema:c,pkColumn:e,pkValue:r,column:a,value:o}),L(s,c)}catch(e){R(`Update cell`,e)}},[t,n,i,L,R]),B=(0,g.useCallback)(async(e,r)=>{if(!n)return;let a=n,o=i;try{await l.del(`${t}/row`,{table:a,schema:o,pkColumn:e,pkValue:r}),L(a,o)}catch(e){R(`Delete row`,e)}},[t,n,i,L,R]),V=(0,g.useCallback)(e=>{let t,n=`ASC`;D===e?k===`ASC`?(t=e,n=`DESC`):(t=null,n=`ASC`):(t=e,n=`ASC`),O(t),A(n),b(1),M(void 0,void 0,1,t,n)},[D,k,M]),H=(0,g.useCallback)(()=>{O(null),A(`ASC`),b(1),M(void 0,void 0,1,null,`ASC`)},[M]),U=(0,g.useCallback)(async(e,r)=>{if(!n)return;let a=n,o=i;try{await l.post(`${t}/rows/delete`,{table:a,schema:o,pkColumn:e,pkValues:r}),L(a,o)}catch(e){R(`Delete rows`,e)}},[t,n,i,L,R]),W=(0,g.useCallback)(async e=>{if(!n)return;let r=n,a=i;try{await l.post(`${t}/row`,{table:r,schema:a,values:e}),L(r,a)}catch(e){throw R(`Insert row`,e),e}},[t,n,i,L,R]),G=(0,g.useCallback)(()=>{let e=j.current;if(e?.mode===`query`){I(e.sql);return}if(e?.mode===`table`){F(e.sql);return}M()},[I,F,M]);return{selectedTable:n,selectedSchema:i,selectTable:N,tableData:o,schema:c,loading:f,error:m,page:_,setPage:P,orderBy:D,orderDir:k,toggleSort:V,clearSort:H,queryResult:x,queryError:C,queryLoading:T,executeQuery:I,updateCell:z,updateCellIn:(0,g.useCallback)(async(e,n,r,i,a,o)=>{try{await l.put(`${t}/cell`,{table:e,schema:n,pkColumn:r,pkValue:i,column:a,value:o}),G()}catch(e){R(`Update cell`,e)}},[t,G,R]),deleteRow:B,bulkDelete:U,insertRow:W,refreshData:M,queryAsTable:F,reload:G}}function x(e,t){let n=e.replace(/--[^\r\n]*/g,` `).replace(/\/\*[\s\S]*?\*\//g,` `).trim().replace(/;\s*$/,``);if(!/^select\s/i.test(n)||/\b(join|union|intersect|except|group\s+by|distinct)\b/i.test(n)||(n.match(/\bfrom\b/gi)??[]).length!==1)return null;let r=/\bfrom\s+(?:"([^"]+)"|(\w+))\s*(?:\.\s*(?:"([^"]+)"|(\w+)))?/i.exec(n);if(!r)return null;let i=r[1]??r[2],a=r[3]??r[4];return a?{schema:i,table:a}:{table:i,schema:t}}var S=n();function C(e){let t={},n=/"(\w+)"\s+ILIKE\s+'%([^']*?)%'/gi,r;for(;(r=n.exec(e))!==null;)t[r[1]]=r[2].replace(/''/g,`'`);return t}function w({metadata:e,tabId:t}){let n=e?.connectionId,u=e?.connectionName,_=e?.tableName,v=e?.schemaName??`public`,y=e?.initialSql,w=e?.currentSql,T=d(e=>e.updateTab),D=(0,g.useRef)(e);D.current=e;let O=(0,g.useCallback)(e=>{t&&T(t,{metadata:{...D.current,currentSql:e}})},[t,T]),k=b(n),{connections:A,updateConnection:j}=f(),M=(0,g.useMemo)(()=>A.find(e=>e.id===n),[A,n]),[N,P]=(0,g.useState)([]),[F,I]=(0,g.useState)(180),L=(0,g.useRef)(null),[R,z]=(0,g.useState)({}),B=(0,g.useMemo)(()=>{if(y&&!k.selectedTable)return y;if(k.selectedTable){let e=`SELECT * FROM "${k.selectedTable}"`,t=Object.entries(R).filter(([,e])=>e.trim()).map(([e,t])=>`"${e}" ILIKE '%${t.replace(/'/g,`''`)}%'`);t.length>0&&(e+=` WHERE ${t.join(` AND `)}`),k.orderBy&&(e+=` ORDER BY "${k.orderBy}" ${k.orderDir}`);let n=(k.page-1)*100;return e+=` LIMIT 100`,n>0&&(e+=` OFFSET ${n}`),e}return`SELECT * FROM `},[y,k.selectedTable,k.orderBy,k.orderDir,k.page,R]),V=(0,g.useCallback)(e=>{z(e)},[]),H=(0,g.useRef)(void 0),U=(0,g.useRef)(!1);(0,g.useEffect)(()=>{if(!k.selectedTable)return;let e=Object.values(R).some(e=>e.trim());if(!(!e&&!U.current))return U.current=e,clearTimeout(H.current),H.current=setTimeout(()=>{e?k.queryAsTable(B):k.refreshData()},500),()=>clearTimeout(H.current)},[R]);let W=(0,g.useCallback)(e=>{e.preventDefault();let t=e.clientY,n=F,r=e=>{let r=e.clientY-t;I(Math.max(80,Math.min(n+r,(L.current?.clientHeight??600)-100)))},i=()=>{document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,i)};document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,i)},[F]);(0,g.useEffect)(()=>{l.get(`/api/db/connections/${n}/tables?cached=1`).then(e=>P(e.map(e=>({name:e.name,schema:e.schema})))).catch(()=>{})},[n]);let G=(0,g.useMemo)(()=>{if(N.length!==0)return{tables:N,getColumns:async(e,t)=>await l.get(`/api/db/connections/${n}/schema?table=${encodeURIComponent(e)}${t?`&schema=${encodeURIComponent(t)}`:``}`)}},[n,N]),K=(0,g.useRef)(!1);(0,g.useEffect)(()=>{K.current||(K.current=!0,y?k.executeQuery(y):_&&k.selectTable(_,v))},[_,v,y]);let[q,J]=(0,g.useState)(!!y),[Y,ee]=(0,g.useState)(y??null),te=(0,g.useCallback)(e=>{let t=e.trim();if(k.selectedTable&&RegExp(`^SELECT\\s+\\*\\s+FROM\\s+"?${k.selectedTable.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}"?\\b`,`i`).test(t)){z(C(t)),k.queryAsTable(t);return}J(!0),ee(t),k.executeQuery(e)},[k.executeQuery,k.queryAsTable,k.selectedTable]),ne=(0,g.useCallback)(e=>{J(!1),k.toggleSort(e)},[k.toggleSort]),re=(0,g.useCallback)(()=>{J(!1),k.clearSort()},[k.clearSort]),ie=(0,g.useCallback)(e=>{J(!1),k.setPage(e)},[k.setPage]),X=(0,g.useMemo)(()=>M&&!M.readonly&&Y?x(Y,k.selectedSchema):null,[M,Y,k.selectedSchema]),ae=(0,g.useCallback)((e,t,n,r)=>{X&&k.updateCellIn(X.table,X.schema,e,t,n,r)},[X,k.updateCellIn]),Z=k.queryResult,Q=q&&!!(Z||k.queryError),$=k.selectedTable&&!Q,oe=!($&&k.tableData)&&!Q&&(k.loading||k.queryLoading);return(0,S.jsx)(`div`,{ref:L,className:`flex h-full w-full overflow-hidden`,children:(0,S.jsxs)(`div`,{className:`flex-1 flex flex-col overflow-hidden`,children:[(0,S.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-1.5 border-b border-border bg-background shrink-0`,children:[(0,S.jsx)(r,{className:`size-3.5 text-muted-foreground`}),(0,S.jsx)(`span`,{className:`text-xs text-muted-foreground truncate`,children:u??`Database`}),k.selectedTable&&(0,S.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`/ `,k.selectedTable]}),(0,S.jsxs)(`div`,{className:`ml-auto flex items-center gap-1`,children:[k.tableData&&(0,S.jsx)(i,{columns:k.tableData.columns,rows:k.tableData.rows,filename:u?`${u}-${k.selectedTable??`data`}`:k.selectedTable??`data`,exportAllUrl:k.selectedTable?`/api/db/connections/${n}/export?table=${encodeURIComponent(k.selectedTable)}&schema=${k.selectedSchema}`:void 0}),M&&(0,S.jsx)(`button`,{type:`button`,onClick:()=>j(M.id,{readonly:M.readonly?0:1}),className:`flex items-center gap-0.5 px-1 py-0.5 rounded text-[10px] transition-colors ${M.readonly?`text-muted-foreground hover:text-foreground`:`bg-destructive/15 text-destructive`}`,title:M.readonly?`Readonly — click to allow writes`:`WRITE mode — click to enable readonly`,children:M.readonly?(0,S.jsx)(s,{className:`size-3`}):(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(c,{className:`size-3`}),(0,S.jsx)(`span`,{className:`font-medium`,children:`WRITE`})]})}),(0,S.jsx)(`button`,{type:`button`,onClick:()=>k.reload(),title:`Reload data`,className:`p-1 rounded text-muted-foreground hover:text-foreground transition-colors`,children:(0,S.jsx)(p,{className:`size-3 ${k.loading||k.queryLoading?`animate-spin`:``}`})})]})]}),(0,S.jsx)(`div`,{className:`shrink-0 border-b border-border`,style:{height:F},children:(0,S.jsx)(h,{onExecute:te,loading:k.queryLoading,defaultValue:B,schemaInfo:G,onSqlChange:O,persistedSql:w})}),(0,S.jsx)(`div`,{onMouseDown:W,className:`shrink-0 h-1.5 cursor-row-resize bg-border/50 hover:bg-primary/30 flex items-center justify-center transition-colors`,children:(0,S.jsx)(m,{className:`size-3 text-muted-foreground/50`})}),(0,S.jsxs)(`div`,{className:`flex-1 overflow-hidden`,children:[$&&k.tableData&&(0,S.jsx)(a,{columns:k.tableData.columns,rows:k.tableData.rows,total:k.tableData.total,limit:k.tableData.limit,schema:k.schema,loading:k.loading,page:k.page,onPageChange:ie,onCellUpdate:k.updateCell,onRowDelete:k.deleteRow,orderBy:k.orderBy,orderDir:k.orderDir,onToggleSort:ne,onClearSort:re,onBulkDelete:k.bulkDelete,onInsertRow:k.insertRow,connectionId:n,selectedTable:k.selectedTable,selectedSchema:k.selectedSchema,connectionName:u,columnFilters:R,onColumnFilter:V}),Q&&(0,S.jsx)(E,{result:Z,error:k.queryError,loading:k.queryLoading,schema:k.schema,connectionName:u,onCellUpdate:X?ae:void 0}),oe&&(0,S.jsx)(`div`,{className:`flex items-center justify-center h-full text-muted-foreground`,children:(0,S.jsx)(o,{className:`size-4 animate-spin`})})]})]})})}var T=()=>{};function E({result:e,error:t,loading:n,schema:r,connectionName:i,onCellUpdate:s}){let c=(0,g.useMemo)(()=>e?.changeType===`select`&&e.rows.length>0?{columns:e.columns,rows:e.rows,total:e.rows.length,limit:e.rows.length}:null,[e]),l=(0,g.useMemo)(()=>{let t=e?.columns??[],n=new Set((r??[]).map(e=>e.name));return r?.length&&t.every(e=>n.has(e))?r:t.map(e=>({name:e,type:`text`,nullable:!0,pk:!1,defaultValue:null}))},[r,e?.columns]);return(0,S.jsxs)(`div`,{className:`flex flex-col h-full overflow-hidden text-xs`,children:[t&&(0,S.jsx)(`div`,{className:`px-3 py-2 text-destructive bg-destructive/5 shrink-0`,children:t}),e?.changeType===`modify`&&(0,S.jsxs)(`div`,{className:`px-3 py-2 text-success shrink-0`,children:[e.rowsAffected,` row(s) affected`,e.executionTimeMs!=null&&(0,S.jsxs)(`span`,{className:`text-muted-foreground ml-2`,children:[e.executionTimeMs,`ms`]})]}),c&&(0,S.jsxs)(`div`,{className:`flex-1 overflow-hidden`,children:[(0,S.jsx)(a,{columns:c.columns,rows:c.rows,total:c.total,limit:c.limit,schema:l,loading:!!n,page:1,onPageChange:T,onCellUpdate:s??T,readOnly:!s,orderBy:null,orderDir:`ASC`,onToggleSort:T,connectionName:i}),e?.executionTimeMs!=null&&(0,S.jsxs)(`div`,{className:`px-3 py-0.5 border-t border-border text-[10px] text-muted-foreground shrink-0`,children:[e.rows.length,` rows · `,e.executionTimeMs,`ms`]})]}),e?.changeType===`select`&&e.rows.length===0&&(0,S.jsxs)(`div`,{className:`px-3 py-2 text-muted-foreground shrink-0`,children:[`No results`,e.executionTimeMs!=null&&(0,S.jsxs)(`span`,{className:`ml-2 text-muted-foreground/60`,children:[e.executionTimeMs,`ms`]})]}),!e&&!t&&(0,S.jsx)(`div`,{className:`flex items-center justify-center h-full text-muted-foreground`,children:n?(0,S.jsx)(o,{className:`size-4 animate-spin`}):`Run a query to see results`})]})}export{w as DatabaseViewer};