@hachej/boring-ui-cli 0.1.12 → 0.1.13
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/package.json +3 -3
- package/public/assets/{CodeEditor-DQqOn4xz-DuFpBvbb.js → CodeEditor-DQqOn4xz-43ZRJnBk.js} +1 -1
- package/public/assets/{FileTree-BVfqs3rR-Czof9U4p.js → FileTree-BVfqs3rR-Cj1lLRuM.js} +1 -1
- package/public/assets/{MarkdownEditor-CcCDF65H-D2GfBGsV.js → MarkdownEditor-CcCDF65H-wNyV9k_h.js} +1 -1
- package/public/assets/{_baseUniq-CsAl84mt.js → _baseUniq-C6fgNBwH.js} +1 -1
- package/public/assets/{arc-PTZanISu.js → arc-DHH-gLyV.js} +1 -1
- package/public/assets/{architectureDiagram-Q4EWVU46-CVcjgRnu.js → architectureDiagram-Q4EWVU46-kET4ZFwD.js} +1 -1
- package/public/assets/{blockDiagram-DXYQGD6D-Bru_ZwpZ.js → blockDiagram-DXYQGD6D-BuyaW2GC.js} +1 -1
- package/public/assets/{c4Diagram-AHTNJAMY-BW3IBSCV.js → c4Diagram-AHTNJAMY-DUSmbamx.js} +1 -1
- package/public/assets/channel-CUyWgwUc.js +1 -0
- package/public/assets/{chunk-4BX2VUAB-YcjheD0W.js → chunk-4BX2VUAB-hMkrRbra.js} +1 -1
- package/public/assets/{chunk-4TB4RGXK-D56FxuL5.js → chunk-4TB4RGXK-DAkJYV0r.js} +1 -1
- package/public/assets/{chunk-55IACEB6-B6MbtPYM.js → chunk-55IACEB6-CQ4cPkeu.js} +1 -1
- package/public/assets/{chunk-EDXVE4YY-DzJUuRqn.js → chunk-EDXVE4YY-BhU6gznk.js} +1 -1
- package/public/assets/{chunk-FMBD7UC4-CHrv3vIp.js → chunk-FMBD7UC4-CXkmSrcX.js} +1 -1
- package/public/assets/{chunk-OYMX7WX6-BT4nDcXl.js → chunk-OYMX7WX6-B6YmKjoP.js} +1 -1
- package/public/assets/{chunk-QZHKN3VN-ZltyYxH5.js → chunk-QZHKN3VN-DaBewk7d.js} +1 -1
- package/public/assets/{chunk-YZCP3GAM-BaUQKTaA.js → chunk-YZCP3GAM-wVeKMZui.js} +1 -1
- package/public/assets/classDiagram-6PBFFD2Q--KL4rJah.js +1 -0
- package/public/assets/classDiagram-v2-HSJHXN6E--KL4rJah.js +1 -0
- package/public/assets/clone-DAST79i1.js +1 -0
- package/public/assets/{cose-bilkent-S5V4N54A-D_3_vdXE.js → cose-bilkent-S5V4N54A-DI8T3pQ5.js} +1 -1
- package/public/assets/{dagre-KV5264BT-BG41F0c2.js → dagre-KV5264BT-BzhUQX3L.js} +1 -1
- package/public/assets/{diagram-5BDNPKRD-DIvJKX1t.js → diagram-5BDNPKRD-BmjVDoqS.js} +1 -1
- package/public/assets/{diagram-G4DWMVQ6-BAvBh9MI.js → diagram-G4DWMVQ6-0qBOUHAQ.js} +1 -1
- package/public/assets/{diagram-MMDJMWI5-7Ck3ersx.js → diagram-MMDJMWI5-ZuUygJfX.js} +1 -1
- package/public/assets/{diagram-TYMM5635-CfYIGnZO.js → diagram-TYMM5635-DLicNSlG.js} +1 -1
- package/public/assets/{erDiagram-SMLLAGMA-J8_GEWbc.js → erDiagram-SMLLAGMA-BIqDaKsJ.js} +1 -1
- package/public/assets/{flowDiagram-DWJPFMVM-DSNWoowL.js → flowDiagram-DWJPFMVM-BuMuUYvo.js} +1 -1
- package/public/assets/{ganttDiagram-T4ZO3ILL-CqeSgxFm.js → ganttDiagram-T4ZO3ILL-h_0R8kpx.js} +1 -1
- package/public/assets/{gitGraphDiagram-UUTBAWPF-WTqcsRvO.js → gitGraphDiagram-UUTBAWPF-CFZuKUPu.js} +1 -1
- package/public/assets/{graph-DV--OlCM.js → graph-BvcPX0LE.js} +1 -1
- package/public/assets/{highlighted-body-OFNGDK62-5nFXisM5.js → highlighted-body-OFNGDK62-B5LPCsvB.js} +1 -1
- package/public/assets/{index-BCTkptLY.js → index-CZBRICYr.js} +1 -1
- package/public/assets/index-DKanL3AM.css +1 -0
- package/public/assets/{index-XsaRyZHq.js → index-y7tKhGxl.js} +6 -6
- package/public/assets/{infoDiagram-42DDH7IO-21ZE2SqE.js → infoDiagram-42DDH7IO-C0QkIqtm.js} +1 -1
- package/public/assets/{ishikawaDiagram-UXIWVN3A-BZHBECQ2.js → ishikawaDiagram-UXIWVN3A-DkzZIthw.js} +1 -1
- package/public/assets/{journeyDiagram-VCZTEJTY-r3HLhR12.js → journeyDiagram-VCZTEJTY-BEpMOI6B.js} +1 -1
- package/public/assets/{kanban-definition-6JOO6SKY-CPVAOYpU.js → kanban-definition-6JOO6SKY-DGBlgtiV.js} +1 -1
- package/public/assets/{layout-DVgbi3D8.js → layout-m9mU-Es4.js} +1 -1
- package/public/assets/{linear-BhYOZzNM.js → linear-gvQOMf93.js} +1 -1
- package/public/assets/{min-DfE81L3F.js → min-DbPrSRXJ.js} +1 -1
- package/public/assets/{mindmap-definition-QFDTVHPH-CA2yvXBH.js → mindmap-definition-QFDTVHPH-D-w8aNmQ.js} +1 -1
- package/public/assets/{pieDiagram-DEJITSTG-L_mmH_pC.js → pieDiagram-DEJITSTG-BJfiij1X.js} +1 -1
- package/public/assets/{quadrantDiagram-34T5L4WZ-CnQ66FVE.js → quadrantDiagram-34T5L4WZ-SEDnxGzO.js} +1 -1
- package/public/assets/{requirementDiagram-MS252O5E-DDS8MLl5.js → requirementDiagram-MS252O5E-CRXbp7i_.js} +1 -1
- package/public/assets/{sankeyDiagram-XADWPNL6-dVHOsqxu.js → sankeyDiagram-XADWPNL6-BQ5yTiY0.js} +1 -1
- package/public/assets/{sequenceDiagram-FGHM5R23-ChrdcmX-.js → sequenceDiagram-FGHM5R23-D3fAknEI.js} +1 -1
- package/public/assets/{stateDiagram-FHFEXIEX-BPKTx0lB.js → stateDiagram-FHFEXIEX-DME_bKgM.js} +1 -1
- package/public/assets/stateDiagram-v2-QKLJ7IA2-Cup0egSL.js +1 -0
- package/public/assets/{timeline-definition-GMOUNBTQ-CcLsYfJW.js → timeline-definition-GMOUNBTQ-CGOu_F4b.js} +1 -1
- package/public/assets/{vennDiagram-DHZGUBPP-Be3AUip7.js → vennDiagram-DHZGUBPP-BLPdNseJ.js} +1 -1
- package/public/assets/{wardley-RL74JXVD-1V2kQ4MI.js → wardley-RL74JXVD-B8d_2bb8.js} +1 -1
- package/public/assets/{wardleyDiagram-NUSXRM2D-DpRPkIlo.js → wardleyDiagram-NUSXRM2D-waI-JAEe.js} +1 -1
- package/public/assets/{xychartDiagram-5P7HB3ND-Cvj_r6ra.js → xychartDiagram-5P7HB3ND-BUIUqkqr.js} +1 -1
- package/public/index.html +2 -2
- package/public/assets/channel-CFDWsi74.js +0 -1
- package/public/assets/classDiagram-6PBFFD2Q-DIdIurqI.js +0 -1
- package/public/assets/classDiagram-v2-HSJHXN6E-DIdIurqI.js +0 -1
- package/public/assets/clone-4dCRxMF-.js +0 -1
- package/public/assets/index-C6eyf77n.css +0 -1
- package/public/assets/stateDiagram-v2-QKLJ7IA2-DJmb7lXU.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/angular-html-DA-rfuFy.js","assets/html-pp8916En.js","assets/javascript-wDzz0qaB.js","assets/css-CLj8gQPS.js","assets/angular-ts-BrjP3tb8.js","assets/scss-D5BDwBP9.js","assets/apl-CORt7UWP.js","assets/xml-sdJ4AIDG.js","assets/java-CylS5w8V.js","assets/json-Cp-IABpG.js","assets/astro-HNnZUWAn.js","assets/typescript-BPQ3VLAy.js","assets/postcss-CXtECtnM.js","assets/tsx-COt5Ahok.js","assets/blade-BjGOyj-B.js","assets/html-derivative-DlHx6ybY.js","assets/sql-BLtJtn59.js","assets/bsl-BO_Y6i37.js","assets/sdbl-DVxCFoDh.js","assets/cairo-KRGpt6FW.js","assets/python-B6aJPvgy.js","assets/cobol-nBiQ_Alo.js","assets/coffee-Ch7k5sss.js","assets/cpp-CofmeUqb.js","assets/regexp-CDVJQ6XC.js","assets/glsl-DplSGwfg.js","assets/c-BIGW1oBm.js","assets/crystal-DNxU26gB.js","assets/shellscript-Yzrsuije.js","assets/edge-FbVlp4U3.js","assets/elixir-CkH2-t6x.js","assets/elm-DbKCFpqz.js","assets/erb-BYCe7drp.js","assets/ruby-Wjq7vjNf.js","assets/haml-D5jkg6IW.js","assets/graphql-ChdNCCLP.js","assets/jsx-g9-lgVsj.js","assets/lua-BaeVxFsk.js","assets/yaml-Buea-lGh.js","assets/erlang-DsQrWhSR.js","assets/markdown-Cvjx9yec.js","assets/fortran-fixed-form-CkoXwp7k.js","assets/fortran-free-form-BxgE0vQu.js","assets/fsharp-CXgrBDvD.js","assets/gdresource-BOOCDP_w.js","assets/gdshader-DkwncUOv.js","assets/gdscript-C5YyOfLZ.js","assets/git-commit-F4YmCXRG.js","assets/diff-D97Zzqfu.js","assets/git-rebase-r7XF79zn.js","assets/glimmer-js-ByusRIyA.js","assets/glimmer-ts-BfAWNZQY.js","assets/hack-i7_Ulhet.js","assets/handlebars-BpdQsYii.js","assets/http-jrhK8wxY.js","assets/hurl-irOxFIW8.js","assets/csv-fuZLfV_i.js","assets/hxml-Bvhsp5Yf.js","assets/haxe-CzTSHFRz.js","assets/jinja-f2NsQr07.js","assets/jison-wvAkD_A8.js","assets/julia-CxzCAyBv.js","assets/r-Dspwwk_N.js","assets/just-VxiPbLrw.js","assets/perl-NvoQZIq0.js","assets/latex-CWtU0Tv5.js","assets/tex-idrVyKtj.js","assets/liquid-C0sCDyMI.js","assets/marko-DjSrsDqO.js","assets/less-B1dDrJ26.js","assets/mdc-DTYItulj.js","assets/nextflow-C-mBbutL.js","assets/nextflow-groovy-vE_lwT2v.js","assets/nginx-BpAMiNFr.js","assets/nim-BIad80T-.js","assets/php-R6g_5hLQ.js","assets/pug-DKIMFp6K.js","assets/qml-3beO22l8.js","assets/razor-BDqjjVU7.js","assets/csharp-COcwbKMJ.js","assets/rst-CRjBmOyv.js","assets/cmake-D1j8_8rp.js","assets/sas-cz2c8ADy.js","assets/shaderlab-Dg9Lc6iA.js","assets/hlsl-D3lLCCz7.js","assets/shellsession-BADoaaVG.js","assets/soy-8wufbnw4.js","assets/sparql-rVzFXLq3.js","assets/turtle-BsS91CYL.js","assets/stata-BH5u7GGu.js","assets/surrealql-Bq5Q-fJD.js","assets/svelte-Cy7k_4gC.js","assets/templ-DhtptRzy.js","assets/go-C27-OAKa.js","assets/ts-tags-DQrlYJgV.js","assets/twig-xg9kU7Mw.js","assets/vue-D2xRrEX4.js","assets/vue-html-AaS7Mt5G.js","assets/vue-vine-BoDAl6tE.js","assets/stylus-BEDo0Tqx.js","assets/xsl-CtQFsRM5.js","assets/angular-html-CU67Zn6k.js","assets/html-GMplVEZG.js","assets/javascript-XPxc2APE.js","assets/css-DPfMkruS.js","assets/angular-ts-BwZT4LLn.js","assets/scss-OYdSNvt2.js","assets/apl-dKokRX4l.js","assets/xml-DtyAt_xK.js","assets/java-B2AjWfgk.js","assets/json-CjLXzM_z.js","assets/astro-CbQHKStN.js","assets/typescript-DttGkNCf.js","assets/postcss-BSGhOJ4k.js","assets/tsx-Dio8iE-N.js","assets/blade-D4QpJJKB.js","assets/html-derivative-BFtXZ54Q.js","assets/sql-CKXjX23X.js","assets/bsl-C4qeDxuX.js","assets/sdbl-C5Q1usnU.js","assets/cairo-C_mOTUpN.js","assets/python-DgE28U1V.js","assets/cobol-nwyudZeR.js","assets/coffee-CSg58a7P.js","assets/cpp-C28rag7_.js","assets/regexp-BW_zLBm-.js","assets/glsl-Bk7TyU8J.js","assets/c-CyUOlKFr.js","assets/crystal-tKQVLTB8.js","assets/shellscript-CE-5zpiL.js","assets/edge-BkV0erSs.js","assets/elixir-CDX3lj18.js","assets/elm-BX_9EnK8.js","assets/erb-B12qg9BL.js","assets/ruby-Dw2BHqvy.js","assets/haml-B8DHNrY2.js","assets/graphql-By4-2MiP.js","assets/jsx-BGEKFWBk.js","assets/lua-JmSlR1pZ.js","assets/yaml-B92AUxDB.js","assets/erlang-Dh270pQQ.js","assets/markdown-CKXSK5AY.js","assets/fortran-fixed-form-B5hFr6Yn.js","assets/fortran-free-form-BuX3zftO.js","assets/fsharp-B6CigNpP.js","assets/gdresource-ChoLB09i.js","assets/gdshader-MbeiIFWW.js","assets/gdscript-BajwJ0jS.js","assets/git-commit-BicZTByO.js","assets/diff-BlzBhZx2.js","assets/git-rebase-Bzlpfr7M.js","assets/glimmer-js-Rg0-pVw9.js","assets/glimmer-ts-U6CK756n.js","assets/hack-CaT9iCJl.js","assets/handlebars-BL8al0AC.js","assets/http-D0p2QOuJ.js","assets/hurl-CeF7EoTQ.js","assets/csv-AZNL9t8Q.js","assets/hxml-B_SuSTPP.js","assets/haxe-n0Q_eay_.js","assets/jinja-4LBKfQ-Z.js","assets/jison-DRGa8fbr.js","assets/julia-BxjEHQ54.js","assets/r-BcofxrH1.js","assets/just-Cw27pwNe.js","assets/perl-C0TMdlhV.js","assets/latex-C-qBiGC3.js","assets/tex-BLPnQt1V.js","assets/liquid-DYVedYrR.js","assets/marko-CnJfTvn9.js","assets/less-C76OjOdF.js","assets/mdc-BMNejdWA.js","assets/nextflow-Zz6hmt5N.js","assets/nextflow-groovy-BeH2EWoN.js","assets/nginx-bBKbG2uI.js","assets/nim-CVrawwO9.js","assets/php-Dhbhpdrm.js","assets/pug-CGlum2m_.js","assets/qml-BEkX6VoX.js","assets/razor-Uh8Bk_45.js","assets/csharp-DieIJxYJ.js","assets/rst-BrH8l1NY.js","assets/cmake-Cv5ljclQ.js","assets/sas-BZeeyq_z.js","assets/shaderlab-DNkMdb2B.js","assets/hlsl-Pefxhtaj.js","assets/shellsession-BhddCRKA.js","assets/soy-Brmx7dQM.js","assets/sparql-CHK3vDkL.js","assets/turtle-whXsfw69.js","assets/stata-BJqnY-gO.js","assets/surrealql-CYeReaNr.js","assets/svelte-C_ipcX3V.js","assets/templ-P3uqSqPl.js","assets/go-CxLEBnE3.js","assets/ts-tags-zn1MmPIZ.js","assets/twig-DNn4PbVi.js","assets/vue-DN_0RTcg.js","assets/vue-html-BM4TQ0nH.js","assets/vue-vine-CQOfvN7w.js","assets/stylus-CHekGIgu.js","assets/xsl-Btrj9DhN.js","assets/dagre-KV5264BT-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/angular-html-DA-rfuFy.js","assets/html-pp8916En.js","assets/javascript-wDzz0qaB.js","assets/css-CLj8gQPS.js","assets/angular-ts-BrjP3tb8.js","assets/scss-D5BDwBP9.js","assets/apl-CORt7UWP.js","assets/xml-sdJ4AIDG.js","assets/java-CylS5w8V.js","assets/json-Cp-IABpG.js","assets/astro-HNnZUWAn.js","assets/typescript-BPQ3VLAy.js","assets/postcss-CXtECtnM.js","assets/tsx-COt5Ahok.js","assets/blade-BjGOyj-B.js","assets/html-derivative-DlHx6ybY.js","assets/sql-BLtJtn59.js","assets/bsl-BO_Y6i37.js","assets/sdbl-DVxCFoDh.js","assets/cairo-KRGpt6FW.js","assets/python-B6aJPvgy.js","assets/cobol-nBiQ_Alo.js","assets/coffee-Ch7k5sss.js","assets/cpp-CofmeUqb.js","assets/regexp-CDVJQ6XC.js","assets/glsl-DplSGwfg.js","assets/c-BIGW1oBm.js","assets/crystal-DNxU26gB.js","assets/shellscript-Yzrsuije.js","assets/edge-FbVlp4U3.js","assets/elixir-CkH2-t6x.js","assets/elm-DbKCFpqz.js","assets/erb-BYCe7drp.js","assets/ruby-Wjq7vjNf.js","assets/haml-D5jkg6IW.js","assets/graphql-ChdNCCLP.js","assets/jsx-g9-lgVsj.js","assets/lua-BaeVxFsk.js","assets/yaml-Buea-lGh.js","assets/erlang-DsQrWhSR.js","assets/markdown-Cvjx9yec.js","assets/fortran-fixed-form-CkoXwp7k.js","assets/fortran-free-form-BxgE0vQu.js","assets/fsharp-CXgrBDvD.js","assets/gdresource-BOOCDP_w.js","assets/gdshader-DkwncUOv.js","assets/gdscript-C5YyOfLZ.js","assets/git-commit-F4YmCXRG.js","assets/diff-D97Zzqfu.js","assets/git-rebase-r7XF79zn.js","assets/glimmer-js-ByusRIyA.js","assets/glimmer-ts-BfAWNZQY.js","assets/hack-i7_Ulhet.js","assets/handlebars-BpdQsYii.js","assets/http-jrhK8wxY.js","assets/hurl-irOxFIW8.js","assets/csv-fuZLfV_i.js","assets/hxml-Bvhsp5Yf.js","assets/haxe-CzTSHFRz.js","assets/jinja-f2NsQr07.js","assets/jison-wvAkD_A8.js","assets/julia-CxzCAyBv.js","assets/r-Dspwwk_N.js","assets/just-VxiPbLrw.js","assets/perl-NvoQZIq0.js","assets/latex-CWtU0Tv5.js","assets/tex-idrVyKtj.js","assets/liquid-C0sCDyMI.js","assets/marko-DjSrsDqO.js","assets/less-B1dDrJ26.js","assets/mdc-DTYItulj.js","assets/nextflow-C-mBbutL.js","assets/nextflow-groovy-vE_lwT2v.js","assets/nginx-BpAMiNFr.js","assets/nim-BIad80T-.js","assets/php-R6g_5hLQ.js","assets/pug-DKIMFp6K.js","assets/qml-3beO22l8.js","assets/razor-BDqjjVU7.js","assets/csharp-COcwbKMJ.js","assets/rst-CRjBmOyv.js","assets/cmake-D1j8_8rp.js","assets/sas-cz2c8ADy.js","assets/shaderlab-Dg9Lc6iA.js","assets/hlsl-D3lLCCz7.js","assets/shellsession-BADoaaVG.js","assets/soy-8wufbnw4.js","assets/sparql-rVzFXLq3.js","assets/turtle-BsS91CYL.js","assets/stata-BH5u7GGu.js","assets/surrealql-Bq5Q-fJD.js","assets/svelte-Cy7k_4gC.js","assets/templ-DhtptRzy.js","assets/go-C27-OAKa.js","assets/ts-tags-DQrlYJgV.js","assets/twig-xg9kU7Mw.js","assets/vue-D2xRrEX4.js","assets/vue-html-AaS7Mt5G.js","assets/vue-vine-BoDAl6tE.js","assets/stylus-BEDo0Tqx.js","assets/xsl-CtQFsRM5.js","assets/angular-html-CU67Zn6k.js","assets/html-GMplVEZG.js","assets/javascript-XPxc2APE.js","assets/css-DPfMkruS.js","assets/angular-ts-BwZT4LLn.js","assets/scss-OYdSNvt2.js","assets/apl-dKokRX4l.js","assets/xml-DtyAt_xK.js","assets/java-B2AjWfgk.js","assets/json-CjLXzM_z.js","assets/astro-CbQHKStN.js","assets/typescript-DttGkNCf.js","assets/postcss-BSGhOJ4k.js","assets/tsx-Dio8iE-N.js","assets/blade-D4QpJJKB.js","assets/html-derivative-BFtXZ54Q.js","assets/sql-CKXjX23X.js","assets/bsl-C4qeDxuX.js","assets/sdbl-C5Q1usnU.js","assets/cairo-C_mOTUpN.js","assets/python-DgE28U1V.js","assets/cobol-nwyudZeR.js","assets/coffee-CSg58a7P.js","assets/cpp-C28rag7_.js","assets/regexp-BW_zLBm-.js","assets/glsl-Bk7TyU8J.js","assets/c-CyUOlKFr.js","assets/crystal-tKQVLTB8.js","assets/shellscript-CE-5zpiL.js","assets/edge-BkV0erSs.js","assets/elixir-CDX3lj18.js","assets/elm-BX_9EnK8.js","assets/erb-B12qg9BL.js","assets/ruby-Dw2BHqvy.js","assets/haml-B8DHNrY2.js","assets/graphql-By4-2MiP.js","assets/jsx-BGEKFWBk.js","assets/lua-JmSlR1pZ.js","assets/yaml-B92AUxDB.js","assets/erlang-Dh270pQQ.js","assets/markdown-CKXSK5AY.js","assets/fortran-fixed-form-B5hFr6Yn.js","assets/fortran-free-form-BuX3zftO.js","assets/fsharp-B6CigNpP.js","assets/gdresource-ChoLB09i.js","assets/gdshader-MbeiIFWW.js","assets/gdscript-BajwJ0jS.js","assets/git-commit-BicZTByO.js","assets/diff-BlzBhZx2.js","assets/git-rebase-Bzlpfr7M.js","assets/glimmer-js-Rg0-pVw9.js","assets/glimmer-ts-U6CK756n.js","assets/hack-CaT9iCJl.js","assets/handlebars-BL8al0AC.js","assets/http-D0p2QOuJ.js","assets/hurl-CeF7EoTQ.js","assets/csv-AZNL9t8Q.js","assets/hxml-B_SuSTPP.js","assets/haxe-n0Q_eay_.js","assets/jinja-4LBKfQ-Z.js","assets/jison-DRGa8fbr.js","assets/julia-BxjEHQ54.js","assets/r-BcofxrH1.js","assets/just-Cw27pwNe.js","assets/perl-C0TMdlhV.js","assets/latex-C-qBiGC3.js","assets/tex-BLPnQt1V.js","assets/liquid-DYVedYrR.js","assets/marko-CnJfTvn9.js","assets/less-C76OjOdF.js","assets/mdc-BMNejdWA.js","assets/nextflow-Zz6hmt5N.js","assets/nextflow-groovy-BeH2EWoN.js","assets/nginx-bBKbG2uI.js","assets/nim-CVrawwO9.js","assets/php-Dhbhpdrm.js","assets/pug-CGlum2m_.js","assets/qml-BEkX6VoX.js","assets/razor-Uh8Bk_45.js","assets/csharp-DieIJxYJ.js","assets/rst-BrH8l1NY.js","assets/cmake-Cv5ljclQ.js","assets/sas-BZeeyq_z.js","assets/shaderlab-DNkMdb2B.js","assets/hlsl-Pefxhtaj.js","assets/shellsession-BhddCRKA.js","assets/soy-Brmx7dQM.js","assets/sparql-CHK3vDkL.js","assets/turtle-whXsfw69.js","assets/stata-BJqnY-gO.js","assets/surrealql-CYeReaNr.js","assets/svelte-C_ipcX3V.js","assets/templ-P3uqSqPl.js","assets/go-CxLEBnE3.js","assets/ts-tags-zn1MmPIZ.js","assets/twig-DNn4PbVi.js","assets/vue-DN_0RTcg.js","assets/vue-html-BM4TQ0nH.js","assets/vue-vine-CQOfvN7w.js","assets/stylus-CHekGIgu.js","assets/xsl-Btrj9DhN.js","assets/dagre-KV5264BT-BzhUQX3L.js","assets/graph-BvcPX0LE.js","assets/_baseUniq-C6fgNBwH.js","assets/layout-m9mU-Es4.js","assets/min-DbPrSRXJ.js","assets/clone-DAST79i1.js","assets/cose-bilkent-S5V4N54A-DI8T3pQ5.js","assets/cytoscape.esm-DxGcaOPV.js","assets/c4Diagram-AHTNJAMY-DUSmbamx.js","assets/chunk-YZCP3GAM-wVeKMZui.js","assets/flowDiagram-DWJPFMVM-BuMuUYvo.js","assets/chunk-FMBD7UC4-CXkmSrcX.js","assets/chunk-55IACEB6-CQ4cPkeu.js","assets/chunk-EDXVE4YY-BhU6gznk.js","assets/channel-CUyWgwUc.js","assets/erDiagram-SMLLAGMA-BIqDaKsJ.js","assets/gitGraphDiagram-UUTBAWPF-CFZuKUPu.js","assets/chunk-4BX2VUAB-hMkrRbra.js","assets/chunk-QZHKN3VN-DaBewk7d.js","assets/wardley-RL74JXVD-B8d_2bb8.js","assets/ganttDiagram-T4ZO3ILL-h_0R8kpx.js","assets/linear-gvQOMf93.js","assets/init-Gi6I4Gst.js","assets/defaultLocale-DX6XiGOO.js","assets/infoDiagram-42DDH7IO-C0QkIqtm.js","assets/pieDiagram-DEJITSTG-BJfiij1X.js","assets/arc-DHH-gLyV.js","assets/ordinal-Cboi1Yqb.js","assets/quadrantDiagram-34T5L4WZ-SEDnxGzO.js","assets/xychartDiagram-5P7HB3ND-BUIUqkqr.js","assets/requirementDiagram-MS252O5E-CRXbp7i_.js","assets/sequenceDiagram-FGHM5R23-D3fAknEI.js","assets/classDiagram-6PBFFD2Q--KL4rJah.js","assets/chunk-4TB4RGXK-DAkJYV0r.js","assets/classDiagram-v2-HSJHXN6E--KL4rJah.js","assets/stateDiagram-FHFEXIEX-DME_bKgM.js","assets/chunk-OYMX7WX6-B6YmKjoP.js","assets/stateDiagram-v2-QKLJ7IA2-Cup0egSL.js","assets/journeyDiagram-VCZTEJTY-BEpMOI6B.js","assets/timeline-definition-GMOUNBTQ-CGOu_F4b.js","assets/mindmap-definition-QFDTVHPH-D-w8aNmQ.js","assets/kanban-definition-6JOO6SKY-DGBlgtiV.js","assets/sankeyDiagram-XADWPNL6-BQ5yTiY0.js","assets/diagram-TYMM5635-DLicNSlG.js","assets/diagram-MMDJMWI5-ZuUygJfX.js","assets/blockDiagram-DXYQGD6D-BuyaW2GC.js","assets/diagram-5BDNPKRD-BmjVDoqS.js","assets/architectureDiagram-Q4EWVU46-kET4ZFwD.js","assets/diagram-G4DWMVQ6-0qBOUHAQ.js","assets/wardleyDiagram-NUSXRM2D-waI-JAEe.js","assets/FileTree-BVfqs3rR-Cj1lLRuM.js","assets/index-CZBRICYr.js","assets/CodeEditor-DQqOn4xz-43ZRJnBk.js","assets/index-Vcq4gwWv.js","assets/MarkdownEditor-CcCDF65H-wNyV9k_h.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
var gme=Object.defineProperty;var yme=Object.getPrototypeOf;var bme=Reflect.get;var UP=t=>{throw TypeError(t)};var vme=(t,e,r)=>e in t?gme(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var be=(t,e,r)=>vme(t,typeof e!="symbol"?e+"":e,r),D4=(t,e,r)=>e.has(t)||UP("Cannot "+r);var he=(t,e,r)=>(D4(t,e,"read from private field"),r?r.call(t):e.get(t)),wt=(t,e,r)=>e.has(t)?UP("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),st=(t,e,r,n)=>(D4(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),cr=(t,e,r)=>(D4(t,e,"access private method"),r);var h2=(t,e,r,n)=>({set _(i){st(t,e,i,r)},get _(){return he(t,e,n)}}),qP=(t,e,r)=>bme(yme(t),r,e);function xme(t,e){for(var r=0;r<e.length;r++){const n=e[r];if(typeof n!="string"&&!Array.isArray(n)){for(const i in n)if(i!=="default"&&!(i in t)){const s=Object.getOwnPropertyDescriptor(n,i);s&&Object.defineProperty(t,i,s.get?s:{enumerable:!0,get:()=>n[i]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const a of s.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&n(a)}).observe(document,{childList:!0,subtree:!0});function r(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(i){if(i.ep)return;i.ep=!0;const s=r(i);fetch(i.href,s)}})();function eg(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function yvt(t){if(Object.prototype.hasOwnProperty.call(t,"__esModule"))return t;var e=t.default;if(typeof e=="function"){var r=function n(){return this instanceof n?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach(function(n){var i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(r,n,i.get?i:{enumerable:!0,get:function(){return t[n]}})}),r}var L4={exports:{}},E1={};/**
|
|
3
3
|
* @license React
|
|
4
4
|
* react-jsx-runtime.production.js
|
|
@@ -1146,8 +1146,8 @@ Please report this to https://github.com/markedjs/marked.`,e){let i="<p>An error
|
|
|
1146
1146
|
L0,20`)},"requirement_arrow"),OYe=P((t,e,r)=>{const n=Xn(),{themeVariables:i}=n,{strokeWidth:s}=i;t.append("defs").append("marker").attr("id",r+"_"+e+"-requirement_arrowEnd").attr("refX",20).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").attr("markerUnits","userSpaceOnUse").attr("stroke-width",`${s}`).attr("viewBox","0 0 25 20").append("path").attr("d",`M0,0
|
|
1147
1147
|
L20,10
|
|
1148
1148
|
M20,10
|
|
1149
|
-
L0,20`).attr("stroke-linejoin","miter")},"requirement_arrow_neo"),NYe=P((t,e,r)=>{const n=t.append("defs").append("marker").attr("id",r+"_"+e+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");n.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),n.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),n.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)},"requirement_contains"),MYe=P((t,e,r)=>{const n=Xn(),{themeVariables:i}=n,{strokeWidth:s}=i,a=t.append("defs").append("marker").attr("id",r+"_"+e+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("g");a.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),a.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),a.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10),a.selectAll("*").attr("stroke-width",`${s}`)},"requirement_contains_neo"),PYe={extension:pYe,composition:mYe,aggregation:gYe,dependency:yYe,lollipop:bYe,point:vYe,circle:xYe,cross:_Ye,barb:wYe,barbNeo:CYe,only_one:TYe,zero_or_one:kYe,one_or_more:SYe,zero_or_more:EYe,only_one_neo:AYe,zero_or_one_neo:DYe,one_or_more_neo:LYe,zero_or_more_neo:IYe,requirement_arrow:RYe,requirement_contains:NYe,requirement_arrow_neo:OYe,requirement_contains_neo:MYe},BYe=fYe,FYe={common:Iv,getConfig:Xn,insertCluster:MWe,insertEdge:dYe,insertEdgeLabel:aYe,insertMarkers:BYe,insertNode:xle,interpolateToCurve:vI,labelHelper:Zt,log:Ve,positionEdgeLabel:oYe},$b={},Tle=P(t=>{for(const e of t)$b[e.name]=e},"registerLayoutLoaders"),$Ye=P(()=>{Tle([{name:"dagre",loader:P(async()=>await M(()=>import("./dagre-KV5264BT-BG41F0c2.js"),__vite__mapDeps([202,203,204,205,206,207])),"loader")},{name:"cose-bilkent",loader:P(async()=>await M(()=>import("./cose-bilkent-S5V4N54A-D_3_vdXE.js"),__vite__mapDeps([208,209])),"loader")}])},"registerDefaultLayoutLoaders");$Ye();var pxt=P(async(t,e)=>{if(!(t.layoutAlgorithm in $b))throw new Error(`Unknown layout algorithm: ${t.layoutAlgorithm}`);if(t.diagramId)for(const u of t.nodes){const d=u.domId||u.id;u.domId=`${t.diagramId}-${d}`}const r=$b[t.layoutAlgorithm],n=await r.loader(),{theme:i,themeVariables:s}=t.config,{useGradient:a,gradientStart:o,gradientStop:l}=s,c=e.attr("id");if(e.append("defs").append("filter").attr("id",`${c}-drop-shadow`).attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",`${i!=null&&i.includes("dark")?"#FFFFFF":"#000000"}`),e.append("defs").append("filter").attr("id",`${c}-drop-shadow-small`).attr("height","150%").attr("width","150%").append("feDropShadow").attr("dx","2").attr("dy","2").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",`${i!=null&&i.includes("dark")?"#FFFFFF":"#000000"}`),a){const u=e.append("linearGradient").attr("id",e.attr("id")+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");u.append("svg:stop").attr("offset","0%").attr("stop-color",o).attr("stop-opacity",1),u.append("svg:stop").attr("offset","100%").attr("stop-color",l).attr("stop-opacity",1)}return n.render(t,e,FYe,{algorithm:r.algorithm})},"render"),mxt=P((t="",{fallback:e="dagre"}={})=>{if(t in $b)return t;if(e in $b)return Ve.warn(`Layout algorithm ${t} is not registered. Using ${e} as fallback.`),e;throw new Error(`Both layout algorithms ${t} and ${e} are not registered.`)},"getRegisteredLayoutAlgorithm"),kle="comm",Sle="rule",Ele="decl",zYe="@import",jYe="@namespace",HYe="@keyframes",VYe="@layer",UYe=Math.abs,qy=String.fromCharCode;function Ale(t){return t.trim()}function r7(t,e,r){return t.replace(e,r)}function Y0(t,e){return t.charCodeAt(e)|0}function Zm(t,e,r){return t.slice(e,r)}function wl(t){return t.length}function qYe(t){return t.length}function i_(t,e){return e.push(t),t}var Zk=1,Xm=1,Dle=0,Co=0,Ei=0,kg="";function zI(t,e,r,n,i,s,a,o){return{value:t,root:e,parent:r,type:n,props:i,children:s,line:Zk,column:Xm,length:a,return:"",siblings:o}}function GYe(){return Ei}function WYe(){return Ei=Co>0?Y0(kg,--Co):0,Xm--,Ei===10&&(Xm=1,Zk--),Ei}function Wo(){return Ei=Co<Dle?Y0(kg,Co++):0,Xm++,Ei===10&&(Xm=1,Zk++),Ei}function Eh(){return Y0(kg,Co)}function nw(){return Co}function Xk(t,e){return Zm(kg,t,e)}function zb(t){switch(t){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function YYe(t){return Zk=Xm=1,Dle=wl(kg=t),Co=0,[]}function ZYe(t){return kg="",t}function E5(t){return Ale(Xk(Co-1,n7(t===91?t+2:t===40?t+1:t)))}function XYe(t){for(;(Ei=Eh())&&Ei<33;)Wo();return zb(t)>2||zb(Ei)>3?"":" "}function KYe(t,e){for(;--e&&Wo()&&!(Ei<48||Ei>102||Ei>57&&Ei<65||Ei>70&&Ei<97););return Xk(t,nw()+(e<6&&Eh()==32&&Wo()==32))}function n7(t){for(;Wo();)switch(Ei){case t:return Co;case 34:case 39:t!==34&&t!==39&&n7(Ei);break;case 40:t===41&&n7(t);break;case 92:Wo();break}return Co}function QYe(t,e){for(;Wo()&&t+Ei!==57;)if(t+Ei===84&&Eh()===47)break;return"/*"+Xk(e,Co-1)+"*"+qy(t===47?t:Wo())}function JYe(t){for(;!zb(Eh());)Wo();return Xk(t,Co)}function eZe(t){return ZYe(iw("",null,null,null,[""],t=YYe(t),0,[0],t))}function iw(t,e,r,n,i,s,a,o,l){for(var c=0,u=0,d=a,m=0,p=0,y=0,b=1,v=1,x=1,w=0,C=0,S="",D=i,L=s,R=n,O=S;v;)switch(y=C,C=Wo()){case 40:y!=108&&Y0(O,d-1)==58?(w++,O+="("):O+=E5(C);break;case 41:w--,O+=")";break;case 34:case 39:case 91:O+=E5(C);break;case 9:case 10:case 13:case 32:if(w>0){O+=qy(C);break}O+=XYe(y);break;case 92:O+=KYe(nw()-1,7);continue;case 47:switch(Eh()){case 42:case 47:i_(tZe(QYe(Wo(),nw()),e,r,l),l),(zb(y||1)==5||zb(Eh()||1)==5)&&wl(O)&&Zm(O,-1,void 0)!==" "&&(O+=" ");break;default:O+="/"}break;case 123*b:o[c++]=wl(O)*x;case 125*b:case 59:case 0:if(w>0&&C){O+=qy(C);break}switch(C){case 0:case 125:v=0;case 59+u:x==-1&&(O=r7(O,/\f/g,"")),p>0&&(wl(O)-d||b===0)&&i_(p>32?MV(O+";",n,r,d-1,l):MV(r7(O," ","")+";",n,r,d-2,l),l);break;case 59:O+=";";default:if(i_(R=NV(O,e,r,c,u,i,o,S,D=[],L=[],d,s),s),C===123)if(u===0)iw(O,e,R,R,D,s,d,o,L);else{switch(m){case 99:if(Y0(O,3)===110)break;case 108:if(Y0(O,2)===97)break;default:u=0;case 100:case 109:case 115:}u?iw(t,R,R,n&&i_(NV(t,R,R,0,0,i,o,S,i,D=[],d,L),L),i,L,d,o,n?D:L):iw(O,R,R,R,[""],L,0,o,L)}}c=u=p=0,b=x=1,S=O="",d=a;break;case 58:d=1+wl(O),p=y;default:if(b<1){if(C==123)--b;else if(C==125&&b++==0&&WYe()==125)continue}switch(O+=qy(C),C*b){case 38:x=u>0?1:(O+="\f",-1);break;case 44:if(w>0)break;o[c++]=(wl(O)-1)*x,x=1;break;case 64:Eh()===45&&(O+=E5(Wo())),m=Eh(),u=d=wl(S=O+=JYe(nw())),C++;break;case 45:y===45&&wl(O)==2&&(b=0)}}return s}function NV(t,e,r,n,i,s,a,o,l,c,u,d){for(var m=i-1,p=i===0?s:[""],y=qYe(p),b=0,v=0,x=0;b<n;++b)for(var w=0,C=Zm(t,m+1,m=UYe(v=a[b])),S=t;w<y;++w)(S=Ale(v>0?p[w]+" "+C:r7(C,/&\f/g,p[w])))&&(l[x++]=S);return zI(t,e,r,i===0?Sle:o,l,c,u,d)}function tZe(t,e,r,n){return zI(t,e,r,kle,qy(GYe()),Zm(t,2,-2),0,n)}function MV(t,e,r,n,i){return zI(t,e,r,Ele,Zm(t,0,n),Zm(t,n+1,-1),n,i)}function i7(t,e){for(var r="",n=0;n<t.length;n++)r+=e(t[n],n,t,e)||"";return r}function rZe(t,e,r,n){switch(t.type){case VYe:if(t.children.length)break;case zYe:case jYe:case Ele:return t.return=t.return||t.value;case kle:return"";case HYe:return t.return=t.value+"{"+i7(t.children,n)+"}";case Sle:if(!wl(t.value=t.props.join(",")))return""}return wl(r=i7(t.children,n))?t.return=t.value+"{"+r+"}":""}var nZe=Jse(Object.keys,Object),iZe=Object.prototype,sZe=iZe.hasOwnProperty;function aZe(t){if(!zk(t))return nZe(t);var e=[];for(var r in Object(t))sZe.call(t,r)&&r!="constructor"&&e.push(r);return e}var s7=op(tc,"DataView"),a7=op(tc,"Promise"),o7=op(tc,"Set"),l7=op(tc,"WeakMap"),PV="[object Map]",oZe="[object Object]",BV="[object Promise]",FV="[object Set]",$V="[object WeakMap]",zV="[object DataView]",lZe=ap(s7),cZe=ap(Bb),uZe=ap(a7),hZe=ap(o7),dZe=ap(l7),Kd=_g;(s7&&Kd(new s7(new ArrayBuffer(1)))!=zV||Bb&&Kd(new Bb)!=PV||a7&&Kd(a7.resolve())!=BV||o7&&Kd(new o7)!=FV||l7&&Kd(new l7)!=$V)&&(Kd=function(t){var e=_g(t),r=e==oZe?t.constructor:void 0,n=r?ap(r):"";if(n)switch(n){case lZe:return zV;case cZe:return PV;case uZe:return BV;case hZe:return FV;case dZe:return $V}return e});var fZe="[object Map]",pZe="[object Set]",mZe=Object.prototype,gZe=mZe.hasOwnProperty;function jV(t){if(t==null)return!0;if(jk(t)&&(HC(t)||typeof t=="string"||typeof t.splice=="function"||yI(t)||bI(t)||jC(t)))return!t.length;var e=Kd(t);if(e==fZe||e==pZe)return!t.size;if(zk(t))return!aZe(t).length;for(var r in t)if(gZe.call(t,r))return!1;return!0}var Lle="c4",yZe=P(t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),"detector"),bZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./c4Diagram-AHTNJAMY-BW3IBSCV.js");return{diagram:e}},__vite__mapDeps([210,211]));return{id:Lle,diagram:t}},"loader"),vZe={id:Lle,detector:yZe,loader:bZe},xZe=vZe,Ile="flowchart",_Ze=P((t,e)=>{var r,n;return((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="dagre-wrapper"||((n=e==null?void 0:e.flowchart)==null?void 0:n.defaultRenderer)==="elk"?!1:/^\s*graph/.test(t)},"detector"),wZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./flowDiagram-DWJPFMVM-DSNWoowL.js");return{diagram:e}},__vite__mapDeps([212,213,211,214,215,216]));return{id:Ile,diagram:t}},"loader"),CZe={id:Ile,detector:_Ze,loader:wZe},TZe=CZe,Rle="flowchart-v2",kZe=P((t,e)=>{var r,n,i;return((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="dagre-d3"?!1:(((n=e==null?void 0:e.flowchart)==null?void 0:n.defaultRenderer)==="elk"&&(e.layout="elk"),/^\s*graph/.test(t)&&((i=e==null?void 0:e.flowchart)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!0:/^\s*flowchart/.test(t))},"detector"),SZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./flowDiagram-DWJPFMVM-DSNWoowL.js");return{diagram:e}},__vite__mapDeps([212,213,211,214,215,216]));return{id:Rle,diagram:t}},"loader"),EZe={id:Rle,detector:kZe,loader:SZe},AZe=EZe,Ole="er",DZe=P(t=>/^\s*erDiagram/.test(t),"detector"),LZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./erDiagram-SMLLAGMA-J8_GEWbc.js");return{diagram:e}},__vite__mapDeps([217,214,215,216]));return{id:Ole,diagram:t}},"loader"),IZe={id:Ole,detector:DZe,loader:LZe},RZe=IZe,Nle="gitGraph",OZe=P(t=>/^\s*gitGraph/.test(t),"detector"),NZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./gitGraphDiagram-UUTBAWPF-WTqcsRvO.js");return{diagram:e}},__vite__mapDeps([218,219,220,221,206,204]));return{id:Nle,diagram:t}},"loader"),MZe={id:Nle,detector:OZe,loader:NZe},PZe=MZe,Mle="gantt",BZe=P(t=>/^\s*gantt/.test(t),"detector"),FZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./ganttDiagram-T4ZO3ILL-CqeSgxFm.js");return{diagram:e}},__vite__mapDeps([222,223,224,225]));return{id:Mle,diagram:t}},"loader"),$Ze={id:Mle,detector:BZe,loader:FZe},zZe=$Ze,Ple="info",jZe=P(t=>/^\s*info/.test(t),"detector"),HZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./infoDiagram-42DDH7IO-21ZE2SqE.js");return{diagram:e}},__vite__mapDeps([226,221,206,204]));return{id:Ple,diagram:t}},"loader"),VZe={id:Ple,detector:jZe,loader:HZe},Ble="pie",UZe=P(t=>/^\s*pie/.test(t),"detector"),qZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./pieDiagram-DEJITSTG-L_mmH_pC.js");return{diagram:e}},__vite__mapDeps([227,219,221,206,204,228,229,224]));return{id:Ble,diagram:t}},"loader"),GZe={id:Ble,detector:UZe,loader:qZe},Fle="quadrantChart",WZe=P(t=>/^\s*quadrantChart/.test(t),"detector"),YZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./quadrantDiagram-34T5L4WZ-CnQ66FVE.js");return{diagram:e}},__vite__mapDeps([230,223,224,225]));return{id:Fle,diagram:t}},"loader"),ZZe={id:Fle,detector:WZe,loader:YZe},XZe=ZZe,$le="xychart",KZe=P(t=>/^\s*xychart(-beta)?/.test(t),"detector"),QZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./xychartDiagram-5P7HB3ND-Cvj_r6ra.js");return{diagram:e}},__vite__mapDeps([231,224,229,223,225]));return{id:$le,diagram:t}},"loader"),JZe={id:$le,detector:KZe,loader:QZe},eXe=JZe,zle="requirement",tXe=P(t=>/^\s*requirement(Diagram)?/.test(t),"detector"),rXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./requirementDiagram-MS252O5E-DDS8MLl5.js");return{diagram:e}},__vite__mapDeps([232,214,215]));return{id:zle,diagram:t}},"loader"),nXe={id:zle,detector:tXe,loader:rXe},iXe=nXe,jle="sequence",sXe=P(t=>/^\s*sequenceDiagram/.test(t),"detector"),aXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./sequenceDiagram-FGHM5R23-ChrdcmX-.js");return{diagram:e}},__vite__mapDeps([233,211,220]));return{id:jle,diagram:t}},"loader"),oXe={id:jle,detector:sXe,loader:aXe},lXe=oXe,Hle="class",cXe=P((t,e)=>{var r;return((r=e==null?void 0:e.class)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!1:/^\s*classDiagram/.test(t)},"detector"),uXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./classDiagram-6PBFFD2Q-DIdIurqI.js");return{diagram:e}},__vite__mapDeps([234,235,213,211,214,215]));return{id:Hle,diagram:t}},"loader"),hXe={id:Hle,detector:cXe,loader:uXe},dXe=hXe,Vle="classDiagram",fXe=P((t,e)=>{var r;return/^\s*classDiagram/.test(t)&&((r=e==null?void 0:e.class)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(t)},"detector"),pXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./classDiagram-v2-HSJHXN6E-DIdIurqI.js");return{diagram:e}},__vite__mapDeps([236,235,213,211,214,215]));return{id:Vle,diagram:t}},"loader"),mXe={id:Vle,detector:fXe,loader:pXe},gXe=mXe,Ule="state",yXe=P((t,e)=>{var r;return((r=e==null?void 0:e.state)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(t)},"detector"),bXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./stateDiagram-FHFEXIEX-BPKTx0lB.js");return{diagram:e}},__vite__mapDeps([237,238,214,215,203,204,205,206]));return{id:Ule,diagram:t}},"loader"),vXe={id:Ule,detector:yXe,loader:bXe},xXe=vXe,qle="stateDiagram",_Xe=P((t,e)=>{var r;return!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&((r=e==null?void 0:e.state)==null?void 0:r.defaultRenderer)==="dagre-wrapper")},"detector"),wXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./stateDiagram-v2-QKLJ7IA2-DJmb7lXU.js");return{diagram:e}},__vite__mapDeps([239,238,214,215]));return{id:qle,diagram:t}},"loader"),CXe={id:qle,detector:_Xe,loader:wXe},TXe=CXe,Gle="journey",kXe=P(t=>/^\s*journey/.test(t),"detector"),SXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./journeyDiagram-VCZTEJTY-r3HLhR12.js");return{diagram:e}},__vite__mapDeps([240,213,211,228]));return{id:Gle,diagram:t}},"loader"),EXe={id:Gle,detector:kXe,loader:SXe},AXe=EXe,DXe=P((t,e,r)=>{Ve.debug(`rendering svg for syntax error
|
|
1150
|
-
`);const n=Qje(e),i=n.append("g");n.attr("viewBox","0 0 2412 512"),bne(n,100,512,!0),i.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),i.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),i.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),i.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),i.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),i.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw"),Wle={draw:DXe},LXe=Wle,IXe={db:{},renderer:Wle,parser:{parse:P(()=>{},"parse")}},RXe=IXe,Yle="flowchart-elk",OXe=P((t,e={})=>{var r;return/^\s*flowchart-elk/.test(t)||/^\s*(flowchart|graph)/.test(t)&&((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="elk"?(e.layout="elk",!0):!1},"detector"),NXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./flowDiagram-DWJPFMVM-
|
|
1149
|
+
L0,20`).attr("stroke-linejoin","miter")},"requirement_arrow_neo"),NYe=P((t,e,r)=>{const n=t.append("defs").append("marker").attr("id",r+"_"+e+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");n.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),n.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),n.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)},"requirement_contains"),MYe=P((t,e,r)=>{const n=Xn(),{themeVariables:i}=n,{strokeWidth:s}=i,a=t.append("defs").append("marker").attr("id",r+"_"+e+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("g");a.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),a.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),a.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10),a.selectAll("*").attr("stroke-width",`${s}`)},"requirement_contains_neo"),PYe={extension:pYe,composition:mYe,aggregation:gYe,dependency:yYe,lollipop:bYe,point:vYe,circle:xYe,cross:_Ye,barb:wYe,barbNeo:CYe,only_one:TYe,zero_or_one:kYe,one_or_more:SYe,zero_or_more:EYe,only_one_neo:AYe,zero_or_one_neo:DYe,one_or_more_neo:LYe,zero_or_more_neo:IYe,requirement_arrow:RYe,requirement_contains:NYe,requirement_arrow_neo:OYe,requirement_contains_neo:MYe},BYe=fYe,FYe={common:Iv,getConfig:Xn,insertCluster:MWe,insertEdge:dYe,insertEdgeLabel:aYe,insertMarkers:BYe,insertNode:xle,interpolateToCurve:vI,labelHelper:Zt,log:Ve,positionEdgeLabel:oYe},$b={},Tle=P(t=>{for(const e of t)$b[e.name]=e},"registerLayoutLoaders"),$Ye=P(()=>{Tle([{name:"dagre",loader:P(async()=>await M(()=>import("./dagre-KV5264BT-BzhUQX3L.js"),__vite__mapDeps([202,203,204,205,206,207])),"loader")},{name:"cose-bilkent",loader:P(async()=>await M(()=>import("./cose-bilkent-S5V4N54A-DI8T3pQ5.js"),__vite__mapDeps([208,209])),"loader")}])},"registerDefaultLayoutLoaders");$Ye();var pxt=P(async(t,e)=>{if(!(t.layoutAlgorithm in $b))throw new Error(`Unknown layout algorithm: ${t.layoutAlgorithm}`);if(t.diagramId)for(const u of t.nodes){const d=u.domId||u.id;u.domId=`${t.diagramId}-${d}`}const r=$b[t.layoutAlgorithm],n=await r.loader(),{theme:i,themeVariables:s}=t.config,{useGradient:a,gradientStart:o,gradientStop:l}=s,c=e.attr("id");if(e.append("defs").append("filter").attr("id",`${c}-drop-shadow`).attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",`${i!=null&&i.includes("dark")?"#FFFFFF":"#000000"}`),e.append("defs").append("filter").attr("id",`${c}-drop-shadow-small`).attr("height","150%").attr("width","150%").append("feDropShadow").attr("dx","2").attr("dy","2").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",`${i!=null&&i.includes("dark")?"#FFFFFF":"#000000"}`),a){const u=e.append("linearGradient").attr("id",e.attr("id")+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");u.append("svg:stop").attr("offset","0%").attr("stop-color",o).attr("stop-opacity",1),u.append("svg:stop").attr("offset","100%").attr("stop-color",l).attr("stop-opacity",1)}return n.render(t,e,FYe,{algorithm:r.algorithm})},"render"),mxt=P((t="",{fallback:e="dagre"}={})=>{if(t in $b)return t;if(e in $b)return Ve.warn(`Layout algorithm ${t} is not registered. Using ${e} as fallback.`),e;throw new Error(`Both layout algorithms ${t} and ${e} are not registered.`)},"getRegisteredLayoutAlgorithm"),kle="comm",Sle="rule",Ele="decl",zYe="@import",jYe="@namespace",HYe="@keyframes",VYe="@layer",UYe=Math.abs,qy=String.fromCharCode;function Ale(t){return t.trim()}function r7(t,e,r){return t.replace(e,r)}function Y0(t,e){return t.charCodeAt(e)|0}function Zm(t,e,r){return t.slice(e,r)}function wl(t){return t.length}function qYe(t){return t.length}function i_(t,e){return e.push(t),t}var Zk=1,Xm=1,Dle=0,Co=0,Ei=0,kg="";function zI(t,e,r,n,i,s,a,o){return{value:t,root:e,parent:r,type:n,props:i,children:s,line:Zk,column:Xm,length:a,return:"",siblings:o}}function GYe(){return Ei}function WYe(){return Ei=Co>0?Y0(kg,--Co):0,Xm--,Ei===10&&(Xm=1,Zk--),Ei}function Wo(){return Ei=Co<Dle?Y0(kg,Co++):0,Xm++,Ei===10&&(Xm=1,Zk++),Ei}function Eh(){return Y0(kg,Co)}function nw(){return Co}function Xk(t,e){return Zm(kg,t,e)}function zb(t){switch(t){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function YYe(t){return Zk=Xm=1,Dle=wl(kg=t),Co=0,[]}function ZYe(t){return kg="",t}function E5(t){return Ale(Xk(Co-1,n7(t===91?t+2:t===40?t+1:t)))}function XYe(t){for(;(Ei=Eh())&&Ei<33;)Wo();return zb(t)>2||zb(Ei)>3?"":" "}function KYe(t,e){for(;--e&&Wo()&&!(Ei<48||Ei>102||Ei>57&&Ei<65||Ei>70&&Ei<97););return Xk(t,nw()+(e<6&&Eh()==32&&Wo()==32))}function n7(t){for(;Wo();)switch(Ei){case t:return Co;case 34:case 39:t!==34&&t!==39&&n7(Ei);break;case 40:t===41&&n7(t);break;case 92:Wo();break}return Co}function QYe(t,e){for(;Wo()&&t+Ei!==57;)if(t+Ei===84&&Eh()===47)break;return"/*"+Xk(e,Co-1)+"*"+qy(t===47?t:Wo())}function JYe(t){for(;!zb(Eh());)Wo();return Xk(t,Co)}function eZe(t){return ZYe(iw("",null,null,null,[""],t=YYe(t),0,[0],t))}function iw(t,e,r,n,i,s,a,o,l){for(var c=0,u=0,d=a,m=0,p=0,y=0,b=1,v=1,x=1,w=0,C=0,S="",D=i,L=s,R=n,O=S;v;)switch(y=C,C=Wo()){case 40:y!=108&&Y0(O,d-1)==58?(w++,O+="("):O+=E5(C);break;case 41:w--,O+=")";break;case 34:case 39:case 91:O+=E5(C);break;case 9:case 10:case 13:case 32:if(w>0){O+=qy(C);break}O+=XYe(y);break;case 92:O+=KYe(nw()-1,7);continue;case 47:switch(Eh()){case 42:case 47:i_(tZe(QYe(Wo(),nw()),e,r,l),l),(zb(y||1)==5||zb(Eh()||1)==5)&&wl(O)&&Zm(O,-1,void 0)!==" "&&(O+=" ");break;default:O+="/"}break;case 123*b:o[c++]=wl(O)*x;case 125*b:case 59:case 0:if(w>0&&C){O+=qy(C);break}switch(C){case 0:case 125:v=0;case 59+u:x==-1&&(O=r7(O,/\f/g,"")),p>0&&(wl(O)-d||b===0)&&i_(p>32?MV(O+";",n,r,d-1,l):MV(r7(O," ","")+";",n,r,d-2,l),l);break;case 59:O+=";";default:if(i_(R=NV(O,e,r,c,u,i,o,S,D=[],L=[],d,s),s),C===123)if(u===0)iw(O,e,R,R,D,s,d,o,L);else{switch(m){case 99:if(Y0(O,3)===110)break;case 108:if(Y0(O,2)===97)break;default:u=0;case 100:case 109:case 115:}u?iw(t,R,R,n&&i_(NV(t,R,R,0,0,i,o,S,i,D=[],d,L),L),i,L,d,o,n?D:L):iw(O,R,R,R,[""],L,0,o,L)}}c=u=p=0,b=x=1,S=O="",d=a;break;case 58:d=1+wl(O),p=y;default:if(b<1){if(C==123)--b;else if(C==125&&b++==0&&WYe()==125)continue}switch(O+=qy(C),C*b){case 38:x=u>0?1:(O+="\f",-1);break;case 44:if(w>0)break;o[c++]=(wl(O)-1)*x,x=1;break;case 64:Eh()===45&&(O+=E5(Wo())),m=Eh(),u=d=wl(S=O+=JYe(nw())),C++;break;case 45:y===45&&wl(O)==2&&(b=0)}}return s}function NV(t,e,r,n,i,s,a,o,l,c,u,d){for(var m=i-1,p=i===0?s:[""],y=qYe(p),b=0,v=0,x=0;b<n;++b)for(var w=0,C=Zm(t,m+1,m=UYe(v=a[b])),S=t;w<y;++w)(S=Ale(v>0?p[w]+" "+C:r7(C,/&\f/g,p[w])))&&(l[x++]=S);return zI(t,e,r,i===0?Sle:o,l,c,u,d)}function tZe(t,e,r,n){return zI(t,e,r,kle,qy(GYe()),Zm(t,2,-2),0,n)}function MV(t,e,r,n,i){return zI(t,e,r,Ele,Zm(t,0,n),Zm(t,n+1,-1),n,i)}function i7(t,e){for(var r="",n=0;n<t.length;n++)r+=e(t[n],n,t,e)||"";return r}function rZe(t,e,r,n){switch(t.type){case VYe:if(t.children.length)break;case zYe:case jYe:case Ele:return t.return=t.return||t.value;case kle:return"";case HYe:return t.return=t.value+"{"+i7(t.children,n)+"}";case Sle:if(!wl(t.value=t.props.join(",")))return""}return wl(r=i7(t.children,n))?t.return=t.value+"{"+r+"}":""}var nZe=Jse(Object.keys,Object),iZe=Object.prototype,sZe=iZe.hasOwnProperty;function aZe(t){if(!zk(t))return nZe(t);var e=[];for(var r in Object(t))sZe.call(t,r)&&r!="constructor"&&e.push(r);return e}var s7=op(tc,"DataView"),a7=op(tc,"Promise"),o7=op(tc,"Set"),l7=op(tc,"WeakMap"),PV="[object Map]",oZe="[object Object]",BV="[object Promise]",FV="[object Set]",$V="[object WeakMap]",zV="[object DataView]",lZe=ap(s7),cZe=ap(Bb),uZe=ap(a7),hZe=ap(o7),dZe=ap(l7),Kd=_g;(s7&&Kd(new s7(new ArrayBuffer(1)))!=zV||Bb&&Kd(new Bb)!=PV||a7&&Kd(a7.resolve())!=BV||o7&&Kd(new o7)!=FV||l7&&Kd(new l7)!=$V)&&(Kd=function(t){var e=_g(t),r=e==oZe?t.constructor:void 0,n=r?ap(r):"";if(n)switch(n){case lZe:return zV;case cZe:return PV;case uZe:return BV;case hZe:return FV;case dZe:return $V}return e});var fZe="[object Map]",pZe="[object Set]",mZe=Object.prototype,gZe=mZe.hasOwnProperty;function jV(t){if(t==null)return!0;if(jk(t)&&(HC(t)||typeof t=="string"||typeof t.splice=="function"||yI(t)||bI(t)||jC(t)))return!t.length;var e=Kd(t);if(e==fZe||e==pZe)return!t.size;if(zk(t))return!aZe(t).length;for(var r in t)if(gZe.call(t,r))return!1;return!0}var Lle="c4",yZe=P(t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),"detector"),bZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./c4Diagram-AHTNJAMY-DUSmbamx.js");return{diagram:e}},__vite__mapDeps([210,211]));return{id:Lle,diagram:t}},"loader"),vZe={id:Lle,detector:yZe,loader:bZe},xZe=vZe,Ile="flowchart",_Ze=P((t,e)=>{var r,n;return((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="dagre-wrapper"||((n=e==null?void 0:e.flowchart)==null?void 0:n.defaultRenderer)==="elk"?!1:/^\s*graph/.test(t)},"detector"),wZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./flowDiagram-DWJPFMVM-BuMuUYvo.js");return{diagram:e}},__vite__mapDeps([212,213,211,214,215,216]));return{id:Ile,diagram:t}},"loader"),CZe={id:Ile,detector:_Ze,loader:wZe},TZe=CZe,Rle="flowchart-v2",kZe=P((t,e)=>{var r,n,i;return((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="dagre-d3"?!1:(((n=e==null?void 0:e.flowchart)==null?void 0:n.defaultRenderer)==="elk"&&(e.layout="elk"),/^\s*graph/.test(t)&&((i=e==null?void 0:e.flowchart)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!0:/^\s*flowchart/.test(t))},"detector"),SZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./flowDiagram-DWJPFMVM-BuMuUYvo.js");return{diagram:e}},__vite__mapDeps([212,213,211,214,215,216]));return{id:Rle,diagram:t}},"loader"),EZe={id:Rle,detector:kZe,loader:SZe},AZe=EZe,Ole="er",DZe=P(t=>/^\s*erDiagram/.test(t),"detector"),LZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./erDiagram-SMLLAGMA-BIqDaKsJ.js");return{diagram:e}},__vite__mapDeps([217,214,215,216]));return{id:Ole,diagram:t}},"loader"),IZe={id:Ole,detector:DZe,loader:LZe},RZe=IZe,Nle="gitGraph",OZe=P(t=>/^\s*gitGraph/.test(t),"detector"),NZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./gitGraphDiagram-UUTBAWPF-CFZuKUPu.js");return{diagram:e}},__vite__mapDeps([218,219,220,221,206,204]));return{id:Nle,diagram:t}},"loader"),MZe={id:Nle,detector:OZe,loader:NZe},PZe=MZe,Mle="gantt",BZe=P(t=>/^\s*gantt/.test(t),"detector"),FZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./ganttDiagram-T4ZO3ILL-h_0R8kpx.js");return{diagram:e}},__vite__mapDeps([222,223,224,225]));return{id:Mle,diagram:t}},"loader"),$Ze={id:Mle,detector:BZe,loader:FZe},zZe=$Ze,Ple="info",jZe=P(t=>/^\s*info/.test(t),"detector"),HZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./infoDiagram-42DDH7IO-C0QkIqtm.js");return{diagram:e}},__vite__mapDeps([226,221,206,204]));return{id:Ple,diagram:t}},"loader"),VZe={id:Ple,detector:jZe,loader:HZe},Ble="pie",UZe=P(t=>/^\s*pie/.test(t),"detector"),qZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./pieDiagram-DEJITSTG-BJfiij1X.js");return{diagram:e}},__vite__mapDeps([227,219,221,206,204,228,229,224]));return{id:Ble,diagram:t}},"loader"),GZe={id:Ble,detector:UZe,loader:qZe},Fle="quadrantChart",WZe=P(t=>/^\s*quadrantChart/.test(t),"detector"),YZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./quadrantDiagram-34T5L4WZ-SEDnxGzO.js");return{diagram:e}},__vite__mapDeps([230,223,224,225]));return{id:Fle,diagram:t}},"loader"),ZZe={id:Fle,detector:WZe,loader:YZe},XZe=ZZe,$le="xychart",KZe=P(t=>/^\s*xychart(-beta)?/.test(t),"detector"),QZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./xychartDiagram-5P7HB3ND-BUIUqkqr.js");return{diagram:e}},__vite__mapDeps([231,224,229,223,225]));return{id:$le,diagram:t}},"loader"),JZe={id:$le,detector:KZe,loader:QZe},eXe=JZe,zle="requirement",tXe=P(t=>/^\s*requirement(Diagram)?/.test(t),"detector"),rXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./requirementDiagram-MS252O5E-CRXbp7i_.js");return{diagram:e}},__vite__mapDeps([232,214,215]));return{id:zle,diagram:t}},"loader"),nXe={id:zle,detector:tXe,loader:rXe},iXe=nXe,jle="sequence",sXe=P(t=>/^\s*sequenceDiagram/.test(t),"detector"),aXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./sequenceDiagram-FGHM5R23-D3fAknEI.js");return{diagram:e}},__vite__mapDeps([233,211,220]));return{id:jle,diagram:t}},"loader"),oXe={id:jle,detector:sXe,loader:aXe},lXe=oXe,Hle="class",cXe=P((t,e)=>{var r;return((r=e==null?void 0:e.class)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!1:/^\s*classDiagram/.test(t)},"detector"),uXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./classDiagram-6PBFFD2Q--KL4rJah.js");return{diagram:e}},__vite__mapDeps([234,235,213,211,214,215]));return{id:Hle,diagram:t}},"loader"),hXe={id:Hle,detector:cXe,loader:uXe},dXe=hXe,Vle="classDiagram",fXe=P((t,e)=>{var r;return/^\s*classDiagram/.test(t)&&((r=e==null?void 0:e.class)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(t)},"detector"),pXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./classDiagram-v2-HSJHXN6E--KL4rJah.js");return{diagram:e}},__vite__mapDeps([236,235,213,211,214,215]));return{id:Vle,diagram:t}},"loader"),mXe={id:Vle,detector:fXe,loader:pXe},gXe=mXe,Ule="state",yXe=P((t,e)=>{var r;return((r=e==null?void 0:e.state)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(t)},"detector"),bXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./stateDiagram-FHFEXIEX-DME_bKgM.js");return{diagram:e}},__vite__mapDeps([237,238,214,215,203,204,205,206]));return{id:Ule,diagram:t}},"loader"),vXe={id:Ule,detector:yXe,loader:bXe},xXe=vXe,qle="stateDiagram",_Xe=P((t,e)=>{var r;return!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&((r=e==null?void 0:e.state)==null?void 0:r.defaultRenderer)==="dagre-wrapper")},"detector"),wXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./stateDiagram-v2-QKLJ7IA2-Cup0egSL.js");return{diagram:e}},__vite__mapDeps([239,238,214,215]));return{id:qle,diagram:t}},"loader"),CXe={id:qle,detector:_Xe,loader:wXe},TXe=CXe,Gle="journey",kXe=P(t=>/^\s*journey/.test(t),"detector"),SXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./journeyDiagram-VCZTEJTY-BEpMOI6B.js");return{diagram:e}},__vite__mapDeps([240,213,211,228]));return{id:Gle,diagram:t}},"loader"),EXe={id:Gle,detector:kXe,loader:SXe},AXe=EXe,DXe=P((t,e,r)=>{Ve.debug(`rendering svg for syntax error
|
|
1150
|
+
`);const n=Qje(e),i=n.append("g");n.attr("viewBox","0 0 2412 512"),bne(n,100,512,!0),i.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),i.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),i.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),i.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),i.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),i.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw"),Wle={draw:DXe},LXe=Wle,IXe={db:{},renderer:Wle,parser:{parse:P(()=>{},"parse")}},RXe=IXe,Yle="flowchart-elk",OXe=P((t,e={})=>{var r;return/^\s*flowchart-elk/.test(t)||/^\s*(flowchart|graph)/.test(t)&&((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="elk"?(e.layout="elk",!0):!1},"detector"),NXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./flowDiagram-DWJPFMVM-BuMuUYvo.js");return{diagram:e}},__vite__mapDeps([212,213,211,214,215,216]));return{id:Yle,diagram:t}},"loader"),MXe={id:Yle,detector:OXe,loader:NXe},PXe=MXe,Zle="timeline",BXe=P(t=>/^\s*timeline/.test(t),"detector"),FXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./timeline-definition-GMOUNBTQ-CGOu_F4b.js");return{diagram:e}},__vite__mapDeps([241,228]));return{id:Zle,diagram:t}},"loader"),$Xe={id:Zle,detector:BXe,loader:FXe},zXe=$Xe,Xle="mindmap",jXe=P(t=>/^\s*mindmap/.test(t),"detector"),HXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./mindmap-definition-QFDTVHPH-D-w8aNmQ.js");return{diagram:e}},__vite__mapDeps([242,214,215]));return{id:Xle,diagram:t}},"loader"),VXe={id:Xle,detector:jXe,loader:HXe},UXe=VXe,Kle="kanban",qXe=P(t=>/^\s*kanban/.test(t),"detector"),GXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./kanban-definition-6JOO6SKY-DGBlgtiV.js");return{diagram:e}},__vite__mapDeps([243,213]));return{id:Kle,diagram:t}},"loader"),WXe={id:Kle,detector:qXe,loader:GXe},YXe=WXe,Qle="sankey",ZXe=P(t=>/^\s*sankey(-beta)?/.test(t),"detector"),XXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./sankeyDiagram-XADWPNL6-BQ5yTiY0.js");return{diagram:e}},__vite__mapDeps([244,229,224]));return{id:Qle,diagram:t}},"loader"),KXe={id:Qle,detector:ZXe,loader:XXe},QXe=KXe,Jle="packet",JXe=P(t=>/^\s*packet(-beta)?/.test(t),"detector"),eKe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./diagram-TYMM5635-DLicNSlG.js");return{diagram:e}},__vite__mapDeps([245,219,221,206,204]));return{id:Jle,diagram:t}},"loader"),tKe={id:Jle,detector:JXe,loader:eKe},ece="radar",rKe=P(t=>/^\s*radar-beta/.test(t),"detector"),nKe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./diagram-MMDJMWI5-ZuUygJfX.js");return{diagram:e}},__vite__mapDeps([246,219,221,206,204]));return{id:ece,diagram:t}},"loader"),iKe={id:ece,detector:rKe,loader:nKe},tce="block",sKe=P(t=>/^\s*block(-beta)?/.test(t),"detector"),aKe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./blockDiagram-DXYQGD6D-BuyaW2GC.js");return{diagram:e}},__vite__mapDeps([247,213,207,203,204,216]));return{id:tce,diagram:t}},"loader"),oKe={id:tce,detector:sKe,loader:aKe},lKe=oKe,rce="treeView",cKe=P(t=>/^\s*treeView-beta/.test(t),"detector"),uKe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./diagram-5BDNPKRD-BmjVDoqS.js");return{diagram:e}},__vite__mapDeps([248,219,220,221,206,204]));return{id:rce,diagram:t}},"loader"),hKe={id:rce,detector:cKe,loader:uKe},dKe=hKe,nce="architecture",fKe=P(t=>/^\s*architecture/.test(t),"detector"),pKe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./architectureDiagram-Q4EWVU46-kET4ZFwD.js");return{diagram:e}},__vite__mapDeps([249,219,221,206,204,209]));return{id:nce,diagram:t}},"loader"),mKe={id:nce,detector:fKe,loader:pKe},gKe=mKe,ice="ishikawa",yKe=P(t=>/^\s*ishikawa(-beta)?\b/i.test(t),"detector"),bKe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./ishikawaDiagram-UXIWVN3A-DkzZIthw.js");return{diagram:e}},[]);return{id:ice,diagram:t}},"loader"),vKe={id:ice,detector:yKe,loader:bKe},sce="venn",xKe=P(t=>/^\s*venn-beta/.test(t),"detector"),_Ke=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./vennDiagram-DHZGUBPP-BLPdNseJ.js");return{diagram:e}},[]);return{id:sce,diagram:t}},"loader"),wKe={id:sce,detector:xKe,loader:_Ke},CKe=wKe,ace="treemap",TKe=P(t=>/^\s*treemap/.test(t),"detector"),kKe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./diagram-G4DWMVQ6-0qBOUHAQ.js");return{diagram:e}},__vite__mapDeps([250,215,219,221,206,204,225,229,224]));return{id:ace,diagram:t}},"loader"),SKe={id:ace,detector:TKe,loader:kKe},oce="wardley-beta",EKe=P(t=>/^\s*wardley-beta/i.test(t),"detector"),AKe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./wardleyDiagram-NUSXRM2D-waI-JAEe.js");return{diagram:e}},__vite__mapDeps([251,219,221,206,204]));return{id:oce,diagram:t}},"loader"),DKe={id:oce,detector:EKe,loader:AKe},LKe=DKe,HV=!1,Kk=P(()=>{HV||(HV=!0,CC("error",RXe,t=>t.toLowerCase().trim()==="error"),CC("---",{db:{clear:P(()=>{},"clear")},styles:{},renderer:{draw:P(()=>{},"draw")},parser:{parse:P(()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:P(()=>null,"init")},t=>t.toLowerCase().trimStart().startsWith("---")),h8(PXe,UXe,gKe),h8(xZe,YXe,gXe,dXe,RZe,zZe,VZe,GZe,iXe,lXe,AZe,TZe,zXe,PZe,TXe,xXe,AXe,XZe,QXe,tKe,eXe,lKe,dKe,iKe,vKe,SKe,CKe,LKe))},"addDiagrams"),IKe=P(async()=>{Ve.debug("Loading registered diagrams");const e=(await Promise.allSettled(Object.entries(jf).map(async([r,{detector:n,loader:i}])=>{if(i)try{m8(r)}catch{try{const{diagram:s,id:a}=await i();CC(a,s,n)}catch(s){throw Ve.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete jf[r],s}}}))).filter(r=>r.status==="rejected");if(e.length>0){Ve.error(`Failed to load ${e.length} external diagrams`);for(const r of e)Ve.error(r);throw new Error(`Failed to load ${e.length} external diagrams`)}},"loadRegisteredDiagrams"),RKe="graphics-document document";function lce(t,e){t.attr("role",RKe),e!==""&&t.attr("aria-roledescription",e)}P(lce,"setA11yDiagramInfo");function cce(t,e,r,n){if(t.insert!==void 0){if(r){const i=`chart-desc-${n}`;t.attr("aria-describedby",i),t.insert("desc",":first-child").attr("id",i).text(r)}if(e){const i=`chart-title-${n}`;t.attr("aria-labelledby",i),t.insert("title",":first-child").attr("id",i).text(e)}}}P(cce,"addSVGa11yTitleDescription");var If,c7=(If=class{constructor(e,r,n,i,s){this.type=e,this.text=r,this.db=n,this.parser=i,this.renderer=s}static async fromText(e,r={}){var c,u;const n=Xn(),i=VL(e,n);e=tGe(e)+`
|
|
1151
1151
|
`;try{m8(i)}catch{const d=yBe(i);if(!d)throw new ine(`Diagram ${i} not found.`);const{id:m,diagram:p}=await d();CC(m,p)}const{db:s,parser:a,renderer:o,init:l}=m8(i);return a.parser&&(a.parser.yy=s),(c=s.clear)==null||c.call(s),l==null||l(n),r.title&&((u=s.setDiagramTitle)==null||u.call(s,r.title)),await a.parse(e),new If(i,e,s,a,o)}async render(e,r){await this.renderer.draw(this.text,e,r,this)}getParser(){return this.parser}getType(){return this.type}},P(If,"Diagram"),If),VV=[],OKe=P(()=>{VV.forEach(t=>{t()}),VV=[]},"attachFunctions"),NKe=P(t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");function uce(t){const e=t.match(nne);if(!e)return{text:t,metadata:{}};let r=sVe(e[1],{schema:iVe})??{};r=typeof r=="object"&&!Array.isArray(r)?r:{};const n={};return r.displayMode&&(n.displayMode=r.displayMode.toString()),r.title&&(n.title=r.title.toString()),r.config&&(n.config=r.config),{text:t.slice(e[0].length),metadata:n}}P(uce,"extractFrontMatter");var MKe=P(t=>t.replace(/\r\n?/g,`
|
|
1152
1152
|
`).replace(/<(\w+)([^>]*)>/g,(e,r,n)=>"<"+r+n.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),PKe=P(t=>{const{text:e,metadata:r}=uce(t),{displayMode:n,title:i,config:s={}}=r;return n&&(s.gantt||(s.gantt={}),s.gantt.displayMode=n),{title:i,config:s,text:e}},"processFrontmatter"),BKe=P(t=>{const e=Ho.detectInit(t)??{},r=Ho.detectDirective(t,"wrap");return Array.isArray(r)?e.wrap=r.some(({type:n})=>n==="wrap"):(r==null?void 0:r.type)==="wrap"&&(e.wrap=!0),{text:Hqe(t),directive:e}},"processDirectives");function jI(t){const e=MKe(t),r=PKe(e),n=BKe(r.text),i=TI(r.config,n.directive);return t=NKe(n.text),{code:t,title:r.title,config:i}}P(jI,"preprocessDiagram");function hce(t){const e=new TextEncoder().encode(t),r=Array.from(e,n=>String.fromCodePoint(n)).join("");return btoa(r)}P(hce,"toBase64");var FKe=5e4,$Ke="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",zKe="sandbox",jKe="loose",HKe="http://www.w3.org/2000/svg",VKe="http://www.w3.org/1999/xlink",UKe="http://www.w3.org/1999/xhtml",qKe="100%",GKe="100%",WKe="border:0;margin:0;",YKe="margin:0",ZKe="allow-top-navigation-by-user-activation allow-popups",XKe='The "iframe" tag is not supported by your browser.',KKe=["foreignobject"],QKe=["dominant-baseline"];function HI(t){const e=jI(t);return _C(),qBe(e.config??{}),e}P(HI,"processAndSetConfigs");async function dce(t,e){Kk();try{const{code:r,config:n}=HI(t);return{diagramType:(await pce(r)).type,config:n}}catch(r){if(e!=null&&e.suppressErrors)return!1;throw r}}P(dce,"parse");var UV=P((t,e,r=[])=>`
|
|
1153
1153
|
.${t} ${e} { ${r.join(" !important; ")} !important; }`,"cssImportantStyles"),JKe=P((t,e=new Map)=>{let r="";if(t.themeCSS!==void 0&&(r+=`
|
|
@@ -1267,7 +1267,7 @@ ${e}</tr>
|
|
|
1267
1267
|
`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${yl(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:r,tokens:n}){let i=this.parser.parseInline(n),s=nq(e);if(s===null)return i;e=s;let a='<a href="'+e+'"';return r&&(a+=' title="'+yl(r)+'"'),a+=">"+i+"</a>",a}image({href:e,title:r,text:n,tokens:i}){i&&(n=this.parser.parseInline(i,this.parser.textRenderer));let s=nq(e);if(s===null)return yl(n);e=s;let a=`<img src="${e}" alt="${yl(n)}"`;return r&&(a+=` title="${yl(r)}"`),a+=">",a}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:yl(e.text)}},vR=class{strong({text:t}){return t}em({text:t}){return t}codespan({text:t}){return t}del({text:t}){return t}html({text:t}){return t}text({text:t}){return t}link({text:t}){return""+t}image({text:t}){return""+t}br(){return""}checkbox({raw:t}){return t}},$o=class T7{constructor(e){be(this,"options");be(this,"renderer");be(this,"textRenderer");this.options=e||hp,this.options.renderer=this.options.renderer||new oT,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new vR}static parse(e,r){return new T7(r).parse(e)}static parseInline(e,r){return new T7(r).parseInline(e)}parse(e){var n,i;this.renderer.parser=this;let r="";for(let s=0;s<e.length;s++){let a=e[s];if((i=(n=this.options.extensions)==null?void 0:n.renderers)!=null&&i[a.type]){let l=a,c=this.options.extensions.renderers[l.type].call({parser:this},l);if(c!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(l.type)){r+=c||"";continue}}let o=a;switch(o.type){case"space":{r+=this.renderer.space(o);break}case"hr":{r+=this.renderer.hr(o);break}case"heading":{r+=this.renderer.heading(o);break}case"code":{r+=this.renderer.code(o);break}case"table":{r+=this.renderer.table(o);break}case"blockquote":{r+=this.renderer.blockquote(o);break}case"list":{r+=this.renderer.list(o);break}case"checkbox":{r+=this.renderer.checkbox(o);break}case"html":{r+=this.renderer.html(o);break}case"def":{r+=this.renderer.def(o);break}case"paragraph":{r+=this.renderer.paragraph(o);break}case"text":{r+=this.renderer.text(o);break}default:{let l='Token with "'+o.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return r}parseInline(e,r=this.renderer){var i,s;this.renderer.parser=this;let n="";for(let a=0;a<e.length;a++){let o=e[a];if((s=(i=this.options.extensions)==null?void 0:i.renderers)!=null&&s[o.type]){let c=this.options.extensions.renderers[o.type].call({parser:this},o);if(c!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(o.type)){n+=c||"";continue}}let l=o;switch(l.type){case"escape":{n+=r.text(l);break}case"html":{n+=r.html(l);break}case"link":{n+=r.link(l);break}case"image":{n+=r.image(l);break}case"checkbox":{n+=r.checkbox(l);break}case"strong":{n+=r.strong(l);break}case"em":{n+=r.em(l);break}case"codespan":{n+=r.codespan(l);break}case"br":{n+=r.br(l);break}case"del":{n+=r.del(l);break}case"text":{n+=r.text(l);break}default:{let c='Token with "'+l.type+'" type was not found.';if(this.options.silent)return console.error(c),"";throw new Error(c)}}}return n}},E_,Ay=(E_=class{constructor(t){be(this,"options");be(this,"block");this.options=t||hp}preprocess(t){return t}postprocess(t){return t}processAllTokens(t){return t}emStrongMask(t){return t}provideLexer(t=this.block){return t?fo.lex:fo.lexInline}provideParser(t=this.block){return t?$o.parse:$o.parseInline}},be(E_,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens","emStrongMask"])),be(E_,"passThroughHooksRespectAsync",new Set(["preprocess","postprocess","processAllTokens"])),E_),xct=class{constructor(...e){be(this,"defaults",hR());be(this,"options",this.setOptions);be(this,"parse",this.parseMarkdown(!0));be(this,"parseInline",this.parseMarkdown(!1));be(this,"Parser",$o);be(this,"Renderer",oT);be(this,"TextRenderer",vR);be(this,"Lexer",fo);be(this,"Tokenizer",aT);be(this,"Hooks",Ay);this.use(...e)}walkTokens(e,r){var i,s;let n=[];for(let a of e)switch(n=n.concat(r.call(this,a)),a.type){case"table":{let o=a;for(let l of o.header)n=n.concat(this.walkTokens(l.tokens,r));for(let l of o.rows)for(let c of l)n=n.concat(this.walkTokens(c.tokens,r));break}case"list":{let o=a;n=n.concat(this.walkTokens(o.items,r));break}default:{let o=a;(s=(i=this.defaults.extensions)==null?void 0:i.childTokens)!=null&&s[o.type]?this.defaults.extensions.childTokens[o.type].forEach(l=>{let c=o[l].flat(1/0);n=n.concat(this.walkTokens(c,r))}):o.tokens&&(n=n.concat(this.walkTokens(o.tokens,r)))}}return n}use(...e){let r=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let i={...n};if(i.async=this.defaults.async||i.async||!1,n.extensions&&(n.extensions.forEach(s=>{if(!s.name)throw new Error("extension name required");if("renderer"in s){let a=r.renderers[s.name];a?r.renderers[s.name]=function(...o){let l=s.renderer.apply(this,o);return l===!1&&(l=a.apply(this,o)),l}:r.renderers[s.name]=s.renderer}if("tokenizer"in s){if(!s.level||s.level!=="block"&&s.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let a=r[s.level];a?a.unshift(s.tokenizer):r[s.level]=[s.tokenizer],s.start&&(s.level==="block"?r.startBlock?r.startBlock.push(s.start):r.startBlock=[s.start]:s.level==="inline"&&(r.startInline?r.startInline.push(s.start):r.startInline=[s.start]))}"childTokens"in s&&s.childTokens&&(r.childTokens[s.name]=s.childTokens)}),i.extensions=r),n.renderer){let s=this.defaults.renderer||new oT(this.defaults);for(let a in n.renderer){if(!(a in s))throw new Error(`renderer '${a}' does not exist`);if(["options","parser"].includes(a))continue;let o=a,l=n.renderer[o],c=s[o];s[o]=(...u)=>{let d=l.apply(s,u);return d===!1&&(d=c.apply(s,u)),d||""}}i.renderer=s}if(n.tokenizer){let s=this.defaults.tokenizer||new aT(this.defaults);for(let a in n.tokenizer){if(!(a in s))throw new Error(`tokenizer '${a}' does not exist`);if(["options","rules","lexer"].includes(a))continue;let o=a,l=n.tokenizer[o],c=s[o];s[o]=(...u)=>{let d=l.apply(s,u);return d===!1&&(d=c.apply(s,u)),d}}i.tokenizer=s}if(n.hooks){let s=this.defaults.hooks||new Ay;for(let a in n.hooks){if(!(a in s))throw new Error(`hook '${a}' does not exist`);if(["options","block"].includes(a))continue;let o=a,l=n.hooks[o],c=s[o];Ay.passThroughHooks.has(a)?s[o]=u=>{if(this.defaults.async&&Ay.passThroughHooksRespectAsync.has(a))return(async()=>{let m=await l.call(s,u);return c.call(s,m)})();let d=l.call(s,u);return c.call(s,d)}:s[o]=(...u)=>{if(this.defaults.async)return(async()=>{let m=await l.apply(s,u);return m===!1&&(m=await c.apply(s,u)),m})();let d=l.apply(s,u);return d===!1&&(d=c.apply(s,u)),d}}i.hooks=s}if(n.walkTokens){let s=this.defaults.walkTokens,a=n.walkTokens;i.walkTokens=function(o){let l=[];return l.push(a.call(this,o)),s&&(l=l.concat(s.call(this,o))),l}}this.defaults={...this.defaults,...i}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,r){return fo.lex(e,r??this.defaults)}parser(e,r){return $o.parse(e,r??this.defaults)}parseMarkdown(e){return(r,n)=>{let i={...n},s={...this.defaults,...i},a=this.onError(!!s.silent,!!s.async);if(this.defaults.async===!0&&i.async===!1)return a(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof r>"u"||r===null)return a(new Error("marked(): input parameter is undefined or null"));if(typeof r!="string")return a(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(r)+", string expected"));if(s.hooks&&(s.hooks.options=s,s.hooks.block=e),s.async)return(async()=>{let o=s.hooks?await s.hooks.preprocess(r):r,l=await(s.hooks?await s.hooks.provideLexer(e):e?fo.lex:fo.lexInline)(o,s),c=s.hooks?await s.hooks.processAllTokens(l):l;s.walkTokens&&await Promise.all(this.walkTokens(c,s.walkTokens));let u=await(s.hooks?await s.hooks.provideParser(e):e?$o.parse:$o.parseInline)(c,s);return s.hooks?await s.hooks.postprocess(u):u})().catch(a);try{s.hooks&&(r=s.hooks.preprocess(r));let o=(s.hooks?s.hooks.provideLexer(e):e?fo.lex:fo.lexInline)(r,s);s.hooks&&(o=s.hooks.processAllTokens(o)),s.walkTokens&&this.walkTokens(o,s.walkTokens);let l=(s.hooks?s.hooks.provideParser(e):e?$o.parse:$o.parseInline)(o,s);return s.hooks&&(l=s.hooks.postprocess(l)),l}catch(o){return a(o)}}}onError(e,r){return n=>{if(n.message+=`
|
|
1268
1268
|
Please report this to https://github.com/markedjs/marked.`,e){let i="<p>An error occurred:</p><pre>"+yl(n.message+"",!0)+"</pre>";return r?Promise.resolve(i):i}if(r)return Promise.reject(n);throw n}}},Xf=new xct;function yn(t,e){return Xf.parse(t,e)}yn.options=yn.setOptions=function(t){return Xf.setOptions(t),yn.defaults=Xf.defaults,uhe(yn.defaults),yn};yn.getDefaults=hR;yn.defaults=hp;yn.use=function(...t){return Xf.use(...t),yn.defaults=Xf.defaults,uhe(yn.defaults),yn};yn.walkTokens=function(t,e){return Xf.walkTokens(t,e)};yn.parseInline=Xf.parseInline;yn.Parser=$o;yn.parser=$o.parse;yn.Renderer=oT;yn.TextRenderer=vR;yn.Lexer=fo;yn.lexer=fo.lex;yn.Tokenizer=aT;yn.Hooks=Ay;yn.parse=yn;yn.options;yn.setOptions;yn.use;yn.walkTokens;yn.parseInline;$o.parse;fo.lex;var _ct=300,wct="300px",Cct=500;function Tct(t={}){let{immediate:e=!1,debounceDelay:r=_ct,rootMargin:n=wct,idleTimeout:i=Cct}=t,[s,a]=k.useState(!1),o=k.useRef(null),l=k.useRef(null),c=k.useRef(null),u=k.useMemo(()=>p=>{let y=Date.now();return window.setTimeout(()=>{p({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-y))})},1)},[]),d=k.useMemo(()=>typeof window<"u"&&window.requestIdleCallback?(p,y)=>window.requestIdleCallback(p,y):u,[u]),m=k.useMemo(()=>typeof window<"u"&&window.cancelIdleCallback?p=>window.cancelIdleCallback(p):p=>{clearTimeout(p)},[]);return k.useEffect(()=>{if(e){a(!0);return}let p=o.current;if(!p)return;l.current&&(clearTimeout(l.current),l.current=null),c.current&&(m(c.current),c.current=null);let y=()=>{l.current&&(clearTimeout(l.current),l.current=null),c.current&&(m(c.current),c.current=null)},b=C=>{c.current=d(S=>{S.timeRemaining()>0||S.didTimeout?(a(!0),C.disconnect()):c.current=d(()=>{a(!0),C.disconnect()},{timeout:i/2})},{timeout:i})},v=C=>{y(),l.current=window.setTimeout(()=>{var S,D;let L=C.takeRecords();(L.length===0||(D=(S=L.at(-1))==null?void 0:S.isIntersecting)!=null&&D)&&b(C)},r)},x=(C,S)=>{C.isIntersecting?v(S):y()},w=new IntersectionObserver(C=>{for(let S of C)x(S,w)},{rootMargin:n,threshold:0});return w.observe(p),()=>{l.current&&clearTimeout(l.current),c.current&&m(c.current),w.disconnect()}},[e,r,n,i,m,d]),{shouldRender:s,containerRef:o}}var xhe=/\s/,kct=/^\s+$/,Sct=new Set(["code","pre","svg","math","annotation"]),Ect=t=>typeof t=="object"&&t!==null&&"type"in t&&t.type==="element",Act=t=>t.some(e=>Ect(e)&&Sct.has(e.tagName)),Dct=t=>{let e=[],r="",n=!1;for(let i of t){let s=xhe.test(i);s!==n&&r&&(e.push(r),r=""),r+=i,n=s}return r&&e.push(r),e},Lct=t=>{let e=[],r="";for(let n of t)xhe.test(n)?r+=n:(r&&(e.push(r),r=""),e.push(n));return r&&e.push(r),e},Ict=(t,e,r,n,i,s)=>{let a=`--sd-animation:sd-${e};--sd-duration:${i?0:r}ms;--sd-easing:${n}`;return s&&(a+=`;--sd-delay:${s}ms`),{type:"element",tagName:"span",properties:{"data-sd-animate":!0,style:a},children:[{type:"text",value:t}]}},Rct=(t,e,r,n,i)=>{let s=e.at(-1);if(!(s&&"children"in s))return;if(Act(e))return lf;let a=s,o=a.children.indexOf(t);if(o===-1)return;let l=t.value;if(!l.trim()){i.count+=l.length;return}let c=r.sep==="char"?Lct(l):Dct(l),u=n.prevContentLength,d=c.map(m=>{let p=i.count;if(i.count+=m.length,kct.test(m))return{type:"text",value:m};let y=u>0&&p<u,b=y?0:i.newIndex++*r.stagger;return Ict(m,r.animation,r.duration,r.easing,y,b)});return a.children.splice(o,1,...d),o+d.length},Oct=0;function k7(t){var e,r,n,i,s;let a={animation:(e=t==null?void 0:t.animation)!=null?e:"fadeIn",duration:(r=t==null?void 0:t.duration)!=null?r:150,easing:(n=t==null?void 0:t.easing)!=null?n:"ease",sep:(i=t==null?void 0:t.sep)!=null?i:"word",stagger:(s=t==null?void 0:t.stagger)!=null?s:40},o={prevContentLength:0,lastRenderCharCount:0},l=Oct++,c=()=>u=>{let d={count:0,newIndex:0};uk(u,"text",(m,p)=>Rct(m,p,a,o,d)),o.lastRenderCharCount=d.count,o.prevContentLength=0};return Object.defineProperty(c,"name",{value:`rehypeAnimate$${l}`}),{name:"animate",type:"animate",rehypePlugin:c,setPrevContentLength(u){o.prevContentLength=u},getLastRenderCharCount(){let u=o.lastRenderCharCount;return o.lastRenderCharCount=0,u}}}k7();var _he=k.createContext(!1),Nct=()=>k.useContext(_he),xR=(...t)=>kT(sg(t)),Mct=(t,e)=>{if(!t||!e)return e;let r=`${t}:`;return e.split(/\s+/).filter(Boolean).map(n=>n.startsWith(r)?n:`${t}:${n}`).join(" ")},Pct=t=>t?(...e)=>Mct(t,kT(sg(e))):xR,Z0=(t,e,r)=>{let n=typeof e=="string"&&r.startsWith("text/csv")?"\uFEFF":"",i=typeof e=="string"?new Blob([n+e],{type:r}):e,s=URL.createObjectURL(i),a=document.createElement("a");a.href=s,a.download=t,document.body.appendChild(a),a.click(),document.body.removeChild(a),URL.revokeObjectURL(s)},S7=k.createContext(xR),Er=()=>k.useContext(S7),Bct=xR("block","before:content-[counter(line)]","before:inline-block","before:[counter-increment:line]","before:w-6","before:mr-4","before:text-[13px]","before:text-right","before:text-muted-foreground/50","before:font-mono","before:select-none"),Fct=t=>{let e={};for(let r of t.split(";")){let n=r.indexOf(":");if(n>0){let i=r.slice(0,n).trim(),s=r.slice(n+1).trim();i&&s&&(e[i]=s)}}return e},$ct=k.memo(({children:t,result:e,language:r,className:n,startLine:i,lineNumbers:s=!0,...a})=>{let o=Er(),l=k.useMemo(()=>o(Bct),[o]),c=k.useMemo(()=>{let u={};return e.bg&&(u["--sdm-bg"]=e.bg),e.fg&&(u["--sdm-fg"]=e.fg),e.rootStyle&&Object.assign(u,Fct(e.rootStyle)),u},[e.bg,e.fg,e.rootStyle]);return T.jsx("div",{className:o(n,"overflow-x-auto rounded-md border border-border bg-background p-4 text-sm"),"data-language":r,"data-streamdown":"code-block-body",...a,children:T.jsx("pre",{className:o(n,"bg-[var(--sdm-bg,inherit]","dark:bg-[var(--shiki-dark-bg,var(--sdm-bg,inherit)]"),style:c,children:T.jsx("code",{className:s?o("[counter-increment:line_0] [counter-reset:line]"):void 0,style:s&&i&&i>1?{counterReset:`line ${i-1}`}:void 0,children:e.tokens.map((u,d)=>T.jsx("span",{className:s?l:void 0,children:u.length===0||u.length===1&&u[0].content===""?`
|
|
1269
1269
|
`:u.map((m,p)=>{let y={},b=!!m.bgColor;if(m.color&&(y["--sdm-c"]=m.color),m.bgColor&&(y["--sdm-tbg"]=m.bgColor),m.htmlStyle)for(let[v,x]of Object.entries(m.htmlStyle))v==="color"?y["--sdm-c"]=x:v==="background-color"?(y["--sdm-tbg"]=x,b=!0):y[v]=x;return T.jsx("span",{className:o("text-[var(--sdm-c,inherit)]","dark:text-[var(--shiki-dark,var(--sdm-c,inherit))]",b&&"bg-[var(--sdm-tbg)]",b&&"dark:bg-[var(--shiki-dark-bg,var(--sdm-tbg))]"),style:y,...m.htmlAttrs,children:m.content},p)})},d))})})})},(t,e)=>t.result===e.result&&t.language===e.language&&t.className===e.className&&t.startLine===e.startLine&&t.lineNumbers===e.lineNumbers),zct=({className:t,language:e,style:r,isIncomplete:n,...i})=>{let s=Er();return T.jsx("div",{className:s("my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2",t),"data-incomplete":n||void 0,"data-language":e,"data-streamdown":"code-block",style:{contentVisibility:"auto",containIntrinsicSize:"auto 200px",...r},...i})},whe=k.createContext({code:""}),Che=()=>k.useContext(whe),jct=({language:t})=>{let e=Er();return T.jsx("div",{className:e("flex h-8 items-center text-muted-foreground text-xs"),"data-language":t,"data-streamdown":"code-block-header",children:T.jsx("span",{className:e("ml-1 font-mono lowercase"),children:t})})},Hct=t=>{let e=t.length;for(;e>0&&t[e-1]===`
|
|
1270
|
-
`;)e--;return t.slice(0,e)},Vct=k.lazy(()=>M(()=>import("./highlighted-body-OFNGDK62-
|
|
1270
|
+
`;)e--;return t.slice(0,e)},Vct=k.lazy(()=>M(()=>import("./highlighted-body-OFNGDK62-B5LPCsvB.js"),[]).then(t=>({default:t.HighlightedCodeBlockBody}))),Uct=({code:t,language:e,className:r,children:n,isIncomplete:i=!1,startLine:s,lineNumbers:a,...o})=>{let l=Er(),c=k.useMemo(()=>Hct(t),[t]),u=k.useMemo(()=>({bg:"transparent",fg:"inherit",tokens:c.split(`
|
|
1271
1271
|
`).map(d=>[{content:d,color:"inherit",bgColor:"transparent",htmlStyle:{},offset:0}])}),[c]);return T.jsx(whe.Provider,{value:{code:t},children:T.jsxs(zct,{isIncomplete:i,language:e,children:[T.jsx(jct,{language:e}),n?T.jsx("div",{className:l("pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end"),children:T.jsx("div",{className:l("pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur"),"data-streamdown":"code-block-actions",children:n})}):null,T.jsx(k.Suspense,{fallback:T.jsx($ct,{className:r,language:e,lineNumbers:a,result:u,startLine:s,...o}),children:T.jsx(Vct,{className:r,code:c,language:e,lineNumbers:a,raw:u,startLine:s,...o})})]})})},qct=t=>T.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...t,children:T.jsx("path",{clipRule:"evenodd",d:"M15.5607 3.99999L15.0303 4.53032L6.23744 13.3232C5.55403 14.0066 4.44599 14.0066 3.76257 13.3232L4.2929 12.7929L3.76257 13.3232L0.969676 10.5303L0.439346 9.99999L1.50001 8.93933L2.03034 9.46966L4.82323 12.2626C4.92086 12.3602 5.07915 12.3602 5.17678 12.2626L13.9697 3.46966L14.5 2.93933L15.5607 3.99999Z",fill:"currentColor",fillRule:"evenodd"})}),Gct=t=>T.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...t,children:T.jsx("path",{clipRule:"evenodd",d:"M2.75 0.5C1.7835 0.5 1 1.2835 1 2.25V9.75C1 10.7165 1.7835 11.5 2.75 11.5H3.75H4.5V10H3.75H2.75C2.61193 10 2.5 9.88807 2.5 9.75V2.25C2.5 2.11193 2.61193 2 2.75 2H8.25C8.38807 2 8.5 2.11193 8.5 2.25V3H10V2.25C10 1.2835 9.2165 0.5 8.25 0.5H2.75ZM7.75 4.5C6.7835 4.5 6 5.2835 6 6.25V13.75C6 14.7165 6.7835 15.5 7.75 15.5H13.25C14.2165 15.5 15 14.7165 15 13.75V6.25C15 5.2835 14.2165 4.5 13.25 4.5H7.75ZM7.5 6.25C7.5 6.11193 7.61193 6 7.75 6H13.25C13.3881 6 13.5 6.11193 13.5 6.25V13.75C13.5 13.8881 13.3881 14 13.25 14H7.75C7.61193 14 7.5 13.8881 7.5 13.75V6.25Z",fill:"currentColor",fillRule:"evenodd"})}),Wct=t=>T.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...t,children:T.jsx("path",{clipRule:"evenodd",d:"M8.75 1V1.75V8.68934L10.7197 6.71967L11.25 6.18934L12.3107 7.25L11.7803 7.78033L8.70711 10.8536C8.31658 11.2441 7.68342 11.2441 7.29289 10.8536L4.21967 7.78033L3.68934 7.25L4.75 6.18934L5.28033 6.71967L7.25 8.68934V1.75V1H8.75ZM13.5 9.25V13.5H2.5V9.25V8.5H1V9.25V14C1 14.5523 1.44771 15 2 15H14C14.5523 15 15 14.5523 15 14V9.25V8.5H13.5V9.25Z",fill:"currentColor",fillRule:"evenodd"})}),Yct=t=>T.jsxs("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...t,children:[T.jsx("path",{d:"M8 0V4",stroke:"currentColor",strokeWidth:"1.5"}),T.jsx("path",{d:"M8 16V12",opacity:"0.5",stroke:"currentColor",strokeWidth:"1.5"}),T.jsx("path",{d:"M3.29773 1.52783L5.64887 4.7639",opacity:"0.9",stroke:"currentColor",strokeWidth:"1.5"}),T.jsx("path",{d:"M12.7023 1.52783L10.3511 4.7639",opacity:"0.1",stroke:"currentColor",strokeWidth:"1.5"}),T.jsx("path",{d:"M12.7023 14.472L10.3511 11.236",opacity:"0.4",stroke:"currentColor",strokeWidth:"1.5"}),T.jsx("path",{d:"M3.29773 14.472L5.64887 11.236",opacity:"0.6",stroke:"currentColor",strokeWidth:"1.5"}),T.jsx("path",{d:"M15.6085 5.52783L11.8043 6.7639",opacity:"0.2",stroke:"currentColor",strokeWidth:"1.5"}),T.jsx("path",{d:"M0.391602 10.472L4.19583 9.23598",opacity:"0.7",stroke:"currentColor",strokeWidth:"1.5"}),T.jsx("path",{d:"M15.6085 10.4722L11.8043 9.2361",opacity:"0.3",stroke:"currentColor",strokeWidth:"1.5"}),T.jsx("path",{d:"M0.391602 5.52783L4.19583 6.7639",opacity:"0.8",stroke:"currentColor",strokeWidth:"1.5"})]}),Zct=t=>T.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...t,children:T.jsx("path",{clipRule:"evenodd",d:"M1 5.25V6H2.5V5.25V2.5H5.25H6V1H5.25H2C1.44772 1 1 1.44772 1 2V5.25ZM5.25 14.9994H6V13.4994H5.25H2.5V10.7494V9.99939H1V10.7494V13.9994C1 14.5517 1.44772 14.9994 2 14.9994H5.25ZM15 10V10.75V14C15 14.5523 14.5523 15 14 15H10.75H10V13.5H10.75H13.5V10.75V10H15ZM10.75 1H10V2.5H10.75H13.5V5.25V6H15V5.25V2C15 1.44772 14.5523 1 14 1H10.75Z",fill:"currentColor",fillRule:"evenodd"})}),Xct=t=>T.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...t,children:T.jsx("path",{clipRule:"evenodd",d:"M13.5 8C13.5 4.96643 11.0257 2.5 7.96452 2.5C5.42843 2.5 3.29365 4.19393 2.63724 6.5H5.25H6V8H5.25H0.75C0.335787 8 0 7.66421 0 7.25V2.75V2H1.5V2.75V5.23347C2.57851 2.74164 5.06835 1 7.96452 1C11.8461 1 15 4.13001 15 8C15 11.87 11.8461 15 7.96452 15C5.62368 15 3.54872 13.8617 2.27046 12.1122L1.828 11.5066L3.03915 10.6217L3.48161 11.2273C4.48831 12.6051 6.12055 13.5 7.96452 13.5C11.0257 13.5 13.5 11.0336 13.5 8Z",fill:"currentColor",fillRule:"evenodd"})}),Kct=t=>T.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...t,children:T.jsx("path",{clipRule:"evenodd",d:"M12.4697 13.5303L13 14.0607L14.0607 13L13.5303 12.4697L9.06065 7.99999L13.5303 3.53032L14.0607 2.99999L13 1.93933L12.4697 2.46966L7.99999 6.93933L3.53032 2.46966L2.99999 1.93933L1.93933 2.99999L2.46966 3.53032L6.93933 7.99999L2.46966 12.4697L1.93933 13L2.99999 14.0607L3.53032 13.5303L7.99999 9.06065L12.4697 13.5303Z",fill:"currentColor",fillRule:"evenodd"})}),Qct=t=>T.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...t,children:T.jsx("path",{clipRule:"evenodd",d:"M13.5 10.25V13.25C13.5 13.3881 13.3881 13.5 13.25 13.5H2.75C2.61193 13.5 2.5 13.3881 2.5 13.25L2.5 2.75C2.5 2.61193 2.61193 2.5 2.75 2.5H5.75H6.5V1H5.75H2.75C1.7835 1 1 1.7835 1 2.75V13.25C1 14.2165 1.7835 15 2.75 15H13.25C14.2165 15 15 14.2165 15 13.25V10.25V9.5H13.5V10.25ZM9 1H9.75H14.2495C14.6637 1 14.9995 1.33579 14.9995 1.75V6.25V7H13.4995V6.25V3.56066L8.53033 8.52978L8 9.06011L6.93934 7.99945L7.46967 7.46912L12.4388 2.5H9.75H9V1Z",fill:"currentColor",fillRule:"evenodd"})}),Jct=t=>T.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...t,children:T.jsx("path",{clipRule:"evenodd",d:"M1.5 6.5C1.5 3.73858 3.73858 1.5 6.5 1.5C9.26142 1.5 11.5 3.73858 11.5 6.5C11.5 9.26142 9.26142 11.5 6.5 11.5C3.73858 11.5 1.5 9.26142 1.5 6.5ZM6.5 0C2.91015 0 0 2.91015 0 6.5C0 10.0899 2.91015 13 6.5 13C8.02469 13 9.42677 12.475 10.5353 11.596L13.9697 15.0303L14.5 15.5607L15.5607 14.5L15.0303 13.9697L11.596 10.5353C12.475 9.42677 13 8.02469 13 6.5C13 2.91015 10.0899 0 6.5 0ZM4.125 5.875H4.75H5.875V4.75V4.125H7.125V4.75V5.875H8.25H8.875V7.125H8.25H7.125V8.25V8.875H5.875V8.25V7.125H4.75H4.125V5.875Z",fill:"currentColor",fillRule:"evenodd"})}),eut=t=>T.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...t,children:T.jsx("path",{clipRule:"evenodd",d:"M1.5 6.5C1.5 3.73858 3.73858 1.5 6.5 1.5C9.26142 1.5 11.5 3.73858 11.5 6.5C11.5 9.26142 9.26142 11.5 6.5 11.5C3.73858 11.5 1.5 9.26142 1.5 6.5ZM6.5 0C2.91015 0 0 2.91015 0 6.5C0 10.0899 2.91015 13 6.5 13C8.02469 13 9.42677 12.475 10.5353 11.596L13.9697 15.0303L14.5 15.5607L15.5607 14.5L15.0303 13.9697L11.596 10.5353C12.475 9.42677 13 8.02469 13 6.5C13 2.91015 10.0899 0 6.5 0ZM4.125 5.875H4.75H8.25H8.875V7.125H8.25H4.75H4.125V5.875Z",fill:"currentColor",fillRule:"evenodd"})}),Dy={CheckIcon:qct,CopyIcon:Gct,DownloadIcon:Wct,ExternalLinkIcon:Qct,Loader2Icon:Yct,Maximize2Icon:Zct,RotateCcwIcon:Xct,XIcon:Kct,ZoomInIcon:Jct,ZoomOutIcon:eut},The=k.createContext(Dy),tut=(t,e)=>{if(t===e)return!0;if(!(t&&e))return t===e;let r=Object.keys(t),n=Object.keys(e);return r.length!==n.length?!1:r.every(i=>t[i]===e[i])},aq=({icons:t,children:e})=>{let r=k.useRef(t),n=k.useRef(t?{...Dy,...t}:Dy);tut(r.current,t)||(r.current=t,n.current=t?{...Dy,...t}:Dy);let i=n.current;return T.jsx(The.Provider,{value:i,children:e})},sl=()=>k.useContext(The),khe={copyCode:"Copy Code",downloadFile:"Download file",downloadDiagram:"Download diagram",downloadDiagramAsSvg:"Download diagram as SVG",downloadDiagramAsPng:"Download diagram as PNG",downloadDiagramAsMmd:"Download diagram as MMD",viewFullscreen:"View fullscreen",exitFullscreen:"Exit fullscreen",mermaidFormatSvg:"SVG",mermaidFormatPng:"PNG",mermaidFormatMmd:"MMD",copyTable:"Copy table",copyTableAsMarkdown:"Copy table as Markdown",copyTableAsCsv:"Copy table as CSV",copyTableAsTsv:"Copy table as TSV",downloadTable:"Download table",downloadTableAsCsv:"Download table as CSV",downloadTableAsMarkdown:"Download table as Markdown",tableFormatMarkdown:"Markdown",tableFormatCsv:"CSV",tableFormatTsv:"TSV",imageNotAvailable:"Image not available",downloadImage:"Download image",openExternalLink:"Open external link?",externalLinkWarning:"You're about to visit an external website.",close:"Close",copyLink:"Copy link",copied:"Copied",openLink:"Open link"},E7=k.createContext(khe),gu=()=>k.useContext(E7),oq=({onCopy:t,onError:e,timeout:r=2e3,children:n,className:i,code:s,...a})=>{let o=Er(),[l,c]=k.useState(!1),u=k.useRef(0),{code:d}=Che(),{isAnimating:m}=k.useContext(Ua),p=gu(),y=s??d,b=async()=>{var w;if(typeof window>"u"||!((w=navigator==null?void 0:navigator.clipboard)!=null&&w.writeText)){e==null||e(new Error("Clipboard API not available"));return}try{l||(await navigator.clipboard.writeText(y),c(!0),t==null||t(),u.current=window.setTimeout(()=>c(!1),r))}catch(C){e==null||e(C)}};k.useEffect(()=>()=>{window.clearTimeout(u.current)},[]);let v=sl(),x=l?v.CheckIcon:v.CopyIcon;return T.jsx("button",{className:o("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",i),"data-streamdown":"code-block-copy-button",disabled:m,onClick:b,title:p.copyCode,type:"button",...a,children:n??T.jsx(x,{size:14})})},lq={"1c":"1c","1c-query":"1cq",abap:"abap","actionscript-3":"as",ada:"ada",adoc:"adoc","angular-html":"html","angular-ts":"ts",apache:"conf",apex:"cls",apl:"apl",applescript:"applescript",ara:"ara",asciidoc:"adoc",asm:"asm",astro:"astro",awk:"awk",ballerina:"bal",bash:"sh",bat:"bat",batch:"bat",be:"be",beancount:"beancount",berry:"berry",bibtex:"bib",bicep:"bicep",blade:"blade.php",bsl:"bsl",c:"c","c#":"cs","c++":"cpp",cadence:"cdc",cairo:"cairo",cdc:"cdc",clarity:"clar",clj:"clj",clojure:"clj","closure-templates":"soy",cmake:"cmake",cmd:"cmd",cobol:"cob",codeowners:"CODEOWNERS",codeql:"ql",coffee:"coffee",coffeescript:"coffee","common-lisp":"lisp",console:"sh",coq:"v",cpp:"cpp",cql:"cql",crystal:"cr",cs:"cs",csharp:"cs",css:"css",csv:"csv",cue:"cue",cypher:"cql",d:"d",dart:"dart",dax:"dax",desktop:"desktop",diff:"diff",docker:"dockerfile",dockerfile:"dockerfile",dotenv:"env","dream-maker":"dm",edge:"edge",elisp:"el",elixir:"ex",elm:"elm","emacs-lisp":"el",erb:"erb",erl:"erl",erlang:"erl",f:"f","f#":"fs",f03:"f03",f08:"f08",f18:"f18",f77:"f77",f90:"f90",f95:"f95",fennel:"fnl",fish:"fish",fluent:"ftl",for:"for","fortran-fixed-form":"f","fortran-free-form":"f90",fs:"fs",fsharp:"fs",fsl:"fsl",ftl:"ftl",gdresource:"tres",gdscript:"gd",gdshader:"gdshader",genie:"gs",gherkin:"feature","git-commit":"gitcommit","git-rebase":"gitrebase",gjs:"js",gleam:"gleam","glimmer-js":"js","glimmer-ts":"ts",glsl:"glsl",gnuplot:"plt",go:"go",gql:"gql",graphql:"graphql",groovy:"groovy",gts:"gts",hack:"hack",haml:"haml",handlebars:"hbs",haskell:"hs",haxe:"hx",hbs:"hbs",hcl:"hcl",hjson:"hjson",hlsl:"hlsl",hs:"hs",html:"html","html-derivative":"html",http:"http",hxml:"hxml",hy:"hy",imba:"imba",ini:"ini",jade:"jade",java:"java",javascript:"js",jinja:"jinja",jison:"jison",jl:"jl",js:"js",json:"json",json5:"json5",jsonc:"jsonc",jsonl:"jsonl",jsonnet:"jsonnet",jssm:"jssm",jsx:"jsx",julia:"jl",kotlin:"kt",kql:"kql",kt:"kt",kts:"kts",kusto:"kql",latex:"tex",lean:"lean",lean4:"lean",less:"less",liquid:"liquid",lisp:"lisp",lit:"lit",llvm:"ll",log:"log",logo:"logo",lua:"lua",luau:"luau",make:"mak",makefile:"mak",markdown:"md",marko:"marko",matlab:"m",md:"md",mdc:"mdc",mdx:"mdx",mediawiki:"wiki",mermaid:"mmd",mips:"s",mipsasm:"s",mmd:"mmd",mojo:"mojo",move:"move",nar:"nar",narrat:"narrat",nextflow:"nf",nf:"nf",nginx:"conf",nim:"nim",nix:"nix",nu:"nu",nushell:"nu",objc:"m","objective-c":"m","objective-cpp":"mm",ocaml:"ml",pascal:"pas",perl:"pl",perl6:"p6",php:"php",plsql:"pls",po:"po",polar:"polar",postcss:"pcss",pot:"pot",potx:"potx",powerquery:"pq",powershell:"ps1",prisma:"prisma",prolog:"pl",properties:"properties",proto:"proto",protobuf:"proto",ps:"ps",ps1:"ps1",pug:"pug",puppet:"pp",purescript:"purs",py:"py",python:"py",ql:"ql",qml:"qml",qmldir:"qmldir",qss:"qss",r:"r",racket:"rkt",raku:"raku",razor:"cshtml",rb:"rb",reg:"reg",regex:"regex",regexp:"regexp",rel:"rel",riscv:"s",rs:"rs",rst:"rst",ruby:"rb",rust:"rs",sas:"sas",sass:"sass",scala:"scala",scheme:"scm",scss:"scss",sdbl:"sdbl",sh:"sh",shader:"shader",shaderlab:"shader",shell:"sh",shellscript:"sh",shellsession:"sh",smalltalk:"st",solidity:"sol",soy:"soy",sparql:"rq",spl:"spl",splunk:"spl",sql:"sql","ssh-config":"config",stata:"do",styl:"styl",stylus:"styl",svelte:"svelte",swift:"swift","system-verilog":"sv",systemd:"service",talon:"talon",talonscript:"talon",tasl:"tasl",tcl:"tcl",templ:"templ",terraform:"tf",tex:"tex",tf:"tf",tfvars:"tfvars",toml:"toml",ts:"ts","ts-tags":"ts",tsp:"tsp",tsv:"tsv",tsx:"tsx",turtle:"ttl",twig:"twig",typ:"typ",typescript:"ts",typespec:"tsp",typst:"typ",v:"v",vala:"vala",vb:"vb",verilog:"v",vhdl:"vhdl",vim:"vim",viml:"vim",vimscript:"vim",vue:"vue","vue-html":"html","vue-vine":"vine",vy:"vy",vyper:"vy",wasm:"wasm",wenyan:"wy",wgsl:"wgsl",wiki:"wiki",wikitext:"wiki",wit:"wit",wl:"wl",wolfram:"wl",xml:"xml",xsl:"xsl",yaml:"yaml",yml:"yml",zenscript:"zs",zig:"zig",zsh:"zsh",文言:"wy"},rut=({onDownload:t,onError:e,language:r,children:n,className:i,code:s,...a})=>{let o=Er(),{code:l}=Che(),{isAnimating:c}=k.useContext(Ua),u=gu(),d=sl(),m=s??l,p=`file.${r&&r in lq?lq[r]:"txt"}`,y="text/plain",b=()=>{try{Z0(p,m,y),t==null||t()}catch(v){e==null||e(v)}};return T.jsx("button",{className:o("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",i),"data-streamdown":"code-block-download-button",disabled:c,onClick:b,title:u.downloadFile,type:"button",...a,children:n??T.jsx(d.DownloadIcon,{size:14})})},cq=()=>{let{Loader2Icon:t}=sl(),e=Er();return T.jsxs("div",{className:e("w-full divide-y divide-border overflow-hidden rounded-xl border border-border"),children:[T.jsx("div",{className:e("h-[46px] w-full bg-muted/80")}),T.jsx("div",{className:e("flex w-full items-center justify-center p-4"),children:T.jsx(t,{className:e("size-4 animate-spin")})})]})},nut=/\.[^/.]+$/,iut=({node:t,className:e,src:r,alt:n,onLoad:i,onError:s,...a})=>{let{DownloadIcon:o}=sl(),l=Er(),c=k.useRef(null),[u,d]=k.useState(!1),[m,p]=k.useState(!1),y=gu(),b=a.width!=null||a.height!=null,v=(u||b)&&!m,x=m&&!b;k.useEffect(()=>{let D=c.current;if(D!=null&&D.complete){let L=D.naturalWidth>0;d(L),p(!L)}},[]);let w=k.useCallback(D=>{d(!0),p(!1),i==null||i(D)},[i]),C=k.useCallback(D=>{d(!1),p(!0),s==null||s(D)},[s]),S=async()=>{if(r)try{let D=await(await fetch(r)).blob(),L=new URL(r,window.location.origin).pathname.split("/").pop()||"",R=L.split(".").pop(),O=L.includes(".")&&R!==void 0&&R.length<=4,U="";if(O)U=L;else{let $=D.type,j="png";$.includes("jpeg")||$.includes("jpg")?j="jpg":$.includes("png")?j="png":$.includes("svg")?j="svg":$.includes("gif")?j="gif":$.includes("webp")&&(j="webp"),U=`${(n||L||"image").replace(nut,"")}.${j}`}Z0(U,D,D.type)}catch{window.open(r,"_blank")}};return r?T.jsxs("div",{className:l("group relative my-4 inline-block"),"data-streamdown":"image-wrapper",children:[T.jsx("img",{alt:n,className:l("max-w-full rounded-lg",x&&"hidden",e),"data-streamdown":"image",onError:C,onLoad:w,ref:c,src:r,...a}),x&&T.jsx("span",{className:l("text-muted-foreground text-xs italic"),"data-streamdown":"image-fallback",children:y.imageNotAvailable}),T.jsx("div",{className:l("pointer-events-none absolute inset-0 hidden rounded-lg bg-black/10 group-hover:block")}),v&&T.jsx("button",{className:l("absolute right-2 bottom-2 flex h-8 w-8 cursor-pointer items-center justify-center rounded-md border border-border bg-background/90 shadow-sm backdrop-blur-sm transition-all duration-200 hover:bg-background","opacity-0 group-hover:opacity-100"),onClick:S,title:y.downloadImage,type:"button",children:T.jsx(o,{size:14})})]}):null},eb=0,_R=()=>{eb+=1,eb===1&&(document.body.style.overflow="hidden")},wR=()=>{eb=Math.max(0,eb-1),eb===0&&(document.body.style.overflow="")},sut=({url:t,isOpen:e,onClose:r,onConfirm:n})=>{let{CheckIcon:i,CopyIcon:s,ExternalLinkIcon:a,XIcon:o}=sl(),l=Er(),[c,u]=k.useState(!1),d=gu(),m=k.useCallback(async()=>{try{await navigator.clipboard.writeText(t),u(!0),setTimeout(()=>u(!1),2e3)}catch{}},[t]),p=k.useCallback(()=>{n(),r()},[n,r]);return k.useEffect(()=>{if(e){_R();let y=b=>{b.key==="Escape"&&r()};return document.addEventListener("keydown",y),()=>{document.removeEventListener("keydown",y),wR()}}},[e,r]),e?T.jsx("div",{className:l("fixed inset-0 z-50 flex items-center justify-center bg-background/50 backdrop-blur-sm"),"data-streamdown":"link-safety-modal",onClick:r,onKeyDown:y=>{y.key==="Escape"&&r()},role:"button",tabIndex:0,children:T.jsxs("div",{className:l("relative mx-4 flex w-full max-w-md flex-col gap-4 rounded-xl border bg-background p-6 shadow-lg"),onClick:y=>y.stopPropagation(),onKeyDown:y=>y.stopPropagation(),role:"presentation",children:[T.jsx("button",{className:l("absolute top-4 right-4 rounded-md p-1 text-muted-foreground transition-all hover:bg-muted hover:text-foreground"),onClick:r,title:d.close,type:"button",children:T.jsx(o,{size:16})}),T.jsxs("div",{className:l("flex flex-col gap-2"),children:[T.jsxs("div",{className:l("flex items-center gap-2 font-semibold text-lg"),children:[T.jsx(a,{size:20}),T.jsx("span",{children:d.openExternalLink})]}),T.jsx("p",{className:l("text-muted-foreground text-sm"),children:d.externalLinkWarning})]}),T.jsx("div",{className:l("break-all rounded-md bg-muted p-3 font-mono text-sm",t.length>100&&"max-h-32 overflow-y-auto"),children:t}),T.jsxs("div",{className:l("flex gap-2"),children:[T.jsx("button",{className:l("flex flex-1 items-center justify-center gap-2 rounded-md border bg-background px-4 py-2 font-medium text-sm transition-all hover:bg-muted"),onClick:m,type:"button",children:c?T.jsxs(T.Fragment,{children:[T.jsx(i,{size:14}),T.jsx("span",{children:d.copied})]}):T.jsxs(T.Fragment,{children:[T.jsx(s,{size:14}),T.jsx("span",{children:d.copyLink})]})}),T.jsxs("button",{className:l("flex flex-1 items-center justify-center gap-2 rounded-md bg-primary px-4 py-2 font-medium text-primary-foreground text-sm transition-all hover:bg-primary/90"),onClick:p,type:"button",children:[T.jsx(a,{size:14}),T.jsx("span",{children:d.openLink})]})]})]})}):null},A7=k.createContext(null),CR=()=>k.useContext(A7),bxt=()=>{var t;let e=CR();return(t=e==null?void 0:e.code)!=null?t:null},TR=()=>{var t;let e=CR();return(t=e==null?void 0:e.mermaid)!=null?t:null},aut=t=>{var e;let r=CR();return r!=null&&r.renderers&&t&&(e=r.renderers.find(n=>Array.isArray(n.language)?n.language.includes(t):n.language===t))!=null?e:null},out=(t,e)=>{var r;let n=(r=void 0)!=null?r:5;return new Promise((i,s)=>{let a="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(t))),o=new Image;o.crossOrigin="anonymous",o.onload=()=>{let l=document.createElement("canvas"),c=o.width*n,u=o.height*n;l.width=c,l.height=u;let d=l.getContext("2d");if(!d){s(new Error("Failed to create 2D canvas context for PNG export"));return}d.drawImage(o,0,0,c,u),l.toBlob(m=>{if(!m){s(new Error("Failed to create PNG blob"));return}i(m)},"image/png")},o.onerror=()=>s(new Error("Failed to load SVG image")),o.src=a})},lut=({chart:t,children:e,className:r,onDownload:n,config:i,onError:s})=>{let a=Er(),[o,l]=k.useState(!1),c=k.useRef(null),{isAnimating:u}=k.useContext(Ua),d=sl(),m=TR(),p=gu(),y=async b=>{try{if(b==="mmd"){Z0("diagram.mmd",t,"text/plain"),l(!1),n==null||n(b);return}if(!m){s==null||s(new Error("Mermaid plugin not available"));return}let v=m.getMermaid(i),x=t.split("").reduce((S,D)=>(S<<5)-S+D.charCodeAt(0)|0,0),w=`mermaid-${Math.abs(x)}-${Date.now()}-${Math.random().toString(36).substring(2,9)}`,{svg:C}=await v.render(w,t);if(!C){s==null||s(new Error("SVG not found. Please wait for the diagram to render."));return}if(b==="svg"){Z0("diagram.svg",C,"image/svg+xml"),l(!1),n==null||n(b);return}if(b==="png"){let S=await out(C);Z0("diagram.png",S,"image/png"),n==null||n(b),l(!1);return}}catch(v){s==null||s(v)}};return k.useEffect(()=>{let b=v=>{let x=v.composedPath();c.current&&!x.includes(c.current)&&l(!1)};return document.addEventListener("mousedown",b),()=>{document.removeEventListener("mousedown",b)}},[]),T.jsxs("div",{className:a("relative"),ref:c,children:[T.jsx("button",{className:a("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",r),disabled:u,onClick:()=>l(!o),title:p.downloadDiagram,type:"button",children:e??T.jsx(d.DownloadIcon,{size:14})}),o?T.jsxs("div",{className:a("absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg"),children:[T.jsx("button",{className:a("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>y("svg"),title:p.downloadDiagramAsSvg,type:"button",children:p.mermaidFormatSvg}),T.jsx("button",{className:a("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>y("png"),title:p.downloadDiagramAsPng,type:"button",children:p.mermaidFormatPng}),T.jsx("button",{className:a("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>y("mmd"),title:p.downloadDiagramAsMmd,type:"button",children:p.mermaidFormatMmd})]}):null]})},cut=({chart:t,config:e,onFullscreen:r,onExit:n,className:i,...s})=>{let{Maximize2Icon:a,XIcon:o}=sl(),l=Er(),[c,u]=k.useState(!1),{isAnimating:d,controls:m}=k.useContext(Ua),p=gu(),y=(()=>{if(typeof m=="boolean")return m;let v=m.mermaid;return v===!1?!1:v===!0||v===void 0?!0:v.panZoom!==!1})(),b=()=>{u(!c)};return k.useEffect(()=>{if(c){_R();let v=x=>{x.key==="Escape"&&u(!1)};return document.addEventListener("keydown",v),()=>{document.removeEventListener("keydown",v),wR()}}},[c]),k.useEffect(()=>{c?r==null||r():n&&n()},[c,r,n]),T.jsxs(T.Fragment,{children:[T.jsx("button",{className:l("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",i),disabled:d,onClick:b,title:p.viewFullscreen,type:"button",...s,children:T.jsx(a,{size:14})}),c?cd.createPortal(T.jsxs("div",{className:l("fixed inset-0 z-50 flex items-center justify-center bg-background/95 backdrop-blur-sm"),onClick:b,onKeyDown:v=>{v.key==="Escape"&&b()},role:"button",tabIndex:0,children:[T.jsx("button",{className:l("absolute top-4 right-4 z-10 rounded-md p-2 text-muted-foreground transition-all hover:bg-muted hover:text-foreground"),onClick:b,title:p.exitFullscreen,type:"button",children:T.jsx(o,{size:20})}),T.jsx("div",{className:l("flex size-full items-center justify-center p-4"),onClick:v=>v.stopPropagation(),onKeyDown:v=>v.stopPropagation(),role:"presentation",children:T.jsx(sde,{chart:t,className:l("size-full [&_svg]:h-auto [&_svg]:w-auto"),config:e,fullscreen:!0,showControls:y})})]}),document.body):null]})},She=t=>{var e,r;let n=[],i=[],s=t.querySelectorAll("thead th");for(let o of s)n.push(((e=o.textContent)==null?void 0:e.trim())||"");let a=t.querySelectorAll("tbody tr");for(let o of a){let l=[],c=o.querySelectorAll("td");for(let u of c)l.push(((r=u.textContent)==null?void 0:r.trim())||"");i.push(l)}return{headers:n,rows:i}},Ehe=t=>{let{headers:e,rows:r}=t,n=o=>{let l=!1,c=!1;for(let u of o){if(u==='"'){l=!0,c=!0;break}(u===","||u===`
|
|
1272
1272
|
`)&&(l=!0)}return l?c?`"${o.replace(/"/g,'""')}"`:`"${o}"`:o},i=e.length>0?r.length+1:r.length,s=new Array(i),a=0;e.length>0&&(s[a]=e.map(n).join(","),a+=1);for(let o of r)s[a]=o.map(n).join(","),a+=1;return s.join(`
|
|
1273
1273
|
`)},uut=t=>{let{headers:e,rows:r}=t,n=o=>{let l=!1;for(let u of o)if(u===" "||u===`
|
|
@@ -1310,8 +1310,8 @@ ${Ni.text}`,Ni.state==="streaming"&&(Ki.state="streaming")):It.push({kind:"reaso
|
|
|
1310
1310
|
|
|
1311
1311
|
`);return{registered:r.map(s=>s.id),systemPromptAppend:i}}function jmt(){return!1}class Afe{constructor(e={}){qr(this,"catalogs",new Map),qr(this,"listeners",new Set),qr(this,"snapshotCache",null),qr(this,"warnOnDuplicate"),qr(this,"subscribe",r=>(this.listeners.add(r),()=>{this.listeners.delete(r)})),qr(this,"getSnapshot",()=>(this.snapshotCache||(this.snapshotCache=Array.from(this.catalogs.values())),this.snapshotCache)),this.warnOnDuplicate=e.warnOnDuplicate??jmt()}register(e,r){this.catalogs.has(e.id)&&this.warnOnDuplicate&&console.warn(`[CatalogRegistry] catalog "${e.id}" registered by "${r}" overrides previous registration`),this.catalogs.set(e.id,{...e,pluginId:r}),this.emit()}unregister(e){this.catalogs.delete(e)&&this.emit()}unregisterByPluginId(e){let r=!1;for(const[n,i]of this.catalogs)i.pluginId===e&&(this.catalogs.delete(n),r=!0);r&&this.emit()}list(){return this.getSnapshot()}get(e){return this.catalogs.get(e)}emit(){this.snapshotCache=null;for(const e of[...this.listeners])e()}}class Dfe{constructor(){qr(this,"resolvers",new Map),qr(this,"registrationOrder",[]),qr(this,"listeners",new Set),qr(this,"snapshotCache",null),qr(this,"subscribe",e=>(this.listeners.add(e),()=>{this.listeners.delete(e)})),qr(this,"getSnapshot",()=>(this.snapshotCache||(this.snapshotCache=this.list()),this.snapshotCache))}register(e,r){const n=this.resolvers.has(e);this.resolvers.set(e,{...r,id:e}),n||this.registrationOrder.push(e),this.emit()}unregisterByPluginId(e){let r=!1;for(const[n,i]of this.resolvers)i.pluginId===e&&(this.resolvers.delete(n),this.registrationOrder=this.registrationOrder.filter(s=>s!==n),r=!0);r&&this.emit()}get(e){return this.resolvers.get(e)}has(e){return this.resolvers.has(e)}list(){return this.registrationOrder.map(e=>this.resolvers.get(e))}resolve(e){let r,n=-1/0,i=!1,s=-1;return this.registrationOrder.forEach((a,o)=>{const l=this.resolvers.get(a);let c;try{c=l.resolve(e)}catch(m){console.warn(`[SurfaceResolverRegistry] resolver "${a}" failed:`,m instanceof Error?m.message:m);return}if(!c)return;const u=c.score??0,d=l.source==="app";(u>n||u===n&&d&&!i||u===n&&d===i&&o>=s)&&(r=c,n=u,i=d,s=o)}),r}emit(){this.snapshotCache=null;for(const e of[...this.listeners])e()}}const Yv=k.createContext(null);function Hmt({panelRegistry:t,commandRegistry:e,catalogRegistry:r,surfaceResolverRegistry:n,children:i}){const s=k.useRef(null),a=k.useRef(null);s.current||(s.current=new Afe),a.current||(a.current=new Dfe);const o=r??s.current,l=n??a.current,c=k.useMemo(()=>({panelRegistry:t,commandRegistry:e,catalogRegistry:o,surfaceResolverRegistry:l}),[t,e,o,l]);return T.jsx(Yv.Provider,{value:c,children:i})}function Zv(){const t=k.useContext(Yv);if(!t)throw new Error("useRegistry must be used within a RegistryProvider");return t.panelRegistry}function YR(){const t=k.useContext(Yv);if(!t)throw new Error("useCommandRegistry must be used within a RegistryProvider");return t.commandRegistry}function ZR(){const t=k.useContext(Yv);if(!t)throw new Error("useCatalogRegistry must be used within a RegistryProvider");return t.catalogRegistry}function Vmt(){const t=k.useContext(Yv);if(!t)throw new Error("useSurfaceResolverRegistry must be used within a RegistryProvider");return t.surfaceResolverRegistry}function Umt(){const t=YR();return k.useSyncExternalStore(t.subscribe,t.getSnapshot)}function qmt(){const t=ZR();return k.useSyncExternalStore(t.subscribe,t.getSnapshot)}function Gmt({pluginId:t,message:e,kind:r}){return T.jsx(SJ,{tone:"error",icon:T.jsx(E8e,{className:"size-4"}),className:"py-2",description:T.jsxs("span",{className:"block min-w-0 truncate",children:[T.jsxs("span",{className:"font-medium",children:["[",t,"]"]})," ",r," error: ",e]})})}const Lfe=k.createContext(null);function Wmt({children:t}){const[e,r]=k.useState([]),n=k.useCallback(s=>{r(a=>[...a,s])},[]),i=k.useMemo(()=>({errors:e,reportPluginError:n}),[e,n]);return T.jsx(Lfe.Provider,{value:i,children:t})}let bS=class extends k.Component{constructor(){super(...arguments),qr(this,"state",{error:null})}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,r){var n;const i={kind:"contribution",pluginId:this.props.pluginId,contributionKind:this.props.contributionKind,contributionId:this.props.contributionId,error:e,componentStack:r.componentStack?Ymt(r.componentStack,5):null};(n=this.context)==null||n.reportPluginError(i)}render(){return this.state.error?T.jsx(Gmt,{pluginId:this.props.pluginId,message:this.state.error.message,kind:this.props.contributionKind}):this.props.children}};qr(bS,"contextType",Lfe);function Ymt(t,e){return t.split(`
|
|
1312
1312
|
`).filter(r=>r.trim()).slice(0,e).join(`
|
|
1313
|
-
`)}const Zmt=1024,Xmt=500,Kmt=/^[a-zA-Z0-9_-]+$/,Qmt=64,__=50,yG=16384,XR=Lh().min(1).max(Zmt).refine(t=>!t.includes(".."),"path traversal not allowed").refine(t=>!t.includes("\0"),"null bytes not allowed"),Jmt=ko({path:XR,mode:DD(["view","edit","diff"]).optional()}),egt=ko({id:Lh().max(Qmt).regex(Kmt,"invalid panel ID"),component:Lh().min(1),params:AD(cY()).optional().refine(t=>{if(!t)return!0;try{return new TextEncoder().encode(JSON.stringify(t)).byteLength<=yG}catch{return!1}},`params must be JSON-serializable and under ${yG} bytes`),title:Lh().max(200).optional()}),tgt=ko({id:Lh().min(1)}),rgt=ko({msg:Lh().max(Xmt),level:DD(["info","warn","error"]).optional()}),ngt=ko({file:XR,line:F0().int().positive()}),igt=ko({path:XR});function sgt(t){let e=0;const r=new Map;function n(){return++e}function i(){return{seq:n(),status:"ok"}}function s(l,c){return{seq:n(),status:"error",error:{code:l,message:c}}}function a(l,c){const u=r.get(l);if(u)for(const d of[...u])try{d(c)}catch(m){console.error(`[bridge] listener for "${String(l)}" threw:`,m)}}const o={getOpenPanels(){return t.getState().panels},getActiveFile(){return t.getState().activeFile},getDirtyFiles(){return Object.keys(t.getState().dirtyFiles)},getVisibleFiles(){return t.getState().visibleFiles},async openFile(l,c){const u=Jmt.safeParse({path:l,mode:c==null?void 0:c.mode});if(!u.success)return s("VALIDATION",u.error.issues[0].message);const d=t.getState(),m=u.data.mode??"edit",p=`file:${l}`;if(d.panels.find(y=>y.id===p)){const y=d.activePanel;return d.activatePanel(p),d.visibleFiles.includes(l)||d.openFile(l,p),a("panel:activated",{panelId:p,previousPanelId:y}),i()}return d.panels.length>=__?s("MAX_PANELS",`cannot exceed ${__} open panels`):(d.openFile(l,p),d.openPanel({id:p,component:"editor",params:{path:l,mode:m}}),a("file:opened",{path:l,mode:m}),a("panel:opened",{panelId:p,params:{path:l,mode:m}}),i())},async openPanel(l){const c=egt.safeParse(l);if(!c.success)return s("VALIDATION",c.error.issues[0].message);const u=t.getState();if(u.panels.find(d=>d.id===l.id)){const d=u.activePanel;return u.activatePanel(l.id),a("panel:activated",{panelId:l.id,previousPanelId:d}),i()}return u.panels.length>=__?s("MAX_PANELS",`cannot exceed ${__} open panels`):(u.openPanel({id:l.id,component:l.component,params:l.params}),a("panel:opened",{panelId:l.id,params:l.params??{}}),i())},async closePanel(l){const c=tgt.safeParse({id:l});if(!c.success)return s("VALIDATION",c.error.issues[0].message);const u=t.getState(),d=u.panels.find(m=>m.id===l);return d?d.essential?s("ESSENTIAL",`panel ${l} is essential and cannot be closed`):(u.closePanel(l),a("panel:closed",{panelId:l}),i()):s("NOT_FOUND",`panel ${l} not found`)},async closeWorkbenchLeftPane(){return t.getState().setSidebar({collapsed:!0}),a("sidebar:toggled",{collapsed:!0}),i()},async showNotification(l,c="info"){const u=rgt.safeParse({msg:l,level:c});if(!u.success)return s("VALIDATION",u.error.issues[0].message);const d=u.data.level??"info",m=d==="warn"?"warning":d;return t.getState().showNotification({message:u.data.msg,type:m}),a("notification:shown",{message:u.data.msg,level:d}),i()},async navigateToLine(l,c){const u=ngt.safeParse({file:l,line:c});if(!u.success)return s("VALIDATION",u.error.issues[0].message);const d=await o.openFile(l);return d.status==="error"?d:(t.getState().navigateToLine(l,u.data.line),i())},async expandToFile(l){const c=igt.safeParse({path:l});if(!c.success)return s("VALIDATION",c.error.issues[0].message);const u=t.getState();return u.sidebar.collapsed&&(u.setSidebar({collapsed:!1}),a("sidebar:toggled",{collapsed:!1})),a("tree:expand",{path:c.data.path}),i()},markDirty(l){t.getState().markDirty(l,"bridge"),a("file:dirty",{path:l,dirty:!0})},markClean(l){t.getState().markClean(l),a("file:dirty",{path:l,dirty:!1})},subscribe(l,c){let u=r.get(l);u||(u=new Set,r.set(l,u));const d=c;return u.add(d),()=>u.delete(d)},select(l,c){let u=l(t.getState());return t.subscribe(d=>{const m=l(d);Object.is(m,u)||(u=m,c(m))})}};return o}const agt=100,ogt=3e3;function bG(t){const e={"Content-Type":"application/json"};return t&&(e.Authorization=`Bearer ${t}`),e}function lgt(t,e){const r=t.getState();return{v:1,causedBy:e,openPanels:r.panels,activePanel:r.activePanel,activeFile:r.activeFile,visibleFiles:r.visibleFiles,dirtyFiles:Object.keys(r.dirtyFiles)}}async function vG(t,e,r){switch(e){case"openFile":await t.openFile(r.path,r.mode?{mode:r.mode}:void 0);break;case"openPanel":await t.openPanel({id:r.id,component:r.component,params:r.params,title:r.title});break;case"closePanel":await t.closePanel(r.id);break;case"closeWorkbenchLeftPane":await t.closeWorkbenchLeftPane();break;case"showNotification":await t.showNotification(r.msg,r.level);break;case"navigateToLine":await t.navigateToLine(r.file,r.line);break;case"expandToFile":await t.expandToFile(r.path);break;case"markDirty":t.markDirty(r.path);break;case"markClean":t.markClean(r.path);break}}function cgt(t){const{endpoint:e,bridge:r,store:n,authToken:i,pollMode:s=!1,pollInterval:a=ogt,onAuthError:o,onVersionMismatch:l,onConnectionChange:c}=t;let u=null,d=null,m=null,p=null,y=!1,b=!1,v=0;function x(O){b||y!==O&&(y=O,c==null||c(O))}async function w(O){if(b)return;const U=lgt(n,O);try{const $=await fetch(`${e}/api/v1/ui/state`,{method:"PUT",headers:bG(i),body:JSON.stringify(U)});if(b)return;($.status===401||$.status===403)&&(o==null||o($.status))}catch{}}function C(O){m!==null&&clearTimeout(m),m=setTimeout(()=>{m=null,w(O)},agt)}function S(O,U){if(!b)switch(O){case"init":{x(!0),w("restore");break}case"command":{let $;try{$=JSON.parse(U)}catch{return}if($.v!==1){l==null||l($.v);return}v++,vG(r,$.kind,$.params).finally(()=>{v--});break}case"error":{let $;try{$=JSON.parse(U)}catch{return}if($.v!==1){l==null||l($.v);return}r.showNotification($.message,"error");break}}}function D(){const O=`${e}/api/v1/ui/commands/next`,U=new EventSource(O,{withCredentials:!0});U.addEventListener("init",$=>{S("init",$.data)}),U.addEventListener("command",$=>{S("command",$.data)}),U.addEventListener("error",$=>{$.data?S("error",$.data):x(!1)}),U.addEventListener("heartbeat",$=>{S("heartbeat",$.data)}),u=U}async function L(){if(!b)try{const O=`${e}/api/v1/ui/commands/next?poll=true`,U=await fetch(O,{headers:bG(i)});if(b)return;if(U.status===401||U.status===403){o==null||o(U.status);return}if(!U.ok)return;const $=await U.json();if(!Array.isArray($))return;for(const j of $){if(b)return;if(j.v!==1){l==null||l(j.v);continue}v++;try{await vG(r,j.kind,j.params)}finally{v--}}x(!0)}catch{x(!1)}}function R(){p=n.subscribe(()=>{if(b)return;const O=v>0?"agent":"user";C(O)})}return{connect(){b=!1,!s&&typeof EventSource<"u"?D():(L(),d=setInterval(L,a)),R()},disconnect(){u&&(u.close(),u=null),d!==null&&(clearInterval(d),d=null),m!==null&&(clearTimeout(m),m=null),p&&(p(),p=null),x(!1),b=!0},pushState(O){w(O)}}}const ugt=new Set(["openFile","openSurface","openPanel","navigateToLine","expandToFile","showNotification","closePanel","closeWorkbenchLeftPane"]);function B0(t,e){const r=t[e];return typeof r=="string"&&r.length>0?r:null}function Ife(t,e){const r=t[e];if(r!==null&&typeof r=="object"&&!Array.isArray(r))return r}function hgt(t){const e=B0(t,"kind"),r=B0(t,"target");return!e||!r?null:{kind:e,target:r,meta:Ife(t,"meta")}}const dgt=60;function oh(t,e,r=dgt){const n=t.surface();if(n){e(n);return}!t.isWorkbenchOpen()||r<=0||requestAnimationFrame(()=>oh(t,e,r-1))}function vS(t,e){if(ugt.has(t.kind))switch(t.kind){case"openFile":{const r=B0(t.params,"path");if(!r)return;const n=!e.isWorkbenchOpen();n&&e.openWorkbench();const i=s=>{try{s.openFile(r)}catch(a){console.warn("[uiCommandDispatcher] openFile dispatch failed:",a instanceof Error?a.message:a)}};n?requestAnimationFrame(()=>requestAnimationFrame(()=>oh(e,i))):oh(e,i);return}case"openSurface":{const r=hgt(t.params);if(!r)return;const n=!e.isWorkbenchOpen();n&&e.openWorkbench();const i=s=>{try{s.openSurface(r)}catch(a){console.warn("[uiCommandDispatcher] openSurface dispatch failed:",a instanceof Error?a.message:a)}};n?requestAnimationFrame(()=>requestAnimationFrame(()=>oh(e,i))):oh(e,i);return}case"openPanel":{const r=B0(t.params,"id"),n=B0(t.params,"component");if(!r||!n)return;const i={id:r,component:n,title:B0(t.params,"title")??void 0,params:Ife(t.params,"params")},s=!e.isWorkbenchOpen();s&&e.openWorkbench();const a=o=>{try{o.openPanel(i)}catch(l){console.warn("[uiCommandDispatcher] openPanel dispatch failed:",l instanceof Error?l.message:l)}};s?requestAnimationFrame(()=>requestAnimationFrame(()=>oh(e,a))):oh(e,a);return}case"closeWorkbenchLeftPane":{oh(e,r=>r.closeWorkbenchLeftPane());return}}}function fgt(){const t=new Map;function e(i,s){let a=t.get(i);return a||(a=new Set,t.set(i,a)),a.add(s),()=>a.delete(s)}function r(i,s){const a=t.get(i);if(a)for(const o of[...a])try{o(s)}catch(l){console.error(`[events] listener for "${String(i)}" threw:`,l)}}function n(){t.clear()}return{on:e,emit:r,_reset:n}}const pgt="workspace:ui.command",mgt="workspace:editor.save.start",ggt="workspace:editor.save.end",ygt="workspace:panel.update",bgt="workspace:panel.close",vgt="workspace:agent.data",qa={uiCommand:pgt,editorSaveStart:mgt,editorSaveEnd:ggt,panelUpdate:ygt,panelClose:bgt,agentData:vgt};function Ng(){return{cause:"user",ts:Date.now()}}function xgt(t){return{cause:"agent",toolCallId:t,ts:Date.now()}}function sy(t){return{cause:"remote",toolCallId:t,ts:Date.now()}}function uD(t,e){const r=k.useRef(e);r.current=e,k.useEffect(()=>Hr.on(t,n=>r.current(n)),[t])}function _gt(t){Hr.emit(qa.agentData,{ts:Date.now(),part:t})}const Hr=fgt(),hD="boring-workspace:ui-command";function xS(t){Hr.emit(qa.uiCommand,{...Ng(),command:t}),typeof globalThis.dispatchEvent=="function"&&typeof CustomEvent<"u"&&globalThis.dispatchEvent(new CustomEvent(hD,{detail:t}))}const wgt=1500,Cgt=1e3,Tgt=5;function xG(t,e){if(!e)return t;const r=new URLSearchParams;for(const[i,s]of Object.entries(e))s!=null&&r.set(i,String(s));const n=r.toString();return n?`${t}${t.includes("?")?"&":"?"}${n}`:t}function kgt(t){const e=t.endpoint??"",r=t.ctx,n=t.query,i=t.eventSourceCtor===null?null:t.eventSourceCtor??(typeof EventSource<"u"?EventSource:null),s=t.fetcher??(typeof fetch<"u"?fetch:null),a=t.reconnectDelayMs??Cgt,o=t.maxReconnects??Tgt,l=t.pollIntervalMs??wgt;let c=!1,u=null,d=null,m=null,p=null,y=0,b=!1;function v(C){C&&typeof C=="object"&&typeof C.kind=="string"&&vS(C,r)}function x(){if(c||b||!s)return;b=!0;const C=async()=>{if(!c){m=new AbortController;try{const S=await s(xG(`${e}/api/v1/ui/commands/next?poll=true`,n),{signal:m.signal});if(c)return;if(S.ok){const D=await S.json();if(Array.isArray(D))for(const L of D)v(L)}}catch{}finally{m=null}c||(d=setTimeout(C,l))}};C()}function w(){if(!c){if(!i){x();return}u=new i(xG(`${e}/api/v1/ui/commands/next`,n)),u.addEventListener("command",C=>{const S=C.data;if(!(typeof S!="string"||S.length===0))try{v(JSON.parse(S))}catch{}}),u.addEventListener("init",()=>{y=0}),u.addEventListener("error",()=>{if(!c){if(u==null||u.close(),u=null,y+=1,y>o){x();return}p=setTimeout(w,a*y)}})}}return w(),()=>{c=!0,u&&(u.close(),u=null),d&&(clearTimeout(d),d=null),m&&(m.abort(),m=null),p&&(clearTimeout(p),p=null)}}const Sgt=1e4,Egt=3,Agt=1e3;function _G(t){return t>=500}function Dgt(t){return new Promise(e=>setTimeout(e,t))}class Lgt{constructor(e){qr(this,"baseUrl"),qr(this,"headers"),qr(this,"onAuthError"),qr(this,"onTimeout"),qr(this,"timeout"),qr(this,"maxRetries"),qr(this,"retryBaseMs"),this.baseUrl=e.apiBaseUrl.replace(/\/$/,""),this.headers={"Content-Type":"application/json",...e.authHeaders},this.onAuthError=e.onAuthError,this.onTimeout=e.onTimeout,this.timeout=e.timeout??Sgt,this.maxRetries=e.maxRetries??Egt,this.retryBaseMs=e.retryBaseMs??Agt}async request(e,r,n,i,s){var a,o;const l=i??this.timeout;let c=null;for(let u=0;u<=this.maxRetries;u++){u>0&&await Dgt(this.retryBaseMs*2**(u-1));const d=new AbortController,m=()=>d.abort();s==null||s.addEventListener("abort",m,{once:!0});const p=setTimeout(()=>d.abort(),l);try{const y=await fetch(`${this.baseUrl}${r}`,{method:e,headers:this.headers,body:n!=null?JSON.stringify(n):void 0,signal:d.signal});if(clearTimeout(p),s==null||s.removeEventListener("abort",m),y.status===401||y.status===403)throw(a=this.onAuthError)==null||a.call(this,y.status),new lh(y.status,`Auth error: ${y.status}`);if(_G(y.status)){c=new lh(y.status,`HTTP ${y.status}: ${y.statusText}`);continue}if(!y.ok){const b=await Igt(y);throw new lh(y.status,`HTTP ${y.status}: ${y.statusText}`,b)}return await y.json()}catch(y){if(clearTimeout(p),s==null||s.removeEventListener("abort",m),y instanceof lh&&!_G(y.status))throw y;if(y instanceof DOMException&&y.name==="AbortError"){if(s!=null&&s.aborted)throw y;(o=this.onTimeout)==null||o.call(this,r),c=new lh(0,`Request timeout after ${l}ms: ${r}`);continue}if(y instanceof TypeError){c=y;continue}throw y}}throw c??new lh(0,"Request failed after retries")}async getTree(e,r){return(await this.request("GET",`/api/v1/tree?path=${encodeURIComponent(e)}`,void 0,void 0,r)).entries}async getFile(e,r){return this.request("GET",`/api/v1/files?path=${encodeURIComponent(e)}`,void 0,void 0,r)}async writeFile(e,r,n){try{return{mtimeMs:(await this.request("POST","/api/v1/files",(n==null?void 0:n.expectedMtimeMs)!=null?{path:e,content:r,expectedMtimeMs:n.expectedMtimeMs}:{path:e,content:r})).mtimeMs}}catch(i){throw i instanceof lh&&i.status===409?Zb.from(i,e):i}}async deleteFile(e){await this.request("DELETE",`/api/v1/files?path=${encodeURIComponent(e)}`)}async stat(e,r){return this.request("GET",`/api/v1/stat?path=${encodeURIComponent(e)}`,void 0,void 0,r)}async search(e,r,n){const i=new URLSearchParams({q:e});return r!=null&&i.set("limit",String(r)),(await this.request("GET",`/api/v1/files/search?${i}`,void 0,void 0,n)).results}async createDir(e){await this.request("POST","/api/v1/dirs",{path:e})}async moveFile(e,r){await this.request("POST","/api/v1/files/move",{from:e,to:r})}}class lh extends Error{constructor(e,r,n){super(r),this.status=e,this.body=n,this.name="FetchError"}}class Zb extends Error{constructor(e,r,n){super(`File modified on server: ${e}`),this.path=e,this.currentMtimeMs=r,this.expectedMtimeMs=n,this.name="FileConflictError"}static from(e,r){var n,i;const s=e.body&&typeof e.body=="object"?e.body:null;return new Zb(r,typeof((n=s==null?void 0:s.error)==null?void 0:n.currentMtimeMs)=="number"?s.error.currentMtimeMs:null,typeof((i=s==null?void 0:s.error)==null?void 0:i.expectedMtimeMs)=="number"?s.error.expectedMtimeMs:null)}}async function Igt(t){try{const e=await t.text();return e?JSON.parse(e):null}catch{return null}}const Rgt="filesystem:file.changed",Ogt="filesystem:file.created",Ngt="filesystem:file.moved",Mgt="filesystem:file.deleted",Zn={changed:Rgt,created:Ogt,moved:Ngt,deleted:Mgt},uw="filesystem",Rfe="files",hw=Rfe,KR="files",Pgt="filesystem-path",Ofe="code-editor",Nfe="csv-viewer",Mfe="markdown-editor",Pfe="image-viewer",Bfe="pdf-viewer",Ffe="html-viewer",$fe="empty-file-panel";function Bgt(){const t=uS(),e=gp(),r=yp();k.useEffect(()=>{const n=Hr.on(Zn.changed,o=>{ay(t,e,r,o.path)}),i=Hr.on(Zn.created,o=>{l6(t,e,r),o.kind==="file"&&ay(t,e,r,o.path)}),s=Hr.on(Zn.moved,o=>{l6(t,e,r),ay(t,e,r,o.from),ay(t,e,r,o.to),wG(t,e,r)}),a=Hr.on(Zn.deleted,o=>{l6(t,e,r),ay(t,e,r,o.path),wG(t,e,r)});return()=>{n(),i(),s(),a()}},[t,e,r])}function ay(t,e,r,n){t.invalidateQueries({queryKey:[e,r,KR,n]}),t.invalidateQueries({queryKey:[e,r,"stat",n]})}function l6(t,e,r){t.invalidateQueries({queryKey:[e,r,"tree"]})}function wG(t,e,r){t.invalidateQueries({queryKey:[e,r,"search"]})}function Fgt(){const t=gp(),e=yp(),r=uS();k.useEffect(()=>{if(typeof window>"u"||typeof EventSource>"u")return;const n=Hgt(jgt(t,"/api/v1/fs/events"),e);let i,s=!1;const a=new Set,o=[],l=256;try{i=new EventSource(n,{withCredentials:!0})}catch{return}const c=p=>{if(a.has(p))return!1;if(a.add(p),o.push(p),o.length>l){const y=o.shift();y!==void 0&&a.delete(y)}return!0},u=p=>{let y;try{y=JSON.parse(p.data)}catch{return}typeof(y==null?void 0:y.eventId)!="string"||typeof y.change!="object"||y.change==null||c(y.eventId)&&$gt(y.change)},d=()=>{s=!0,i==null||i.close()},m=()=>{a.clear(),o.length=0,r.invalidateQueries({predicate:p=>zgt(p.queryKey)})};return i.addEventListener("change",u),i.addEventListener("unsupported",d),i.addEventListener("resync-required",m),()=>{i&&(i.removeEventListener("change",u),i.removeEventListener("unsupported",d),i.removeEventListener("resync-required",m),s||i.close(),i=null)}},[t,e,r])}function $gt(t){switch(t.op){case"write":Hr.emit(Zn.changed,{...sy(),path:t.path});return;case"mkdir":Hr.emit(Zn.created,{...sy(),path:t.path,kind:"dir"});return;case"unlink":Hr.emit(Zn.deleted,{...sy(),path:t.path});return;case"rename":t.oldPath?Hr.emit(Zn.moved,{...sy(),from:t.oldPath,to:t.path}):Hr.emit(Zn.created,{...sy(),path:t.path,kind:"file"});return}}function zgt(t){for(const e of t)if(e===KR||e==="tree"||e==="stat"||e==="search")return!0;return!1}function jgt(t,e){return t?t.endsWith("/")&&e.startsWith("/")?t+e.slice(1):!t.endsWith("/")&&!e.startsWith("/")?`${t}/${e}`:t+e:e}function Hgt(t,e){if(!e)return t;const r=t.includes("?")?"&":"?";return`${t}${r}workspaceId=${encodeURIComponent(e)}`}const zfe=k.createContext(null),jfe=k.createContext(""),Hfe=k.createContext(null);function yu(){const t=k.useContext(zfe);if(!t)throw new Error("useDataClient must be used within a DataProvider");return t}function gp(){return k.useContext(jfe)}function yp(){return k.useContext(Hfe)}function Vgt({apiBaseUrl:t,authHeaders:e,onAuthError:r,timeout:n,client:i,children:s}){const a=k.useRef(null);a.current||(a.current=new ipt({defaultOptions:{queries:{retry:3,retryDelay:c=>Math.min(1e3*2**c,3e4)}}}));const o=k.useMemo(()=>i??new Lgt({apiBaseUrl:t,authHeaders:e,onAuthError:r,timeout:n}),[i,t,e,r,n]),l=(e==null?void 0:e["x-boring-workspace-id"])??(e==null?void 0:e["X-Boring-Workspace-Id"])??null;return T.jsx(spt,{client:a.current,children:T.jsx(jfe.Provider,{value:t,children:T.jsx(Hfe.Provider,{value:l,children:T.jsxs(zfe.Provider,{value:o,children:[T.jsx(Ugt,{}),s]})})})})}function Ugt(){return Bgt(),Fgt(),null}const qgt=new Map;function Ggt(t){return(t??"").replace(/\/$/,"")}function Wgt(t){return t&&t.length>0?t:"."}function Ygt(t,e,r){return`${Ggt(t)}\0${e??""}\0${Wgt(r)}`}function Zgt(t,e,r){return qgt.get(Ygt(t,e,r))}function QR(t,e){return e instanceof lh&&e.status===404?!1:t<3}function Xgt(t){const e=yu(),r=gp(),n=yp();return BR({queryKey:[r,n,KR,t],queryFn:({signal:i})=>e.getFile(t,i),enabled:t!=null,staleTime:0,retry:QR})}function Vfe(t){const e=yu(),r=gp(),n=yp();return BR({queryKey:[r,n,"tree",t],queryFn:async({signal:i})=>await e.getTree(t,i)??[],enabled:t!=null,staleTime:3e3,initialData:()=>Zgt(r,n,t),retry:QR})}function Kgt(t,e){const r=yu(),n=gp(),i=yp(),[s,a]=k.useState(t),o=k.useRef(void 0);return k.useEffect(()=>(clearTimeout(o.current),o.current=setTimeout(()=>a(t),300),()=>clearTimeout(o.current)),[t]),BR({queryKey:[n,i,"search",s,e],queryFn:({signal:l})=>r.search(s,e,l),enabled:s.length>0,retry:QR})}function Ufe(){const t=yu();return hS({mutationFn:({path:e,content:r,expectedMtimeMs:n})=>t.writeFile(e,r,n!=null?{expectedMtimeMs:n}:void 0),onSuccess:(e,{path:r})=>{Hr.emit(Zn.changed,{...Ng(),path:r})}})}function Qgt(){const t=yu();return hS({mutationFn:({path:e})=>t.createDir(e),onSuccess:(e,{path:r})=>{Hr.emit(Zn.created,{...Ng(),path:r,kind:"dir"})}})}function Jgt(){const t=yu();return hS({mutationFn:({from:e,to:r})=>t.moveFile(e,r),onSuccess:(e,{from:r,to:n})=>{Hr.emit(Zn.moved,{...Ng(),from:r,to:n})}})}function e1t(){const t=yu();return hS({mutationFn:({path:e})=>t.deleteFile(e),onSuccess:(e,{path:r})=>{Hr.emit(Zn.deleted,{...Ng(),path:r})}})}class t1t{constructor(e={}){qr(this,"panels",new Map),qr(this,"registrationOrder",[]),qr(this,"capabilities"),qr(this,"listeners",new Set),qr(this,"snapshotCache",null),qr(this,"subscribe",r=>(this.listeners.add(r),()=>{this.listeners.delete(r)})),qr(this,"getSnapshot",()=>(this.snapshotCache||(this.snapshotCache=this.filteredPanels()),this.snapshotCache)),this.capabilities=new Set(Object.entries(e).filter(([,r])=>r).map(([r])=>r))}register(e,r){const n=typeof r.component=="function"&&r.component.length===0&&/\bimport\s*\(/.test(r.component.toString()),i=this.panels.has(e);this.panels.set(e,{...r,id:e,lazy:r.lazy??n}),i||this.registrationOrder.push(e),this.emit()}unregisterByPluginId(e){let r=!1;for(const[n,i]of this.panels)i.pluginId===e&&(this.panels.delete(n),this.registrationOrder=this.registrationOrder.filter(s=>s!==n),r=!0);r&&this.emit()}get(e){return this.panels.get(e)}has(e){return this.panels.has(e)}list(){return this.filteredPanels()}getComponents(){const e={};for(const r of this.filteredPanels()){let n;r.lazy?n=k.lazy(r.component):n=r.component;const i=r.pluginId??r.id,s=r.id,a=r.lazy;e[r.id]=function(o){const l=k.createElement(n,o);return k.createElement(bS,{pluginId:i,contributionKind:"panel",contributionId:s},a?k.createElement(k.Suspense,{fallback:k.createElement(r1t)},l):l)}}return e}emit(){this.snapshotCache=null;for(const e of[...this.listeners])e()}filteredPanels(){return this.registrationOrder.map(e=>this.panels.get(e)).filter(e=>this.satisfiesCapabilities(e))}satisfiesCapabilities(e){var r;return(r=e.requiresCapabilities)!=null&&r.length?e.requiresCapabilities.every(n=>this.capabilities.has(n)):!0}}function r1t(){return k.createElement("div",{style:{display:"flex",height:"100%",alignItems:"center",justifyContent:"center"},className:"text-sm text-muted-foreground animate-pulse"},"Loading…")}class n1t{constructor(){qr(this,"commands",new Map),qr(this,"listeners",new Set),qr(this,"snapshotCache",null),qr(this,"subscribe",e=>(this.listeners.add(e),()=>{this.listeners.delete(e)})),qr(this,"getSnapshot",()=>(this.snapshotCache||(this.snapshotCache=this.getCommands()),this.snapshotCache))}registerCommand(e){this.commands.set(e.id,e),this.emit()}unregisterByPluginId(e){let r=!1;for(const[n,i]of this.commands)i.pluginId===e&&(this.commands.delete(n),r=!0);r&&this.emit()}unregisterCommand(e){this.commands.delete(e)&&this.emit()}getCommand(e){return this.commands.get(e)}getCommands(){return Array.from(this.commands.values())}getActiveCommands(){return this.getCommands().filter(e=>{if(!e.when)return!0;try{return e.when()}catch{return!1}})}emit(){this.snapshotCache=null;for(const e of[...this.listeners])e()}}const CG={ts:wi,tsx:wi,js:wi,jsx:wi,mjs:wi,cjs:wi,py:wi,rb:wi,go:wi,rs:wi,java:wi,c:wi,cpp:wi,h:wi,cs:wi,swift:wi,kt:wi,sh:wi,bash:wi,zsh:wi,json:rz,jsonl:rz,md:Ra,mdx:Ra,txt:Ra,csv:Ra,tsv:Ra,yaml:Ra,yml:Ra,toml:Ra,ini:Ra,cfg:Ra,conf:Ra,env:Ra,png:Ic,jpg:Ic,jpeg:Ic,gif:Ic,svg:Ic,webp:Ic,ico:Ic,bmp:Ic};function i1t(t){var e;const r=(e=t.split(".").pop())==null?void 0:e.toLowerCase();return r&&r in CG?CG[r]:py}const K0="workspace.open.path";let dD=null;function s1t(t){dD=t}function qfe(){if(!dD)throw new Error("Workspace store not initialized. Wrap your app in WorkspaceProvider.");return dD}function a1t(){return IR(qfe(),t=>t.preferences.theme)}function o1t(){return IR(qfe(),t=>t.hydrationComplete)}function l1t(t){const{api:e}=t,[r,n]=k.useState(e.title??e.id);k.useEffect(()=>{var u;const d=()=>n(e.title??e.id);d();const m=(u=e.onDidTitleChange)==null?void 0:u.call(e,d);return()=>{var p;return(p=m==null?void 0:m.dispose)==null?void 0:p.call(m)}},[e]);const i=r.endsWith(" ●"),s=i?r.slice(0,-2):r,a=i1t(s),[o,l]=k.useState(!1);uD(qa.editorSaveStart,u=>{u.panelId===e.id&&l(!0)}),uD(qa.editorSaveEnd,u=>{u.panelId===e.id&&l(!1)});const c=u=>{u.stopPropagation(),e.close()};return T.jsxs("div",{className:an("group relative flex h-full w-full min-w-0 items-center gap-1.5 pl-2.5 pr-7 select-none","text-[12.5px] leading-none tracking-tight","cursor-pointer transition-colors"),title:i?`${s} (unsaved changes)`:s,children:[o?T.jsx(NJ,{"data-testid":"tab-saving-spinner","aria-label":"Saving",className:"h-3.5 w-3.5 shrink-0 animate-spin text-[color:var(--accent)]",strokeWidth:2}):T.jsx(a,{className:an("h-3.5 w-3.5 shrink-0 text-muted-foreground/70","[.dv-active-tab_&]:text-[color:var(--accent)] [.active-tab_&]:text-[color:var(--accent)]"),strokeWidth:1.5}),T.jsx("span",{className:"min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap",children:s}),i?T.jsx("span",{"aria-hidden":"true",className:an("mr-1 h-1.5 w-1.5 shrink-0 rounded-full bg-foreground/35","[.dv-active-tab_&]:bg-foreground/45 [.active-tab_&]:bg-foreground/45")}):null,T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",className:an("absolute right-1 top-1/2 h-5 w-5 -translate-y-1/2 text-muted-foreground opacity-0","focus-visible:opacity-100 group-hover:opacity-100","[.dv-active-tab_&]:opacity-50 [.active-tab_&]:opacity-50","[.dv-active-tab_&]:hover:opacity-100 [.active-tab_&]:hover:opacity-100"),onClick:c,"aria-label":`Close ${s}`,children:T.jsx(Bm,{className:"h-3 w-3",strokeWidth:2.25})})]})}const c1t=300,u1t=k.createContext(null);function h1t(t,e){var r;return"id"in e?t.id===e.id:((r=t.params)==null?void 0:r[e.param])===e.value}function TG(t,e){const r=Array.isArray(e)?e:[e],n=new Set,i=[];for(const s of t.panels)r.some(a=>h1t(s,a))&&(n.has(s.id)||(n.add(s.id),i.push(s)));return i}function d1t(t){switch(t){case"left":return"left";case"right":return"right";case"bottom":return"below";case"center":default:return"within"}}function f1t(t){function e(){if(!t.current)throw new Error("DockviewShell not initialized");return t.current}return{addPanel(r,n){const i=e(),s=i.groups.find(a=>a.id===r);i.addPanel({id:n.id,component:n.component,title:n.title,params:n.params,position:s?{referenceGroup:s}:void 0})},removePanel(r){const n=e(),i=n.getPanel(r);i&&n.removePanel(i)},activatePanel(r){const n=e().getPanel(r);n&&n.api.setActive()},movePanel(r,n){const i=e(),s=i.getPanel(r);if(!s)return;const a=s.view.contentComponent,o=s.params,l=s.title;i.removePanel(s);const c={id:r,component:a,params:o,title:l};if("groupId"in n){const u=i.groups.find(d=>d.id===n.groupId);i.addPanel({...c,position:u?{referenceGroup:u}:void 0})}else{const u=i.getPanel(n.referencePanelId);i.addPanel({...c,position:u?{referencePanel:u,direction:n.direction}:void 0})}},updatePanelParams(r,n){const i=e().getPanel(r);i&&i.api.updateParameters({...i.params??{},...n})},setPanelTitle(r,n){const i=e().getPanel(r);i&&i.api.setTitle(n)},findPanelsByParam(r,n){return e().panels.filter(i=>{var s;return((s=i.params)==null?void 0:s[r])===n}).map(i=>i.id)},getActivePanel(){var r;return((r=e().activePanel)==null?void 0:r.id)??null},toJSON(){return e().toJSON()}}}function p1t(t){if(!t.constraints)return null;let e=t.constraints.maxWidth;const r=t.constraints.maxWidthViewportRatio;if(typeof r=="number"&&r>0&&typeof window<"u"){const n=Math.floor(window.innerWidth*r);e=typeof e=="number"?Math.min(e,n):n}return{minimumWidth:t.constraints.minWidth,maximumWidth:e,minimumHeight:t.constraints.minHeight,maximumHeight:t.constraints.maxHeight}}function kG(t,e){const r=t.getPanel(e.panel??e.id);if(!(r!=null&&r.group))return;const n=p1t(e);n&&r.group.api.setConstraints(n)}function m1t(t,e,r,n,i,s){const a=t.api;if(s.current=a,r)a.fromJSON(r);else{let u=!1;for(const d of e.groups)if(d.panel){if(!n.has(d.panel)){console.error(`[DockviewShell] Panel "${d.panel}" not found in registry. Available: ${n.list().map(m=>m.id).join(", ")}`);continue}a.addPanel({id:d.panel,component:d.panel,params:d.params,position:u?{direction:d1t(d.position)}:void 0}),u=!0}}for(const u of e.groups){const d=a.getPanel(u.panel??u.id);d!=null&&d.group&&(u.locked&&(d.group.locked="no-drop-target"),u.hideHeader&&(d.group.header.hidden=!0),kG(a,u))}const o=e.groups.filter(u=>{var d;return typeof((d=u.constraints)==null?void 0:d.maxWidthViewportRatio)=="number"});let l;if(o.length>0){const u=()=>{for(const d of o)kG(a,d)};window.addEventListener("resize",u),l=()=>window.removeEventListener("resize",u)}let c;if(i){let u=null;const d=()=>{u&&clearTimeout(u),u=setTimeout(()=>{i(a.toJSON())},c1t)},m=a.onDidLayoutChange(d),p=()=>{u&&(clearTimeout(u),i(a.toJSON()))};window.addEventListener("beforeunload",p),c=()=>{p(),m.dispose(),window.removeEventListener("beforeunload",p),l==null||l()}}else c=()=>{l==null||l()};return c}function g1t({layout:t,persistedLayout:e,onReady:r,onLayoutChange:n,allowedPanels:i,className:s,prefixHeaderActions:a,rightHeaderActions:o,watermarkComponent:l}){const c=Zv(),u=o1t(),d=k.useRef(null),m=k.useRef(null),p=k.useRef(void 0),y=k.useMemo(()=>{const w=c.getComponents();return i?Object.fromEntries(Object.entries(w).filter(([C])=>i.includes(C))):w},[c,i]),b=k.useMemo(()=>f1t(d),[]),v=k.useCallback(w=>{var C;(C=p.current)==null||C.call(p),p.current=m1t(w,t,e,c,n,d),r==null||r(w.api)},[t,e,c,n,r]);k.useEffect(()=>()=>{var w;return(w=p.current)==null?void 0:w.call(p)},[]),k.useEffect(()=>{const w=Hr.on(qa.panelUpdate,({match:S,params:D,title:L})=>{const R=d.current;if(R)for(const O of TG(R,S))D&&O.api.updateParameters({...O.params??{},...D}),L&&O.api.setTitle(L)}),C=Hr.on(qa.panelClose,({match:S})=>{const D=d.current;if(D)for(const L of TG(D,S))D.removePanel(L)});return()=>{w(),C()}},[]);const x=k.useCallback(w=>{if(!u){m.current=w;return}v(w)},[u,v]);return k.useEffect(()=>{u&&m.current&&(v(m.current),m.current=null)},[u,v]),u?T.jsx(u1t.Provider,{value:b,children:T.jsx(Cfe,{className:`dv-shell ${s??""}`,components:y,defaultTabComponent:l1t,prefixHeaderActionsComponent:a,rightHeaderActionsComponent:o,watermarkComponent:l,onReady:x})}):T.jsx(y1t,{})}function y1t(){return T.jsx(AJ,{centered:!0,className:"bg-background",label:"Loading workspace..."})}function b1t(t){return{get panelId(){return t.id},get title(){return t.title??t.id},setTitle(e){t.setTitle(e)},close(){t.close()},focus(){t.setActive()},get isActive(){return t.isActive}}}function Gfe({title:t,icon:e,essential:r,children:n,className:i,panelApi:s}){return k.useMemo(()=>s?b1t(s):null,[s]),T.jsxs("div",{className:an("flex h-full flex-col overflow-hidden",i),children:[T.jsxs("div",{className:"flex h-9 shrink-0 items-center gap-2 border-b border-border bg-muted/50 px-3",children:[e&&T.jsx(e,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),T.jsx("span",{className:"truncate text-sm font-medium",children:t}),T.jsx("div",{className:"flex-1"}),!r&&s&&T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",className:"h-5 w-5 text-muted-foreground",onClick:()=>s.close(),"aria-label":`Close ${t}`,children:T.jsx("svg",{className:"h-3 w-3",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:T.jsx("path",{d:"M18 6 6 18M6 6l12 12"})})})]}),T.jsx("div",{className:"flex-1 overflow-auto",children:n})]})}const v1t=5e3,x1t=["node_modules",".git",".boring-agent","dist","test-results",/^\.tsbuildinfo/,".vite",".turbo",".next",".cache"];function fD(t,e){for(const r of e)if(typeof r=="string"?r===t:r.test(t))return!0;return!1}function _1t(t,e){return e.length===0?t:t==null?void 0:t.filter(r=>!fD(r.name,e))}function Wfe(t){const e=t.trim();if(!e)return e;const r=/[*?\[\]{}]/.test(e)?e:`*${e}*`;return w1t(r)}function w1t(t){let e="",r=!1,n=!1;for(const i of t){if(n){e+=i,n=!1;continue}if(i==="\\"){e+=i,n=!0;continue}if(i==="["&&!r){r=!0,e+=i;continue}if(i==="]"&&r){r=!1,e+=i;continue}if(!r&&/[a-z]/i.test(i)){const s=i.toLowerCase(),a=i.toUpperCase();e+=s===a?i:`[${a}${s}]`;continue}e+=i}return e}const Yfe=()=>M(()=>import("./FileTree-BVfqs3rR-Czof9U4p.js"),__vite__mapDeps([252,253])).then(t=>({default:t.FileTree}));function C1t(){Yfe()}const T1t=k.lazy(Yfe);function Zfe(t,e){const r=[],n=[];for(const i of t)if(i.kind==="dir"){const s=e.get(i.path);r.push({...i,children:s?Zfe(s,e):[]})}else n.push({...i});return r.sort((i,s)=>i.name.localeCompare(s.name)),n.sort((i,s)=>i.name.localeCompare(s.name)),[...r,...n]}function Wd(t){const e=t.lastIndexOf("/");return e>0?t.slice(0,e):"."}function c6(t){return t&&t!==""?t:"."}function u6(t,e){if(!(e!=null&&e.length))return t;const r=new Map;for(const n of t??[])r.set(n.path,n);for(const n of e)r.set(n.path,n);return Array.from(r.values())}function Xfe(t,e,r){if(!e||e.kind==="rename")return t;const n={name:"",path:e.path,kind:e.kind==="create-folder"?"dir":"file",isDraft:!0},i=e.parentDir;return i===r||i==="."||i===""?[n,...t]:t.map(s=>{var a;return s.kind!=="dir"?s:s.path===i?{...s,children:[n,...s.children??[]]}:(a=s.children)!=null&&a.length?{...s,children:Xfe(s.children,e,r)}:s})}async function k1t(t){var e,r;if(typeof navigator<"u"&&(e=navigator.clipboard)!=null&&e.writeText)try{await navigator.clipboard.writeText(t);return}catch{}if(typeof document>"u")throw new Error("Clipboard not available");const n=document.createElement("textarea");n.value=t,n.setAttribute("readonly",""),n.style.position="fixed",n.style.top="-9999px",n.style.left="-9999px",n.style.opacity="0",document.body.appendChild(n);let i=!1;try{n.focus(),n.select(),i=!!((r=document.execCommand)!=null&&r.call(document,"copy"))}finally{document.body.removeChild(n)}if(!i)throw new Error("Clipboard not available")}function SG({rootDir:t=".",searchQuery:e,bridge:r,ignoreNames:n=x1t,className:i}){var s;const a=yu(),{data:o,error:l,isLoading:c}=Vfe(t),[u,d]=k.useState(new Map),m=c6(t),p=k.useMemo(()=>u6(o,u.get(m)),[o,u,m]),y=k.useMemo(()=>_1t(p,n),[p,n]),{mutateAsync:b}=Ufe(),{mutateAsync:v}=Qgt(),{mutateAsync:x}=Jgt(),{mutateAsync:w}=e1t(),[C,S]=k.useState(new Map),D=k.useMemo(()=>{if(u.size===0)return C;const _e=new Map(C);for(const[Me,Ye]of u){if(Me===m)continue;const dt=u6(_e.get(Me),Ye);dt&&_e.set(Me,dt)}return _e},[C,u,m]),L=k.useRef(null),[R,O]=k.useState(400),[U,$]=k.useState(null),[j,K]=k.useState(null),ie=k.useRef(null),[V,H]=k.useState(((s=r==null?void 0:r.getActiveFile)==null?void 0:s.call(r))??null),[F,W]=k.useState(null),[X,ce]=k.useState(null),q=k.useRef(0),Q=((y==null?void 0:y.length)??0)+Array.from(D.values()).reduce((_e,Me)=>_e+Me.length,0)>=v1t&&((e==null?void 0:e.length)??0)>0,{data:ne}=Kgt(Q?Wfe(e??""):"",50);k.useEffect(()=>{if(!U)return;function _e(Me){ie.current&&!ie.current.contains(Me.target)&&$(null)}return document.addEventListener("pointerdown",_e),()=>document.removeEventListener("pointerdown",_e)},[U]),k.useEffect(()=>{var _e;if(H(((_e=r==null?void 0:r.getActiveFile)==null?void 0:_e.call(r))??null),!!(r!=null&&r.select))return r.select(Me=>Me.activeFile,Me=>{H(Me)})},[r]),k.useEffect(()=>{const _e=L.current;if(!_e)return;const Me=new ResizeObserver(([Ye])=>{Ye&&O(Math.floor(Ye.contentRect.height))});return Me.observe(_e),()=>Me.disconnect()},[]);const G=(Q&&ne?ne.map(_e=>({name:_e.split("/").pop()??_e,kind:"file",path:_e})):void 0)??Zfe(y??[],D),ae=Xfe(G,F,t),te=k.useCallback(_e=>{H(_e),r==null||r.openFile(_e,{mode:"edit"})},[r]),oe=k.useCallback(async _e=>{try{const Me=await a.getTree(_e),Ye=n.length===0?Me:Me.filter(dt=>!fD(dt.name,n));S(dt=>new Map(dt).set(_e,Ye))}catch{}},[a,n]),fe=k.useCallback(async(_e,Me)=>{const Ye=Array.from(new Set(_e)).filter($t=>$t&&$t!==t&&$t!==".");if(Ye.length===0)return;const dt=await Promise.all(Ye.map(async $t=>{try{const ar=await a.getTree($t),Ar=n.length===0?ar:ar.filter(br=>!fD(br.name,n));return[$t,Ar]}catch{return null}}));S($t=>{const ar=new Map($t);for(const Ar of dt){if(!Ar)continue;const[br,hr]=Ar;(Me!=null&&Me.force||ar.has(br))&&ar.set(br,hr)}return ar})},[a,t,n]),ke=k.useCallback((_e,Me)=>{d(Ye=>{const dt=c6(_e),$t=new Map(Ye),ar=u6($t.get(dt),[Me])??[Me];return $t.set(dt,ar),$t})},[]),ve=k.useCallback((_e,Me)=>{d(Ye=>{const dt=c6(_e),$t=Ye.get(dt);if(!($t!=null&&$t.length))return Ye;const ar=$t.filter(br=>br.path!==Me),Ar=new Map(Ye);return ar.length>0?Ar.set(dt,ar):Ar.delete(dt),Ar})},[]),[Te,Re]=k.useState(new Set),He=k.useCallback(_e=>{Re(Me=>{const Ye=new Set(Me);return Ye.add(_e),Ye})},[]),Je=k.useCallback(_e=>{Re(Me=>{if(!Me.has(_e))return Me;const Ye=new Set(Me);return Ye.delete(_e),Ye})},[]),ot=k.useCallback((_e,Me)=>{$({node:Me,x:_e.clientX,y:_e.clientY})},[]),er=k.useCallback(_e=>{const Me=_e.target;Me.closest("[role=treeitem]")||Me.closest("[data-path]")||(_e.preventDefault(),$({node:{name:t,kind:"dir",path:t},x:_e.clientX,y:_e.clientY,isBackground:!0}))},[t]),Ur=k.useCallback(async(_e,Me)=>{const Ye=_e.split("/").pop()??_e,dt=Me==="."?t:Me,$t=dt==="."?Ye:`${dt}/${Ye}`;if($t!==_e){He(_e);try{await x({from:_e,to:$t}),await fe([Wd(_e),Wd($t)]),ul.success({title:"Moved",description:`${_e} → ${$t}`})}catch(ar){ul.error({title:"Move failed",description:ar instanceof Error?ar.message:String(ar)})}finally{Je(_e)}}},[x,fe,t,He,Je]);function vn(_e){return()=>{$(null),(async()=>{try{await _e()}catch(Me){ul.error({title:"Action failed",description:Me instanceof Error?Me.message:String(Me)})}})()}}const lt=_e=>{const Me=U==null?void 0:U.node;$(null);const Ye=(Me==null?void 0:Me.kind)==="dir"?Me.path:Me?Wd(Me.path):t,dt=`__draft__:${++q.current}`;W({kind:_e,parentDir:Ye,path:dt})},Wt=()=>lt("create-file"),Cr=()=>lt("create-folder"),kn=()=>{const _e=U==null?void 0:U.node;$(null),_e&&W({kind:"rename",path:_e.path,initialValue:_e.name})},gi=k.useCallback(async(_e,Me)=>{const Ye=F;if(W(null),!Ye)return;const dt=Me.trim();if(!dt)return;const $t=Ye.kind==="rename"?Wd(Ye.path):Ye.parentDir,ar=Ye.kind==="rename"?Ye.path:$t==="."||$t===""?dt:`${$t}/${dt}`,Ar=Ye.kind==="rename"?Ye.path:ar;He(Ar);let br=null;try{if(Ye.kind==="rename"){if(dt===Ye.initialValue)return;const hr=Ye.path.split("/");hr[hr.length-1]=dt;const nr=hr.join("/");await x({from:Ye.path,to:nr}),await fe([Wd(Ye.path)]),ul.success({title:"Renamed",description:`${Ye.path} → ${nr}`})}else{const hr={name:dt,kind:Ye.kind==="create-file"?"file":"dir",path:ar};ke($t,hr),br=ar,Ye.kind==="create-file"?(await b({path:ar,content:""}),Hr.emit(Zn.created,{...Ng(),path:ar,kind:"file"}),ul.success({title:"File created",description:ar})):(await v({path:ar}),ul.success({title:"Folder created",description:ar})),await fe([$t],{force:!0}),ce(ar)}}catch(hr){br&&ve($t,br);const nr=hr instanceof Error?hr.message:String(hr);ul.error({title:Ye.kind==="rename"?"Rename failed":Ye.kind==="create-file"?"Create file failed":"Create folder failed",description:nr})}finally{Je(Ar)}},[F,x,b,v,fe,He,Je,ke,ve]),Xi=k.useCallback(()=>{W(null)},[]),Mr=vn(async()=>{U!=null&&U.node&&(await k1t(U.node.path),ul.success({title:"Path copied",description:U.node.path}))}),cn=k.useCallback(async()=>{if(!j)return;const _e=j;K(null),He(_e.path);try{await w({path:_e.path}),ve(Wd(_e.path),_e.path),await fe([Wd(_e.path)]),ul.success({title:"Deleted",description:_e.path})}catch(Me){ul.error({title:"Delete failed",description:Me instanceof Error?Me.message:String(Me)})}finally{Je(_e.path)}},[j,w,fe,He,Je,ve]),Le=!Q&&((e==null?void 0:e.length)??0)>0?e:void 0;return T.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[l&&T.jsx(Pm,{className:"m-2 rounded-md p-3",title:"Failed to load files",description:l.message}),T.jsx("div",{ref:L,className:"min-h-0 flex-1 overflow-hidden",onContextMenu:er,children:c?T.jsx("div",{className:"space-y-1 p-2","data-testid":"tree-skeleton",children:Array.from({length:8}).map((_e,Me)=>T.jsx(F6e,{className:"h-5",style:{width:`${60+Me*13%30}%`}},Me))}):T.jsx(k.Suspense,{fallback:T.jsxs("div",{className:"flex h-full items-center justify-center gap-2 text-sm text-muted-foreground",children:[T.jsx(tp,{className:"size-3.5"}),T.jsx("span",{children:"Loading..."})]}),children:T.jsx(T1t,{files:ae,selectedPath:V,searchQuery:Le,editing:F?{path:F.path,isDraft:F.kind!=="rename",initialValue:F.kind==="rename"?F.initialValue:void 0}:null,revealPath:X,pendingPaths:Te,onSelect:te,onExpand:oe,onContextMenu:ot,onSubmitEdit:gi,onCancelEdit:Xi,onDragDrop:Ur,height:R,className:an(i)})})}),U&&T.jsxs("div",{ref:ie,role:"menu",className:"fixed z-50 min-w-[10rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",style:{left:U.x,top:U.y},children:[T.jsx($r,{type:"button",role:"menuitem",variant:"ghost",size:"sm",className:"w-full justify-start",onClick:Wt,children:"New file"}),T.jsx($r,{type:"button",role:"menuitem",variant:"ghost",size:"sm",className:"w-full justify-start",onClick:Cr,children:"New folder"}),!U.isBackground&&T.jsxs(T.Fragment,{children:[T.jsx($r,{type:"button",role:"menuitem",variant:"ghost",size:"sm",className:"w-full justify-start",onClick:kn,children:"Rename"}),T.jsx($r,{type:"button",role:"menuitem",variant:"ghost",size:"sm",className:"w-full justify-start text-destructive hover:bg-destructive/10 hover:text-destructive",onClick:()=>{K(U.node),$(null)},children:"Delete"}),T.jsx($r,{type:"button",role:"menuitem",variant:"ghost",size:"sm",className:"w-full justify-start",onClick:Mr,children:"Copy path"})]})]}),T.jsx(K6e,{open:j!==null,onOpenChange:_e=>{_e||K(null)},children:T.jsxs(eAe,{children:[T.jsxs(tAe,{children:[T.jsxs(nAe,{children:["Delete ",j==null?void 0:j.name,"?"]}),T.jsx(iAe,{children:"This action cannot be undone."})]}),T.jsxs(rAe,{children:[T.jsx(aAe,{children:"Cancel"}),T.jsx(sAe,{onClick:cn,children:"Delete"})]})]})})]})}function S1t({params:t,rootDir:e=".",searchQuery:r,panelApi:n,bridge:i,api:s,chromeless:a=!1,className:o}){const l=(t==null?void 0:t.rootDir)??e,c=(t==null?void 0:t.bridge)??i,u=(t==null?void 0:t.chromeless)??a,d=(t==null?void 0:t.searchQuery)??(t==null?void 0:t.query)??r,m=n??s,[p,y]=k.useState(""),[b,v]=k.useState(""),x=k.useRef(void 0);k.useEffect(()=>(clearTimeout(x.current),x.current=setTimeout(()=>v(p),200),()=>clearTimeout(x.current)),[p]);const w=d!==void 0?d||void 0:b||void 0;return u?T.jsx(SG,{rootDir:l,searchQuery:w,bridge:c,className:an("px-1 pt-1 [&_[role=treeitem]]:!indent-0",o)}):T.jsx(Gfe,{title:"Files",panelApi:m,children:T.jsxs("div",{className:"flex h-full flex-col",children:[T.jsx("div",{className:"border-b border-border px-2 py-1.5",children:T.jsx(vv,{placeholder:"Search files...",value:d??p,onChange:C=>y(C.target.value),className:"h-7 text-xs","aria-label":"Search files"})}),T.jsx("div",{className:"min-h-0 flex-1",children:T.jsx(SG,{rootDir:l,searchQuery:w,bridge:c,className:o})})]})})}function E1t(t){return t.split("/").pop()??t}function A1t(){return k.useEffect(()=>{const t=Hr.on(Zn.moved,({from:r,to:n,...i})=>{Hr.emit(qa.panelUpdate,{...i,match:[{id:`file:${r}`},{param:"path",value:r}],params:{path:n},title:E1t(n)})}),e=Hr.on(Zn.deleted,({path:r,...n})=>{Hr.emit(qa.panelClose,{...n,match:[{id:`file:${r}`},{param:"path",value:r}]})});return()=>{t(),e()}},[]),null}const D1t=new Set(["write","edit","unlink","rename","mkdir"]);function L1t(t){if(typeof t!="object"||t===null)return null;const e=t;if(e.type!=="data-file-changed")return null;const r=e.data;if(typeof r!="object"||r===null)return null;const n=r;return typeof n.op!="string"||!D1t.has(n.op)||typeof n.path!="string"||n.path.length===0||typeof n.toolCallId!="string"||n.toolCallId.length===0||n.oldPath!==void 0&&(typeof n.oldPath!="string"||n.oldPath.length===0)?null:n}function I1t(t){const e=L1t(t);if(!e)return;const r=xgt(e.toolCallId);switch(e.op){case"rename":e.oldPath&&Hr.emit(Zn.moved,{...r,from:e.oldPath,to:e.path});return;case"unlink":Hr.emit(Zn.deleted,{...r,path:e.path});return;case"mkdir":Hr.emit(Zn.created,{...r,path:e.path,kind:"dir"});return;case"write":e.existsBefore===!1?Hr.emit(Zn.created,{...r,path:e.path,kind:"file"}):Hr.emit(Zn.changed,{...r,path:e.path});return;case"edit":Hr.emit(Zn.changed,{...r,path:e.path});return}}function R1t(t,e={}){const{skip:r,filesOnly:n=!0}=e;uD(Zn.created,i=>{i.cause==="agent"&&(n&&i.kind!=="file"||r!=null&&r(i.path)||t(i.path))})}function O1t(){return k.useEffect(()=>Hr.on(qa.agentData,({part:t})=>{I1t(t)}),[]),R1t(t=>{xS({kind:"openFile",params:{path:t}})}),null}const N1t=1e3,M1t=3e3;function P1t(t,e){const{adapter:r,panelId:n,onDirtyChange:i,serverMtime:s}=e,[a,o]=k.useState(!1),[l,c]=k.useState(!1),[u,d]=k.useState(null),[m,p]=k.useState(!1),[y,b]=k.useState(!1),v=k.useRef(void 0),x=k.useRef(null),w=k.useRef(0),C=k.useRef(null),S=k.useRef(i);S.current=i;const D=k.useRef(r);D.current=r;const L=k.useCallback(async()=>{const ie=D.current;if(!ie||!t||!ie.isDirty())return;if(x.current)return x.current;const V=(async()=>{var H;c(!0),Hr.emit(qa.editorSaveStart,{panelId:n});try{await ie.save(),w.current=Date.now(),d(Date.now()),o(!1),(H=S.current)==null||H.call(S,t,!1)}catch{}finally{Hr.emit(qa.editorSaveEnd,{panelId:n}),c(!1),x.current=null}})();return x.current=V,V},[t,n]),R=k.useCallback(()=>{clearTimeout(v.current),v.current=setTimeout(L,N1t)},[L]),O=k.useCallback(()=>{var ie;t&&(o(!0),(ie=S.current)==null||ie.call(S,t,!0),R())},[t,R]),U=k.useCallback(async()=>{var ie;if(clearTimeout(v.current),x.current)return x.current;if((ie=D.current)!=null&&ie.isDirty())return L()},[L]),$=k.useCallback(()=>p(!1),[]),j=k.useCallback(()=>b(!1),[]),K=k.useCallback(ie=>{C.current=ie,b(!1)},[]);return k.useEffect(()=>{if(!(s==null||!t)){if(C.current===null){C.current=s;return}if(s!==C.current){if(Date.now()-w.current<M1t){C.current=s;return}C.current=s,a?b(!0):p(!0)}}},[s,t,a]),k.useEffect(()=>()=>clearTimeout(v.current),[]),{isDirty:a,isSaving:l,lastSavedAt:u,markDirty:O,flushSave:U,shouldSync:m,ackSync:$,externalChangeWhileDirty:y,ackExternalChange:j,notifySaved:K}}function B1t(t,e){const r=t.metaKey||t.ctrlKey;return e.mod&&!r||!e.mod&&r||e.shift&&!t.shiftKey||!e.shift&&t.shiftKey?!1:t.key.toLowerCase()===e.key.toLowerCase()}function F1t(t){return t instanceof HTMLElement?t.isContentEditable||t.closest("[contenteditable='true'], [contenteditable=''], [contenteditable='plaintext-only']")||t.closest("[role='textbox'], [role='searchbox'], [role='combobox']")?!0:!!t.closest("input, textarea, select"):!1}function JR({shortcuts:t,enabled:e=!0}){const r=k.useRef(t);r.current=t,k.useEffect(()=>{if(!e)return;function n(i){const s=F1t(i.target);for(const a of r.current)if(!(s&&!a.allowInEditable)&&B1t(i,a)){i.preventDefault(),i.stopPropagation(),a.handler();return}}return document.addEventListener("keydown",n,!0),()=>document.removeEventListener("keydown",n,!0)},[e])}function Kfe(t){const{path:e,panelId:r=e,initialContent:n=null}=t,{data:i,isLoading:s,error:a}=Xgt(e),{mutateAsync:o}=Ufe(),[l,c]=k.useState(n),u=k.useRef(""),d=k.useRef(!1),m=k.useRef(null),p=k.useRef(null),y=k.useRef(null),[b,v]=k.useState(null);k.useEffect(()=>{m.current!==e&&(c(n),u.current=n??"",d.current=!1,p.current=null,v(null),m.current=e)},[e,n]),k.useEffect(()=>{(i==null?void 0:i.content)!=null&&l===null&&(c(i.content),u.current=i.content,p.current=i.mtimeMs??null)},[i,l]);const x=e&&l!=null?{isDirty:()=>d.current,save:async()=>{var j;try{const K=await o({path:e,content:u.current,expectedMtimeMs:p.current??void 0});typeof K.mtimeMs=="number"&&(p.current=K.mtimeMs,(j=y.current)==null||j.call(y,K.mtimeMs)),d.current=!1,v(null)}catch(K){throw K instanceof Zb&&v(K),K}},getContent:()=>u.current}:null,w=P1t(e,{adapter:x,panelId:r,serverMtime:(i==null?void 0:i.mtimeMs)??null});y.current=w.notifySaved,k.useEffect(()=>{if(!(!w.shouldSync||(i==null?void 0:i.content)==null)){if(d.current){w.ackSync();return}c(i.content),u.current=i.content,p.current=i.mtimeMs??null,d.current=!1,w.ackSync()}},[w.shouldSync,w,i,c]),k.useEffect(()=>{!w.externalChangeWhileDirty||(i==null?void 0:i.mtimeMs)==null||(v(new Zb(e,i.mtimeMs,p.current)),w.ackExternalChange())},[w.externalChangeWhileDirty,w,i,e]);const C=e?e.split("/").pop()??e:"",[S,D]=k.useState("");k.useEffect(()=>{const j=C?w.isDirty?`${C} ●`:C:"";D(j)},[C,w.isDirty,r]);const L=k.useCallback(j=>{c(j),u.current=j,d.current=!0,w.markDirty()},[c,w]),R=k.useCallback(async()=>{i&&(c(i.content),u.current=i.content,p.current=i.mtimeMs??null,d.current=!1,v(null))},[i,c]),O=k.useCallback(async()=>{try{const j=l??u.current,K=await o({path:e,content:j});typeof K.mtimeMs=="number"&&(p.current=K.mtimeMs),d.current=!1,v(null)}catch{}},[e,o,l]),U=k.useCallback(async()=>{!x||!d.current||await x.save()},[x]),$=k.useCallback(async()=>{await w.flushSave()},[w]);return{isLoading:s,error:a,content:l,isDirty:w.isDirty,conflict:b,onReloadFromServer:R,onOverwrite:O,setContent:L,save:U,flushSave:$,fileName:C,tabTitle:S}}function $1t({conflict:t,onReload:e,onOverwrite:r}){return T.jsx(SJ,{role:"alert",tone:"accent",className:"rounded-none border-x-0 border-t-0",description:T.jsx(T.Fragment,{children:"This file has been modified outside the editor. Your unsaved changes will be lost if you reload, or will overwrite the latest version on disk if you save."}),actions:T.jsxs(T.Fragment,{children:[T.jsx($r,{type:"button",variant:"outline",size:"xs",onClick:()=>void e(),children:"Reload"}),T.jsx($r,{type:"button",variant:"destructive",size:"xs",onClick:()=>void r(),children:"Overwrite"}),T.jsx("span",{className:"sr-only",children:t.path})]})})}function Qfe({path:t,content:e,isLoading:r,error:n,conflict:i,onChange:s,onReload:a,onOverwrite:o,editorComponent:l,editorProps:c={},loadingFallback:u,errorMessage:d,className:m}){if(!t)return T.jsx("div",{className:"flex h-full items-center justify-center p-6",children:T.jsx(z9,{className:"min-h-0 border-0",title:"No file selected",description:"Choose a file from the file tree to open an editor."})});if(n)return T.jsx("div",{className:"flex h-full items-center justify-center p-6",children:T.jsx(Pm,{title:"Failed to load file",description:d??n.message})});const p=u??T.jsxs("div",{className:"flex h-full items-center justify-center gap-2 text-sm text-muted-foreground",children:[T.jsx(tp,{className:"size-3.5"}),T.jsx("span",{children:"Loading file..."})]});return T.jsxs("div",{className:`flex h-full min-h-0 flex-col ${m??""}`,children:[i&&T.jsx($1t,{conflict:i,onReload:a,onOverwrite:o}),T.jsx(k.Suspense,{fallback:p,children:r||e===null?p:T.jsx(l,{content:e,onChange:s,className:c.className,...c})})]})}const z1t=k.lazy(()=>M(()=>import("./CodeEditor-DQqOn4xz-DuFpBvbb.js"),__vite__mapDeps([254,255])).then(t=>t.a).then(t=>({default:t.CodeEditor})));function j1t(t){var e;switch((e=t.split(".").pop())==null?void 0:e.toLowerCase()){case"js":case"jsx":return"javascript";case"ts":case"tsx":return"typescript";case"py":return"python";case"json":return"json";case"yaml":case"yml":return"yaml";case"md":case"markdown":return"markdown";case"sql":return"sql";default:return"typescript"}}function EG({params:t,api:e,className:r}){const n=typeof(t==null?void 0:t.path)=="string"?t.path:"",{content:i,isLoading:s,error:a,conflict:o,setContent:l,onReloadFromServer:c,onOverwrite:u,tabTitle:d}=Kfe({path:n,panelId:e==null?void 0:e.id});e&&d&&e.setTitle(d);const m=j1t(n);return T.jsx(Qfe,{path:n,content:i,isLoading:s,error:a,conflict:o,onChange:l,onReload:c,onOverwrite:u,editorComponent:z1t,editorProps:{language:m,wordWrap:!0,className:r}})}const H1t=k.lazy(()=>M(()=>import("./MarkdownEditor-CcCDF65H-D2GfBGsV.js"),__vite__mapDeps([256,253,255])).then(t=>({default:t.MarkdownEditor})));function V1t({params:t,api:e,className:r}){const n=typeof(t==null?void 0:t.path)=="string"?t.path:"",{content:i,isLoading:s,error:a,conflict:o,setContent:l,onReloadFromServer:c,onOverwrite:u,tabTitle:d}=Kfe({path:n,panelId:e==null?void 0:e.id});return e&&d&&e.setTitle(d),T.jsx(Qfe,{path:n,content:i,isLoading:s,error:a,conflict:o,onChange:l,onReload:c,onOverwrite:u,editorComponent:H1t,editorProps:{className:r,documentPath:n}})}function U1t(t,e){return`${t.replace(/\/$/,"")}${e}`}function w_(t){return t.split("/").pop()??t}function q1t({path:t,kind:e,className:r}){const n=gp(),i=yp(),[s,a]=k.useState(null),[o,l]=k.useState(null),[c,u]=k.useState(!0),d=k.useMemo(()=>U1t(n,`/api/v1/files/raw?path=${encodeURIComponent(t)}`),[n,t]);return k.useEffect(()=>{const m=new AbortController;let p=null;u(!0),l(null),a(null);const y={};return i&&(y["x-boring-workspace-id"]=i),fetch(d,{credentials:"include",headers:y,signal:m.signal}).then(async b=>{if(!b.ok)throw new Error(`HTTP ${b.status}`);const v=await b.blob();p=URL.createObjectURL(v),a(p)}).catch(b=>{m.signal.aborted||l(b instanceof Error?b.message:"Failed to load preview")}).finally(()=>{m.signal.aborted||u(!1)}),()=>{m.abort(),p&&URL.revokeObjectURL(p)}},[d,i]),t?c?T.jsxs("div",{className:"flex h-full items-center justify-center gap-2 text-sm text-muted-foreground",children:[T.jsx(tp,{className:"size-3.5"}),T.jsx("span",{children:"Loading preview..."})]}):o||!s?T.jsx("div",{className:"flex h-full items-center justify-center p-6",children:T.jsx(Pm,{title:"Failed to load preview",description:o??"Preview unavailable."})}):T.jsxs("div",{className:an("flex h-full min-h-0 flex-col bg-background",r),children:[T.jsxs("div",{className:"flex shrink-0 items-center justify-between gap-3 border-b border-border/60 px-3 py-2",children:[T.jsx("div",{className:"min-w-0 truncate text-xs font-medium text-muted-foreground",title:t,children:w_(t)}),T.jsx("a",{href:s,download:w_(t),className:"rounded-md px-2 py-1 text-xs text-muted-foreground hover:bg-muted hover:text-foreground",children:"Download"})]}),T.jsx("div",{className:"flex min-h-0 flex-1 items-center justify-center overflow-auto p-4",children:e==="image"?T.jsx("img",{src:s,alt:w_(t),className:"max-h-full max-w-full rounded-md object-contain shadow-sm"}):T.jsx("iframe",{src:s,title:w_(t),className:"h-full min-h-[480px] w-full rounded-md border border-border bg-background"})})]}):T.jsx("div",{className:"flex h-full items-center justify-center p-6",children:T.jsx(Pm,{title:"No file selected",description:"Choose an image or PDF from the file tree."})})}function G1t(t,e){return e||(t.toLowerCase().endsWith(".pdf")?"pdf":"image")}function AG({params:t,className:e}){const r=(t==null?void 0:t.path)??"";return T.jsx(q1t,{path:r,kind:G1t(r,t==null?void 0:t.kind),className:e})}function W1t(t,e){return`${t.replace(/\/$/,"")}${e}`}function DG(t){return t.split("/").pop()??t}function Y1t(t){const e=t.replace(/\\/g,"/"),r=e.lastIndexOf("/");return r===-1?"":e.slice(0,r)}function Jfe(t){const e=t.search(/[?#]/);return e===-1?{pathname:t,suffix:""}:{pathname:t.slice(0,e),suffix:t.slice(e)}}function Z1t(t){return/^[a-z][a-z0-9+.-]*:/i.test(t)||t.startsWith("//")||t.startsWith("#")||t.startsWith("/api/")}function epe(t,e){const r=e.trim();if(!r||Z1t(r))return null;const{pathname:n}=Jfe(r);if(!n)return null;const i=n.startsWith("/")?n.split("/"):[...Y1t(t).split("/"),...n.split("/")],s=[];for(const a of i)if(!(!a||a===".")){if(a===".."){if(s.length===0)return null;s.pop();continue}s.push(a)}return s.join("/")}function eO(t,e){return W1t(t,`/api/v1/files/raw?path=${encodeURIComponent(e)}`)}function Xb(t,e,r){const n=epe(e,r);if(!n)return r;const{suffix:i}=Jfe(r.trim()),s=i.indexOf("#"),a=s===-1?"":i.slice(s);return`${eO(t,n)}${a}`}function h6(t,e,r){return t.replace(/url\(\s*(["']?)([^"')]+)\1\s*\)/gi,(n,i,s)=>`url(${i}${Xb(r,e,s)}${i})`).replace(/@import\s+(url\(\s*)?(["'])([^"']+)\2\s*\)?/gi,(n,i,s,a)=>{const o=Xb(r,e,a);return i?`@import ${i}${s}${o}${s})`:n.replace(`${s}${a}${s}`,`${s}${o}${s}`)})}function X1t(t,e,r){return t.split(",").map(n=>{const i=n.trim(),[s,...a]=i.split(/\s+/);return s?[Xb(r,e,s),...a].join(" "):n}).join(", ")}async function tpe(t,e,r){const n=await fetch(t,{credentials:"include",headers:e,signal:r});if(!n.ok)throw new Error(`HTTP ${n.status}`);return n.text()}async function K1t(t){const{html:e,path:r,apiBaseUrl:n,headers:i,signal:s}=t,a=new DOMParser().parseFromString(e,"text/html");await Promise.all(Array.from(a.querySelectorAll('link[rel~="stylesheet"][href]')).map(async l=>{const c=l.getAttribute("href");if(!c)return;const u=epe(r,c);if(u)try{const d=await tpe(eO(n,u),i,s),m=a.createElement("style");m.setAttribute("data-boring-html-viewer-href",c),m.textContent=h6(d,u,n),l.replaceWith(m)}catch{l.setAttribute("href",Xb(n,r,c))}}));for(const l of Array.from(a.querySelectorAll("style")))l.hasAttribute("data-boring-html-viewer-href")||(l.textContent=h6(l.textContent??"",r,n));for(const l of Array.from(a.querySelectorAll("[style]"))){const c=l.getAttribute("style");c&&l.setAttribute("style",h6(c,r,n))}const o=[["img","src"],["source","src"],["video","src"],["audio","src"],["track","src"],["iframe","src"],["script","src"],["object","data"],["embed","src"],["link","href"]];for(const[l,c]of o)for(const u of Array.from(a.querySelectorAll(`${l}[${c}]`))){const d=u.getAttribute(c);d&&u.setAttribute(c,Xb(n,r,d))}for(const l of Array.from(a.querySelectorAll("[srcset]"))){const c=l.getAttribute("srcset");c&&l.setAttribute("srcset",X1t(c,r,n))}return`<!doctype html>
|
|
1314
|
-
${a.documentElement.outerHTML}`}function Q1t({path:t,className:e}){const r=gp(),n=yp(),[i,s]=k.useState(null),[a,o]=k.useState(null),[l,c]=k.useState(!0),u=k.useMemo(()=>eO(r,t),[r,t]);return k.useEffect(()=>{const d=new AbortController;c(!0),o(null),s(null);const m={};return n&&(m["x-boring-workspace-id"]=n),tpe(u,m,d.signal).then(async p=>{s(await K1t({html:p,path:t,apiBaseUrl:r,headers:m,signal:d.signal}))}).catch(p=>{d.signal.aborted||o(p instanceof Error?p.message:"Failed to load HTML preview")}).finally(()=>{d.signal.aborted||c(!1)}),()=>d.abort()},[r,t,u,n]),t?l?T.jsxs("div",{className:"flex h-full items-center justify-center gap-2 text-sm text-muted-foreground",children:[T.jsx(tp,{className:"size-3.5"}),T.jsx("span",{children:"Loading HTML preview..."})]}):a||i===null?T.jsx("div",{className:"flex h-full items-center justify-center p-6",children:T.jsx(Pm,{title:"Failed to load HTML preview",description:a??"Preview unavailable."})}):T.jsxs("div",{className:an("flex h-full min-h-0 flex-col bg-background",e),children:[T.jsxs("div",{className:"flex shrink-0 items-center justify-between gap-3 border-b border-border/60 px-3 py-2",children:[T.jsx("div",{className:"min-w-0 truncate text-xs font-medium text-muted-foreground",title:t,children:DG(t)}),T.jsx("a",{href:u,target:"_blank",rel:"noreferrer",className:"rounded-md px-2 py-1 text-xs text-muted-foreground hover:bg-muted hover:text-foreground",children:"Open raw"})]}),T.jsx("iframe",{srcDoc:i,title:DG(t),sandbox:"allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox",className:"min-h-0 flex-1 border-0 bg-white"})]}):T.jsx("div",{className:"flex h-full items-center justify-center p-6",children:T.jsx(Pm,{title:"No file selected",description:"Choose an HTML file from the file tree."})})}function J1t({params:t,className:e}){return T.jsx(Q1t,{path:(t==null?void 0:t.path)??"",className:e})}function eyt({params:t}){const{path:e}=t,r=e.includes(".")?e.split(".").pop():void 0;return T.jsx("div",{className:"flex h-full items-center justify-center p-8",children:T.jsx(z9,{className:"border-0",title:"No editor available",description:r?`Install or enable a plugin that handles *.${r} files.`:"Install or enable a plugin that handles this file type.",children:T.jsx(Qd,{children:e})})})}const tyt={id:$fe,title:"Unsupported file",component:eyt,placement:"center",source:"builtin"},LG=[{component:Ofe,patterns:["**/*.ts","**/*.tsx","**/*.js","**/*.jsx","**/*.py","**/*.rs","**/*.go","**/*.json","**/*.yml","**/*.yaml","**/*.toml","**/*.css","**/*.svg","**/*.sh","**/*.sql","**/*.graphql"]},{component:Nfe,patterns:["**/*.csv","**/*.tsv","**/*.data"]},{component:Mfe,patterns:["**/*.md","**/*.mdx"]},{component:Pfe,patterns:["**/*.avif","**/*.gif","**/*.jpeg","**/*.jpg","**/*.png","**/*.svg","**/*.webp"]},{component:Bfe,patterns:["**/*.pdf"]},{component:Ffe,patterns:["**/*.html","**/*.htm"]},{component:$fe,fallback:!0}];function ryt(t){const e=t.split("/").filter(Boolean).length,r=t.replace(/[*?!]/g,"").length;return e*10+r}function nyt(t){let e="^";for(let r=0;r<t.length;r++){const n=t[r],i=t[r+1];if(n==="*"&&i==="*"){t[r+2]==="/"?(e+="(?:.*/)?",r+=2):(e+=".*",r+=1);continue}if(n==="*"){e+="[^/]*";continue}if(n==="?"){e+="[^/]";continue}if(/[$()+,.=[\]^{|}\\]/.test(n)){e+=`\\${n}`;continue}e+=n}return new RegExp(`${e}$`)}function iyt(t,e){return nyt(e).test(t.replace(/\\/g,"/"))}function syt(t){return t.split("/").pop()??t}function ayt(t){let e,r=-1;for(const n of LG)for(const i of n.patterns??[]){if(!iyt(t,i))continue;const s=ryt(i);s>=r&&(e=n,r=s)}return e??LG.find(n=>n.fallback)}const oyt={id:Pgt,source:"builtin",resolve(t){if(t.kind!==K0)return;const e=t.target,r=ayt(e);if(r)return{id:`file:${e}`,component:r.component,title:syt(e),params:{path:e},score:r.fallback?-1:0}}};function lyt(t){const e=t.lastIndexOf("/");return{id:t,title:e>=0?t.slice(e+1):t,subtitle:e>=0?t.slice(0,e+1):void 0}}function IG(){return{items:[],total:0,hasMore:!1}}function cyt({client:t,onSelect:e}){return{id:hw,label:"Files",adapter:{async search({query:r,limit:n,signal:i}){const s=r.trim();if(!s||i!=null&&i.aborted)return IG();const a=await t.search(Wfe(s),n,i);return i!=null&&i.aborted?IG():{items:a.map(lyt),total:a.length,hasMore:!1}}},onSelect:r=>e==null?void 0:e(r.id,r)}}function uyt({apiBaseUrl:t,authHeaders:e,onAuthError:r,apiTimeout:n,children:i}){return k.createElement(Vgt,{apiBaseUrl:t,authHeaders:e,onAuthError:r,timeout:n,children:i})}function hyt(){return k.useEffect(()=>{C1t()},[]),Vfe("."),null}const dyt=[{type:"provider",id:"filesystem-data",component:uyt},{type:"binding",id:"filesystem-tree-preload",component:hyt},{type:"left-tab",id:Rfe,title:"Files",component:S1t,source:"builtin",icon:qw},{type:"panel",panel:tyt},{type:"panel",panel:{id:Ofe,title:"Code",component:EG,placement:"center",source:"builtin"}},{type:"panel",panel:{id:Nfe,title:"CSV",component:EG,placement:"center",source:"builtin"}},{type:"panel",panel:{id:Mfe,title:"Markdown",component:V1t,placement:"center",source:"builtin"}},{type:"panel",panel:{id:Pfe,title:"Image",component:AG,placement:"center",source:"builtin"}},{type:"panel",panel:{id:Bfe,title:"PDF",component:AG,placement:"center",source:"builtin"}},{type:"panel",panel:{id:Ffe,title:"HTML",component:J1t,placement:"center",source:"builtin"}},{type:"surface-resolver",resolver:oyt}];function fyt(){const t=yu(),e=ZR();return k.useEffect(()=>{const r=e.get(hw);if(r&&r.pluginId!==uw)return;const n=cyt({client:t,onSelect:i=>{xS({kind:"openFile",params:{path:i}})}});return e.register(n,uw),()=>{var i;((i=e.get(hw))==null?void 0:i.pluginId)===uw&&e.unregister(hw)}},[e,t]),null}function pyt(){return WR({id:uw,label:"Filesystem",outputs:dyt,bindings:[fyt,A1t,O1t]})}const RG=pyt(),myt=Lh().max(64).regex(/^[a-zA-Z0-9_-]+$/),dw=Lh().max(1024),gyt=F0().nonnegative(),yyt=ko({collapsed:lve(),width:F0().int().positive()}),byt=AD(myt,gyt),vyt=ko({root:cY(),width:F0().nonnegative().optional(),height:F0().nonnegative().optional(),orientation:F0().optional()}).passthrough(),xyt=ko({id:dw,contentComponent:dw.optional(),title:dw.optional()}).passthrough(),_yt=ko({grid:vyt,panels:AD(dw,xyt)}).passthrough().nullable(),wyt=ko({layout:_yt,sidebar:yyt,panelSizes:byt}),Cyt=ko({theme:DD(["light","dark"])});function Tyt(t){const e=wyt.safeParse(t);return e.success?e.data:(console.error("Layout validation failed:",e.error.issues),null)}function kyt(t){const e=Cyt.safeParse(t);return e.success?e.data:(console.error("Preferences validation failed:",e.error.issues),null)}const OG=1e5,NG="2.0";let MG=!1,mT=null;function PG(t,e){if(!MG)try{localStorage.setItem(t,e)}catch(r){if(r instanceof DOMException&&(r.name==="QuotaExceededError"||r.code===22)){localStorage.removeItem(t);try{localStorage.setItem(t,e)}catch{MG=!0,console.error("localStorage quota exceeded. Persistence disabled for this session."),mT==null||mT()}}}}function Syt(t){try{const e=localStorage.getItem(t);if(!e)return{theme:"light"};const r=JSON.parse(e),n=kyt(r==null?void 0:r.state);return n?{theme:n.theme}:{theme:"light"}}catch{return{theme:"light"}}}function Eyt(t={}){const e=t.storageKey??(t.workspaceId?`boring-ui-v2:layout:${t.workspaceId}`:"boring-ui-v2:layout"),r="boring-ui-v2:preferences",n=t.persistenceEnabled===!1,i=n?{theme:"light"}:Syt(r),s=Lft()(Oft((o,l)=>({hydrationComplete:!1,layout:null,sidebar:{collapsed:!1,width:260},panelSizes:{},preferences:i,panels:[],activePanel:null,activeFile:null,visibleFiles:[],dirtyFiles:{},notifications:[],setHydrationComplete:c=>o({hydrationComplete:c}),setLayout:c=>o({layout:c}),setSidebar:c=>o({sidebar:{...l().sidebar,...c}}),setPanelSize:(c,u)=>o({panelSizes:{...l().panelSizes,[c]:u}}),setTheme:c=>{o({preferences:{theme:c}}),n||PG(r,JSON.stringify({state:{theme:c},version:0}))},openPanel:c=>o(u=>({panels:u.panels.some(d=>d.id===c.id)?u.panels:[...u.panels,c],activePanel:c.id})),closePanel:c=>o(u=>({panels:u.panels.filter(d=>d.id!==c),activePanel:u.activePanel===c?null:u.activePanel})),activatePanel:c=>o({activePanel:c}),openFile:(c,u)=>o(d=>({activeFile:c,visibleFiles:d.visibleFiles.includes(c)?d.visibleFiles:[...d.visibleFiles,c],activePanel:u??d.activePanel})),markDirty:(c,u)=>o(d=>({dirtyFiles:{...d.dirtyFiles,[c]:{panelId:u,savedAt:null}}})),markClean:c=>o(u=>{const{[c]:d,...m}=u.dirtyFiles;return{dirtyFiles:m}}),showNotification:c=>o(u=>({notifications:[...u.notifications,{...c,id:crypto.randomUUID(),timestamp:Date.now()}]})),dismissNotification:c=>o(u=>({notifications:u.notifications.filter(d=>d.id!==c)})),navigateToLine:(c,u)=>o({activeFile:c}),resetLayout:()=>{localStorage.removeItem(e),o({layout:null,sidebar:{collapsed:!1,width:260},panelSizes:{}})}}),{name:e,partialize:o=>({layout:o.layout,sidebar:o.sidebar,panelSizes:o.panelSizes}),onRehydrateStorage:()=>o=>{o==null||o.setHydrationComplete(!0)},storage:n?{getItem:()=>null,setItem:()=>{},removeItem:()=>{}}:{getItem:o=>{try{const l=localStorage.getItem(o);if(!l)return null;const c=JSON.parse(l);if((c==null?void 0:c.version)!==void 0&&String(c.version)!==NG)return t.onLayoutVersionMismatch?t.onLayoutVersionMismatch():localStorage.removeItem(o),null;const u=Tyt(c==null?void 0:c.state);return u?{...c,state:u}:(console.error("Layout restored with defaults"),null)}catch{return console.error("Layout restored with defaults"),null}},setItem:(o,l)=>{const c={...l,version:NG},u=JSON.stringify(c);u.length>OG&&console.warn(`Workspace state serialized to ${u.length} bytes (budget: <${OG})`),PG(o,u)},removeItem:o=>{localStorage.removeItem(o)}}}));mT=()=>{s.getState().showNotification({message:"Storage full — layout changes won't be saved this session.",type:"warning"})};let a=null;return typeof window<"u"&&(a=o=>{o.key===e&&console.log("Layout key changed in another tab (not auto-applied)")},window.addEventListener("storage",a)),Object.assign(s,{cleanup:()=>{a&&typeof window<"u"&&(window.removeEventListener("storage",a),a=null),mT=null}})}function Ayt(t){return(t==null?void 0:t["x-boring-workspace-id"])??(t==null?void 0:t["X-Boring-Workspace-Id"])??null}function Dyt(t){if(!t)return;const e=t.replace(/\/$/,""),r="/api/v1/ui";return e.endsWith(r)?e.slice(0,-r.length)||void 0:e}function Lyt(t){const e=lbt(),{getSurface:r,isWorkbenchOpen:n,openWorkbench:i,bridgeEndpoint:s,...a}=t,o=k.useCallback(u=>{var d;r&&n&&i&&vS({kind:"openFile",params:{path:u}},{surface:r,isWorkbenchOpen:n,openWorkbench:i}),(d=t.onOpenArtifact)==null||d.call(t,u)},[r,n,i,t.onOpenArtifact]),l=Ayt(a.requestHeaders);k.useEffect(()=>{if(!(s===null||!r||!n||!i))return kgt({endpoint:Dyt(s),query:l?{workspaceId:l}:void 0,ctx:{surface:r,isWorkbenchOpen:n,openWorkbench:i}})},[s,r,n,i,l]);const c=k.useCallback(u=>{var d;_gt(u),(d=t.onData)==null||d.call(t,u)},[t.onData]);return T.jsx(e,{chrome:!1,...a,onOpenArtifact:o,onData:c})}function Iyt({params:t}){if(!t||typeof t.sessionId!="string"||t.sessionId.length===0)throw new Error("chat panel requires params.sessionId");return k.createElement(Lyt,{key:t.sessionId,...t,sessionId:t.sessionId})}const Ryt={id:"chat",title:"Chat",component:Iyt,placement:"left",source:"builtin"},BG=1440*60*1e3;function fw(t){if(t==null)return null;const e=typeof t=="number"?new Date(t):new Date(t);return Number.isNaN(e.getTime())?null:e}function FG(t){const e=new Date(t);return e.setHours(0,0,0,0),e.getTime()}function Oyt(t){const e=FG(new Date),r=e-BG,n=e-7*BG,i=[],s=[],a=[],o=[],l=[];for(const d of t){const m=fw(d.updatedAt);if(!m){l.push(d);continue}const p=FG(m);p>=e?i.push(d):p>=r?s.push(d):p>=n?a.push(d):o.push(d)}const c=(d,m)=>{var p,y;const b=((p=fw(d.updatedAt))==null?void 0:p.getTime())??0;return(((y=fw(m.updatedAt))==null?void 0:y.getTime())??0)-b},u=[];return i.length&&u.push({key:"today",label:"Today",items:i.sort(c)}),s.length&&u.push({key:"yesterday",label:"Yesterday",items:s.sort(c)}),a.length&&u.push({key:"week",label:"This week",items:a.sort(c)}),o.length&&u.push({key:"earlier",label:"Earlier",items:o.sort(c)}),l.length&&u.push({key:"undated",label:"Other",items:l}),u}function Nyt(t){const e=fw(t);if(!e)return"";const r=Date.now()-e.getTime();if(r<6e4)return"now";const n=Math.floor(r/6e4);if(n<60)return`${n}m`;const i=Math.floor(n/60);if(i<24)return`${i}h`;const s=Math.floor(i/24);if(s<7)return`${s}d`;const a=Math.floor(s/7);if(a<5)return`${a}w`;const o=Math.floor(s/30);return o<12?`${o}mo`:`${Math.floor(s/365)}y`}function Myt({sessions:t,activeId:e,onSwitch:r,onCreate:n,onDelete:i,onClose:s,className:a}){const o=k.useMemo(()=>Oyt(t),[t]);return T.jsxs("div",{"data-boring-workspace-part":"session-list",className:an("flex h-full min-h-0 flex-col bg-background",a),role:"navigation","aria-label":"Session history",children:[T.jsxs("div",{className:"flex items-center justify-between border-b border-[color:oklch(from_var(--border)_l_c_h/0.25)] px-3",style:{height:44},children:[T.jsx("span",{className:"text-[10.5px] font-medium uppercase tracking-[0.12em] text-muted-foreground/70",children:"Sessions"}),T.jsxs("div",{className:"flex items-center gap-0.5",children:[n&&T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",onClick:n,"aria-label":"New session",title:"New chat",children:T.jsx(PJ,{className:"h-3.5 w-3.5",strokeWidth:1.75})}),s&&T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",onClick:s,"aria-label":"Close sessions",title:"Close sessions (⌘1)",children:T.jsx(RJ,{className:"h-4 w-4",strokeWidth:1.75})})]})]}),T.jsxs("div",{className:"flex-1 overflow-y-auto py-2",children:[t.length===0&&T.jsxs("div",{className:"px-3 py-8 text-center text-[13px] text-muted-foreground",children:["No sessions yet.",T.jsx("br",{}),"Start a new chat to begin."]}),o.map((l,c)=>T.jsxs("section",{className:an(c>0&&"mt-2"),children:[T.jsx("div",{className:"px-4 pb-1 pt-2 text-[10.5px] font-medium uppercase tracking-[0.14em] text-muted-foreground/70",children:l.label}),T.jsx("ul",{role:"list",className:"flex flex-col",children:l.items.map(u=>T.jsx(Pyt,{session:u,active:u.id===e,onSwitch:r,onDelete:i},u.id))})]},l.key))]})]})}function Pyt({session:t,active:e,onSwitch:r,onDelete:n}){const i=Nyt(t.updatedAt);return T.jsxs("li",{role:"listitem","data-boring-workspace-part":"session-row","data-boring-state":e?"selected":void 0,className:an("group relative mx-2 flex items-center gap-2 rounded-md px-2 py-1.5 text-[13px] transition-colors duration-150 ease-[cubic-bezier(0.22,1,0.36,1)]","cursor-pointer hover:bg-foreground/[0.04]",e&&"bg-foreground/[0.06] text-foreground"),onClick:()=>r==null?void 0:r(t.id),children:[T.jsxs("span",{className:"min-w-0 flex-1 truncate leading-5",title:t.title,children:[T.jsx("span",{className:an(e?"font-medium text-foreground":"text-foreground/90"),children:t.title||"Untitled"}),i&&T.jsxs("span",{className:"ml-1.5 text-muted-foreground/70 tabular-nums",children:["· ",i]})]}),n&&T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",className:"shrink-0 text-muted-foreground opacity-0 hover:text-destructive focus-visible:opacity-100 group-hover:opacity-100",onClick:s=>{s.stopPropagation(),n(t.id)},"aria-label":`Delete ${t.title||"session"}`,children:T.jsx("svg",{width:"12",height:"12",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:T.jsx("path",{d:"M3.5 3.5l7 7M10.5 3.5l-7 7"})})})]})}function Byt({params:t}){return k.createElement(Myt,{sessions:(t==null?void 0:t.sessions)??[],activeId:t==null?void 0:t.activeId,onSwitch:t==null?void 0:t.onSwitch,onCreate:t==null?void 0:t.onCreate,onDelete:t==null?void 0:t.onDelete,onClose:t==null?void 0:t.onClose})}const Fyt={id:"session-list",title:"Sessions",component:Byt,placement:"left",source:"builtin"};function rpe({rootDir:t="",bridge:e,defaultTab:r,onCollapse:n,className:i}){var s,a;const o=Zv(),l=k.useSyncExternalStore(o.subscribe,o.getSnapshot,o.getSnapshot),c=k.useMemo(()=>l.filter(j=>j.placement==="left-tab"),[l]),u=k.useMemo(()=>{const j=[];for(const K of c){const ie=K.icon;j.push({id:K.id,title:K.title,icon:ie?T.jsx(ie,{className:"h-3.5 w-3.5"}):T.jsx(b8e,{className:"h-3.5 w-3.5"}),panel:K})}return j},[c]),[d,m]=k.useState(r??""),p=u.some(j=>j.id===d)?d:((s=u[0])==null?void 0:s.id)??"",[y,b]=k.useState(!1),[v,x]=k.useState(""),[w,C]=k.useState(""),S=k.useRef(null),D=k.useRef(void 0);k.useEffect(()=>(clearTimeout(D.current),D.current=setTimeout(()=>C(v),180),()=>clearTimeout(D.current)),[v]),k.useEffect(()=>{var j;y&&((j=S.current)==null||j.focus())},[y]),k.useEffect(()=>{u.length>0&&!u.some(j=>j.id===d)&&m(u[0].id)},[d,u]);const L=k.useCallback(()=>{b(j=>(j&&x(""),!j))},[]),R=k.useCallback(j=>{j.key==="Escape"&&(j.preventDefault(),b(!1),x(""))},[]),O=u.find(j=>j.id===p),U=!((a=O==null?void 0:O.panel)!=null&&a.chromeless),$=k.useMemo(()=>({rootDir:t,bridge:e,query:w,searchQuery:w||void 0,chromeless:!0}),[e,w,t]);return T.jsxs("div",{"data-boring-workspace-part":"workbench-left",className:an("workbench-left-root flex h-full min-h-0 flex-col",i),children:[T.jsxs("div",{className:"flex h-11 items-center gap-1 border-b border-[color:oklch(from_var(--border)_l_c_h/0.25)] px-2",children:[T.jsx(CJ,{value:p,onValueChange:m,className:"min-w-0 flex-1","aria-label":"Workbench sources",children:T.jsx(TJ,{variant:"line",className:"h-auto gap-0.5 p-0",children:u.map(j=>T.jsxs(kJ,{value:j.id,className:"h-8 flex-none gap-1.5 px-2 py-1 text-[12px] data-[state=active]:text-foreground data-[state=active]:after:bg-[color:var(--accent)]",children:[T.jsx("span",{className:"data-[state=active]:text-[color:var(--accent)]",children:j.icon}),T.jsx("span",{className:"tracking-tight",children:j.title})]},j.id))})}),U&&T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",onClick:L,className:an(y&&"bg-foreground/5 text-foreground"),"aria-label":"Search",title:"Search",children:T.jsx(Gw,{className:"h-3.5 w-3.5",strokeWidth:1.75})}),n&&T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",onClick:n,"aria-label":"Hide sources",title:"Hide sources",children:T.jsx(RJ,{className:"h-4 w-4",strokeWidth:1.75})})]}),U&&y&&T.jsxs("div",{className:"flex items-center gap-1 border-b border-border/60 px-2 py-1.5",children:[T.jsx(Gw,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),T.jsx(vv,{ref:S,type:"text",value:v,onChange:j=>x(j.target.value),onKeyDown:R,placeholder:`Search ${((O==null?void 0:O.title)??"sources").toLowerCase()}...`,className:"h-7 flex-1 border-0 bg-transparent px-0 py-0 text-xs shadow-none focus-visible:ring-0 dark:bg-transparent"}),v&&T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",onClick:()=>x(""),"aria-label":"Clear search",children:T.jsx(Bm,{className:"h-3 w-3"})})]}),T.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:T.jsx(Hyt,{panel:O==null?void 0:O.panel,params:$})})]})}const $yt={dispose(){}},zyt=new Proxy({},{get:()=>()=>$yt}),jyt=new Proxy({},{get:()=>()=>{}});function Hyt({panel:t,params:e}){const r=k.useMemo(()=>t?t.lazy?k.lazy(t.component):t.component:null,[t]);return!t||!r?T.jsx("div",{className:"flex h-full items-center justify-center px-4 text-center text-[12px] text-muted-foreground",children:"No workbench source registered."}):T.jsx(bS,{pluginId:t.pluginId??t.id,contributionKind:"panel",contributionId:t.id,children:T.jsx(k.Suspense,{fallback:T.jsx("div",{className:"flex h-full items-center justify-center px-4 text-center text-[12px] text-muted-foreground",children:"Loading source..."}),children:k.createElement(r,{params:e,api:zyt,containerApi:jyt,className:"h-full"})})})}function Vyt({params:t}){return k.createElement(rpe,t??{})}const Uyt={id:"workbench-left",title:"Workbench",component:Vyt,placement:"left",source:"builtin"},qyt="boring-ui-v2:surface",npe=1,Gyt={version:"2.0",groups:[{id:"artifacts",position:"center",dynamic:!0}]};function Wyt(t,e){if(typeof window>"u")return;let r;try{r=window.localStorage.getItem(t)}catch{return}if(!r)return;let n;try{n=JSON.parse(r)}catch{return}if(!n||typeof n!="object")return;const i=n;if(i.v!==npe)return;const s=i.layout;if(!s||typeof s!="object")return;const a=s.panels;if(!(!a||typeof a!="object")){for(const o of Object.values(a)){if(!o||typeof o!="object")return;const l=o.contentComponent;if(typeof l!="string"||e&&!e.has(l))return}return s}}function ipe({visible:t=!0,storageKey:e=qyt,allowedPanels:r,persistedLayout:n,onLayoutChange:i,onReady:s,prefixHeaderActions:a,rightHeaderActions:o,watermarkComponent:l,className:c}){const u=!!(i||n),d=k.useMemo(()=>{if(!u)return Wyt(e,r?new Set(r):void 0)},[u,e,r]),m=k.useCallback(p=>{if(i){i(p);return}const y={v:npe,layout:p};try{window.localStorage.setItem(e,JSON.stringify(y))}catch{}},[i,e]);return t?T.jsx("div",{className:an("h-full w-full",c),"data-testid":"artifact-surface",children:T.jsx(g1t,{layout:Gyt,persistedLayout:n??d,onLayoutChange:m,onReady:s,allowedPanels:r,prefixHeaderActions:a,rightHeaderActions:o,watermarkComponent:l},`${e}:${u?"ext":"auto"}`)}):null}ipe.defaultAllowedPanels=[];function pD(t){const e=t.trim().replace(/\\/g,"/").replace(/^\.\//,"").replace(/\/+/g,"/");if(e.includes(".."))throw new Error("Invalid path: path traversal not allowed");return e}function d6(t,e){const r=`file:${e}`;return t.getPanel(r)??t.panels.find(n=>{var i;return((i=n.params)==null?void 0:i.path)===e})}function Yyt(t){return t.kind!==K0?t:{...t,target:pD(t.target)}}function f6(t,e){return e.id??`surface:${t.kind}:${t.target}`}let spe=0;function Lc(){return{seq:++spe,status:"ok"}}function C_(t,e){return{seq:++spe,status:"error",error:{code:t,message:e}}}function Zyt({rootDir:t="",sidebarDefaultWidth:e=240,sidebarMinWidth:r=180,sidebarMaxWidth:n=480,storageKey:i,onReady:s,onChange:a,onClose:o,extraPanels:l,className:c}){const[u,d]=k.useState(()=>{if(!i)return!1;try{return localStorage.getItem(`${i}:sidebarCollapsed`)==="1"}catch{return!1}}),[m,p]=k.useState(()=>{if(!i)return e;try{const ae=localStorage.getItem(`${i}:sidebarWidth`);if(!ae)return e;const te=Number(ae);return Number.isFinite(te)?Math.max(r,Math.min(n,te)):e}catch{return e}}),y=k.useRef(null),b=k.useRef(null),v=k.useRef(null),[x,w]=k.useState(null),C=k.useRef(s);C.current=s;const S=k.useRef(a);S.current=a;const D=k.useRef(new Set),L=Zv(),R=Vmt(),O=k.useRef(L);O.current=L;const U=k.useRef(R);U.current=R;const $=k.useMemo(()=>{const ae=new Set;for(const te of L.list())te.placement==="center"&&ae.add(te.id);for(const te of l??[])ae.add(te);return[...ae]},[l,L]),j=k.useCallback(ae=>{const te=y.current;if(!te){console.warn("[SurfaceShell] openFile: surface not ready (dockview not initialized)");return}const oe=pD(ae),fe=d6(te,oe);if(fe){fe.api.setActive();return}const ke={kind:K0,target:oe},ve=U.current.resolve(ke);if(!ve){console.warn(`[SurfaceShell] openFile: no surface resolver matched "${oe}"`);return}if(!O.current.has(ve.component)){console.warn(`[SurfaceShell] openFile: resolver returned unknown panel "${ve.component}" for "${oe}"`);return}const Te=f6(ke,ve),Re=te.getPanel(Te);if(Re){ve.params&&Re.api.updateParameters(ve.params),Re.api.setActive();return}te.addPanel({id:Te,component:ve.component,title:ve.title??oe.split("/").pop()??oe,params:ve.params??{path:oe}})},[]),K=k.useCallback(ae=>{const te=y.current;if(!te){console.warn("[SurfaceShell] openSurface: surface not ready (dockview not initialized)");return}const oe=Yyt(ae),fe=U.current.resolve(oe);if(!fe){console.warn(`[SurfaceShell] openSurface: no resolver matched kind="${oe.kind}" target="${oe.target}"`);return}const ke=f6(oe,fe),ve=oe.kind===K0?d6(te,oe.target)??te.getPanel(ke):te.getPanel(ke);if(ve){fe.params&&ve.api.updateParameters(fe.params),ve.api.setActive();return}const Te=O.current;if(!Te.has(fe.component)){const Re=Te.list().map(He=>He.id).join(", ");throw new Error(`openSurface: unknown component "${fe.component}". Registered panels: [${Re}]. Register the component through a panel output before resolving to it.`)}te.addPanel({id:ke,component:fe.component,title:fe.title??oe.target,params:fe.params})},[]),ie=k.useCallback(ae=>{const te=y.current;if(!te)return;const oe=te.getPanel(ae.id);if(oe){ae.params&&oe.api.updateParameters(ae.params),oe.api.setActive();return}const fe=O.current;if(!fe.has(ae.component)){const ke=fe.list().map(ve=>ve.id).join(", ");throw new Error(`openPanel: unknown component "${ae.component}". Registered panels: [${ke}]. Add the component to WorkspaceProvider's "panels" prop, or pick one of the registered ids.`)}te.addPanel({id:ae.id,component:ae.component,title:ae.title??ae.id,params:ae.params})},[]),V=k.useCallback(()=>{var ae;const te=y.current;return te?{openTabs:te.panels.map(oe=>({id:oe.id,title:oe.title??oe.id,params:oe.params??void 0})),activeTab:((ae=te.activePanel)==null?void 0:ae.id)??null}:{openTabs:[],activeTab:null}},[]),H=k.useCallback(()=>{var ae,te;const oe=y.current,fe=oe?oe.panels.map(Re=>({id:Re.id,component:String(Re.component??""),params:Re.params??void 0})):[],ke=((ae=oe==null?void 0:oe.activePanel)==null?void 0:ae.id)??null,ve=((te=oe==null?void 0:oe.activePanel)==null?void 0:te.params)??void 0,Te=typeof(ve==null?void 0:ve.path)=="string"?ve.path:null;return{hydrationComplete:!0,layout:null,sidebar:{collapsed:!1,width:e},panelSizes:{},preferences:{theme:"dark"},panels:fe,activePanel:ke,activeFile:Te,visibleFiles:fe.map(Re=>{var He;return(He=Re.params)==null?void 0:He.path}).filter(Re=>typeof Re=="string"),dirtyFiles:{},notifications:[]}},[e]),F=k.useCallback(()=>{const ae=H();for(const te of D.current)te(ae)},[H]),W=k.useCallback(ae=>{var te;y.current=ae,w(ae),(te=C.current)==null||te.call(C,{openFile:j,openSurface:K,openPanel:ie,closeWorkbenchLeftPane:()=>d(!0),getSnapshot:V});const oe=()=>{var fe;(fe=S.current)==null||fe.call(S,V()),F()};ae.onDidAddPanel(oe),ae.onDidRemovePanel(oe),ae.onDidActivePanelChange(oe),oe()},[j,K,ie,V,F]),X=k.useCallback(async ae=>{try{const te=y.current;if(!te)return C_("not-ready","surface not ready");const oe=pD(ae),fe=d6(te,oe);if(fe)return fe.api.setActive(),Lc();const ke={kind:K0,target:oe},ve=U.current.resolve(ke);if(!ve)return C_("NO_SURFACE_RESOLVER",`no registered surface resolver handles ${oe}`);if(!O.current.has(ve.component))return C_("NO_SURFACE_PANEL",`surface resolver "${ke.kind}" returned unknown panel "${ve.component}"`);const Te=f6(ke,ve),Re=te.getPanel(Te);return Re?(ve.params&&Re.api.updateParameters(ve.params),Re.api.setActive(),Lc()):(te.addPanel({id:Te,component:ve.component,title:ve.title??oe.split("/").pop()??oe,params:ve.params??{path:oe}}),Lc())}catch(te){return C_("INVALID_SURFACE_PATH",te instanceof Error?te.message:"failed to open file")}},[]),ce=k.useMemo(()=>({getOpenPanels:()=>H().panels,getActiveFile:()=>H().activeFile,getDirtyFiles:()=>[],getVisibleFiles:()=>H().visibleFiles,openFile:X,openPanel:async()=>Lc(),closePanel:async()=>Lc(),closeWorkbenchLeftPane:async()=>(d(!0),Lc()),showNotification:async()=>Lc(),navigateToLine:async()=>Lc(),expandToFile:async()=>Lc(),markDirty:()=>{},markClean:()=>{},subscribe:()=>()=>{},select:(ae,te)=>{const oe=fe=>te(ae(fe));return D.current.add(oe),oe(H()),()=>{D.current.delete(oe)}}}),[X,H]),q=k.useCallback(ae=>{u||(ae.preventDefault(),ae.currentTarget.setPointerCapture(ae.pointerId),v.current={startX:ae.clientX,startWidth:m})},[u,m]),Q=k.useCallback(ae=>{const te=v.current;if(!te)return;const oe=ae.clientX-te.startX,fe=Math.max(r,Math.min(n,te.startWidth+oe));p(fe)},[r,n]),ne=k.useCallback(ae=>{v.current&&(v.current=null,ae.currentTarget.releasePointerCapture(ae.pointerId))},[]),G=k.useCallback(ae=>{if(u)return;const te=ae.shiftKey?32:16;ae.key==="ArrowLeft"?(ae.preventDefault(),p(oe=>Math.max(r,oe-te))):ae.key==="ArrowRight"?(ae.preventDefault(),p(oe=>Math.min(n,oe+te))):ae.key==="Home"?(ae.preventDefault(),p(r)):ae.key==="End"&&(ae.preventDefault(),p(n))},[u,r,n]);return k.useEffect(()=>{if(i)try{localStorage.setItem(`${i}:sidebarWidth`,String(m))}catch{}},[i,m]),k.useEffect(()=>{if(i)try{localStorage.setItem(`${i}:sidebarCollapsed`,u?"1":"0")}catch{}},[i,u]),T.jsxs("div",{ref:b,"data-boring-workspace-part":"surface",className:an("flex h-full min-h-0 w-full bg-background",c),"data-testid":"surface-shell",children:[u?null:T.jsxs(T.Fragment,{children:[T.jsx("aside",{"data-boring-workspace-part":"surface-sidebar","data-boring-state":"expanded",className:"flex h-full min-h-0 flex-col",style:{width:m,minWidth:m,maxWidth:m},"aria-label":"Workbench left pane",children:T.jsx(rpe,{rootDir:t,bridge:ce,onCollapse:()=>d(!0)})}),T.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":"Resize sidebar",tabIndex:0,onPointerDown:q,onPointerMove:Q,onPointerUp:ne,onPointerCancel:ne,onKeyDown:G,className:an("relative w-px shrink-0 cursor-col-resize bg-transparent transition-colors hover:bg-primary/40","focus-visible:outline-none focus-visible:bg-primary/50"),children:T.jsx("span",{"aria-hidden":"true",className:"absolute inset-y-0 -left-1.5 -right-1.5"})})]}),T.jsxs("div",{className:"relative min-w-0 flex-1",children:[T.jsx("div",{"data-boring-workspace-part":"surface-tabs","data-boring-state":u?"collapsed":"expanded",className:"workbench-dockview h-full","data-collapsed-sources":u?"true":void 0,children:T.jsx(ipe,{storageKey:i,onReady:W,allowedPanels:$,rightHeaderActions:o?()=>T.jsx(Xyt,{onClose:o}):void 0})}),u&&T.jsx("div",{className:"pointer-events-none absolute left-0 top-0 z-20 flex items-center",style:{height:44},children:T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",onClick:()=>d(!1),className:"pointer-events-auto ml-2","aria-label":"Show sources",title:"Show sources",children:T.jsx(qw,{className:"h-4 w-4",strokeWidth:1.75})})}),T.jsx(Kyt,{api:x,collapsed:u,onExpandFiles:()=>d(!1),onClose:o})]})]})}function Xyt({onClose:t}){return T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",onClick:t,className:"mx-1","aria-label":"Close workbench",title:"Close workbench (⌘2)",children:T.jsx(_v,{className:"h-4 w-4",strokeWidth:1.75})})}function Kyt({api:t,collapsed:e,onExpandFiles:r,onClose:n}){const[i,s]=k.useState(!0);return k.useEffect(()=>{if(!t)return;const a=()=>s(t.panels.length===0);a();const o=t.onDidAddPanel(a),l=t.onDidRemovePanel(a);return()=>{o.dispose(),l.dispose()}},[t]),i?T.jsxs(T.Fragment,{children:[T.jsxs("div",{className:"pointer-events-none absolute inset-x-0 top-0 flex items-center gap-0.5 border-b border-[color:oklch(from_var(--border)_l_c_h/0.4)] bg-background px-1",style:{height:44},children:[e&&T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",onClick:r,className:"pointer-events-auto mx-1","aria-label":"Show sources",title:"Show sources",children:T.jsx(qw,{className:"h-4 w-4",strokeWidth:1.75})}),T.jsx("div",{className:"flex-1"}),n&&T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",onClick:n,className:"pointer-events-auto mx-1","aria-label":"Close workbench",title:"Close workbench (⌘2)",children:T.jsx(_v,{className:"h-4 w-4",strokeWidth:1.75})})]}),T.jsxs("div",{className:"pointer-events-none absolute inset-0 flex flex-col items-center justify-center gap-3 px-6 pt-12 pb-10 text-center",children:[T.jsxs("div",{className:"flex items-center gap-2 text-[10.5px] font-medium uppercase tracking-[0.16em] text-muted-foreground",children:[T.jsx("span",{className:"inline-block h-px w-4 bg-[color:var(--accent)]","aria-hidden":"true"}),"Workbench"]}),T.jsx("div",{className:"text-[15px] font-medium tracking-tight text-foreground",children:"Nothing open yet"}),T.jsx("p",{className:"max-w-[280px] text-[12.5px] leading-relaxed text-muted-foreground",children:"Open a source item, or let the agent produce an artifact here."}),e&&T.jsxs($r,{type:"button",variant:"outline",size:"sm",onClick:r,className:"pointer-events-auto mt-2 gap-1.5 text-[12px] hover:border-[color:var(--accent)]/40 hover:text-[color:var(--accent)]",children:[T.jsx(qw,{className:"h-3.5 w-3.5",strokeWidth:1.75}),"Show sources"]})]})]}):null}function Qyt({params:t}){return k.createElement(Zyt,t??{})}const Jyt={id:"artifact-surface",title:"Surface",component:Qyt,placement:"right",source:"builtin"},ebt=[Ryt,Fyt,Uyt,Jyt];function tbt(t){return null}function rbt(){return typeof window>"u"||typeof window.matchMedia!="function"?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}const $G="workspace-provider",nbt="workspace-provider",ibt=k.createContext(null),sbt=k.createContext(null),tO=k.createContext(null);function abt(){const t=k.useContext(tO);if(!t)throw new Error("useWorkspaceContext must be used within a WorkspaceProvider");return t}function obt(){return k.useContext(tO)}function lbt(){const{chatPanel:t}=abt();if(!t)throw new Error("WorkspaceProvider requires a chatPanel prop before rendering ChatPanelHost");return t}function cbt({store:t}){const e=k.useMemo(()=>[{key:"b",mod:!0,handler:()=>{const r=t.getState();r.setSidebar({collapsed:!r.sidebar.collapsed})}},{key:"\\",mod:!0,handler:()=>{const r=t.getState();r.panels.find(n=>n.id==="agent")?r.closePanel("agent"):r.openPanel({id:"agent",component:"agent"})}},{key:"w",mod:!0,handler:()=>{const r=t.getState();r.activePanel&&r.closePanel(r.activePanel)}}],[t]);return JR({shortcuts:e}),null}function ubt({commands:t}){const e=YR();return k.useEffect(()=>{if(!(t!=null&&t.length))return;const r=t.map(n=>n.id);for(const n of r)e.unregisterCommand(n);for(const n of t)e.registerCommand({...n,pluginId:n.pluginId??nbt});return()=>{for(const n of r)e.unregisterCommand(n)}},[e,t]),null}function hbt({catalogs:t}){const e=ZR();return k.useEffect(()=>{if(t!=null&&t.length){for(const r of t)e.register(r,$G);return()=>{e.unregisterByPluginId($G)}}},[e,t]),null}function dbt({plugins:t}){return T.jsx(T.Fragment,{children:t.map(e=>{var r;const n=((r=e.outputs)==null?void 0:r.filter(i=>i.type==="binding"))??[];return[...(e.bindings??[]).map((i,s)=>T.jsx(i,{},`${e.id}:binding:${s}`)),...n.map(i=>{const s=i.component;return T.jsx(s,{},`${e.id}:output:${i.id}`)})]})})}function fbt({plugins:t,apiBaseUrl:e,authHeaders:r,onAuthError:n,apiTimeout:i,children:s}){return t.flatMap(a=>{var o;return((o=a.outputs)==null?void 0:o.filter(l=>l.type==="provider").map(l=>({plugin:a,output:l})))??[]}).reduceRight((a,{plugin:o,output:l})=>{const c=l.component;return T.jsx(c,{apiBaseUrl:e,authHeaders:r,onAuthError:n,apiTimeout:i,children:a},`${o.id}:provider:${l.id}`)},s)}function pbt({onOpenFile:t}){return k.useEffect(()=>{if(t)return Hr.on(qa.uiCommand,({command:e})=>{if(e.kind!=="openFile")return;const r=e.params.path;typeof r=="string"&&t(r)})},[t]),null}function mbt({children:t,chatPanel:e,plugins:r,excludeDefaults:n,panels:i,commands:s,catalogs:a,capabilities:o,apiBaseUrl:l="",authHeaders:c,apiTimeout:u,defaultTheme:d,onThemeChange:m,workspaceId:p,storageKey:y,persistenceEnabled:b=!0,bridgeEndpoint:v,onAuthError:x,onOpenFile:w}){const C=k.useRef(null);if(!C.current){const G=Eyt({workspaceId:p,storageKey:y,persistenceEnabled:b});s1t(G);const ae=d??rbt();ae!=="light"&&!b?G.getState().setTheme(ae):ae!=="light"&&(typeof localStorage<"u"&&localStorage.getItem("boring-ui-v2:preferences")!==null||G.getState().setTheme(ae)),C.current=G}const S=C.current,D=k.useRef(null),L=k.useRef(c);L.current=c;const R=k.useRef(x);R.current=x,k.useEffect(()=>()=>{var G;(G=D.current)==null||G.disconnect(),D.current=null,S.cleanup()},[S]),k.useEffect(()=>{var G,ae;if(D.current&&(D.current.disconnect(),D.current=null),!v)return;const te=sgt(S),oe=(ae=(G=L.current)==null?void 0:G.Authorization)==null?void 0:ae.replace(/^Bearer\s+/i,""),fe=cgt({endpoint:v,bridge:te,store:S,authToken:oe,onAuthError:ke=>{var ve;return(ve=R.current)==null?void 0:ve.call(R,ke)},onConnectionChange:q});return fe.connect(),D.current=fe,()=>{fe.disconnect(),D.current=null}},[v,S]);const{panelRegistry:O,commandRegistry:U,catalogRegistry:$,surfaceResolverRegistry:j,pluginMetas:K,pluginsWithBindings:ie}=k.useMemo(()=>{const G=new t1t(o),ae=new n1t,te=new Afe,oe=new Dfe;for(const Te of ebt){const{id:Re,...He}=Te;G.register(Re,He)}const fe=new Set(n??[]).has(RG.id)?[]:[RG],ke=[...fe,...r??[]];zmt({chatPanel:e??tbt,plugins:r??[],defaults:fe,excludeDefaults:n,registries:{panels:G,commands:ae,catalogs:te,surfaceResolvers:oe}});const ve=[{id:"workspace:chat-layout",label:"Layout"},{id:"agent:chat-layout",label:"Layout"},...ke.map(Te=>({id:Te.id,label:Te.label,systemPrompt:Te.systemPrompt}))];if(i)for(const Te of i){const{id:Re,...He}=Te;G.register(Re,He)}return{panelRegistry:G,commandRegistry:ae,catalogRegistry:te,surfaceResolverRegistry:oe,pluginMetas:ve,pluginsWithBindings:ke}},[o,e,r,n,i]),V=k.useRef(m);V.current=m;const H=k.useCallback(G=>{var ae;S.getState().setTheme(G),(ae=V.current)==null||ae.call(V,G)},[S]),F=k.useCallback(()=>{const G=S.getState().preferences.theme==="light"?"dark":"light";H(G)},[S,H]),W=a1t();k.useEffect(()=>(document.documentElement.setAttribute("data-theme",W),()=>{document.documentElement.removeAttribute("data-theme")}),[W]);const X=k.useMemo(()=>({setTheme:H,toggleTheme:F}),[H,F]),[ce,q]=k.useState(!1),Q=k.useMemo(()=>({connected:ce}),[ce]),ne=k.useMemo(()=>({chatPanel:e??null,registeredPlugins:K}),[e,K]);return T.jsx(tO.Provider,{value:ne,children:T.jsx(ibt.Provider,{value:X,children:T.jsx(sbt.Provider,{value:Q,children:T.jsx(Wmt,{children:T.jsx(Hmt,{panelRegistry:O,commandRegistry:U,catalogRegistry:$,surfaceResolverRegistry:j,children:T.jsxs(fbt,{plugins:ie,apiBaseUrl:l,authHeaders:c,onAuthError:x,apiTimeout:u,children:[T.jsx(dbt,{plugins:ie}),T.jsx(pbt,{onOpenFile:w}),T.jsx(ubt,{commands:s}),T.jsx(hbt,{catalogs:a}),T.jsx(cbt,{store:S}),T.jsx(bbt,{}),T.jsx(X6e,{}),t,!1]})})})})})})}function gbt(t){const e=Date.now(),r=[];for(const n of t)if(typeof n=="string")if(n.startsWith("cmd:")){const i=n.slice(4);r.push({type:"command",commandId:i,titleSnapshot:i,selectedAt:e})}else{const i=n.lastIndexOf("/");r.push({type:"catalog",catalogId:"files",rowId:n,rowSnapshot:{id:n,title:i>=0?n.slice(i+1):n,subtitle:i>=0?n.slice(0,i+1):void 0},selectedAt:e})}else typeof n=="object"&&n!==null&&"type"in n&&r.push(n);return r}const ape="boring-ui-v2:command-palette:recent",mD=50;function rO(){try{const t=localStorage.getItem(ape);if(!t)return[];const e=JSON.parse(t);if(!Array.isArray(e))return[];if(e.some(r=>typeof r=="string")){const r=gbt(e).filter(HG).slice(0,mD);return nO(r),r}return e.filter(HG).slice(0,mD)}catch{return[]}}function nO(t){try{localStorage.setItem(ape,JSON.stringify(t.slice(0,mD)))}catch{}}function zG(t,e){const r=rO().filter(n=>!(n.type==="catalog"&&n.catalogId===t&&n.rowId===e.id));r.unshift({type:"catalog",catalogId:t,rowId:e.id,rowSnapshot:e,selectedAt:Date.now()}),nO(r)}function jG(t,e){const r=rO().filter(n=>!(n.type==="command"&&n.commandId===t));r.unshift({type:"command",commandId:t,titleSnapshot:e,selectedAt:Date.now()}),nO(r)}function HG(t){if(typeof t!="object"||t===null)return!1;const e=t;return e.type==="catalog"?typeof e.catalogId=="string"&&typeof e.rowId=="string"&&typeof e.rowSnapshot=="object"&&e.rowSnapshot!==null&&typeof e.selectedAt=="number":e.type==="command"?typeof e.commandId=="string"&&typeof e.titleSnapshot=="string"&&typeof e.selectedAt=="number":!1}const T_=50,VG="Catalogs";function UG(t){return t instanceof Error?t.message:"Search failed"}function ybt(t){if(!t.when)return!0;try{return t.when()}catch{return!1}}function bbt(t){const[e,r]=k.useState(!1),[n,i]=k.useState(""),[s,a]=k.useState("catalogs"),[o,l]=k.useState(""),[c,u]=k.useState([]),d=qmt(),m=Umt(),p=obt(),y=k.useMemo(()=>{const V={};for(const H of(p==null?void 0:p.registeredPlugins)??[])H.label&&(V[H.id]=H.label);return V},[p==null?void 0:p.registeredPlugins]),b=k.useRef(null),v=k.useRef(null),x=k.useRef(!1),w=s==="commands",C=n.trim();k.useEffect(()=>{if(w){l("");return}const V=setTimeout(()=>l(C),180);return()=>clearTimeout(V)},[w,C]),k.useEffect(()=>{if(!e)return;const V=F=>{F.key==="Escape"&&(F.preventDefault(),F.stopPropagation(),r(!1))},H=F=>{const W=F.target;if(!W)return;const X=document.querySelector('[data-slot="dialog-content"]');X&&!X.contains(W)&&(F.preventDefault(),F.stopPropagation(),r(!1))};return window.addEventListener("keydown",V,{capture:!0}),window.addEventListener("pointerdown",H,{capture:!0}),()=>{window.removeEventListener("keydown",V,{capture:!0}),window.removeEventListener("pointerdown",H,{capture:!0})}},[e]);const S=k.useCallback(()=>{!e&&document.activeElement instanceof HTMLElement&&(v.current=document.activeElement),r(!0)},[e]);JR({shortcuts:k.useMemo(()=>[{key:"k",mod:!0,allowInEditable:!0,handler:S},{key:"p",mod:!0,allowInEditable:!0,handler:S}],[S])}),k.useEffect(()=>{if(e)i(""),a("catalogs"),requestAnimationFrame(()=>{var V;(V=b.current)==null||V.focus()});else if(x.current){const V=v.current;V&&V.isConnected&&V.focus(),v.current=null}x.current=e},[e]);const D=k.useCallback(V=>{a(V),i(H=>H.replace(/^>\s*/,"")),requestAnimationFrame(()=>{var H;return(H=b.current)==null?void 0:H.focus()})},[]),L=k.useCallback(()=>{D(s==="commands"?"catalogs":"commands")},[s,D]),R=k.useCallback(V=>{if(V.startsWith(">")){a("commands"),i(V.slice(1));return}i(V)},[]),O=k.useCallback(V=>{V.key==="Tab"&&(V.preventDefault(),V.stopPropagation(),L())},[L]);k.useEffect(()=>{if(w||!o){u([]);return}const V=new AbortController,H=[...d];u(H.map(W=>({catalog:W,rows:[],loading:!0})));const F=(W,X)=>{V.signal.aborted||u(ce=>ce.map(q=>q.catalog.id===W.id?{catalog:W,...X}:q))};for(const W of H)try{const X=W.adapter.search({query:o,filters:{},limit:T_,offset:0,signal:V.signal});Promise.resolve(X).then(ce=>{F(W,{rows:ce.items.slice(0,T_),loading:!1})},ce=>{F(W,{rows:[],loading:!1,error:UG(ce)})})}catch(X){F(W,{rows:[],loading:!1,error:UG(X)})}return()=>{V.abort()}},[d,o,w]);const U=k.useMemo(()=>{if(!w)return[];const V=m.filter(ybt);if(!C)return V.slice(0,T_);const H=C.toLowerCase();return V.filter(F=>{var W;return F.title.toLowerCase().includes(H)?!0:((W=F.keywords)==null?void 0:W.some(X=>X.toLowerCase().includes(H)))??!1}).slice(0,T_)},[m,w,C]),$=k.useMemo(()=>w||C?[]:rO().filter(V=>V.type==="catalog"?d.some(H=>H.id===V.catalogId):m.some(H=>H.id===V.commandId)),[w,C,d,m]),j=k.useCallback((V,H)=>{zG(V.id,H),V.onSelect(H),r(!1)},[]),K=k.useCallback(V=>{jG(V.id,V.title),V.run(),r(!1)},[]),ie=k.useCallback(V=>{if(V.type==="catalog"){const H=d.find(F=>F.id===V.catalogId);H&&(zG(H.id,V.rowSnapshot),H.onSelect(V.rowSnapshot))}else{const H=m.find(F=>F.id===V.commandId);H&&(jG(H.id,H.title),H.run())}r(!1)},[d,m]);return T.jsx(w6e,{open:e,onOpenChange:r,children:T.jsxs(k6e,{className:"cmdk-shell overflow-hidden border-border/60 p-0 shadow-2xl backdrop-blur-md sm:max-w-[640px] [&>button.dialog-close]:hidden",showCloseButton:!1,onPointerDownOutside:()=>r(!1),onEscapeKeyDown:()=>r(!1),children:[T.jsxs(S6e,{className:"sr-only",children:[T.jsx(E6e,{children:"Command Palette"}),T.jsx(A6e,{children:"Search catalogs or switch to commands"})]}),T.jsxs(vJ,{shouldFilter:!1,className:"bg-transparent",children:[T.jsxs("div",{className:"relative flex items-stretch [&>[data-slot=command-input-wrapper]]:flex-1 [&>[data-slot=command-input-wrapper]]:h-auto",children:[T.jsxs("div",{role:"group","aria-label":"Palette mode",className:"my-2 ml-3 inline-flex shrink-0 self-center rounded-md border border-border/60 bg-muted/40 p-0.5",children:[T.jsx(qG,{active:!w,icon:T.jsx(py,{className:"size-3"}),label:VG,onClick:()=>D("catalogs")}),T.jsx(qG,{active:w,icon:T.jsx(C3,{className:"size-3"}),label:"Commands",onClick:()=>D("commands")})]}),T.jsx(xJ,{ref:b,placeholder:w?"Run a command...":"Search catalogs or type > for commands",value:n,onValueChange:R,onKeyDown:O,className:"h-12 bg-transparent text-base focus-visible:ring-0"})]}),T.jsxs(_J,{className:"max-h-[440px] overflow-y-auto py-1",children:[T.jsx(wJ,{className:"py-10 text-center text-sm text-muted-foreground",children:w?"No matching commands":"No catalog results"}),!w&&$.length>0&&!C&&T.jsx(z_,{heading:"Recent",children:$.map(V=>{const H=V.type==="catalog"?`recent:catalog:${V.catalogId}:${V.rowId}`:`recent:command:${V.commandId}`;return T.jsx(_0,{value:H,onSelect:()=>ie(V),className:"group flex items-center gap-3 rounded-md px-3 py-2 text-sm aria-selected:bg-[color:oklch(from_var(--accent)_l_c_h/0.10)] aria-selected:text-foreground",children:V.type==="catalog"?T.jsxs(T.Fragment,{children:[T.jsx(TA,{className:"size-4 shrink-0 text-muted-foreground/70 group-aria-selected:text-[color:var(--accent)]"}),T.jsx(GG,{row:V.rowSnapshot})]}):T.jsxs(T.Fragment,{children:[T.jsx(C3,{className:"size-4 shrink-0 text-muted-foreground/70 group-aria-selected:text-[color:var(--accent)]"}),T.jsx("span",{className:"flex-1 truncate",children:V.titleSnapshot}),T.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground",children:"command"})]})},H)})}),!w&&c.filter(V=>V.loading||V.error||V.rows.length>0).map(V=>T.jsxs(z_,{heading:V.catalog.label,children:[V.loading?T.jsxs(_0,{value:`${V.catalog.id}:loading`,disabled:!0,className:"group flex items-center gap-3 rounded-md px-3 py-2 text-sm",children:[T.jsx(py,{className:"size-4 shrink-0 text-muted-foreground/70"}),T.jsx("span",{className:"text-muted-foreground",children:"Searching..."})]}):null,V.error?T.jsxs(_0,{value:`${V.catalog.id}:error`,disabled:!0,className:"group flex items-center gap-3 rounded-md px-3 py-2 text-sm",children:[T.jsx(py,{className:"size-4 shrink-0 text-destructive/70"}),T.jsx("span",{className:"text-destructive",children:V.error})]}):null,V.rows.map(H=>T.jsx(_0,{value:`${V.catalog.id}:${H.id}:${H.title}:${H.subtitle??""}`,onSelect:()=>j(V.catalog,H),className:"group flex items-center gap-3 rounded-md px-3 py-2 text-sm aria-selected:bg-[color:oklch(from_var(--accent)_l_c_h/0.10)] aria-selected:text-foreground",children:T.jsxs(bS,{pluginId:V.catalog.pluginId??V.catalog.id,contributionKind:"catalog-row",contributionId:H.id,children:[T.jsx(py,{className:"size-4 shrink-0 text-muted-foreground/70 group-aria-selected:text-[color:var(--accent)]"}),T.jsx(GG,{row:H})]})},`${V.catalog.id}:${H.id}`))]},V.catalog.id)),w&&U.length>0&&T.jsx(z_,{heading:"Commands",children:U.map(V=>T.jsxs(_0,{value:V.title,onSelect:()=>K(V),className:"group flex items-center gap-3 rounded-md px-3 py-2 text-sm aria-selected:bg-[color:oklch(from_var(--accent)_l_c_h/0.10)] aria-selected:text-foreground",children:[T.jsx(C3,{className:"size-4 shrink-0 text-muted-foreground/70 group-aria-selected:text-[color:var(--accent)]"}),T.jsx("span",{className:"flex-1 truncate",children:V.title}),y[V.pluginId??""]&&T.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground",children:y[V.pluginId??""]}),V.shortcut&&T.jsx(M6e,{children:V.shortcut})]},V.id))})]}),T.jsxs("div",{className:"flex items-center justify-between border-t border-border/50 bg-muted/30 px-3 py-2 text-[11px] text-muted-foreground",children:[T.jsx("span",{className:"font-medium tracking-wide uppercase",children:w?"Commands":VG}),T.jsxs("div",{className:"flex items-center gap-3",children:[T.jsxs("span",{className:"flex items-center gap-1",children:[T.jsx(Qd,{children:"tab"}),T.jsx("span",{children:"switch"})]}),T.jsxs("span",{className:"flex items-center gap-1",children:[T.jsx(Qd,{children:T.jsx(TAe,{className:"size-3"})}),T.jsx(Qd,{children:T.jsx(LJ,{className:"size-3"})}),T.jsx("span",{children:"navigate"})]}),T.jsxs("span",{className:"flex items-center gap-1",children:[T.jsx(Qd,{children:T.jsx(OJ,{className:"size-3"})}),T.jsx("span",{children:"open"})]}),T.jsxs("span",{className:"flex items-center gap-1",children:[T.jsx(Qd,{children:"esc"}),T.jsx("span",{children:"close"})]})]})]})]})]})})}function qG({active:t,icon:e,label:r,onClick:n}){return T.jsxs($r,{type:"button",variant:"ghost",size:"sm","aria-pressed":t,onClick:n,className:["h-7 gap-1.5 px-2 text-xs font-medium",t?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"].join(" "),children:[e,r]})}function GG({row:t}){return T.jsxs("span",{className:"flex min-w-0 flex-1 items-baseline gap-2 truncate",children:[T.jsx("span",{className:"truncate font-medium text-foreground",children:t.title}),t.subtitle?T.jsx("span",{className:"truncate text-xs text-muted-foreground/70",children:t.subtitle}):null,t.meta?T.jsx("span",{className:"ml-auto shrink-0 text-xs text-muted-foreground/70",children:t.meta}):null]})}function WG(t,e,r=!0){if(!r||typeof window>"u")return e;try{const n=window.localStorage.getItem(t);if(n==="1")return!0;if(n==="0")return!1}catch{}return e}function vbt(t,e,r=!0){if(!(!r||typeof window>"u"))try{window.localStorage.setItem(t,e?"1":"0")}catch{}}function YG(t,e,r=!0){if(!r||typeof window>"u")return e;try{const n=window.localStorage.getItem(t);if(n===null)return e;const i=Number(n);return Number.isFinite(i)?i:e}catch{}return e}function xbt(t,e,r=!0){if(!(!r||typeof window>"u"))try{window.localStorage.setItem(t,String(Math.round(e)))}catch{}}function _bt(t){const e=t.nav!==null,r=t.surface!==void 0,n=!!t.surface,i=t.nav||"session-list",s=t.center??"chat",a=t.surface||"artifact-surface",o=wbt(),[l,c]=ZG(t.storageKey?`${t.storageKey}:drawerWidth`:void 0,260),[u,d]=ZG(t.storageKey?`${t.storageKey}:surfaceWidth`:void 0,680),m=YR(),p=k_(l,200,360),y=Math.max(480,Math.floor(o*.72)),b=k_(u,480,y),v=pw(t.centerParams,"getSurface"),x=pw(t.centerParams,"isWorkbenchOpen"),w=pw(t.centerParams,"openWorkbench"),C=p6(t.navParams,"onClose"),S=p6(t.surfaceParams,"onClose"),D=p6(t.navParams,"onCreate"),L=e?!!C:!!t.onOpenNav,R=n?!!S:!!t.onOpenSurface,O=k.useCallback(()=>{var j;if(e){C==null||C();return}(j=t.onOpenNav)==null||j.call(t)},[C,e,t.onOpenNav]),U=k.useCallback(()=>{var j;if(n){S==null||S();return}(j=t.onOpenSurface)==null||j.call(t)},[S,t.onOpenSurface,n]),$=k.useCallback(()=>{e&&(C==null||C()),n&&(S==null||S()),gD(),Cbt()},[C,S,e,n]);return JR({shortcuts:k.useMemo(()=>{const j=[];return L&&j.push({key:"1",mod:!0,handler:O}),R&&j.push({key:"2",mod:!0,handler:U}),s==="chat"&&j.push({key:"Escape",allowInEditable:!0,handler:$}),j},[L,R,s,$,O,U])}),k.useEffect(()=>{const j="workspace:chat-layout",K="agent:chat-layout";return m.unregisterByPluginId(j),m.unregisterByPluginId(K),m.registerCommand({id:"workspace:open-session-history",title:e?"Close Session History":"Open Session History",keywords:["sessions","history","drawer",e?"close":"open"],shortcut:"⌘1",pluginId:j,when:()=>L,run:O}),m.registerCommand({id:"workspace:open-workbench",title:n?"Close Workbench":"Open Workbench",keywords:["surface","artifacts","sources","workbench",n?"close":"open"],shortcut:"⌘2",pluginId:j,when:()=>R,run:U}),s==="chat"&&m.registerCommand({id:"agent:focus-chat",title:"Focus Chat",keywords:["agent","chat","prompt","composer","input","focus"],pluginId:K,run:$}),D&&m.registerCommand({id:"agent:new-chat",title:"New Chat",keywords:["agent","chat","session","new"],pluginId:K,run:D}),()=>{m.unregisterByPluginId(j),m.unregisterByPluginId(K)}},[m,e,s,r,n,t.navParams,t.surfaceParams,t.onOpenNav,t.onOpenSurface,L,R,C,S,D,$,O,U]),k.useEffect(()=>{if(!v||!x||!w)return;const j={surface:v,isWorkbenchOpen:x,openWorkbench:w};return Hr.on(qa.uiCommand,({command:K})=>{vS(K,j)})},[v,x,w]),T.jsxs("div",{"data-boring-workspace":"","data-boring-workspace-part":"shell",className:an("relative flex h-full min-h-0 w-full overflow-hidden bg-background",t.className),children:[T.jsxs("aside",{"data-boring-workspace-part":"session-drawer","data-boring-state":e?"expanded":"collapsed","aria-label":"Session browser","aria-hidden":!e,className:an("relative h-full min-h-0 shrink-0 overflow-hidden bg-background","transition-[width,min-width,max-width] duration-[280ms] ease-[cubic-bezier(0.22,1,0.36,1)]",e&&"border-r border-[color:oklch(from_var(--border)_l_c_h/0.6)]"),style:{width:e?p:0,minWidth:e?p:0,maxWidth:e?p:0,willChange:"width"},children:[T.jsx("div",{className:an("h-full min-h-0 overflow-hidden","transition-opacity duration-[200ms] ease-[cubic-bezier(0.22,1,0.36,1)]",e?"opacity-100":"opacity-0"),children:T.jsx(m6,{id:i,params:t.navParams})}),e?T.jsx(XG,{side:"drawer-right",ariaLabel:"Resize sessions drawer",onResize:j=>c(K=>k_(K+j,200,360))}):null]}),T.jsxs("main",{"data-boring-workspace-part":"chat-stage","aria-label":"Chat stage",className:"relative h-full min-h-0 min-w-0 flex-1 overflow-hidden bg-background",children:[T.jsx(m6,{id:s,params:t.centerParams}),!e&&t.onOpenNav?T.jsx(KG,{side:"left",icon:"sessions",onClick:t.onOpenNav,label:"Sessions",hint:"⌘1"}):null,!n&&t.onOpenSurface?T.jsx(KG,{side:"right",icon:"workbench",onClick:t.onOpenSurface,label:"Workbench",hint:"⌘2"}):null]}),r?T.jsxs("aside",{"data-boring-workspace-part":"workbench","data-boring-state":n?"expanded":"collapsed","aria-label":n?"Surface":void 0,"aria-hidden":!n,className:an("relative h-full min-h-0 shrink-0 overflow-hidden bg-background","transition-[width,min-width,max-width] duration-[280ms] ease-[cubic-bezier(0.22,1,0.36,1)]",n&&"border-l border-[color:oklch(from_var(--border)_l_c_h/0.6)]"),style:{width:n?b:0,minWidth:n?b:0,maxWidth:n?b:0,willChange:"width"},children:[T.jsx("div",{className:an("h-full min-h-0 overflow-hidden","transition-opacity duration-[200ms] ease-[cubic-bezier(0.22,1,0.36,1)]",n?"opacity-100":"opacity-0"),children:T.jsx(m6,{id:a,params:t.surfaceParams})}),n?T.jsx(XG,{side:"surface-left",ariaLabel:"Resize workbench",onResize:j=>d(K=>k_(K-j,480,y))}):null]}):null]})}function k_(t,e,r){return Math.max(e,Math.min(r,t))}function ZG(t,e){const[r,n]=k.useState(()=>t?YG(t,e):e);k.useEffect(()=>{n(t?YG(t,e):e)},[t,e]);const i=k.useCallback(s=>{n(a=>{const o=typeof s=="function"?s(a):s;return t&&xbt(t,o),o})},[t]);return[r,i]}function wbt(){const[t,e]=k.useState(()=>typeof window<"u"?window.innerWidth:1200);return k.useEffect(()=>{const r=()=>e(window.innerWidth);return window.addEventListener("resize",r),()=>window.removeEventListener("resize",r)},[]),t}function XG({side:t,ariaLabel:e,onResize:r}){const n=k.useRef(null),i=k.useCallback(o=>{o.preventDefault(),n.current=o.clientX,o.currentTarget.setPointerCapture(o.pointerId),document.body.style.cursor="col-resize",document.body.style.userSelect="none"},[]),s=k.useCallback(o=>{if(n.current===null)return;const l=o.clientX-n.current;n.current=o.clientX,r(l)},[r]),a=k.useCallback(o=>{n.current!==null&&(n.current=null,o.currentTarget.releasePointerCapture(o.pointerId),document.body.style.cursor="",document.body.style.userSelect="")},[]);return T.jsx(q6e,{"aria-label":e,orientation:"vertical",onResizeStart:i,onPointerMove:s,onPointerUp:a,onPointerCancel:a,className:an("absolute top-0 bottom-0 z-20 bg-transparent","transition-colors duration-200","hover:bg-border/70 hover:[transition-delay:150ms]","active:bg-muted-foreground/30",t==="drawer-right"?"right-0":"left-0")})}function pw(t,e){const r=t==null?void 0:t[e];return typeof r=="function"?r:void 0}function p6(t,e){return pw(t,e)}function gD(){if(typeof document>"u")return;const t=document.querySelector('[data-boring-agent] textarea[name="message"], textarea[name="message"]');t==null||t.focus()}function Cbt(){typeof window>"u"||window.requestAnimationFrame(()=>{gD(),window.setTimeout(gD,320)})}function m6({id:t,params:e}){const r=Zv(),n=k.useMemo(()=>r.getComponents(),[r])[t],i=k.useMemo(()=>Tbt(t),[t]);return n?T.jsx(k.Suspense,{fallback:T.jsx(AJ,{centered:!0}),children:T.jsx(n,{params:e,api:i,containerApi:{}})}):null}function Tbt(t){return{id:t,title:t,setTitle:()=>{},setActive:()=>{},close:()=>{},updateParameters:()=>{},onDidParametersChange:()=>({dispose(){}}),onDidActiveChange:()=>({dispose(){}}),onDidDimensionsChange:()=>({dispose(){}}),onDidLocationChange:()=>({dispose(){}}),onDidTitleChange:()=>({dispose(){}}),onWillFocus:()=>({dispose(){}}),onDidFocus:()=>({dispose(){}}),onDidBlur:()=>({dispose(){}}),onWillVisibilityChange:()=>({dispose(){}}),onDidVisibilityChange:()=>({dispose(){}}),onDidConstraintsChange:()=>({dispose(){}})}}function KG({side:t,icon:e,onClick:r,label:n,hint:i}){return T.jsx(mi,{type:"button",variant:"ghost",size:"icon-sm",onClick:r,"aria-label":n,title:i?`${n} (${i})`:n,className:an("absolute top-1/2 z-30 h-9 w-9 -translate-y-1/2 gap-0.5 rounded-lg bg-background text-muted-foreground",t==="left"?"left-2":"right-2","shadow-[0_1px_2px_-1px_oklch(0_0_0/0.08),0_2px_8px_-4px_oklch(0_0_0/0.10),inset_0_0_0_1px_oklch(from_var(--border)_l_c_h/0.7)]","hover:-translate-y-[calc(50%+1px)] hover:bg-muted/60 hover:text-foreground hover:shadow-[0_2px_4px_-1px_oklch(0_0_0/0.08),0_4px_12px_-4px_oklch(0_0_0/0.10),inset_0_0_0_1px_oklch(from_var(--border)_l_c_h/0.9)]","focus-visible:ring-ring/40"),children:e==="sessions"?T.jsxs("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[T.jsx("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"1.8"}),T.jsx("path",{d:"M12 7v5l3.2 2",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round"})]}):T.jsx("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:T.jsx("path",{d:"M3 7.5 A1.5 1.5 0 0 1 4.5 6 h4 l2 2 h9 A1.5 1.5 0 0 1 21 9.5 V17.5 A1.5 1.5 0 0 1 19.5 19 H4.5 A1.5 1.5 0 0 1 3 17.5 Z",stroke:"currentColor",strokeWidth:"1.8",strokeLinejoin:"round"})})})}function kbt({appTitle:t="Boring",sessionTitle:e,onCommandPalette:r,onNewChat:n,topBarLeft:i,topBarRight:s,className:a}){const o=s??null;return T.jsxs("header",{"data-boring-workspace-part":"topbar",className:an("relative flex items-center justify-between gap-3 px-4","bg-background border-b border-[color:oklch(from_var(--border)_l_c_h/0.4)]",a),style:{height:52},"aria-label":"App top bar",children:[T.jsx("div",{className:"flex min-w-0 flex-1 items-center gap-2.5",children:i??T.jsxs(T.Fragment,{children:[T.jsx("div",{"aria-hidden":"true",className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md bg-foreground text-[12px] font-semibold text-background",children:t.charAt(0).toUpperCase()}),T.jsx("span",{className:"truncate text-[13px] font-medium tracking-tight text-foreground",children:t}),e&&T.jsxs(T.Fragment,{children:[T.jsx("span",{"aria-hidden":"true",className:"text-muted-foreground/30",children:"/"}),T.jsx("span",{className:"truncate text-[13px] font-normal text-muted-foreground",children:e})]})]})}),T.jsxs($r,{type:"button",variant:"ghost",size:"sm",onClick:r,className:"group h-7 gap-1.5 px-1.5 text-[12.5px] text-muted-foreground/60 hover:bg-transparent hover:text-foreground focus-visible:text-foreground","aria-label":"Search catalogs and commands",title:"Command palette (⌘K)",children:[T.jsx(Gw,{className:"h-3.5 w-3.5 shrink-0 opacity-70",strokeWidth:1.75}),T.jsx("span",{className:"font-normal tracking-tight",children:"Search"}),T.jsx(Qd,{className:"ml-1 border-0 bg-transparent p-0 text-[10px] shadow-none group-hover:text-muted-foreground",children:"⌘K"})]}),T.jsxs("div",{className:"flex flex-1 shrink-0 items-center justify-end gap-1",children:[n&&T.jsx(mi,{type:"button",variant:"ghost",size:"icon-sm",onClick:n,"aria-label":"New chat",title:"New chat",children:T.jsx(PJ,{className:"h-4 w-4"})}),o]})]})}function Sbt(){const t=`s${Date.now()}`;return{sessions:[{id:t,title:"New session",updatedAt:Date.now()}],activeId:t}}function Ebt(t,e){var r;if(typeof localStorage>"u")return e();try{const n=localStorage.getItem(t);if(n){const i=JSON.parse(n),s=Array.isArray(i.sessions)?i.sessions:Array.isArray(i.items)?i.items:null;if(s)return{sessions:s,activeId:i.activeId??((r=s[0])==null?void 0:r.id)??""}}}catch{}return e()}function Abt(t,e){if(!(typeof localStorage>"u"))try{localStorage.setItem(t,JSON.stringify(e))}catch{}}function Dbt(t={}){const e=t.storageKey??"workspace:sessions",r=t.initial??Sbt;let n=Ebt(e,r);const i=new Set,s=a=>{n=a,Abt(e,n),i.forEach(o=>o())};return{getState:()=>n,subscribe(a){return i.add(a),()=>{i.delete(a)}},switchTo(a){s({...n,activeId:a})},create(){const a=`s${Date.now()}`,o={id:a,title:"New session",updatedAt:Date.now()};s({sessions:[o,...n.sessions],activeId:a})},remove(a){var o;const l=n.sessions.filter(u=>u.id!==a),c=n.activeId===a?((o=l[0])==null?void 0:o.id)??"":n.activeId;s({sessions:l,activeId:c})}}}function Lbt(t){return k.useSyncExternalStore(t.subscribe,t.getState,t.getState)}function Ibt(t){return t.type==="panel"}function Rbt(t,e){return t.endsWith(":surface")?t.slice(0,-8):e}function QG(t,e,r){const[n,i]=k.useState(()=>WG(t,e,r));k.useEffect(()=>{i(WG(t,e,r))},[t,e,r]);const s=k.useCallback(a=>{i(a),vbt(t,a,r)},[r,t]);return[n,s]}const Obt={},JG={openTabs:[],activeTab:null};function Nbt(t){if(!t)return"/api/v1/ui";const e=t.replace(/\/$/,""),r="/api/v1/ui";return e.endsWith(r)?e:`${e}${r}`}function Mbt(t){return`${Nbt(t)}/state`}function Pbt(t){var e;const r=t.openTabs.find(i=>i.id===t.activeTab),n=(e=r==null?void 0:r.params)==null?void 0:e.path;return typeof n=="string"?n:null}function Bbt({bridgeEndpoint:t,requestHeaders:e,navOpen:r,surfaceOpen:n,snapshot:i}){const s=Zv(),a=k.useRef(null);return k.useEffect(()=>{var o;if(t===null)return;(o=a.current)==null||o.abort();const l=new AbortController;a.current=l;const c={v:1,drawerOpen:r,workbenchOpen:n,openTabs:i.openTabs,activeTab:i.activeTab,activeFile:Pbt(i),availablePanels:s.list().map(u=>u.id)};return fetch(Mbt(t),{method:"PUT",headers:{...e,"Content-Type":"application/json"},body:JSON.stringify({state:c,causedBy:"user"}),signal:l.signal}).catch(()=>{}),()=>{l.abort()}},[t,r,s,e,i,n]),null}function Fbt({workspaceId:t,chatPanel:e,useSessions:r,requestHeaders:n=Obt,sessionStorageKey:i,providerStorageKey:s,surfaceStorageKey:a,beforeShell:o,afterShell:l,panels:c,commands:u,catalogs:d,plugins:m,excludeDefaults:p,capabilities:y,apiBaseUrl:b,authHeaders:v,apiTimeout:x,defaultTheme:w,onThemeChange:C,persistenceEnabled:S,bridgeEndpoint:D,onAuthError:L,sessions:R,activeSessionId:O,onSwitchSession:U,onCreateSession:$,onDeleteSession:j,onActiveSessionIdChange:K,appTitle:ie="Boring",defaultSessionTitle:V="New session",topBarLeft:H,topBarRight:F,chatParams:W,extraPanels:X,extraCommands:ce,onOpenNav:q,onOpenSurface:Q,className:ne}){var G,ae;const te=s??`boring-ui-v2:layout:${t}`,oe=a??`${te}:surface`,fe=Rbt(oe,te),ke=S!==!1,ve=i??`boring-workspace:sessions:${t}`,Te=k.useMemo(()=>Dbt({storageKey:ve}),[ve]),Re=Lbt(Te),He=e??Bde,Je=r??(e?void 0:Fde),ot=Je==null?void 0:Je({requestHeaders:n,storageKey:ve}),er=R!==void 0||O!==void 0||U!==void 0||$!==void 0||j!==void 0,Ur=ot==null?void 0:ot.sessions.map(kt=>({...kt,title:kt.title??"New session"})),vn=ot?Ur??[]:er?R??[]:Re.sessions,lt=ot?ot.activeSessionId??null:er?O??null:Re.activeId,Wt=(ot==null?void 0:ot.switch)??U??Te.switchTo,Cr=ot?()=>ot.create():$??Te.create,kn=(ot==null?void 0:ot.delete)??j??Te.remove,gi=((G=vn.find(kt=>kt.id===lt))==null?void 0:G.title)??void 0,[Xi,Mr]=QG(`${fe}:drawer`,!0,ke),[cn,Le]=QG(`${fe}:workbenchOpen`,!1,ke),_e=k.useRef(!1),Me=k.useRef(cn),Ye=k.useRef(oe),dt=k.useRef(null);Ye.current=oe;const[$t,ar]=k.useState(()=>({key:oe,snapshot:JG})),Ar=$t.key===oe?$t.snapshot:JG;k.useEffect(()=>{_e.current=!1},[t]),k.useEffect(()=>{if(!(!ot||ot.loading)){if(ot.sessions.length>0){_e.current=!1;return}_e.current||(_e.current=!0,Promise.resolve(ot.create({title:V})).catch(()=>{_e.current=!1}))}},[V,ot]),k.useEffect(()=>{Me.current=cn},[cn]);const br=k.useCallback(kt=>{dt.current={key:oe,api:kt},ar({key:oe,snapshot:kt.getSnapshot()})},[oe]),hr=k.useCallback(kt=>{ar({key:oe,snapshot:kt})},[oe]),nr=k.useCallback(()=>{const kt=dt.current;return(kt==null?void 0:kt.key)===Ye.current?kt.api:null},[]),Oi=k.useCallback(()=>Me.current,[]),Qn=k.useCallback(()=>{Me.current=!0,Le(!0)},[Le]),Ge=k.useMemo(()=>(m==null?void 0:m.flatMap(kt=>kt.outputs??[]))??[],[m]),qe=k.useMemo(()=>Ge.some(kt=>kt.type==="left-tab"),[Ge]),Bt=k.useMemo(()=>Ge.filter(Ibt).map(kt=>kt.panel.id),[Ge]),zt=k.useMemo(()=>[...X??[],...Bt],[X,Bt]),jt=lt??((ae=vn[0])==null?void 0:ae.id)??"default";k.useEffect(()=>{var kt;const It=or=>{const un=or.detail;!un||typeof un!="object"||vS(un,{surface:nr,isWorkbenchOpen:Oi,openWorkbench:Qn})};return(kt=globalThis.addEventListener)==null||kt.call(globalThis,hD,It),()=>{var or;return(or=globalThis.removeEventListener)==null?void 0:or.call(globalThis,hD,It)}},[nr,Oi,Qn]),k.useEffect(()=>{lt&&(K==null||K(lt))},[lt,K]);const xn=k.useMemo(()=>({...W,sessionId:jt,requestHeaders:n,bridgeEndpoint:D,getSurface:nr,isWorkbenchOpen:Oi,openWorkbench:Qn,extraCommands:ce}),[W,jt,n,D,nr,Oi,Qn,ce]),Tr=k.useMemo(()=>({storageKey:oe,extraPanels:zt,onReady:br,onChange:hr,onClose:()=>{Me.current=!1,Le(!1)}}),[hr,br,oe,zt,Le]);return T.jsx("div",{className:"h-full bg-background text-foreground",children:T.jsxs(mbt,{chatPanel:He,panels:c,commands:u,catalogs:d,plugins:m,excludeDefaults:p,capabilities:y,apiBaseUrl:b,authHeaders:v,apiTimeout:x,defaultTheme:w,onThemeChange:C,workspaceId:t,storageKey:te,persistenceEnabled:S,bridgeEndpoint:null,onAuthError:L,children:[o,T.jsx(Bbt,{bridgeEndpoint:D,requestHeaders:n,navOpen:Xi,surfaceOpen:cn,snapshot:Ar}),T.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[T.jsx(kbt,{appTitle:ie,sessionTitle:gi??V,onCommandPalette:()=>{document.dispatchEvent(new KeyboardEvent("keydown",{key:"k",metaKey:!0,ctrlKey:!0,bubbles:!0,cancelable:!0}))},onNewChat:Cr,topBarLeft:H,topBarRight:F}),T.jsx(_bt,{className:ne,nav:Xi?"session-list":null,navParams:{sessions:vn,activeId:lt,onSwitch:Wt,onCreate:Cr,onDelete:kn,onClose:()=>Mr(!1)},center:"chat",centerParams:xn,surface:cn?"artifact-surface":null,surfaceParams:Tr,sidebar:cn&&qe?"workbench-left":null,storageKey:ke?fe:void 0,onOpenNav:()=>{Mr(!0),q==null||q()},onOpenSurface:()=>{Me.current=!0,Le(!0),Q==null||Q()}})]}),l]})})}const mw="__showcase__",$bt="data:image/svg+xml;utf8,"+encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 160"><defs><linearGradient id="g" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="%23312e81"/><stop offset="1" stop-color="%230ea5e9"/></linearGradient></defs><rect width="240" height="160" fill="url(%23g)"/><text x="120" y="90" text-anchor="middle" font-family="Inter,system-ui" font-size="24" font-weight="700" fill="white">mockup.png</text></svg>'),zbt=[{id:"u0",role:"user",parts:[{type:"file",url:$bt,mediaType:"image/svg+xml",filename:"mockup.svg"},{type:"text",text:"Can you take a look at this mockup and suggest improvements?"}]},{id:"a0",role:"assistant",parts:[{type:"text",text:"Got it — the gradient tile reads cleanly. A few quick calls: tighten the type tracking, drop the drop-shadow, and reserve an 8px safe area around the text so it breathes on small sizes."}]},{id:"u0a",role:"user",parts:[{type:"file",url:"data:text/plain;base64,"+btoa(`# Project notes
|
|
1313
|
+
`)}const Zmt=1024,Xmt=500,Kmt=/^[a-zA-Z0-9_-]+$/,Qmt=64,__=50,yG=16384,XR=Lh().min(1).max(Zmt).refine(t=>!t.includes(".."),"path traversal not allowed").refine(t=>!t.includes("\0"),"null bytes not allowed"),Jmt=ko({path:XR,mode:DD(["view","edit","diff"]).optional()}),egt=ko({id:Lh().max(Qmt).regex(Kmt,"invalid panel ID"),component:Lh().min(1),params:AD(cY()).optional().refine(t=>{if(!t)return!0;try{return new TextEncoder().encode(JSON.stringify(t)).byteLength<=yG}catch{return!1}},`params must be JSON-serializable and under ${yG} bytes`),title:Lh().max(200).optional()}),tgt=ko({id:Lh().min(1)}),rgt=ko({msg:Lh().max(Xmt),level:DD(["info","warn","error"]).optional()}),ngt=ko({file:XR,line:F0().int().positive()}),igt=ko({path:XR});function sgt(t){let e=0;const r=new Map;function n(){return++e}function i(){return{seq:n(),status:"ok"}}function s(l,c){return{seq:n(),status:"error",error:{code:l,message:c}}}function a(l,c){const u=r.get(l);if(u)for(const d of[...u])try{d(c)}catch(m){console.error(`[bridge] listener for "${String(l)}" threw:`,m)}}const o={getOpenPanels(){return t.getState().panels},getActiveFile(){return t.getState().activeFile},getDirtyFiles(){return Object.keys(t.getState().dirtyFiles)},getVisibleFiles(){return t.getState().visibleFiles},async openFile(l,c){const u=Jmt.safeParse({path:l,mode:c==null?void 0:c.mode});if(!u.success)return s("VALIDATION",u.error.issues[0].message);const d=t.getState(),m=u.data.mode??"edit",p=`file:${l}`;if(d.panels.find(y=>y.id===p)){const y=d.activePanel;return d.activatePanel(p),d.visibleFiles.includes(l)||d.openFile(l,p),a("panel:activated",{panelId:p,previousPanelId:y}),i()}return d.panels.length>=__?s("MAX_PANELS",`cannot exceed ${__} open panels`):(d.openFile(l,p),d.openPanel({id:p,component:"editor",params:{path:l,mode:m}}),a("file:opened",{path:l,mode:m}),a("panel:opened",{panelId:p,params:{path:l,mode:m}}),i())},async openPanel(l){const c=egt.safeParse(l);if(!c.success)return s("VALIDATION",c.error.issues[0].message);const u=t.getState();if(u.panels.find(d=>d.id===l.id)){const d=u.activePanel;return u.activatePanel(l.id),a("panel:activated",{panelId:l.id,previousPanelId:d}),i()}return u.panels.length>=__?s("MAX_PANELS",`cannot exceed ${__} open panels`):(u.openPanel({id:l.id,component:l.component,params:l.params}),a("panel:opened",{panelId:l.id,params:l.params??{}}),i())},async closePanel(l){const c=tgt.safeParse({id:l});if(!c.success)return s("VALIDATION",c.error.issues[0].message);const u=t.getState(),d=u.panels.find(m=>m.id===l);return d?d.essential?s("ESSENTIAL",`panel ${l} is essential and cannot be closed`):(u.closePanel(l),a("panel:closed",{panelId:l}),i()):s("NOT_FOUND",`panel ${l} not found`)},async closeWorkbenchLeftPane(){return t.getState().setSidebar({collapsed:!0}),a("sidebar:toggled",{collapsed:!0}),i()},async showNotification(l,c="info"){const u=rgt.safeParse({msg:l,level:c});if(!u.success)return s("VALIDATION",u.error.issues[0].message);const d=u.data.level??"info",m=d==="warn"?"warning":d;return t.getState().showNotification({message:u.data.msg,type:m}),a("notification:shown",{message:u.data.msg,level:d}),i()},async navigateToLine(l,c){const u=ngt.safeParse({file:l,line:c});if(!u.success)return s("VALIDATION",u.error.issues[0].message);const d=await o.openFile(l);return d.status==="error"?d:(t.getState().navigateToLine(l,u.data.line),i())},async expandToFile(l){const c=igt.safeParse({path:l});if(!c.success)return s("VALIDATION",c.error.issues[0].message);const u=t.getState();return u.sidebar.collapsed&&(u.setSidebar({collapsed:!1}),a("sidebar:toggled",{collapsed:!1})),a("tree:expand",{path:c.data.path}),i()},markDirty(l){t.getState().markDirty(l,"bridge"),a("file:dirty",{path:l,dirty:!0})},markClean(l){t.getState().markClean(l),a("file:dirty",{path:l,dirty:!1})},subscribe(l,c){let u=r.get(l);u||(u=new Set,r.set(l,u));const d=c;return u.add(d),()=>u.delete(d)},select(l,c){let u=l(t.getState());return t.subscribe(d=>{const m=l(d);Object.is(m,u)||(u=m,c(m))})}};return o}const agt=100,ogt=3e3;function bG(t){const e={"Content-Type":"application/json"};return t&&(e.Authorization=`Bearer ${t}`),e}function lgt(t,e){const r=t.getState();return{v:1,causedBy:e,openPanels:r.panels,activePanel:r.activePanel,activeFile:r.activeFile,visibleFiles:r.visibleFiles,dirtyFiles:Object.keys(r.dirtyFiles)}}async function vG(t,e,r){switch(e){case"openFile":await t.openFile(r.path,r.mode?{mode:r.mode}:void 0);break;case"openPanel":await t.openPanel({id:r.id,component:r.component,params:r.params,title:r.title});break;case"closePanel":await t.closePanel(r.id);break;case"closeWorkbenchLeftPane":await t.closeWorkbenchLeftPane();break;case"showNotification":await t.showNotification(r.msg,r.level);break;case"navigateToLine":await t.navigateToLine(r.file,r.line);break;case"expandToFile":await t.expandToFile(r.path);break;case"markDirty":t.markDirty(r.path);break;case"markClean":t.markClean(r.path);break}}function cgt(t){const{endpoint:e,bridge:r,store:n,authToken:i,pollMode:s=!1,pollInterval:a=ogt,onAuthError:o,onVersionMismatch:l,onConnectionChange:c}=t;let u=null,d=null,m=null,p=null,y=!1,b=!1,v=0;function x(O){b||y!==O&&(y=O,c==null||c(O))}async function w(O){if(b)return;const U=lgt(n,O);try{const $=await fetch(`${e}/api/v1/ui/state`,{method:"PUT",headers:bG(i),body:JSON.stringify(U)});if(b)return;($.status===401||$.status===403)&&(o==null||o($.status))}catch{}}function C(O){m!==null&&clearTimeout(m),m=setTimeout(()=>{m=null,w(O)},agt)}function S(O,U){if(!b)switch(O){case"init":{x(!0),w("restore");break}case"command":{let $;try{$=JSON.parse(U)}catch{return}if($.v!==1){l==null||l($.v);return}v++,vG(r,$.kind,$.params).finally(()=>{v--});break}case"error":{let $;try{$=JSON.parse(U)}catch{return}if($.v!==1){l==null||l($.v);return}r.showNotification($.message,"error");break}}}function D(){const O=`${e}/api/v1/ui/commands/next`,U=new EventSource(O,{withCredentials:!0});U.addEventListener("init",$=>{S("init",$.data)}),U.addEventListener("command",$=>{S("command",$.data)}),U.addEventListener("error",$=>{$.data?S("error",$.data):x(!1)}),U.addEventListener("heartbeat",$=>{S("heartbeat",$.data)}),u=U}async function L(){if(!b)try{const O=`${e}/api/v1/ui/commands/next?poll=true`,U=await fetch(O,{headers:bG(i)});if(b)return;if(U.status===401||U.status===403){o==null||o(U.status);return}if(!U.ok)return;const $=await U.json();if(!Array.isArray($))return;for(const j of $){if(b)return;if(j.v!==1){l==null||l(j.v);continue}v++;try{await vG(r,j.kind,j.params)}finally{v--}}x(!0)}catch{x(!1)}}function R(){p=n.subscribe(()=>{if(b)return;const O=v>0?"agent":"user";C(O)})}return{connect(){b=!1,!s&&typeof EventSource<"u"?D():(L(),d=setInterval(L,a)),R()},disconnect(){u&&(u.close(),u=null),d!==null&&(clearInterval(d),d=null),m!==null&&(clearTimeout(m),m=null),p&&(p(),p=null),x(!1),b=!0},pushState(O){w(O)}}}const ugt=new Set(["openFile","openSurface","openPanel","navigateToLine","expandToFile","showNotification","closePanel","closeWorkbenchLeftPane"]);function B0(t,e){const r=t[e];return typeof r=="string"&&r.length>0?r:null}function Ife(t,e){const r=t[e];if(r!==null&&typeof r=="object"&&!Array.isArray(r))return r}function hgt(t){const e=B0(t,"kind"),r=B0(t,"target");return!e||!r?null:{kind:e,target:r,meta:Ife(t,"meta")}}const dgt=60;function oh(t,e,r=dgt){const n=t.surface();if(n){e(n);return}!t.isWorkbenchOpen()||r<=0||requestAnimationFrame(()=>oh(t,e,r-1))}function vS(t,e){if(ugt.has(t.kind))switch(t.kind){case"openFile":{const r=B0(t.params,"path");if(!r)return;const n=!e.isWorkbenchOpen();n&&e.openWorkbench();const i=s=>{try{s.openFile(r)}catch(a){console.warn("[uiCommandDispatcher] openFile dispatch failed:",a instanceof Error?a.message:a)}};n?requestAnimationFrame(()=>requestAnimationFrame(()=>oh(e,i))):oh(e,i);return}case"openSurface":{const r=hgt(t.params);if(!r)return;const n=!e.isWorkbenchOpen();n&&e.openWorkbench();const i=s=>{try{s.openSurface(r)}catch(a){console.warn("[uiCommandDispatcher] openSurface dispatch failed:",a instanceof Error?a.message:a)}};n?requestAnimationFrame(()=>requestAnimationFrame(()=>oh(e,i))):oh(e,i);return}case"openPanel":{const r=B0(t.params,"id"),n=B0(t.params,"component");if(!r||!n)return;const i={id:r,component:n,title:B0(t.params,"title")??void 0,params:Ife(t.params,"params")},s=!e.isWorkbenchOpen();s&&e.openWorkbench();const a=o=>{try{o.openPanel(i)}catch(l){console.warn("[uiCommandDispatcher] openPanel dispatch failed:",l instanceof Error?l.message:l)}};s?requestAnimationFrame(()=>requestAnimationFrame(()=>oh(e,a))):oh(e,a);return}case"closeWorkbenchLeftPane":{oh(e,r=>r.closeWorkbenchLeftPane());return}}}function fgt(){const t=new Map;function e(i,s){let a=t.get(i);return a||(a=new Set,t.set(i,a)),a.add(s),()=>a.delete(s)}function r(i,s){const a=t.get(i);if(a)for(const o of[...a])try{o(s)}catch(l){console.error(`[events] listener for "${String(i)}" threw:`,l)}}function n(){t.clear()}return{on:e,emit:r,_reset:n}}const pgt="workspace:ui.command",mgt="workspace:editor.save.start",ggt="workspace:editor.save.end",ygt="workspace:panel.update",bgt="workspace:panel.close",vgt="workspace:agent.data",qa={uiCommand:pgt,editorSaveStart:mgt,editorSaveEnd:ggt,panelUpdate:ygt,panelClose:bgt,agentData:vgt};function Ng(){return{cause:"user",ts:Date.now()}}function xgt(t){return{cause:"agent",toolCallId:t,ts:Date.now()}}function sy(t){return{cause:"remote",toolCallId:t,ts:Date.now()}}function uD(t,e){const r=k.useRef(e);r.current=e,k.useEffect(()=>Hr.on(t,n=>r.current(n)),[t])}function _gt(t){Hr.emit(qa.agentData,{ts:Date.now(),part:t})}const Hr=fgt(),hD="boring-workspace:ui-command";function xS(t){Hr.emit(qa.uiCommand,{...Ng(),command:t}),typeof globalThis.dispatchEvent=="function"&&typeof CustomEvent<"u"&&globalThis.dispatchEvent(new CustomEvent(hD,{detail:t}))}const wgt=1500,Cgt=1e3,Tgt=5;function xG(t,e){if(!e)return t;const r=new URLSearchParams;for(const[i,s]of Object.entries(e))s!=null&&r.set(i,String(s));const n=r.toString();return n?`${t}${t.includes("?")?"&":"?"}${n}`:t}function kgt(t){const e=t.endpoint??"",r=t.ctx,n=t.query,i=t.eventSourceCtor===null?null:t.eventSourceCtor??(typeof EventSource<"u"?EventSource:null),s=t.fetcher??(typeof fetch<"u"?fetch:null),a=t.reconnectDelayMs??Cgt,o=t.maxReconnects??Tgt,l=t.pollIntervalMs??wgt;let c=!1,u=null,d=null,m=null,p=null,y=0,b=!1;function v(C){C&&typeof C=="object"&&typeof C.kind=="string"&&vS(C,r)}function x(){if(c||b||!s)return;b=!0;const C=async()=>{if(!c){m=new AbortController;try{const S=await s(xG(`${e}/api/v1/ui/commands/next?poll=true`,n),{signal:m.signal});if(c)return;if(S.ok){const D=await S.json();if(Array.isArray(D))for(const L of D)v(L)}}catch{}finally{m=null}c||(d=setTimeout(C,l))}};C()}function w(){if(!c){if(!i){x();return}u=new i(xG(`${e}/api/v1/ui/commands/next`,n)),u.addEventListener("command",C=>{const S=C.data;if(!(typeof S!="string"||S.length===0))try{v(JSON.parse(S))}catch{}}),u.addEventListener("init",()=>{y=0}),u.addEventListener("error",()=>{if(!c){if(u==null||u.close(),u=null,y+=1,y>o){x();return}p=setTimeout(w,a*y)}})}}return w(),()=>{c=!0,u&&(u.close(),u=null),d&&(clearTimeout(d),d=null),m&&(m.abort(),m=null),p&&(clearTimeout(p),p=null)}}const Sgt=1e4,Egt=3,Agt=1e3;function _G(t){return t>=500}function Dgt(t){return new Promise(e=>setTimeout(e,t))}class Lgt{constructor(e){qr(this,"baseUrl"),qr(this,"headers"),qr(this,"onAuthError"),qr(this,"onTimeout"),qr(this,"timeout"),qr(this,"maxRetries"),qr(this,"retryBaseMs"),this.baseUrl=e.apiBaseUrl.replace(/\/$/,""),this.headers={"Content-Type":"application/json",...e.authHeaders},this.onAuthError=e.onAuthError,this.onTimeout=e.onTimeout,this.timeout=e.timeout??Sgt,this.maxRetries=e.maxRetries??Egt,this.retryBaseMs=e.retryBaseMs??Agt}async request(e,r,n,i,s){var a,o;const l=i??this.timeout;let c=null;for(let u=0;u<=this.maxRetries;u++){u>0&&await Dgt(this.retryBaseMs*2**(u-1));const d=new AbortController,m=()=>d.abort();s==null||s.addEventListener("abort",m,{once:!0});const p=setTimeout(()=>d.abort(),l);try{const y=await fetch(`${this.baseUrl}${r}`,{method:e,headers:this.headers,body:n!=null?JSON.stringify(n):void 0,signal:d.signal});if(clearTimeout(p),s==null||s.removeEventListener("abort",m),y.status===401||y.status===403)throw(a=this.onAuthError)==null||a.call(this,y.status),new lh(y.status,`Auth error: ${y.status}`);if(_G(y.status)){c=new lh(y.status,`HTTP ${y.status}: ${y.statusText}`);continue}if(!y.ok){const b=await Igt(y);throw new lh(y.status,`HTTP ${y.status}: ${y.statusText}`,b)}return await y.json()}catch(y){if(clearTimeout(p),s==null||s.removeEventListener("abort",m),y instanceof lh&&!_G(y.status))throw y;if(y instanceof DOMException&&y.name==="AbortError"){if(s!=null&&s.aborted)throw y;(o=this.onTimeout)==null||o.call(this,r),c=new lh(0,`Request timeout after ${l}ms: ${r}`);continue}if(y instanceof TypeError){c=y;continue}throw y}}throw c??new lh(0,"Request failed after retries")}async getTree(e,r){return(await this.request("GET",`/api/v1/tree?path=${encodeURIComponent(e)}`,void 0,void 0,r)).entries}async getFile(e,r){return this.request("GET",`/api/v1/files?path=${encodeURIComponent(e)}`,void 0,void 0,r)}async writeFile(e,r,n){try{return{mtimeMs:(await this.request("POST","/api/v1/files",(n==null?void 0:n.expectedMtimeMs)!=null?{path:e,content:r,expectedMtimeMs:n.expectedMtimeMs}:{path:e,content:r})).mtimeMs}}catch(i){throw i instanceof lh&&i.status===409?Zb.from(i,e):i}}async deleteFile(e){await this.request("DELETE",`/api/v1/files?path=${encodeURIComponent(e)}`)}async stat(e,r){return this.request("GET",`/api/v1/stat?path=${encodeURIComponent(e)}`,void 0,void 0,r)}async search(e,r,n){const i=new URLSearchParams({q:e});return r!=null&&i.set("limit",String(r)),(await this.request("GET",`/api/v1/files/search?${i}`,void 0,void 0,n)).results}async createDir(e){await this.request("POST","/api/v1/dirs",{path:e})}async moveFile(e,r){await this.request("POST","/api/v1/files/move",{from:e,to:r})}}class lh extends Error{constructor(e,r,n){super(r),this.status=e,this.body=n,this.name="FetchError"}}class Zb extends Error{constructor(e,r,n){super(`File modified on server: ${e}`),this.path=e,this.currentMtimeMs=r,this.expectedMtimeMs=n,this.name="FileConflictError"}static from(e,r){var n,i;const s=e.body&&typeof e.body=="object"?e.body:null;return new Zb(r,typeof((n=s==null?void 0:s.error)==null?void 0:n.currentMtimeMs)=="number"?s.error.currentMtimeMs:null,typeof((i=s==null?void 0:s.error)==null?void 0:i.expectedMtimeMs)=="number"?s.error.expectedMtimeMs:null)}}async function Igt(t){try{const e=await t.text();return e?JSON.parse(e):null}catch{return null}}const Rgt="filesystem:file.changed",Ogt="filesystem:file.created",Ngt="filesystem:file.moved",Mgt="filesystem:file.deleted",Zn={changed:Rgt,created:Ogt,moved:Ngt,deleted:Mgt},uw="filesystem",Rfe="files",hw=Rfe,KR="files",Pgt="filesystem-path",Ofe="code-editor",Nfe="csv-viewer",Mfe="markdown-editor",Pfe="image-viewer",Bfe="pdf-viewer",Ffe="html-viewer",$fe="empty-file-panel";function Bgt(){const t=uS(),e=gp(),r=yp();k.useEffect(()=>{const n=Hr.on(Zn.changed,o=>{ay(t,e,r,o.path)}),i=Hr.on(Zn.created,o=>{l6(t,e,r),o.kind==="file"&&ay(t,e,r,o.path)}),s=Hr.on(Zn.moved,o=>{l6(t,e,r),ay(t,e,r,o.from),ay(t,e,r,o.to),wG(t,e,r)}),a=Hr.on(Zn.deleted,o=>{l6(t,e,r),ay(t,e,r,o.path),wG(t,e,r)});return()=>{n(),i(),s(),a()}},[t,e,r])}function ay(t,e,r,n){t.invalidateQueries({queryKey:[e,r,KR,n]}),t.invalidateQueries({queryKey:[e,r,"stat",n]})}function l6(t,e,r){t.invalidateQueries({queryKey:[e,r,"tree"]})}function wG(t,e,r){t.invalidateQueries({queryKey:[e,r,"search"]})}function Fgt(){const t=gp(),e=yp(),r=uS();k.useEffect(()=>{if(typeof window>"u"||typeof EventSource>"u")return;const n=Hgt(jgt(t,"/api/v1/fs/events"),e);let i,s=!1;const a=new Set,o=[],l=256;try{i=new EventSource(n,{withCredentials:!0})}catch{return}const c=p=>{if(a.has(p))return!1;if(a.add(p),o.push(p),o.length>l){const y=o.shift();y!==void 0&&a.delete(y)}return!0},u=p=>{let y;try{y=JSON.parse(p.data)}catch{return}typeof(y==null?void 0:y.eventId)!="string"||typeof y.change!="object"||y.change==null||c(y.eventId)&&$gt(y.change)},d=()=>{s=!0,i==null||i.close()},m=()=>{a.clear(),o.length=0,r.invalidateQueries({predicate:p=>zgt(p.queryKey)})};return i.addEventListener("change",u),i.addEventListener("unsupported",d),i.addEventListener("resync-required",m),()=>{i&&(i.removeEventListener("change",u),i.removeEventListener("unsupported",d),i.removeEventListener("resync-required",m),s||i.close(),i=null)}},[t,e,r])}function $gt(t){switch(t.op){case"write":Hr.emit(Zn.changed,{...sy(),path:t.path});return;case"mkdir":Hr.emit(Zn.created,{...sy(),path:t.path,kind:"dir"});return;case"unlink":Hr.emit(Zn.deleted,{...sy(),path:t.path});return;case"rename":t.oldPath?Hr.emit(Zn.moved,{...sy(),from:t.oldPath,to:t.path}):Hr.emit(Zn.created,{...sy(),path:t.path,kind:"file"});return}}function zgt(t){for(const e of t)if(e===KR||e==="tree"||e==="stat"||e==="search")return!0;return!1}function jgt(t,e){return t?t.endsWith("/")&&e.startsWith("/")?t+e.slice(1):!t.endsWith("/")&&!e.startsWith("/")?`${t}/${e}`:t+e:e}function Hgt(t,e){if(!e)return t;const r=t.includes("?")?"&":"?";return`${t}${r}workspaceId=${encodeURIComponent(e)}`}const zfe=k.createContext(null),jfe=k.createContext(""),Hfe=k.createContext(null);function yu(){const t=k.useContext(zfe);if(!t)throw new Error("useDataClient must be used within a DataProvider");return t}function gp(){return k.useContext(jfe)}function yp(){return k.useContext(Hfe)}function Vgt({apiBaseUrl:t,authHeaders:e,onAuthError:r,timeout:n,client:i,children:s}){const a=k.useRef(null);a.current||(a.current=new ipt({defaultOptions:{queries:{retry:3,retryDelay:c=>Math.min(1e3*2**c,3e4)}}}));const o=k.useMemo(()=>i??new Lgt({apiBaseUrl:t,authHeaders:e,onAuthError:r,timeout:n}),[i,t,e,r,n]),l=(e==null?void 0:e["x-boring-workspace-id"])??(e==null?void 0:e["X-Boring-Workspace-Id"])??null;return T.jsx(spt,{client:a.current,children:T.jsx(jfe.Provider,{value:t,children:T.jsx(Hfe.Provider,{value:l,children:T.jsxs(zfe.Provider,{value:o,children:[T.jsx(Ugt,{}),s]})})})})}function Ugt(){return Bgt(),Fgt(),null}const qgt=new Map;function Ggt(t){return(t??"").replace(/\/$/,"")}function Wgt(t){return t&&t.length>0?t:"."}function Ygt(t,e,r){return`${Ggt(t)}\0${e??""}\0${Wgt(r)}`}function Zgt(t,e,r){return qgt.get(Ygt(t,e,r))}function QR(t,e){return e instanceof lh&&e.status===404?!1:t<3}function Xgt(t){const e=yu(),r=gp(),n=yp();return BR({queryKey:[r,n,KR,t],queryFn:({signal:i})=>e.getFile(t,i),enabled:t!=null,staleTime:0,retry:QR})}function Vfe(t){const e=yu(),r=gp(),n=yp();return BR({queryKey:[r,n,"tree",t],queryFn:async({signal:i})=>await e.getTree(t,i)??[],enabled:t!=null,staleTime:3e3,initialData:()=>Zgt(r,n,t),retry:QR})}function Kgt(t,e){const r=yu(),n=gp(),i=yp(),[s,a]=k.useState(t),o=k.useRef(void 0);return k.useEffect(()=>(clearTimeout(o.current),o.current=setTimeout(()=>a(t),300),()=>clearTimeout(o.current)),[t]),BR({queryKey:[n,i,"search",s,e],queryFn:({signal:l})=>r.search(s,e,l),enabled:s.length>0,retry:QR})}function Ufe(){const t=yu();return hS({mutationFn:({path:e,content:r,expectedMtimeMs:n})=>t.writeFile(e,r,n!=null?{expectedMtimeMs:n}:void 0),onSuccess:(e,{path:r})=>{Hr.emit(Zn.changed,{...Ng(),path:r})}})}function Qgt(){const t=yu();return hS({mutationFn:({path:e})=>t.createDir(e),onSuccess:(e,{path:r})=>{Hr.emit(Zn.created,{...Ng(),path:r,kind:"dir"})}})}function Jgt(){const t=yu();return hS({mutationFn:({from:e,to:r})=>t.moveFile(e,r),onSuccess:(e,{from:r,to:n})=>{Hr.emit(Zn.moved,{...Ng(),from:r,to:n})}})}function e1t(){const t=yu();return hS({mutationFn:({path:e})=>t.deleteFile(e),onSuccess:(e,{path:r})=>{Hr.emit(Zn.deleted,{...Ng(),path:r})}})}class t1t{constructor(e={}){qr(this,"panels",new Map),qr(this,"registrationOrder",[]),qr(this,"capabilities"),qr(this,"listeners",new Set),qr(this,"snapshotCache",null),qr(this,"subscribe",r=>(this.listeners.add(r),()=>{this.listeners.delete(r)})),qr(this,"getSnapshot",()=>(this.snapshotCache||(this.snapshotCache=this.filteredPanels()),this.snapshotCache)),this.capabilities=new Set(Object.entries(e).filter(([,r])=>r).map(([r])=>r))}register(e,r){const n=typeof r.component=="function"&&r.component.length===0&&/\bimport\s*\(/.test(r.component.toString()),i=this.panels.has(e);this.panels.set(e,{...r,id:e,lazy:r.lazy??n}),i||this.registrationOrder.push(e),this.emit()}unregisterByPluginId(e){let r=!1;for(const[n,i]of this.panels)i.pluginId===e&&(this.panels.delete(n),this.registrationOrder=this.registrationOrder.filter(s=>s!==n),r=!0);r&&this.emit()}get(e){return this.panels.get(e)}has(e){return this.panels.has(e)}list(){return this.filteredPanels()}getComponents(){const e={};for(const r of this.filteredPanels()){let n;r.lazy?n=k.lazy(r.component):n=r.component;const i=r.pluginId??r.id,s=r.id,a=r.lazy;e[r.id]=function(o){const l=k.createElement(n,o);return k.createElement(bS,{pluginId:i,contributionKind:"panel",contributionId:s},a?k.createElement(k.Suspense,{fallback:k.createElement(r1t)},l):l)}}return e}emit(){this.snapshotCache=null;for(const e of[...this.listeners])e()}filteredPanels(){return this.registrationOrder.map(e=>this.panels.get(e)).filter(e=>this.satisfiesCapabilities(e))}satisfiesCapabilities(e){var r;return(r=e.requiresCapabilities)!=null&&r.length?e.requiresCapabilities.every(n=>this.capabilities.has(n)):!0}}function r1t(){return k.createElement("div",{style:{display:"flex",height:"100%",alignItems:"center",justifyContent:"center"},className:"text-sm text-muted-foreground animate-pulse"},"Loading…")}class n1t{constructor(){qr(this,"commands",new Map),qr(this,"listeners",new Set),qr(this,"snapshotCache",null),qr(this,"subscribe",e=>(this.listeners.add(e),()=>{this.listeners.delete(e)})),qr(this,"getSnapshot",()=>(this.snapshotCache||(this.snapshotCache=this.getCommands()),this.snapshotCache))}registerCommand(e){this.commands.set(e.id,e),this.emit()}unregisterByPluginId(e){let r=!1;for(const[n,i]of this.commands)i.pluginId===e&&(this.commands.delete(n),r=!0);r&&this.emit()}unregisterCommand(e){this.commands.delete(e)&&this.emit()}getCommand(e){return this.commands.get(e)}getCommands(){return Array.from(this.commands.values())}getActiveCommands(){return this.getCommands().filter(e=>{if(!e.when)return!0;try{return e.when()}catch{return!1}})}emit(){this.snapshotCache=null;for(const e of[...this.listeners])e()}}const CG={ts:wi,tsx:wi,js:wi,jsx:wi,mjs:wi,cjs:wi,py:wi,rb:wi,go:wi,rs:wi,java:wi,c:wi,cpp:wi,h:wi,cs:wi,swift:wi,kt:wi,sh:wi,bash:wi,zsh:wi,json:rz,jsonl:rz,md:Ra,mdx:Ra,txt:Ra,csv:Ra,tsv:Ra,yaml:Ra,yml:Ra,toml:Ra,ini:Ra,cfg:Ra,conf:Ra,env:Ra,png:Ic,jpg:Ic,jpeg:Ic,gif:Ic,svg:Ic,webp:Ic,ico:Ic,bmp:Ic};function i1t(t){var e;const r=(e=t.split(".").pop())==null?void 0:e.toLowerCase();return r&&r in CG?CG[r]:py}const K0="workspace.open.path";let dD=null;function s1t(t){dD=t}function qfe(){if(!dD)throw new Error("Workspace store not initialized. Wrap your app in WorkspaceProvider.");return dD}function a1t(){return IR(qfe(),t=>t.preferences.theme)}function o1t(){return IR(qfe(),t=>t.hydrationComplete)}function l1t(t){const{api:e}=t,[r,n]=k.useState(e.title??e.id);k.useEffect(()=>{var u;const d=()=>n(e.title??e.id);d();const m=(u=e.onDidTitleChange)==null?void 0:u.call(e,d);return()=>{var p;return(p=m==null?void 0:m.dispose)==null?void 0:p.call(m)}},[e]);const i=r.endsWith(" ●"),s=i?r.slice(0,-2):r,a=i1t(s),[o,l]=k.useState(!1);uD(qa.editorSaveStart,u=>{u.panelId===e.id&&l(!0)}),uD(qa.editorSaveEnd,u=>{u.panelId===e.id&&l(!1)});const c=u=>{u.stopPropagation(),e.close()};return T.jsxs("div",{className:an("group relative flex h-full w-full min-w-0 items-center gap-1.5 pl-2.5 pr-7 select-none","text-[12.5px] leading-none tracking-tight","cursor-pointer transition-colors"),title:i?`${s} (unsaved changes)`:s,children:[o?T.jsx(NJ,{"data-testid":"tab-saving-spinner","aria-label":"Saving",className:"h-3.5 w-3.5 shrink-0 animate-spin text-[color:var(--accent)]",strokeWidth:2}):T.jsx(a,{className:an("h-3.5 w-3.5 shrink-0 text-muted-foreground/70","[.dv-active-tab_&]:text-[color:var(--accent)] [.active-tab_&]:text-[color:var(--accent)]"),strokeWidth:1.5}),T.jsx("span",{className:"min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap",children:s}),i?T.jsx("span",{"aria-hidden":"true",className:an("mr-1 h-1.5 w-1.5 shrink-0 rounded-full bg-foreground/35","[.dv-active-tab_&]:bg-foreground/45 [.active-tab_&]:bg-foreground/45")}):null,T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",className:an("absolute right-1 top-1/2 h-5 w-5 -translate-y-1/2 text-muted-foreground opacity-0","focus-visible:opacity-100 group-hover:opacity-100","[.dv-active-tab_&]:opacity-50 [.active-tab_&]:opacity-50","[.dv-active-tab_&]:hover:opacity-100 [.active-tab_&]:hover:opacity-100"),onClick:c,"aria-label":`Close ${s}`,children:T.jsx(Bm,{className:"h-3 w-3",strokeWidth:2.25})})]})}const c1t=300,u1t=k.createContext(null);function h1t(t,e){var r;return"id"in e?t.id===e.id:((r=t.params)==null?void 0:r[e.param])===e.value}function TG(t,e){const r=Array.isArray(e)?e:[e],n=new Set,i=[];for(const s of t.panels)r.some(a=>h1t(s,a))&&(n.has(s.id)||(n.add(s.id),i.push(s)));return i}function d1t(t){switch(t){case"left":return"left";case"right":return"right";case"bottom":return"below";case"center":default:return"within"}}function f1t(t){function e(){if(!t.current)throw new Error("DockviewShell not initialized");return t.current}return{addPanel(r,n){const i=e(),s=i.groups.find(a=>a.id===r);i.addPanel({id:n.id,component:n.component,title:n.title,params:n.params,position:s?{referenceGroup:s}:void 0})},removePanel(r){const n=e(),i=n.getPanel(r);i&&n.removePanel(i)},activatePanel(r){const n=e().getPanel(r);n&&n.api.setActive()},movePanel(r,n){const i=e(),s=i.getPanel(r);if(!s)return;const a=s.view.contentComponent,o=s.params,l=s.title;i.removePanel(s);const c={id:r,component:a,params:o,title:l};if("groupId"in n){const u=i.groups.find(d=>d.id===n.groupId);i.addPanel({...c,position:u?{referenceGroup:u}:void 0})}else{const u=i.getPanel(n.referencePanelId);i.addPanel({...c,position:u?{referencePanel:u,direction:n.direction}:void 0})}},updatePanelParams(r,n){const i=e().getPanel(r);i&&i.api.updateParameters({...i.params??{},...n})},setPanelTitle(r,n){const i=e().getPanel(r);i&&i.api.setTitle(n)},findPanelsByParam(r,n){return e().panels.filter(i=>{var s;return((s=i.params)==null?void 0:s[r])===n}).map(i=>i.id)},getActivePanel(){var r;return((r=e().activePanel)==null?void 0:r.id)??null},toJSON(){return e().toJSON()}}}function p1t(t){if(!t.constraints)return null;let e=t.constraints.maxWidth;const r=t.constraints.maxWidthViewportRatio;if(typeof r=="number"&&r>0&&typeof window<"u"){const n=Math.floor(window.innerWidth*r);e=typeof e=="number"?Math.min(e,n):n}return{minimumWidth:t.constraints.minWidth,maximumWidth:e,minimumHeight:t.constraints.minHeight,maximumHeight:t.constraints.maxHeight}}function kG(t,e){const r=t.getPanel(e.panel??e.id);if(!(r!=null&&r.group))return;const n=p1t(e);n&&r.group.api.setConstraints(n)}function m1t(t,e,r,n,i,s){const a=t.api;if(s.current=a,r)a.fromJSON(r);else{let u=!1;for(const d of e.groups)if(d.panel){if(!n.has(d.panel)){console.error(`[DockviewShell] Panel "${d.panel}" not found in registry. Available: ${n.list().map(m=>m.id).join(", ")}`);continue}a.addPanel({id:d.panel,component:d.panel,params:d.params,position:u?{direction:d1t(d.position)}:void 0}),u=!0}}for(const u of e.groups){const d=a.getPanel(u.panel??u.id);d!=null&&d.group&&(u.locked&&(d.group.locked="no-drop-target"),u.hideHeader&&(d.group.header.hidden=!0),kG(a,u))}const o=e.groups.filter(u=>{var d;return typeof((d=u.constraints)==null?void 0:d.maxWidthViewportRatio)=="number"});let l;if(o.length>0){const u=()=>{for(const d of o)kG(a,d)};window.addEventListener("resize",u),l=()=>window.removeEventListener("resize",u)}let c;if(i){let u=null;const d=()=>{u&&clearTimeout(u),u=setTimeout(()=>{i(a.toJSON())},c1t)},m=a.onDidLayoutChange(d),p=()=>{u&&(clearTimeout(u),i(a.toJSON()))};window.addEventListener("beforeunload",p),c=()=>{p(),m.dispose(),window.removeEventListener("beforeunload",p),l==null||l()}}else c=()=>{l==null||l()};return c}function g1t({layout:t,persistedLayout:e,onReady:r,onLayoutChange:n,allowedPanels:i,className:s,prefixHeaderActions:a,rightHeaderActions:o,watermarkComponent:l}){const c=Zv(),u=o1t(),d=k.useRef(null),m=k.useRef(null),p=k.useRef(void 0),y=k.useMemo(()=>{const w=c.getComponents();return i?Object.fromEntries(Object.entries(w).filter(([C])=>i.includes(C))):w},[c,i]),b=k.useMemo(()=>f1t(d),[]),v=k.useCallback(w=>{var C;(C=p.current)==null||C.call(p),p.current=m1t(w,t,e,c,n,d),r==null||r(w.api)},[t,e,c,n,r]);k.useEffect(()=>()=>{var w;return(w=p.current)==null?void 0:w.call(p)},[]),k.useEffect(()=>{const w=Hr.on(qa.panelUpdate,({match:S,params:D,title:L})=>{const R=d.current;if(R)for(const O of TG(R,S))D&&O.api.updateParameters({...O.params??{},...D}),L&&O.api.setTitle(L)}),C=Hr.on(qa.panelClose,({match:S})=>{const D=d.current;if(D)for(const L of TG(D,S))D.removePanel(L)});return()=>{w(),C()}},[]);const x=k.useCallback(w=>{if(!u){m.current=w;return}v(w)},[u,v]);return k.useEffect(()=>{u&&m.current&&(v(m.current),m.current=null)},[u,v]),u?T.jsx(u1t.Provider,{value:b,children:T.jsx(Cfe,{className:`dv-shell ${s??""}`,components:y,defaultTabComponent:l1t,prefixHeaderActionsComponent:a,rightHeaderActionsComponent:o,watermarkComponent:l,onReady:x})}):T.jsx(y1t,{})}function y1t(){return T.jsx(AJ,{centered:!0,className:"bg-background",label:"Loading workspace..."})}function b1t(t){return{get panelId(){return t.id},get title(){return t.title??t.id},setTitle(e){t.setTitle(e)},close(){t.close()},focus(){t.setActive()},get isActive(){return t.isActive}}}function Gfe({title:t,icon:e,essential:r,children:n,className:i,panelApi:s}){return k.useMemo(()=>s?b1t(s):null,[s]),T.jsxs("div",{className:an("flex h-full flex-col overflow-hidden",i),children:[T.jsxs("div",{className:"flex h-9 shrink-0 items-center gap-2 border-b border-border bg-muted/50 px-3",children:[e&&T.jsx(e,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),T.jsx("span",{className:"truncate text-sm font-medium",children:t}),T.jsx("div",{className:"flex-1"}),!r&&s&&T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",className:"h-5 w-5 text-muted-foreground",onClick:()=>s.close(),"aria-label":`Close ${t}`,children:T.jsx("svg",{className:"h-3 w-3",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:T.jsx("path",{d:"M18 6 6 18M6 6l12 12"})})})]}),T.jsx("div",{className:"flex-1 overflow-auto",children:n})]})}const v1t=5e3,x1t=["node_modules",".git",".boring-agent","dist","test-results",/^\.tsbuildinfo/,".vite",".turbo",".next",".cache"];function fD(t,e){for(const r of e)if(typeof r=="string"?r===t:r.test(t))return!0;return!1}function _1t(t,e){return e.length===0?t:t==null?void 0:t.filter(r=>!fD(r.name,e))}function Wfe(t){const e=t.trim();if(!e)return e;const r=/[*?\[\]{}]/.test(e)?e:`*${e}*`;return w1t(r)}function w1t(t){let e="",r=!1,n=!1;for(const i of t){if(n){e+=i,n=!1;continue}if(i==="\\"){e+=i,n=!0;continue}if(i==="["&&!r){r=!0,e+=i;continue}if(i==="]"&&r){r=!1,e+=i;continue}if(!r&&/[a-z]/i.test(i)){const s=i.toLowerCase(),a=i.toUpperCase();e+=s===a?i:`[${a}${s}]`;continue}e+=i}return e}const Yfe=()=>M(()=>import("./FileTree-BVfqs3rR-Cj1lLRuM.js"),__vite__mapDeps([252,253])).then(t=>({default:t.FileTree}));function C1t(){Yfe()}const T1t=k.lazy(Yfe);function Zfe(t,e){const r=[],n=[];for(const i of t)if(i.kind==="dir"){const s=e.get(i.path);r.push({...i,children:s?Zfe(s,e):[]})}else n.push({...i});return r.sort((i,s)=>i.name.localeCompare(s.name)),n.sort((i,s)=>i.name.localeCompare(s.name)),[...r,...n]}function Wd(t){const e=t.lastIndexOf("/");return e>0?t.slice(0,e):"."}function c6(t){return t&&t!==""?t:"."}function u6(t,e){if(!(e!=null&&e.length))return t;const r=new Map;for(const n of t??[])r.set(n.path,n);for(const n of e)r.set(n.path,n);return Array.from(r.values())}function Xfe(t,e,r){if(!e||e.kind==="rename")return t;const n={name:"",path:e.path,kind:e.kind==="create-folder"?"dir":"file",isDraft:!0},i=e.parentDir;return i===r||i==="."||i===""?[n,...t]:t.map(s=>{var a;return s.kind!=="dir"?s:s.path===i?{...s,children:[n,...s.children??[]]}:(a=s.children)!=null&&a.length?{...s,children:Xfe(s.children,e,r)}:s})}async function k1t(t){var e,r;if(typeof navigator<"u"&&(e=navigator.clipboard)!=null&&e.writeText)try{await navigator.clipboard.writeText(t);return}catch{}if(typeof document>"u")throw new Error("Clipboard not available");const n=document.createElement("textarea");n.value=t,n.setAttribute("readonly",""),n.style.position="fixed",n.style.top="-9999px",n.style.left="-9999px",n.style.opacity="0",document.body.appendChild(n);let i=!1;try{n.focus(),n.select(),i=!!((r=document.execCommand)!=null&&r.call(document,"copy"))}finally{document.body.removeChild(n)}if(!i)throw new Error("Clipboard not available")}function SG({rootDir:t=".",searchQuery:e,bridge:r,ignoreNames:n=x1t,className:i}){var s;const a=yu(),{data:o,error:l,isLoading:c}=Vfe(t),[u,d]=k.useState(new Map),m=c6(t),p=k.useMemo(()=>u6(o,u.get(m)),[o,u,m]),y=k.useMemo(()=>_1t(p,n),[p,n]),{mutateAsync:b}=Ufe(),{mutateAsync:v}=Qgt(),{mutateAsync:x}=Jgt(),{mutateAsync:w}=e1t(),[C,S]=k.useState(new Map),D=k.useMemo(()=>{if(u.size===0)return C;const _e=new Map(C);for(const[Me,Ye]of u){if(Me===m)continue;const dt=u6(_e.get(Me),Ye);dt&&_e.set(Me,dt)}return _e},[C,u,m]),L=k.useRef(null),[R,O]=k.useState(400),[U,$]=k.useState(null),[j,K]=k.useState(null),ie=k.useRef(null),[V,H]=k.useState(((s=r==null?void 0:r.getActiveFile)==null?void 0:s.call(r))??null),[F,W]=k.useState(null),[X,ce]=k.useState(null),q=k.useRef(0),Q=((y==null?void 0:y.length)??0)+Array.from(D.values()).reduce((_e,Me)=>_e+Me.length,0)>=v1t&&((e==null?void 0:e.length)??0)>0,{data:ne}=Kgt(Q?Wfe(e??""):"",50);k.useEffect(()=>{if(!U)return;function _e(Me){ie.current&&!ie.current.contains(Me.target)&&$(null)}return document.addEventListener("pointerdown",_e),()=>document.removeEventListener("pointerdown",_e)},[U]),k.useEffect(()=>{var _e;if(H(((_e=r==null?void 0:r.getActiveFile)==null?void 0:_e.call(r))??null),!!(r!=null&&r.select))return r.select(Me=>Me.activeFile,Me=>{H(Me)})},[r]),k.useEffect(()=>{const _e=L.current;if(!_e)return;const Me=new ResizeObserver(([Ye])=>{Ye&&O(Math.floor(Ye.contentRect.height))});return Me.observe(_e),()=>Me.disconnect()},[]);const G=(Q&&ne?ne.map(_e=>({name:_e.split("/").pop()??_e,kind:"file",path:_e})):void 0)??Zfe(y??[],D),ae=Xfe(G,F,t),te=k.useCallback(_e=>{H(_e),r==null||r.openFile(_e,{mode:"edit"})},[r]),oe=k.useCallback(async _e=>{try{const Me=await a.getTree(_e),Ye=n.length===0?Me:Me.filter(dt=>!fD(dt.name,n));S(dt=>new Map(dt).set(_e,Ye))}catch{}},[a,n]),fe=k.useCallback(async(_e,Me)=>{const Ye=Array.from(new Set(_e)).filter($t=>$t&&$t!==t&&$t!==".");if(Ye.length===0)return;const dt=await Promise.all(Ye.map(async $t=>{try{const ar=await a.getTree($t),Ar=n.length===0?ar:ar.filter(br=>!fD(br.name,n));return[$t,Ar]}catch{return null}}));S($t=>{const ar=new Map($t);for(const Ar of dt){if(!Ar)continue;const[br,hr]=Ar;(Me!=null&&Me.force||ar.has(br))&&ar.set(br,hr)}return ar})},[a,t,n]),ke=k.useCallback((_e,Me)=>{d(Ye=>{const dt=c6(_e),$t=new Map(Ye),ar=u6($t.get(dt),[Me])??[Me];return $t.set(dt,ar),$t})},[]),ve=k.useCallback((_e,Me)=>{d(Ye=>{const dt=c6(_e),$t=Ye.get(dt);if(!($t!=null&&$t.length))return Ye;const ar=$t.filter(br=>br.path!==Me),Ar=new Map(Ye);return ar.length>0?Ar.set(dt,ar):Ar.delete(dt),Ar})},[]),[Te,Re]=k.useState(new Set),He=k.useCallback(_e=>{Re(Me=>{const Ye=new Set(Me);return Ye.add(_e),Ye})},[]),Je=k.useCallback(_e=>{Re(Me=>{if(!Me.has(_e))return Me;const Ye=new Set(Me);return Ye.delete(_e),Ye})},[]),ot=k.useCallback((_e,Me)=>{$({node:Me,x:_e.clientX,y:_e.clientY})},[]),er=k.useCallback(_e=>{const Me=_e.target;Me.closest("[role=treeitem]")||Me.closest("[data-path]")||(_e.preventDefault(),$({node:{name:t,kind:"dir",path:t},x:_e.clientX,y:_e.clientY,isBackground:!0}))},[t]),Ur=k.useCallback(async(_e,Me)=>{const Ye=_e.split("/").pop()??_e,dt=Me==="."?t:Me,$t=dt==="."?Ye:`${dt}/${Ye}`;if($t!==_e){He(_e);try{await x({from:_e,to:$t}),await fe([Wd(_e),Wd($t)]),ul.success({title:"Moved",description:`${_e} → ${$t}`})}catch(ar){ul.error({title:"Move failed",description:ar instanceof Error?ar.message:String(ar)})}finally{Je(_e)}}},[x,fe,t,He,Je]);function vn(_e){return()=>{$(null),(async()=>{try{await _e()}catch(Me){ul.error({title:"Action failed",description:Me instanceof Error?Me.message:String(Me)})}})()}}const lt=_e=>{const Me=U==null?void 0:U.node;$(null);const Ye=(Me==null?void 0:Me.kind)==="dir"?Me.path:Me?Wd(Me.path):t,dt=`__draft__:${++q.current}`;W({kind:_e,parentDir:Ye,path:dt})},Wt=()=>lt("create-file"),Cr=()=>lt("create-folder"),kn=()=>{const _e=U==null?void 0:U.node;$(null),_e&&W({kind:"rename",path:_e.path,initialValue:_e.name})},gi=k.useCallback(async(_e,Me)=>{const Ye=F;if(W(null),!Ye)return;const dt=Me.trim();if(!dt)return;const $t=Ye.kind==="rename"?Wd(Ye.path):Ye.parentDir,ar=Ye.kind==="rename"?Ye.path:$t==="."||$t===""?dt:`${$t}/${dt}`,Ar=Ye.kind==="rename"?Ye.path:ar;He(Ar);let br=null;try{if(Ye.kind==="rename"){if(dt===Ye.initialValue)return;const hr=Ye.path.split("/");hr[hr.length-1]=dt;const nr=hr.join("/");await x({from:Ye.path,to:nr}),await fe([Wd(Ye.path)]),ul.success({title:"Renamed",description:`${Ye.path} → ${nr}`})}else{const hr={name:dt,kind:Ye.kind==="create-file"?"file":"dir",path:ar};ke($t,hr),br=ar,Ye.kind==="create-file"?(await b({path:ar,content:""}),Hr.emit(Zn.created,{...Ng(),path:ar,kind:"file"}),ul.success({title:"File created",description:ar})):(await v({path:ar}),ul.success({title:"Folder created",description:ar})),await fe([$t],{force:!0}),ce(ar)}}catch(hr){br&&ve($t,br);const nr=hr instanceof Error?hr.message:String(hr);ul.error({title:Ye.kind==="rename"?"Rename failed":Ye.kind==="create-file"?"Create file failed":"Create folder failed",description:nr})}finally{Je(Ar)}},[F,x,b,v,fe,He,Je,ke,ve]),Xi=k.useCallback(()=>{W(null)},[]),Mr=vn(async()=>{U!=null&&U.node&&(await k1t(U.node.path),ul.success({title:"Path copied",description:U.node.path}))}),cn=k.useCallback(async()=>{if(!j)return;const _e=j;K(null),He(_e.path);try{await w({path:_e.path}),ve(Wd(_e.path),_e.path),await fe([Wd(_e.path)]),ul.success({title:"Deleted",description:_e.path})}catch(Me){ul.error({title:"Delete failed",description:Me instanceof Error?Me.message:String(Me)})}finally{Je(_e.path)}},[j,w,fe,He,Je,ve]),Le=!Q&&((e==null?void 0:e.length)??0)>0?e:void 0;return T.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[l&&T.jsx(Pm,{className:"m-2 rounded-md p-3",title:"Failed to load files",description:l.message}),T.jsx("div",{ref:L,className:"min-h-0 flex-1 overflow-hidden",onContextMenu:er,children:c?T.jsx("div",{className:"space-y-1 p-2","data-testid":"tree-skeleton",children:Array.from({length:8}).map((_e,Me)=>T.jsx(F6e,{className:"h-5",style:{width:`${60+Me*13%30}%`}},Me))}):T.jsx(k.Suspense,{fallback:T.jsxs("div",{className:"flex h-full items-center justify-center gap-2 text-sm text-muted-foreground",children:[T.jsx(tp,{className:"size-3.5"}),T.jsx("span",{children:"Loading..."})]}),children:T.jsx(T1t,{files:ae,selectedPath:V,searchQuery:Le,editing:F?{path:F.path,isDraft:F.kind!=="rename",initialValue:F.kind==="rename"?F.initialValue:void 0}:null,revealPath:X,pendingPaths:Te,onSelect:te,onExpand:oe,onContextMenu:ot,onSubmitEdit:gi,onCancelEdit:Xi,onDragDrop:Ur,height:R,className:an(i)})})}),U&&T.jsxs("div",{ref:ie,role:"menu",className:"fixed z-50 min-w-[10rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",style:{left:U.x,top:U.y},children:[T.jsx($r,{type:"button",role:"menuitem",variant:"ghost",size:"sm",className:"w-full justify-start",onClick:Wt,children:"New file"}),T.jsx($r,{type:"button",role:"menuitem",variant:"ghost",size:"sm",className:"w-full justify-start",onClick:Cr,children:"New folder"}),!U.isBackground&&T.jsxs(T.Fragment,{children:[T.jsx($r,{type:"button",role:"menuitem",variant:"ghost",size:"sm",className:"w-full justify-start",onClick:kn,children:"Rename"}),T.jsx($r,{type:"button",role:"menuitem",variant:"ghost",size:"sm",className:"w-full justify-start text-destructive hover:bg-destructive/10 hover:text-destructive",onClick:()=>{K(U.node),$(null)},children:"Delete"}),T.jsx($r,{type:"button",role:"menuitem",variant:"ghost",size:"sm",className:"w-full justify-start",onClick:Mr,children:"Copy path"})]})]}),T.jsx(K6e,{open:j!==null,onOpenChange:_e=>{_e||K(null)},children:T.jsxs(eAe,{children:[T.jsxs(tAe,{children:[T.jsxs(nAe,{children:["Delete ",j==null?void 0:j.name,"?"]}),T.jsx(iAe,{children:"This action cannot be undone."})]}),T.jsxs(rAe,{children:[T.jsx(aAe,{children:"Cancel"}),T.jsx(sAe,{onClick:cn,children:"Delete"})]})]})})]})}function S1t({params:t,rootDir:e=".",searchQuery:r,panelApi:n,bridge:i,api:s,chromeless:a=!1,className:o}){const l=(t==null?void 0:t.rootDir)??e,c=(t==null?void 0:t.bridge)??i,u=(t==null?void 0:t.chromeless)??a,d=(t==null?void 0:t.searchQuery)??(t==null?void 0:t.query)??r,m=n??s,[p,y]=k.useState(""),[b,v]=k.useState(""),x=k.useRef(void 0);k.useEffect(()=>(clearTimeout(x.current),x.current=setTimeout(()=>v(p),200),()=>clearTimeout(x.current)),[p]);const w=d!==void 0?d||void 0:b||void 0;return u?T.jsx(SG,{rootDir:l,searchQuery:w,bridge:c,className:an("px-1 pt-1 [&_[role=treeitem]]:!indent-0",o)}):T.jsx(Gfe,{title:"Files",panelApi:m,children:T.jsxs("div",{className:"flex h-full flex-col",children:[T.jsx("div",{className:"border-b border-border px-2 py-1.5",children:T.jsx(vv,{placeholder:"Search files...",value:d??p,onChange:C=>y(C.target.value),className:"h-7 text-xs","aria-label":"Search files"})}),T.jsx("div",{className:"min-h-0 flex-1",children:T.jsx(SG,{rootDir:l,searchQuery:w,bridge:c,className:o})})]})})}function E1t(t){return t.split("/").pop()??t}function A1t(){return k.useEffect(()=>{const t=Hr.on(Zn.moved,({from:r,to:n,...i})=>{Hr.emit(qa.panelUpdate,{...i,match:[{id:`file:${r}`},{param:"path",value:r}],params:{path:n},title:E1t(n)})}),e=Hr.on(Zn.deleted,({path:r,...n})=>{Hr.emit(qa.panelClose,{...n,match:[{id:`file:${r}`},{param:"path",value:r}]})});return()=>{t(),e()}},[]),null}const D1t=new Set(["write","edit","unlink","rename","mkdir"]);function L1t(t){if(typeof t!="object"||t===null)return null;const e=t;if(e.type!=="data-file-changed")return null;const r=e.data;if(typeof r!="object"||r===null)return null;const n=r;return typeof n.op!="string"||!D1t.has(n.op)||typeof n.path!="string"||n.path.length===0||typeof n.toolCallId!="string"||n.toolCallId.length===0||n.oldPath!==void 0&&(typeof n.oldPath!="string"||n.oldPath.length===0)?null:n}function I1t(t){const e=L1t(t);if(!e)return;const r=xgt(e.toolCallId);switch(e.op){case"rename":e.oldPath&&Hr.emit(Zn.moved,{...r,from:e.oldPath,to:e.path});return;case"unlink":Hr.emit(Zn.deleted,{...r,path:e.path});return;case"mkdir":Hr.emit(Zn.created,{...r,path:e.path,kind:"dir"});return;case"write":e.existsBefore===!1?Hr.emit(Zn.created,{...r,path:e.path,kind:"file"}):Hr.emit(Zn.changed,{...r,path:e.path});return;case"edit":Hr.emit(Zn.changed,{...r,path:e.path});return}}function R1t(t,e={}){const{skip:r,filesOnly:n=!0}=e;uD(Zn.created,i=>{i.cause==="agent"&&(n&&i.kind!=="file"||r!=null&&r(i.path)||t(i.path))})}function O1t(){return k.useEffect(()=>Hr.on(qa.agentData,({part:t})=>{I1t(t)}),[]),R1t(t=>{xS({kind:"openFile",params:{path:t}})}),null}const N1t=1e3,M1t=3e3;function P1t(t,e){const{adapter:r,panelId:n,onDirtyChange:i,serverMtime:s}=e,[a,o]=k.useState(!1),[l,c]=k.useState(!1),[u,d]=k.useState(null),[m,p]=k.useState(!1),[y,b]=k.useState(!1),v=k.useRef(void 0),x=k.useRef(null),w=k.useRef(0),C=k.useRef(null),S=k.useRef(i);S.current=i;const D=k.useRef(r);D.current=r;const L=k.useCallback(async()=>{const ie=D.current;if(!ie||!t||!ie.isDirty())return;if(x.current)return x.current;const V=(async()=>{var H;c(!0),Hr.emit(qa.editorSaveStart,{panelId:n});try{await ie.save(),w.current=Date.now(),d(Date.now()),o(!1),(H=S.current)==null||H.call(S,t,!1)}catch{}finally{Hr.emit(qa.editorSaveEnd,{panelId:n}),c(!1),x.current=null}})();return x.current=V,V},[t,n]),R=k.useCallback(()=>{clearTimeout(v.current),v.current=setTimeout(L,N1t)},[L]),O=k.useCallback(()=>{var ie;t&&(o(!0),(ie=S.current)==null||ie.call(S,t,!0),R())},[t,R]),U=k.useCallback(async()=>{var ie;if(clearTimeout(v.current),x.current)return x.current;if((ie=D.current)!=null&&ie.isDirty())return L()},[L]),$=k.useCallback(()=>p(!1),[]),j=k.useCallback(()=>b(!1),[]),K=k.useCallback(ie=>{C.current=ie,b(!1)},[]);return k.useEffect(()=>{if(!(s==null||!t)){if(C.current===null){C.current=s;return}if(s!==C.current){if(Date.now()-w.current<M1t){C.current=s;return}C.current=s,a?b(!0):p(!0)}}},[s,t,a]),k.useEffect(()=>()=>clearTimeout(v.current),[]),{isDirty:a,isSaving:l,lastSavedAt:u,markDirty:O,flushSave:U,shouldSync:m,ackSync:$,externalChangeWhileDirty:y,ackExternalChange:j,notifySaved:K}}function B1t(t,e){const r=t.metaKey||t.ctrlKey;return e.mod&&!r||!e.mod&&r||e.shift&&!t.shiftKey||!e.shift&&t.shiftKey?!1:t.key.toLowerCase()===e.key.toLowerCase()}function F1t(t){return t instanceof HTMLElement?t.isContentEditable||t.closest("[contenteditable='true'], [contenteditable=''], [contenteditable='plaintext-only']")||t.closest("[role='textbox'], [role='searchbox'], [role='combobox']")?!0:!!t.closest("input, textarea, select"):!1}function JR({shortcuts:t,enabled:e=!0}){const r=k.useRef(t);r.current=t,k.useEffect(()=>{if(!e)return;function n(i){const s=F1t(i.target);for(const a of r.current)if(!(s&&!a.allowInEditable)&&B1t(i,a)){i.preventDefault(),i.stopPropagation(),a.handler();return}}return document.addEventListener("keydown",n,!0),()=>document.removeEventListener("keydown",n,!0)},[e])}function Kfe(t){const{path:e,panelId:r=e,initialContent:n=null}=t,{data:i,isLoading:s,error:a}=Xgt(e),{mutateAsync:o}=Ufe(),[l,c]=k.useState(n),u=k.useRef(""),d=k.useRef(!1),m=k.useRef(null),p=k.useRef(null),y=k.useRef(null),[b,v]=k.useState(null);k.useEffect(()=>{m.current!==e&&(c(n),u.current=n??"",d.current=!1,p.current=null,v(null),m.current=e)},[e,n]),k.useEffect(()=>{(i==null?void 0:i.content)!=null&&l===null&&(c(i.content),u.current=i.content,p.current=i.mtimeMs??null)},[i,l]);const x=e&&l!=null?{isDirty:()=>d.current,save:async()=>{var j;try{const K=await o({path:e,content:u.current,expectedMtimeMs:p.current??void 0});typeof K.mtimeMs=="number"&&(p.current=K.mtimeMs,(j=y.current)==null||j.call(y,K.mtimeMs)),d.current=!1,v(null)}catch(K){throw K instanceof Zb&&v(K),K}},getContent:()=>u.current}:null,w=P1t(e,{adapter:x,panelId:r,serverMtime:(i==null?void 0:i.mtimeMs)??null});y.current=w.notifySaved,k.useEffect(()=>{if(!(!w.shouldSync||(i==null?void 0:i.content)==null)){if(d.current){w.ackSync();return}c(i.content),u.current=i.content,p.current=i.mtimeMs??null,d.current=!1,w.ackSync()}},[w.shouldSync,w,i,c]),k.useEffect(()=>{!w.externalChangeWhileDirty||(i==null?void 0:i.mtimeMs)==null||(v(new Zb(e,i.mtimeMs,p.current)),w.ackExternalChange())},[w.externalChangeWhileDirty,w,i,e]);const C=e?e.split("/").pop()??e:"",[S,D]=k.useState("");k.useEffect(()=>{const j=C?w.isDirty?`${C} ●`:C:"";D(j)},[C,w.isDirty,r]);const L=k.useCallback(j=>{c(j),u.current=j,d.current=!0,w.markDirty()},[c,w]),R=k.useCallback(async()=>{i&&(c(i.content),u.current=i.content,p.current=i.mtimeMs??null,d.current=!1,v(null))},[i,c]),O=k.useCallback(async()=>{try{const j=l??u.current,K=await o({path:e,content:j});typeof K.mtimeMs=="number"&&(p.current=K.mtimeMs),d.current=!1,v(null)}catch{}},[e,o,l]),U=k.useCallback(async()=>{!x||!d.current||await x.save()},[x]),$=k.useCallback(async()=>{await w.flushSave()},[w]);return{isLoading:s,error:a,content:l,isDirty:w.isDirty,conflict:b,onReloadFromServer:R,onOverwrite:O,setContent:L,save:U,flushSave:$,fileName:C,tabTitle:S}}function $1t({conflict:t,onReload:e,onOverwrite:r}){return T.jsx(SJ,{role:"alert",tone:"accent",className:"rounded-none border-x-0 border-t-0",description:T.jsx(T.Fragment,{children:"This file has been modified outside the editor. Your unsaved changes will be lost if you reload, or will overwrite the latest version on disk if you save."}),actions:T.jsxs(T.Fragment,{children:[T.jsx($r,{type:"button",variant:"outline",size:"xs",onClick:()=>void e(),children:"Reload"}),T.jsx($r,{type:"button",variant:"destructive",size:"xs",onClick:()=>void r(),children:"Overwrite"}),T.jsx("span",{className:"sr-only",children:t.path})]})})}function Qfe({path:t,content:e,isLoading:r,error:n,conflict:i,onChange:s,onReload:a,onOverwrite:o,editorComponent:l,editorProps:c={},loadingFallback:u,errorMessage:d,className:m}){if(!t)return T.jsx("div",{className:"flex h-full items-center justify-center p-6",children:T.jsx(z9,{className:"min-h-0 border-0",title:"No file selected",description:"Choose a file from the file tree to open an editor."})});if(n)return T.jsx("div",{className:"flex h-full items-center justify-center p-6",children:T.jsx(Pm,{title:"Failed to load file",description:d??n.message})});const p=u??T.jsxs("div",{className:"flex h-full items-center justify-center gap-2 text-sm text-muted-foreground",children:[T.jsx(tp,{className:"size-3.5"}),T.jsx("span",{children:"Loading file..."})]});return T.jsxs("div",{className:`flex h-full min-h-0 flex-col ${m??""}`,children:[i&&T.jsx($1t,{conflict:i,onReload:a,onOverwrite:o}),T.jsx(k.Suspense,{fallback:p,children:r||e===null?p:T.jsx(l,{content:e,onChange:s,className:c.className,...c})})]})}const z1t=k.lazy(()=>M(()=>import("./CodeEditor-DQqOn4xz-43ZRJnBk.js"),__vite__mapDeps([254,255])).then(t=>t.a).then(t=>({default:t.CodeEditor})));function j1t(t){var e;switch((e=t.split(".").pop())==null?void 0:e.toLowerCase()){case"js":case"jsx":return"javascript";case"ts":case"tsx":return"typescript";case"py":return"python";case"json":return"json";case"yaml":case"yml":return"yaml";case"md":case"markdown":return"markdown";case"sql":return"sql";default:return"typescript"}}function EG({params:t,api:e,className:r}){const n=typeof(t==null?void 0:t.path)=="string"?t.path:"",{content:i,isLoading:s,error:a,conflict:o,setContent:l,onReloadFromServer:c,onOverwrite:u,tabTitle:d}=Kfe({path:n,panelId:e==null?void 0:e.id});e&&d&&e.setTitle(d);const m=j1t(n);return T.jsx(Qfe,{path:n,content:i,isLoading:s,error:a,conflict:o,onChange:l,onReload:c,onOverwrite:u,editorComponent:z1t,editorProps:{language:m,wordWrap:!0,className:r}})}const H1t=k.lazy(()=>M(()=>import("./MarkdownEditor-CcCDF65H-wNyV9k_h.js"),__vite__mapDeps([256,253,255])).then(t=>({default:t.MarkdownEditor})));function V1t({params:t,api:e,className:r}){const n=typeof(t==null?void 0:t.path)=="string"?t.path:"",{content:i,isLoading:s,error:a,conflict:o,setContent:l,onReloadFromServer:c,onOverwrite:u,tabTitle:d}=Kfe({path:n,panelId:e==null?void 0:e.id});return e&&d&&e.setTitle(d),T.jsx(Qfe,{path:n,content:i,isLoading:s,error:a,conflict:o,onChange:l,onReload:c,onOverwrite:u,editorComponent:H1t,editorProps:{className:r,documentPath:n}})}function U1t(t,e){return`${t.replace(/\/$/,"")}${e}`}function w_(t){return t.split("/").pop()??t}function q1t({path:t,kind:e,className:r}){const n=gp(),i=yp(),[s,a]=k.useState(null),[o,l]=k.useState(null),[c,u]=k.useState(!0),d=k.useMemo(()=>U1t(n,`/api/v1/files/raw?path=${encodeURIComponent(t)}`),[n,t]);return k.useEffect(()=>{const m=new AbortController;let p=null;u(!0),l(null),a(null);const y={};return i&&(y["x-boring-workspace-id"]=i),fetch(d,{credentials:"include",headers:y,signal:m.signal}).then(async b=>{if(!b.ok)throw new Error(`HTTP ${b.status}`);const v=await b.blob();p=URL.createObjectURL(v),a(p)}).catch(b=>{m.signal.aborted||l(b instanceof Error?b.message:"Failed to load preview")}).finally(()=>{m.signal.aborted||u(!1)}),()=>{m.abort(),p&&URL.revokeObjectURL(p)}},[d,i]),t?c?T.jsxs("div",{className:"flex h-full items-center justify-center gap-2 text-sm text-muted-foreground",children:[T.jsx(tp,{className:"size-3.5"}),T.jsx("span",{children:"Loading preview..."})]}):o||!s?T.jsx("div",{className:"flex h-full items-center justify-center p-6",children:T.jsx(Pm,{title:"Failed to load preview",description:o??"Preview unavailable."})}):T.jsxs("div",{className:an("flex h-full min-h-0 flex-col bg-background",r),children:[T.jsxs("div",{className:"flex shrink-0 items-center justify-between gap-3 border-b border-border/60 px-3 py-2",children:[T.jsx("div",{className:"min-w-0 truncate text-xs font-medium text-muted-foreground",title:t,children:w_(t)}),T.jsx("a",{href:s,download:w_(t),className:"rounded-md px-2 py-1 text-xs text-muted-foreground hover:bg-muted hover:text-foreground",children:"Download"})]}),T.jsx("div",{className:"flex min-h-0 flex-1 items-center justify-center overflow-auto p-4",children:e==="image"?T.jsx("img",{src:s,alt:w_(t),className:"max-h-full max-w-full rounded-md object-contain shadow-sm"}):T.jsx("iframe",{src:s,title:w_(t),className:"h-full min-h-[480px] w-full rounded-md border border-border bg-background"})})]}):T.jsx("div",{className:"flex h-full items-center justify-center p-6",children:T.jsx(Pm,{title:"No file selected",description:"Choose an image or PDF from the file tree."})})}function G1t(t,e){return e||(t.toLowerCase().endsWith(".pdf")?"pdf":"image")}function AG({params:t,className:e}){const r=(t==null?void 0:t.path)??"";return T.jsx(q1t,{path:r,kind:G1t(r,t==null?void 0:t.kind),className:e})}function W1t(t,e){return`${t.replace(/\/$/,"")}${e}`}function DG(t){return t.split("/").pop()??t}function Y1t(t){const e=t.replace(/\\/g,"/"),r=e.lastIndexOf("/");return r===-1?"":e.slice(0,r)}function Jfe(t){const e=t.search(/[?#]/);return e===-1?{pathname:t,suffix:""}:{pathname:t.slice(0,e),suffix:t.slice(e)}}function Z1t(t){return/^[a-z][a-z0-9+.-]*:/i.test(t)||t.startsWith("//")||t.startsWith("#")||t.startsWith("/api/")}function epe(t,e){const r=e.trim();if(!r||Z1t(r))return null;const{pathname:n}=Jfe(r);if(!n)return null;const i=n.startsWith("/")?n.split("/"):[...Y1t(t).split("/"),...n.split("/")],s=[];for(const a of i)if(!(!a||a===".")){if(a===".."){if(s.length===0)return null;s.pop();continue}s.push(a)}return s.join("/")}function eO(t,e){return W1t(t,`/api/v1/files/raw?path=${encodeURIComponent(e)}`)}function Xb(t,e,r){const n=epe(e,r);if(!n)return r;const{suffix:i}=Jfe(r.trim()),s=i.indexOf("#"),a=s===-1?"":i.slice(s);return`${eO(t,n)}${a}`}function h6(t,e,r){return t.replace(/url\(\s*(["']?)([^"')]+)\1\s*\)/gi,(n,i,s)=>`url(${i}${Xb(r,e,s)}${i})`).replace(/@import\s+(url\(\s*)?(["'])([^"']+)\2\s*\)?/gi,(n,i,s,a)=>{const o=Xb(r,e,a);return i?`@import ${i}${s}${o}${s})`:n.replace(`${s}${a}${s}`,`${s}${o}${s}`)})}function X1t(t,e,r){return t.split(",").map(n=>{const i=n.trim(),[s,...a]=i.split(/\s+/);return s?[Xb(r,e,s),...a].join(" "):n}).join(", ")}async function tpe(t,e,r){const n=await fetch(t,{credentials:"include",headers:e,signal:r});if(!n.ok)throw new Error(`HTTP ${n.status}`);return n.text()}async function K1t(t){const{html:e,path:r,apiBaseUrl:n,headers:i,signal:s}=t,a=new DOMParser().parseFromString(e,"text/html");await Promise.all(Array.from(a.querySelectorAll('link[rel~="stylesheet"][href]')).map(async l=>{const c=l.getAttribute("href");if(!c)return;const u=epe(r,c);if(u)try{const d=await tpe(eO(n,u),i,s),m=a.createElement("style");m.setAttribute("data-boring-html-viewer-href",c),m.textContent=h6(d,u,n),l.replaceWith(m)}catch{l.setAttribute("href",Xb(n,r,c))}}));for(const l of Array.from(a.querySelectorAll("style")))l.hasAttribute("data-boring-html-viewer-href")||(l.textContent=h6(l.textContent??"",r,n));for(const l of Array.from(a.querySelectorAll("[style]"))){const c=l.getAttribute("style");c&&l.setAttribute("style",h6(c,r,n))}const o=[["img","src"],["source","src"],["video","src"],["audio","src"],["track","src"],["iframe","src"],["script","src"],["object","data"],["embed","src"],["link","href"]];for(const[l,c]of o)for(const u of Array.from(a.querySelectorAll(`${l}[${c}]`))){const d=u.getAttribute(c);d&&u.setAttribute(c,Xb(n,r,d))}for(const l of Array.from(a.querySelectorAll("[srcset]"))){const c=l.getAttribute("srcset");c&&l.setAttribute("srcset",X1t(c,r,n))}return`<!doctype html>
|
|
1314
|
+
${a.documentElement.outerHTML}`}function Q1t({path:t,className:e}){const r=gp(),n=yp(),[i,s]=k.useState(null),[a,o]=k.useState(null),[l,c]=k.useState(!0),u=k.useMemo(()=>eO(r,t),[r,t]);return k.useEffect(()=>{const d=new AbortController;c(!0),o(null),s(null);const m={};return n&&(m["x-boring-workspace-id"]=n),tpe(u,m,d.signal).then(async p=>{s(await K1t({html:p,path:t,apiBaseUrl:r,headers:m,signal:d.signal}))}).catch(p=>{d.signal.aborted||o(p instanceof Error?p.message:"Failed to load HTML preview")}).finally(()=>{d.signal.aborted||c(!1)}),()=>d.abort()},[r,t,u,n]),t?l?T.jsxs("div",{className:"flex h-full items-center justify-center gap-2 text-sm text-muted-foreground",children:[T.jsx(tp,{className:"size-3.5"}),T.jsx("span",{children:"Loading HTML preview..."})]}):a||i===null?T.jsx("div",{className:"flex h-full items-center justify-center p-6",children:T.jsx(Pm,{title:"Failed to load HTML preview",description:a??"Preview unavailable."})}):T.jsxs("div",{className:an("flex h-full min-h-0 flex-col bg-background",e),children:[T.jsxs("div",{className:"flex shrink-0 items-center justify-between gap-3 border-b border-border/60 px-3 py-2",children:[T.jsx("div",{className:"min-w-0 truncate text-xs font-medium text-muted-foreground",title:t,children:DG(t)}),T.jsx("a",{href:u,target:"_blank",rel:"noreferrer",className:"rounded-md px-2 py-1 text-xs text-muted-foreground hover:bg-muted hover:text-foreground",children:"Open raw"})]}),T.jsx("iframe",{srcDoc:i,title:DG(t),sandbox:"allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox",className:"min-h-0 flex-1 border-0 bg-white"})]}):T.jsx("div",{className:"flex h-full items-center justify-center p-6",children:T.jsx(Pm,{title:"No file selected",description:"Choose an HTML file from the file tree."})})}function J1t({params:t,className:e}){return T.jsx(Q1t,{path:(t==null?void 0:t.path)??"",className:e})}function eyt({params:t}){const{path:e}=t,r=e.includes(".")?e.split(".").pop():void 0;return T.jsx("div",{className:"flex h-full items-center justify-center p-8",children:T.jsx(z9,{className:"border-0",title:"No editor available",description:r?`Install or enable a plugin that handles *.${r} files.`:"Install or enable a plugin that handles this file type.",children:T.jsx(Qd,{children:e})})})}const tyt={id:$fe,title:"Unsupported file",component:eyt,placement:"center",source:"builtin"},LG=[{component:Ofe,patterns:["**/*.ts","**/*.tsx","**/*.js","**/*.jsx","**/*.py","**/*.rs","**/*.go","**/*.json","**/*.yml","**/*.yaml","**/*.toml","**/*.css","**/*.svg","**/*.sh","**/*.sql","**/*.graphql"]},{component:Nfe,patterns:["**/*.csv","**/*.tsv","**/*.data"]},{component:Mfe,patterns:["**/*.md","**/*.mdx"]},{component:Pfe,patterns:["**/*.avif","**/*.gif","**/*.jpeg","**/*.jpg","**/*.png","**/*.svg","**/*.webp"]},{component:Bfe,patterns:["**/*.pdf"]},{component:Ffe,patterns:["**/*.html","**/*.htm"]},{component:$fe,fallback:!0}];function ryt(t){const e=t.split("/").filter(Boolean).length,r=t.replace(/[*?!]/g,"").length;return e*10+r}function nyt(t){let e="^";for(let r=0;r<t.length;r++){const n=t[r],i=t[r+1];if(n==="*"&&i==="*"){t[r+2]==="/"?(e+="(?:.*/)?",r+=2):(e+=".*",r+=1);continue}if(n==="*"){e+="[^/]*";continue}if(n==="?"){e+="[^/]";continue}if(/[$()+,.=[\]^{|}\\]/.test(n)){e+=`\\${n}`;continue}e+=n}return new RegExp(`${e}$`)}function iyt(t,e){return nyt(e).test(t.replace(/\\/g,"/"))}function syt(t){return t.split("/").pop()??t}function ayt(t){let e,r=-1;for(const n of LG)for(const i of n.patterns??[]){if(!iyt(t,i))continue;const s=ryt(i);s>=r&&(e=n,r=s)}return e??LG.find(n=>n.fallback)}const oyt={id:Pgt,source:"builtin",resolve(t){if(t.kind!==K0)return;const e=t.target,r=ayt(e);if(r)return{id:`file:${e}`,component:r.component,title:syt(e),params:{path:e},score:r.fallback?-1:0}}};function lyt(t){const e=t.lastIndexOf("/");return{id:t,title:e>=0?t.slice(e+1):t,subtitle:e>=0?t.slice(0,e+1):void 0}}function IG(){return{items:[],total:0,hasMore:!1}}function cyt({client:t,onSelect:e}){return{id:hw,label:"Files",adapter:{async search({query:r,limit:n,signal:i}){const s=r.trim();if(!s||i!=null&&i.aborted)return IG();const a=await t.search(Wfe(s),n,i);return i!=null&&i.aborted?IG():{items:a.map(lyt),total:a.length,hasMore:!1}}},onSelect:r=>e==null?void 0:e(r.id,r)}}function uyt({apiBaseUrl:t,authHeaders:e,onAuthError:r,apiTimeout:n,children:i}){return k.createElement(Vgt,{apiBaseUrl:t,authHeaders:e,onAuthError:r,timeout:n,children:i})}function hyt(){return k.useEffect(()=>{C1t()},[]),Vfe("."),null}const dyt=[{type:"provider",id:"filesystem-data",component:uyt},{type:"binding",id:"filesystem-tree-preload",component:hyt},{type:"left-tab",id:Rfe,title:"Files",component:S1t,source:"builtin",icon:qw},{type:"panel",panel:tyt},{type:"panel",panel:{id:Ofe,title:"Code",component:EG,placement:"center",source:"builtin"}},{type:"panel",panel:{id:Nfe,title:"CSV",component:EG,placement:"center",source:"builtin"}},{type:"panel",panel:{id:Mfe,title:"Markdown",component:V1t,placement:"center",source:"builtin"}},{type:"panel",panel:{id:Pfe,title:"Image",component:AG,placement:"center",source:"builtin"}},{type:"panel",panel:{id:Bfe,title:"PDF",component:AG,placement:"center",source:"builtin"}},{type:"panel",panel:{id:Ffe,title:"HTML",component:J1t,placement:"center",source:"builtin"}},{type:"surface-resolver",resolver:oyt}];function fyt(){const t=yu(),e=ZR();return k.useEffect(()=>{const r=e.get(hw);if(r&&r.pluginId!==uw)return;const n=cyt({client:t,onSelect:i=>{xS({kind:"openFile",params:{path:i}})}});return e.register(n,uw),()=>{var i;((i=e.get(hw))==null?void 0:i.pluginId)===uw&&e.unregister(hw)}},[e,t]),null}function pyt(){return WR({id:uw,label:"Filesystem",outputs:dyt,bindings:[fyt,A1t,O1t]})}const RG=pyt(),myt=Lh().max(64).regex(/^[a-zA-Z0-9_-]+$/),dw=Lh().max(1024),gyt=F0().nonnegative(),yyt=ko({collapsed:lve(),width:F0().int().positive()}),byt=AD(myt,gyt),vyt=ko({root:cY(),width:F0().nonnegative().optional(),height:F0().nonnegative().optional(),orientation:F0().optional()}).passthrough(),xyt=ko({id:dw,contentComponent:dw.optional(),title:dw.optional()}).passthrough(),_yt=ko({grid:vyt,panels:AD(dw,xyt)}).passthrough().nullable(),wyt=ko({layout:_yt,sidebar:yyt,panelSizes:byt}),Cyt=ko({theme:DD(["light","dark"])});function Tyt(t){const e=wyt.safeParse(t);return e.success?e.data:(console.error("Layout validation failed:",e.error.issues),null)}function kyt(t){const e=Cyt.safeParse(t);return e.success?e.data:(console.error("Preferences validation failed:",e.error.issues),null)}const OG=1e5,NG="2.0";let MG=!1,mT=null;function PG(t,e){if(!MG)try{localStorage.setItem(t,e)}catch(r){if(r instanceof DOMException&&(r.name==="QuotaExceededError"||r.code===22)){localStorage.removeItem(t);try{localStorage.setItem(t,e)}catch{MG=!0,console.error("localStorage quota exceeded. Persistence disabled for this session."),mT==null||mT()}}}}function Syt(t){try{const e=localStorage.getItem(t);if(!e)return{theme:"light"};const r=JSON.parse(e),n=kyt(r==null?void 0:r.state);return n?{theme:n.theme}:{theme:"light"}}catch{return{theme:"light"}}}function Eyt(t={}){const e=t.storageKey??(t.workspaceId?`boring-ui-v2:layout:${t.workspaceId}`:"boring-ui-v2:layout"),r="boring-ui-v2:preferences",n=t.persistenceEnabled===!1,i=n?{theme:"light"}:Syt(r),s=Lft()(Oft((o,l)=>({hydrationComplete:!1,layout:null,sidebar:{collapsed:!1,width:260},panelSizes:{},preferences:i,panels:[],activePanel:null,activeFile:null,visibleFiles:[],dirtyFiles:{},notifications:[],setHydrationComplete:c=>o({hydrationComplete:c}),setLayout:c=>o({layout:c}),setSidebar:c=>o({sidebar:{...l().sidebar,...c}}),setPanelSize:(c,u)=>o({panelSizes:{...l().panelSizes,[c]:u}}),setTheme:c=>{o({preferences:{theme:c}}),n||PG(r,JSON.stringify({state:{theme:c},version:0}))},openPanel:c=>o(u=>({panels:u.panels.some(d=>d.id===c.id)?u.panels:[...u.panels,c],activePanel:c.id})),closePanel:c=>o(u=>({panels:u.panels.filter(d=>d.id!==c),activePanel:u.activePanel===c?null:u.activePanel})),activatePanel:c=>o({activePanel:c}),openFile:(c,u)=>o(d=>({activeFile:c,visibleFiles:d.visibleFiles.includes(c)?d.visibleFiles:[...d.visibleFiles,c],activePanel:u??d.activePanel})),markDirty:(c,u)=>o(d=>({dirtyFiles:{...d.dirtyFiles,[c]:{panelId:u,savedAt:null}}})),markClean:c=>o(u=>{const{[c]:d,...m}=u.dirtyFiles;return{dirtyFiles:m}}),showNotification:c=>o(u=>({notifications:[...u.notifications,{...c,id:crypto.randomUUID(),timestamp:Date.now()}]})),dismissNotification:c=>o(u=>({notifications:u.notifications.filter(d=>d.id!==c)})),navigateToLine:(c,u)=>o({activeFile:c}),resetLayout:()=>{localStorage.removeItem(e),o({layout:null,sidebar:{collapsed:!1,width:260},panelSizes:{}})}}),{name:e,partialize:o=>({layout:o.layout,sidebar:o.sidebar,panelSizes:o.panelSizes}),onRehydrateStorage:()=>o=>{o==null||o.setHydrationComplete(!0)},storage:n?{getItem:()=>null,setItem:()=>{},removeItem:()=>{}}:{getItem:o=>{try{const l=localStorage.getItem(o);if(!l)return null;const c=JSON.parse(l);if((c==null?void 0:c.version)!==void 0&&String(c.version)!==NG)return t.onLayoutVersionMismatch?t.onLayoutVersionMismatch():localStorage.removeItem(o),null;const u=Tyt(c==null?void 0:c.state);return u?{...c,state:u}:(console.error("Layout restored with defaults"),null)}catch{return console.error("Layout restored with defaults"),null}},setItem:(o,l)=>{const c={...l,version:NG},u=JSON.stringify(c);u.length>OG&&console.warn(`Workspace state serialized to ${u.length} bytes (budget: <${OG})`),PG(o,u)},removeItem:o=>{localStorage.removeItem(o)}}}));mT=()=>{s.getState().showNotification({message:"Storage full — layout changes won't be saved this session.",type:"warning"})};let a=null;return typeof window<"u"&&(a=o=>{o.key===e&&console.log("Layout key changed in another tab (not auto-applied)")},window.addEventListener("storage",a)),Object.assign(s,{cleanup:()=>{a&&typeof window<"u"&&(window.removeEventListener("storage",a),a=null),mT=null}})}function Ayt(t){return(t==null?void 0:t["x-boring-workspace-id"])??(t==null?void 0:t["X-Boring-Workspace-Id"])??null}function Dyt(t){if(!t)return;const e=t.replace(/\/$/,""),r="/api/v1/ui";return e.endsWith(r)?e.slice(0,-r.length)||void 0:e}function Lyt(t){const e=lbt(),{getSurface:r,isWorkbenchOpen:n,openWorkbench:i,bridgeEndpoint:s,...a}=t,o=k.useCallback(u=>{var d;r&&n&&i&&vS({kind:"openFile",params:{path:u}},{surface:r,isWorkbenchOpen:n,openWorkbench:i}),(d=t.onOpenArtifact)==null||d.call(t,u)},[r,n,i,t.onOpenArtifact]),l=Ayt(a.requestHeaders);k.useEffect(()=>{if(!(s===null||!r||!n||!i))return kgt({endpoint:Dyt(s),query:l?{workspaceId:l}:void 0,ctx:{surface:r,isWorkbenchOpen:n,openWorkbench:i}})},[s,r,n,i,l]);const c=k.useCallback(u=>{var d;_gt(u),(d=t.onData)==null||d.call(t,u)},[t.onData]);return T.jsx(e,{chrome:!1,...a,onOpenArtifact:o,onData:c})}function Iyt({params:t}){if(!t||typeof t.sessionId!="string"||t.sessionId.length===0)throw new Error("chat panel requires params.sessionId");return k.createElement(Lyt,{key:t.sessionId,...t,sessionId:t.sessionId})}const Ryt={id:"chat",title:"Chat",component:Iyt,placement:"left",source:"builtin"},BG=1440*60*1e3;function fw(t){if(t==null)return null;const e=typeof t=="number"?new Date(t):new Date(t);return Number.isNaN(e.getTime())?null:e}function FG(t){const e=new Date(t);return e.setHours(0,0,0,0),e.getTime()}function Oyt(t){const e=FG(new Date),r=e-BG,n=e-7*BG,i=[],s=[],a=[],o=[],l=[];for(const d of t){const m=fw(d.updatedAt);if(!m){l.push(d);continue}const p=FG(m);p>=e?i.push(d):p>=r?s.push(d):p>=n?a.push(d):o.push(d)}const c=(d,m)=>{var p,y;const b=((p=fw(d.updatedAt))==null?void 0:p.getTime())??0;return(((y=fw(m.updatedAt))==null?void 0:y.getTime())??0)-b},u=[];return i.length&&u.push({key:"today",label:"Today",items:i.sort(c)}),s.length&&u.push({key:"yesterday",label:"Yesterday",items:s.sort(c)}),a.length&&u.push({key:"week",label:"This week",items:a.sort(c)}),o.length&&u.push({key:"earlier",label:"Earlier",items:o.sort(c)}),l.length&&u.push({key:"undated",label:"Other",items:l}),u}function Nyt(t){const e=fw(t);if(!e)return"";const r=Date.now()-e.getTime();if(r<6e4)return"now";const n=Math.floor(r/6e4);if(n<60)return`${n}m`;const i=Math.floor(n/60);if(i<24)return`${i}h`;const s=Math.floor(i/24);if(s<7)return`${s}d`;const a=Math.floor(s/7);if(a<5)return`${a}w`;const o=Math.floor(s/30);return o<12?`${o}mo`:`${Math.floor(s/365)}y`}function Myt({sessions:t,activeId:e,onSwitch:r,onCreate:n,onDelete:i,onClose:s,className:a}){const o=k.useMemo(()=>Oyt(t),[t]);return T.jsxs("div",{"data-boring-workspace-part":"session-list",className:an("flex h-full min-h-0 flex-col bg-background",a),role:"navigation","aria-label":"Session history",children:[T.jsxs("div",{className:"flex items-center justify-between border-b border-[color:oklch(from_var(--border)_l_c_h/0.25)] px-3",style:{height:44},children:[T.jsx("span",{className:"text-[10.5px] font-medium uppercase tracking-[0.12em] text-muted-foreground/70",children:"Sessions"}),T.jsxs("div",{className:"flex items-center gap-0.5",children:[n&&T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",onClick:n,"aria-label":"New session",title:"New chat",children:T.jsx(PJ,{className:"h-3.5 w-3.5",strokeWidth:1.75})}),s&&T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",onClick:s,"aria-label":"Close sessions",title:"Close sessions (⌘1)",children:T.jsx(RJ,{className:"h-4 w-4",strokeWidth:1.75})})]})]}),T.jsxs("div",{className:"flex-1 overflow-y-auto py-2",children:[t.length===0&&T.jsxs("div",{className:"px-3 py-8 text-center text-[13px] text-muted-foreground",children:["No sessions yet.",T.jsx("br",{}),"Start a new chat to begin."]}),o.map((l,c)=>T.jsxs("section",{className:an(c>0&&"mt-2"),children:[T.jsx("div",{className:"px-4 pb-1 pt-2 text-[10.5px] font-medium uppercase tracking-[0.14em] text-muted-foreground/70",children:l.label}),T.jsx("ul",{role:"list",className:"flex flex-col",children:l.items.map(u=>T.jsx(Pyt,{session:u,active:u.id===e,onSwitch:r,onDelete:i},u.id))})]},l.key))]})]})}function Pyt({session:t,active:e,onSwitch:r,onDelete:n}){const i=Nyt(t.updatedAt);return T.jsxs("li",{role:"listitem","data-boring-workspace-part":"session-row","data-boring-state":e?"selected":void 0,className:an("group relative mx-2 flex items-center gap-2 rounded-md px-2 py-1.5 text-[13px] transition-colors duration-150 ease-[cubic-bezier(0.22,1,0.36,1)]","cursor-pointer hover:bg-foreground/[0.04]",e&&"bg-foreground/[0.06] text-foreground"),onClick:()=>r==null?void 0:r(t.id),children:[T.jsxs("span",{className:"min-w-0 flex-1 truncate leading-5",title:t.title,children:[T.jsx("span",{className:an(e?"font-medium text-foreground":"text-foreground/90"),children:t.title||"Untitled"}),i&&T.jsxs("span",{className:"ml-1.5 text-muted-foreground/70 tabular-nums",children:["· ",i]})]}),n&&T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",className:"shrink-0 text-muted-foreground opacity-0 hover:text-destructive focus-visible:opacity-100 group-hover:opacity-100",onClick:s=>{s.stopPropagation(),n(t.id)},"aria-label":`Delete ${t.title||"session"}`,children:T.jsx("svg",{width:"12",height:"12",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:T.jsx("path",{d:"M3.5 3.5l7 7M10.5 3.5l-7 7"})})})]})}function Byt({params:t}){return k.createElement(Myt,{sessions:(t==null?void 0:t.sessions)??[],activeId:t==null?void 0:t.activeId,onSwitch:t==null?void 0:t.onSwitch,onCreate:t==null?void 0:t.onCreate,onDelete:t==null?void 0:t.onDelete,onClose:t==null?void 0:t.onClose})}const Fyt={id:"session-list",title:"Sessions",component:Byt,placement:"left",source:"builtin"};function rpe({rootDir:t="",bridge:e,defaultTab:r,onCollapse:n,className:i}){var s,a;const o=Zv(),l=k.useSyncExternalStore(o.subscribe,o.getSnapshot,o.getSnapshot),c=k.useMemo(()=>l.filter(j=>j.placement==="left-tab"),[l]),u=k.useMemo(()=>{const j=[];for(const K of c){const ie=K.icon;j.push({id:K.id,title:K.title,icon:ie?T.jsx(ie,{className:"h-3.5 w-3.5"}):T.jsx(b8e,{className:"h-3.5 w-3.5"}),panel:K})}return j},[c]),[d,m]=k.useState(r??""),p=u.some(j=>j.id===d)?d:((s=u[0])==null?void 0:s.id)??"",[y,b]=k.useState(!1),[v,x]=k.useState(""),[w,C]=k.useState(""),S=k.useRef(null),D=k.useRef(void 0);k.useEffect(()=>(clearTimeout(D.current),D.current=setTimeout(()=>C(v),180),()=>clearTimeout(D.current)),[v]),k.useEffect(()=>{var j;y&&((j=S.current)==null||j.focus())},[y]),k.useEffect(()=>{u.length>0&&!u.some(j=>j.id===d)&&m(u[0].id)},[d,u]);const L=k.useCallback(()=>{b(j=>(j&&x(""),!j))},[]),R=k.useCallback(j=>{j.key==="Escape"&&(j.preventDefault(),b(!1),x(""))},[]),O=u.find(j=>j.id===p),U=!((a=O==null?void 0:O.panel)!=null&&a.chromeless),$=k.useMemo(()=>({rootDir:t,bridge:e,query:w,searchQuery:w||void 0,chromeless:!0}),[e,w,t]);return T.jsxs("div",{"data-boring-workspace-part":"workbench-left",className:an("workbench-left-root flex h-full min-h-0 flex-col",i),children:[T.jsxs("div",{className:"flex h-11 items-center gap-1 border-b border-[color:oklch(from_var(--border)_l_c_h/0.25)] px-2",children:[T.jsx(CJ,{value:p,onValueChange:m,className:"min-w-0 flex-1","aria-label":"Workbench sources",children:T.jsx(TJ,{variant:"line",className:"h-auto gap-0.5 p-0",children:u.map(j=>T.jsxs(kJ,{value:j.id,className:"h-8 flex-none gap-1.5 px-2 py-1 text-[12px] data-[state=active]:text-foreground data-[state=active]:after:bg-[color:var(--accent)]",children:[T.jsx("span",{className:"data-[state=active]:text-[color:var(--accent)]",children:j.icon}),T.jsx("span",{className:"tracking-tight",children:j.title})]},j.id))})}),U&&T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",onClick:L,className:an(y&&"bg-foreground/5 text-foreground"),"aria-label":"Search",title:"Search",children:T.jsx(Gw,{className:"h-3.5 w-3.5",strokeWidth:1.75})}),n&&T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",onClick:n,"aria-label":"Hide sources",title:"Hide sources",children:T.jsx(RJ,{className:"h-4 w-4",strokeWidth:1.75})})]}),U&&y&&T.jsxs("div",{className:"flex items-center gap-1 border-b border-border/60 px-2 py-1.5",children:[T.jsx(Gw,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),T.jsx(vv,{ref:S,type:"text",value:v,onChange:j=>x(j.target.value),onKeyDown:R,placeholder:`Search ${((O==null?void 0:O.title)??"sources").toLowerCase()}...`,className:"h-7 flex-1 border-0 bg-transparent px-0 py-0 text-xs shadow-none focus-visible:ring-0 dark:bg-transparent"}),v&&T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",onClick:()=>x(""),"aria-label":"Clear search",children:T.jsx(Bm,{className:"h-3 w-3"})})]}),T.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:T.jsx(Hyt,{panel:O==null?void 0:O.panel,params:$})})]})}const $yt={dispose(){}},zyt=new Proxy({},{get:()=>()=>$yt}),jyt=new Proxy({},{get:()=>()=>{}});function Hyt({panel:t,params:e}){const r=k.useMemo(()=>t?t.lazy?k.lazy(t.component):t.component:null,[t]);return!t||!r?T.jsx("div",{className:"flex h-full items-center justify-center px-4 text-center text-[12px] text-muted-foreground",children:"No workbench source registered."}):T.jsx(bS,{pluginId:t.pluginId??t.id,contributionKind:"panel",contributionId:t.id,children:T.jsx(k.Suspense,{fallback:T.jsx("div",{className:"flex h-full items-center justify-center px-4 text-center text-[12px] text-muted-foreground",children:"Loading source..."}),children:k.createElement(r,{params:e,api:zyt,containerApi:jyt,className:"h-full"})})})}function Vyt({params:t}){return k.createElement(rpe,t??{})}const Uyt={id:"workbench-left",title:"Workbench",component:Vyt,placement:"left",source:"builtin"},qyt="boring-ui-v2:surface",npe=1,Gyt={version:"2.0",groups:[{id:"artifacts",position:"center",dynamic:!0}]};function Wyt(t,e){if(typeof window>"u")return;let r;try{r=window.localStorage.getItem(t)}catch{return}if(!r)return;let n;try{n=JSON.parse(r)}catch{return}if(!n||typeof n!="object")return;const i=n;if(i.v!==npe)return;const s=i.layout;if(!s||typeof s!="object")return;const a=s.panels;if(!(!a||typeof a!="object")){for(const o of Object.values(a)){if(!o||typeof o!="object")return;const l=o.contentComponent;if(typeof l!="string"||e&&!e.has(l))return}return s}}function ipe({visible:t=!0,storageKey:e=qyt,allowedPanels:r,persistedLayout:n,onLayoutChange:i,onReady:s,prefixHeaderActions:a,rightHeaderActions:o,watermarkComponent:l,className:c}){const u=!!(i||n),d=k.useMemo(()=>{if(!u)return Wyt(e,r?new Set(r):void 0)},[u,e,r]),m=k.useCallback(p=>{if(i){i(p);return}const y={v:npe,layout:p};try{window.localStorage.setItem(e,JSON.stringify(y))}catch{}},[i,e]);return t?T.jsx("div",{className:an("h-full w-full",c),"data-testid":"artifact-surface",children:T.jsx(g1t,{layout:Gyt,persistedLayout:n??d,onLayoutChange:m,onReady:s,allowedPanels:r,prefixHeaderActions:a,rightHeaderActions:o,watermarkComponent:l},`${e}:${u?"ext":"auto"}`)}):null}ipe.defaultAllowedPanels=[];function pD(t){const e=t.trim().replace(/\\/g,"/").replace(/^\.\//,"").replace(/\/+/g,"/");if(e.includes(".."))throw new Error("Invalid path: path traversal not allowed");return e}function d6(t,e){const r=`file:${e}`;return t.getPanel(r)??t.panels.find(n=>{var i;return((i=n.params)==null?void 0:i.path)===e})}function Yyt(t){return t.kind!==K0?t:{...t,target:pD(t.target)}}function f6(t,e){return e.id??`surface:${t.kind}:${t.target}`}let spe=0;function Lc(){return{seq:++spe,status:"ok"}}function C_(t,e){return{seq:++spe,status:"error",error:{code:t,message:e}}}function Zyt({rootDir:t="",sidebarDefaultWidth:e=240,sidebarMinWidth:r=180,sidebarMaxWidth:n=480,storageKey:i,onReady:s,onChange:a,onClose:o,extraPanels:l,className:c}){const[u,d]=k.useState(()=>{if(!i)return!1;try{return localStorage.getItem(`${i}:sidebarCollapsed`)==="1"}catch{return!1}}),[m,p]=k.useState(()=>{if(!i)return e;try{const ae=localStorage.getItem(`${i}:sidebarWidth`);if(!ae)return e;const te=Number(ae);return Number.isFinite(te)?Math.max(r,Math.min(n,te)):e}catch{return e}}),y=k.useRef(null),b=k.useRef(null),v=k.useRef(null),[x,w]=k.useState(null),C=k.useRef(s);C.current=s;const S=k.useRef(a);S.current=a;const D=k.useRef(new Set),L=Zv(),R=Vmt(),O=k.useRef(L);O.current=L;const U=k.useRef(R);U.current=R;const $=k.useMemo(()=>{const ae=new Set;for(const te of L.list())te.placement==="center"&&ae.add(te.id);for(const te of l??[])ae.add(te);return[...ae]},[l,L]),j=k.useCallback(ae=>{const te=y.current;if(!te){console.warn("[SurfaceShell] openFile: surface not ready (dockview not initialized)");return}const oe=pD(ae),fe=d6(te,oe);if(fe){fe.api.setActive();return}const ke={kind:K0,target:oe},ve=U.current.resolve(ke);if(!ve){console.warn(`[SurfaceShell] openFile: no surface resolver matched "${oe}"`);return}if(!O.current.has(ve.component)){console.warn(`[SurfaceShell] openFile: resolver returned unknown panel "${ve.component}" for "${oe}"`);return}const Te=f6(ke,ve),Re=te.getPanel(Te);if(Re){ve.params&&Re.api.updateParameters(ve.params),Re.api.setActive();return}te.addPanel({id:Te,component:ve.component,title:ve.title??oe.split("/").pop()??oe,params:ve.params??{path:oe}})},[]),K=k.useCallback(ae=>{const te=y.current;if(!te){console.warn("[SurfaceShell] openSurface: surface not ready (dockview not initialized)");return}const oe=Yyt(ae),fe=U.current.resolve(oe);if(!fe){console.warn(`[SurfaceShell] openSurface: no resolver matched kind="${oe.kind}" target="${oe.target}"`);return}const ke=f6(oe,fe),ve=oe.kind===K0?d6(te,oe.target)??te.getPanel(ke):te.getPanel(ke);if(ve){fe.params&&ve.api.updateParameters(fe.params),ve.api.setActive();return}const Te=O.current;if(!Te.has(fe.component)){const Re=Te.list().map(He=>He.id).join(", ");throw new Error(`openSurface: unknown component "${fe.component}". Registered panels: [${Re}]. Register the component through a panel output before resolving to it.`)}te.addPanel({id:ke,component:fe.component,title:fe.title??oe.target,params:fe.params})},[]),ie=k.useCallback(ae=>{const te=y.current;if(!te)return;const oe=te.getPanel(ae.id);if(oe){ae.params&&oe.api.updateParameters(ae.params),oe.api.setActive();return}const fe=O.current;if(!fe.has(ae.component)){const ke=fe.list().map(ve=>ve.id).join(", ");throw new Error(`openPanel: unknown component "${ae.component}". Registered panels: [${ke}]. Add the component to WorkspaceProvider's "panels" prop, or pick one of the registered ids.`)}te.addPanel({id:ae.id,component:ae.component,title:ae.title??ae.id,params:ae.params})},[]),V=k.useCallback(()=>{var ae;const te=y.current;return te?{openTabs:te.panels.map(oe=>({id:oe.id,title:oe.title??oe.id,params:oe.params??void 0})),activeTab:((ae=te.activePanel)==null?void 0:ae.id)??null}:{openTabs:[],activeTab:null}},[]),H=k.useCallback(()=>{var ae,te;const oe=y.current,fe=oe?oe.panels.map(Re=>({id:Re.id,component:String(Re.component??""),params:Re.params??void 0})):[],ke=((ae=oe==null?void 0:oe.activePanel)==null?void 0:ae.id)??null,ve=((te=oe==null?void 0:oe.activePanel)==null?void 0:te.params)??void 0,Te=typeof(ve==null?void 0:ve.path)=="string"?ve.path:null;return{hydrationComplete:!0,layout:null,sidebar:{collapsed:!1,width:e},panelSizes:{},preferences:{theme:"dark"},panels:fe,activePanel:ke,activeFile:Te,visibleFiles:fe.map(Re=>{var He;return(He=Re.params)==null?void 0:He.path}).filter(Re=>typeof Re=="string"),dirtyFiles:{},notifications:[]}},[e]),F=k.useCallback(()=>{const ae=H();for(const te of D.current)te(ae)},[H]),W=k.useCallback(ae=>{var te;y.current=ae,w(ae),(te=C.current)==null||te.call(C,{openFile:j,openSurface:K,openPanel:ie,closeWorkbenchLeftPane:()=>d(!0),getSnapshot:V});const oe=()=>{var fe;(fe=S.current)==null||fe.call(S,V()),F()};ae.onDidAddPanel(oe),ae.onDidRemovePanel(oe),ae.onDidActivePanelChange(oe),oe()},[j,K,ie,V,F]),X=k.useCallback(async ae=>{try{const te=y.current;if(!te)return C_("not-ready","surface not ready");const oe=pD(ae),fe=d6(te,oe);if(fe)return fe.api.setActive(),Lc();const ke={kind:K0,target:oe},ve=U.current.resolve(ke);if(!ve)return C_("NO_SURFACE_RESOLVER",`no registered surface resolver handles ${oe}`);if(!O.current.has(ve.component))return C_("NO_SURFACE_PANEL",`surface resolver "${ke.kind}" returned unknown panel "${ve.component}"`);const Te=f6(ke,ve),Re=te.getPanel(Te);return Re?(ve.params&&Re.api.updateParameters(ve.params),Re.api.setActive(),Lc()):(te.addPanel({id:Te,component:ve.component,title:ve.title??oe.split("/").pop()??oe,params:ve.params??{path:oe}}),Lc())}catch(te){return C_("INVALID_SURFACE_PATH",te instanceof Error?te.message:"failed to open file")}},[]),ce=k.useMemo(()=>({getOpenPanels:()=>H().panels,getActiveFile:()=>H().activeFile,getDirtyFiles:()=>[],getVisibleFiles:()=>H().visibleFiles,openFile:X,openPanel:async()=>Lc(),closePanel:async()=>Lc(),closeWorkbenchLeftPane:async()=>(d(!0),Lc()),showNotification:async()=>Lc(),navigateToLine:async()=>Lc(),expandToFile:async()=>Lc(),markDirty:()=>{},markClean:()=>{},subscribe:()=>()=>{},select:(ae,te)=>{const oe=fe=>te(ae(fe));return D.current.add(oe),oe(H()),()=>{D.current.delete(oe)}}}),[X,H]),q=k.useCallback(ae=>{u||(ae.preventDefault(),ae.currentTarget.setPointerCapture(ae.pointerId),v.current={startX:ae.clientX,startWidth:m})},[u,m]),Q=k.useCallback(ae=>{const te=v.current;if(!te)return;const oe=ae.clientX-te.startX,fe=Math.max(r,Math.min(n,te.startWidth+oe));p(fe)},[r,n]),ne=k.useCallback(ae=>{v.current&&(v.current=null,ae.currentTarget.releasePointerCapture(ae.pointerId))},[]),G=k.useCallback(ae=>{if(u)return;const te=ae.shiftKey?32:16;ae.key==="ArrowLeft"?(ae.preventDefault(),p(oe=>Math.max(r,oe-te))):ae.key==="ArrowRight"?(ae.preventDefault(),p(oe=>Math.min(n,oe+te))):ae.key==="Home"?(ae.preventDefault(),p(r)):ae.key==="End"&&(ae.preventDefault(),p(n))},[u,r,n]);return k.useEffect(()=>{if(i)try{localStorage.setItem(`${i}:sidebarWidth`,String(m))}catch{}},[i,m]),k.useEffect(()=>{if(i)try{localStorage.setItem(`${i}:sidebarCollapsed`,u?"1":"0")}catch{}},[i,u]),T.jsxs("div",{ref:b,"data-boring-workspace-part":"surface",className:an("flex h-full min-h-0 w-full bg-background",c),"data-testid":"surface-shell",children:[u?null:T.jsxs(T.Fragment,{children:[T.jsx("aside",{"data-boring-workspace-part":"surface-sidebar","data-boring-state":"expanded",className:"flex h-full min-h-0 flex-col",style:{width:m,minWidth:m,maxWidth:m},"aria-label":"Workbench left pane",children:T.jsx(rpe,{rootDir:t,bridge:ce,onCollapse:()=>d(!0)})}),T.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":"Resize sidebar",tabIndex:0,onPointerDown:q,onPointerMove:Q,onPointerUp:ne,onPointerCancel:ne,onKeyDown:G,className:an("relative w-px shrink-0 cursor-col-resize bg-transparent transition-colors hover:bg-primary/40","focus-visible:outline-none focus-visible:bg-primary/50"),children:T.jsx("span",{"aria-hidden":"true",className:"absolute inset-y-0 -left-1.5 -right-1.5"})})]}),T.jsxs("div",{className:"relative min-w-0 flex-1",children:[T.jsx("div",{"data-boring-workspace-part":"surface-tabs","data-boring-state":u?"collapsed":"expanded",className:"workbench-dockview h-full","data-collapsed-sources":u?"true":void 0,children:T.jsx(ipe,{storageKey:i,onReady:W,allowedPanels:$,rightHeaderActions:o?()=>T.jsx(Xyt,{onClose:o}):void 0})}),u&&T.jsx("div",{className:"pointer-events-none absolute left-0 top-0 z-20 flex items-center",style:{height:44},children:T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",onClick:()=>d(!1),className:"pointer-events-auto ml-2","aria-label":"Show sources",title:"Show sources",children:T.jsx(qw,{className:"h-4 w-4",strokeWidth:1.75})})}),T.jsx(Kyt,{api:x,collapsed:u,onExpandFiles:()=>d(!1),onClose:o})]})]})}function Xyt({onClose:t}){return T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",onClick:t,className:"mx-1","aria-label":"Close workbench",title:"Close workbench (⌘2)",children:T.jsx(_v,{className:"h-4 w-4",strokeWidth:1.75})})}function Kyt({api:t,collapsed:e,onExpandFiles:r,onClose:n}){const[i,s]=k.useState(!0);return k.useEffect(()=>{if(!t)return;const a=()=>s(t.panels.length===0);a();const o=t.onDidAddPanel(a),l=t.onDidRemovePanel(a);return()=>{o.dispose(),l.dispose()}},[t]),i?T.jsxs(T.Fragment,{children:[T.jsxs("div",{className:"pointer-events-none absolute inset-x-0 top-0 flex items-center gap-0.5 border-b border-[color:oklch(from_var(--border)_l_c_h/0.4)] bg-background px-1",style:{height:44},children:[e&&T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",onClick:r,className:"pointer-events-auto mx-1","aria-label":"Show sources",title:"Show sources",children:T.jsx(qw,{className:"h-4 w-4",strokeWidth:1.75})}),T.jsx("div",{className:"flex-1"}),n&&T.jsx(mi,{type:"button",variant:"ghost",size:"icon-xs",onClick:n,className:"pointer-events-auto mx-1","aria-label":"Close workbench",title:"Close workbench (⌘2)",children:T.jsx(_v,{className:"h-4 w-4",strokeWidth:1.75})})]}),T.jsxs("div",{className:"pointer-events-none absolute inset-0 flex flex-col items-center justify-center gap-3 px-6 pt-12 pb-10 text-center",children:[T.jsxs("div",{className:"flex items-center gap-2 text-[10.5px] font-medium uppercase tracking-[0.16em] text-muted-foreground",children:[T.jsx("span",{className:"inline-block h-px w-4 bg-[color:var(--accent)]","aria-hidden":"true"}),"Workbench"]}),T.jsx("div",{className:"text-[15px] font-medium tracking-tight text-foreground",children:"Nothing open yet"}),T.jsx("p",{className:"max-w-[280px] text-[12.5px] leading-relaxed text-muted-foreground",children:"Open a source item, or let the agent produce an artifact here."}),e&&T.jsxs($r,{type:"button",variant:"outline",size:"sm",onClick:r,className:"pointer-events-auto mt-2 gap-1.5 text-[12px] hover:border-[color:var(--accent)]/40 hover:text-[color:var(--accent)]",children:[T.jsx(qw,{className:"h-3.5 w-3.5",strokeWidth:1.75}),"Show sources"]})]})]}):null}function Qyt({params:t}){return k.createElement(Zyt,t??{})}const Jyt={id:"artifact-surface",title:"Surface",component:Qyt,placement:"right",source:"builtin"},ebt=[Ryt,Fyt,Uyt,Jyt];function tbt(t){return null}function rbt(){return typeof window>"u"||typeof window.matchMedia!="function"?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}const $G="workspace-provider",nbt="workspace-provider",ibt=k.createContext(null),sbt=k.createContext(null),tO=k.createContext(null);function abt(){const t=k.useContext(tO);if(!t)throw new Error("useWorkspaceContext must be used within a WorkspaceProvider");return t}function obt(){return k.useContext(tO)}function lbt(){const{chatPanel:t}=abt();if(!t)throw new Error("WorkspaceProvider requires a chatPanel prop before rendering ChatPanelHost");return t}function cbt({store:t}){const e=k.useMemo(()=>[{key:"b",mod:!0,handler:()=>{const r=t.getState();r.setSidebar({collapsed:!r.sidebar.collapsed})}},{key:"\\",mod:!0,handler:()=>{const r=t.getState();r.panels.find(n=>n.id==="agent")?r.closePanel("agent"):r.openPanel({id:"agent",component:"agent"})}},{key:"w",mod:!0,handler:()=>{const r=t.getState();r.activePanel&&r.closePanel(r.activePanel)}}],[t]);return JR({shortcuts:e}),null}function ubt({commands:t}){const e=YR();return k.useEffect(()=>{if(!(t!=null&&t.length))return;const r=t.map(n=>n.id);for(const n of r)e.unregisterCommand(n);for(const n of t)e.registerCommand({...n,pluginId:n.pluginId??nbt});return()=>{for(const n of r)e.unregisterCommand(n)}},[e,t]),null}function hbt({catalogs:t}){const e=ZR();return k.useEffect(()=>{if(t!=null&&t.length){for(const r of t)e.register(r,$G);return()=>{e.unregisterByPluginId($G)}}},[e,t]),null}function dbt({plugins:t}){return T.jsx(T.Fragment,{children:t.map(e=>{var r;const n=((r=e.outputs)==null?void 0:r.filter(i=>i.type==="binding"))??[];return[...(e.bindings??[]).map((i,s)=>T.jsx(i,{},`${e.id}:binding:${s}`)),...n.map(i=>{const s=i.component;return T.jsx(s,{},`${e.id}:output:${i.id}`)})]})})}function fbt({plugins:t,apiBaseUrl:e,authHeaders:r,onAuthError:n,apiTimeout:i,children:s}){return t.flatMap(a=>{var o;return((o=a.outputs)==null?void 0:o.filter(l=>l.type==="provider").map(l=>({plugin:a,output:l})))??[]}).reduceRight((a,{plugin:o,output:l})=>{const c=l.component;return T.jsx(c,{apiBaseUrl:e,authHeaders:r,onAuthError:n,apiTimeout:i,children:a},`${o.id}:provider:${l.id}`)},s)}function pbt({onOpenFile:t}){return k.useEffect(()=>{if(t)return Hr.on(qa.uiCommand,({command:e})=>{if(e.kind!=="openFile")return;const r=e.params.path;typeof r=="string"&&t(r)})},[t]),null}function mbt({children:t,chatPanel:e,plugins:r,excludeDefaults:n,panels:i,commands:s,catalogs:a,capabilities:o,apiBaseUrl:l="",authHeaders:c,apiTimeout:u,defaultTheme:d,onThemeChange:m,workspaceId:p,storageKey:y,persistenceEnabled:b=!0,bridgeEndpoint:v,onAuthError:x,onOpenFile:w}){const C=k.useRef(null);if(!C.current){const G=Eyt({workspaceId:p,storageKey:y,persistenceEnabled:b});s1t(G);const ae=d??rbt();ae!=="light"&&!b?G.getState().setTheme(ae):ae!=="light"&&(typeof localStorage<"u"&&localStorage.getItem("boring-ui-v2:preferences")!==null||G.getState().setTheme(ae)),C.current=G}const S=C.current,D=k.useRef(null),L=k.useRef(c);L.current=c;const R=k.useRef(x);R.current=x,k.useEffect(()=>()=>{var G;(G=D.current)==null||G.disconnect(),D.current=null,S.cleanup()},[S]),k.useEffect(()=>{var G,ae;if(D.current&&(D.current.disconnect(),D.current=null),!v)return;const te=sgt(S),oe=(ae=(G=L.current)==null?void 0:G.Authorization)==null?void 0:ae.replace(/^Bearer\s+/i,""),fe=cgt({endpoint:v,bridge:te,store:S,authToken:oe,onAuthError:ke=>{var ve;return(ve=R.current)==null?void 0:ve.call(R,ke)},onConnectionChange:q});return fe.connect(),D.current=fe,()=>{fe.disconnect(),D.current=null}},[v,S]);const{panelRegistry:O,commandRegistry:U,catalogRegistry:$,surfaceResolverRegistry:j,pluginMetas:K,pluginsWithBindings:ie}=k.useMemo(()=>{const G=new t1t(o),ae=new n1t,te=new Afe,oe=new Dfe;for(const Te of ebt){const{id:Re,...He}=Te;G.register(Re,He)}const fe=new Set(n??[]).has(RG.id)?[]:[RG],ke=[...fe,...r??[]];zmt({chatPanel:e??tbt,plugins:r??[],defaults:fe,excludeDefaults:n,registries:{panels:G,commands:ae,catalogs:te,surfaceResolvers:oe}});const ve=[{id:"workspace:chat-layout",label:"Layout"},{id:"agent:chat-layout",label:"Layout"},...ke.map(Te=>({id:Te.id,label:Te.label,systemPrompt:Te.systemPrompt}))];if(i)for(const Te of i){const{id:Re,...He}=Te;G.register(Re,He)}return{panelRegistry:G,commandRegistry:ae,catalogRegistry:te,surfaceResolverRegistry:oe,pluginMetas:ve,pluginsWithBindings:ke}},[o,e,r,n,i]),V=k.useRef(m);V.current=m;const H=k.useCallback(G=>{var ae;S.getState().setTheme(G),(ae=V.current)==null||ae.call(V,G)},[S]),F=k.useCallback(()=>{const G=S.getState().preferences.theme==="light"?"dark":"light";H(G)},[S,H]),W=a1t();k.useEffect(()=>(document.documentElement.setAttribute("data-theme",W),()=>{document.documentElement.removeAttribute("data-theme")}),[W]);const X=k.useMemo(()=>({setTheme:H,toggleTheme:F}),[H,F]),[ce,q]=k.useState(!1),Q=k.useMemo(()=>({connected:ce}),[ce]),ne=k.useMemo(()=>({chatPanel:e??null,registeredPlugins:K}),[e,K]);return T.jsx(tO.Provider,{value:ne,children:T.jsx(ibt.Provider,{value:X,children:T.jsx(sbt.Provider,{value:Q,children:T.jsx(Wmt,{children:T.jsx(Hmt,{panelRegistry:O,commandRegistry:U,catalogRegistry:$,surfaceResolverRegistry:j,children:T.jsxs(fbt,{plugins:ie,apiBaseUrl:l,authHeaders:c,onAuthError:x,apiTimeout:u,children:[T.jsx(dbt,{plugins:ie}),T.jsx(pbt,{onOpenFile:w}),T.jsx(ubt,{commands:s}),T.jsx(hbt,{catalogs:a}),T.jsx(cbt,{store:S}),T.jsx(bbt,{}),T.jsx(X6e,{}),t,!1]})})})})})})}function gbt(t){const e=Date.now(),r=[];for(const n of t)if(typeof n=="string")if(n.startsWith("cmd:")){const i=n.slice(4);r.push({type:"command",commandId:i,titleSnapshot:i,selectedAt:e})}else{const i=n.lastIndexOf("/");r.push({type:"catalog",catalogId:"files",rowId:n,rowSnapshot:{id:n,title:i>=0?n.slice(i+1):n,subtitle:i>=0?n.slice(0,i+1):void 0},selectedAt:e})}else typeof n=="object"&&n!==null&&"type"in n&&r.push(n);return r}const ape="boring-ui-v2:command-palette:recent",mD=50;function rO(){try{const t=localStorage.getItem(ape);if(!t)return[];const e=JSON.parse(t);if(!Array.isArray(e))return[];if(e.some(r=>typeof r=="string")){const r=gbt(e).filter(HG).slice(0,mD);return nO(r),r}return e.filter(HG).slice(0,mD)}catch{return[]}}function nO(t){try{localStorage.setItem(ape,JSON.stringify(t.slice(0,mD)))}catch{}}function zG(t,e){const r=rO().filter(n=>!(n.type==="catalog"&&n.catalogId===t&&n.rowId===e.id));r.unshift({type:"catalog",catalogId:t,rowId:e.id,rowSnapshot:e,selectedAt:Date.now()}),nO(r)}function jG(t,e){const r=rO().filter(n=>!(n.type==="command"&&n.commandId===t));r.unshift({type:"command",commandId:t,titleSnapshot:e,selectedAt:Date.now()}),nO(r)}function HG(t){if(typeof t!="object"||t===null)return!1;const e=t;return e.type==="catalog"?typeof e.catalogId=="string"&&typeof e.rowId=="string"&&typeof e.rowSnapshot=="object"&&e.rowSnapshot!==null&&typeof e.selectedAt=="number":e.type==="command"?typeof e.commandId=="string"&&typeof e.titleSnapshot=="string"&&typeof e.selectedAt=="number":!1}const T_=50,VG="Catalogs";function UG(t){return t instanceof Error?t.message:"Search failed"}function ybt(t){if(!t.when)return!0;try{return t.when()}catch{return!1}}function bbt(t){const[e,r]=k.useState(!1),[n,i]=k.useState(""),[s,a]=k.useState("catalogs"),[o,l]=k.useState(""),[c,u]=k.useState([]),d=qmt(),m=Umt(),p=obt(),y=k.useMemo(()=>{const V={};for(const H of(p==null?void 0:p.registeredPlugins)??[])H.label&&(V[H.id]=H.label);return V},[p==null?void 0:p.registeredPlugins]),b=k.useRef(null),v=k.useRef(null),x=k.useRef(!1),w=s==="commands",C=n.trim();k.useEffect(()=>{if(w){l("");return}const V=setTimeout(()=>l(C),180);return()=>clearTimeout(V)},[w,C]),k.useEffect(()=>{if(!e)return;const V=F=>{F.key==="Escape"&&(F.preventDefault(),F.stopPropagation(),r(!1))},H=F=>{const W=F.target;if(!W)return;const X=document.querySelector('[data-slot="dialog-content"]');X&&!X.contains(W)&&(F.preventDefault(),F.stopPropagation(),r(!1))};return window.addEventListener("keydown",V,{capture:!0}),window.addEventListener("pointerdown",H,{capture:!0}),()=>{window.removeEventListener("keydown",V,{capture:!0}),window.removeEventListener("pointerdown",H,{capture:!0})}},[e]);const S=k.useCallback(()=>{!e&&document.activeElement instanceof HTMLElement&&(v.current=document.activeElement),r(!0)},[e]);JR({shortcuts:k.useMemo(()=>[{key:"k",mod:!0,allowInEditable:!0,handler:S},{key:"p",mod:!0,allowInEditable:!0,handler:S}],[S])}),k.useEffect(()=>{if(e)i(""),a("catalogs"),requestAnimationFrame(()=>{var V;(V=b.current)==null||V.focus()});else if(x.current){const V=v.current;V&&V.isConnected&&V.focus(),v.current=null}x.current=e},[e]);const D=k.useCallback(V=>{a(V),i(H=>H.replace(/^>\s*/,"")),requestAnimationFrame(()=>{var H;return(H=b.current)==null?void 0:H.focus()})},[]),L=k.useCallback(()=>{D(s==="commands"?"catalogs":"commands")},[s,D]),R=k.useCallback(V=>{if(V.startsWith(">")){a("commands"),i(V.slice(1));return}i(V)},[]),O=k.useCallback(V=>{V.key==="Tab"&&(V.preventDefault(),V.stopPropagation(),L())},[L]);k.useEffect(()=>{if(w||!o){u([]);return}const V=new AbortController,H=[...d];u(H.map(W=>({catalog:W,rows:[],loading:!0})));const F=(W,X)=>{V.signal.aborted||u(ce=>ce.map(q=>q.catalog.id===W.id?{catalog:W,...X}:q))};for(const W of H)try{const X=W.adapter.search({query:o,filters:{},limit:T_,offset:0,signal:V.signal});Promise.resolve(X).then(ce=>{F(W,{rows:ce.items.slice(0,T_),loading:!1})},ce=>{F(W,{rows:[],loading:!1,error:UG(ce)})})}catch(X){F(W,{rows:[],loading:!1,error:UG(X)})}return()=>{V.abort()}},[d,o,w]);const U=k.useMemo(()=>{if(!w)return[];const V=m.filter(ybt);if(!C)return V.slice(0,T_);const H=C.toLowerCase();return V.filter(F=>{var W;return F.title.toLowerCase().includes(H)?!0:((W=F.keywords)==null?void 0:W.some(X=>X.toLowerCase().includes(H)))??!1}).slice(0,T_)},[m,w,C]),$=k.useMemo(()=>w||C?[]:rO().filter(V=>V.type==="catalog"?d.some(H=>H.id===V.catalogId):m.some(H=>H.id===V.commandId)),[w,C,d,m]),j=k.useCallback((V,H)=>{zG(V.id,H),V.onSelect(H),r(!1)},[]),K=k.useCallback(V=>{jG(V.id,V.title),V.run(),r(!1)},[]),ie=k.useCallback(V=>{if(V.type==="catalog"){const H=d.find(F=>F.id===V.catalogId);H&&(zG(H.id,V.rowSnapshot),H.onSelect(V.rowSnapshot))}else{const H=m.find(F=>F.id===V.commandId);H&&(jG(H.id,H.title),H.run())}r(!1)},[d,m]);return T.jsx(w6e,{open:e,onOpenChange:r,children:T.jsxs(k6e,{className:"cmdk-shell overflow-hidden border-border/60 p-0 shadow-2xl backdrop-blur-md sm:max-w-[640px] [&>button.dialog-close]:hidden",showCloseButton:!1,onPointerDownOutside:()=>r(!1),onEscapeKeyDown:()=>r(!1),children:[T.jsxs(S6e,{className:"sr-only",children:[T.jsx(E6e,{children:"Command Palette"}),T.jsx(A6e,{children:"Search catalogs or switch to commands"})]}),T.jsxs(vJ,{shouldFilter:!1,className:"bg-transparent",children:[T.jsxs("div",{className:"relative flex items-stretch [&>[data-slot=command-input-wrapper]]:flex-1 [&>[data-slot=command-input-wrapper]]:h-auto",children:[T.jsxs("div",{role:"group","aria-label":"Palette mode",className:"my-2 ml-3 inline-flex shrink-0 self-center rounded-md border border-border/60 bg-muted/40 p-0.5",children:[T.jsx(qG,{active:!w,icon:T.jsx(py,{className:"size-3"}),label:VG,onClick:()=>D("catalogs")}),T.jsx(qG,{active:w,icon:T.jsx(C3,{className:"size-3"}),label:"Commands",onClick:()=>D("commands")})]}),T.jsx(xJ,{ref:b,placeholder:w?"Run a command...":"Search catalogs or type > for commands",value:n,onValueChange:R,onKeyDown:O,className:"h-12 bg-transparent text-base focus-visible:ring-0"})]}),T.jsxs(_J,{className:"max-h-[440px] overflow-y-auto py-1",children:[T.jsx(wJ,{className:"py-10 text-center text-sm text-muted-foreground",children:w?"No matching commands":"No catalog results"}),!w&&$.length>0&&!C&&T.jsx(z_,{heading:"Recent",children:$.map(V=>{const H=V.type==="catalog"?`recent:catalog:${V.catalogId}:${V.rowId}`:`recent:command:${V.commandId}`;return T.jsx(_0,{value:H,onSelect:()=>ie(V),className:"group flex items-center gap-3 rounded-md px-3 py-2 text-sm aria-selected:bg-[color:oklch(from_var(--accent)_l_c_h/0.10)] aria-selected:text-foreground",children:V.type==="catalog"?T.jsxs(T.Fragment,{children:[T.jsx(TA,{className:"size-4 shrink-0 text-muted-foreground/70 group-aria-selected:text-[color:var(--accent)]"}),T.jsx(GG,{row:V.rowSnapshot})]}):T.jsxs(T.Fragment,{children:[T.jsx(C3,{className:"size-4 shrink-0 text-muted-foreground/70 group-aria-selected:text-[color:var(--accent)]"}),T.jsx("span",{className:"flex-1 truncate",children:V.titleSnapshot}),T.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground",children:"command"})]})},H)})}),!w&&c.filter(V=>V.loading||V.error||V.rows.length>0).map(V=>T.jsxs(z_,{heading:V.catalog.label,children:[V.loading?T.jsxs(_0,{value:`${V.catalog.id}:loading`,disabled:!0,className:"group flex items-center gap-3 rounded-md px-3 py-2 text-sm",children:[T.jsx(py,{className:"size-4 shrink-0 text-muted-foreground/70"}),T.jsx("span",{className:"text-muted-foreground",children:"Searching..."})]}):null,V.error?T.jsxs(_0,{value:`${V.catalog.id}:error`,disabled:!0,className:"group flex items-center gap-3 rounded-md px-3 py-2 text-sm",children:[T.jsx(py,{className:"size-4 shrink-0 text-destructive/70"}),T.jsx("span",{className:"text-destructive",children:V.error})]}):null,V.rows.map(H=>T.jsx(_0,{value:`${V.catalog.id}:${H.id}:${H.title}:${H.subtitle??""}`,onSelect:()=>j(V.catalog,H),className:"group flex items-center gap-3 rounded-md px-3 py-2 text-sm aria-selected:bg-[color:oklch(from_var(--accent)_l_c_h/0.10)] aria-selected:text-foreground",children:T.jsxs(bS,{pluginId:V.catalog.pluginId??V.catalog.id,contributionKind:"catalog-row",contributionId:H.id,children:[T.jsx(py,{className:"size-4 shrink-0 text-muted-foreground/70 group-aria-selected:text-[color:var(--accent)]"}),T.jsx(GG,{row:H})]})},`${V.catalog.id}:${H.id}`))]},V.catalog.id)),w&&U.length>0&&T.jsx(z_,{heading:"Commands",children:U.map(V=>T.jsxs(_0,{value:V.title,onSelect:()=>K(V),className:"group flex items-center gap-3 rounded-md px-3 py-2 text-sm aria-selected:bg-[color:oklch(from_var(--accent)_l_c_h/0.10)] aria-selected:text-foreground",children:[T.jsx(C3,{className:"size-4 shrink-0 text-muted-foreground/70 group-aria-selected:text-[color:var(--accent)]"}),T.jsx("span",{className:"flex-1 truncate",children:V.title}),y[V.pluginId??""]&&T.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground",children:y[V.pluginId??""]}),V.shortcut&&T.jsx(M6e,{children:V.shortcut})]},V.id))})]}),T.jsxs("div",{className:"flex items-center justify-between border-t border-border/50 bg-muted/30 px-3 py-2 text-[11px] text-muted-foreground",children:[T.jsx("span",{className:"font-medium tracking-wide uppercase",children:w?"Commands":VG}),T.jsxs("div",{className:"flex items-center gap-3",children:[T.jsxs("span",{className:"flex items-center gap-1",children:[T.jsx(Qd,{children:"tab"}),T.jsx("span",{children:"switch"})]}),T.jsxs("span",{className:"flex items-center gap-1",children:[T.jsx(Qd,{children:T.jsx(TAe,{className:"size-3"})}),T.jsx(Qd,{children:T.jsx(LJ,{className:"size-3"})}),T.jsx("span",{children:"navigate"})]}),T.jsxs("span",{className:"flex items-center gap-1",children:[T.jsx(Qd,{children:T.jsx(OJ,{className:"size-3"})}),T.jsx("span",{children:"open"})]}),T.jsxs("span",{className:"flex items-center gap-1",children:[T.jsx(Qd,{children:"esc"}),T.jsx("span",{children:"close"})]})]})]})]})]})})}function qG({active:t,icon:e,label:r,onClick:n}){return T.jsxs($r,{type:"button",variant:"ghost",size:"sm","aria-pressed":t,onClick:n,className:["h-7 gap-1.5 px-2 text-xs font-medium",t?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"].join(" "),children:[e,r]})}function GG({row:t}){return T.jsxs("span",{className:"flex min-w-0 flex-1 items-baseline gap-2 truncate",children:[T.jsx("span",{className:"truncate font-medium text-foreground",children:t.title}),t.subtitle?T.jsx("span",{className:"truncate text-xs text-muted-foreground/70",children:t.subtitle}):null,t.meta?T.jsx("span",{className:"ml-auto shrink-0 text-xs text-muted-foreground/70",children:t.meta}):null]})}function WG(t,e,r=!0){if(!r||typeof window>"u")return e;try{const n=window.localStorage.getItem(t);if(n==="1")return!0;if(n==="0")return!1}catch{}return e}function vbt(t,e,r=!0){if(!(!r||typeof window>"u"))try{window.localStorage.setItem(t,e?"1":"0")}catch{}}function YG(t,e,r=!0){if(!r||typeof window>"u")return e;try{const n=window.localStorage.getItem(t);if(n===null)return e;const i=Number(n);return Number.isFinite(i)?i:e}catch{}return e}function xbt(t,e,r=!0){if(!(!r||typeof window>"u"))try{window.localStorage.setItem(t,String(Math.round(e)))}catch{}}function _bt(t){const e=t.nav!==null,r=t.surface!==void 0,n=!!t.surface,i=t.nav||"session-list",s=t.center??"chat",a=t.surface||"artifact-surface",o=wbt(),[l,c]=ZG(t.storageKey?`${t.storageKey}:drawerWidth`:void 0,260),[u,d]=ZG(t.storageKey?`${t.storageKey}:surfaceWidth`:void 0,680),m=YR(),p=k_(l,200,360),y=Math.max(480,Math.floor(o*.72)),b=k_(u,480,y),v=pw(t.centerParams,"getSurface"),x=pw(t.centerParams,"isWorkbenchOpen"),w=pw(t.centerParams,"openWorkbench"),C=p6(t.navParams,"onClose"),S=p6(t.surfaceParams,"onClose"),D=p6(t.navParams,"onCreate"),L=e?!!C:!!t.onOpenNav,R=n?!!S:!!t.onOpenSurface,O=k.useCallback(()=>{var j;if(e){C==null||C();return}(j=t.onOpenNav)==null||j.call(t)},[C,e,t.onOpenNav]),U=k.useCallback(()=>{var j;if(n){S==null||S();return}(j=t.onOpenSurface)==null||j.call(t)},[S,t.onOpenSurface,n]),$=k.useCallback(()=>{e&&(C==null||C()),n&&(S==null||S()),gD(),Cbt()},[C,S,e,n]);return JR({shortcuts:k.useMemo(()=>{const j=[];return L&&j.push({key:"1",mod:!0,handler:O}),R&&j.push({key:"2",mod:!0,handler:U}),s==="chat"&&j.push({key:"Escape",allowInEditable:!0,handler:$}),j},[L,R,s,$,O,U])}),k.useEffect(()=>{const j="workspace:chat-layout",K="agent:chat-layout";return m.unregisterByPluginId(j),m.unregisterByPluginId(K),m.registerCommand({id:"workspace:open-session-history",title:e?"Close Session History":"Open Session History",keywords:["sessions","history","drawer",e?"close":"open"],shortcut:"⌘1",pluginId:j,when:()=>L,run:O}),m.registerCommand({id:"workspace:open-workbench",title:n?"Close Workbench":"Open Workbench",keywords:["surface","artifacts","sources","workbench",n?"close":"open"],shortcut:"⌘2",pluginId:j,when:()=>R,run:U}),s==="chat"&&m.registerCommand({id:"agent:focus-chat",title:"Focus Chat",keywords:["agent","chat","prompt","composer","input","focus"],pluginId:K,run:$}),D&&m.registerCommand({id:"agent:new-chat",title:"New Chat",keywords:["agent","chat","session","new"],pluginId:K,run:D}),()=>{m.unregisterByPluginId(j),m.unregisterByPluginId(K)}},[m,e,s,r,n,t.navParams,t.surfaceParams,t.onOpenNav,t.onOpenSurface,L,R,C,S,D,$,O,U]),k.useEffect(()=>{if(!v||!x||!w)return;const j={surface:v,isWorkbenchOpen:x,openWorkbench:w};return Hr.on(qa.uiCommand,({command:K})=>{vS(K,j)})},[v,x,w]),T.jsxs("div",{"data-boring-workspace":"","data-boring-workspace-part":"shell",className:an("relative flex h-full min-h-0 w-full overflow-hidden bg-background",t.className),children:[T.jsxs("aside",{"data-boring-workspace-part":"session-drawer","data-boring-state":e?"expanded":"collapsed","aria-label":"Session browser","aria-hidden":!e,className:an("relative h-full min-h-0 shrink-0 overflow-hidden bg-background","transition-[width,min-width,max-width] duration-[280ms] ease-[cubic-bezier(0.22,1,0.36,1)]",e&&"border-r border-[color:oklch(from_var(--border)_l_c_h/0.6)]"),style:{width:e?p:0,minWidth:e?p:0,maxWidth:e?p:0,willChange:"width"},children:[T.jsx("div",{className:an("h-full min-h-0 overflow-hidden","transition-opacity duration-[200ms] ease-[cubic-bezier(0.22,1,0.36,1)]",e?"opacity-100":"opacity-0"),children:T.jsx(m6,{id:i,params:t.navParams})}),e?T.jsx(XG,{side:"drawer-right",ariaLabel:"Resize sessions drawer",onResize:j=>c(K=>k_(K+j,200,360))}):null]}),T.jsxs("main",{"data-boring-workspace-part":"chat-stage","aria-label":"Chat stage",className:"relative h-full min-h-0 min-w-0 flex-1 overflow-hidden bg-background",children:[T.jsx(m6,{id:s,params:t.centerParams}),!e&&t.onOpenNav?T.jsx(KG,{side:"left",icon:"sessions",onClick:t.onOpenNav,label:"Sessions",hint:"⌘1"}):null,!n&&t.onOpenSurface?T.jsx(KG,{side:"right",icon:"workbench",onClick:t.onOpenSurface,label:"Workbench",hint:"⌘2"}):null]}),r?T.jsxs("aside",{"data-boring-workspace-part":"workbench","data-boring-state":n?"expanded":"collapsed","aria-label":n?"Surface":void 0,"aria-hidden":!n,className:an("relative h-full min-h-0 shrink-0 overflow-hidden bg-background","transition-[width,min-width,max-width] duration-[280ms] ease-[cubic-bezier(0.22,1,0.36,1)]",n&&"border-l border-[color:oklch(from_var(--border)_l_c_h/0.6)]"),style:{width:n?b:0,minWidth:n?b:0,maxWidth:n?b:0,willChange:"width"},children:[T.jsx("div",{className:an("h-full min-h-0 overflow-hidden","transition-opacity duration-[200ms] ease-[cubic-bezier(0.22,1,0.36,1)]",n?"opacity-100":"opacity-0"),children:T.jsx(m6,{id:a,params:t.surfaceParams})}),n?T.jsx(XG,{side:"surface-left",ariaLabel:"Resize workbench",onResize:j=>d(K=>k_(K-j,480,y))}):null]}):null]})}function k_(t,e,r){return Math.max(e,Math.min(r,t))}function ZG(t,e){const[r,n]=k.useState(()=>t?YG(t,e):e);k.useEffect(()=>{n(t?YG(t,e):e)},[t,e]);const i=k.useCallback(s=>{n(a=>{const o=typeof s=="function"?s(a):s;return t&&xbt(t,o),o})},[t]);return[r,i]}function wbt(){const[t,e]=k.useState(()=>typeof window<"u"?window.innerWidth:1200);return k.useEffect(()=>{const r=()=>e(window.innerWidth);return window.addEventListener("resize",r),()=>window.removeEventListener("resize",r)},[]),t}function XG({side:t,ariaLabel:e,onResize:r}){const n=k.useRef(null),i=k.useCallback(o=>{o.preventDefault(),n.current=o.clientX,o.currentTarget.setPointerCapture(o.pointerId),document.body.style.cursor="col-resize",document.body.style.userSelect="none"},[]),s=k.useCallback(o=>{if(n.current===null)return;const l=o.clientX-n.current;n.current=o.clientX,r(l)},[r]),a=k.useCallback(o=>{n.current!==null&&(n.current=null,o.currentTarget.releasePointerCapture(o.pointerId),document.body.style.cursor="",document.body.style.userSelect="")},[]);return T.jsx(q6e,{"aria-label":e,orientation:"vertical",onResizeStart:i,onPointerMove:s,onPointerUp:a,onPointerCancel:a,className:an("absolute top-0 bottom-0 z-20 bg-transparent","transition-colors duration-200","hover:bg-border/70 hover:[transition-delay:150ms]","active:bg-muted-foreground/30",t==="drawer-right"?"right-0":"left-0")})}function pw(t,e){const r=t==null?void 0:t[e];return typeof r=="function"?r:void 0}function p6(t,e){return pw(t,e)}function gD(){if(typeof document>"u")return;const t=document.querySelector('[data-boring-agent] textarea[name="message"], textarea[name="message"]');t==null||t.focus()}function Cbt(){typeof window>"u"||window.requestAnimationFrame(()=>{gD(),window.setTimeout(gD,320)})}function m6({id:t,params:e}){const r=Zv(),n=k.useMemo(()=>r.getComponents(),[r])[t],i=k.useMemo(()=>Tbt(t),[t]);return n?T.jsx(k.Suspense,{fallback:T.jsx(AJ,{centered:!0}),children:T.jsx(n,{params:e,api:i,containerApi:{}})}):null}function Tbt(t){return{id:t,title:t,setTitle:()=>{},setActive:()=>{},close:()=>{},updateParameters:()=>{},onDidParametersChange:()=>({dispose(){}}),onDidActiveChange:()=>({dispose(){}}),onDidDimensionsChange:()=>({dispose(){}}),onDidLocationChange:()=>({dispose(){}}),onDidTitleChange:()=>({dispose(){}}),onWillFocus:()=>({dispose(){}}),onDidFocus:()=>({dispose(){}}),onDidBlur:()=>({dispose(){}}),onWillVisibilityChange:()=>({dispose(){}}),onDidVisibilityChange:()=>({dispose(){}}),onDidConstraintsChange:()=>({dispose(){}})}}function KG({side:t,icon:e,onClick:r,label:n,hint:i}){return T.jsx(mi,{type:"button",variant:"ghost",size:"icon-sm",onClick:r,"aria-label":n,title:i?`${n} (${i})`:n,className:an("absolute top-1/2 z-30 h-9 w-9 -translate-y-1/2 gap-0.5 rounded-lg bg-background text-muted-foreground",t==="left"?"left-2":"right-2","shadow-[0_1px_2px_-1px_oklch(0_0_0/0.08),0_2px_8px_-4px_oklch(0_0_0/0.10),inset_0_0_0_1px_oklch(from_var(--border)_l_c_h/0.7)]","hover:-translate-y-[calc(50%+1px)] hover:bg-muted/60 hover:text-foreground hover:shadow-[0_2px_4px_-1px_oklch(0_0_0/0.08),0_4px_12px_-4px_oklch(0_0_0/0.10),inset_0_0_0_1px_oklch(from_var(--border)_l_c_h/0.9)]","focus-visible:ring-ring/40"),children:e==="sessions"?T.jsxs("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[T.jsx("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"1.8"}),T.jsx("path",{d:"M12 7v5l3.2 2",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round"})]}):T.jsx("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:T.jsx("path",{d:"M3 7.5 A1.5 1.5 0 0 1 4.5 6 h4 l2 2 h9 A1.5 1.5 0 0 1 21 9.5 V17.5 A1.5 1.5 0 0 1 19.5 19 H4.5 A1.5 1.5 0 0 1 3 17.5 Z",stroke:"currentColor",strokeWidth:"1.8",strokeLinejoin:"round"})})})}function kbt({appTitle:t="Boring",sessionTitle:e,onCommandPalette:r,onNewChat:n,topBarLeft:i,topBarRight:s,className:a}){const o=s??null;return T.jsxs("header",{"data-boring-workspace-part":"topbar",className:an("relative flex items-center justify-between gap-2 px-3","bg-background border-b border-[color:oklch(from_var(--border)_l_c_h/0.4)]",a),style:{height:40},"aria-label":"App top bar",children:[T.jsx("div",{className:"flex min-w-0 flex-1 items-center gap-2.5",children:i??T.jsxs(T.Fragment,{children:[T.jsx("img",{src:"https://chatgpt.com/backend-api/estuary/content?id=file_000000006a4471f4b8411fcbfde271c6&ts=493962&p=fs&cid=1&sig=b406cfec61d387bdedd898858283b389f31ad2bd3eb7a358a6d1efa23e9afa83&v=0",alt:t,className:"h-6 w-6 shrink-0 rounded-md"}),T.jsx("span",{className:"truncate text-[12px] font-medium tracking-tight text-foreground",children:t}),e&&T.jsxs(T.Fragment,{children:[T.jsx("span",{"aria-hidden":"true",className:"text-muted-foreground/30",children:"/"}),T.jsx("span",{className:"truncate text-[12px] font-normal text-muted-foreground",children:e})]})]})}),T.jsxs($r,{type:"button",variant:"ghost",size:"sm",onClick:r,className:"group h-6 gap-1 px-1.5 text-[12px] text-muted-foreground/60 hover:bg-transparent hover:text-foreground focus-visible:text-foreground","aria-label":"Search catalogs and commands",title:"Command palette (⌘K)",children:[T.jsx(Gw,{className:"h-3 w-3 shrink-0 opacity-70",strokeWidth:1.75}),T.jsx("span",{className:"font-normal tracking-tight",children:"Search"}),T.jsx(Qd,{className:"ml-1 border-0 bg-transparent p-0 text-[10px] shadow-none group-hover:text-muted-foreground",children:"⌘K"})]}),T.jsxs("div",{className:"flex flex-1 shrink-0 items-center justify-end gap-1",children:[n&&T.jsx(mi,{type:"button",variant:"ghost",size:"icon-sm",onClick:n,"aria-label":"New chat",title:"New chat",children:T.jsx(PJ,{className:"h-4 w-4"})}),o]})]})}function Sbt(){const t=`s${Date.now()}`;return{sessions:[{id:t,title:"New session",updatedAt:Date.now()}],activeId:t}}function Ebt(t,e){var r;if(typeof localStorage>"u")return e();try{const n=localStorage.getItem(t);if(n){const i=JSON.parse(n),s=Array.isArray(i.sessions)?i.sessions:Array.isArray(i.items)?i.items:null;if(s)return{sessions:s,activeId:i.activeId??((r=s[0])==null?void 0:r.id)??""}}}catch{}return e()}function Abt(t,e){if(!(typeof localStorage>"u"))try{localStorage.setItem(t,JSON.stringify(e))}catch{}}function Dbt(t={}){const e=t.storageKey??"workspace:sessions",r=t.initial??Sbt;let n=Ebt(e,r);const i=new Set,s=a=>{n=a,Abt(e,n),i.forEach(o=>o())};return{getState:()=>n,subscribe(a){return i.add(a),()=>{i.delete(a)}},switchTo(a){s({...n,activeId:a})},create(){const a=`s${Date.now()}`,o={id:a,title:"New session",updatedAt:Date.now()};s({sessions:[o,...n.sessions],activeId:a})},remove(a){var o;const l=n.sessions.filter(u=>u.id!==a),c=n.activeId===a?((o=l[0])==null?void 0:o.id)??"":n.activeId;s({sessions:l,activeId:c})}}}function Lbt(t){return k.useSyncExternalStore(t.subscribe,t.getState,t.getState)}function Ibt(t){return t.type==="panel"}function Rbt(t,e){return t.endsWith(":surface")?t.slice(0,-8):e}function QG(t,e,r){const[n,i]=k.useState(()=>WG(t,e,r));k.useEffect(()=>{i(WG(t,e,r))},[t,e,r]);const s=k.useCallback(a=>{i(a),vbt(t,a,r)},[r,t]);return[n,s]}const Obt={},JG={openTabs:[],activeTab:null};function Nbt(t){if(!t)return"/api/v1/ui";const e=t.replace(/\/$/,""),r="/api/v1/ui";return e.endsWith(r)?e:`${e}${r}`}function Mbt(t){return`${Nbt(t)}/state`}function Pbt(t){var e;const r=t.openTabs.find(i=>i.id===t.activeTab),n=(e=r==null?void 0:r.params)==null?void 0:e.path;return typeof n=="string"?n:null}function Bbt({bridgeEndpoint:t,requestHeaders:e,navOpen:r,surfaceOpen:n,snapshot:i}){const s=Zv(),a=k.useRef(null);return k.useEffect(()=>{var o;if(t===null)return;(o=a.current)==null||o.abort();const l=new AbortController;a.current=l;const c={v:1,drawerOpen:r,workbenchOpen:n,openTabs:i.openTabs,activeTab:i.activeTab,activeFile:Pbt(i),availablePanels:s.list().map(u=>u.id)};return fetch(Mbt(t),{method:"PUT",headers:{...e,"Content-Type":"application/json"},body:JSON.stringify({state:c,causedBy:"user"}),signal:l.signal}).catch(()=>{}),()=>{l.abort()}},[t,r,s,e,i,n]),null}function Fbt({workspaceId:t,chatPanel:e,useSessions:r,requestHeaders:n=Obt,sessionStorageKey:i,providerStorageKey:s,surfaceStorageKey:a,beforeShell:o,afterShell:l,panels:c,commands:u,catalogs:d,plugins:m,excludeDefaults:p,capabilities:y,apiBaseUrl:b,authHeaders:v,apiTimeout:x,defaultTheme:w,onThemeChange:C,persistenceEnabled:S,bridgeEndpoint:D,onAuthError:L,sessions:R,activeSessionId:O,onSwitchSession:U,onCreateSession:$,onDeleteSession:j,onActiveSessionIdChange:K,appTitle:ie="Boring",defaultSessionTitle:V="New session",topBarLeft:H,topBarRight:F,chatParams:W,extraPanels:X,extraCommands:ce,onOpenNav:q,onOpenSurface:Q,className:ne}){var G,ae;const te=s??`boring-ui-v2:layout:${t}`,oe=a??`${te}:surface`,fe=Rbt(oe,te),ke=S!==!1,ve=i??`boring-workspace:sessions:${t}`,Te=k.useMemo(()=>Dbt({storageKey:ve}),[ve]),Re=Lbt(Te),He=e??Bde,Je=r??(e?void 0:Fde),ot=Je==null?void 0:Je({requestHeaders:n,storageKey:ve}),er=R!==void 0||O!==void 0||U!==void 0||$!==void 0||j!==void 0,Ur=ot==null?void 0:ot.sessions.map(kt=>({...kt,title:kt.title??"New session"})),vn=ot?Ur??[]:er?R??[]:Re.sessions,lt=ot?ot.activeSessionId??null:er?O??null:Re.activeId,Wt=(ot==null?void 0:ot.switch)??U??Te.switchTo,Cr=ot?()=>ot.create():$??Te.create,kn=(ot==null?void 0:ot.delete)??j??Te.remove,gi=((G=vn.find(kt=>kt.id===lt))==null?void 0:G.title)??void 0,[Xi,Mr]=QG(`${fe}:drawer`,!0,ke),[cn,Le]=QG(`${fe}:workbenchOpen`,!1,ke),_e=k.useRef(!1),Me=k.useRef(cn),Ye=k.useRef(oe),dt=k.useRef(null);Ye.current=oe;const[$t,ar]=k.useState(()=>({key:oe,snapshot:JG})),Ar=$t.key===oe?$t.snapshot:JG;k.useEffect(()=>{_e.current=!1},[t]),k.useEffect(()=>{if(!(!ot||ot.loading)){if(ot.sessions.length>0){_e.current=!1;return}_e.current||(_e.current=!0,Promise.resolve(ot.create({title:V})).catch(()=>{_e.current=!1}))}},[V,ot]),k.useEffect(()=>{Me.current=cn},[cn]);const br=k.useCallback(kt=>{dt.current={key:oe,api:kt},ar({key:oe,snapshot:kt.getSnapshot()})},[oe]),hr=k.useCallback(kt=>{ar({key:oe,snapshot:kt})},[oe]),nr=k.useCallback(()=>{const kt=dt.current;return(kt==null?void 0:kt.key)===Ye.current?kt.api:null},[]),Oi=k.useCallback(()=>Me.current,[]),Qn=k.useCallback(()=>{Me.current=!0,Le(!0)},[Le]),Ge=k.useMemo(()=>(m==null?void 0:m.flatMap(kt=>kt.outputs??[]))??[],[m]),qe=k.useMemo(()=>Ge.some(kt=>kt.type==="left-tab"),[Ge]),Bt=k.useMemo(()=>Ge.filter(Ibt).map(kt=>kt.panel.id),[Ge]),zt=k.useMemo(()=>[...X??[],...Bt],[X,Bt]),jt=lt??((ae=vn[0])==null?void 0:ae.id)??"default";k.useEffect(()=>{var kt;const It=or=>{const un=or.detail;!un||typeof un!="object"||vS(un,{surface:nr,isWorkbenchOpen:Oi,openWorkbench:Qn})};return(kt=globalThis.addEventListener)==null||kt.call(globalThis,hD,It),()=>{var or;return(or=globalThis.removeEventListener)==null?void 0:or.call(globalThis,hD,It)}},[nr,Oi,Qn]),k.useEffect(()=>{lt&&(K==null||K(lt))},[lt,K]);const xn=k.useMemo(()=>({...W,sessionId:jt,requestHeaders:n,bridgeEndpoint:D,getSurface:nr,isWorkbenchOpen:Oi,openWorkbench:Qn,extraCommands:ce}),[W,jt,n,D,nr,Oi,Qn,ce]),Tr=k.useMemo(()=>({storageKey:oe,extraPanels:zt,onReady:br,onChange:hr,onClose:()=>{Me.current=!1,Le(!1)}}),[hr,br,oe,zt,Le]);return T.jsx("div",{className:"h-full bg-background text-foreground",children:T.jsxs(mbt,{chatPanel:He,panels:c,commands:u,catalogs:d,plugins:m,excludeDefaults:p,capabilities:y,apiBaseUrl:b,authHeaders:v,apiTimeout:x,defaultTheme:w,onThemeChange:C,workspaceId:t,storageKey:te,persistenceEnabled:S,bridgeEndpoint:null,onAuthError:L,children:[o,T.jsx(Bbt,{bridgeEndpoint:D,requestHeaders:n,navOpen:Xi,surfaceOpen:cn,snapshot:Ar}),T.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[T.jsx(kbt,{appTitle:ie,sessionTitle:gi??V,onCommandPalette:()=>{document.dispatchEvent(new KeyboardEvent("keydown",{key:"k",metaKey:!0,ctrlKey:!0,bubbles:!0,cancelable:!0}))},onNewChat:Cr,topBarLeft:H,topBarRight:F}),T.jsx(_bt,{className:ne,nav:Xi?"session-list":null,navParams:{sessions:vn,activeId:lt,onSwitch:Wt,onCreate:Cr,onDelete:kn,onClose:()=>Mr(!1)},center:"chat",centerParams:xn,surface:cn?"artifact-surface":null,surfaceParams:Tr,sidebar:cn&&qe?"workbench-left":null,storageKey:ke?fe:void 0,onOpenNav:()=>{Mr(!0),q==null||q()},onOpenSurface:()=>{Me.current=!0,Le(!0),Q==null||Q()}})]}),l]})})}const mw="__showcase__",$bt="data:image/svg+xml;utf8,"+encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 160"><defs><linearGradient id="g" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="%23312e81"/><stop offset="1" stop-color="%230ea5e9"/></linearGradient></defs><rect width="240" height="160" fill="url(%23g)"/><text x="120" y="90" text-anchor="middle" font-family="Inter,system-ui" font-size="24" font-weight="700" fill="white">mockup.png</text></svg>'),zbt=[{id:"u0",role:"user",parts:[{type:"file",url:$bt,mediaType:"image/svg+xml",filename:"mockup.svg"},{type:"text",text:"Can you take a look at this mockup and suggest improvements?"}]},{id:"a0",role:"assistant",parts:[{type:"text",text:"Got it — the gradient tile reads cleanly. A few quick calls: tighten the type tracking, drop the drop-shadow, and reserve an 8px safe area around the text so it breathes on small sizes."}]},{id:"u0a",role:"user",parts:[{type:"file",url:"data:text/plain;base64,"+btoa(`# Project notes
|
|
1315
1315
|
|
|
1316
1316
|
- Ship shadcn ChatPanel
|
|
1317
1317
|
- Wire attachments + artifacts
|