@hienlh/ppm 0.20.7 → 0.20.8

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 (506) hide show
  1. package/CHANGELOG.md +5 -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-Df1KoGg7.js → accounts-settings-section-CRXY4Bsc.js} +1 -1
  6. package/dist/web/assets/{ai-resource-editor-C6s6A57b.js → ai-resource-editor-CMQfhxXp.js} +1 -1
  7. package/dist/web/assets/ai-settings-section-446NZWhI.js +1 -0
  8. package/dist/web/assets/{ai-settings-section-BQTsEJzp.js → ai-settings-section-M07DCjAI.js} +1 -1
  9. package/dist/web/assets/{angular-html-K0aKyuHe.js → angular-html-BtJLNcMw.js} +1 -1
  10. package/dist/web/assets/{angular-ts-CLY0DVNM.js → angular-ts-CQiu5F_W.js} +1 -1
  11. package/dist/web/assets/api-client-CYZ79uUS.js +1 -0
  12. package/dist/web/assets/{api-client-CEYCBt_0.js → api-client-DwXlVfXP.js} +1 -1
  13. package/dist/web/assets/{api-settings-ClKLkiR9.js → api-settings-BQIwZoLm.js} +1 -1
  14. package/dist/web/assets/{api-themes-B_Za9tdP.js → api-themes-CmJZLEY1.js} +1 -1
  15. package/dist/web/assets/{apl-Cl1oeOZc.js → apl-CKZvgs-w.js} +1 -1
  16. package/dist/web/assets/{appearance-settings-section-B7CwHA7Y.js → appearance-settings-section-BBlJtEm5.js} +1 -1
  17. package/dist/web/assets/architecture-PBZL5I3N-DfR8k8Bc.js +1 -0
  18. package/dist/web/assets/arrow-left-DpXaakMC.js +1 -0
  19. package/dist/web/assets/{astro-S8gLldib.js → astro-D0b8ssLD.js} +1 -1
  20. package/dist/web/assets/{audio-preview-C2PCzvr5.js → audio-preview-DPMXOZ55.js} +1 -1
  21. package/dist/web/assets/{blade-DZ96Anzi.js → blade-DOIpINLw.js} +1 -1
  22. package/dist/web/assets/{bot-D6sx11y0.js → bot-D3-n2i31.js} +1 -1
  23. package/dist/web/assets/{brain-KDa9jFRq.js → brain-CuAQMSBE.js} +1 -1
  24. package/dist/web/assets/{bsl-BrlZLefQ.js → bsl-CJ7_JlQ8.js} +1 -1
  25. package/dist/web/assets/{button-DX32ffge.js → button-zgoXa9r7.js} +1 -1
  26. package/dist/web/assets/{cairo-B0UdH8CG.js → cairo-5CpV2T1P.js} +1 -1
  27. package/dist/web/assets/{calendar-clock-C1asT-gk.js → calendar-clock-CDP7AVjA.js} +1 -1
  28. package/dist/web/assets/{chat-tab-BJokwok-.js → chat-tab-Dn45anqr.js} +4 -4
  29. package/dist/web/assets/check-BQKbhtoA.js +1 -0
  30. package/dist/web/assets/{chevron-down-Dp0rpHb8.js → chevron-down-B9puixxZ.js} +1 -1
  31. package/dist/web/assets/chevron-right-DK_HbYZC.js +1 -0
  32. package/dist/web/assets/{chevron-up-8PbsNiJp.js → chevron-up-BPAINgoK.js} +1 -1
  33. package/dist/web/assets/circle-OKk7s0DX.js +1 -0
  34. package/dist/web/assets/{circle-question-mark-CzR7YRc-.js → circle-question-mark-qcWYO1P_.js} +1 -1
  35. package/dist/web/assets/clock-BmPiGrSF.js +1 -0
  36. package/dist/web/assets/{cobol-DCeQgIC6.js → cobol-BreMVrtc.js} +1 -1
  37. package/dist/web/assets/code-CRiIHSiv.js +1 -0
  38. package/dist/web/assets/code-editor-CKASeDbu.js +7 -0
  39. package/dist/web/assets/{coffee-D3V0ISG7.js → coffee-D7DoKh5b.js} +1 -1
  40. package/dist/web/assets/{conflict-editor-hGsVMmtG.js → conflict-editor-C-Nv8YYj.js} +1 -1
  41. package/dist/web/assets/{context-menu-CJL8L98s.js → context-menu-DM9CgxGh.js} +1 -1
  42. package/dist/web/assets/{copy-BewHj66E.js → copy-CXuIH4VC.js} +1 -1
  43. package/dist/web/assets/{cpp-UPgqRL5h.js → cpp-BnWeWAoE.js} +1 -1
  44. package/dist/web/assets/{createLucideIcon-D8pyde1A.js → createLucideIcon-D6fVXe3s.js} +1 -1
  45. package/dist/web/assets/{crystal-B7BOJUR4.js → crystal-D2pJbFUn.js} +1 -1
  46. package/dist/web/assets/{csv-preview-DiSiq6UJ.js → csv-preview-ou3KFzIH.js} +1 -1
  47. package/dist/web/assets/data-grid-overlay-editor-dnWnblYo.js +1 -0
  48. package/dist/web/assets/data-grid-types-BfGeMDy0.js +1 -0
  49. package/dist/web/assets/{database-Y3ESDK4-.js → database-Dz0W7OH7.js} +1 -1
  50. package/dist/web/assets/database-viewer-Ckqg_-SS.js +1 -0
  51. package/dist/web/assets/{diff-viewer-Usuuf35X.js → diff-viewer-CMzFnBCD.js} +1 -1
  52. package/dist/web/assets/dist-BKOM_AoT.js +11 -0
  53. package/dist/web/assets/{dist-BuUB-Gou.js → dist-CWMPvPem.js} +1 -1
  54. package/dist/web/assets/{docx-preview-Dg8lD3f3.js → docx-preview-B7Aospmh.js} +1 -1
  55. package/dist/web/assets/{download-DG3_9xXy.js → download-D70Q4Ba6.js} +1 -1
  56. package/dist/web/assets/{edge-Dw-s4XKj.js → edge-aqGMtbY3.js} +1 -1
  57. package/dist/web/assets/{edit-diff-preview-F7YlT9fY.js → edit-diff-preview-BvgPvuhH.js} +1 -1
  58. package/dist/web/assets/{elixir-Dntyzyed.js → elixir-CsYMBLc5.js} +1 -1
  59. package/dist/web/assets/{elm-C83eppJ0.js → elm-BU8C2gFp.js} +1 -1
  60. package/dist/web/assets/{erb-Bjv2Lozz.js → erb-Z_E49ab8.js} +1 -1
  61. package/dist/web/assets/{erlang-5PAcE8_t.js → erlang-BRqOjXH9.js} +1 -1
  62. package/dist/web/assets/esm-BHyWbWKE.js +2 -0
  63. package/dist/web/assets/{explorer-body-BL9hg1yr.js → explorer-body-CVx4qaIF.js} +1 -1
  64. package/dist/web/assets/explorer-window-content-CqKVMkgW.js +1 -0
  65. package/dist/web/assets/{extension-manager-section-CE0aB9ed.js → extension-manager-section-CtcpVMWs.js} +1 -1
  66. package/dist/web/assets/{extension-webview-CGhuot2v.js → extension-webview-DZ_QRZSM.js} +1 -1
  67. package/dist/web/assets/{eye-gWwaF4Lg.js → eye-dfZn7evX.js} +1 -1
  68. package/dist/web/assets/{eye-off-GjXVuAOn.js → eye-off-CmtfyRUD.js} +1 -1
  69. package/dist/web/assets/{file-exclamation-point-JzhTU2TX.js → file-exclamation-point-D5K2aaLi.js} +1 -1
  70. package/dist/web/assets/{files-settings-section-D_sgDKwF.js → files-settings-section-D7v-6nTa.js} +1 -1
  71. package/dist/web/assets/{flask-conical-tp8gyZGh.js → flask-conical-Dix4qNDj.js} +1 -1
  72. package/dist/web/assets/{folder-symlink-fQRoG_rV.js → folder-symlink-BavsIzoj.js} +1 -1
  73. package/dist/web/assets/{fortran-fixed-form-Di9Yw_ao.js → fortran-fixed-form-CWbxmDGR.js} +1 -1
  74. package/dist/web/assets/{fsharp-IRAdAkHt.js → fsharp-DKMYbq6I.js} +1 -1
  75. package/dist/web/assets/{gdresource-DVdwnvP-.js → gdresource-B3yFau4V.js} +1 -1
  76. package/dist/web/assets/{general-settings-section-D7DMjoNj.js → general-settings-section-BW_h8pdA.js} +1 -1
  77. package/dist/web/assets/{git-commit-CD6jLHvg.js → git-commit-BW0p3Ekk.js} +1 -1
  78. package/dist/web/assets/{git-log-panel-prL5-n-F.js → git-log-panel-BQZkJDu0.js} +1 -1
  79. package/dist/web/assets/{git-rebase-DvxNkg7t.js → git-rebase-DrvmQCS7.js} +1 -1
  80. package/dist/web/assets/gitGraph-HDMCJU4V-CPd78aaT.js +1 -0
  81. package/dist/web/assets/glide-data-grid-JKEslqGe.js +141 -0
  82. package/dist/web/assets/{glimmer-js-aM9jbY2M.js → glimmer-js-BY1XApJJ.js} +1 -1
  83. package/dist/web/assets/{glimmer-ts-Bd4jKeuF.js → glimmer-ts-DPZtxF8N.js} +1 -1
  84. package/dist/web/assets/{glsl-CUUtWNTx.js → glsl-DZ8G_Hvf.js} +1 -1
  85. package/dist/web/assets/{graphql-DkY6xCcc.js → graphql-Ck06uCZy.js} +1 -1
  86. package/dist/web/assets/{group-chat-tab-C4oY3IKi.js → group-chat-tab-CTAhtVCr.js} +1 -1
  87. package/dist/web/assets/{hack-DnaR9DJk.js → hack-pLogDwAs.js} +1 -1
  88. package/dist/web/assets/{haml-BDubxAIK.js → haml-CBqeCQ2A.js} +1 -1
  89. package/dist/web/assets/{hand-x0ejq3fS.js → hand-CIPALZsE.js} +1 -1
  90. package/dist/web/assets/{handlebars-OxsbI1gt.js → handlebars-B66JmVtp.js} +1 -1
  91. package/dist/web/assets/{html-Cjiwd8dp.js → html-Dk4wmfwC.js} +1 -1
  92. package/dist/web/assets/{html-derivative-CfzXt9Cs.js → html-derivative-CJWqfN51.js} +1 -1
  93. package/dist/web/assets/{http-DRF6Wp6Y.js → http-CexhotTh.js} +1 -1
  94. package/dist/web/assets/{hurl-6SunVID_.js → hurl-BScKFk3Z.js} +1 -1
  95. package/dist/web/assets/{hxml-CR72N708.js → hxml-DAle7vtu.js} +1 -1
  96. package/dist/web/assets/{image-preview-C7dCEQCx.js → image-preview-V5SglTWk.js} +1 -1
  97. package/dist/web/assets/{index-A3ripVe5.js → index-DVNJ2W5R.js} +8 -8
  98. package/dist/web/assets/info-3K5VOQVL-BciNds6R.js +1 -0
  99. package/dist/web/assets/{jinja-CYjAWnk3.js → jinja-yHpyD80t.js} +1 -1
  100. package/dist/web/assets/{jira-watcher-section-DvKEiqtb.js → jira-watcher-section-VyzVbAnw.js} +1 -1
  101. package/dist/web/assets/{jison-UERnq4ds.js → jison-BY6WLJVu.js} +1 -1
  102. package/dist/web/assets/{julia-WAZzVFSs.js → julia-Dd_iYQDT.js} +1 -1
  103. package/dist/web/assets/{just-B1YYfl1D.js → just-BTuUKpxF.js} +1 -1
  104. package/dist/web/assets/{key-round-CQpDrDxg.js → key-round-oIll4vo-.js} +1 -1
  105. package/dist/web/assets/keybindings-store-B5dEz0n1.js +1 -0
  106. package/dist/web/assets/{keyboard-DiOYrs6C.js → keyboard-BLwfiRkT.js} +1 -1
  107. package/dist/web/assets/{keyboard-shortcuts-section-CPsFUned.js → keyboard-shortcuts-section-DOJi75mV.js} +1 -1
  108. package/dist/web/assets/{latex-B6zwM9GI.js → latex-Dt3OUlMZ.js} +1 -1
  109. package/dist/web/assets/{lib-Bss7BrXJ.js → lib-BAsciSLw.js} +1 -1
  110. package/dist/web/assets/{liquid-n4OK-yxz.js → liquid-BxPJU2ix.js} +1 -1
  111. package/dist/web/assets/loader-circle-DxI3O9_f.js +1 -0
  112. package/dist/web/assets/{lua-DJYn-zFg.js → lua-DEGIvn7d.js} +1 -1
  113. package/dist/web/assets/markdown-renderer-BGPo364Y.js +1 -0
  114. package/dist/web/assets/markdown-renderer-DtQIHtLs.js +3 -0
  115. package/dist/web/assets/{marko-C27Qtq0P.js → marko-BDxwBJur.js} +1 -1
  116. package/dist/web/assets/{mdc-CypKG7qW.js → mdc-B8aXPTg7.js} +1 -1
  117. package/dist/web/assets/{media-url-TGgkntUW.js → media-url-TYMlO0M5.js} +1 -1
  118. package/dist/web/assets/{mobile-bottom-sheet-CmySDB6I.js → mobile-bottom-sheet-Ch1e_JBq.js} +1 -1
  119. package/dist/web/assets/mobile-explorer-sheet-C1q_DhrI.js +1 -0
  120. package/dist/web/assets/{monitor-C835ucWH.js → monitor-CG69bSMW.js} +1 -1
  121. package/dist/web/assets/{nextflow-DuRHA0PY.js → nextflow-DBVZnnT_.js} +1 -1
  122. package/dist/web/assets/{nginx-vxFTb1fh.js → nginx-Crpyd-Do.js} +1 -1
  123. package/dist/web/assets/{nim-ChQDNOKe.js → nim-BSqTBYDj.js} +1 -1
  124. package/dist/web/assets/notification-store-DvUtkAXs.js +1 -0
  125. package/dist/web/assets/{notifications-settings-section-CaQVTa3a.js → notifications-settings-section-CeRvkXOM.js} +1 -1
  126. package/dist/web/assets/{number-overlay-editor-HmOZ3ETg.js → number-overlay-editor-DldrUNs4.js} +1 -1
  127. package/dist/web/assets/{overview-panel-CaU5AtCB.js → overview-panel-DA0QB1-5.js} +1 -1
  128. package/dist/web/assets/packet-RMMSAZCW-ClD3l2Bs.js +1 -0
  129. package/dist/web/assets/{panel-store-BmdcSBNb.js → panel-store-D42k25jy.js} +1 -1
  130. package/dist/web/assets/{pdf-preview-QeXX_VpL.js → pdf-preview-Cq33D5ej.js} +1 -1
  131. package/dist/web/assets/{perl-BKH-mNmF.js → perl-BU0kbB-K.js} +1 -1
  132. package/dist/web/assets/{php-W3oWF62o.js → php-D9n1ikHN.js} +1 -1
  133. package/dist/web/assets/pie-UPGHQEXC-PU6kD0rW.js +1 -0
  134. package/dist/web/assets/portal-container-context-DeLx1cOI.js +1 -0
  135. package/dist/web/assets/postgres-viewer-C__Z0C0s.js +3 -0
  136. package/dist/web/assets/power-CvtnQHU4.js +1 -0
  137. package/dist/web/assets/{ppmbot-settings-section-B_00Zb-K.js → ppmbot-settings-section-Cma4VU7p.js} +1 -1
  138. package/dist/web/assets/{process-table-DweR4FR3.js → process-table-DH_HXtGc.js} +1 -1
  139. package/dist/web/assets/{project-store-wWZ6bjwq.js → project-store-C83MMnlt.js} +1 -1
  140. package/dist/web/assets/{proxy-settings-section-sGhA3t_m.js → proxy-settings-section-xrTsFlTF.js} +1 -1
  141. package/dist/web/assets/{pug-DscH2YvH.js → pug-BOpaczDr.js} +1 -1
  142. package/dist/web/assets/{qml-CbBrfy74.js → qml-B-cQXhrg.js} +1 -1
  143. package/dist/web/assets/{query-audit-section-BtqND9WE.js → query-audit-section-Drk97gb8.js} +1 -1
  144. package/dist/web/assets/radar-KQ55EAFF-4LzjL0Zt.js +1 -0
  145. package/dist/web/assets/{razor-_oKX4NEv.js → razor-DFB0pNCh.js} +1 -1
  146. package/dist/web/assets/{react-D1Yg256j.js → react-DqIU0LFM.js} +1 -1
  147. package/dist/web/assets/remote-desktop-mobile-sheet-6JdUr0Bj.js +2 -0
  148. package/dist/web/assets/{remote-desktop-mobile-view-xlO-gk_f.js → remote-desktop-mobile-view-Gk8UCVIx.js} +1 -1
  149. package/dist/web/assets/{remote-desktop-readiness-gate-BmyUd1vt.js → remote-desktop-readiness-gate-6reSZvad.js} +1 -1
  150. package/dist/web/assets/{remote-desktop-window-content-BaPixhFs.js → remote-desktop-window-content-BW2KqONI.js} +1 -1
  151. package/dist/web/assets/{rst-C3yqfWYA.js → rst-DAXedsgm.js} +1 -1
  152. package/dist/web/assets/{ruby-BaanPyyv.js → ruby-BCO4polC.js} +1 -1
  153. package/dist/web/assets/{run-in-terminal-Sb6TFU4f.js → run-in-terminal-DoTOtgQS.js} +1 -1
  154. package/dist/web/assets/{sas-DQg1FY8E.js → sas-DfB5dcFC.js} +1 -1
  155. package/dist/web/assets/{save-CipGrG1k.js → save-B1y4KIK9.js} +1 -1
  156. package/dist/web/assets/{schedules-settings-section-Ctu9STMV.js → schedules-settings-section-DcKEz-S7.js} +1 -1
  157. package/dist/web/assets/{scss-N-LxVilh.js → scss-BknIVgn7.js} +1 -1
  158. package/dist/web/assets/{send-Bb0jtcR6.js → send-B9VUQlEK.js} +1 -1
  159. package/dist/web/assets/{send-to-chat-BDws0-k0.js → send-to-chat-Kl-0dNwN.js} +1 -1
  160. package/dist/web/assets/{separator-GeVzERIl.js → separator-DvCsdlws.js} +1 -1
  161. package/dist/web/assets/{settings-body-B0ZdO6qx.js → settings-body-CcKls51a.js} +2 -2
  162. package/dist/web/assets/{settings-store-Bsu_5zIU.js → settings-store-_s4xFcFq.js} +2 -2
  163. package/dist/web/assets/settings-tab-ChAk8nh2.js +1 -0
  164. package/dist/web/assets/settings-window-content-sA1K0cPW.js +1 -0
  165. package/dist/web/assets/{shaderlab-BShqbudx.js → shaderlab-CPu31TpY.js} +1 -1
  166. package/dist/web/assets/{shellsession-B8_nNEok.js → shellsession-CFX4c_TM.js} +1 -1
  167. package/dist/web/assets/{shield-check-BsG3LV8i.js → shield-check-BJSX7cAS.js} +1 -1
  168. package/dist/web/assets/{shield-off-7jKWpJBD.js → shield-off-E1cQwXdc.js} +1 -1
  169. package/dist/web/assets/{soy-CW5oqa-M.js → soy-rz9hilgm.js} +1 -1
  170. package/dist/web/assets/{sparkles-Dh-_J2Rd.js → sparkles-blTKn0vi.js} +1 -1
  171. package/dist/web/assets/{sparql-BJFHPosZ.js → sparql-Bo8ZDeqE.js} +1 -1
  172. package/dist/web/assets/{sql-query-editor-DPtExW0C.js → sql-query-editor-BoYxc5vd.js} +1 -1
  173. package/dist/web/assets/sqlite-viewer-O5lF3MMj.js +1 -0
  174. package/dist/web/assets/{stata-twP3WAnN.js → stata-B5J-QMyE.js} +1 -1
  175. package/dist/web/assets/{streaming-store-9XVmAMfV.js → streaming-store-QQvg1cS-.js} +1 -1
  176. package/dist/web/assets/{surrealql-CqwoQxwG.js → surrealql-Caw1ADnG.js} +1 -1
  177. package/dist/web/assets/{svelte-CoTGkG7y.js → svelte-D3oMVcxz.js} +1 -1
  178. package/dist/web/assets/{system-monitor-body-Bfx7yImc.js → system-monitor-body-C2mVJ7PV.js} +2 -2
  179. package/dist/web/assets/system-monitor-tab-tXkg3jpV.js +1 -0
  180. package/dist/web/assets/system-monitor-window-content-BaKoFDEz.js +1 -0
  181. package/dist/web/assets/{tab-host-window-content-By35Ri11.js → tab-host-window-content-C7F6D8hJ.js} +1 -1
  182. package/dist/web/assets/{tab-store-1xYJb0gM.js → tab-store-B2ip0-Mv.js} +1 -1
  183. package/dist/web/assets/{table-CRJsmfeg.js → table-8HT8BG30.js} +1 -1
  184. package/dist/web/assets/team-member-sheet-BA70_jmM.js +2 -0
  185. package/dist/web/assets/{team-member-window-content-2_P22CXN.js → team-member-window-content-BwOTsc9r.js} +1 -1
  186. package/dist/web/assets/{templ-BSuNrgD0.js → templ-BAdNyIOL.js} +1 -1
  187. package/dist/web/assets/{terminal-tab-DqAZMwhA.js → terminal-tab-DlZW3MCn.js} +1 -1
  188. package/dist/web/assets/{tex-DTdKTZSa.js → tex-IQ8mELOR.js} +1 -1
  189. package/dist/web/assets/{text-wrap-oiekm5SB.js → text-wrap-DafY0-Pa.js} +1 -1
  190. package/dist/web/assets/{tool-cards-CiCZqw1w.js → tool-cards-yiwO861p.js} +3 -3
  191. package/dist/web/assets/treemap-KZPCXAKY-DiumLNMg.js +1 -0
  192. package/dist/web/assets/{ts-tags-jpjff8fb.js → ts-tags-D1DDO2jl.js} +1 -1
  193. package/dist/web/assets/{twig-Utgjq3Am.js → twig-C8Fd5RvV.js} +1 -1
  194. package/dist/web/assets/{use-accounts-data-DMQAUXSO.js → use-accounts-data-B9t4BQaI.js} +1 -1
  195. package/dist/web/assets/{use-blob-url-BMtoAEL4.js → use-blob-url-D358Rpyp.js} +1 -1
  196. package/dist/web/assets/{use-coarse-long-press-BmI_GVW5.js → use-coarse-long-press-BsBpxWup.js} +1 -1
  197. package/dist/web/assets/{use-inline-blame-C1G-_NjC.js → use-inline-blame-D2pZjDoA.js} +1 -1
  198. package/dist/web/assets/{use-is-mobile-D1weanbj.js → use-is-mobile-Bi42QhIi.js} +1 -1
  199. package/dist/web/assets/{use-monaco-theme-Ck1i7NEe.js → use-monaco-theme-DTPfPPvF.js} +1 -1
  200. package/dist/web/assets/use-open-team-member-DGEx9xB0.js +1 -0
  201. package/dist/web/assets/{use-remote-desktop-display-choice-DVDOUQg2.js → use-remote-desktop-display-choice-BnVT4dhX.js} +1 -1
  202. package/dist/web/assets/{use-visual-viewport-Bfl3Bxxb.js → use-visual-viewport-CNdG4QHH.js} +1 -1
  203. package/dist/web/assets/{use-websocket-BkBvJbEt.js → use-websocket-DQg9BQcq.js} +1 -1
  204. package/dist/web/assets/{vendor-markdown-Ls5AcU91.js → vendor-markdown-CuWCHIVb.js} +1 -1
  205. package/dist/web/assets/{vendor-mermaid-CXxglerV.js → vendor-mermaid-CfY1-PkA.js} +193 -193
  206. package/dist/web/assets/{vendor-ui-CaeeFO0B.js → vendor-ui-BBdkypKW.js} +1 -1
  207. package/dist/web/assets/{video-preview-DzzFr0gI.js → video-preview-Dc4YbBqm.js} +1 -1
  208. package/dist/web/assets/{vue-CUms54DI.js → vue-EvccXlkP.js} +1 -1
  209. package/dist/web/assets/{vue-html-D7fbWTZW.js → vue-html-Dg0xUJCh.js} +1 -1
  210. package/dist/web/assets/{vue-vine-BontZ1iR.js → vue-vine-BdrMg72k.js} +1 -1
  211. package/dist/web/assets/{window-pip-registry-CrCYYTTf.js → window-pip-registry-BWxaVLj5.js} +1 -1
  212. package/dist/web/assets/{window-store-D0HbQ1pM.js → window-store-CfxP5yor.js} +1 -1
  213. package/dist/web/assets/ws-auth-FRzMmfQx.js +1 -0
  214. package/dist/web/assets/x-Bdaog6Az.js +1 -0
  215. package/dist/web/assets/{xml-CVHJ-Tda.js → xml-MmDclzxK.js} +1 -1
  216. package/dist/web/assets/{xsl-BUDXwDuV.js → xsl-DQEFs6Dd.js} +1 -1
  217. package/dist/web/index.html +39 -39
  218. package/dist/web/sw.js +1 -1
  219. package/package.json +1 -1
  220. package/packages/vscode-compat/node_modules/.bin/tsc.bunx +0 -0
  221. package/packages/vscode-compat/node_modules/.bin/tsc.exe +0 -0
  222. package/packages/vscode-compat/node_modules/.bin/tsserver.bunx +0 -0
  223. package/packages/vscode-compat/node_modules/.bin/tsserver.exe +0 -0
  224. package/src/services/edge-forwarder.ts +191 -191
  225. package/src/services/windows-process-tree.ts +351 -351
  226. package/src/web/components/shared/markdown-context.ts +6 -0
  227. package/src/web/components/shared/markdown-renderer.tsx +7 -3
  228. package/dist/web/assets/ai-settings-section-CMIkIxZU.js +0 -1
  229. package/dist/web/assets/api-client-QfreGirP.js +0 -1
  230. package/dist/web/assets/architecture-PBZL5I3N-CkWx_Sv3.js +0 -1
  231. package/dist/web/assets/arrow-left-CyFcsyzD.js +0 -1
  232. package/dist/web/assets/check-DN75Ucvz.js +0 -1
  233. package/dist/web/assets/chevron-right-De-Wz5Lz.js +0 -1
  234. package/dist/web/assets/circle-BCy0AUCo.js +0 -1
  235. package/dist/web/assets/click-outside-container-XmmmdSm7.js +0 -1
  236. package/dist/web/assets/clock-C1CQUQPZ.js +0 -1
  237. package/dist/web/assets/code-DJgYrFzm.js +0 -1
  238. package/dist/web/assets/code-editor-BVyFjaoM.js +0 -7
  239. package/dist/web/assets/data-grid-overlay-editor-QyH_oklj.js +0 -1
  240. package/dist/web/assets/database-viewer-BWQMTwjf.js +0 -1
  241. package/dist/web/assets/dist-CQbltjRp.js +0 -11
  242. package/dist/web/assets/esm-Brdy2Atb.js +0 -2
  243. package/dist/web/assets/explorer-window-content-C3BSd4Qf.js +0 -1
  244. package/dist/web/assets/gitGraph-HDMCJU4V-BUlbZgyf.js +0 -1
  245. package/dist/web/assets/glide-data-grid-lbUFJwCD.js +0 -141
  246. package/dist/web/assets/info-3K5VOQVL-DXzjBxZf.js +0 -1
  247. package/dist/web/assets/keybindings-store-BOJPwIOB.js +0 -1
  248. package/dist/web/assets/loader-circle-DPMrnLQ2.js +0 -1
  249. package/dist/web/assets/markdown-renderer-C1KVXiXr.js +0 -3
  250. package/dist/web/assets/markdown-renderer-HPQE8ilD.js +0 -1
  251. package/dist/web/assets/mobile-explorer-sheet-DkvtLBgs.js +0 -1
  252. package/dist/web/assets/notification-store-B1pBUO0W.js +0 -1
  253. package/dist/web/assets/packet-RMMSAZCW-DrX3I-bv.js +0 -1
  254. package/dist/web/assets/pie-UPGHQEXC-czhViDrP.js +0 -1
  255. package/dist/web/assets/portal-container-context-DKymYOY-.js +0 -1
  256. package/dist/web/assets/postgres-viewer-DO50GwMs.js +0 -3
  257. package/dist/web/assets/power-CriQkeK5.js +0 -1
  258. package/dist/web/assets/radar-KQ55EAFF-BAHP0n2V.js +0 -1
  259. package/dist/web/assets/remote-desktop-mobile-sheet-DMn2uDXn.js +0 -2
  260. package/dist/web/assets/settings-tab-BQvukPz5.js +0 -1
  261. package/dist/web/assets/settings-window-content-DUmULFsq.js +0 -1
  262. package/dist/web/assets/sqlite-viewer-DkzvIzyG.js +0 -1
  263. package/dist/web/assets/system-monitor-tab-Bn7sDAiO.js +0 -1
  264. package/dist/web/assets/system-monitor-window-content-DVwdAvly.js +0 -1
  265. package/dist/web/assets/team-member-sheet-B8vZnJrJ.js +0 -2
  266. package/dist/web/assets/treemap-KZPCXAKY-DL_-JS7u.js +0 -1
  267. package/dist/web/assets/use-open-team-member-C9EUqPvl.js +0 -1
  268. package/dist/web/assets/ws-auth-D111jj32.js +0 -1
  269. package/dist/web/assets/x-CxoBA0po.js +0 -1
  270. /package/dist/web/assets/{abap-BGbkXtK3.js → abap-D-o-bvtI.js} +0 -0
  271. /package/dist/web/assets/{actionscript-3-CTWUcAG5.js → actionscript-3-D2tIzAm8.js} +0 -0
  272. /package/dist/web/assets/{ada-2xQ2Am_-.js → ada-DxatBcxS.js} +0 -0
  273. /package/dist/web/assets/{andromeeda-DfXLrHKa.js → andromeeda-D0LK9YJ3.js} +0 -0
  274. /package/dist/web/assets/{apache-CBLZGsyo.js → apache-B7uMPNiW.js} +0 -0
  275. /package/dist/web/assets/{apex-UYnVUoc7.js → apex-B7GiXrAr.js} +0 -0
  276. /package/dist/web/assets/{applescript-9me9Xoqf.js → applescript-D_SIFkKe.js} +0 -0
  277. /package/dist/web/assets/{ara-CHhiJzie.js → ara-C3iECgdg.js} +0 -0
  278. /package/dist/web/assets/{asciidoc-CKk0H4sD.js → asciidoc-gc8z_MMY.js} +0 -0
  279. /package/dist/web/assets/{asm-CVc_SeQB.js → asm-27qeoPOI.js} +0 -0
  280. /package/dist/web/assets/{aurora-x-BRYBKvUk.js → aurora-x-C5J9fWe1.js} +0 -0
  281. /package/dist/web/assets/{awk-BsBtss7k.js → awk-B7GBzF92.js} +0 -0
  282. /package/dist/web/assets/{ayu-dark-x3ChmRrr.js → ayu-dark-XlnQhuLL.js} +0 -0
  283. /package/dist/web/assets/{ayu-light-DUbhGec6.js → ayu-light-DKLLilkU.js} +0 -0
  284. /package/dist/web/assets/{ayu-mirage-Bc9Dyu4v.js → ayu-mirage-Dv-XOprJ.js} +0 -0
  285. /package/dist/web/assets/{ballerina-B0CV6yyC.js → ballerina-DACRT-sT.js} +0 -0
  286. /package/dist/web/assets/{bat-BmukVhcd.js → bat-BlQCq2XE.js} +0 -0
  287. /package/dist/web/assets/{beancount-DfRKW4qX.js → beancount-DYDztRI0.js} +0 -0
  288. /package/dist/web/assets/{berry-BXO-GbOz.js → berry-BE5YKqvx.js} +0 -0
  289. /package/dist/web/assets/{bibtex-BIMgGN81.js → bibtex-CAm7mgEm.js} +0 -0
  290. /package/dist/web/assets/{bicep-CIaj_N_V.js → bicep-BKgAbfVa.js} +0 -0
  291. /package/dist/web/assets/{bird2-Ca5CJ-1r.js → bird2-yrBNbW1G.js} +0 -0
  292. /package/dist/web/assets/{c-BgN-FzVO.js → c-txZFr4RM.js} +0 -0
  293. /package/dist/web/assets/{c3-B366g85t.js → c3-D_DrzBUd.js} +0 -0
  294. /package/dist/web/assets/{cadence-BDCY3xvX.js → cadence-CUFCEgG9.js} +0 -0
  295. /package/dist/web/assets/{can-open-in-ppm-DyFXJvuW.js → can-open-in-ppm-_yqa69dV.js} +0 -0
  296. /package/dist/web/assets/{catppuccin-frappe-C2dWlEOM.js → catppuccin-frappe-Dn32MuhA.js} +0 -0
  297. /package/dist/web/assets/{catppuccin-latte-B6AgUzC2.js → catppuccin-latte-Dewo7yDf.js} +0 -0
  298. /package/dist/web/assets/{catppuccin-macchiato-D2r_sUYa.js → catppuccin-macchiato-D8WOWZeo.js} +0 -0
  299. /package/dist/web/assets/{catppuccin-mocha-CCJOmGcr.js → catppuccin-mocha-b0md48XM.js} +0 -0
  300. /package/dist/web/assets/{clarity-7c_yM38y.js → clarity-Ct3UqLBj.js} +0 -0
  301. /package/dist/web/assets/{clojure-Cx30u1gg.js → clojure-CwP5aPEo.js} +0 -0
  302. /package/dist/web/assets/{cmake-D8nfcw9r.js → cmake-D5RF49e5.js} +0 -0
  303. /package/dist/web/assets/{codeowners-z9VeFgy0.js → codeowners-Cl5897L_.js} +0 -0
  304. /package/dist/web/assets/{codeql-DXYEc0p7.js → codeql-BKh1RCg0.js} +0 -0
  305. /package/dist/web/assets/{common-lisp-QB2DYRB7.js → common-lisp-BhHuD6t0.js} +0 -0
  306. /package/dist/web/assets/{coq-DC4-vZSI.js → coq-Dco3qwD8.js} +0 -0
  307. /package/dist/web/assets/{csharp-iBJcXIuz.js → csharp-Dpjw9ZA9.js} +0 -0
  308. /package/dist/web/assets/{css-DzLteUnC.js → css-CPe4cabH.js} +0 -0
  309. /package/dist/web/assets/{csv-plVZ5iV_.js → csv-BAcTN8Kt.js} +0 -0
  310. /package/dist/web/assets/{csv-parser-0OmrzV4G.js → csv-parser-DbxGKdMG.js} +0 -0
  311. /package/dist/web/assets/{cue-MFyM4FwJ.js → cue-Cr6y60TA.js} +0 -0
  312. /package/dist/web/assets/{cypher-BmV76dTw.js → cypher-DWtqXXFP.js} +0 -0
  313. /package/dist/web/assets/{d-CukQ97B6.js → d-BASiTZk4.js} +0 -0
  314. /package/dist/web/assets/{dark-plus-BDhlhnd-.js → dark-plus-56kmnrcl.js} +0 -0
  315. /package/dist/web/assets/{dart-BEDiNp89.js → dart-C5mZnjoE.js} +0 -0
  316. /package/dist/web/assets/{dax-CKMJPpmb.js → dax-B4I2e7d8.js} +0 -0
  317. /package/dist/web/assets/{desktop-CjjGerHK.js → desktop-DekGg0BT.js} +0 -0
  318. /package/dist/web/assets/{diff-CuRWQEJk.js → diff-CWnJBd73.js} +0 -0
  319. /package/dist/web/assets/{docker-BzeqNwXY.js → docker-DevchDxK.js} +0 -0
  320. /package/dist/web/assets/{dotenv-maAByz4s.js → dotenv-DCvtdaGJ.js} +0 -0
  321. /package/dist/web/assets/{dracula-BK-58eQL.js → dracula-8U6Vkk3l.js} +0 -0
  322. /package/dist/web/assets/{dracula-soft-BiBFiJ4B.js → dracula-soft-Bfeew5Wg.js} +0 -0
  323. /package/dist/web/assets/{dream-maker-SLz866k9.js → dream-maker-DDTJVuoy.js} +0 -0
  324. /package/dist/web/assets/{emacs-lisp-DVVSBvYb.js → emacs-lisp-CEHJqI4m.js} +0 -0
  325. /package/dist/web/assets/{everforest-dark-B3wCaZGh.js → everforest-dark-CHHLt7cq.js} +0 -0
  326. /package/dist/web/assets/{everforest-light-BOv6DEcT.js → everforest-light-TcTbK1sM.js} +0 -0
  327. /package/dist/web/assets/{fennel-mxeAVgSR.js → fennel-Bh4vsA1A.js} +0 -0
  328. /package/dist/web/assets/{fish-CNPEh-7O.js → fish-D0T0fILG.js} +0 -0
  329. /package/dist/web/assets/{fluent-DzjF371g.js → fluent-CgXDXdyy.js} +0 -0
  330. /package/dist/web/assets/{format-bytes-BxBoqnS1.js → format-bytes-Bc6SqF7M.js} +0 -0
  331. /package/dist/web/assets/{fortran-free-form-BwcDAA-k.js → fortran-free-form-CUg3Xhz4.js} +0 -0
  332. /package/dist/web/assets/{gdscript-Dw53oyoq.js → gdscript-Cx056p_k.js} +0 -0
  333. /package/dist/web/assets/{gdshader-Ch4uX8TL.js → gdshader-Dj1qP4I5.js} +0 -0
  334. /package/dist/web/assets/{genie-BmyA3sav.js → genie-SBt15wn7.js} +0 -0
  335. /package/dist/web/assets/{gherkin-TJfGbfw6.js → gherkin-bTJiHIrB.js} +0 -0
  336. /package/dist/web/assets/{github-dark-DfjGEBZm.js → github-dark-BOPhyugs.js} +0 -0
  337. /package/dist/web/assets/{github-dark-default-C05CO5WG.js → github-dark-default-Cktqe6NF.js} +0 -0
  338. /package/dist/web/assets/{github-dark-dimmed-tc58hIbY.js → github-dark-dimmed-CeWfII_B.js} +0 -0
  339. /package/dist/web/assets/{github-dark-high-contrast-Cbjouhax.js → github-dark-high-contrast-CTx8LpdV.js} +0 -0
  340. /package/dist/web/assets/{github-light-DyPx5kxT.js → github-light-DVsO5Un1.js} +0 -0
  341. /package/dist/web/assets/{github-light-default-CwQhvvq0.js → github-light-default-BiyPxicr.js} +0 -0
  342. /package/dist/web/assets/{github-light-high-contrast-BSEfGuGA.js → github-light-high-contrast-BPlnke0a.js} +0 -0
  343. /package/dist/web/assets/{gleam-CO9BliEd.js → gleam-CWSxvD0C.js} +0 -0
  344. /package/dist/web/assets/{gn-3w7c2jXR.js → gn-D7NUVJuv.js} +0 -0
  345. /package/dist/web/assets/{gnuplot-B9V8Da0h.js → gnuplot-c5uXmJKc.js} +0 -0
  346. /package/dist/web/assets/{go-DZFS3BH_.js → go-CRsHi4Cw.js} +0 -0
  347. /package/dist/web/assets/{groovy-BoXoCYbJ.js → groovy-DpV0RA5r.js} +0 -0
  348. /package/dist/web/assets/{gruvbox-dark-hard-PlwQadvn.js → gruvbox-dark-hard-DD9fguUN.js} +0 -0
  349. /package/dist/web/assets/{gruvbox-dark-medium-BCuSx7jF.js → gruvbox-dark-medium-BvcwpYJ-.js} +0 -0
  350. /package/dist/web/assets/{gruvbox-dark-soft-BxNVGg5m.js → gruvbox-dark-soft-48dCxX9M.js} +0 -0
  351. /package/dist/web/assets/{gruvbox-light-hard-Caj_mHvE.js → gruvbox-light-hard-CjJ994Ip.js} +0 -0
  352. /package/dist/web/assets/{gruvbox-light-medium-BbWauaVM.js → gruvbox-light-medium-DQJQZ_rV.js} +0 -0
  353. /package/dist/web/assets/{gruvbox-light-soft-sTtAiBhF.js → gruvbox-light-soft-AqsC9mKw.js} +0 -0
  354. /package/dist/web/assets/{haskell-DdAcCutT.js → haskell-B5V7yvmh.js} +0 -0
  355. /package/dist/web/assets/{haxe-CAaBQSbQ.js → haxe-LWTKfPKr.js} +0 -0
  356. /package/dist/web/assets/{hcl-D1Y6h8Ni.js → hcl-QmNZdAtI.js} +0 -0
  357. /package/dist/web/assets/{hjson-C7gAy4J-.js → hjson-CboJsAzK.js} +0 -0
  358. /package/dist/web/assets/{hlsl-BLCpvTDs.js → hlsl-Bd-DO_WL.js} +0 -0
  359. /package/dist/web/assets/{horizon-A4TcfP_V.js → horizon-CU8Bi_ss.js} +0 -0
  360. /package/dist/web/assets/{horizon-bright-D4gSyLkJ.js → horizon-bright-iSQ3_3jP.js} +0 -0
  361. /package/dist/web/assets/{houston-B57jZ5OJ.js → houston-CTXv3Puz.js} +0 -0
  362. /package/dist/web/assets/{hy-C-_Ikdzx.js → hy-Cd4hTidD.js} +0 -0
  363. /package/dist/web/assets/{image-gallery-DZFo6X0Q.js → image-gallery-J8h8IY0c.js} +0 -0
  364. /package/dist/web/assets/{imba-BwypdGq0.js → imba-BipCHEY2.js} +0 -0
  365. /package/dist/web/assets/{ini-DFC2fVTV.js → ini-Dd1KkMrB.js} +0 -0
  366. /package/dist/web/assets/{java-K2R-OeI_.js → java-rGr0OQD8.js} +0 -0
  367. /package/dist/web/assets/{javascript-Dwc_x-Qy.js → javascript-DHhCH2TN.js} +0 -0
  368. /package/dist/web/assets/{json-BWJ0jCOR.js → json-CMMLBCUf.js} +0 -0
  369. /package/dist/web/assets/{json5-CyjYMs2j.js → json5-mPOwTOsB.js} +0 -0
  370. /package/dist/web/assets/{jsonc-DpY-971T.js → jsonc-Bie0E6D3.js} +0 -0
  371. /package/dist/web/assets/{jsonl-MOid1Cv5.js → jsonl-CpqHmtC1.js} +0 -0
  372. /package/dist/web/assets/{jsonnet-C8r7u8hK.js → jsonnet-D21Ms51e.js} +0 -0
  373. /package/dist/web/assets/{jssm-aiVzgRKq.js → jssm-BXnl1nur.js} +0 -0
  374. /package/dist/web/assets/{jsx-BouDi2uL.js → jsx-Chnii_vB.js} +0 -0
  375. /package/dist/web/assets/{kanagawa-dragon-BDBacW42.js → kanagawa-dragon-DhxR0UjL.js} +0 -0
  376. /package/dist/web/assets/{kanagawa-lotus-Bjc_h4S5.js → kanagawa-lotus-fupRg5wp.js} +0 -0
  377. /package/dist/web/assets/{kanagawa-wave-h12w2GK-.js → kanagawa-wave-DSWbRS9M.js} +0 -0
  378. /package/dist/web/assets/{kdl-By4Gal6E.js → kdl-DirGHqUy.js} +0 -0
  379. /package/dist/web/assets/{kotlin-BaieUpjq.js → kotlin-DkhUVMDC.js} +0 -0
  380. /package/dist/web/assets/{kusto-bFewy_Sb.js → kusto-DU7OpovF.js} +0 -0
  381. /package/dist/web/assets/{laserwave-DpFhqINu.js → laserwave-iLKb1ZCT.js} +0 -0
  382. /package/dist/web/assets/{lean-DDn2i30H.js → lean-Cuvh_QAP.js} +0 -0
  383. /package/dist/web/assets/{less-DtaLKtJv.js → less-B5tQZOdI.js} +0 -0
  384. /package/dist/web/assets/{libesm-DJd6dkYL.js → libesm-CdttTIAd.js} +0 -0
  385. /package/dist/web/assets/{light-plus-BiMMZ8in.js → light-plus-DiHU2KL5.js} +0 -0
  386. /package/dist/web/assets/{llvm-BI0xMYjk.js → llvm-sCBTKCKN.js} +0 -0
  387. /package/dist/web/assets/{log-BDnXCvPh.js → log-DtyR34Ie.js} +0 -0
  388. /package/dist/web/assets/{logo-DeOTbfcP.js → logo-CP91aQyG.js} +0 -0
  389. /package/dist/web/assets/{luau-C8pWPPhP.js → luau-nfGo2ulP.js} +0 -0
  390. /package/dist/web/assets/{make-Du6n4Vqb.js → make-XbDn9GHe.js} +0 -0
  391. /package/dist/web/assets/{markdown-CQOwzr1d.js → markdown-BB1_3xLr.js} +0 -0
  392. /package/dist/web/assets/{material-theme-V1uvvG3T.js → material-theme-CIx_sxAy.js} +0 -0
  393. /package/dist/web/assets/{material-theme-darker-YOeOea0A.js → material-theme-darker-DsQeueDD.js} +0 -0
  394. /package/dist/web/assets/{material-theme-lighter-gsPcqGZh.js → material-theme-lighter-x_lMi74j.js} +0 -0
  395. /package/dist/web/assets/{material-theme-ocean-DXpcGhUO.js → material-theme-ocean-Bkgh25P8.js} +0 -0
  396. /package/dist/web/assets/{material-theme-palenight-CuXKc4Kv.js → material-theme-palenight-CoOjdbti.js} +0 -0
  397. /package/dist/web/assets/{matlab-DKfAoKWM.js → matlab-D6xZas_8.js} +0 -0
  398. /package/dist/web/assets/{mdx-B3lHrBfA.js → mdx-Cl5_YNoz.js} +0 -0
  399. /package/dist/web/assets/{mermaid-aFxjKRiq.js → mermaid-8Eow4jz_.js} +0 -0
  400. /package/dist/web/assets/{min-dark-z_K9sY1g.js → min-dark-D4DhjgRE.js} +0 -0
  401. /package/dist/web/assets/{min-light-CKEPOwP-.js → min-light-DzAckd0t.js} +0 -0
  402. /package/dist/web/assets/{mipsasm-Czl4687V.js → mipsasm-zI_zu0tj.js} +0 -0
  403. /package/dist/web/assets/{mojo-XEmb6dMz.js → mojo-DQnGGPHf.js} +0 -0
  404. /package/dist/web/assets/{monokai-CeewfP-T.js → monokai-CrFoD2VD.js} +0 -0
  405. /package/dist/web/assets/{moonbit-BFs6rC9o.js → moonbit-DdphIGs6.js} +0 -0
  406. /package/dist/web/assets/{move-Dru-OXAq.js → move-BUlkn0xW.js} +0 -0
  407. /package/dist/web/assets/{narrat-C6i2yGbz.js → narrat-CbOBdtCn.js} +0 -0
  408. /package/dist/web/assets/{nextflow-groovy-CNbSHaJ-.js → nextflow-groovy-CeVLUTuQ.js} +0 -0
  409. /package/dist/web/assets/{night-owl-XXoqvAPs.js → night-owl-Bm4LhUR1.js} +0 -0
  410. /package/dist/web/assets/{night-owl-light-Dm8251t1.js → night-owl-light-DtcBiMEf.js} +0 -0
  411. /package/dist/web/assets/{nix-DUvtyLsY.js → nix-DrdwQ70g.js} +0 -0
  412. /package/dist/web/assets/{nord-DapQODEA.js → nord-B0Head1v.js} +0 -0
  413. /package/dist/web/assets/{nushell-WDWgg9A2.js → nushell-CmUdltKn.js} +0 -0
  414. /package/dist/web/assets/{objective-c-Dg6Li1Kw.js → objective-c-BGDR33XN.js} +0 -0
  415. /package/dist/web/assets/{objective-cpp-DLTQ4Pyg.js → objective-cpp-Buc1Zhd0.js} +0 -0
  416. /package/dist/web/assets/{ocaml-gH2M-t6b.js → ocaml-xdzl9rRD.js} +0 -0
  417. /package/dist/web/assets/{odin-BBj0SPaN.js → odin-DiUFngnd.js} +0 -0
  418. /package/dist/web/assets/{one-dark-pro-C8irccD3.js → one-dark-pro-BURxmIp3.js} +0 -0
  419. /package/dist/web/assets/{one-light-THMntV-R.js → one-light-BMRMInAj.js} +0 -0
  420. /package/dist/web/assets/{openscad-BEjRF8ZV.js → openscad-DAgLA5J3.js} +0 -0
  421. /package/dist/web/assets/{pascal-C7Kr1uH_.js → pascal-CoDZxcRB.js} +0 -0
  422. /package/dist/web/assets/{pkl-CBAaOrr-.js → pkl-DzKM6BuM.js} +0 -0
  423. /package/dist/web/assets/{plastic-B1qtUEVU.js → plastic-vF15LmNS.js} +0 -0
  424. /package/dist/web/assets/{plsql-KzVm4VQQ.js → plsql-C1v07teA.js} +0 -0
  425. /package/dist/web/assets/{po-BDthh1AB.js → po-CLLC8BuA.js} +0 -0
  426. /package/dist/web/assets/{poimandres-DIsV0oVO.js → poimandres-Uq0xysxM.js} +0 -0
  427. /package/dist/web/assets/{polar-HfZSDZob.js → polar-2-luY1Pc.js} +0 -0
  428. /package/dist/web/assets/{postcss-D2mpQWcD.js → postcss-lbFhe0rz.js} +0 -0
  429. /package/dist/web/assets/{powerquery-BmWOahNZ.js → powerquery-RL8O9Wie.js} +0 -0
  430. /package/dist/web/assets/{powershell-DuBkKB6U.js → powershell-upFWhb-b.js} +0 -0
  431. /package/dist/web/assets/{prisma-DMOCr8t3.js → prisma-DBtYaWFk.js} +0 -0
  432. /package/dist/web/assets/{prolog-OntlFpI5.js → prolog-D8jSMykJ.js} +0 -0
  433. /package/dist/web/assets/{proto-kD5tYlX3.js → proto-BM4eadF7.js} +0 -0
  434. /package/dist/web/assets/{puppet-CO4XS5MF.js → puppet-BQDQ3Snu.js} +0 -0
  435. /package/dist/web/assets/{purescript-D_e2LzQx.js → purescript-Cj2aTX4s.js} +0 -0
  436. /package/dist/web/assets/{python-BcK-Cw6k.js → python-BYpqq6u4.js} +0 -0
  437. /package/dist/web/assets/{qmldir-B-9b87fC.js → qmldir-4uiTcwAu.js} +0 -0
  438. /package/dist/web/assets/{qss-hWjUDAxi.js → qss-D5xB-Mqo.js} +0 -0
  439. /package/dist/web/assets/{r-D0sNqudq.js → r-P6Ujy8rf.js} +0 -0
  440. /package/dist/web/assets/{racket-9cjYYXcq.js → racket-COKgCFuM.js} +0 -0
  441. /package/dist/web/assets/{raku-ntPupo_R.js → raku-z14Q9i7K.js} +0 -0
  442. /package/dist/web/assets/{red-D814sEjX.js → red-ObAvgvQ5.js} +0 -0
  443. /package/dist/web/assets/{reg-bPzNEQh4.js → reg-Qv4f0JFA.js} +0 -0
  444. /package/dist/web/assets/{regexp-B_zg64Ge.js → regexp-CEOVGIzy.js} +0 -0
  445. /package/dist/web/assets/{rel-CoB0Qjm-.js → rel-cWOyTUwd.js} +0 -0
  446. /package/dist/web/assets/{riscv-DcVTEi_B.js → riscv-BZDwx-lv.js} +0 -0
  447. /package/dist/web/assets/{ron-CcAQMYzM.js → ron-BpjosPS0.js} +0 -0
  448. /package/dist/web/assets/{rose-pine-jtG38kvA.js → rose-pine-DhxfJWcm.js} +0 -0
  449. /package/dist/web/assets/{rose-pine-dawn-DkSLvjDV.js → rose-pine-dawn-BbGt9Wy_.js} +0 -0
  450. /package/dist/web/assets/{rose-pine-moon-DJx8AxMs.js → rose-pine-moon-dj4Zxgik.js} +0 -0
  451. /package/dist/web/assets/{rosmsg-BnfYFiWk.js → rosmsg-EciOaHo2.js} +0 -0
  452. /package/dist/web/assets/{rust-DxgQnpfl.js → rust-C_eH59O_.js} +0 -0
  453. /package/dist/web/assets/{sass-DTgjjspH.js → sass-Dos3R5lL.js} +0 -0
  454. /package/dist/web/assets/{scala-xEozebyS.js → scala-8lVKsTvf.js} +0 -0
  455. /package/dist/web/assets/{scheme-sfgxdr_D.js → scheme-Bd3VdaZj.js} +0 -0
  456. /package/dist/web/assets/{sdbl-BpdzD-Uv.js → sdbl-C4Yrjlgh.js} +0 -0
  457. /package/dist/web/assets/{shellscript-B2o7zCrN.js → shellscript-OFZbPKZH.js} +0 -0
  458. /package/dist/web/assets/{slack-dark-DxfgNfgJ.js → slack-dark-aL6vlxZs.js} +0 -0
  459. /package/dist/web/assets/{slack-ochin-BMSGMkt8.js → slack-ochin-BKt1E7sL.js} +0 -0
  460. /package/dist/web/assets/{smalltalk-DCb8haRt.js → smalltalk-D6qVBL1U.js} +0 -0
  461. /package/dist/web/assets/{snazzy-light-Y06j56Vj.js → snazzy-light-BrWerT0t.js} +0 -0
  462. /package/dist/web/assets/{solarized-dark-z1W-RVhp.js → solarized-dark-CzxTJgVQ.js} +0 -0
  463. /package/dist/web/assets/{solarized-light-BRAGTpW5.js → solarized-light-BecaDAnG.js} +0 -0
  464. /package/dist/web/assets/{solidity-CDTZVMHy.js → solidity-C9t7pZ84.js} +0 -0
  465. /package/dist/web/assets/{splunk-CFjv6-V_.js → splunk-CtxfFKtF.js} +0 -0
  466. /package/dist/web/assets/{sql-Ce-1ETwT.js → sql-7FE_Duz0.js} +0 -0
  467. /package/dist/web/assets/{ssh-config-Bcs3SD-x.js → ssh-config-3Fr37ACC.js} +0 -0
  468. /package/dist/web/assets/{stylus-Co5Var6O.js → stylus-BP4mE1sO.js} +0 -0
  469. /package/dist/web/assets/{swift-Irt_r7Fy.js → swift-0uqTFouD.js} +0 -0
  470. /package/dist/web/assets/{synthwave-84-BOgCDIL-.js → synthwave-84-DQaNM3DI.js} +0 -0
  471. /package/dist/web/assets/{system-verilog-DSwfS0ci.js → system-verilog-DUIVrZHZ.js} +0 -0
  472. /package/dist/web/assets/{systemd-C-HqVFLV.js → systemd-CtNo_WIh.js} +0 -0
  473. /package/dist/web/assets/{talonscript-B7lshRGY.js → talonscript-B0HXaCVT.js} +0 -0
  474. /package/dist/web/assets/{tasl-BZXSTCA-.js → tasl-Cb7RAl11.js} +0 -0
  475. /package/dist/web/assets/{tcl-B_vaMM01.js → tcl-B79aC6l5.js} +0 -0
  476. /package/dist/web/assets/{terraform-B7kDBVtX.js → terraform-75jJDjpW.js} +0 -0
  477. /package/dist/web/assets/{tokyo-night-CW1uC1bG.js → tokyo-night-Cz9Uh9qb.js} +0 -0
  478. /package/dist/web/assets/{toml-Af6Dxufp.js → toml-CD6y9A-z.js} +0 -0
  479. /package/dist/web/assets/{tsv-BSFZ-g3s.js → tsv-CXJMbBrb.js} +0 -0
  480. /package/dist/web/assets/{tsx-CN8kIwG_.js → tsx-BuYN0I2t.js} +0 -0
  481. /package/dist/web/assets/{turtle-BSUyR8DV.js → turtle-DWH-Rjse.js} +0 -0
  482. /package/dist/web/assets/{typescript-2AZeIhCA.js → typescript-BPd-hsrR.js} +0 -0
  483. /package/dist/web/assets/{typespec-DRZ0XiHC.js → typespec-B0wvVykx.js} +0 -0
  484. /package/dist/web/assets/{typst-p1gfDr4O.js → typst-DWG2c48-.js} +0 -0
  485. /package/dist/web/assets/{v-B705HYgD.js → v-Ch6E4Egd.js} +0 -0
  486. /package/dist/web/assets/{vala-CyU0S4KW.js → vala-CGVKwbPx.js} +0 -0
  487. /package/dist/web/assets/{vb-DCWUzR_1.js → vb-BIEbSxyT.js} +0 -0
  488. /package/dist/web/assets/{vendor-xterm-MrmaYoD2.js → vendor-xterm-YQlzIWv2.js} +0 -0
  489. /package/dist/web/assets/{verilog-CrRE3TC7.js → verilog-A-3pYPad.js} +0 -0
  490. /package/dist/web/assets/{vesper-BH5N5eRr.js → vesper-CK1naZAV.js} +0 -0
  491. /package/dist/web/assets/{vhdl-CT1Mz-fu.js → vhdl-CVawmgMg.js} +0 -0
  492. /package/dist/web/assets/{viml-B0LtAesb.js → viml-CiWjaqBY.js} +0 -0
  493. /package/dist/web/assets/{vitesse-black-DqQvxGCJ.js → vitesse-black-PYXW4-BO.js} +0 -0
  494. /package/dist/web/assets/{vitesse-dark-C6MRSe2N.js → vitesse-dark-BU5s4AuG.js} +0 -0
  495. /package/dist/web/assets/{vitesse-light-B-8DQ5R9.js → vitesse-light-DgkIT-N7.js} +0 -0
  496. /package/dist/web/assets/{vyper-D7YgYuMk.js → vyper-D8cRDPp3.js} +0 -0
  497. /package/dist/web/assets/{wasm-Dj9JHuDf.js → wasm-C02wlRbP.js} +0 -0
  498. /package/dist/web/assets/{wasm-BgEp8ivq.js → wasm-ClFJgzmT.js} +0 -0
  499. /package/dist/web/assets/{wenyan-CLcU30u4.js → wenyan-B8plxIr8.js} +0 -0
  500. /package/dist/web/assets/{wgsl-DEtNo0DR.js → wgsl-CVujtm3V.js} +0 -0
  501. /package/dist/web/assets/{wikitext-CXiDN9zY.js → wikitext-CmcG9B69.js} +0 -0
  502. /package/dist/web/assets/{wit-0hROlx_P.js → wit--gl2Jium.js} +0 -0
  503. /package/dist/web/assets/{wolfram-nhKFI8Qz.js → wolfram-6T_1D-NS.js} +0 -0
  504. /package/dist/web/assets/{yaml-CNoUgoPD.js → yaml-CIVV9uA1.js} +0 -0
  505. /package/dist/web/assets/{zenscript-BgGAyJ15.js → zenscript-CoT4yNdA.js} +0 -0
  506. /package/dist/web/assets/{zig-Be_I-6Rs.js → zig-BWs2Qo3G.js} +0 -0
