@hienlh/ppm 0.18.13 → 0.18.14
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.
- package/CHANGELOG.md +5 -0
- package/assets/skills/ppm/SKILL.md +1 -1
- package/assets/skills/ppm/references/cli-reference.md +4 -4
- package/assets/skills/ppm/references/http-api.md +1 -1
- package/dist/web/assets/{adaptive-context-menu-CbgPYQmj.js → adaptive-context-menu-DCZtgOL7.js} +1 -1
- package/dist/web/assets/{ai-resource-editor-unM2HNmg.js → ai-resource-editor-D5CPBg06.js} +1 -1
- package/dist/web/assets/{ai-settings-section-CdktdrwF.js → ai-settings-section-DY-t1bK8.js} +1 -1
- package/dist/web/assets/{angular-html-DcpbdcNG.js → angular-html-CTvM4ulF.js} +1 -1
- package/dist/web/assets/{angular-ts-Bv_WIk34.js → angular-ts-B_vSkjco.js} +1 -1
- package/dist/web/assets/{api-settings-DfXViPKz.js → api-settings-DRF9oYkn.js} +1 -1
- package/dist/web/assets/{apl-D5_lLszu.js → apl-DywzTry0.js} +1 -1
- package/dist/web/assets/architecture-PBZL5I3N-nw5-j_I_.js +1 -0
- package/dist/web/assets/{astro-CBHwddYL.js → astro-1JaRgaSb.js} +1 -1
- package/dist/web/assets/{audio-preview-BD1iDovf.js → audio-preview-DAuGvOiK.js} +1 -1
- package/dist/web/assets/{blade-DGe1d2Pq.js → blade-CDeeJWBb.js} +1 -1
- package/dist/web/assets/{bsl-2lyAzRJA.js → bsl-BfgoPVYR.js} +1 -1
- package/dist/web/assets/{cairo-DjzZeJrq.js → cairo-C26gNwWW.js} +1 -1
- package/dist/web/assets/chat-tab-IcnU3nqQ.js +15 -0
- package/dist/web/assets/{cobol-cC3XIuAJ.js → cobol-D92nBnON.js} +1 -1
- package/dist/web/assets/code-editor-Dno5Srkm.js +10 -0
- package/dist/web/assets/{coffee-4eGboVoU.js → coffee-CIWH40R1.js} +1 -1
- package/dist/web/assets/{conflict-editor-DdJag4QK.js → conflict-editor-CDp0I3mD.js} +1 -1
- package/dist/web/assets/{cpp-DF9_G-OU.js → cpp-DOrBqXCn.js} +1 -1
- package/dist/web/assets/{crystal-OavZlzcm.js → crystal-BNKqmHux.js} +1 -1
- package/dist/web/assets/{csv-preview-DnXwouF3.js → csv-preview-D4svNDAq.js} +1 -1
- package/dist/web/assets/{data-grid-overlay-editor-B9Gpjm3l.js → data-grid-overlay-editor-BqV0AxZg.js} +1 -1
- package/dist/web/assets/{database-viewer-Dk8oGyZx.js → database-viewer-BCvv_Bwf.js} +1 -1
- package/dist/web/assets/{dialog-B-l2ZxVm.js → dialog-DcLGDwaX.js} +1 -1
- package/dist/web/assets/diff-viewer-D41fCFAi.js +4 -0
- package/dist/web/assets/{edge-TzYh8OlN.js → edge-Dbjp42Pt.js} +1 -1
- package/dist/web/assets/{edit-diff-preview-DlwP3UIU.js → edit-diff-preview-BqcUuFCc.js} +1 -1
- package/dist/web/assets/{elixir-Cy3RhKKH.js → elixir-na3b1pYy.js} +1 -1
- package/dist/web/assets/{elm-BTBZdweK.js → elm-_Nalil1R.js} +1 -1
- package/dist/web/assets/{erb-dv1mI0y4.js → erb-CW_7dubf.js} +1 -1
- package/dist/web/assets/{erlang-DjeiDrkl.js → erlang-DmZ7Zzb0.js} +1 -1
- package/dist/web/assets/{esm-FRwvcesu.js → esm-CwyBetO1.js} +1 -1
- package/dist/web/assets/{explorer-body-DkCkSVrN.js → explorer-body-DB1L30pa.js} +2 -2
- package/dist/web/assets/explorer-window-content-Cwlt3C3I.js +1 -0
- package/dist/web/assets/{fortran-fixed-form-BCH9DAIJ.js → fortran-fixed-form-DB2A8L4-.js} +1 -1
- package/dist/web/assets/{fsharp-C93NYKYD.js → fsharp-BYHrti7z.js} +1 -1
- package/dist/web/assets/{gdresource-BcIEE2eX.js → gdresource-D5GBin40.js} +1 -1
- package/dist/web/assets/{git-commit-BVjlXEy8.js → git-commit-CUiOBoIL.js} +1 -1
- package/dist/web/assets/{git-log-panel-2_4HuP47.js → git-log-panel-C1QDkmgl.js} +1 -1
- package/dist/web/assets/{git-rebase-Bj_21B1V.js → git-rebase-DOxGnpdw.js} +1 -1
- package/dist/web/assets/gitGraph-HDMCJU4V-C1xf87gN.js +1 -0
- package/dist/web/assets/{glide-data-grid-B0IY6n_Q.js → glide-data-grid-Dz8lx6n2.js} +4 -4
- package/dist/web/assets/{glimmer-js-C20yj4Zv.js → glimmer-js-Begy4UT7.js} +1 -1
- package/dist/web/assets/{glimmer-ts-ipbYC7kh.js → glimmer-ts-rPApRY8N.js} +1 -1
- package/dist/web/assets/{glsl-Dovazu3t.js → glsl-wrbPvrBL.js} +1 -1
- package/dist/web/assets/{graphql-DpMlM7hC.js → graphql-Cu4-NR__.js} +1 -1
- package/dist/web/assets/group-chat-tab-DFwr-pig.js +1 -0
- package/dist/web/assets/{hack-gc7LCBuV.js → hack-Ddo93XKD.js} +1 -1
- package/dist/web/assets/{haml-vtlFm9gm.js → haml-BFX_1i8j.js} +1 -1
- package/dist/web/assets/{handlebars-DGKhpCji.js → handlebars-5gFKA4H5.js} +1 -1
- package/dist/web/assets/{html-DvfhQbXb.js → html-C06I-zeO.js} +1 -1
- package/dist/web/assets/{html-derivative-C3oTSSCN.js → html-derivative-e5JLAFZF.js} +1 -1
- package/dist/web/assets/{http-SG6zLTo7.js → http-CrAAhSU7.js} +1 -1
- package/dist/web/assets/{hurl-BWXsYlqW.js → hurl-T1V3SX9T.js} +1 -1
- package/dist/web/assets/{hxml-DUdMzaoh.js → hxml-B056LLKN.js} +1 -1
- package/dist/web/assets/{image-preview-DxgFOV1T.js → image-preview-DWyuCYT3.js} +1 -1
- package/dist/web/assets/index-oUKV5nIA.js +52 -0
- package/dist/web/assets/info-3K5VOQVL-C2z7FTDe.js +1 -0
- package/dist/web/assets/{jinja-955w9RKM.js → jinja-DGdtRh43.js} +1 -1
- package/dist/web/assets/{jison-WWfqPo50.js → jison-Ah6QobPS.js} +1 -1
- package/dist/web/assets/{julia-BFrfnaNl.js → julia-BJeGOK0K.js} +1 -1
- package/dist/web/assets/{just-BrZdyR_I.js → just-iw9oRs7j.js} +1 -1
- package/dist/web/assets/{latex-CwtPPASD.js → latex-DHjj5hyN.js} +1 -1
- package/dist/web/assets/{liquid-CYZuvDDd.js → liquid-B-FFecDc.js} +1 -1
- package/dist/web/assets/{lua-BV095ZyY.js → lua-DDianJp_.js} +1 -1
- package/dist/web/assets/{markdown-renderer-CnRcKK3d.js → markdown-renderer-BHiUhQN8.js} +3 -3
- package/dist/web/assets/{markdown-renderer-BTS8ifdu.js → markdown-renderer-CnE36_gd.js} +1 -1
- package/dist/web/assets/{marko-CNeljZ1C.js → marko-BW5SBVng.js} +1 -1
- package/dist/web/assets/{mdc-JfGapShy.js → mdc-B9gL9bjl.js} +1 -1
- package/dist/web/assets/mobile-explorer-sheet-BzjlS1Xn.js +1 -0
- package/dist/web/assets/{nextflow-DD5C8nqX.js → nextflow-dTluY6qy.js} +1 -1
- package/dist/web/assets/{nginx-Ca7B__x_.js → nginx-DlwghGI-.js} +1 -1
- package/dist/web/assets/{nim-B8FogsDw.js → nim-N9jddb5D.js} +1 -1
- package/dist/web/assets/{notification-store-Yvy1I8gd.js → notification-store-C7UBqxYP.js} +1 -1
- package/dist/web/assets/{number-overlay-editor-DG9xJwEG.js → number-overlay-editor-BVXM7aAs.js} +1 -1
- package/dist/web/assets/{overview-panel-s53bnl0q.js → overview-panel-DCCDmtCQ.js} +1 -1
- package/dist/web/assets/packet-RMMSAZCW-DQUxN0wU.js +1 -0
- package/dist/web/assets/{perl-BR78hS8R.js → perl-CkmpYKa_.js} +1 -1
- package/dist/web/assets/{php-DXBOMC9z.js → php-BwZ3KDPo.js} +1 -1
- package/dist/web/assets/pie-UPGHQEXC-BOr9ek4Q.js +1 -0
- package/dist/web/assets/{postgres-viewer-BvoWSuoZ.js → postgres-viewer--CRN1fvO.js} +3 -3
- package/dist/web/assets/{process-table-BYwKigiD.js → process-table-CXC10GSy.js} +1 -1
- package/dist/web/assets/{pug-CvTwVVKV.js → pug-B3rBPqQo.js} +1 -1
- package/dist/web/assets/{qml-CPSoZ1-B.js → qml-BfDbWFmg.js} +1 -1
- package/dist/web/assets/radar-KQ55EAFF-DSErxZFb.js +1 -0
- package/dist/web/assets/{razor-BUA1YKtF.js → razor-B1ww1r38.js} +1 -1
- package/dist/web/assets/{rst-BJsq7ISz.js → rst-C0MSq6m-.js} +1 -1
- package/dist/web/assets/{ruby-DSDMeYf5.js → ruby-ClIZ1wb3.js} +1 -1
- package/dist/web/assets/{sas-B1nJOjbN.js → sas-DR0j3o4_.js} +1 -1
- package/dist/web/assets/{scss-BZFyRiQn.js → scss-Vh3JLayR.js} +1 -1
- package/dist/web/assets/{settings-store-GV5pkkke.js → settings-store-OLJE7dPH.js} +2 -2
- package/dist/web/assets/{settings-tab-BePvIcjd.js → settings-tab-B1rvHFc6.js} +1 -1
- package/dist/web/assets/settings-tab-BUlmPJ2w.js +1 -0
- package/dist/web/assets/{shaderlab-laINRXBo.js → shaderlab-0rHRnQ18.js} +1 -1
- package/dist/web/assets/{shellsession-BpOOvWVR.js → shellsession-Dxdw6D8c.js} +1 -1
- package/dist/web/assets/{soy-BW4d91Sa.js → soy-BHlSNj1y.js} +1 -1
- package/dist/web/assets/{sparql-BsvvyoHn.js → sparql-B2QaPpni.js} +1 -1
- package/dist/web/assets/{sql-query-editor-qQce5QJ6.js → sql-query-editor-R_iKjPP9.js} +1 -1
- package/dist/web/assets/{sqlite-viewer-yhc0YNvu.js → sqlite-viewer-b2onA0SP.js} +1 -1
- package/dist/web/assets/{stata-K-dZInUt.js → stata-CwIxjsEJ.js} +1 -1
- package/dist/web/assets/{surrealql-CpNp2sgf.js → surrealql-C6vo-rp-.js} +1 -1
- package/dist/web/assets/{svelte-BG6iBA8R.js → svelte-LLdJ6rlH.js} +1 -1
- package/dist/web/assets/system-monitor-body-DPYQlBEt.js +2 -0
- package/dist/web/assets/system-monitor-tab-CPQdWv27.js +1 -0
- package/dist/web/assets/{system-monitor-window-content-CaOhD0AU.js → system-monitor-window-content-BPif0azo.js} +1 -1
- package/dist/web/assets/tab-host-window-content-BnAN6m4K.js +1 -0
- package/dist/web/assets/team-member-sheet-Bu2wG1sm.js +2 -0
- package/dist/web/assets/{team-member-window-content-B1jkKkDi.js → team-member-window-content-BSyU-5Uc.js} +1 -1
- package/dist/web/assets/{templ-gxNKXmt3.js → templ-CJGvhEP5.js} +1 -1
- package/dist/web/assets/{terminal-tab-UvwM0sty.js → terminal-tab-Ncor0Rfu.js} +3 -3
- package/dist/web/assets/{tex-C0ON27g5.js → tex-psXWhc4t.js} +1 -1
- package/dist/web/assets/{tool-cards-jB7GT-wj.js → tool-cards-DdVP1wrD.js} +3 -3
- package/dist/web/assets/treemap-KZPCXAKY-C17p0LQw.js +1 -0
- package/dist/web/assets/{ts-tags-BX_CTVgQ.js → ts-tags-D5Ar_ZCO.js} +1 -1
- package/dist/web/assets/{twig-CwL7XnU0.js → twig-vJgGC-qY.js} +1 -1
- package/dist/web/assets/use-monaco-theme-BshnLXoY.js +1 -0
- package/dist/web/assets/{use-open-team-member-1hRsHLKg.js → use-open-team-member-CY3wOdWL.js} +1 -1
- package/dist/web/assets/{use-websocket-rxJLbFqy.js → use-websocket-B7xjNsyD.js} +1 -1
- package/dist/web/assets/{vendor-mermaid-CHTa6D69.js → vendor-mermaid-999ksD45.js} +1 -1
- package/dist/web/assets/{video-preview-DMhnf2Gi.js → video-preview-7F72sRwf.js} +1 -1
- package/dist/web/assets/{vue-Bykm6wSS.js → vue-BWngFyav.js} +1 -1
- package/dist/web/assets/{vue-html-CETdK_iV.js → vue-html-BN5ZLu-H.js} +1 -1
- package/dist/web/assets/{vue-vine-DiJb6fO5.js → vue-vine-BZHnO8yV.js} +1 -1
- package/dist/web/assets/window-pip-registry-BnYU83LE.js +1 -0
- package/dist/web/assets/{xml-BNw8J5YW.js → xml-DS2beZHp.js} +1 -1
- package/dist/web/assets/{xsl-CsG9L31b.js → xsl-Ciiku1Bq.js} +1 -1
- package/dist/web/index.html +19 -18
- package/dist/web/sw.js +1 -1
- package/docs/architecture/workspace-and-ui.md +8 -0
- package/docs/design-guidelines.md +3 -2
- package/package.json +1 -1
- package/src/services/edge-forwarder.ts +191 -191
- package/src/services/windows-process-tree.ts +351 -351
- package/src/web/components/floating-window/floating-window.tsx +8 -1
- package/src/web/components/floating-window/open-tab-in-pip.ts +78 -0
- package/src/web/components/floating-window/window-pip-registry.ts +46 -0
- package/src/web/components/layout/tab-pop-out-menu-item.tsx +25 -2
- package/dist/web/assets/architecture-PBZL5I3N-BzFm9ELu.js +0 -1
- package/dist/web/assets/chat-tab-DzK8LGti.js +0 -15
- package/dist/web/assets/code-editor-CuMfPN9X.js +0 -10
- package/dist/web/assets/diff-viewer-eaUBjLCH.js +0 -4
- package/dist/web/assets/explorer-window-content-MsnTVngu.js +0 -1
- package/dist/web/assets/gitGraph-HDMCJU4V-B72vcb2r.js +0 -1
- package/dist/web/assets/group-chat-tab-DRLDHOp6.js +0 -1
- package/dist/web/assets/index-CBn4SOoT.js +0 -52
- package/dist/web/assets/info-3K5VOQVL-3irPxRK_.js +0 -1
- package/dist/web/assets/mobile-explorer-sheet-BqK2-WuN.js +0 -1
- package/dist/web/assets/packet-RMMSAZCW-Z5jWjFCV.js +0 -1
- package/dist/web/assets/pie-UPGHQEXC-Bq7UMi8P.js +0 -1
- package/dist/web/assets/radar-KQ55EAFF-BLo4BOTD.js +0 -1
- package/dist/web/assets/settings-tab-Br-lJSPa.js +0 -1
- package/dist/web/assets/system-monitor-body-D8Z5QXBB.js +0 -2
- package/dist/web/assets/system-monitor-tab-BclYXFTe.js +0 -1
- package/dist/web/assets/tab-host-window-content-f_Rc5rJK.js +0 -1
- package/dist/web/assets/team-member-sheet-QDHoYCs0.js +0 -2
- package/dist/web/assets/treemap-KZPCXAKY-dyrE6SW2.js +0 -1
- package/dist/web/assets/use-monaco-theme--9tOOkDA.js +0 -1
- package/packages/vscode-compat/node_modules/.bin/tsc.bunx +0 -0
- package/packages/vscode-compat/node_modules/.bin/tsc.exe +0 -0
- package/packages/vscode-compat/node_modules/.bin/tsserver.bunx +0 -0
- package/packages/vscode-compat/node_modules/.bin/tsserver.exe +0 -0
- /package/dist/web/assets/{abap-DGlrX_8G.js → abap-CjzrhAS2.js} +0 -0
- /package/dist/web/assets/{actionscript-3-CUqRtUJE.js → actionscript-3-B59Kbl-9.js} +0 -0
- /package/dist/web/assets/{ada-CY3Spa33.js → ada-B7gItKAE.js} +0 -0
- /package/dist/web/assets/{andromeeda-Lxs2TJn7.js → andromeeda-Dy5zcy0Q.js} +0 -0
- /package/dist/web/assets/{apache-DfxgGdgM.js → apache-B6T9jrc0.js} +0 -0
- /package/dist/web/assets/{apex-QVDF1dnI.js → apex-CTsIxDQw.js} +0 -0
- /package/dist/web/assets/{api-settings-BdCtex9i.js → api-settings-B2iNXQ0c.js} +0 -0
- /package/dist/web/assets/{api-themes-pRRoLvgD.js → api-themes-DrWnJbhs.js} +0 -0
- /package/dist/web/assets/{applescript-pwJ8QXh-.js → applescript-DuycKmmb.js} +0 -0
- /package/dist/web/assets/{apply-theme-B_bMVL6a.js → apply-theme-r8tKDrCR.js} +0 -0
- /package/dist/web/assets/{ara-mPjeX5YX.js → ara-CISL3599.js} +0 -0
- /package/dist/web/assets/{asciidoc-Bf7LsDkI.js → asciidoc-BXyE2Lpr.js} +0 -0
- /package/dist/web/assets/{asm-rRKC1OUx.js → asm-y258phtP.js} +0 -0
- /package/dist/web/assets/{aurora-x-DwQr0DkG.js → aurora-x-Dq3Jc78M.js} +0 -0
- /package/dist/web/assets/{awk-Bpt768fN.js → awk-DxL6XSJv.js} +0 -0
- /package/dist/web/assets/{ayu-dark-D9lwQHMs.js → ayu-dark-DjoK6Evo.js} +0 -0
- /package/dist/web/assets/{ayu-light-B4-ptrU5.js → ayu-light-CKKXBLMI.js} +0 -0
- /package/dist/web/assets/{ayu-mirage-DAyRzH5Q.js → ayu-mirage-DGXSrrXB.js} +0 -0
- /package/dist/web/assets/{ballerina-Cgdpj1HC.js → ballerina-DZSXFmUf.js} +0 -0
- /package/dist/web/assets/{bat-4FrN36S2.js → bat-BNsZk6nY.js} +0 -0
- /package/dist/web/assets/{beancount-DkcxQER3.js → beancount-cPl4gJct.js} +0 -0
- /package/dist/web/assets/{berry-Dnuut-Ml.js → berry-DGAodERk.js} +0 -0
- /package/dist/web/assets/{bibtex-CCDwmbuA.js → bibtex-DftVoRif.js} +0 -0
- /package/dist/web/assets/{bicep-BC0ryoGM.js → bicep-Suioyyzh.js} +0 -0
- /package/dist/web/assets/{bird2-C50V_A-0.js → bird2-DjU24I2P.js} +0 -0
- /package/dist/web/assets/{button-2WCAS8dI.js → button-tNy0ba3y.js} +0 -0
- /package/dist/web/assets/{c-Ddorhq0U.js → c-DFi8Y_nN.js} +0 -0
- /package/dist/web/assets/{c3-DdIf5r9E.js → c3-1eSHnH5V.js} +0 -0
- /package/dist/web/assets/{cadence-s9pd1Wng.js → cadence-DLLsFwQP.js} +0 -0
- /package/dist/web/assets/{can-open-in-ppm-C6hZV1OP.js → can-open-in-ppm-in727eFQ.js} +0 -0
- /package/dist/web/assets/{catppuccin-frappe-CzJNTyu-.js → catppuccin-frappe-DDj0JEiY.js} +0 -0
- /package/dist/web/assets/{catppuccin-latte-BNpt-m7s.js → catppuccin-latte-DPyANHyR.js} +0 -0
- /package/dist/web/assets/{catppuccin-macchiato-FYGkfsJ5.js → catppuccin-macchiato-CO-h8VTT.js} +0 -0
- /package/dist/web/assets/{catppuccin-mocha-it2g5D1q.js → catppuccin-mocha-BCmbN2IZ.js} +0 -0
- /package/dist/web/assets/{clarity-BVFBTjMe.js → clarity-C0pYsZjs.js} +0 -0
- /package/dist/web/assets/{clipboard-BWznymz7.js → clipboard-DBLGKMrH.js} +0 -0
- /package/dist/web/assets/{clojure-BSYvXMI8.js → clojure-JFr6s8iZ.js} +0 -0
- /package/dist/web/assets/{cmake-DGEqH-Np.js → cmake-EEcLEgVy.js} +0 -0
- /package/dist/web/assets/{codeowners-D8FCOxWg.js → codeowners-Deh3Lx0u.js} +0 -0
- /package/dist/web/assets/{codeql-COV0eluG.js → codeql-C317igT5.js} +0 -0
- /package/dist/web/assets/{common-lisp-xHnZUlgt.js → common-lisp-DepbATZs.js} +0 -0
- /package/dist/web/assets/{coq-Cs_2i3Xg.js → coq-MxgxU5ya.js} +0 -0
- /package/dist/web/assets/{csharp-B1ONB4PT.js → csharp-eEFXdsAq.js} +0 -0
- /package/dist/web/assets/{css-BgGQbvrZ.js → css-Db-syWW9.js} +0 -0
- /package/dist/web/assets/{csv-CNHmQBzs.js → csv-DHeYcbaq.js} +0 -0
- /package/dist/web/assets/{csv-parser-DWR24J17.js → csv-parser-_JWMLGl3.js} +0 -0
- /package/dist/web/assets/{cue-ZXAKzwIy.js → cue-BmUNowrt.js} +0 -0
- /package/dist/web/assets/{cypher-4PL5bmT5.js → cypher-XjXHgCNS.js} +0 -0
- /package/dist/web/assets/{d-CEsV3RT2.js → d-BWJnZtig.js} +0 -0
- /package/dist/web/assets/{dark-plus-NtFnYSDz.js → dark-plus-Db7umas1.js} +0 -0
- /package/dist/web/assets/{dart-CKHn4mDf.js → dart-DSI4HYh1.js} +0 -0
- /package/dist/web/assets/{data-grid-types-CxU8oo-j.js → data-grid-types-CfVHh9gv.js} +0 -0
- /package/dist/web/assets/{dax-Cmkj1I_M.js → dax-yw1JsAni.js} +0 -0
- /package/dist/web/assets/{desktop-DJLalvPQ.js → desktop-C2QO4RvD.js} +0 -0
- /package/dist/web/assets/{diff-BnS2wpj6.js → diff-Drt8aEyp.js} +0 -0
- /package/dist/web/assets/{dist-uYjs3Wv6.js → dist-DNRvhVdz.js} +0 -0
- /package/dist/web/assets/{dist-CuIdRyUB.js → dist-VBxOHLmN.js} +0 -0
- /package/dist/web/assets/{docker-CovNy7ml.js → docker-ByDKbmLl.js} +0 -0
- /package/dist/web/assets/{docx-preview-DAdHPlhZ.js → docx-preview-DfaQn9v7.js} +0 -0
- /package/dist/web/assets/{dotenv-Gh4w3I6B.js → dotenv-BkfOLytR.js} +0 -0
- /package/dist/web/assets/{dracula-NF0tAHXl.js → dracula-DAmrm-Un.js} +0 -0
- /package/dist/web/assets/{dracula-soft-Cj_qBurK.js → dracula-soft-BUOEnKqR.js} +0 -0
- /package/dist/web/assets/{dream-maker-CRuZPcl7.js → dream-maker-DQBIfSiO.js} +0 -0
- /package/dist/web/assets/{emacs-lisp-BACmC9qj.js → emacs-lisp-Blh5kBD3.js} +0 -0
- /package/dist/web/assets/{everforest-dark-Dd9av4QG.js → everforest-dark-CEzhDxHq.js} +0 -0
- /package/dist/web/assets/{everforest-light-C-jsss-B.js → everforest-light-CPk_5Khm.js} +0 -0
- /package/dist/web/assets/{extension-webview-W0qRfaAU.js → extension-webview-BW_mccb3.js} +0 -0
- /package/dist/web/assets/{fennel-BJA9XnL8.js → fennel-B1MT_EBZ.js} +0 -0
- /package/dist/web/assets/{fish-CKlhNSc2.js → fish-C_HGcewt.js} +0 -0
- /package/dist/web/assets/{fluent-wfglRk5D.js → fluent-Dp1Iclmx.js} +0 -0
- /package/dist/web/assets/{format-bytes-utwHMTry.js → format-bytes-53WBtyi2.js} +0 -0
- /package/dist/web/assets/{fortran-free-form-BlXCdid3.js → fortran-free-form-B_-UA4XC.js} +0 -0
- /package/dist/web/assets/{gdscript-BwAVG6Et.js → gdscript-Bm_JpjS_.js} +0 -0
- /package/dist/web/assets/{gdshader-DPc_T7ib.js → gdshader-C_PNmfYU.js} +0 -0
- /package/dist/web/assets/{genie-B-zZSLCX.js → genie-B5rmR2TF.js} +0 -0
- /package/dist/web/assets/{gherkin-CJ0ajpGs.js → gherkin-BTJ34TJ9.js} +0 -0
- /package/dist/web/assets/{github-dark-Dz8ZkzSP.js → github-dark-DOkNVj9H.js} +0 -0
- /package/dist/web/assets/{github-dark-default-CNUYo_kp.js → github-dark-default-DTsmiyVo.js} +0 -0
- /package/dist/web/assets/{github-dark-dimmed-241z_Ycx.js → github-dark-dimmed-CjbxAe9s.js} +0 -0
- /package/dist/web/assets/{github-dark-high-contrast-7r6yZZYH.js → github-dark-high-contrast-r_M8F_k7.js} +0 -0
- /package/dist/web/assets/{github-light-C8gmZn-D.js → github-light-BzfxyMyb.js} +0 -0
- /package/dist/web/assets/{github-light-default-GAEgq1eA.js → github-light-default-BOqiBIy5.js} +0 -0
- /package/dist/web/assets/{github-light-high-contrast-3z91352E.js → github-light-high-contrast-DQzBrDM4.js} +0 -0
- /package/dist/web/assets/{gleam-C7vxW5zd.js → gleam-BWmuAtD8.js} +0 -0
- /package/dist/web/assets/{gn-CyJIXwHP.js → gn-CNQPjiZW.js} +0 -0
- /package/dist/web/assets/{gnuplot-CqLbGgPd.js → gnuplot-BlHjcPMe.js} +0 -0
- /package/dist/web/assets/{go-DdDcK9aX.js → go-Bn8Ba9uz.js} +0 -0
- /package/dist/web/assets/{groovy-UYHggEqH.js → groovy-C1Y1_F4V.js} +0 -0
- /package/dist/web/assets/{gruvbox-dark-hard-B4ierkJn.js → gruvbox-dark-hard-DueOsHav.js} +0 -0
- /package/dist/web/assets/{gruvbox-dark-medium-DYwkDSZ6.js → gruvbox-dark-medium-DaQjD538.js} +0 -0
- /package/dist/web/assets/{gruvbox-dark-soft-CVL4P-Lz.js → gruvbox-dark-soft-CbbX2WOm.js} +0 -0
- /package/dist/web/assets/{gruvbox-light-hard-BJ0LewUZ.js → gruvbox-light-hard-E2M70ljZ.js} +0 -0
- /package/dist/web/assets/{gruvbox-light-medium-CaqqjeGJ.js → gruvbox-light-medium-B_DDLY6h.js} +0 -0
- /package/dist/web/assets/{gruvbox-light-soft-ByKMoVNr.js → gruvbox-light-soft-2SZmyC1F.js} +0 -0
- /package/dist/web/assets/{haskell-BilYRVPp.js → haskell-D8DeoXtG.js} +0 -0
- /package/dist/web/assets/{haxe-Brs9Bj1s.js → haxe-BmZm7B0W.js} +0 -0
- /package/dist/web/assets/{hcl-ClrZpol-.js → hcl-CKnBM3ng.js} +0 -0
- /package/dist/web/assets/{hjson-9PvHnYMX.js → hjson-Ct9t4-ci.js} +0 -0
- /package/dist/web/assets/{hlsl-BbBk4vqV.js → hlsl-BZSASBqS.js} +0 -0
- /package/dist/web/assets/{horizon-E5Py0cny.js → horizon-CzX1AZ08.js} +0 -0
- /package/dist/web/assets/{horizon-bright-DVCsNGEk.js → horizon-bright-CCVNeRIP.js} +0 -0
- /package/dist/web/assets/{houston-JdFEax9Y.js → houston-DBlJN7xc.js} +0 -0
- /package/dist/web/assets/{hy-W_W3tLKT.js → hy-Dyc6h6Xb.js} +0 -0
- /package/dist/web/assets/{image-gallery-5IURd6db.js → image-gallery-DujlrjOC.js} +0 -0
- /package/dist/web/assets/{imba-CfAqJz7T.js → imba-Bauru7s2.js} +0 -0
- /package/dist/web/assets/{ini-C_3gvKWs.js → ini-SjdwtaTp.js} +0 -0
- /package/dist/web/assets/{input-DuAF-Stj.js → input-DouJ9Zvt.js} +0 -0
- /package/dist/web/assets/{java-CKqtXZ-j.js → java-D2r0ocpf.js} +0 -0
- /package/dist/web/assets/{javascript-C7gSEfae.js → javascript-y-lof7iP.js} +0 -0
- /package/dist/web/assets/{json-BoN6e11T.js → json-DO4LSx5A.js} +0 -0
- /package/dist/web/assets/{json5-CgE7C8HW.js → json5-BEwWf-W3.js} +0 -0
- /package/dist/web/assets/{jsonc-DjyoattY.js → jsonc-OBEFv7gP.js} +0 -0
- /package/dist/web/assets/{jsonl-lI82wGSw.js → jsonl-DOyW4Mg3.js} +0 -0
- /package/dist/web/assets/{jsonnet-CszEI8va.js → jsonnet-BL5R2CpP.js} +0 -0
- /package/dist/web/assets/{jssm-CZXDlszb.js → jssm-ksPusAyg.js} +0 -0
- /package/dist/web/assets/{jsx-BeRz0eEz.js → jsx-B6XEu6O-.js} +0 -0
- /package/dist/web/assets/{kanagawa-dragon-BOmnUiyd.js → kanagawa-dragon-JBVe_ji_.js} +0 -0
- /package/dist/web/assets/{kanagawa-lotus-ffU_P5w-.js → kanagawa-lotus-ChprO68_.js} +0 -0
- /package/dist/web/assets/{kanagawa-wave-DKTJZrMu.js → kanagawa-wave-D_uB_R0Q.js} +0 -0
- /package/dist/web/assets/{kdl-BWECJveH.js → kdl-pf5B8N_m.js} +0 -0
- /package/dist/web/assets/{kotlin-DpVwBCSt.js → kotlin-BdF0METC.js} +0 -0
- /package/dist/web/assets/{kusto-BgVqjUZA.js → kusto-BneVP-OU.js} +0 -0
- /package/dist/web/assets/{laserwave-CEVCi8em.js → laserwave-C4-UPIyG.js} +0 -0
- /package/dist/web/assets/{lean-CGyfRhLJ.js → lean-BN6Jdymq.js} +0 -0
- /package/dist/web/assets/{less-B0_H10Ku.js → less-Cx-fdlDC.js} +0 -0
- /package/dist/web/assets/{lib-hrC3bruJ.js → lib-CMuBa85c.js} +0 -0
- /package/dist/web/assets/{libesm-DVpFmwJu.js → libesm-BB74PRsH.js} +0 -0
- /package/dist/web/assets/{light-plus-DqzMqPID.js → light-plus-DFnnn_iL.js} +0 -0
- /package/dist/web/assets/{llvm-9ucnfNiF.js → llvm-BGxtW0Nw.js} +0 -0
- /package/dist/web/assets/{log-m6A2dOSj.js → log-kQb4eJnj.js} +0 -0
- /package/dist/web/assets/{logo-ByPcsC9P.js → logo-DqAzaq7s.js} +0 -0
- /package/dist/web/assets/{luau-DFCo8nBn.js → luau-Dc2cp-zS.js} +0 -0
- /package/dist/web/assets/{make-C90w3MeA.js → make-DYg9dwaJ.js} +0 -0
- /package/dist/web/assets/{markdown-DT0uywZG.js → markdown-O4EPpS3K.js} +0 -0
- /package/dist/web/assets/{material-theme-BVUO93tJ.js → material-theme-ClP8yfQ2.js} +0 -0
- /package/dist/web/assets/{material-theme-darker-xXgGDwnF.js → material-theme-darker-LOK55hGu.js} +0 -0
- /package/dist/web/assets/{material-theme-lighter-BjStPzWB.js → material-theme-lighter-j72tzZqi.js} +0 -0
- /package/dist/web/assets/{material-theme-ocean-wFmSiKjy.js → material-theme-ocean-C19LKClA.js} +0 -0
- /package/dist/web/assets/{material-theme-palenight-e-0CtRoe.js → material-theme-palenight-DJ5tN2ax.js} +0 -0
- /package/dist/web/assets/{matlab-BNaNQAUH.js → matlab-DQNZ_NU8.js} +0 -0
- /package/dist/web/assets/{mdx-DfpVWAqO.js → mdx-CJayB7XK.js} +0 -0
- /package/dist/web/assets/{media-url-Bm4PsduE.js → media-url-DUK-k0bB.js} +0 -0
- /package/dist/web/assets/{mermaid-Bpq7wFCP.js → mermaid-Cb0TRX92.js} +0 -0
- /package/dist/web/assets/{min-dark-CL2Y0WH6.js → min-dark-CWM8Bo-m.js} +0 -0
- /package/dist/web/assets/{min-light-DOgr_IdP.js → min-light-BBR1sjS2.js} +0 -0
- /package/dist/web/assets/{mipsasm-C9ie2zlB.js → mipsasm-Jc7u7YSS.js} +0 -0
- /package/dist/web/assets/{mobile-bottom-sheet-M5iZDX7y.js → mobile-bottom-sheet-CJ7ApOkI.js} +0 -0
- /package/dist/web/assets/{mojo-Md2A2sJy.js → mojo-CTB0cutd.js} +0 -0
- /package/dist/web/assets/{monokai-nbXIEySB.js → monokai-CvM_YNKx.js} +0 -0
- /package/dist/web/assets/{moonbit-CJ-T-s4A.js → moonbit-CbFEfYYM.js} +0 -0
- /package/dist/web/assets/{move-DwEehLIK.js → move-BT38p0kT.js} +0 -0
- /package/dist/web/assets/{narrat-CuF4sIKr.js → narrat-55QZ_kOG.js} +0 -0
- /package/dist/web/assets/{nextflow-groovy-1dYhfPfq.js → nextflow-groovy-Bg8peyqg.js} +0 -0
- /package/dist/web/assets/{night-owl-gZS5mfzY.js → night-owl-DzS77iPK.js} +0 -0
- /package/dist/web/assets/{night-owl-light-DDAster5.js → night-owl-light-DER7fGnx.js} +0 -0
- /package/dist/web/assets/{nix-BlbEYs2c.js → nix-BSI8YesN.js} +0 -0
- /package/dist/web/assets/{nord-BRiPb8Vy.js → nord-9bn7iNWo.js} +0 -0
- /package/dist/web/assets/{nushell-DgWicB1i.js → nushell-qDVZn_lw.js} +0 -0
- /package/dist/web/assets/{objective-c-D8mPZ42Y.js → objective-c-Blf-ATos.js} +0 -0
- /package/dist/web/assets/{objective-cpp-B0pNXzuj.js → objective-cpp-Bz8bAq47.js} +0 -0
- /package/dist/web/assets/{ocaml-lQd7aK5d.js → ocaml-B9heAsc3.js} +0 -0
- /package/dist/web/assets/{odin-CxtIOBjm.js → odin-BaFYnOwO.js} +0 -0
- /package/dist/web/assets/{one-dark-pro-T_UFnWfe.js → one-dark-pro-D6B_hSe-.js} +0 -0
- /package/dist/web/assets/{one-light-LBVqwyV-.js → one-light-Ba-f0wyk.js} +0 -0
- /package/dist/web/assets/{openscad-C5dnS6J7.js → openscad-UvYyL2MK.js} +0 -0
- /package/dist/web/assets/{pascal-CmWCWQML.js → pascal-B4-qvEoG.js} +0 -0
- /package/dist/web/assets/{pdf-preview-DYt3aBzM.js → pdf-preview-D7yLmAZW.js} +0 -0
- /package/dist/web/assets/{pkl-BWWOtDQk.js → pkl-B146nqGx.js} +0 -0
- /package/dist/web/assets/{plastic-ekhupckF.js → plastic-L38t-Id3.js} +0 -0
- /package/dist/web/assets/{plsql-BPsDHXx4.js → plsql-ItOG5Cca.js} +0 -0
- /package/dist/web/assets/{po-BX2FiuW2.js → po-imiCTaNX.js} +0 -0
- /package/dist/web/assets/{poimandres-DzXOdZcN.js → poimandres-Bu6sIba9.js} +0 -0
- /package/dist/web/assets/{polar-DDRXgJzG.js → polar-CTeGoFxV.js} +0 -0
- /package/dist/web/assets/{postcss-BHW6XBhx.js → postcss-jvFe6GNE.js} +0 -0
- /package/dist/web/assets/{powerquery-B89c2NBb.js → powerquery-D9Dw1hJp.js} +0 -0
- /package/dist/web/assets/{powershell-Dvxrd3Tu.js → powershell-CZqvYQtg.js} +0 -0
- /package/dist/web/assets/{prisma-lMK8EFLU.js → prisma-B4D2nO_7.js} +0 -0
- /package/dist/web/assets/{prolog-D0YrtMG4.js → prolog-CQbyUcCF.js} +0 -0
- /package/dist/web/assets/{proto-J0mM25aw.js → proto-Cwpo0cW1.js} +0 -0
- /package/dist/web/assets/{puppet-CUT0xkhh.js → puppet-CKxCwBod.js} +0 -0
- /package/dist/web/assets/{purescript-CoJWSGRp.js → purescript-B-MyXMMp.js} +0 -0
- /package/dist/web/assets/{python-BBrmuz6P.js → python-D6QbSR2S.js} +0 -0
- /package/dist/web/assets/{qmldir-CUtzs4Q7.js → qmldir-BpTSVcw_.js} +0 -0
- /package/dist/web/assets/{qss-Dm1RZ8aL.js → qss-DBc4gbpe.js} +0 -0
- /package/dist/web/assets/{r-BGP7qZTe.js → r-i9jMMi0s.js} +0 -0
- /package/dist/web/assets/{racket-K_6U1lqJ.js → racket-BWNaxU7C.js} +0 -0
- /package/dist/web/assets/{raku-bNSiZeW_.js → raku-fqTZLn7L.js} +0 -0
- /package/dist/web/assets/{red-uVeIEF0f.js → red-D-JEcuzA.js} +0 -0
- /package/dist/web/assets/{reg-DSm9GWjh.js → reg-BbirlU1S.js} +0 -0
- /package/dist/web/assets/{regexp-CljRm_j_.js → regexp-D8VTFrtg.js} +0 -0
- /package/dist/web/assets/{rel-d3JcopZg.js → rel-ByQGKiNM.js} +0 -0
- /package/dist/web/assets/{resolve-theme-DLKmm-lE.js → resolve-theme-Cqb9zWYc.js} +0 -0
- /package/dist/web/assets/{riscv-CJmaELjT.js → riscv-B5nqCfLE.js} +0 -0
- /package/dist/web/assets/{ron-D0g9B1rW.js → ron-DOVh_iZR.js} +0 -0
- /package/dist/web/assets/{rose-pine-dawn-CzZQ-LCF.js → rose-pine-dawn-B7hkmmWy.js} +0 -0
- /package/dist/web/assets/{rose-pine-DOrD2BSH.js → rose-pine-jp51ZUzi.js} +0 -0
- /package/dist/web/assets/{rose-pine-moon-CdmsYp7C.js → rose-pine-moon-Ff063yLj.js} +0 -0
- /package/dist/web/assets/{rosmsg-CmDth6pO.js → rosmsg-Cyk7Il8z.js} +0 -0
- /package/dist/web/assets/{run-in-terminal-C9xpskFn.js → run-in-terminal-4efbW2Xv.js} +0 -0
- /package/dist/web/assets/{rust-DGdP6jiR.js → rust-DRNM5epF.js} +0 -0
- /package/dist/web/assets/{sass-Dkgt2FKZ.js → sass-D_cB0-M1.js} +0 -0
- /package/dist/web/assets/{scala-BQLTON6C.js → scala-Crl-1kKS.js} +0 -0
- /package/dist/web/assets/{scheme-DKlxUGCi.js → scheme-DCaWyEJ0.js} +0 -0
- /package/dist/web/assets/{scroll-area-DBcG1fQo.js → scroll-area-ZP8wcwTI.js} +0 -0
- /package/dist/web/assets/{sdbl-C3iZJQeZ.js → sdbl-BbXNqwtX.js} +0 -0
- /package/dist/web/assets/{send-to-chat-BIg70MUZ.js → send-to-chat-BNrEpAyC.js} +0 -0
- /package/dist/web/assets/{shallow-jwPzEunk.js → shallow-4zAfs2KW.js} +0 -0
- /package/dist/web/assets/{shellscript-BRu-ZQAx.js → shellscript-BAgksBhW.js} +0 -0
- /package/dist/web/assets/{slack-dark-qkm_u2zz.js → slack-dark-GB-ElUW_.js} +0 -0
- /package/dist/web/assets/{slack-ochin-BP8_8e4m.js → slack-ochin-tU6CFD3S.js} +0 -0
- /package/dist/web/assets/{smalltalk-Bnz4gt07.js → smalltalk-DSVGUbtL.js} +0 -0
- /package/dist/web/assets/{snazzy-light-fbPZg5io.js → snazzy-light-DZhi3PoS.js} +0 -0
- /package/dist/web/assets/{solarized-dark-CM0vTRoi.js → solarized-dark-D6AMCco7.js} +0 -0
- /package/dist/web/assets/{solarized-light-C4_W9mvs.js → solarized-light-DepuTWSE.js} +0 -0
- /package/dist/web/assets/{solidity-Bz6v1PoD.js → solidity-CsxN618l.js} +0 -0
- /package/dist/web/assets/{splunk-DyNxu-0i.js → splunk-CF1m0Kkv.js} +0 -0
- /package/dist/web/assets/{sql-DXRL1gw1.js → sql-DvyMDgrB.js} +0 -0
- /package/dist/web/assets/{ssh-config-2z1QHuOG.js → ssh-config-a8sDo-Q8.js} +0 -0
- /package/dist/web/assets/{stylus-D4I-VaeY.js → stylus-DCJ-6AjT.js} +0 -0
- /package/dist/web/assets/{swift-C_2G-tIc.js → swift-c-ZFxyPP.js} +0 -0
- /package/dist/web/assets/{switch-_NcrktLe.js → switch-DV-BDjyk.js} +0 -0
- /package/dist/web/assets/{synthwave-84-osBjChRP.js → synthwave-84-9NPgBcuv.js} +0 -0
- /package/dist/web/assets/{system-verilog-zQP2qPNU.js → system-verilog-DPD02IOo.js} +0 -0
- /package/dist/web/assets/{systemd-UGfjRSBM.js → systemd-BUr5HRtU.js} +0 -0
- /package/dist/web/assets/{talonscript-C1XrFPwo.js → talonscript-BNBQV5YJ.js} +0 -0
- /package/dist/web/assets/{tasl-B5raVn43.js → tasl-BETjpSyu.js} +0 -0
- /package/dist/web/assets/{tcl-3-vbeMIc.js → tcl-Clp_AZiC.js} +0 -0
- /package/dist/web/assets/{terraform-a8VXZDm9.js → terraform-B0kZ0lim.js} +0 -0
- /package/dist/web/assets/{tokyo-night-4SRhf-Hz.js → tokyo-night-oOJ0a7Dk.js} +0 -0
- /package/dist/web/assets/{toml-B4N0i8wT.js → toml-DOPCSumy.js} +0 -0
- /package/dist/web/assets/{tsv-DA5k9Lvw.js → tsv-D6qUGf84.js} +0 -0
- /package/dist/web/assets/{tsx-D9SZ8owC.js → tsx-B6qYhT6O.js} +0 -0
- /package/dist/web/assets/{turtle-BTHTvyY_.js → turtle-C0Rjzw73.js} +0 -0
- /package/dist/web/assets/{typescript-DYzV9p5L.js → typescript-BiydShEu.js} +0 -0
- /package/dist/web/assets/{typespec-BC15eh7F.js → typespec-DjmF6Aww.js} +0 -0
- /package/dist/web/assets/{typst-BJUqzA6D.js → typst-CPuscfcL.js} +0 -0
- /package/dist/web/assets/{use-blob-url-DcRcjNTE.js → use-blob-url-BOVGWg9F.js} +0 -0
- /package/dist/web/assets/{use-is-mobile-DFWViA4S.js → use-is-mobile-b94q8RvF.js} +0 -0
- /package/dist/web/assets/{v-50Lps6oA.js → v-DE4vpLLQ.js} +0 -0
- /package/dist/web/assets/{vala-8wiUvvrD.js → vala-CmUF2pS5.js} +0 -0
- /package/dist/web/assets/{vb-BlgPLt6B.js → vb-BvcRoX4b.js} +0 -0
- /package/dist/web/assets/{vendor-xterm-BZOrwF_F.js → vendor-xterm-K8kpLxdb.js} +0 -0
- /package/dist/web/assets/{verilog-CD9pVW5p.js → verilog-BGIzyH3R.js} +0 -0
- /package/dist/web/assets/{vesper-BrivW4PT.js → vesper-CG7IrHQQ.js} +0 -0
- /package/dist/web/assets/{vhdl-Bunxfa7N.js → vhdl-DMSumomw.js} +0 -0
- /package/dist/web/assets/{viml-DndUb2qM.js → viml-Drt7AEmU.js} +0 -0
- /package/dist/web/assets/{vitesse-black-BurZSkxW.js → vitesse-black-DmsjfN0b.js} +0 -0
- /package/dist/web/assets/{vitesse-dark-8UShspzC.js → vitesse-dark-Dl55_WeJ.js} +0 -0
- /package/dist/web/assets/{vitesse-light-DghCAZ90.js → vitesse-light-Crbv9aGg.js} +0 -0
- /package/dist/web/assets/{vyper-b-Clr-8u.js → vyper-CB7psEJj.js} +0 -0
- /package/dist/web/assets/{wasm-C5v2T06Y.js → wasm-BY1tuM5m.js} +0 -0
- /package/dist/web/assets/{wasm-CpcKStkw.js → wasm-Dck8KPgP.js} +0 -0
- /package/dist/web/assets/{wenyan-Dz2srLZR.js → wenyan-DhewQ68b.js} +0 -0
- /package/dist/web/assets/{wgsl-CeD1-dRb.js → wgsl-DlmiP456.js} +0 -0
- /package/dist/web/assets/{wikitext-CyeS-9FH.js → wikitext-cQCnqNgE.js} +0 -0
- /package/dist/web/assets/{wit-Kr-q-qBQ.js → wit-S5MaCngB.js} +0 -0
- /package/dist/web/assets/{wolfram-BKm8bmln.js → wolfram-Bh8n_9zr.js} +0 -0
- /package/dist/web/assets/{yaml-2XSxomjM.js → yaml-BoK_17l9.js} +0 -0
- /package/dist/web/assets/{zenscript-CKIS34vf.js → zenscript-DB3ZFwNJ.js} +0 -0
- /package/dist/web/assets/{zig-DdHGNllX.js → zig-Bv1BWmfT.js} +0 -0
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/markdown-renderer-BTS8ifdu.js","assets/vendor-mermaid-CHTa6D69.js","assets/rolldown-runtime-FhOqtrmT.js","assets/vendor-ui-CaeeFO0B.js","assets/vendor-markdown-Ls5AcU91.js","assets/markdown-renderer-CnRcKK3d.js","assets/index-CBn4SOoT.js","assets/button-2WCAS8dI.js","assets/utils-C9OjCrou.js","assets/settings-tab-BePvIcjd.js","assets/createLucideIcon-D8pyde1A.js","assets/eye-off-CUdzgmX8.js","assets/bot-D6sx11y0.js","assets/pencil-BlIIg6RH.js","assets/ai-settings-section-CdktdrwF.js","assets/context-menu-BO1c9jKy.js","assets/chevron-right-De-Wz5Lz.js","assets/circle-BCy0AUCo.js","assets/portal-container-context-a399Hd9F.js","assets/chevron-down-Dp0rpHb8.js","assets/upload-BNlX8D07.js","assets/download-DG3_9xXy.js","assets/external-link-B6Hl0U4X.js","assets/loader-circle-Dpqcv0eS.js","assets/refresh-cw-B9iv7csb.js","assets/trash-2-CTXlTflF.js","assets/api-client-oY1tC3tM.js","assets/input-DuAF-Stj.js","assets/switch-_NcrktLe.js","assets/api-settings-BdCtex9i.js","assets/clock-C1CQUQPZ.js","assets/copy-BewHj66E.js","assets/plus-BR0qewJI.js","assets/folder-symlink-Dx1hOk8X.js","assets/send-B-t5Mz26.js","assets/lock-DldbT31x.js","assets/monitor-4vWfqzuN.js","assets/play-CpCAoQRZ.js","assets/rotate-ccw-DnuPzJRE.js","assets/text-wrap-B05VGRa-.js","assets/triangle-alert-BRq0VAfd.js","assets/x-YDu4m2Iq.js","assets/shallow-jwPzEunk.js","assets/file-store-yReVbR8q.js","assets/react-X4jUntEf.js","assets/adaptive-context-menu-CbgPYQmj.js","assets/mobile-bottom-sheet-M5iZDX7y.js","assets/use-is-mobile-DFWViA4S.js","assets/dialog-B-l2ZxVm.js","assets/scroll-area-DBcG1fQo.js","assets/clipboard-BWznymz7.js","assets/project-store-BuY7rxn_.js","assets/extension-store-DUaZINyC.js","assets/keybindings-store-0Wqfa7Qp.js","assets/settings-store-GV5pkkke.js","assets/resolve-theme-DLKmm-lE.js","assets/sparkles-Dh-_J2Rd.js","assets/database-Y3ESDK4-.js","assets/use-coarse-long-press-BmI_GVW5.js","assets/window-store-CQ1lghvv.js","assets/panel-store-B4rijFKN.js","assets/tab-store-tFnyPmm4.js","assets/apply-theme-B_bMVL6a.js","assets/index-DWpNR3nB.css","assets/image-gallery-5IURd6db.js","assets/run-in-terminal-C9xpskFn.js","assets/csv-preview-DnXwouF3.js","assets/lib-hrC3bruJ.js","assets/csv-parser-DWR24J17.js","assets/image-preview-DxgFOV1T.js","assets/file-exclamation-point-JzhTU2TX.js","assets/use-blob-url-DcRcjNTE.js","assets/pdf-preview-DYt3aBzM.js","assets/video-preview-DMhnf2Gi.js","assets/can-open-in-ppm-C6hZV1OP.js","assets/media-url-Bm4PsduE.js","assets/audio-preview-BD1iDovf.js","assets/docx-preview-DAdHPlhZ.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"./external-link-B6Hl0U4X.js";import{n as l}from"./plus-BR0qewJI.js";import{t as u}from"./file-exclamation-point-JzhTU2TX.js";import{a as d,i as f,r as p,t as m}from"./glide-data-grid-B0IY6n_Q.js";import{t as h}from"./loader-circle-Dpqcv0eS.js";import{t as ee}from"./play-CpCAoQRZ.js";import{t as te}from"./refresh-cw-B9iv7csb.js";import{t as ne}from"./shield-check-CdTiK1j2.js";import{t as re}from"./shield-off-DuetkXKM.js";import{t as g}from"./table-FLU8ei8b.js";import{t as _}from"./text-wrap-B05VGRa-.js";import{t as v}from"./x-YDu4m2Iq.js";import{i as ie,n as y}from"./api-client-oY1tC3tM.js";import{q as b}from"./vendor-mermaid-CHTa6D69.js";import{t as ae}from"./settings-store-GV5pkkke.js";import{t as x}from"./utils-C9OjCrou.js";import"./portal-container-context-a399Hd9F.js";import{t as oe}from"./panel-store-B4rijFKN.js";import"./window-store-CQ1lghvv.js";import{i as S}from"./project-store-BuY7rxn_.js";import{t as C}from"./tab-store-tFnyPmm4.js";import{o as w}from"./file-store-yReVbR8q.js";import{t as T}from"./button-2WCAS8dI.js";import{a as E,i as se,n as D,o as ce,t as le}from"./dialog-B-l2ZxVm.js";import{t as ue}from"./shallow-jwPzEunk.js";import{t as de}from"./input-DuAF-Stj.js";import"./scroll-area-DBcG1fQo.js";import{F as fe,Ht as O,I as pe,Sn as me,St as k,_n as A,bn as j,bt as M,dn as he,ft as N,gn as ge,h as _e,hn as ve,mt as P,pn as ye,pt as be,s as xe,wt as Se,xt as F,yn as I,yt as L}from"./index-CBn4SOoT.js";import"./data-grid-types-CxU8oo-j.js";import{t as Ce}from"./use-monaco-theme--9tOOkDA.js";import{i as we,n as Te,r as Ee,t as De}from"./can-open-in-ppm-C6hZV1OP.js";var Oe=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`}]]),R=e(t(),1),z=n();function ke(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 Ae(e){return(await y.get(`/api/fs/browse?path=${encodeURIComponent(e)}`)).entries}function je({filePath:e,projectName:t,tabId:n,className:r}){let{updateTab:a,openTab:o}=C(ue(e=>({updateTab:e.updateTab,openTab:e.openTab}))),s=(0,R.useRef)(null),c=(0,R.useMemo)(()=>ke(e),[e]);(0,R.useEffect)(()=>{s.current&&(s.current.scrollLeft=s.current.scrollWidth)},[c]);let l=(0,R.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,z.jsx)(`div`,{ref:s,className:r,children:c.map((e,t)=>(0,z.jsxs)(`div`,{className:`flex items-center shrink-0`,children:[t>0&&(0,z.jsx)(i,{className:`size-3 text-muted-foreground shrink-0 mx-0.5`}),(0,z.jsx)(Me,{segment:e,isLast:t===c.length-1,onFileClick:l})]},e.absPath))})}function Me({segment:e,isLast:t,onFileClick:n}){let[r,i]=(0,R.useState)(null),[a,o]=(0,R.useState)(null);function s(t){t&&r===null&&Ae(e.parentDir).then(i).catch(e=>{o(e.message||`Failed to browse`),i([])})}return(0,z.jsxs)(N,{onOpenChange:s,children:[(0,z.jsx)(k,{asChild:!0,children:(0,z.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,z.jsx)(be,{align:`start`,className:`max-h-[300px] overflow-y-auto p-1`,children:r===null?(0,z.jsx)(P,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Loading…`}):a?(0,z.jsx)(P,{disabled:!0,className:`text-xs text-destructive`,children:a}):r.length===0?(0,z.jsx)(P,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Empty`}):r.map(t=>(0,z.jsx)(Ne,{entry:t,activePath:e.absPath,onFileClick:n},t.path))})]})}function Ne({entry:e,activePath:t,onFileClick:n}){let r=B(e.name,e.type===`directory`),i=e.path===t,[a,o]=(0,R.useState)(null);if(e.type===`directory`){function s(t){t&&a===null&&Ae(e.path).then(o).catch(()=>o([]))}return(0,z.jsxs)(L,{onOpenChange:s,children:[(0,z.jsxs)(F,{className:`text-xs gap-1.5 ${i?`bg-muted`:``}`,children:[(0,z.jsx)(r,{className:`size-3.5 shrink-0 text-muted-foreground`}),(0,z.jsx)(`span`,{className:`truncate`,children:e.name})]}),(0,z.jsx)(M,{className:`max-h-[300px] overflow-y-auto p-1`,children:a===null?(0,z.jsx)(P,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Loading…`}):a.length===0?(0,z.jsx)(P,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Empty`}):a.map(e=>(0,z.jsx)(Ne,{entry:e,activePath:t,onFileClick:n},e.path))})]})}return(0,z.jsxs)(P,{className:`text-xs gap-1.5 cursor-pointer ${i?`bg-muted`:``}`,onClick:t=>n(e.path,t),children:[(0,z.jsx)(r,{className:`size-3.5 shrink-0 text-muted-foreground`}),(0,z.jsx)(`span`,{className:`truncate`,children:e.name})]})}var Pe={ts:I,tsx:I,js:I,jsx:I,py:I,rs:I,go:I,html:I,css:I,scss:I,json:j,md:A,txt:A,yaml:ge,yml:ge};function B(e,t){return t?ye:Pe[e.split(`.`).pop()?.toLowerCase()??``]??ve}function V(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 Fe(e){return[...e].sort((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1)}function Ie({filePath:e,projectName:t,tabId:n,className:r}){let a=w(e=>e.tree),{updateTab:o,openTab:s}=C(ue(e=>({updateTab:e.updateTab,openTab:e.openTab}))),c=S(e=>e.projects.find(e=>e.name===t)?.path??``),l=(0,R.useRef)(null),{prefixParts:u,relativePath:d,isExternal:f}=(0,R.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,R.useMemo)(()=>V(a,d.split(`/`).filter(Boolean)),[a,d]);(0,R.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,z.jsx)(je,{filePath:e,projectName:t,tabId:n,className:r}):(0,z.jsxs)(`div`,{ref:l,className:r,children:[u.map((e,t)=>(0,z.jsxs)(`div`,{className:`flex items-center shrink-0`,children:[t>0&&(0,z.jsx)(i,{className:`size-3 text-muted-foreground shrink-0 mx-0.5`}),(0,z.jsx)(`span`,{className:`text-xs text-muted-foreground px-1 py-0.5`,children:e})]},`prefix-${t}`)),p.map((e,n)=>(0,z.jsxs)(`div`,{className:`flex items-center shrink-0`,children:[(n>0||u.length>0)&&(0,z.jsx)(i,{className:`size-3 text-muted-foreground shrink-0 mx-0.5`}),(0,z.jsx)(H,{segment:e,isLast:n===p.length-1,projectName:t,onFileClick:m})]},e.fullPath))]})}function H({segment:e,isLast:t,projectName:n,onFileClick:r}){let i=w(e=>e.loadChildren),a=w(e=>e.loadedPaths),o=(0,R.useMemo)(()=>Fe(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,z.jsxs)(N,{onOpenChange:c,children:[(0,z.jsx)(k,{asChild:!0,children:(0,z.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,z.jsx)(be,{align:`start`,className:`max-h-[300px] p-1`,children:o.length===0?(0,z.jsx)(P,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Loading…`}):o.map(t=>(0,z.jsx)(U,{node:t,projectName:n,activePath:e.fullPath,onFileClick:r},t.path))})]})}function U({node:e,projectName:t,activePath:n,onFileClick:r}){let i=B(e.name,e.type===`directory`),a=e.path===n,o=w(e=>e.loadChildren),s=w(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,z.jsxs)(L,{onOpenChange:u,children:[(0,z.jsxs)(F,{className:`text-xs gap-1.5 ${a?`bg-muted`:``}`,children:[(0,z.jsx)(i,{className:`size-3.5 shrink-0 text-muted-foreground`}),(0,z.jsx)(`span`,{className:`truncate`,children:e.name})]}),(0,z.jsx)(M,{className:`max-h-[300px] overflow-y-auto p-1`,children:c.length===0?(0,z.jsx)(P,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Loading…`}):Fe(c).map(e=>(0,z.jsx)(U,{node:e,projectName:t,activePath:n,onFileClick:r},e.path))})]})}return(0,z.jsxs)(P,{className:`text-xs gap-1.5 cursor-pointer ${a?`bg-muted`:``}`,onSelect:e=>{},onClick:t=>{r(e.path,t)},children:[(0,z.jsx)(i,{className:`size-3.5 shrink-0 text-muted-foreground`}),(0,z.jsx)(`span`,{className:`truncate`,children:e.name})]})}function W({active:e,onClick:t,icon:n,label:r}){return(0,z.jsxs)(`button`,{type:`button`,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,z.jsx)(n,{className:`size-3`}),(0,z.jsx)(`span`,{className:`hidden sm:inline`,children:r})]})}function Le({ext:e,mdMode:t,onMdModeChange:n,csvMode:r,onCsvModeChange:i,wordWrap:o,onToggleWordWrap:c,onRefresh:u,refreshing:d,filePath:f,projectName:p,className:m}){return(0,z.jsxs)(`div`,{className:m,children:[(e===`md`||e===`mdx`)&&n&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(W,{active:t===`edit`,onClick:()=>n(`edit`),icon:a,label:`Edit`}),(0,z.jsx)(W,{active:t===`preview`,onClick:()=>n(`preview`),icon:l,label:`Preview`})]}),e===`csv`&&i&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(W,{active:r===`table`,onClick:()=>i(`table`),icon:g,label:`Table`}),(0,z.jsx)(W,{active:r===`raw`,onClick:()=>i(`raw`),icon:a,label:`Raw`})]}),(0,z.jsx)(W,{active:o,onClick:c,icon:_,label:`Wrap`}),u&&(0,z.jsxs)(`button`,{type:`button`,onClick:u,disabled:d,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,z.jsx)(te,{className:`size-3 ${d?`animate-spin`:``}`}),(0,z.jsx)(`span`,{className:`hidden sm:inline`,children:`Refresh`})]}),f&&p&&(0,z.jsx)(W,{active:!1,onClick:()=>Se(p,f),icon:s,label:`Download`})]})}var Re=[{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 ze({value:e,onChange:t}){return(0,z.jsxs)(`div`,{className:`shrink-0 flex items-center gap-1 px-2 border-l border-border`,children:[(0,z.jsx)(I,{className:`size-3 text-muted-foreground`}),(0,z.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:Re.map(e=>(0,z.jsx)(`option`,{value:e.id,children:e.label},e.id))})]})}function Be({open:e,defaultName:t,content:n,onSave:r,onCancel:i}){let[a,o]=(0,R.useState)(t),[s,c]=(0,R.useState)(!1),[l,u]=(0,R.useState)(``),d=S(e=>e.activeProject),f=(0,R.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,R.useCallback)(e=>{let t=e.includes(`\\`)?`\\`:`/`;r(e.endsWith(t)?`${e}${a.trim()}`:`${e}${t}${a.trim()}`,n)},[a,n,r]);return s?(0,z.jsx)(pe,{open:!0,mode:`folder`,root:d?.path,title:`Save "${a.trim()}" to...`,onSelect:p,onCancel:()=>c(!1)}):(0,z.jsx)(le,{open:e,onOpenChange:e=>{e||i()},children:(0,z.jsxs)(D,{className:`sm:max-w-md`,children:[(0,z.jsx)(E,{children:(0,z.jsx)(ce,{children:`Save As`})}),(0,z.jsxs)(`div`,{className:`flex flex-col gap-2 py-2`,children:[(0,z.jsx)(`label`,{className:`text-sm text-muted-foreground`,children:`Filename`}),(0,z.jsx)(de,{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,z.jsx)(`p`,{className:`text-xs text-destructive`,children:l})]}),(0,z.jsxs)(se,{children:[(0,z.jsx)(T,{variant:`outline`,onClick:i,children:`Cancel`}),(0,z.jsx)(T,{onClick:f,children:`Choose Folder...`})]})]})})}var G=typeof window<`u`&&window.isSecureContext,Ve=[`(`,`)`,`{`,`}`,`[`,`]`,`<`,`>`,`;`,`:`,`=`,`"`,`'`,"`",`/`,`\\`,`_`,`#`],K=`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`,He=`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`,Ue=`w-px h-5 bg-border mx-0.5 shrink-0`;function We({editorRef:e,readOnly:t}){let n=(0,R.useCallback)(()=>e.current,[e]),r=(0,R.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,R.useState)(!1),o=(0,R.useRef)(null),s=(0,R.useCallback)(async()=>{try{let e=await navigator.clipboard.readText();e&&r(e)}catch{}},[r]),c=(0,R.useCallback)(()=>{a(!0),requestAnimationFrame(()=>o.current?.focus())},[]),l=(0,R.useCallback)(e=>{e.preventDefault();let t=e.clipboardData.getData(`text/plain`);t&&(a(!1),r(t))},[r]),u=(0,R.useCallback)(()=>{let e=n();e&&(e.focus(),e.trigger(`mobile-toolbar`,`undo`,null))},[n]),d=(0,R.useCallback)(()=>{let e=n();e&&(e.focus(),e.trigger(`mobile-toolbar`,`redo`,null))},[n]),f=(0,R.useCallback)(()=>{let e=n();e&&(e.focus(),e.trigger(`mobile-toolbar`,`tab`,null))},[n]);return t?null:(0,z.jsxs)(`div`,{className:`shrink-0 border-t border-border bg-surface`,children:[!G&&i&&(0,z.jsxs)(`div`,{className:`flex items-center gap-2 px-2 py-1.5 border-b border-border bg-muted/50`,children:[(0,z.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,z.jsx)(`button`,{type:`button`,onClick:()=>a(!1),className:`p-1.5 rounded text-muted-foreground active:bg-muted transition-colors`,children:(0,z.jsx)(v,{size:14})})]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-1 px-2 py-1.5 overflow-x-auto`,children:[(0,z.jsx)(`button`,{type:`button`,onClick:G?s:c,className:K,title:`Paste`,children:(0,z.jsx)(me,{size:14})}),(0,z.jsx)(`button`,{type:`button`,onClick:u,className:K,title:`Undo`,children:(0,z.jsx)(O,{size:14})}),(0,z.jsx)(`button`,{type:`button`,onClick:d,className:K,title:`Redo`,children:(0,z.jsx)(Oe,{size:14})}),(0,z.jsx)(`div`,{className:Ue}),(0,z.jsx)(`button`,{type:`button`,onClick:f,className:He,children:`Tab`}),(0,z.jsx)(`div`,{className:Ue}),Ve.map(e=>(0,z.jsx)(`button`,{type:`button`,onClick:()=>r(e),className:He,children:e},e))]})]})}var q=(0,R.lazy)(()=>b(()=>import(`./markdown-renderer-BTS8ifdu.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,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65]))),Ge=(0,R.lazy)(()=>b(()=>import(`./csv-preview-DnXwouF3.js`).then(e=>({default:e.CsvPreview})),__vite__mapDeps([66,2,6,1,3,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,67,68]))),Ke=(0,R.lazy)(()=>b(()=>import(`./image-preview-DxgFOV1T.js`).then(e=>({default:e.ImagePreview})),__vite__mapDeps([69,3,2,4,70,10,23,26,71]))),qe=(0,R.lazy)(()=>b(()=>import(`./pdf-preview-DYt3aBzM.js`).then(e=>({default:e.PdfPreview})),__vite__mapDeps([72,2,3,4,22,10,70,23,26]))),Je=(0,R.lazy)(()=>b(()=>import(`./video-preview-DMhnf2Gi.js`).then(e=>({default:e.VideoPreview})),__vite__mapDeps([73,2,6,1,3,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,70,74,75]))),Ye=(0,R.lazy)(()=>b(()=>import(`./audio-preview-BD1iDovf.js`).then(e=>({default:e.AudioPreview})),__vite__mapDeps([76,2,3,4,8,10,70,26,75]))),Xe=(0,R.lazy)(()=>b(()=>import(`./docx-preview-DAdHPlhZ.js`).then(e=>({default:e.DocxPreview})),__vite__mapDeps([77,2,3,4,70,10,23,26])));function Ze(e){return e.split(`.`).pop()?.toLowerCase()??``}function Qe(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`}[Ze(e)]??`plaintext`}var $e=(0,R.memo)(function({metadata:e,tabId:t}){let n=e?.filePath,r=e?.projectName,i=e?.inlineContent,a=e?.inlineLanguage,[s,c]=(0,R.useState)(i??null),[l,m]=(0,R.useState)(`utf-8`),[te,g]=(0,R.useState)(!0),[_,v]=(0,R.useState)(null),[b,S]=(0,R.useState)(!1),w=(0,R.useRef)(null),T=(0,R.useRef)(``),E=(0,R.useRef)(null),{tabs:se,updateTab:D}=C(ue(e=>({tabs:e.tabs,updateTab:e.updateTab}))),{wordWrap:ce,toggleWordWrap:le}=ae(ue(e=>({wordWrap:e.wordWrap,toggleWordWrap:e.toggleWordWrap}))),de=Ce(),O=e?.isUntitled===!0,pe=e?.unsavedContent,[me,k]=(0,R.useState)(!1),A=se.find(e=>e.id===t),j=n?Ze(n):``,M=Te.has(j),he=j===`pdf`,N=j===`docx`,ge=we.has(j),ve=De.has(j),P=Ee.has(j),ye=j===`md`||j===`mdx`,be=j===`csv`,Se=e?.language,F=a??Se??Qe(n??``),I=F===`sql`,[L,Oe]=(0,R.useState)(`preview`),[ke,Ae]=(0,R.useState)(`table`),{connections:je,cachedTables:Me,refreshTables:Ne,updateConnection:Pe}=fe(),B=n?`ppm:sql-conn:${n}`:t?`ppm:sql-conn:tab:${t}`:null,[V,Fe]=(0,R.useState)(()=>{if(!B)return null;let e=localStorage.getItem(B);return e?Number(e):null}),H=(0,R.useRef)(null),U=(0,R.useRef)(null),W=(0,R.useMemo)(()=>je.find(e=>e.id===V)??null,[je,V]),Re=i!=null&&(a===`json`||a===`xml`),[G,Ve]=(0,R.useState)(!1),K=(0,R.useCallback)(()=>{if(i)if(G)c(i),Ve(!1);else{let e=i.trimStart();if(a===`json`)try{c(JSON.stringify(JSON.parse(e),null,2)),Ve(!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
|
-
`)),Ve(!0)}}},[i,a,G]),He=(0,R.useCallback)(e=>{Fe(e),B&&localStorage.setItem(B,String(e)),Ne(e).catch(()=>{})},[B,Ne]),Ue=(0,R.useCallback)(n=>{t&&D(t,{metadata:{...e,language:n}})},[t,e,D]),q=(0,R.useMemo)(()=>{if(!I||!V)return;let e=(Me.get(V)??[]).map(e=>({name:e.tableName,schema:e.schemaName}));if(e.length!==0)return{tables:e,getColumns:async(e,t)=>y.get(`/api/db/connections/${V}/schema?table=${encodeURIComponent(e)}${t?`&schema=${encodeURIComponent(t)}`:``}`)}},[I,V,Me]);(0,R.useEffect)(()=>{if(!(!H.current||!q))return U.current?.dispose(),p(),U.current=H.current.languages.registerCompletionItemProvider(`sql`,f(H.current,q)),()=>{U.current?.dispose()}},[q]);let $e=C(e=>e.openTab),[J,nt]=(0,R.useState)(null),[rt,it]=(0,R.useState)(null),[at,ot]=(0,R.useState)(!1),[st,ct]=(0,R.useState)(``),lt=(0,R.useCallback)(async e=>{if(W){ot(!0),it(null),ct(e);try{nt(await y.post(`/api/db/connections/${W.id}/query`,{sql:e}))}catch(e){it(e.message),nt(null)}finally{ot(!1)}}},[W]),ut=(0,R.useCallback)(()=>{!W||!st||$e({type:`database`,title:`${W.name} · Query`,projectId:null,closable:!0,metadata:{connectionId:W.id,connectionName:W.name,dbType:W.type,initialSql:st}})},[W,$e,st]),dt=(0,R.useCallback)(()=>{if(!E.current||!W)return;let e=E.current,t=e.getSelection();lt(t&&!t.isEmpty()?e.getModel()?.getValueInRange(t)??e.getValue():e.getValue())},[W,lt]),ft=typeof window<`u`&&`ontouchstart`in window,pt=(0,R.useRef)(null),[mt,ht]=(0,R.useState)(null);(0,R.useEffect)(()=>{if(!ft)return;let e=window.visualViewport;if(!e)return;let t=()=>{let t=pt.current;if(!t)return;let n=t.getBoundingClientRect().top;ht(e.height-Math.max(0,n))};return e.addEventListener(`resize`,t),e.addEventListener(`scroll`,t),()=>{e.removeEventListener(`resize`,t),e.removeEventListener(`scroll`,t)}},[ft]),(0,R.useEffect)(()=>_e(pt.current,()=>E.current?.layout()),[te,_]);let X=(0,R.useRef)([]),gt=(0,R.useRef)(lt);gt.current=lt,(0,R.useEffect)(()=>()=>{X.current.forEach(e=>e.dispose()),X.current=[]},[]),(0,R.useEffect)(()=>{P&&t&&D(t,{type:`sqlite`})},[P,t,D]);let Z=n?/^(\/|[A-Za-z]:[/\\])/.test(n):!1;(0,R.useEffect)(()=>{if(i!=null){g(!1);return}if(O){c(pe??``),T.current=pe??``,g(!1),pe&&S(!0);return}if(!n||!Z&&!r)return;if(M||he||N||ge||ve){g(!1);return}g(!0),v(null);let e=Z?`/api/fs/read?path=${encodeURIComponent(n)}`:`${ie(r)}/files/read?path=${encodeURIComponent(n)}`;return y.get(e).then(e=>{c(e.content),e.encoding&&m(e.encoding),T.current=e.content,g(!1)}).catch(e=>{v(e instanceof Error?e.message:`Failed to load file`),g(!1)}),()=>{w.current&&clearTimeout(w.current)}},[n,r,M,he,N,Z,O]);let[_t,vt]=(0,R.useState)(!1),yt=(0,R.useCallback)(()=>{if(!n||i!=null||O||!Z&&!r)return;let e=Z?`/api/fs/read?path=${encodeURIComponent(n)}`:`${ie(r)}/files/read?path=${encodeURIComponent(n)}`;vt(!0),y.get(e).then(e=>{c(e.content),T.current=e.content,e.encoding&&m(e.encoding),S(!1),v(null)}).catch(e=>v(e instanceof Error?e.message:`Failed to reload file`)).finally(()=>vt(!1))},[n,r,Z,i,O]),bt=(0,R.useRef)(b);bt.current=b,(0,R.useEffect)(()=>{if(!n||!r||i!=null||O)return;let e=e=>{let t=e.detail;if(t.projectName!==r||t.path!==n||bt.current)return;let i=Z?`/api/fs/read?path=${encodeURIComponent(n)}`:`${ie(r)}/files/read?path=${encodeURIComponent(n)}`;y.get(i).then(e=>{e.content!==T.current&&(c(e.content),T.current=e.content,e.encoding&&m(e.encoding))}).catch(()=>{})};return window.addEventListener(`file:changed`,e),()=>window.removeEventListener(`file:changed`,e)},[n,r,Z,i,O]),(0,R.useEffect)(()=>{if(!A||i!=null)return;let t=O?`Untitled-${e?.untitledNumber??1}`:n?x(n):`Untitled`,r=b?`${t} \u25CF`:t;A.title!==r&&D(A.id,{title:r})},[b]);let xt=(0,R.useCallback)(async e=>{if(n&&!(!Z&&!r))try{Z?await y.put(`/api/fs/write`,{path:n,content:e}):await y.put(`${ie(r)}/files/write`,{path:n,content:e}),S(!1)}catch{}},[n,r,Z]);function St(n){let r=n??``;c(r),T.current=r,S(!0),w.current&&clearTimeout(w.current),O?w.current=setTimeout(()=>{t&&D(t,{metadata:{...e,unsavedContent:T.current}})},2e3):w.current=setTimeout(()=>xt(T.current),1e3)}let Ct=(0,R.useCallback)(async(e,n)=>{try{if(w.current&&clearTimeout(w.current),await y.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})}S(!1),k(!1)}catch{}},[t]),Q=e?.lineNumber,$=e?.endLine,wt=e?.revealAt,Tt=(0,R.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,R.useEffect)(()=>{wt!=null&&Tt()},[wt,Tt]);let Et=(0,R.useCallback)((e,t)=>{if(E.current=e,H.current=t,Q&&Q>0&&setTimeout(()=>Tt(),100),O&&e.addCommand(t.KeyMod.CtrlCmd|t.KeyCode.KeyS,()=>k(!0)),e.addCommand(t.KeyMod.Alt|t.KeyCode.KeyZ,()=>ae.getState().toggleWordWrap()),t.languages.typescript.typescriptDefaults.setDiagnosticsOptions({noSemanticValidation:!0,noSyntaxValidation:!0,noSuggestionDiagnostics:!0}),t.languages.typescript.javascriptDefaults.setDiagnosticsOptions({noSemanticValidation:!0,noSyntaxValidation:!0,noSuggestionDiagnostics:!0}),q&&(U.current?.dispose(),U.current=t.languages.registerCompletionItemProvider(`sql`,f(t,q))),I){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=d(e.getValue(),t.lineNumber);n&>.current(n)}}),X.current.forEach(e=>e.dispose()),X.current=[];let n=e.getModel(),r=e.addCommand(0,(e,t)=>{t&>.current(t)});if(r&&n){let e=t.languages.registerCodeLensProvider(`sql`,{provideCodeLenses:e=>{if(e!==n)return{lenses:[],dispose:()=>{}};let t=[],i=e.getValue().split(`
|
|
6
|
-
`),a=-1,o=[],s=!1,c=/^(BEGIN|COMMIT|ROLLBACK|END)(;|\s|$)/i,l=-1,u=[],d=(e,n,i=`▷ Run`)=>{let a=n.trim();!a||a.startsWith(`--`)||t.push({range:{startLineNumber:e,startColumn:1,endLineNumber:e,endColumn:1},command:{id:r,title:i,arguments:[a]}})};for(let e=0;e<i.length;e++){let t=i[e].trim();if(a===-1){if(!t||t.startsWith(`--`))continue;a=e+1,o=[]}if(o.push(i[e]),(t.match(/\$\$/g)||[]).length%2==1&&(s=!s),!s&&t.endsWith(`;`)){let e=o.join(`
|
|
7
|
-
`).trim(),t=/^BEGIN(;|\s|$)/i.test(e),n=/^(COMMIT|ROLLBACK|END)(;|\s|$)/i.test(e);l===-1&&t?(l=a,u=[e]):l>-1?(u.push(e),!n&&!c.test(e)&&d(a,e),n&&(d(l,u.join(`
|
|
8
|
-
`),`▷ Run Transaction`),l=-1,u=[])):d(a,e),a=-1,o=[]}}return l>-1&&u.length>1&&d(l,u.join(`
|
|
9
|
-
`),`▷ Run Transaction`),a>0&&o.join(``).trim()&&d(a,o.join(`
|
|
10
|
-
`)),{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)}}},[q,I]);if(!i&&!O&&(!n||!Z&&!r))return(0,z.jsx)(`div`,{className:`flex items-center justify-center h-full text-text-secondary text-sm`,children:`No file selected.`});if(te)return(0,z.jsxs)(`div`,{className:`flex items-center justify-center h-full gap-2 text-text-secondary`,children:[(0,z.jsx)(h,{className:`size-5 animate-spin`}),(0,z.jsx)(`span`,{className:`text-sm`,children:`Loading file...`})]});if(_)return(0,z.jsx)(`div`,{className:`flex items-center justify-center h-full text-error text-sm`,children:_});if(M)return(0,z.jsx)(R.Suspense,{fallback:(0,z.jsx)(Y,{}),children:(0,z.jsx)(Ke,{filePath:n,projectName:r})});if(he)return(0,z.jsx)(R.Suspense,{fallback:(0,z.jsx)(Y,{}),children:(0,z.jsx)(qe,{filePath:n,projectName:r})});if(N)return(0,z.jsx)(R.Suspense,{fallback:(0,z.jsx)(Y,{}),children:(0,z.jsx)(Xe,{filePath:n,projectName:r})});if(ge)return(0,z.jsx)(R.Suspense,{fallback:(0,z.jsx)(Y,{}),children:(0,z.jsx)(Je,{filePath:n,projectName:r})});if(ve)return(0,z.jsx)(R.Suspense,{fallback:(0,z.jsx)(Y,{}),children:(0,z.jsx)(Ye,{filePath:n,projectName:r})});if(l===`base64`)return(0,z.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-3 text-text-secondary`,children:[(0,z.jsx)(u,{className:`size-10 text-text-subtle`}),(0,z.jsx)(`p`,{className:`text-sm`,children:`This file is a binary format and cannot be displayed.`}),(0,z.jsx)(`p`,{className:`text-xs text-text-subtle`,children:n})]});let Dt=I?(0,z.jsxs)(`div`,{className:`shrink-0 flex items-center gap-1 px-2 border-l border-border`,children:[(0,z.jsx)(o,{className:`size-3 text-muted-foreground`}),(0,z.jsxs)(`select`,{value:V??``,onChange:e=>{let t=Number(e.target.value);t&&He(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,z.jsx)(`option`,{value:``,children:`Connection…`}),je.map(e=>(0,z.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,z.jsx)(`button`,{type:`button`,onClick:dt,disabled:!W,className:`p-0.5 rounded text-muted-foreground hover:text-primary disabled:opacity-30 transition-colors`,title:`Run SQL`,children:(0,z.jsx)(ee,{className:`size-3.5`})}),W&&(0,z.jsx)(`button`,{type:`button`,onClick:()=>Pe(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,z.jsx)(ne,{className:`size-3`}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(re,{className:`size-3`}),(0,z.jsx)(`span`,{className:`font-medium`,children:`WRITE`})]})})]}):null;return(0,z.jsxs)(`div`,{ref:pt,className:`flex flex-col h-full w-full overflow-hidden`,style:mt?{height:`${mt}px`,maxHeight:`${mt}px`}:void 0,children:[i!=null&&Re&&(0,z.jsx)(`div`,{className:`flex items-center h-7 border-b border-border bg-background shrink-0 px-2 gap-2`,children:(0,z.jsx)(`button`,{type:`button`,onClick:K,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,z.jsxs)(`div`,{className:`hidden md:flex items-center h-7 border-b border-border bg-background shrink-0`,children:[(0,z.jsx)(Ie,{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,z.jsx)(ze,{value:F,onChange:Ue}),Dt,(0,z.jsx)(Le,{ext:j,mdMode:L,onMdModeChange:Oe,csvMode:ke,onCsvModeChange:Ae,wordWrap:ce,onToggleWordWrap:le,onRefresh:yt,refreshing:_t,filePath:n,projectName:r,className:`shrink-0 flex items-center gap-1 px-2`})]}),i==null&&t&&(O||n&&!r)&&(0,z.jsxs)(`div`,{className:`hidden md:flex items-center h-7 border-b border-border bg-background shrink-0 px-2`,children:[(0,z.jsx)(`span`,{className:`text-xs text-muted-foreground truncate flex-1`,children:O?`Untitled-${e?.untitledNumber??1}`:n?x(n):`Untitled`}),(0,z.jsx)(ze,{value:F,onChange:Ue}),Dt]}),be&&ke===`table`?(0,z.jsx)(R.Suspense,{fallback:(0,z.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,z.jsx)(h,{className:`size-5 animate-spin text-text-subtle`})}),children:(0,z.jsx)(Ge,{content:s??``,onContentChange:St,wordWrap:ce})}):ye&&L===`preview`?(0,z.jsx)(tt,{content:s??``}):(0,z.jsx)(`div`,{className:`flex-1 overflow-hidden min-h-0`,children:(0,z.jsx)(xe,{height:`100%`,language:F,value:s??``,onChange:i==null?St:void 0,onMount:Et,theme:de,options:{fontSize:13,fontFamily:`Menlo, Monaco, Consolas, monospace`,wordWrap:ce?`on`:`off`,minimap:{enabled:!1},scrollBeyondLastLine:!1,automaticLayout:!0,lineNumbers:`on`,folding:!0,bracketPairColorization:{enabled:!0},readOnly:i!=null},loading:(0,z.jsx)(h,{className:`size-5 animate-spin text-text-subtle`})},F)}),I&&(J||rt||at)&&(0,z.jsx)(et,{result:J,error:rt,loading:at,connName:W?.name,onClose:()=>{nt(null),it(null),ot(!1)},onOpenInTab:ut}),ft&&(0,z.jsx)(We,{editorRef:E,readOnly:i!=null}),me&&(0,z.jsx)(Be,{open:me,defaultName:`Untitled-${e?.untitledNumber??1}`,content:T.current,onSave:Ct,onCancel:()=>k(!1)})]})}),J=()=>{};function et({result:e,error:t,loading:n,connName:r,onClose:i,onOpenInTab:a}){let s=(0,R.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,R.useMemo)(()=>(e?.columns??[]).map(e=>({name:e,type:`text`,nullable:!0,pk:!1,defaultValue:null})),[e?.columns]),[u,d]=(0,R.useState)(250),f=(0,R.useCallback)(e=>{e.preventDefault();let t=e.clientY,n=u,r=e.currentTarget.ownerDocument,i=e=>d(Math.max(80,n+(t-e.clientY))),a=()=>{r.removeEventListener(`mousemove`,i),r.removeEventListener(`mouseup`,a)};r.addEventListener(`mousemove`,i),r.addEventListener(`mouseup`,a)},[u]);return(0,z.jsxs)(`div`,{className:`shrink-0 border-t border-border flex flex-col`,style:{height:u},children:[(0,z.jsx)(`div`,{onMouseDown:f,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,z.jsx)(he,{className:`size-3 text-muted-foreground/50`})}),(0,z.jsxs)(`div`,{className:`flex items-center gap-2 px-2 py-1 bg-muted/50 border-b border-border shrink-0`,children:[(0,z.jsx)(o,{className:`size-3 text-muted-foreground`}),(0,z.jsxs)(`span`,{className:`text-xs font-medium text-foreground truncate flex-1`,children:[r?`${r} · Results`:`Query Results`,e?.executionTimeMs!=null&&(0,z.jsxs)(`span`,{className:`text-muted-foreground ml-1.5 font-normal`,children:[e.executionTimeMs,`ms`]})]}),(0,z.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,z.jsx)(c,{className:`size-3`}),(0,z.jsx)(`span`,{className:`hidden sm:inline`,children:`Open in Tab`})]}),(0,z.jsx)(`button`,{type:`button`,onClick:i,title:`Close results`,className:`p-0.5 rounded text-muted-foreground hover:text-foreground transition-colors`,children:(0,z.jsx)(v,{className:`size-3`})})]}),(0,z.jsxs)(`div`,{className:`flex-1 overflow-hidden min-h-0`,children:[n&&(0,z.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,z.jsx)(h,{className:`size-4 animate-spin text-muted-foreground`})}),t&&(0,z.jsx)(`div`,{className:`px-3 py-2 text-xs text-destructive bg-destructive/5`,children:t}),e?.changeType===`modify`&&(0,z.jsxs)(`div`,{className:`px-3 py-2 text-xs text-success`,children:[e.rowsAffected,` row(s) affected`]}),s&&(0,z.jsx)(m,{columns:s.columns,rows:s.rows,total:s.total,limit:s.limit,schema:l,loading:!1,page:1,onPageChange:J,onCellUpdate:J,orderBy:null,orderDir:`ASC`,onToggleSort:J,connectionName:r}),e?.changeType===`select`&&e.rows.length===0&&(0,z.jsx)(`div`,{className:`px-3 py-2 text-xs text-muted-foreground`,children:`No results`})]})]})}function Y(){return(0,z.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,z.jsx)(h,{className:`size-5 animate-spin text-text-subtle`})})}function tt({content:e}){return(0,z.jsx)(R.Suspense,{fallback:(0,z.jsx)(`div`,{className:`animate-pulse h-4 bg-muted rounded m-4`}),children:(0,z.jsx)(q,{content:e,className:`flex-1 overflow-auto p-4`})})}export{$e as CodeEditor};
|
|
@@ -1,4 +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"./loader-circle-Dpqcv0eS.js";import{t as i}from"./text-wrap-B05VGRa-.js";import{i as a,n as o}from"./api-client-oY1tC3tM.js";import"./vendor-mermaid-CHTa6D69.js";import{t as s}from"./settings-store-GV5pkkke.js";import{t as c}from"./shallow-jwPzEunk.js";import{c as l,h as u,yn as d}from"./index-CBn4SOoT.js";import{t as f}from"./use-monaco-theme--9tOOkDA.js";var p=e(t(),1),m=n();function h(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`}[e.split(`.`).pop()?.toLowerCase()??``]??`plaintext`}function g({metadata:e}){let t=e?.filePath,n=e?.projectName,g=e?.ref1,v=e?.ref2,y=e?.file1,b=e?.file2,x=e?.original,S=e?.modified,C=x!=null||S!=null,w=!!(y&&b),[T,E]=(0,p.useState)(null),[D,O]=(0,p.useState)(null),[k,A]=(0,p.useState)(null),[j,M]=(0,p.useState)(!C),[N,P]=(0,p.useState)(null),{wordWrap:F,toggleWordWrap:I}=s(c(e=>({wordWrap:e.wordWrap,toggleWordWrap:e.toggleWordWrap}))),L=f(),R=(0,p.useRef)(null),z=(0,p.useRef)(null),[B,V]=(0,p.useState)(!1),[H,U]=(0,p.useState)();(0,p.useEffect)(()=>{let e=R.current;if(!e)return;let t=new ResizeObserver(([e])=>{e&&U(Math.floor(e.contentRect.height))});return t.observe(e),()=>t.disconnect()},[j,N]),(0,p.useEffect)(()=>u(R.current,()=>z.current?.layout()),[j,N]),(0,p.useEffect)(()=>{if(C||!n)return;if(M(!0),P(null),A(null),O(null),E(null),y&&b){let e=new URLSearchParams({file1:y,file2:b});o.get(`${a(n)}/files/compare?${e}`).then(e=>{O(e),M(!1)}).catch(e=>{P(e instanceof Error?e.message:`Failed to compare files`),M(!1)});return}if(t){let e=new URLSearchParams({file:t});g&&e.set(`ref`,g),v&&e.set(`ref2`,v),o.get(`${a(n)}/git/file-full-diff?${e}`).then(e=>{A(e),M(!1)}).catch(e=>{P(e instanceof Error?e.message:`Failed to load diff`),M(!1)});return}let e;if(g||v){let t=new URLSearchParams;g&&t.set(`ref1`,g),v&&t.set(`ref2`,v),e=`${a(n)}/git/diff?${t}`}else e=`${a(n)}/git/diff`;o.get(e).then(e=>{E(e.diff),M(!1)}).catch(e=>{P(e instanceof Error?e.message:`Failed to load diff`),M(!1)})},[t,n,g,v,y,b,C]);let{original:W,modified:G}=(0,p.useMemo)(()=>C?{original:x??``,modified:S??``}:w&&D?D:k||(T?_(T):{original:``,modified:``}),[T,C,x,S,w,D,k]),K=(0,p.useMemo)(()=>{let e=t??b??y;return e?h(e):`plaintext`},[t,y,b]),q=typeof window<`u`&&window.innerWidth<768,J=!q;return(0,p.useEffect)(()=>{let e=z.current;if(!e)return;let t=q||F?`on`:`off`;e.updateOptions({diffWordWrap:t}),e.getOriginalEditor().updateOptions({wordWrapOverride2:t}),e.getModifiedEditor().updateOptions({wordWrapOverride2:t})},[F,q,B]),!n&&!C?(0,m.jsx)(`div`,{className:`flex items-center justify-center h-full text-muted-foreground text-sm`,children:`No project selected.`}):j?(0,m.jsxs)(`div`,{className:`flex items-center justify-center h-full gap-2 text-muted-foreground`,children:[(0,m.jsx)(r,{className:`size-5 animate-spin`}),(0,m.jsx)(`span`,{className:`text-sm`,children:`Loading diff...`})]}):N?(0,m.jsx)(`div`,{className:`flex items-center justify-center h-full text-destructive text-sm`,children:N}):!C&&!w&&!k&&!W&&!G?(0,m.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-2 text-muted-foreground`,children:[(0,m.jsx)(d,{className:`size-8`}),(0,m.jsx)(`p`,{className:`text-sm`,children:`No content changes`}),t&&(0,m.jsx)(`p`,{className:`text-xs font-mono`,children:t})]}):(0,m.jsxs)(`div`,{className:`flex flex-col h-full`,children:[!q&&(0,m.jsx)(`div`,{className:`flex items-center justify-end gap-0.5 px-2 py-0.5 border-b border-border shrink-0`,children:(0,m.jsx)(`button`,{type:`button`,onClick:I,title:`Toggle word wrap`,className:`p-1 rounded hover:bg-muted transition-colors ${F?`bg-muted text-foreground`:``}`,children:(0,m.jsx)(i,{className:`size-3.5`})})}),(0,m.jsx)(`div`,{ref:R,className:`flex-1 overflow-hidden`,children:H&&H>0?(0,m.jsx)(l,{height:H,language:K,original:W,modified:G,theme:L,onMount:e=>{z.current=e,V(!0)},options:{fontSize:q?11:13,fontFamily:`Menlo, Monaco, Consolas, monospace`,diffWordWrap:q||F?`on`:`off`,renderSideBySide:J,useInlineViewWhenSpaceIsLimited:!1,readOnly:!0,automaticLayout:!0,scrollBeyondLastLine:!1},loading:(0,m.jsx)(r,{className:`size-5 animate-spin text-muted-foreground`})}):(0,m.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,m.jsx)(r,{className:`size-5 animate-spin text-muted-foreground`})})})]})}function _(e){let t=e.split(`
|
|
2
|
-
`),n=[],r=[],i=!1;for(let e of t)if(!(e.startsWith(`diff --git`)||e.startsWith(`diff --no-index`)||e.startsWith(`index `)||e.startsWith(`new file`)||e.startsWith(`deleted file`)||e.startsWith(`old mode`)||e.startsWith(`new mode`)||e.startsWith(`---`)||e.startsWith(`+++`)||e.startsWith(`Binary files`)||e.startsWith(`\\ No newline`))){if(e.startsWith(`@@`)){i=!0;continue}if(i)if(e.startsWith(`-`))n.push(e.slice(1));else if(e.startsWith(`+`))r.push(e.slice(1));else{let t=e.startsWith(` `)?e.slice(1):e;n.push(t),r.push(t)}}return{original:n.join(`
|
|
3
|
-
`),modified:r.join(`
|
|
4
|
-
`)}}export{g as DiffViewer};
|
|
@@ -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"./explorer-body-DkCkSVrN.js";import"./context-menu-BO1c9jKy.js";import"./use-coarse-long-press-BmI_GVW5.js";import"./api-client-oY1tC3tM.js";import"./vendor-mermaid-CHTa6D69.js";import"./settings-store-GV5pkkke.js";import"./portal-container-context-a399Hd9F.js";import"./panel-store-B4rijFKN.js";import"./window-store-CQ1lghvv.js";import"./tab-store-tFnyPmm4.js";import"./file-store-yReVbR8q.js";import"./use-is-mobile-DFWViA4S.js";import"./button-2WCAS8dI.js";import"./dialog-B-l2ZxVm.js";import"./mobile-bottom-sheet-M5iZDX7y.js";import"./adaptive-context-menu-CbgPYQmj.js";import{J as i,lt as a,q as o}from"./index-CBn4SOoT.js";var s=e(t(),1),c=n();function l({id:e,payload:t}){let{host:n,error:l}=i(),u=a(e=>e.discard);(0,s.useEffect)(()=>()=>u(e),[e,u]);let d=(typeof t?.path==`string`?t.path:``)||o()||n?.homedir||``;return d?(0,c.jsx)(r,{windowId:e,initialPath:d}):(0,c.jsx)(`div`,{className:`flex h-full items-center justify-center p-4 text-xs text-text-2`,children:l?`Could not reach the host: ${l}`:`Loading…`})}export{l as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{W as e}from"./vendor-mermaid-CHTa6D69.js";export{e as createGitGraphServices};
|
|
@@ -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"./createLucideIcon-D8pyde1A.js";import{n as i,t as a}from"./pencil-BlIIg6RH.js";import"./context-menu-BO1c9jKy.js";import{t as o}from"./chevron-right-De-Wz5Lz.js";import{n as s}from"./tool-cards-jB7GT-wj.js";import{t as c}from"./send-B-t5Mz26.js";import{t as l}from"./loader-circle-Dpqcv0eS.js";import{t as u}from"./play-CpCAoQRZ.js";import{t as d}from"./trash-2-CTXlTflF.js";import"./api-client-oY1tC3tM.js";import"./vendor-mermaid-CHTa6D69.js";import"./settings-store-GV5pkkke.js";import{n as f}from"./utils-C9OjCrou.js";import"./portal-container-context-a399Hd9F.js";import"./panel-store-B4rijFKN.js";import"./window-store-CQ1lghvv.js";import{i as p}from"./project-store-BuY7rxn_.js";import"./tab-store-tFnyPmm4.js";import"./file-store-yReVbR8q.js";import"./keybindings-store-0Wqfa7Qp.js";import"./extension-store-DUaZINyC.js";import{n as m}from"./use-is-mobile-DFWViA4S.js";import{t as h}from"./button-2WCAS8dI.js";import{a as g,n as _,o as v,t as y}from"./dialog-B-l2ZxVm.js";import{t as b}from"./shallow-jwPzEunk.js";import{t as x}from"./mobile-bottom-sheet-M5iZDX7y.js";import{n as S,r as C,t as w,u as T}from"./adaptive-context-menu-CbgPYQmj.js";import{C as E,D,E as O,Kt as k,O as A,S as j,T as M,Vt as ee,Xt as N,b as P,v as F,w as I,x as te,y as ne}from"./index-CBn4SOoT.js";import{t as L}from"./use-websocket-rxJLbFqy.js";import"./use-blob-url-DcRcjNTE.js";import{t as R}from"./markdown-renderer-CnRcKK3d.js";import"./run-in-terminal-C9xpskFn.js";var z=r(`scroll-text`,[[`path`,{d:`M15 12h-5`,key:`r7krc0`}],[`path`,{d:`M15 8h-5`,key:`1khuty`}],[`path`,{d:`M19 17V5a2 2 0 0 0-2-2H4`,key:`zz82l3`}],[`path`,{d:`M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3`,key:`1ph1d7`}]]),B=r(`user-plus`,[[`path`,{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`,key:`1yyitq`}],[`circle`,{cx:`9`,cy:`7`,r:`4`,key:`nufk8`}],[`line`,{x1:`19`,x2:`19`,y1:`8`,y2:`14`,key:`1bvyxn`}],[`line`,{x1:`22`,x2:`16`,y1:`11`,y2:`11`,key:`1shjgl`}]]),V=e(t(),1),H=8e3;function re(e,t){let[n,r]=(0,V.useState)([]),[i,a]=(0,V.useState)([]),[o,s]=(0,V.useState)(`idle`),[c,l]=(0,V.useState)({}),[u,d]=(0,V.useState)(!1),[f,p]=(0,V.useState)(!1),[m,h]=(0,V.useState)(!1),[g,_]=(0,V.useState)(null),v=(0,V.useRef)(new Map),y=(0,V.useCallback)(e=>{l(t=>{if(!t[e])return t;let n={...t};return delete n[e],n})},[]),b=(0,V.useCallback)(e=>{let t;try{t=JSON.parse(e.data)}catch{return}switch(t.type){case`ping`:return;case`group_state`:p(!0),s(t.status),a(t.members),h(t.status===`active`);return;case`group_message`:y(t.message.fromMember),r(e=>e.some(e=>e.id===t.message.id)?e:[...e,t.message]);return;case`member_status`:a(e=>e.map(e=>e.id===t.memberId?{...e,status:t.status}:e));return;case`typing`:{l(e=>({...e,[t.member]:!0}));let e=v.current,n=e.get(t.member);n&&clearTimeout(n),e.set(t.member,setTimeout(()=>y(t.member),H));return}case`turn_done`:return;case`group_done`:h(!1),s(`idle`),l({});return;case`error`:_(t.message),h(!1);return}},[y]),{send:x}=L({url:e&&t?`/ws/project/${encodeURIComponent(t)}/group/${encodeURIComponent(e)}`:``,onMessage:b,autoConnect:!!e&&!!t});return(0,V.useEffect)(()=>{let t=!1;r([]),a([]),l({}),s(`idle`),h(!1),_(null),p(!1);for(let e of v.current.values())clearTimeout(e);if(v.current.clear(),e)return d(!0),P(e,{limit:200}).then(e=>{t||r(t=>{let n=new Set(e.messages.map(e=>e.id)),r=t.filter(e=>!n.has(e.id));return[...e.messages,...r]})}).catch(e=>{t||_(e instanceof Error?e.message:`Failed to load feed`)}).finally(()=>{t||d(!1)}),()=>{t=!0}},[e]),{messages:n,members:i,status:o,typing:c,loading:u,isConnected:f,isRunning:m,error:g,sendMessage:(0,V.useCallback)(t=>{let n=t.trim();!n||!e||(_(null),h(!0),f?x(JSON.stringify({type:`message`,content:n})):M(e,n).catch(e=>{_(e instanceof Error?e.message:`Failed to send message`),h(!1)}))},[e,f,x]),stop:(0,V.useCallback)(()=>{e&&(f?x(JSON.stringify({type:`stop`})):O(e).catch(()=>{}),s(`paused`),h(!1))},[e,f,x]),resume:(0,V.useCallback)(()=>{e&&I(e).then(()=>{s(`active`),h(!0)}).catch(e=>_(e instanceof Error?e.message:`Failed to resume`))},[e])}}var U=n();function W(e){let t=e.trim().split(/\s+/).filter(Boolean);return t.length===0?`?`:t.length===1?t[0].slice(0,2).toUpperCase():(t[0][0]+t[t.length-1][0]).toUpperCase()}function G(e){try{let t=e<0xe8d4a51000?e*1e3:e;return new Date(t).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})}catch{return``}}function K(e,t){return e.split(/(@[\p{L}\p{N}_]+)/gu).map((e,n)=>{if(e.startsWith(`@`)&&e.length>1){let r=t(e.slice(1));return(0,U.jsx)(`span`,{className:f(`font-semibold`,!r&&`text-primary`),style:r?{color:r}:void 0,children:e},n)}return e})}var ie=(0,V.memo)(function({message:e,colorFor:t,isLeader:n,onViewFull:r}){let i=e.fromMember===`user`,a=i?`You`:e.fromMember,o=i?`var(--color-primary)`:t(e.fromMember)??`var(--accent)`,s=!i&&n(e.fromMember),c=e.summary??``,l=e.toMember&&e.toMember!==`all`?e.toMember:null,u=(0,U.jsxs)(`div`,{className:f(`group relative flex gap-2.5 px-3 py-2 transition-colors hover:bg-surface-elevated/50`,i&&`bg-primary/5`),style:{boxShadow:`inset 3px 0 0 0 ${o}`},children:[e.fullSessionRef&&(0,U.jsx)(`button`,{type:`button`,onClick:()=>r(e),title:`View full transcript (AI's raw thinking / debug)`,"aria-label":`View full transcript`,className:`absolute right-1.5 top-1.5 hidden items-center rounded p-1 text-text-subtle/60 hover:bg-surface-elevated hover:text-text-secondary can-hover:group-hover:inline-flex`,children:(0,U.jsx)(z,{className:`size-3.5`})}),(0,U.jsx)(`div`,{className:`mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-full text-[11px] font-semibold text-white ring-2 ring-background`,style:{backgroundColor:o},"aria-hidden":!0,children:W(a)}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1 can-hover:pr-6`,children:[(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-0.5`,children:[(0,U.jsx)(`span`,{className:`text-sm font-semibold`,style:{color:i?`var(--color-foreground)`:o},children:a}),s&&(0,U.jsx)(`span`,{className:`rounded bg-surface-elevated px-1.5 py-px text-[10px] font-medium text-text-secondary`,children:`leader`}),l&&(0,U.jsxs)(`span`,{className:`text-[11px] text-text-subtle`,children:[`→ `,l]}),(0,U.jsx)(`span`,{className:`text-[11px] text-text-subtle`,children:G(e.createdAt)})]}),(0,U.jsx)(`div`,{className:`mt-0.5 whitespace-pre-wrap break-words text-sm leading-relaxed text-text-secondary`,children:K(c,t)})]})]});return e.fullSessionRef?(0,U.jsxs)(w,{children:[(0,U.jsx)(T,{asChild:!0,children:u}),(0,U.jsx)(S,{children:(0,U.jsxs)(C,{onClick:()=>r(e),children:[(0,U.jsx)(z,{className:`size-4`}),` View full transcript`]})})]}):u}),q={idle:`bg-text-subtle`,working:`bg-primary animate-pulse`,done:`bg-emerald-500`,error:`bg-destructive`},J={idle:`Idle`,working:`Working`,done:`Done`,error:`Error`},ae=(0,V.memo)(function({members:e,liveStatus:t,typing:n,busy:r,onAdd:i,onEdit:o,onRemove:s}){return(0,U.jsxs)(`div`,{className:`flex flex-col gap-0.5 p-2`,children:[e.map(e=>{let i=n[e.name],c=t.get(e.id)??e.status;return(0,U.jsxs)(`div`,{className:`group flex items-center gap-2 rounded-md px-2 py-1.5`,children:[(0,U.jsx)(`span`,{className:`flex size-6 shrink-0 items-center justify-center rounded-full text-[10px] font-semibold text-white ring-2 ring-background`,style:{backgroundColor:e.color??`var(--accent)`},"aria-hidden":!0,children:e.name.slice(0,1).toUpperCase()}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,U.jsx)(`span`,{className:`truncate text-xs font-medium`,style:{color:e.color??`var(--color-foreground)`},children:e.name}),e.role===`leader`&&(0,U.jsx)(`span`,{className:`rounded-sm bg-accent-wash px-1 text-[9px] font-semibold uppercase text-primary`,children:`lead`})]}),(0,U.jsx)(`span`,{className:`block truncate text-[10px] text-text-subtle`,children:i?`typing…`:e.persona||J[c]})]}),(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5 can-hover:opacity-0 can-hover:group-hover:opacity-100`,children:[(0,U.jsx)(`button`,{type:`button`,onClick:()=>o(e),disabled:r,"aria-label":`Edit ${e.name}`,className:`flex size-8 items-center justify-center rounded-md text-text-subtle hover:bg-surface-elevated hover:text-foreground active:bg-surface-elevated disabled:opacity-40`,children:(0,U.jsx)(a,{className:`size-3.5`})}),(0,U.jsx)(`button`,{type:`button`,onClick:()=>s(e),disabled:r,"aria-label":`Remove ${e.name}`,className:`flex size-8 items-center justify-center rounded-md text-text-subtle hover:bg-surface-elevated hover:text-destructive active:bg-surface-elevated disabled:opacity-40`,children:(0,U.jsx)(d,{className:`size-3.5`})})]}),(0,U.jsx)(`span`,{className:f(`size-2 shrink-0 rounded-full`,q[c]),title:J[c],"aria-hidden":!0})]},e.id)}),(0,U.jsxs)(`button`,{type:`button`,onClick:i,disabled:r,className:`mt-1 flex items-center gap-2 rounded-md px-2 py-2 text-xs font-medium text-primary hover:bg-surface-elevated active:bg-surface-elevated disabled:opacity-40`,children:[(0,U.jsx)(B,{className:`size-4`}),` Add member`]})]})}),Y=`w-full min-h-[40px] rounded-md border border-border bg-background px-3 py-2 text-sm text-foreground placeholder:text-text-subtle focus:outline-none focus:ring-1 focus:ring-primary`;function oe({open:e,member:t,projectName:n,providerId:r=`claude`,onSubmit:i,onClose:a}){let o=m(),[s,c]=(0,V.useState)(t?.name??``),[u,d]=(0,V.useState)(t?.persona??``),[f,p]=(0,V.useState)(t?.model??null),[b,S]=(0,V.useState)(t?.role===`leader`),[C,w]=(0,V.useState)(!1),[T,E]=(0,V.useState)(null),D=(0,V.useCallback)(async()=>{let e=s.trim();if(!e){E(`Name is required`);return}w(!0),E(null);try{await i({name:e,persona:u.trim()||null,model:f,role:b?`leader`:`member`}),a()}catch(e){E(e instanceof Error?e.message:`Failed to save member`),w(!1)}},[s,u,f,b,i,a]),O=t?.role===`leader`,k=(0,U.jsxs)(`div`,{className:`flex flex-col gap-3 px-1 py-1`,children:[(0,U.jsx)(`input`,{className:Y,value:s,onChange:e=>c(e.target.value),placeholder:`Member name`,autoFocus:!0}),(0,U.jsx)(`input`,{className:Y,value:u,onChange:e=>d(e.target.value),placeholder:`Persona (optional)`}),(0,U.jsx)(F,{value:f,onChange:p,projectName:n,providerId:r}),(0,U.jsxs)(`label`,{className:X(O),children:[(0,U.jsx)(`input`,{type:`checkbox`,className:`size-4 accent-[var(--color-primary)]`,checked:b,disabled:O,onChange:e=>S(e.target.checked)}),(0,U.jsx)(`span`,{children:O?`Leader (reassign from another member)`:`Set as leader`})]}),T&&(0,U.jsx)(`p`,{className:`text-xs text-destructive`,children:T}),(0,U.jsxs)(`div`,{className:`flex justify-end gap-2 pt-1`,children:[(0,U.jsx)(h,{variant:`outline`,onClick:a,disabled:C,children:`Cancel`}),(0,U.jsxs)(h,{onClick:D,disabled:C,children:[C&&(0,U.jsx)(l,{className:`mr-1.5 size-4 animate-spin`}),t?`Save`:`Add member`]})]})]});if(!e)return null;let A=t?`Edit member`:`Add member`;return o?(0,U.jsx)(x,{open:!0,onClose:a,className:`flex max-h-[90vh] flex-col`,children:(0,U.jsxs)(`div`,{className:`flex min-h-0 flex-col px-4 pb-2`,children:[(0,U.jsx)(`h2`,{className:`mb-2 text-base font-semibold text-foreground`,children:A}),k]})}):(0,U.jsx)(y,{open:!0,onOpenChange:e=>{e||a()},children:(0,U.jsxs)(_,{className:`flex flex-col sm:max-w-md`,children:[(0,U.jsx)(g,{children:(0,U.jsx)(v,{children:A})}),k]})})}function X(e){return`flex items-center gap-2 text-sm text-text-secondary ${e?`opacity-60`:``}`}function se({messages:e,config:t,projectName:n}){return(0,U.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[t&&(0,U.jsx)(Z,{config:t}),e.map(e=>(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(`span`,{className:`text-[10px] font-semibold uppercase tracking-wide text-text-subtle`,children:e.role===`user`?`User`:e.role===`assistant`?`Assistant`:e.role}),(0,U.jsx)(ce,{message:e,projectName:n})]},e.id)),e.length===0&&(0,U.jsx)(`p`,{className:`py-6 text-center text-sm text-text-subtle`,children:`Transcript is empty.`})]})}function ce({message:e,projectName:t}){let n=e.events??[];if(n.length===0)return e.content.trim()?(0,U.jsx)(R,{content:e.content}):null;let r=new Map;for(let e of n)e.type===`tool_result`&&e.toolUseId&&r.set(e.toolUseId,e);return(0,U.jsx)(`div`,{className:`flex flex-col gap-2`,children:n.map((e,n)=>{if(e.type===`text`)return e.content.trim()?(0,U.jsx)(R,{content:e.content},n):null;if(e.type===`thinking`)return(0,U.jsx)(le,{content:e.content},n);if(e.type===`tool_use`){let i=e.toolUseId?r.get(e.toolUseId):void 0;return(0,U.jsx)(s,{tool:e,result:i,completed:!!i,projectName:t},n)}return null})})}function le({content:e}){let[t,n]=(0,V.useState)(!1);return(0,U.jsxs)(`div`,{className:`rounded-md border border-border bg-surface-elevated/40`,children:[(0,U.jsxs)(`button`,{type:`button`,onClick:()=>n(e=>!e),className:`flex w-full items-center gap-1.5 px-2.5 py-1.5 text-xs text-text-subtle hover:text-text-secondary`,children:[(0,U.jsx)(o,{className:f(`size-3.5 transition-transform`,t&&`rotate-90`)}),(0,U.jsx)(i,{className:`size-3.5`}),(0,U.jsx)(`span`,{children:`Thinking`})]}),t&&(0,U.jsx)(`div`,{className:`border-t border-border px-3 py-2 text-xs leading-relaxed text-text-secondary`,children:(0,U.jsx)(R,{content:e})})]})}function Z({config:e}){let[t,n]=(0,V.useState)(!1),r=[[`Model`,e.model],[`Permission`,e.permissionMode],[`CWD`,e.cwd],[`Git branch`,e.gitBranch],[`CLI version`,e.version]].filter(([,e])=>e);return r.length===0?null:(0,U.jsxs)(`div`,{className:`rounded-md border border-border bg-surface-elevated/40`,children:[(0,U.jsxs)(`button`,{type:`button`,onClick:()=>n(e=>!e),className:`flex w-full items-center gap-1.5 px-2.5 py-1.5 text-xs font-medium text-text-secondary hover:text-foreground`,children:[(0,U.jsx)(o,{className:f(`size-3.5 transition-transform`,t&&`rotate-90`)}),(0,U.jsx)(N,{className:`size-3.5`}),(0,U.jsx)(`span`,{children:`Input config`})]}),t&&(0,U.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 border-t border-border px-3 py-2 text-xs`,children:r.map(([e,t])=>(0,U.jsxs)(`div`,{className:`contents`,children:[(0,U.jsx)(`dt`,{className:`text-text-subtle`,children:e}),(0,U.jsx)(`dd`,{className:`break-all font-mono text-text-secondary`,children:t})]},e))})]})}function ue({groupId:e,message:t,onClose:n}){let r=m(),[i,a]=(0,V.useState)(null),[o,s]=(0,V.useState)(!1),[c,u]=(0,V.useState)(null),d=t?.fullSessionRef??null;if((0,V.useEffect)(()=>{if(!t||!d)return;let n=!1;return a(null),u(null),s(!0),j(e,d).then(e=>{n||a(e)}).catch(e=>{n||u(e instanceof Error?e.message:`Failed to load transcript`)}).finally(()=>{n||s(!1)}),()=>{n=!0}},[e,d,t]),!t)return null;let f=(0,U.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[o&&(0,U.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,U.jsx)(l,{className:`size-5 animate-spin text-primary`})}),c&&(0,U.jsxs)(`div`,{className:`px-1 py-4 text-sm text-text-secondary`,children:[(0,U.jsx)(`p`,{className:`mb-2 font-medium text-foreground`,children:`Full transcript unavailable`}),(0,U.jsx)(`p`,{className:`text-xs text-text-subtle`,children:c}),t.summary&&(0,U.jsx)(`pre`,{className:`mt-4 whitespace-pre-wrap break-words rounded-md bg-surface-elevated p-3 text-xs leading-relaxed text-text-secondary`,children:t.summary})]}),!o&&!c&&i!=null&&(0,U.jsx)(`div`,{className:`px-1 py-1`,children:(0,U.jsx)(se,{messages:i.messages,config:i.config})})]}),p=`${t.fromMember} — full transcript`;return r?(0,U.jsx)(x,{open:!0,onClose:n,className:`max-h-[85vh] flex flex-col`,children:(0,U.jsxs)(`div`,{className:`flex flex-col min-h-0 px-4 pb-2`,children:[(0,U.jsx)(`h2`,{className:`mb-2 text-sm font-semibold text-foreground`,children:p}),f]})}):(0,U.jsx)(y,{open:!0,onOpenChange:e=>{e||n()},children:(0,U.jsxs)(_,{className:`flex max-h-[80vh] flex-col sm:max-w-2xl`,children:[(0,U.jsx)(g,{children:(0,U.jsx)(v,{className:`text-sm`,children:p})}),f]})})}function Q({metadata:e}){let t=e?.groupId??null,{activeProject:n}=p(b(e=>({activeProject:e.activeProject}))),r=e?.projectName??n?.name??``,i=m(),{messages:a,members:o,status:s,typing:d,loading:g,isRunning:_,error:v,sendMessage:y,stop:S,resume:C}=re(t,r),[w,T]=(0,V.useState)(``),[O,j]=(0,V.useState)(null),[M,N]=(0,V.useState)(!1),P=(0,V.useRef)(null),[F,I]=(0,V.useState)([]),[L,R]=(0,V.useState)(null),[z,B]=(0,V.useState)(!1),[H,W]=(0,V.useState)(null),[G,K]=(0,V.useState)(null),q=(0,V.useCallback)(async()=>{if(t)try{let e=await te(t);I(e.members),R(e.maxTurns)}catch{}},[t]),J=(0,V.useCallback)(async e=>{if(!t)return;let n=Math.max(1,Math.min(50,Math.floor(e)||1));R(n);try{await A(t,{maxTurns:n})}catch{q()}},[t,q]);(0,V.useEffect)(()=>{I([]),q()},[t,q]),(0,V.useEffect)(()=>{P.current?.scrollIntoView({block:`end`})},[a.length,d]);let Y=(0,V.useMemo)(()=>new Map(o.map(e=>[e.id,e.status])),[o]),X=F.length?F:o,se=(0,V.useMemo)(()=>{let e=new Map(X.map(e=>[e.name,e.color]));return t=>e.get(t)??null},[X]),ce=(0,V.useMemo)(()=>{let e=new Set(X.filter(e=>e.role===`leader`).map(e=>e.name));return t=>e.has(t)},[X]),le=(0,V.useCallback)(async e=>{t&&(G?.member?await D(t,G.member.id,e):await ne(t,e),await q())},[t,G,q]),Z=(0,V.useCallback)(async e=>{if(t){B(!0),W(null);try{await E(t,e.id),await q()}catch(e){W(e instanceof Error?e.message:`Failed to remove member`)}finally{B(!1)}}},[t,q]),Q=(0,V.useCallback)(()=>{let e=w.trim();e&&(y(e),T(``))},[w,y]),$=Object.keys(d).filter(e=>d[e]);return t?(0,U.jsxs)(`div`,{className:`flex h-full min-h-0`,children:[(0,U.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,U.jsxs)(`div`,{className:`flex h-11 shrink-0 items-center justify-between border-b border-border px-3`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-medium text-foreground`,children:[(0,U.jsx)(`span`,{className:f(`size-2 rounded-full`,s===`active`?`bg-primary animate-pulse`:s===`paused`?`bg-amber-500`:`bg-text-subtle`)}),(0,U.jsx)(`span`,{className:`capitalize`,children:s})]}),(0,U.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[_?(0,U.jsxs)(h,{size:`sm`,variant:`outline`,onClick:S,className:`h-8`,children:[(0,U.jsx)(k,{className:`mr-1 size-3.5`}),` Stop`]}):s===`paused`?(0,U.jsxs)(h,{size:`sm`,variant:`outline`,onClick:C,className:`h-8`,children:[(0,U.jsx)(u,{className:`mr-1 size-3.5`}),` Resume`]}):null,(0,U.jsx)(`button`,{type:`button`,onClick:()=>N(e=>!e),className:`flex size-8 items-center justify-center rounded-md text-text-subtle hover:bg-surface-elevated hover:text-foreground`,"aria-label":`Toggle roster`,children:(0,U.jsx)(ee,{className:`size-4`})})]})]}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:g?(0,U.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,U.jsx)(l,{className:`size-5 animate-spin text-primary`})}):a.length===0?(0,U.jsx)(`div`,{className:`flex h-full items-center justify-center p-4 text-center text-sm text-text-subtle`,children:`Send a message to start the group.`}):(0,U.jsxs)(`div`,{className:`flex flex-col py-2`,children:[a.map(e=>(0,U.jsx)(ie,{message:e,colorFor:se,isLeader:ce,onViewFull:j},e.id)),$.length>0&&(0,U.jsxs)(`div`,{className:`px-3 py-1.5 text-xs italic text-text-subtle`,children:[$.join(`, `),` `,$.length===1?`is`:`are`,` typing…`]}),(0,U.jsx)(`div`,{ref:P})]})}),v&&(0,U.jsx)(`div`,{className:`shrink-0 border-t border-border bg-destructive/10 px-3 py-2 text-xs text-destructive`,children:v}),(0,U.jsx)(`div`,{className:`shrink-0 border-t border-border p-2`,children:(0,U.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,U.jsx)(`textarea`,{value:w,onChange:e=>T(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!i&&(e.preventDefault(),Q())},rows:1,placeholder:`Message the group…`,className:`max-h-32 min-h-[44px] flex-1 resize-none rounded-md border border-border bg-background px-3 py-2.5 text-sm text-foreground placeholder:text-text-subtle focus:outline-none focus:ring-1 focus:ring-primary`}),(0,U.jsx)(h,{onClick:Q,disabled:!w.trim(),className:`size-11 shrink-0 p-0`,"aria-label":`Send`,children:(0,U.jsx)(c,{className:`size-4`})})]})})]}),i?(0,U.jsxs)(x,{open:M,onClose:()=>N(!1),className:`flex max-h-[72vh] flex-col`,children:[(0,U.jsx)(`div`,{className:`flex h-11 shrink-0 items-center px-4 text-sm font-medium text-foreground`,children:`Members`}),(0,U.jsxs)(`div`,{className:`min-h-0 overflow-y-auto`,children:[L!==null&&(0,U.jsxs)(`label`,{className:`flex items-center gap-2 px-4 py-2 text-xs text-text-secondary`,children:[(0,U.jsx)(`span`,{children:`Reply cap`}),(0,U.jsx)(`input`,{type:`number`,min:1,max:50,value:L,onChange:e=>J(Number(e.target.value)),className:`w-14 rounded border border-border bg-background px-1.5 py-1 text-xs text-foreground`}),(0,U.jsx)(`span`,{className:`text-text-subtle`,children:`turns/msg`})]}),H&&(0,U.jsx)(`p`,{className:`px-3 py-1 text-xs text-destructive`,children:H}),(0,U.jsx)(ae,{members:F,liveStatus:Y,typing:d,busy:z,onAdd:()=>K({member:null}),onEdit:e=>K({member:e}),onRemove:Z})]})]}):M&&(0,U.jsxs)(`div`,{className:`flex w-60 shrink-0 flex-col border-l border-border bg-panel`,children:[(0,U.jsx)(`div`,{className:`flex h-11 shrink-0 items-center border-b border-border px-3 text-sm font-medium text-foreground`,children:`Members`}),(0,U.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[L!==null&&(0,U.jsxs)(`label`,{className:`flex items-center gap-2 px-3 py-2 text-xs text-text-secondary`,children:[(0,U.jsx)(`span`,{children:`Reply cap`}),(0,U.jsx)(`input`,{type:`number`,min:1,max:50,value:L,onChange:e=>J(Number(e.target.value)),className:`w-14 rounded border border-border bg-background px-1.5 py-1 text-xs text-foreground`}),(0,U.jsx)(`span`,{className:`text-text-subtle`,children:`turns/msg`})]}),H&&(0,U.jsx)(`p`,{className:`px-3 py-1 text-xs text-destructive`,children:H}),(0,U.jsx)(ae,{members:F,liveStatus:Y,typing:d,busy:z,onAdd:()=>K({member:null}),onEdit:e=>K({member:e}),onRemove:Z})]})]}),G&&(0,U.jsx)(oe,{open:!0,member:G.member,projectName:r,onSubmit:le,onClose:()=>K(null)},G.member?.id??`add`),(0,U.jsx)(ue,{groupId:t,message:O,onClose:()=>j(null)})]}):(0,U.jsx)(`div`,{className:`flex h-full items-center justify-center p-4 text-sm text-text-subtle`,children:`No group selected.`})}export{Q as GroupChatTab};
|