@@ -1,4 +1,5 @@
1
1
  import { createContext, useContext } from "react";
2
+ import { defaultUrlTransform } from "react-markdown";
2
3
 
3
4
  /** Common text file extensions that PPM can open as editor tabs */
4
5
  const FILE_EXTS = "ts|tsx|js|jsx|mjs|cjs|py|json|md|mdx|yaml|yml|toml|css|scss|less|html|htm|sh|bash|zsh|go|rs|sql|rb|java|kt|swift|c|cpp|h|hpp|cs|vue|svelte|txt|env|cfg|conf|ini|xml|csv|log|dockerfile|makefile|gradle|output";
@@ -8,6 +9,11 @@ export const GLOB_CHARS_RE = /[*?{}\[\]]/;
8
9
  /** Detect local absolute file paths (Unix or Windows) */
9
10
  export const LOCAL_PATH_RE = /^(\/|[A-Za-z]:[/\\])/;
10
11
 
12
+ /** Keep Windows absolute file links intact; defer all other URL safety filtering to react-markdown. */
13
+ export function markdownUrlTransform(url: string): string {
14
+ return LOCAL_PATH_RE.test(url) ? url : defaultUrlTransform(url);
15
+ }
16
+
11
17
  export interface MdContextValue {
12
18
  projectName?: string;
13
19
  codeActions: boolean;
@@ -14,7 +14,7 @@ import { openCommandPalette } from "@/hooks/use-global-keybindings";
14
14
  import { useBackgroundOutputStore } from "@/stores/background-output-store";
15
15
  import { api, projectUrl, getAuthToken } from "@/lib/api-client";
16
16
  import { basename } from "@/lib/utils";
17
- import { MdContext, useMdContext, FILE_EXT_RE, GLOB_CHARS_RE, LOCAL_PATH_RE } from "./markdown-context";
17
+ import { MdContext, useMdContext, FILE_EXT_RE, GLOB_CHARS_RE, LOCAL_PATH_RE, markdownUrlTransform } from "./markdown-context";
18
18
  import { MdPre, MdCode } from "./markdown-code-block";
19
19
 
20
20
  interface MarkdownRendererProps {
@@ -28,7 +28,6 @@ interface MarkdownRendererProps {
28
28
  /** Plugin arrays — stable references to avoid re-creating on each render */
29
29
  const remarkPlugins = [[remarkGfm, { singleTilde: false }], [remarkMath, { singleDollarTextMath: false }], remarkBreaks] as any;
30
30
  const rehypePlugins = [rehypeRaw, rehypeKatex] as any;
31
-
32
31
  /** Component map — stable references; dynamic state flows through MdContext */
33
32
  const mdComponents = { a: MdLink, img: MdImage, pre: MdPre, code: MdCode, table: MdTable };
34
33
 
@@ -110,7 +109,12 @@ export function MarkdownRenderer({ content, projectName, className = "", codeAct
110
109
  return (
111
110
  <MdContext.Provider value={ctx}>
112
111
  <div className={`markdown-content prose-sm ${isStreaming ? "is-streaming" : ""} ${className}`}>
113
- <ReactMarkdown remarkPlugins={remarkPlugins} rehypePlugins={rehypePlugins} components={mdComponents}>
112
+ <ReactMarkdown
113
+ remarkPlugins={remarkPlugins}
114
+ rehypePlugins={rehypePlugins}
115
+ urlTransform={markdownUrlTransform}
116
+ components={mdComponents}
117
+ >
114
118
  {content}
115
119
  </ReactMarkdown>
116
120
  </div>
@@ -1 +0,0 @@
1
- import"./vendor-markdown-Ls5AcU91.js";import"./vendor-ui-CaeeFO0B.js";import"./api-client-CEYCBt_0.js";import"./portal-container-context-DKymYOY-.js";import"./panel-store-BmdcSBNb.js";import"./window-store-D0HbQ1pM.js";import"./tab-store-1xYJb0gM.js";import"./use-is-mobile-D1weanbj.js";import{t as e}from"./ai-settings-section-BQTsEJzp.js";export{e as AISettingsSection};
@@ -1 +0,0 @@
1
- import"./vendor-markdown-Ls5AcU91.js";import"./vendor-ui-CaeeFO0B.js";import{i as e,n as t}from"./api-client-CEYCBt_0.js";export{t as api,e as projectUrl};
@@ -1 +0,0 @@
1
- import{G as e}from"./vendor-mermaid-CXxglerV.js";export{e as createArchitectureServices};
@@ -1 +0,0 @@
1
- import{t as e}from"./createLucideIcon-D8pyde1A.js";var t=e(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]);export{t};
@@ -1 +0,0 @@
1
- import{t as e}from"./createLucideIcon-D8pyde1A.js";var t=e(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]);export{t};
@@ -1 +0,0 @@
1
- import{t as e}from"./createLucideIcon-D8pyde1A.js";var t=e(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]);export{t};
@@ -1 +0,0 @@
1
- import{t as e}from"./createLucideIcon-D8pyde1A.js";var t=e(`circle`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]);export{t};
@@ -1 +0,0 @@
1
- import{o as e,t}from"./rolldown-runtime-FhOqtrmT.js";import{S as n}from"./vendor-markdown-Ls5AcU91.js";function r(e=`This should not happen`){throw Error(e)}function i(e,t=`Assertion failed`){if(!e)return r(t)}function a(e,t){return r(t??`Hell froze over`)}function o(e,t){try{return e()}catch{return t}}var s=Object.prototype.hasOwnProperty;function c(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--&&c(e[r],t[r]););return r===-1}if(!n||typeof e==`object`){for(n in r=0,e)if(s.call(e,n)&&++r&&!s.call(t,n)||!(n in t)||!c(e[n],t[n]))return!1;return Object.keys(t).length===r}}return e!==e&&t!==t}var l=t(((e,t)=>{var n=Object.prototype.hasOwnProperty;function r(e,t){return e!=null&&n.call(e,t)}t.exports=r})),u=t(((e,t)=>{t.exports=Array.isArray})),d=t(((e,t)=>{t.exports=typeof global==`object`&&global&&global.Object===Object&&global})),f=t(((e,t)=>{var n=d(),r=typeof self==`object`&&self&&self.Object===Object&&self;t.exports=n||r||Function(`return this`)()})),p=t(((e,t)=>{t.exports=f().Symbol})),ee=t(((e,t)=>{var n=p(),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})),te=t(((e,t)=>{var n=Object.prototype.toString;function r(e){return n.call(e)}t.exports=r})),m=t(((e,t)=>{var n=p(),r=ee(),i=te(),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})),h=t(((e,t)=>{function n(e){return typeof e==`object`&&!!e}t.exports=n})),g=t(((e,t)=>{var n=m(),r=h(),i=`[object Symbol]`;function a(e){return typeof e==`symbol`||r(e)&&n(e)==i}t.exports=a})),_=t(((e,t)=>{var n=u(),r=g(),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})),v=t(((e,t)=>{function n(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}t.exports=n})),y=t(((e,t)=>{var n=m(),r=v(),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})),b=t(((e,t)=>{t.exports=f()[`__core-js_shared__`]})),ne=t(((e,t)=>{var n=b(),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})),x=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})),re=t(((e,t)=>{var n=y(),r=ne(),i=v(),a=x(),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})),ie=t(((e,t)=>{function n(e,t){return e?.[t]}t.exports=n})),S=t(((e,t)=>{var n=re(),r=ie();function i(e,t){var i=r(e,t);return n(i)?i:void 0}t.exports=i})),C=t(((e,t)=>{t.exports=S()(Object,`create`)})),ae=t(((e,t)=>{var n=C();function r(){this.__data__=n?n(null):{},this.size=0}t.exports=r})),oe=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})),se=t(((e,t)=>{var n=C(),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})),ce=t(((e,t)=>{var n=C(),r=Object.prototype.hasOwnProperty;function i(e){var t=this.__data__;return n?t[e]!==void 0:r.call(t,e)}t.exports=i})),le=t(((e,t)=>{var n=C(),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})),ue=t(((e,t)=>{var n=ae(),r=oe(),i=se(),a=ce(),o=le();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})),de=t(((e,t)=>{function n(){this.__data__=[],this.size=0}t.exports=n})),w=t(((e,t)=>{function n(e,t){return e===t||e!==e&&t!==t}t.exports=n})),T=t(((e,t)=>{var n=w();function r(e,t){for(var r=e.length;r--;)if(n(e[r][0],t))return r;return-1}t.exports=r})),fe=t(((e,t)=>{var n=T(),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})),pe=t(((e,t)=>{var n=T();function r(e){var t=this.__data__,r=n(t,e);return r<0?void 0:t[r][1]}t.exports=r})),me=t(((e,t)=>{var n=T();function r(e){return n(this.__data__,e)>-1}t.exports=r})),he=t(((e,t)=>{var n=T();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})),E=t(((e,t)=>{var n=de(),r=fe(),i=pe(),a=me(),o=he();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})),D=t(((e,t)=>{t.exports=S()(f(),`Map`)})),ge=t(((e,t)=>{var n=ue(),r=E(),i=D();function a(){this.size=0,this.__data__={hash:new n,map:new(i||r),string:new n}}t.exports=a})),_e=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})),O=t(((e,t)=>{var n=_e();function r(e,t){var r=e.__data__;return n(t)?r[typeof t==`string`?`string`:`hash`]:r.map}t.exports=r})),ve=t(((e,t)=>{var n=O();function r(e){var t=n(this,e).delete(e);return this.size-=t?1:0,t}t.exports=r})),k=t(((e,t)=>{var n=O();function r(e){return n(this,e).get(e)}t.exports=r})),A=t(((e,t)=>{var n=O();function r(e){return n(this,e).has(e)}t.exports=r})),j=t(((e,t)=>{var n=O();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})),M=t(((e,t)=>{var n=ge(),r=ve(),i=k(),a=A(),o=j();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})),N=t(((e,t)=>{var n=M(),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})),P=t(((e,t)=>{var n=N(),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})),F=t(((e,t)=>{var n=P(),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})})),ye=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})),be=t(((e,t)=>{var n=p(),r=ye(),i=u(),a=g(),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})),xe=t(((e,t)=>{var n=be();function r(e){return e==null?``:n(e)}t.exports=r})),I=t(((e,t)=>{var n=u(),r=_(),i=F(),a=xe();function o(e,t){return n(e)?e:r(e,t)?[e]:i(a(e))}t.exports=o})),Se=t(((e,t)=>{var n=m(),r=h(),i=`[object Arguments]`;function a(e){return r(e)&&n(e)==i}t.exports=a})),L=t(((e,t)=>{var n=Se(),r=h(),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`)}})),R=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})),z=t(((e,t)=>{var n=9007199254740991;function r(e){return typeof e==`number`&&e>-1&&e%1==0&&e<=n}t.exports=r})),B=t(((e,t)=>{var n=g(),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})),V=t(((e,t)=>{var n=I(),r=L(),i=u(),a=R(),o=z(),s=B();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})),Ce=e(t(((e,t)=>{var n=l(),r=V();function i(e,t){return e!=null&&r(e,t,n)}t.exports=i}))(),1),H;(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`})(H||={});var we;(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`})(we||={});var U;(function(e){e.Triangle=`triangle`,e.Dots=`dots`})(U||={});function Te(e){return`width`in e&&typeof e.width==`number`}async function Ee(e){return typeof e==`object`?e:await e()}function W(e){return!(e.kind===H.Loading||e.kind===H.Bubble||e.kind===H.RowID||e.kind===H.Protected||e.kind===H.Drilldown)}function De(e){return e.kind===G.Marker||e.kind===G.NewRow}function Oe(e){if(!W(e)||e.kind===H.Image)return!1;if(e.kind===H.Text||e.kind===H.Number||e.kind===H.Markdown||e.kind===H.Uri||e.kind===H.Custom||e.kind===H.Boolean)return e.readonly!==!0;a(e,`A cell was passed with an invalid kind`)}function ke(e){return(0,Ce.default)(e,`editor`)}function Ae(e){return!(e.readonly??!1)}var G;(function(e){e.NewRow=`new-row`,e.Marker=`marker`})(G||={});function je(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 Me,Ne=class e{items;constructor(e){this.items=e}static empty=()=>Me??=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(je([...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}},K={},q=null;function Pe(){let e=document.createElement(`div`);return e.style.opacity=`0`,e.style.pointerEvents=`none`,e.style.position=`fixed`,document.body.append(e),e}function J(e){let t=e.toLowerCase().trim();if(K[t]!==void 0)return K[t];q||=Pe(),q.style.color=`#000`,q.style.color=t;let n=getComputedStyle(q).color;q.style.color=`#fff`,q.style.color=t;let r=getComputedStyle(q).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),K[t]=i,i}function Y(e,t){let[n,r,i]=J(e);return`rgba(${n}, ${r}, ${i}, ${t})`}var X=new Map;function Fe(e,t){let n=`${e}-${t}`,r=X.get(n);if(r!==void 0)return r;let i=Z(e,t);return X.set(n,i),i}function Z(e,t){if(t===void 0)return e;let[n,r,i,a]=J(e);if(a===1)return e;let[o,s,c,l]=J(t),u=a+l*(1-a);return`rgba(${(a*n+l*o*(1-a))/u}, ${(a*r+l*s*(1-a))/u}, ${(a*i+l*c*(1-a))/u}, ${u})`}var Q=e(n(),1);function Ie(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 $={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 Le(){return $}var Re=Q.createContext($);function ze(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]=Z(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}var Be=class extends Q.PureComponent{wrapperRef=Q.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 Q.createElement(`div`,{...n,ref:this.wrapperRef},this.props.children)}};export{S as A,d as B,R as C,D,M as E,g as F,o as G,i as H,h as I,m as L,y as M,v as N,E as O,_ as P,p as R,z as S,I as T,a as U,u as V,c as W,Oe as _,ze as a,V as b,Y as c,U as d,G as f,ke as g,De as h,Ie as i,x as j,w as k,Ne as l,W as m,Re as n,Z as o,Ae as p,Le as r,Fe as s,Be as t,H as u,Te as v,L as w,B as x,Ee as y,f as z};
@@ -1 +0,0 @@
1
- import{t as e}from"./createLucideIcon-D8pyde1A.js";var t=e(`clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]);export{t};
@@ -1 +0,0 @@
1
- import{t as e}from"./createLucideIcon-D8pyde1A.js";var t=e(`code`,[[`path`,{d:`m16 18 6-6-6-6`,key:`eg8j8`}],[`path`,{d:`m8 6-6 6 6 6`,key:`ppft3o`}]]);export{t};
@@ -1,7 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/markdown-renderer-HPQE8ilD.js","assets/vendor-mermaid-CXxglerV.js","assets/rolldown-runtime-FhOqtrmT.js","assets/window-store-D0HbQ1pM.js","assets/react-D1Yg256j.js","assets/vendor-markdown-Ls5AcU91.js","assets/markdown-renderer-C1KVXiXr.js","assets/index-A3ripVe5.js","assets/window-pip-registry-CrCYYTTf.js","assets/panel-store-BmdcSBNb.js","assets/utils-IrnQujwR.js","assets/use-coarse-long-press-BmI_GVW5.js","assets/createLucideIcon-D8pyde1A.js","assets/button-DX32ffge.js","assets/vendor-ui-CaeeFO0B.js","assets/context-menu-CJL8L98s.js","assets/portal-container-context-DKymYOY-.js","assets/chevron-right-De-Wz5Lz.js","assets/circle-BCy0AUCo.js","assets/mobile-bottom-sheet-CmySDB6I.js","assets/use-visual-viewport-Bfl3Bxxb.js","assets/use-is-mobile-D1weanbj.js","assets/api-client-CEYCBt_0.js","assets/project-store-wWZ6bjwq.js","assets/ws-auth-D111jj32.js","assets/settings-store-Bsu_5zIU.js","assets/streaming-store-9XVmAMfV.js","assets/tab-store-1xYJb0gM.js","assets/apply-theme-BVXAUYoN.js","assets/resolve-theme-CMp5xxCW.js","assets/arrow-left-CyFcsyzD.js","assets/bot-D6sx11y0.js","assets/check-DN75Ucvz.js","assets/chevron-down-Dp0rpHb8.js","assets/chevron-up-8PbsNiJp.js","assets/clock-C1CQUQPZ.js","assets/sparkles-Dh-_J2Rd.js","assets/copy-BewHj66E.js","assets/database-Y3ESDK4-.js","assets/download-DG3_9xXy.js","assets/eye-off-GjXVuAOn.js","assets/eye-gWwaF4Lg.js","assets/loader-circle-DPMrnLQ2.js","assets/monitor-C835ucWH.js","assets/x-CxoBA0po.js","assets/index-B9Wbjl0o.css","assets/image-gallery-DZFo6X0Q.js","assets/run-in-terminal-Sb6TFU4f.js","assets/csv-preview-DiSiq6UJ.js","assets/csv-parser-0OmrzV4G.js","assets/lib-Bss7BrXJ.js","assets/image-preview-C7dCEQCx.js","assets/use-blob-url-BMtoAEL4.js","assets/file-exclamation-point-JzhTU2TX.js","assets/pdf-preview-QeXX_VpL.js","assets/video-preview-DzzFr0gI.js","assets/can-open-in-ppm-DyFXJvuW.js","assets/media-url-TGgkntUW.js","assets/audio-preview-C2PCzvr5.js","assets/docx-preview-Dg8lD3f3.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-lbUFJwCD.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-CXxglerV.js";import{t as b}from"./settings-store-Bsu_5zIU.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-A3ripVe5.js";import{t as ke}from"./use-monaco-theme-Ck1i7NEe.js";import"./click-outside-container-XmmmdSm7.js";import{i as Ae,n as je,r as Me,t as Ne}from"./can-open-in-ppm-DyFXJvuW.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-HPQE8ilD.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-DiSiq6UJ.js`).then(e=>({default:e.CsvPreview})),__vite__mapDeps([48,2,7,1,3,4,5,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-C7dCEQCx.js`).then(e=>({default:e.ImagePreview})),__vite__mapDeps([51,52,2,22,14,5,53,12,42]))),Ze=(0,I.lazy)(()=>y(()=>import(`./pdf-preview-QeXX_VpL.js`).then(e=>({default:e.PdfPreview})),__vite__mapDeps([54,2,7,1,3,4,5,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,53]))),Qe=(0,I.lazy)(()=>y(()=>import(`./video-preview-DzzFr0gI.js`).then(e=>({default:e.VideoPreview})),__vite__mapDeps([55,2,7,1,3,4,5,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,56,57,53]))),$e=(0,I.lazy)(()=>y(()=>import(`./audio-preview-C2PCzvr5.js`).then(e=>({default:e.AudioPreview})),__vite__mapDeps([58,2,22,14,5,57,10,12,53]))),et=(0,I.lazy)(()=>y(()=>import(`./docx-preview-Dg8lD3f3.js`).then(e=>({default:e.DocxPreview})),__vite__mapDeps([59,2,22,14,5,53,12,42])));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{g as r,h as i,i as a,m as o,n as s,t as c}from"./click-outside-container-XmmmdSm7.js";import{t as l}from"./dist-BuUB-Gou.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:!(o(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&&o(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(i(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=r(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:o(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(s.Provider,{value:y},d.createElement(c,{style:a(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}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-lbUFJwCD.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-CXxglerV.js";import"./settings-store-Bsu_5zIU.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-A3ripVe5.js";import"./use-monaco-theme-Ck1i7NEe.js";import{t as h}from"./sql-query-editor-DPtExW0C.js";import"./click-outside-container-XmmmdSm7.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};