@xpert-ai/chatkit-ui 0.5.9 → 0.5.10
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/dist/app/assets/{_baseUniq-BLpvr8Li.js → _baseUniq-BGtBWDHF.js} +1 -1
- package/dist/app/assets/{abap-DuWq8-Fa.js → abap-CRoFwrxO.js} +1 -1
- package/dist/app/assets/{abnf-BHjR3bmX.js → abnf-CNjS2eos.js} +1 -1
- package/dist/app/assets/{actionscript-DJxrYQDx.js → actionscript-B8mr3NzG.js} +1 -1
- package/dist/app/assets/{ada-CbL6tAKZ.js → ada-BFLo8FUI.js} +1 -1
- package/dist/app/assets/{agda-Ck6x7eDV.js → agda-3OzBs9Hc.js} +1 -1
- package/dist/app/assets/{al-DdXfEkta.js → al-D20XP4lJ.js} +1 -1
- package/dist/app/assets/{antlr4-upUqmaYh.js → antlr4-CAk9QE2f.js} +1 -1
- package/dist/app/assets/{apacheconf-CupXJx2-.js → apacheconf-DVy5BZVN.js} +1 -1
- package/dist/app/assets/{apex-0YDHPbgn.js → apex-BOwqYrLv.js} +1 -1
- package/dist/app/assets/{apl-RmSfPwym.js → apl-BKNJFilC.js} +1 -1
- package/dist/app/assets/{applescript-COai1tTm.js → applescript-BBrUU_PL.js} +1 -1
- package/dist/app/assets/{aql-CbZi1-r0.js → aql-D6uGUCXn.js} +1 -1
- package/dist/app/assets/{arc-DIn4pjjH.js → arc-CrwfbbB_.js} +1 -1
- package/dist/app/assets/{architectureDiagram-Q4EWVU46-Dmhp32t-.js → architectureDiagram-Q4EWVU46-ChKCVNgI.js} +1 -1
- package/dist/app/assets/{arduino-CQPi4w3l.js → arduino-D6bzhWX_.js} +1 -1
- package/dist/app/assets/{arff-CeuE6lSG.js → arff-D92IxpM3.js} +1 -1
- package/dist/app/assets/{asciidoc-DCNYoRln.js → asciidoc-DfsvV2P7.js} +1 -1
- package/dist/app/assets/{asm6502-Pd3JHkRr.js → asm6502-_F1FAt_4.js} +1 -1
- package/dist/app/assets/{asmatmel-Cc5XZnaJ.js → asmatmel-Cbtqac6c.js} +1 -1
- package/dist/app/assets/{aspnet-C533BcWB.js → aspnet-BW0Um7vX.js} +1 -1
- package/dist/app/assets/{autohotkey-DKsSzBeu.js → autohotkey-BN09uJNY.js} +1 -1
- package/dist/app/assets/{autoit-BBqFqs2I.js → autoit-CsiD8aKJ.js} +1 -1
- package/dist/app/assets/{avisynth-BQhu1vn5.js → avisynth-CjQfGoLi.js} +1 -1
- package/dist/app/assets/{avro-idl-CLl66iQZ.js → avro-idl-BZ5kGhBz.js} +1 -1
- package/dist/app/assets/{bash-D-02JHh4.js → bash-DJKkM7QN.js} +1 -1
- package/dist/app/assets/{basic-D0Z8Jj8l.js → basic-Bfxph2ze.js} +1 -1
- package/dist/app/assets/{batch-B6HFRBhp.js → batch-Bg0kGp_U.js} +1 -1
- package/dist/app/assets/{bbcode-CE7knYbs.js → bbcode-BCAqMttV.js} +1 -1
- package/dist/app/assets/{bicep--WgDi_5T.js → bicep-D59fWffG.js} +1 -1
- package/dist/app/assets/{birb-CRszBx8p.js → birb-o5jcDsHe.js} +1 -1
- package/dist/app/assets/{bison-2yOIavxu.js → bison-yB-JpgNW.js} +1 -1
- package/dist/app/assets/{blockDiagram-DXYQGD6D-CdfVTYe6.js → blockDiagram-DXYQGD6D-Bbcf1g82.js} +1 -1
- package/dist/app/assets/{bnf-Dg8yqReW.js → bnf-MvjnxGLj.js} +1 -1
- package/dist/app/assets/{brainfuck-CMcDLgle.js → brainfuck-Di4LuxXz.js} +1 -1
- package/dist/app/assets/{brightscript-Cqzcw5aY.js → brightscript-CoKUdu4Z.js} +1 -1
- package/dist/app/assets/{bro-CCYADGfA.js → bro-Dtuf-rOu.js} +1 -1
- package/dist/app/assets/{bsl-BazS2rLi.js → bsl-Dphub1md.js} +1 -1
- package/dist/app/assets/{c-CzdIRBJL.js → c-CouCMjhn.js} +1 -1
- package/dist/app/assets/{c4Diagram-AHTNJAMY-CzWbdT2z.js → c4Diagram-AHTNJAMY-B71AnYEv.js} +1 -1
- package/dist/app/assets/{cfscript-BfocvIBZ.js → cfscript-WEBTQyyh.js} +1 -1
- package/dist/app/assets/{chaiscript-DEeofdbI.js → chaiscript-ChKY8J66.js} +1 -1
- package/dist/app/assets/channel-cWYrdn2X.js +1 -0
- package/dist/app/assets/{chunk-4BX2VUAB-DXvcZJRe.js → chunk-4BX2VUAB-CrS4RXRQ.js} +1 -1
- package/dist/app/assets/{chunk-4TB4RGXK-Cvk3MhhJ.js → chunk-4TB4RGXK-DK5YEmle.js} +1 -1
- package/dist/app/assets/{chunk-55IACEB6-Om7ibAwr.js → chunk-55IACEB6-Bo7tPBvq.js} +1 -1
- package/dist/app/assets/{chunk-EDXVE4YY-DbAgli9I.js → chunk-EDXVE4YY-S8p2mxbS.js} +1 -1
- package/dist/app/assets/{chunk-FMBD7UC4-DObpaYUO.js → chunk-FMBD7UC4-BmeEs0Fl.js} +1 -1
- package/dist/app/assets/{chunk-OYMX7WX6-rGMgjhKm.js → chunk-OYMX7WX6-CVOe3eKO.js} +1 -1
- package/dist/app/assets/{chunk-QZHKN3VN-BtHCPSxj.js → chunk-QZHKN3VN-D8KyAP_6.js} +1 -1
- package/dist/app/assets/{chunk-YZCP3GAM-CDkTBaPo.js → chunk-YZCP3GAM-BCxkcMfg.js} +1 -1
- package/dist/app/assets/{cil-BNlTLivw.js → cil-B50znBsv.js} +1 -1
- package/dist/app/assets/classDiagram-6PBFFD2Q-B_cL4ol2.js +1 -0
- package/dist/app/assets/classDiagram-v2-HSJHXN6E-B_cL4ol2.js +1 -0
- package/dist/app/assets/{clike-BBIPxwPb.js → clike-BDx2IDni.js} +1 -1
- package/dist/app/assets/{clojure-SjJCVW3l.js → clojure-DwvfHL53.js} +1 -1
- package/dist/app/assets/clone-DqC7wLFm.js +1 -0
- package/dist/app/assets/{cmake-DKXTFLeQ.js → cmake-CR0A7aZm.js} +1 -1
- package/dist/app/assets/{cobol-DDV2T8Ov.js → cobol-CyPvCTIP.js} +1 -1
- package/dist/app/assets/{coffeescript-DLlO3-WB.js → coffeescript-BWdDr59V.js} +1 -1
- package/dist/app/assets/{concurnas-Zk22sd4q.js → concurnas-DOsrzlEd.js} +1 -1
- package/dist/app/assets/{coq-CB49fGLj.js → coq-DufSYl-_.js} +1 -1
- package/dist/app/assets/{core-GilJv2TY.js → core-CCxBh-db.js} +1 -1
- package/dist/app/assets/{cose-bilkent-S5V4N54A-dCcXah1N.js → cose-bilkent-S5V4N54A-CVetMxrj.js} +1 -1
- package/dist/app/assets/{cpp-_nLYhTeO.js → cpp-DlRzYOQ3.js} +1 -1
- package/dist/app/assets/{crystal-0uF3fCBY.js → crystal-C6liNBfM.js} +1 -1
- package/dist/app/assets/{csharp-9a018lXK.js → csharp-BJQ_L68V.js} +1 -1
- package/dist/app/assets/{cshtml-DeRWrMgA.js → cshtml-CIHuGJB1.js} +1 -1
- package/dist/app/assets/{csp-C1JPZRc6.js → csp-DClFC8n5.js} +1 -1
- package/dist/app/assets/{css-CtlaCojl.js → css-BIHXWlvb.js} +1 -1
- package/dist/app/assets/{css-extras-_r0fSC4K.js → css-extras-DW9n0pYv.js} +1 -1
- package/dist/app/assets/{csv-DEVHAMet.js → csv-BCDO1ezZ.js} +1 -1
- package/dist/app/assets/{cypher-OQlwpa7A.js → cypher-C02ZuRq6.js} +1 -1
- package/dist/app/assets/{d-CBefACWo.js → d-C_m1NZFO.js} +1 -1
- package/dist/app/assets/{dagre-KV5264BT-BbcR5yFp.js → dagre-KV5264BT-CNZ7oGpU.js} +1 -1
- package/dist/app/assets/{dart-DnZNI7st.js → dart-BzfpaRRB.js} +1 -1
- package/dist/app/assets/{dataweave-C0KQEfm3.js → dataweave-BZwfufNx.js} +1 -1
- package/dist/app/assets/{dax-C85xkJS9.js → dax-BL-K1OK0.js} +1 -1
- package/dist/app/assets/{dhall-Dr7lP2CR.js → dhall-kRlu5-Ah.js} +1 -1
- package/dist/app/assets/{diagram-5BDNPKRD-CAF6Irol.js → diagram-5BDNPKRD-Dou4ReAX.js} +1 -1
- package/dist/app/assets/{diagram-G4DWMVQ6-BjM_224a.js → diagram-G4DWMVQ6-DrTF8uMu.js} +1 -1
- package/dist/app/assets/{diagram-MMDJMWI5-DLUB15w5.js → diagram-MMDJMWI5-Duy5amDa.js} +1 -1
- package/dist/app/assets/{diagram-TYMM5635-DBbpw92w.js → diagram-TYMM5635-BbR1qfVD.js} +1 -1
- package/dist/app/assets/{diff-BMBQT17e.js → diff-B4AimFb8.js} +1 -1
- package/dist/app/assets/{django-ciXFTeWU.js → django-CHuXCByJ.js} +1 -1
- package/dist/app/assets/{dns-zone-file-DC-B5K-Z.js → dns-zone-file-DFO0-Wh5.js} +1 -1
- package/dist/app/assets/{docker-A8DlJ91e.js → docker-DeblFuGF.js} +1 -1
- package/dist/app/assets/{dot-DC8VHvNV.js → dot-DsmxGkhr.js} +1 -1
- package/dist/app/assets/{ebnf-92ogoCIr.js → ebnf-CbgMYLgT.js} +1 -1
- package/dist/app/assets/{editorconfig-D-VWzvau.js → editorconfig-DFLqU5tO.js} +1 -1
- package/dist/app/assets/{eiffel-BQlPy2tR.js → eiffel-BwLrgMir.js} +1 -1
- package/dist/app/assets/{ejs-hYRRXYEf.js → ejs-C_qs3M41.js} +1 -1
- package/dist/app/assets/{elixir-BQaOfAKO.js → elixir-DrAUe9cA.js} +1 -1
- package/dist/app/assets/{elm-CMZDaOsd.js → elm-NL3cn8Zq.js} +1 -1
- package/dist/app/assets/{erDiagram-SMLLAGMA-D7RIpy8K.js → erDiagram-SMLLAGMA-BfCXo53J.js} +1 -1
- package/dist/app/assets/{erb-BhUx9oZj.js → erb-B3ZYOAhJ.js} +1 -1
- package/dist/app/assets/{erlang-BEE4gQmE.js → erlang-DHaDiNC1.js} +1 -1
- package/dist/app/assets/{etlua-Do5lhS9I.js → etlua-cjNwXVDj.js} +1 -1
- package/dist/app/assets/{excel-formula-CmwpMtyy.js → excel-formula-K59v6qG0.js} +1 -1
- package/dist/app/assets/{factor-B2pJs6O3.js → factor-CaxnvHX-.js} +1 -1
- package/dist/app/assets/{false-DvjmZdOv.js → false-C3dAj0rb.js} +1 -1
- package/dist/app/assets/{firestore-security-rules-CFb_h360.js → firestore-security-rules-BWiaIy5P.js} +1 -1
- package/dist/app/assets/{flow-D0Mztv7X.js → flow-DtC7lyt9.js} +1 -1
- package/dist/app/assets/{flowDiagram-DWJPFMVM-Bs64njF4.js → flowDiagram-DWJPFMVM-C-qKitVO.js} +1 -1
- package/dist/app/assets/{fortran-1pOElj0a.js → fortran-DR0Ai6wv.js} +1 -1
- package/dist/app/assets/{fsharp-B6O1vScF.js → fsharp-CQ4gmr0N.js} +1 -1
- package/dist/app/assets/{ftl-BC1JMSb3.js → ftl-Ckk-2edF.js} +1 -1
- package/dist/app/assets/{ganttDiagram-T4ZO3ILL-BaqYXbd5.js → ganttDiagram-T4ZO3ILL-CVsnCO44.js} +1 -1
- package/dist/app/assets/{gap-DHN_hna1.js → gap-BKZovOdF.js} +1 -1
- package/dist/app/assets/{gcode-CYOpCOHU.js → gcode-DEwkGIHO.js} +1 -1
- package/dist/app/assets/{gdscript-C_fDjtde.js → gdscript-BHZKxFHM.js} +1 -1
- package/dist/app/assets/{gedcom-BVEMpxDC.js → gedcom-5qXzfSVG.js} +1 -1
- package/dist/app/assets/{gherkin-CbpN6mFf.js → gherkin-JPPL0NwC.js} +1 -1
- package/dist/app/assets/{git-Bf1dI9II.js → git-BHHbjeSj.js} +1 -1
- package/dist/app/assets/{gitGraphDiagram-UUTBAWPF-BdL4HwfB.js → gitGraphDiagram-UUTBAWPF-BAMZ7idy.js} +1 -1
- package/dist/app/assets/{glsl-DHfVVpll.js → glsl-ojT9GGcQ.js} +1 -1
- package/dist/app/assets/{gml-CKW0I1sM.js → gml-Byrz4K18.js} +1 -1
- package/dist/app/assets/{gn-BolaXeCK.js → gn-BXN298zz.js} +1 -1
- package/dist/app/assets/{go-CvNTUNQj.js → go-QMar_vXY.js} +1 -1
- package/dist/app/assets/{go-module-DHNsqTFu.js → go-module-DhttF-9u.js} +1 -1
- package/dist/app/assets/{graph-w3lwjjfd.js → graph-B32jd8nV.js} +1 -1
- package/dist/app/assets/{graphql-CqMPX6Uj.js → graphql-D52K_SsX.js} +1 -1
- package/dist/app/assets/{groovy-ric2FEOh.js → groovy-CqJveqOx.js} +1 -1
- package/dist/app/assets/{haml-Cxb5CUqP.js → haml-CoLWO1nd.js} +1 -1
- package/dist/app/assets/{handlebars-Cn3du5zM.js → handlebars-BfmAmLER.js} +1 -1
- package/dist/app/assets/{haskell-C6_pQzAW.js → haskell-jItCYvPU.js} +1 -1
- package/dist/app/assets/{haxe-ByVxVzJ9.js → haxe-4SLJ2_08.js} +1 -1
- package/dist/app/assets/{hcl-B54wt0UB.js → hcl-BMmyrQ8c.js} +1 -1
- package/dist/app/assets/{hlsl-zd81HZk_.js → hlsl-SJDMNXGq.js} +1 -1
- package/dist/app/assets/{hoon-CIsFAweE.js → hoon-D6moOZKy.js} +1 -1
- package/dist/app/assets/{hpkp-BjSjLyAt.js → hpkp-sCVuwPlN.js} +1 -1
- package/dist/app/assets/{hsts-DYV6IErn.js → hsts-bAMpwV9D.js} +1 -1
- package/dist/app/assets/{http-vOpsxP66.js → http-Dx1p06BK.js} +1 -1
- package/dist/app/assets/{ichigojam-0LTExBpZ.js → ichigojam-CVXOu9yk.js} +1 -1
- package/dist/app/assets/{icon-B-Gp4jiE.js → icon-D6wxStB0.js} +1 -1
- package/dist/app/assets/{icu-message-format-jiNYPlT8.js → icu-message-format-D6yLIfrn.js} +1 -1
- package/dist/app/assets/{idris-ZMBybD9e.js → idris-DpAtc3fL.js} +1 -1
- package/dist/app/assets/{iecst-B3wVu7MT.js → iecst-B29ujpoO.js} +1 -1
- package/dist/app/assets/{ignore-DCDIFGnd.js → ignore-CVq0aJkW.js} +1 -1
- package/dist/app/assets/{index-Bc4smTvC.js → index-BBJxrAP8.js} +139 -139
- package/dist/app/assets/index-D-hjfkvG.css +1 -0
- package/dist/app/assets/{infoDiagram-42DDH7IO-Bbh4hemk.js → infoDiagram-42DDH7IO-BG7H21DU.js} +1 -1
- package/dist/app/assets/{inform7-BI05xVNw.js → inform7-B1F0WxwD.js} +1 -1
- package/dist/app/assets/{ini-vxj4aj2b.js → ini-CIpuuB9_.js} +1 -1
- package/dist/app/assets/{io-Dv10BjOU.js → io-3w1UICu0.js} +1 -1
- package/dist/app/assets/{ishikawaDiagram-UXIWVN3A-BuEYSyJU.js → ishikawaDiagram-UXIWVN3A-j8lnD8_c.js} +1 -1
- package/dist/app/assets/{j-BW8yPUOH.js → j-D3-2sGJz.js} +1 -1
- package/dist/app/assets/{java-BkBlxlrY.js → java-BlX-H2cK.js} +1 -1
- package/dist/app/assets/{javadoc-Cx6tkfWS.js → javadoc-J2TruS4-.js} +1 -1
- package/dist/app/assets/{javadoclike-BBfuCCPL.js → javadoclike-bfC-JoEq.js} +1 -1
- package/dist/app/assets/{javascript-CAUiQeA4.js → javascript-BP7WO6B4.js} +1 -1
- package/dist/app/assets/{javastacktrace-DVKSc9mr.js → javastacktrace-BTUlM0LC.js} +1 -1
- package/dist/app/assets/{jexl-Ctv9A-4Y.js → jexl-Cxa4h-16.js} +1 -1
- package/dist/app/assets/{jolie-8oLOtI3_.js → jolie-BbbvEhKj.js} +1 -1
- package/dist/app/assets/{journeyDiagram-VCZTEJTY-DUm9Kxjg.js → journeyDiagram-VCZTEJTY-BwTniXNV.js} +1 -1
- package/dist/app/assets/{jq-C5TPho8v.js → jq-DArJYKLU.js} +1 -1
- package/dist/app/assets/{js-extras-CvvS7hCP.js → js-extras-BvRL3Jvq.js} +1 -1
- package/dist/app/assets/{js-templates-D1ItFqxK.js → js-templates-Dk5OdIFK.js} +1 -1
- package/dist/app/assets/{jsdoc-D0lTE-nD.js → jsdoc-DngF7jir.js} +1 -1
- package/dist/app/assets/{json-Bj6Xy1YF.js → json-ClAvu2RW.js} +1 -1
- package/dist/app/assets/{json5-CvDs8NVg.js → json5-BmFfbQQU.js} +1 -1
- package/dist/app/assets/{jsonp-BFor_KVf.js → jsonp-BgadffEo.js} +1 -1
- package/dist/app/assets/{jsstacktrace-DaDHvFwg.js → jsstacktrace-Dd8S1Q81.js} +1 -1
- package/dist/app/assets/{jsx-9z5hmKsA.js → jsx-Dz0neUh1.js} +1 -1
- package/dist/app/assets/{julia-DwK7_L2k.js → julia-BHGMeW5t.js} +1 -1
- package/dist/app/assets/{kanban-definition-6JOO6SKY-B4PLi6a2.js → kanban-definition-6JOO6SKY-CMc5-Ea3.js} +1 -1
- package/dist/app/assets/{keepalived-QQAuR044.js → keepalived-1yyGwudH.js} +1 -1
- package/dist/app/assets/{keyman-WSDbwfnX.js → keyman-D96kZ3Ti.js} +1 -1
- package/dist/app/assets/{kotlin-CGASEpWD.js → kotlin-DU--_X0J.js} +1 -1
- package/dist/app/assets/{kumir-Doyw9YhD.js → kumir-0MOuOYYf.js} +1 -1
- package/dist/app/assets/{kusto-xM5aYCkT.js → kusto-C-XA0mwb.js} +1 -1
- package/dist/app/assets/{latex-7t6762ct.js → latex-DwJ10yrt.js} +1 -1
- package/dist/app/assets/{latte-CYYMtaGq.js → latte-D_Yyq_nM.js} +1 -1
- package/dist/app/assets/{layout-Cq9HzFXC.js → layout-DQt8UNZi.js} +1 -1
- package/dist/app/assets/{less-B-rkr2Db.js → less-CsUu5jL1.js} +1 -1
- package/dist/app/assets/{lilypond-BJWXSiTf.js → lilypond-CIbhxqtF.js} +1 -1
- package/dist/app/assets/{linear-DRDsgNmW.js → linear-D8DMmUY3.js} +1 -1
- package/dist/app/assets/{liquid--20_a0Si.js → liquid-BaXz-DcY.js} +1 -1
- package/dist/app/assets/{lisp-B_0ZteJz.js → lisp-DQs2fOve.js} +1 -1
- package/dist/app/assets/{livescript-1Jx0SETD.js → livescript-BebY4jFA.js} +1 -1
- package/dist/app/assets/{llvm-B9HfHMKf.js → llvm-tvuSKoRQ.js} +1 -1
- package/dist/app/assets/{log-CRWfAu0Z.js → log-euixYp8a.js} +1 -1
- package/dist/app/assets/{lolcode-DMRD9BNM.js → lolcode-CwPkrI86.js} +1 -1
- package/dist/app/assets/{lua-D-hyZPBj.js → lua-CNvDsE6g.js} +1 -1
- package/dist/app/assets/{magma-CIgc0Q1n.js → magma-CdK12PLr.js} +1 -1
- package/dist/app/assets/{makefile-CBunZoPa.js → makefile-fq5UhIbM.js} +1 -1
- package/dist/app/assets/{markdown-DvJvDbDy.js → markdown-Ajq2JGa1.js} +1 -1
- package/dist/app/assets/{markup-D3VPet1J.js → markup-CfbpoVuv.js} +1 -1
- package/dist/app/assets/{markup-templating-D7DvUP7P.js → markup-templating-ClpbWH3E.js} +1 -1
- package/dist/app/assets/{matlab-CjKtwgDT.js → matlab-DUQtIrQ-.js} +1 -1
- package/dist/app/assets/{maxscript-CvzRNTSR.js → maxscript-BQSIPoaa.js} +1 -1
- package/dist/app/assets/{mel-DVwlWwS1.js → mel-C8tXgXmS.js} +1 -1
- package/dist/app/assets/{mermaid-mTOAb9I1.js → mermaid-BMSiReCn.js} +1 -1
- package/dist/app/assets/{min-6n2-iCAm.js → min-DgHJ7Nf4.js} +1 -1
- package/dist/app/assets/{mindmap-definition-QFDTVHPH-eTB4aUJ6.js → mindmap-definition-QFDTVHPH-70NBPICA.js} +1 -1
- package/dist/app/assets/{mizar-D1v4Nv22.js → mizar-FFvziKde.js} +1 -1
- package/dist/app/assets/{mongodb-B6xPI5vi.js → mongodb-D1mzpRCd.js} +1 -1
- package/dist/app/assets/{monkey-8ZQGq2j6.js → monkey-dBKcwUTm.js} +1 -1
- package/dist/app/assets/{moonscript-qkDyELmz.js → moonscript-Bba8hj2N.js} +1 -1
- package/dist/app/assets/{n1ql-7qzjjhYg.js → n1ql-BKv6f_ZJ.js} +1 -1
- package/dist/app/assets/{n4js--0WDRpBj.js → n4js-De4nJHcC.js} +1 -1
- package/dist/app/assets/{nand2tetris-hdl-zYT29X94.js → nand2tetris-hdl-d6Im94up.js} +1 -1
- package/dist/app/assets/{naniscript-BEKVFrJA.js → naniscript-7I_PYFtb.js} +1 -1
- package/dist/app/assets/{nasm-BxgE8BWF.js → nasm-DtbQ_6JV.js} +1 -1
- package/dist/app/assets/{neon-CRmkHhWg.js → neon-7JcECa8A.js} +1 -1
- package/dist/app/assets/{nevod-DqOKiweO.js → nevod-BarubR7h.js} +1 -1
- package/dist/app/assets/{nginx-BepDunyM.js → nginx-C-Nvt6BK.js} +1 -1
- package/dist/app/assets/{nim-DOYwB93n.js → nim-LP-7gM1Q.js} +1 -1
- package/dist/app/assets/{nix-OcEzpwWS.js → nix-Msza7-r9.js} +1 -1
- package/dist/app/assets/{nsis-WQEGbgSb.js → nsis-N1c5jrgc.js} +1 -1
- package/dist/app/assets/{objectivec-B8PulHhQ.js → objectivec-qIn11zhm.js} +1 -1
- package/dist/app/assets/{ocaml-DrKpTrGd.js → ocaml-CM1-jZNQ.js} +1 -1
- package/dist/app/assets/{opencl-DJD4I4Az.js → opencl-aZRowywV.js} +1 -1
- package/dist/app/assets/{openqasm-BzLNaS1E.js → openqasm-DXQkGk7v.js} +1 -1
- package/dist/app/assets/{oz-CddQDW4N.js → oz-IpByQjyt.js} +1 -1
- package/dist/app/assets/{parigp-DL9Pul5Z.js → parigp-i2cpgz90.js} +1 -1
- package/dist/app/assets/{parser-BaeyVs6E.js → parser-DUe4fyHY.js} +1 -1
- package/dist/app/assets/{pascal-DZwRqOCW.js → pascal-CCbi6In9.js} +1 -1
- package/dist/app/assets/{pascaligo-CglPcMbu.js → pascaligo-cYiy-tQf.js} +1 -1
- package/dist/app/assets/{pcaxis-m1flL1nx.js → pcaxis-DUe2I8NZ.js} +1 -1
- package/dist/app/assets/{peoplecode-BPZXOWEd.js → peoplecode-y-WYZDRM.js} +1 -1
- package/dist/app/assets/{perl-DEj9sd22.js → perl-uC0qqGFo.js} +1 -1
- package/dist/app/assets/{php-ChAzX5Xy.js → php-Djwg1gg7.js} +1 -1
- package/dist/app/assets/{php-extras-BEC2cMHJ.js → php-extras-BXM2sgwu.js} +1 -1
- package/dist/app/assets/{phpdoc-Efem6iWX.js → phpdoc-SxUKXPYZ.js} +1 -1
- package/dist/app/assets/{pieDiagram-DEJITSTG-I2O3vbig.js → pieDiagram-DEJITSTG-CQfl-KLS.js} +1 -1
- package/dist/app/assets/{plsql-Bgiemx8O.js → plsql-C3HfRTv-.js} +1 -1
- package/dist/app/assets/{powerquery-DoH4a5fD.js → powerquery-a89Fj1Qs.js} +1 -1
- package/dist/app/assets/{powershell-CXwYZoB9.js → powershell-dX-2_G9H.js} +1 -1
- package/dist/app/assets/{processing-BG-k24bE.js → processing-BjXVOyvk.js} +1 -1
- package/dist/app/assets/{prolog-BQk3s9Cz.js → prolog-B9kdH-bl.js} +1 -1
- package/dist/app/assets/{promql-Cn8XzgOs.js → promql-B3BDR8es.js} +1 -1
- package/dist/app/assets/{properties-BzFCc7p8.js → properties-CMjA6hD5.js} +1 -1
- package/dist/app/assets/{protobuf-DsVZomkz.js → protobuf-DVGs9Q8Q.js} +1 -1
- package/dist/app/assets/{psl-BL1By2Di.js → psl-BzbEAN9s.js} +1 -1
- package/dist/app/assets/{pug-CJXPw-_y.js → pug-fdeIkQLg.js} +1 -1
- package/dist/app/assets/{puppet-BgLD34yT.js → puppet-JnrsXSZY.js} +1 -1
- package/dist/app/assets/{pure-D5KRS3X3.js → pure-Bsjul00Q.js} +1 -1
- package/dist/app/assets/{purebasic-BO_zjFwL.js → purebasic-C_mf0qxg.js} +1 -1
- package/dist/app/assets/{purescript-Ddc7moMi.js → purescript-P7l76DgD.js} +1 -1
- package/dist/app/assets/{q-CsHjuzhk.js → q-D98RUW_e.js} +1 -1
- package/dist/app/assets/{qml-YbRFzx0z.js → qml-CBe5bVTm.js} +1 -1
- package/dist/app/assets/{qore-BFgUYB1S.js → qore-CrvWCYtL.js} +1 -1
- package/dist/app/assets/{qsharp-DRh0td2A.js → qsharp-4BBfTlhh.js} +1 -1
- package/dist/app/assets/{quadrantDiagram-34T5L4WZ-sLTzbhk2.js → quadrantDiagram-34T5L4WZ-_JtlPbxc.js} +1 -1
- package/dist/app/assets/{r-5gqFGwLd.js → r-C-wPXw3M.js} +1 -1
- package/dist/app/assets/{racket-BgmD87H8.js → racket-BDc8Z2eV.js} +1 -1
- package/dist/app/assets/{reason-D_tR9ps8.js → reason-DBeyHA3q.js} +1 -1
- package/dist/app/assets/{regex-hcOGgwnQ.js → regex-yDzON3WO.js} +1 -1
- package/dist/app/assets/{rego-C0pl_3VC.js → rego-CWdKhPRV.js} +1 -1
- package/dist/app/assets/{renpy-lT_4OszV.js → renpy-COnBNW6q.js} +1 -1
- package/dist/app/assets/{requirementDiagram-MS252O5E-CEJ8Rcnr.js → requirementDiagram-MS252O5E-C3gIi5N5.js} +1 -1
- package/dist/app/assets/{rest-BBI-g8mr.js → rest-D7ADMqxp.js} +1 -1
- package/dist/app/assets/{rip-C3KbnjS_.js → rip-BXziA95H.js} +1 -1
- package/dist/app/assets/{roboconf-CoZ--fPi.js → roboconf-wb822TWS.js} +1 -1
- package/dist/app/assets/{robotframework-DY6-Pswb.js → robotframework-BRitqS4Z.js} +1 -1
- package/dist/app/assets/{ruby-Bs6f5Nvi.js → ruby-SERs2agE.js} +1 -1
- package/dist/app/assets/{rust-D0f4oPW4.js → rust-CPnTKWoF.js} +1 -1
- package/dist/app/assets/{sankeyDiagram-XADWPNL6-Dx6TM5mU.js → sankeyDiagram-XADWPNL6-C8zexvre.js} +1 -1
- package/dist/app/assets/{sas-RrsOkHla.js → sas-F8wqa-VH.js} +1 -1
- package/dist/app/assets/{sass-D3DRkshk.js → sass-sFRMpF9E.js} +1 -1
- package/dist/app/assets/{scala-2yub5Noi.js → scala-BjAq73X3.js} +1 -1
- package/dist/app/assets/{scheme-DUUET_XL.js → scheme-Dy5snFBD.js} +1 -1
- package/dist/app/assets/{scss-mXwcbbk-.js → scss-8PCqIjM6.js} +1 -1
- package/dist/app/assets/{sequenceDiagram-FGHM5R23-9GU2p9Ma.js → sequenceDiagram-FGHM5R23-DbNGiTO2.js} +1 -1
- package/dist/app/assets/{shell-session-DoXxry6a.js → shell-session-DEdTVxFD.js} +1 -1
- package/dist/app/assets/{smali-BM6j_ZPX.js → smali-Bxae2KQR.js} +1 -1
- package/dist/app/assets/{smalltalk-Bcd172Pc.js → smalltalk-CwOKqcjX.js} +1 -1
- package/dist/app/assets/{smarty-oKqEpnDS.js → smarty-kF-PSUnG.js} +1 -1
- package/dist/app/assets/{sml-B1upkj4b.js → sml-bomnQbFX.js} +1 -1
- package/dist/app/assets/{solidity-xeq40f3P.js → solidity-BAjbZMZL.js} +1 -1
- package/dist/app/assets/{solution-file-DRFXyDTT.js → solution-file-MmJiJ8_n.js} +1 -1
- package/dist/app/assets/{soy-OSBkuqMW.js → soy-DU--y6x4.js} +1 -1
- package/dist/app/assets/{sparql-D3k_wEdU.js → sparql-mmPoHR5x.js} +1 -1
- package/dist/app/assets/{splunk-spl-FKET7kp7.js → splunk-spl-hgCUw5aN.js} +1 -1
- package/dist/app/assets/{sqf-BSn0GDGB.js → sqf-BiiIGVoY.js} +1 -1
- package/dist/app/assets/{sql-D6mgKQB5.js → sql-nlDwSZBD.js} +1 -1
- package/dist/app/assets/{squirrel-DFu-guJ8.js → squirrel-Bqi6dvci.js} +1 -1
- package/dist/app/assets/{stan-CDr-fjyl.js → stan-2W_Pcetu.js} +1 -1
- package/dist/app/assets/{stateDiagram-FHFEXIEX-z2DiLwCm.js → stateDiagram-FHFEXIEX-pa0JGYLy.js} +1 -1
- package/dist/app/assets/stateDiagram-v2-QKLJ7IA2-FdxILnkg.js +1 -0
- package/dist/app/assets/{stylus-BFOCUvnx.js → stylus-zCZUGlqV.js} +1 -1
- package/dist/app/assets/{swift-uHqpQZ6J.js → swift-5sLu9EpD.js} +1 -1
- package/dist/app/assets/{systemd-CYQNlgLz.js → systemd-DgaHeexU.js} +1 -1
- package/dist/app/assets/{t4-cs-usG5jkwF.js → t4-cs-YCeMlSug.js} +1 -1
- package/dist/app/assets/{t4-templating-D4wDOtGr.js → t4-templating-DPzKGTo4.js} +1 -1
- package/dist/app/assets/{t4-vb-C1p1TL0w.js → t4-vb-BPPPhEQB.js} +1 -1
- package/dist/app/assets/{tap-DFMBztgQ.js → tap-Dgrqyvk-.js} +1 -1
- package/dist/app/assets/{tcl-BCt4zqi_.js → tcl-DHz3w70b.js} +1 -1
- package/dist/app/assets/{textile-Bloj03Mi.js → textile-Cr314Blk.js} +1 -1
- package/dist/app/assets/{timeline-definition-GMOUNBTQ-d06kVX17.js → timeline-definition-GMOUNBTQ-BLY5sqEL.js} +1 -1
- package/dist/app/assets/{toml-BhS4WNxa.js → toml-Bnu9rfnB.js} +1 -1
- package/dist/app/assets/{tremor-DviIbCpH.js → tremor-ChXFGibI.js} +1 -1
- package/dist/app/assets/{tt2-DE0j1lmS.js → tt2-BzVUtdxI.js} +1 -1
- package/dist/app/assets/{turtle-BxCayuSl.js → turtle-letBf_Bx.js} +1 -1
- package/dist/app/assets/{twig-DtCkUjxy.js → twig-Ni2rEZw9.js} +1 -1
- package/dist/app/assets/{typescript-3pYqwxJ2.js → typescript-BQofdwc1.js} +1 -1
- package/dist/app/assets/{typoscript-Dy8ykcri.js → typoscript-cQilTApE.js} +1 -1
- package/dist/app/assets/{unrealscript-C4Peef6q.js → unrealscript-CtH2g6It.js} +1 -1
- package/dist/app/assets/{uorazor-91g1sfeu.js → uorazor-CjvsWB8K.js} +1 -1
- package/dist/app/assets/{uri-DDMRMgIp.js → uri-Cs9bSTwl.js} +1 -1
- package/dist/app/assets/{v-2gwj9f62.js → v-Bqvis8I2.js} +1 -1
- package/dist/app/assets/{vala-CUiPsFoo.js → vala-BpW8rpIS.js} +1 -1
- package/dist/app/assets/{vbnet-Zsyt2tdN.js → vbnet-DdVGFj9N.js} +1 -1
- package/dist/app/assets/{velocity-CSkxzAQi.js → velocity-CHDcdQy7.js} +1 -1
- package/dist/app/assets/{vennDiagram-DHZGUBPP-eRSD5RJQ.js → vennDiagram-DHZGUBPP-n6Dq2r90.js} +1 -1
- package/dist/app/assets/{verilog-BtHxNyJ7.js → verilog-t2rEJU_-.js} +1 -1
- package/dist/app/assets/{vhdl-C0vU6j5h.js → vhdl-Bkv11jjq.js} +1 -1
- package/dist/app/assets/{vim-dvVtnnHy.js → vim-C6YVoqqV.js} +1 -1
- package/dist/app/assets/{visual-basic-B-m3tLsh.js → visual-basic-ozbiLbAI.js} +1 -1
- package/dist/app/assets/{wardley-RL74JXVD-BgTJCIjC.js → wardley-RL74JXVD-cDbpgcV_.js} +1 -1
- package/dist/app/assets/{wardleyDiagram-NUSXRM2D-B19yXjvI.js → wardleyDiagram-NUSXRM2D-C1uThccd.js} +1 -1
- package/dist/app/assets/{warpscript-1YJK0eIR.js → warpscript-BNO_EbH2.js} +1 -1
- package/dist/app/assets/{wasm-B18nYup5.js → wasm-Bghcf_Ud.js} +1 -1
- package/dist/app/assets/{web-idl-DaaOjvPO.js → web-idl-C-d3Xdl1.js} +1 -1
- package/dist/app/assets/{wiki-6hqpglgh.js → wiki-DI1mP-2c.js} +1 -1
- package/dist/app/assets/{wolfram-uGnnCOiH.js → wolfram-Sj_QoNQm.js} +1 -1
- package/dist/app/assets/{wren-BVgxyvFh.js → wren-Bc7J_SNZ.js} +1 -1
- package/dist/app/assets/{xeora-BIlCKODO.js → xeora-C6DbAKbN.js} +1 -1
- package/dist/app/assets/{xml-doc-COhD3a_e.js → xml-doc-CllF2qWw.js} +1 -1
- package/dist/app/assets/{xojo-CffC0OLi.js → xojo-BmwcGxAI.js} +1 -1
- package/dist/app/assets/{xquery-BysER8W6.js → xquery-WkzJyf76.js} +1 -1
- package/dist/app/assets/{xychartDiagram-5P7HB3ND-Ba1Vo7v6.js → xychartDiagram-5P7HB3ND-BWMpw-9z.js} +1 -1
- package/dist/app/assets/{yaml-BjlUOXdf.js → yaml-DaCV1ugn.js} +1 -1
- package/dist/app/assets/{yang-CE61CGXZ.js → yang-BxwNjc1X.js} +1 -1
- package/dist/app/assets/{zig-BwDJZvRM.js → zig-B-ArCifh.js} +1 -1
- package/dist/app/index.html +2 -2
- package/dist/index.cjs +708 -506
- package/dist/index.js +739 -535
- package/package.json +3 -3
- package/dist/app/assets/channel-C-xwEqfR.js +0 -1
- package/dist/app/assets/classDiagram-6PBFFD2Q-DZxfIDiK.js +0 -1
- package/dist/app/assets/classDiagram-v2-HSJHXN6E-DZxfIDiK.js +0 -1
- package/dist/app/assets/clone-nOTgxCHT.js +0 -1
- package/dist/app/assets/index-BAb1mpfo.css +0 -1
- package/dist/app/assets/stateDiagram-v2-QKLJ7IA2-CHMZFZDU.js +0 -1
package/dist/index.js
CHANGED
|
@@ -2555,13 +2555,15 @@ var useStreamContext = () => {
|
|
|
2555
2555
|
};
|
|
2556
2556
|
|
|
2557
2557
|
// src/components/composer/ComposerMenu.tsx
|
|
2558
|
-
import * as
|
|
2558
|
+
import * as React13 from "react";
|
|
2559
2559
|
import {
|
|
2560
|
+
ArrowLeft,
|
|
2560
2561
|
Bot,
|
|
2561
2562
|
ChevronRight,
|
|
2562
2563
|
FileText,
|
|
2563
2564
|
Globe,
|
|
2564
2565
|
Images,
|
|
2566
|
+
Info,
|
|
2565
2567
|
Lightbulb,
|
|
2566
2568
|
ListChecks,
|
|
2567
2569
|
Paperclip,
|
|
@@ -4708,25 +4710,100 @@ var Input = React8.forwardRef(
|
|
|
4708
4710
|
);
|
|
4709
4711
|
Input.displayName = "Input";
|
|
4710
4712
|
|
|
4713
|
+
// src/components/ui/tooltip.tsx
|
|
4714
|
+
import "react";
|
|
4715
|
+
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
4716
|
+
import { jsx as jsx11, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
4717
|
+
function TooltipProvider({
|
|
4718
|
+
delayDuration = 0,
|
|
4719
|
+
...props
|
|
4720
|
+
}) {
|
|
4721
|
+
return /* @__PURE__ */ jsx11(
|
|
4722
|
+
TooltipPrimitive.Provider,
|
|
4723
|
+
{
|
|
4724
|
+
"data-slot": "tooltip-provider",
|
|
4725
|
+
delayDuration,
|
|
4726
|
+
...props
|
|
4727
|
+
}
|
|
4728
|
+
);
|
|
4729
|
+
}
|
|
4730
|
+
function Tooltip({
|
|
4731
|
+
...props
|
|
4732
|
+
}) {
|
|
4733
|
+
return /* @__PURE__ */ jsx11(TooltipProvider, { children: /* @__PURE__ */ jsx11(
|
|
4734
|
+
TooltipPrimitive.Root,
|
|
4735
|
+
{
|
|
4736
|
+
"data-slot": "tooltip",
|
|
4737
|
+
...props
|
|
4738
|
+
}
|
|
4739
|
+
) });
|
|
4740
|
+
}
|
|
4741
|
+
function TooltipTrigger({
|
|
4742
|
+
...props
|
|
4743
|
+
}) {
|
|
4744
|
+
return /* @__PURE__ */ jsx11(
|
|
4745
|
+
TooltipPrimitive.Trigger,
|
|
4746
|
+
{
|
|
4747
|
+
"data-slot": "tooltip-trigger",
|
|
4748
|
+
...props
|
|
4749
|
+
}
|
|
4750
|
+
);
|
|
4751
|
+
}
|
|
4752
|
+
function TooltipContent({
|
|
4753
|
+
className,
|
|
4754
|
+
sideOffset = 0,
|
|
4755
|
+
hideArrow = false,
|
|
4756
|
+
children,
|
|
4757
|
+
...props
|
|
4758
|
+
}) {
|
|
4759
|
+
return /* @__PURE__ */ jsx11(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs3(
|
|
4760
|
+
TooltipPrimitive.Content,
|
|
4761
|
+
{
|
|
4762
|
+
"data-slot": "tooltip-content",
|
|
4763
|
+
sideOffset,
|
|
4764
|
+
className: cn(
|
|
4765
|
+
"bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit rounded-md px-3 py-1.5 text-xs text-balance",
|
|
4766
|
+
className
|
|
4767
|
+
),
|
|
4768
|
+
...props,
|
|
4769
|
+
children: [
|
|
4770
|
+
children,
|
|
4771
|
+
!hideArrow ? /* @__PURE__ */ jsx11(TooltipPrimitive.Arrow, { className: "bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" }) : null
|
|
4772
|
+
]
|
|
4773
|
+
}
|
|
4774
|
+
) });
|
|
4775
|
+
}
|
|
4776
|
+
|
|
4777
|
+
// src/components/composer/ConnectorMenuPanel.tsx
|
|
4778
|
+
import * as React12 from "react";
|
|
4779
|
+
import {
|
|
4780
|
+
ArrowUpRight,
|
|
4781
|
+
Cable,
|
|
4782
|
+
Check,
|
|
4783
|
+
Link2,
|
|
4784
|
+
Loader2,
|
|
4785
|
+
Search
|
|
4786
|
+
} from "lucide-react";
|
|
4787
|
+
|
|
4711
4788
|
// src/components/ui/scroll-area.tsx
|
|
4712
|
-
import * as
|
|
4789
|
+
import * as React10 from "react";
|
|
4713
4790
|
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
4714
|
-
import { jsx as
|
|
4715
|
-
var ScrollArea =
|
|
4791
|
+
import { jsx as jsx12, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
4792
|
+
var ScrollArea = React10.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs4(
|
|
4716
4793
|
ScrollAreaPrimitive.Root,
|
|
4717
4794
|
{
|
|
4718
4795
|
ref,
|
|
4719
4796
|
className: cn("relative min-w-0 overflow-hidden", className),
|
|
4720
4797
|
...props,
|
|
4721
4798
|
children: [
|
|
4722
|
-
/* @__PURE__ */
|
|
4723
|
-
/* @__PURE__ */
|
|
4724
|
-
/* @__PURE__ */
|
|
4799
|
+
/* @__PURE__ */ jsx12(ScrollAreaPrimitive.Viewport, { className: "h-full w-full min-w-0 max-w-full rounded-[inherit] [&>div]:!block [&>div]:!w-full", children }),
|
|
4800
|
+
/* @__PURE__ */ jsx12(ScrollBar, {}),
|
|
4801
|
+
/* @__PURE__ */ jsx12(ScrollAreaPrimitive.Corner, {})
|
|
4725
4802
|
]
|
|
4726
4803
|
}
|
|
4727
4804
|
));
|
|
4728
4805
|
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
|
|
4729
|
-
var ScrollBar =
|
|
4806
|
+
var ScrollBar = React10.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx12(
|
|
4730
4807
|
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
4731
4808
|
{
|
|
4732
4809
|
ref,
|
|
@@ -4738,27 +4815,16 @@ var ScrollBar = React9.forwardRef(({ className, orientation = "vertical", ...pro
|
|
|
4738
4815
|
className
|
|
4739
4816
|
),
|
|
4740
4817
|
...props,
|
|
4741
|
-
children: /* @__PURE__ */
|
|
4818
|
+
children: /* @__PURE__ */ jsx12(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
|
|
4742
4819
|
}
|
|
4743
4820
|
));
|
|
4744
4821
|
ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
|
4745
4822
|
|
|
4746
|
-
// src/components/composer/ConnectorMenuPanel.tsx
|
|
4747
|
-
import * as React11 from "react";
|
|
4748
|
-
import {
|
|
4749
|
-
ArrowUpRight,
|
|
4750
|
-
Cable,
|
|
4751
|
-
Check,
|
|
4752
|
-
Link2,
|
|
4753
|
-
Loader2,
|
|
4754
|
-
Search
|
|
4755
|
-
} from "lucide-react";
|
|
4756
|
-
|
|
4757
4823
|
// src/components/ui/separator.tsx
|
|
4758
|
-
import * as
|
|
4759
|
-
import { jsx as
|
|
4760
|
-
var Separator =
|
|
4761
|
-
({ className, orientation = "horizontal", ...props }, ref) => /* @__PURE__ */
|
|
4824
|
+
import * as React11 from "react";
|
|
4825
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
4826
|
+
var Separator = React11.forwardRef(
|
|
4827
|
+
({ className, orientation = "horizontal", ...props }, ref) => /* @__PURE__ */ jsx13(
|
|
4762
4828
|
"div",
|
|
4763
4829
|
{
|
|
4764
4830
|
ref,
|
|
@@ -4776,7 +4842,7 @@ var Separator = React10.forwardRef(
|
|
|
4776
4842
|
Separator.displayName = "Separator";
|
|
4777
4843
|
|
|
4778
4844
|
// src/components/composer/ConnectorMenuPanel.tsx
|
|
4779
|
-
import { jsx as
|
|
4845
|
+
import { jsx as jsx14, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
4780
4846
|
function resolveConnectorManagementUrl(apiUrl, scope) {
|
|
4781
4847
|
const base2 = apiUrl?.trim() || window.location.href;
|
|
4782
4848
|
const path = scope.type === "project" ? `/project/${encodeURIComponent(scope.projectId)}/config` : `/xpert/w/${encodeURIComponent(scope.workspaceId)}/connectors`;
|
|
@@ -4808,7 +4874,7 @@ function ConnectorIcon({
|
|
|
4808
4874
|
label
|
|
4809
4875
|
}) {
|
|
4810
4876
|
if (option.icon?.type === "image" && typeof option.icon.value === "string") {
|
|
4811
|
-
return /* @__PURE__ */
|
|
4877
|
+
return /* @__PURE__ */ jsx14(
|
|
4812
4878
|
"img",
|
|
4813
4879
|
{
|
|
4814
4880
|
src: option.icon.value,
|
|
@@ -4817,13 +4883,13 @@ function ConnectorIcon({
|
|
|
4817
4883
|
}
|
|
4818
4884
|
);
|
|
4819
4885
|
}
|
|
4820
|
-
return /* @__PURE__ */
|
|
4886
|
+
return /* @__PURE__ */ jsx14(
|
|
4821
4887
|
"span",
|
|
4822
4888
|
{
|
|
4823
4889
|
"aria-hidden": "true",
|
|
4824
4890
|
title: label,
|
|
4825
4891
|
className: "flex size-7 items-center justify-center rounded-md bg-muted text-muted-foreground",
|
|
4826
|
-
children: /* @__PURE__ */
|
|
4892
|
+
children: /* @__PURE__ */ jsx14(Cable, { className: "size-4" })
|
|
4827
4893
|
}
|
|
4828
4894
|
);
|
|
4829
4895
|
}
|
|
@@ -4839,22 +4905,22 @@ function ConnectorMenuPanel({
|
|
|
4839
4905
|
apiUrl
|
|
4840
4906
|
}) {
|
|
4841
4907
|
const { t, i18n: i18n2 } = useChatkitTranslation();
|
|
4842
|
-
const [query, setQuery] =
|
|
4843
|
-
const [scope, setScope] =
|
|
4844
|
-
const [options, setOptions] =
|
|
4845
|
-
const [loading, setLoading] =
|
|
4846
|
-
const [error, setError] =
|
|
4847
|
-
const [connectingBindingId, setConnectingBindingId] =
|
|
4908
|
+
const [query, setQuery] = React12.useState("");
|
|
4909
|
+
const [scope, setScope] = React12.useState(null);
|
|
4910
|
+
const [options, setOptions] = React12.useState([]);
|
|
4911
|
+
const [loading, setLoading] = React12.useState(false);
|
|
4912
|
+
const [error, setError] = React12.useState(null);
|
|
4913
|
+
const [connectingBindingId, setConnectingBindingId] = React12.useState(null);
|
|
4848
4914
|
const loadErrorMessage = t("composer.connectors.loadError");
|
|
4849
4915
|
const accessDeniedMessage = t("composer.connectors.accessDenied");
|
|
4850
4916
|
const scopeUnavailableMessage = t("composer.connectors.scopeUnavailable");
|
|
4851
|
-
const pollAbortRef =
|
|
4852
|
-
const popupRef =
|
|
4853
|
-
const selectedBindingIdSet =
|
|
4917
|
+
const pollAbortRef = React12.useRef(null);
|
|
4918
|
+
const popupRef = React12.useRef(null);
|
|
4919
|
+
const selectedBindingIdSet = React12.useMemo(
|
|
4854
4920
|
() => new Set(selectedBindingIds),
|
|
4855
4921
|
[selectedBindingIds]
|
|
4856
4922
|
);
|
|
4857
|
-
const loadConnectors =
|
|
4923
|
+
const loadConnectors = React12.useCallback(
|
|
4858
4924
|
async (signal) => {
|
|
4859
4925
|
if (!client || !xpertId) return;
|
|
4860
4926
|
const response = await client.connectors.runtimeOptions(xpertId, {
|
|
@@ -4866,7 +4932,7 @@ function ConnectorMenuPanel({
|
|
|
4866
4932
|
},
|
|
4867
4933
|
[client, projectId, xpertId]
|
|
4868
4934
|
);
|
|
4869
|
-
|
|
4935
|
+
React12.useEffect(() => {
|
|
4870
4936
|
if (!client || !xpertId) {
|
|
4871
4937
|
setScope(null);
|
|
4872
4938
|
setOptions([]);
|
|
@@ -4889,7 +4955,7 @@ function ConnectorMenuPanel({
|
|
|
4889
4955
|
});
|
|
4890
4956
|
return () => controller.abort();
|
|
4891
4957
|
}, [accessDeniedMessage, client, loadConnectors, loadErrorMessage, xpertId]);
|
|
4892
|
-
|
|
4958
|
+
React12.useEffect(
|
|
4893
4959
|
() => () => {
|
|
4894
4960
|
pollAbortRef.current?.abort();
|
|
4895
4961
|
if (popupRef.current && !popupRef.current.closed) {
|
|
@@ -4900,7 +4966,7 @@ function ConnectorMenuPanel({
|
|
|
4900
4966
|
);
|
|
4901
4967
|
const manageUrl = scope ? resolveConnectorManagementUrl(apiUrl, scope) : null;
|
|
4902
4968
|
const normalizedQuery = query.trim().toLocaleLowerCase();
|
|
4903
|
-
const filteredOptions =
|
|
4969
|
+
const filteredOptions = React12.useMemo(
|
|
4904
4970
|
() => options.filter((option) => {
|
|
4905
4971
|
if (!normalizedQuery) return true;
|
|
4906
4972
|
const searchable = `${localizeText(
|
|
@@ -4911,7 +4977,7 @@ function ConnectorMenuPanel({
|
|
|
4911
4977
|
}),
|
|
4912
4978
|
[i18n2.language, normalizedQuery, options]
|
|
4913
4979
|
);
|
|
4914
|
-
const refresh =
|
|
4980
|
+
const refresh = React12.useCallback(async () => {
|
|
4915
4981
|
setLoading(true);
|
|
4916
4982
|
try {
|
|
4917
4983
|
await loadConnectors();
|
|
@@ -4920,7 +4986,7 @@ function ConnectorMenuPanel({
|
|
|
4920
4986
|
setLoading(false);
|
|
4921
4987
|
}
|
|
4922
4988
|
}, [loadConnectors]);
|
|
4923
|
-
const pollAuthorization =
|
|
4989
|
+
const pollAuthorization = React12.useCallback(
|
|
4924
4990
|
async (bindingId, initial, popup, signal) => {
|
|
4925
4991
|
if (!client) return;
|
|
4926
4992
|
let status = initial;
|
|
@@ -4957,7 +5023,7 @@ function ConnectorMenuPanel({
|
|
|
4957
5023
|
},
|
|
4958
5024
|
[client, onSelectionChange, refresh, selectedBindingIds, xpertId]
|
|
4959
5025
|
);
|
|
4960
|
-
const openManageConnectors =
|
|
5026
|
+
const openManageConnectors = React12.useCallback(() => {
|
|
4961
5027
|
if (!manageUrl) {
|
|
4962
5028
|
setError(scopeUnavailableMessage);
|
|
4963
5029
|
return;
|
|
@@ -4969,7 +5035,7 @@ function ConnectorMenuPanel({
|
|
|
4969
5035
|
}
|
|
4970
5036
|
popup.opener = null;
|
|
4971
5037
|
}, [manageUrl, scopeUnavailableMessage, t]);
|
|
4972
|
-
const connectPersonalBinding =
|
|
5038
|
+
const connectPersonalBinding = React12.useCallback(
|
|
4973
5039
|
async (option) => {
|
|
4974
5040
|
if (!client) return;
|
|
4975
5041
|
if (option.profile) {
|
|
@@ -5055,7 +5121,7 @@ function ConnectorMenuPanel({
|
|
|
5055
5121
|
xpertId
|
|
5056
5122
|
]
|
|
5057
5123
|
);
|
|
5058
|
-
const handleOptionClick =
|
|
5124
|
+
const handleOptionClick = React12.useCallback(
|
|
5059
5125
|
(option) => {
|
|
5060
5126
|
if (!isConnectorUsable(option)) {
|
|
5061
5127
|
if (option.authorizationMode === "personal") {
|
|
@@ -5076,15 +5142,15 @@ function ConnectorMenuPanel({
|
|
|
5076
5142
|
selectedBindingIds
|
|
5077
5143
|
]
|
|
5078
5144
|
);
|
|
5079
|
-
return /* @__PURE__ */
|
|
5145
|
+
return /* @__PURE__ */ jsxs5(
|
|
5080
5146
|
"div",
|
|
5081
5147
|
{
|
|
5082
5148
|
"data-slot": "composer-connector-panel",
|
|
5083
5149
|
className: "flex w-full min-w-0 max-w-full flex-col",
|
|
5084
5150
|
children: [
|
|
5085
|
-
/* @__PURE__ */
|
|
5086
|
-
/* @__PURE__ */
|
|
5087
|
-
/* @__PURE__ */
|
|
5151
|
+
/* @__PURE__ */ jsx14("div", { className: "p-3 pb-2", children: /* @__PURE__ */ jsxs5("div", { className: "relative", children: [
|
|
5152
|
+
/* @__PURE__ */ jsx14(Search, { className: "pointer-events-none absolute left-3 top-1/2 size-5 -translate-y-1/2 text-muted-foreground" }),
|
|
5153
|
+
/* @__PURE__ */ jsx14(
|
|
5088
5154
|
Input,
|
|
5089
5155
|
{
|
|
5090
5156
|
value: query,
|
|
@@ -5094,15 +5160,15 @@ function ConnectorMenuPanel({
|
|
|
5094
5160
|
}
|
|
5095
5161
|
)
|
|
5096
5162
|
] }) }),
|
|
5097
|
-
/* @__PURE__ */
|
|
5098
|
-
/* @__PURE__ */
|
|
5163
|
+
/* @__PURE__ */ jsx14(ScrollArea, { className: "max-h-72 min-h-0 px-3", children: /* @__PURE__ */ jsx14("div", { "data-slot": "composer-connector-list", className: "space-y-1 pb-2", children: loading ? /* @__PURE__ */ jsxs5(ConnectorMessage, { children: [
|
|
5164
|
+
/* @__PURE__ */ jsx14(Loader2, { className: "mr-2 inline size-4 animate-spin" }),
|
|
5099
5165
|
t("composer.connectors.loading")
|
|
5100
|
-
] }) : !xpertId ? /* @__PURE__ */
|
|
5166
|
+
] }) : !xpertId ? /* @__PURE__ */ jsx14(ConnectorMessage, { children: scopeUnavailableMessage }) : filteredOptions.length === 0 ? /* @__PURE__ */ jsx14(ConnectorMessage, { children: t("composer.connectors.empty") }) : filteredOptions.map((option) => {
|
|
5101
5167
|
const label = localizeText(option.label, i18n2.language);
|
|
5102
5168
|
const selected = selectedBindingIdSet.has(option.bindingId);
|
|
5103
5169
|
const usable = isConnectorUsable(option);
|
|
5104
5170
|
const connecting = connectingBindingId === option.bindingId;
|
|
5105
|
-
return /* @__PURE__ */
|
|
5171
|
+
return /* @__PURE__ */ jsxs5(
|
|
5106
5172
|
"button",
|
|
5107
5173
|
{
|
|
5108
5174
|
type: "button",
|
|
@@ -5114,13 +5180,13 @@ function ConnectorMenuPanel({
|
|
|
5114
5180
|
),
|
|
5115
5181
|
onClick: () => handleOptionClick(option),
|
|
5116
5182
|
children: [
|
|
5117
|
-
/* @__PURE__ */
|
|
5118
|
-
/* @__PURE__ */
|
|
5119
|
-
/* @__PURE__ */
|
|
5120
|
-
/* @__PURE__ */
|
|
5183
|
+
/* @__PURE__ */ jsx14(ConnectorIcon, { option, label }),
|
|
5184
|
+
/* @__PURE__ */ jsxs5("span", { className: "min-w-0 flex-1", children: [
|
|
5185
|
+
/* @__PURE__ */ jsx14("span", { className: "block truncate text-base", children: label || option.provider }),
|
|
5186
|
+
/* @__PURE__ */ jsx14("span", { className: "block truncate text-xs text-muted-foreground", children: option.authorizationMode === "personal" ? t("composer.connectors.personal") : scope?.type === "workspace" ? t("composer.connectors.workspaceShared") : t("composer.connectors.shared") })
|
|
5121
5187
|
] }),
|
|
5122
|
-
/* @__PURE__ */
|
|
5123
|
-
connecting ? /* @__PURE__ */
|
|
5188
|
+
/* @__PURE__ */ jsxs5("span", { className: "inline-flex shrink-0 items-center gap-1.5 text-sm text-muted-foreground", children: [
|
|
5189
|
+
connecting ? /* @__PURE__ */ jsx14(Loader2, { className: "size-4 animate-spin" }) : selected ? /* @__PURE__ */ jsx14(Check, { className: "size-4 text-primary" }) : usable ? /* @__PURE__ */ jsx14("span", { className: "size-4 rounded-full border border-current" }) : /* @__PURE__ */ jsx14(Link2, { className: "size-4" }),
|
|
5124
5190
|
connecting ? t("composer.connectors.connecting") : selected ? t("composer.connectors.selected") : usable ? t("composer.connectors.select") : option.authorizationMode === "personal" ? t("composer.connectors.connect") : t("composer.connectors.unavailable")
|
|
5125
5191
|
] })
|
|
5126
5192
|
]
|
|
@@ -5128,9 +5194,9 @@ function ConnectorMenuPanel({
|
|
|
5128
5194
|
option.bindingId
|
|
5129
5195
|
);
|
|
5130
5196
|
}) }) }),
|
|
5131
|
-
error ? /* @__PURE__ */
|
|
5132
|
-
/* @__PURE__ */
|
|
5133
|
-
/* @__PURE__ */
|
|
5197
|
+
error ? /* @__PURE__ */ jsx14("div", { role: "alert", className: "px-4 py-2 text-sm text-destructive", children: error }) : null,
|
|
5198
|
+
/* @__PURE__ */ jsx14(Separator, {}),
|
|
5199
|
+
/* @__PURE__ */ jsxs5(
|
|
5134
5200
|
"button",
|
|
5135
5201
|
{
|
|
5136
5202
|
type: "button",
|
|
@@ -5138,7 +5204,7 @@ function ConnectorMenuPanel({
|
|
|
5138
5204
|
disabled: !scope,
|
|
5139
5205
|
onClick: openManageConnectors,
|
|
5140
5206
|
children: [
|
|
5141
|
-
/* @__PURE__ */
|
|
5207
|
+
/* @__PURE__ */ jsx14(ArrowUpRight, { className: "size-5" }),
|
|
5142
5208
|
t("composer.connectors.manage")
|
|
5143
5209
|
]
|
|
5144
5210
|
}
|
|
@@ -5151,27 +5217,29 @@ function isAccessDenied(error) {
|
|
|
5151
5217
|
return error instanceof Error && "status" in error && (error.status === 401 || error.status === 403);
|
|
5152
5218
|
}
|
|
5153
5219
|
function ConnectorMessage({ children }) {
|
|
5154
|
-
return /* @__PURE__ */
|
|
5220
|
+
return /* @__PURE__ */ jsx14("div", { className: "flex min-h-40 items-center justify-center px-4 text-center text-sm text-muted-foreground", children });
|
|
5155
5221
|
}
|
|
5156
5222
|
|
|
5157
5223
|
// src/components/composer/ComposerMenu.tsx
|
|
5158
|
-
import { jsx as
|
|
5224
|
+
import { Fragment, jsx as jsx15, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
5225
|
+
var COMPOSER_MENU_EXPANDED_WIDTH_REM = 33;
|
|
5226
|
+
var COMPOSER_MENU_COLLISION_PADDING = 12;
|
|
5159
5227
|
function getIconComponent(icon) {
|
|
5160
5228
|
const iconMap = {
|
|
5161
|
-
plus: /* @__PURE__ */
|
|
5162
|
-
document: /* @__PURE__ */
|
|
5163
|
-
write: /* @__PURE__ */
|
|
5164
|
-
sparkle: /* @__PURE__ */
|
|
5165
|
-
lightbulb: /* @__PURE__ */
|
|
5166
|
-
"settings-slider": /* @__PURE__ */
|
|
5167
|
-
search: /* @__PURE__ */
|
|
5168
|
-
globe: /* @__PURE__ */
|
|
5169
|
-
images: /* @__PURE__ */
|
|
5229
|
+
plus: /* @__PURE__ */ jsx15(Plus, { size: 16 }),
|
|
5230
|
+
document: /* @__PURE__ */ jsx15(FileText, { size: 16 }),
|
|
5231
|
+
write: /* @__PURE__ */ jsx15(Pencil, { size: 16 }),
|
|
5232
|
+
sparkle: /* @__PURE__ */ jsx15(Sparkles, { size: 16 }),
|
|
5233
|
+
lightbulb: /* @__PURE__ */ jsx15(Lightbulb, { size: 16 }),
|
|
5234
|
+
"settings-slider": /* @__PURE__ */ jsx15(SlidersHorizontal, { size: 16 }),
|
|
5235
|
+
search: /* @__PURE__ */ jsx15(Search2, { size: 16 }),
|
|
5236
|
+
globe: /* @__PURE__ */ jsx15(Globe, { size: 16 }),
|
|
5237
|
+
images: /* @__PURE__ */ jsx15(Images, { size: 16 })
|
|
5170
5238
|
};
|
|
5171
5239
|
return iconMap[icon] || iconMap.sparkle;
|
|
5172
5240
|
}
|
|
5173
5241
|
function Toggle({ checked }) {
|
|
5174
|
-
return /* @__PURE__ */
|
|
5242
|
+
return /* @__PURE__ */ jsx15(
|
|
5175
5243
|
"span",
|
|
5176
5244
|
{
|
|
5177
5245
|
"aria-hidden": "true",
|
|
@@ -5179,7 +5247,7 @@ function Toggle({ checked }) {
|
|
|
5179
5247
|
"relative inline-flex h-6 w-10 shrink-0 items-center rounded-full transition-colors",
|
|
5180
5248
|
checked ? "bg-primary" : "bg-muted-foreground/20"
|
|
5181
5249
|
),
|
|
5182
|
-
children: /* @__PURE__ */
|
|
5250
|
+
children: /* @__PURE__ */ jsx15(
|
|
5183
5251
|
"span",
|
|
5184
5252
|
{
|
|
5185
5253
|
className: cn(
|
|
@@ -5215,13 +5283,14 @@ function ComposerMenu({
|
|
|
5215
5283
|
}) {
|
|
5216
5284
|
const { t } = useChatkitTranslation();
|
|
5217
5285
|
const { theme } = useTheme();
|
|
5218
|
-
const [open, setOpen] =
|
|
5219
|
-
const [activePanel, setActivePanel] =
|
|
5286
|
+
const [open, setOpen] = React13.useState(false);
|
|
5287
|
+
const [activePanel, setActivePanel] = React13.useState(
|
|
5220
5288
|
null
|
|
5221
5289
|
);
|
|
5222
|
-
const [query, setQuery] =
|
|
5223
|
-
const [collisionBoundary, setCollisionBoundary] =
|
|
5224
|
-
const
|
|
5290
|
+
const [query, setQuery] = React13.useState("");
|
|
5291
|
+
const [collisionBoundary, setCollisionBoundary] = React13.useState();
|
|
5292
|
+
const [canExpandSecondaryPanel, setCanExpandSecondaryPanel] = React13.useState(false);
|
|
5293
|
+
const triggerRef = React13.useRef(null);
|
|
5225
5294
|
const roundedClass = getRoundedClass(theme.radius);
|
|
5226
5295
|
const panelRoundedClass = getPanelRoundedClass(theme.radius);
|
|
5227
5296
|
const menuItemRoundedClass = getMenuItemRoundedClass(theme.radius);
|
|
@@ -5247,8 +5316,148 @@ function ComposerMenu({
|
|
|
5247
5316
|
setActivePanel(panel);
|
|
5248
5317
|
setQuery("");
|
|
5249
5318
|
};
|
|
5319
|
+
React13.useLayoutEffect(() => {
|
|
5320
|
+
if (!open || !collisionBoundary) {
|
|
5321
|
+
setCanExpandSecondaryPanel(false);
|
|
5322
|
+
return;
|
|
5323
|
+
}
|
|
5324
|
+
const updateLayout = () => {
|
|
5325
|
+
const trigger = triggerRef.current;
|
|
5326
|
+
if (!trigger) {
|
|
5327
|
+
setCanExpandSecondaryPanel(false);
|
|
5328
|
+
return;
|
|
5329
|
+
}
|
|
5330
|
+
const boundaryRect = collisionBoundary.getBoundingClientRect();
|
|
5331
|
+
const triggerRect = trigger.getBoundingClientRect();
|
|
5332
|
+
const rootFontSize = Number.parseFloat(
|
|
5333
|
+
window.getComputedStyle(document.documentElement).fontSize
|
|
5334
|
+
);
|
|
5335
|
+
const remInPixels = Number.isFinite(rootFontSize) ? rootFontSize : 16;
|
|
5336
|
+
const menuLeft = Math.max(
|
|
5337
|
+
triggerRect.left,
|
|
5338
|
+
boundaryRect.left + COMPOSER_MENU_COLLISION_PADDING
|
|
5339
|
+
);
|
|
5340
|
+
const availableWidth = boundaryRect.right - COMPOSER_MENU_COLLISION_PADDING - menuLeft;
|
|
5341
|
+
const requiredWidth = COMPOSER_MENU_EXPANDED_WIDTH_REM * remInPixels;
|
|
5342
|
+
setCanExpandSecondaryPanel(availableWidth >= requiredWidth);
|
|
5343
|
+
};
|
|
5344
|
+
updateLayout();
|
|
5345
|
+
window.addEventListener("resize", updateLayout);
|
|
5346
|
+
const resizeObserver = typeof ResizeObserver === "function" ? new ResizeObserver(updateLayout) : null;
|
|
5347
|
+
resizeObserver?.observe(collisionBoundary);
|
|
5348
|
+
if (triggerRef.current) {
|
|
5349
|
+
resizeObserver?.observe(triggerRef.current);
|
|
5350
|
+
}
|
|
5351
|
+
return () => {
|
|
5352
|
+
window.removeEventListener("resize", updateLayout);
|
|
5353
|
+
resizeObserver?.disconnect();
|
|
5354
|
+
};
|
|
5355
|
+
}, [collisionBoundary, open]);
|
|
5356
|
+
const returnToPrimaryPanel = () => {
|
|
5357
|
+
setActivePanel(null);
|
|
5358
|
+
setQuery("");
|
|
5359
|
+
};
|
|
5360
|
+
const activePanelLabel = activePanel === "targets" ? t("composer.workbuddy.targets") : activePanel === "experts" ? t("composer.workbuddy.experts") : activePanel === "skills" ? t("composer.capabilities.skills") : activePanel === "connectors" ? t("composer.workbuddy.connectors") : null;
|
|
5250
5361
|
const normalizedQuery = query.trim().toLocaleLowerCase();
|
|
5251
5362
|
const matchesQuery2 = (label, description) => !normalizedQuery || `${label} ${description ?? ""}`.toLocaleLowerCase().includes(normalizedQuery);
|
|
5363
|
+
const renderDetailPills = (label, values) => {
|
|
5364
|
+
if (!values?.length) return null;
|
|
5365
|
+
return /* @__PURE__ */ jsxs6("div", { className: "space-y-1", children: [
|
|
5366
|
+
/* @__PURE__ */ jsx15("div", { className: "text-[11px] font-medium uppercase text-muted-foreground", children: label }),
|
|
5367
|
+
/* @__PURE__ */ jsxs6("div", { className: "flex flex-wrap gap-1", children: [
|
|
5368
|
+
values.slice(0, 6).map((value) => /* @__PURE__ */ jsx15(
|
|
5369
|
+
"span",
|
|
5370
|
+
{
|
|
5371
|
+
className: "max-w-full truncate rounded-md bg-muted px-1.5 py-0.5 text-[11px] text-foreground",
|
|
5372
|
+
children: value
|
|
5373
|
+
},
|
|
5374
|
+
value
|
|
5375
|
+
)),
|
|
5376
|
+
values.length > 6 ? /* @__PURE__ */ jsxs6("span", { className: "rounded-md bg-muted px-1.5 py-0.5 text-[11px] text-muted-foreground", children: [
|
|
5377
|
+
"+",
|
|
5378
|
+
values.length - 6
|
|
5379
|
+
] }) : null
|
|
5380
|
+
] })
|
|
5381
|
+
] });
|
|
5382
|
+
};
|
|
5383
|
+
const renderSubAgentDetailCard = (subAgent) => {
|
|
5384
|
+
const agentKind = subAgent.type === "xpert" ? t("composer.capabilities.xpertAgent") : t("composer.capabilities.agent");
|
|
5385
|
+
return /* @__PURE__ */ jsxs6(
|
|
5386
|
+
"div",
|
|
5387
|
+
{
|
|
5388
|
+
"data-slot": "runtime-sub-agent-detail-card",
|
|
5389
|
+
className: cn(
|
|
5390
|
+
"pointer-events-none w-80 space-y-3 border border-border bg-popover p-3 text-popover-foreground shadow-lg",
|
|
5391
|
+
panelRoundedClass
|
|
5392
|
+
),
|
|
5393
|
+
children: [
|
|
5394
|
+
/* @__PURE__ */ jsxs6("div", { className: "flex items-start gap-3", children: [
|
|
5395
|
+
/* @__PURE__ */ jsx15(
|
|
5396
|
+
ChatkitAvatar,
|
|
5397
|
+
{
|
|
5398
|
+
avatar: normalizeChatkitAvatar(subAgent.avatar),
|
|
5399
|
+
label: subAgent.label,
|
|
5400
|
+
className: "h-9 w-9 shrink-0",
|
|
5401
|
+
fallbackClassName: "text-xs"
|
|
5402
|
+
}
|
|
5403
|
+
),
|
|
5404
|
+
/* @__PURE__ */ jsxs6("div", { className: "min-w-0 flex-1", children: [
|
|
5405
|
+
/* @__PURE__ */ jsx15("div", { className: "truncate text-sm font-medium", children: subAgent.label }),
|
|
5406
|
+
/* @__PURE__ */ jsx15("div", { className: "truncate text-xs text-muted-foreground", children: subAgent.name ?? agentKind })
|
|
5407
|
+
] })
|
|
5408
|
+
] }),
|
|
5409
|
+
subAgent.description ? /* @__PURE__ */ jsx15("div", { className: "line-clamp-4 text-xs leading-5 text-muted-foreground", children: subAgent.description }) : null,
|
|
5410
|
+
/* @__PURE__ */ jsxs6("div", { className: "grid grid-cols-2 gap-2 text-xs", children: [
|
|
5411
|
+
/* @__PURE__ */ jsxs6("div", { className: "rounded-md bg-muted px-2 py-1", children: [
|
|
5412
|
+
/* @__PURE__ */ jsx15("span", { className: "block text-[11px] text-muted-foreground", children: t("composer.capabilities.type") }),
|
|
5413
|
+
/* @__PURE__ */ jsx15("span", { className: "font-medium", children: agentKind })
|
|
5414
|
+
] }),
|
|
5415
|
+
subAgent.agentKey || subAgent.xpertId ? /* @__PURE__ */ jsxs6("div", { className: "rounded-md bg-muted px-2 py-1", children: [
|
|
5416
|
+
/* @__PURE__ */ jsx15("span", { className: "block text-[11px] text-muted-foreground", children: t("composer.capabilities.identifier") }),
|
|
5417
|
+
/* @__PURE__ */ jsx15("span", { className: "block truncate font-mono text-[11px]", children: subAgent.agentKey ?? subAgent.xpertId })
|
|
5418
|
+
] }) : null
|
|
5419
|
+
] }),
|
|
5420
|
+
renderDetailPills(
|
|
5421
|
+
t("composer.capabilities.tools"),
|
|
5422
|
+
subAgent.toolNames
|
|
5423
|
+
),
|
|
5424
|
+
renderDetailPills(
|
|
5425
|
+
t("composer.capabilities.toolsets"),
|
|
5426
|
+
subAgent.toolsetNames
|
|
5427
|
+
),
|
|
5428
|
+
renderDetailPills(
|
|
5429
|
+
t("composer.capabilities.knowledge"),
|
|
5430
|
+
subAgent.knowledgebaseNames
|
|
5431
|
+
)
|
|
5432
|
+
]
|
|
5433
|
+
}
|
|
5434
|
+
);
|
|
5435
|
+
};
|
|
5436
|
+
const renderSubAgentInfoButton = (subAgent) => /* @__PURE__ */ jsxs6(Tooltip, { children: [
|
|
5437
|
+
/* @__PURE__ */ jsx15(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx15(
|
|
5438
|
+
"button",
|
|
5439
|
+
{
|
|
5440
|
+
type: "button",
|
|
5441
|
+
"aria-label": t("composer.capabilities.agentDetails"),
|
|
5442
|
+
"data-slot": "runtime-sub-agent-info-trigger",
|
|
5443
|
+
className: "mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground",
|
|
5444
|
+
onClick: (event) => event.stopPropagation(),
|
|
5445
|
+
onPointerDown: (event) => event.stopPropagation(),
|
|
5446
|
+
children: /* @__PURE__ */ jsx15(Info, { size: 14 })
|
|
5447
|
+
}
|
|
5448
|
+
) }),
|
|
5449
|
+
/* @__PURE__ */ jsx15(
|
|
5450
|
+
TooltipContent,
|
|
5451
|
+
{
|
|
5452
|
+
side: "top",
|
|
5453
|
+
align: "center",
|
|
5454
|
+
sideOffset: 8,
|
|
5455
|
+
hideArrow: true,
|
|
5456
|
+
className: "bg-transparent p-0 text-popover-foreground shadow-none",
|
|
5457
|
+
children: renderSubAgentDetailCard(subAgent)
|
|
5458
|
+
}
|
|
5459
|
+
)
|
|
5460
|
+
] });
|
|
5252
5461
|
const renderCapabilityPanel = (panel) => {
|
|
5253
5462
|
const isSkills = panel === "skills";
|
|
5254
5463
|
const filteredSkills = isSkills ? skills.filter((skill) => matchesQuery2(skill.label, skill.description)) : [];
|
|
@@ -5259,7 +5468,7 @@ function ComposerMenu({
|
|
|
5259
5468
|
skill.id
|
|
5260
5469
|
) : false;
|
|
5261
5470
|
const skillDescription = skill.description ?? skill.repositoryName;
|
|
5262
|
-
return /* @__PURE__ */
|
|
5471
|
+
return /* @__PURE__ */ jsxs6(
|
|
5263
5472
|
DropdownMenuCheckboxItem,
|
|
5264
5473
|
{
|
|
5265
5474
|
checked: selected,
|
|
@@ -5272,14 +5481,14 @@ function ComposerMenu({
|
|
|
5272
5481
|
selected && "bg-muted"
|
|
5273
5482
|
),
|
|
5274
5483
|
children: [
|
|
5275
|
-
/* @__PURE__ */
|
|
5484
|
+
/* @__PURE__ */ jsx15(
|
|
5276
5485
|
"span",
|
|
5277
5486
|
{
|
|
5278
5487
|
className: cn(
|
|
5279
5488
|
"flex size-7 shrink-0 items-center justify-center text-muted-foreground",
|
|
5280
5489
|
skillDescription && "mt-0.5"
|
|
5281
5490
|
),
|
|
5282
|
-
children: /* @__PURE__ */
|
|
5491
|
+
children: /* @__PURE__ */ jsx15(
|
|
5283
5492
|
RuntimeCapabilityIcon,
|
|
5284
5493
|
{
|
|
5285
5494
|
option: {
|
|
@@ -5294,9 +5503,9 @@ function ComposerMenu({
|
|
|
5294
5503
|
)
|
|
5295
5504
|
}
|
|
5296
5505
|
),
|
|
5297
|
-
/* @__PURE__ */
|
|
5298
|
-
/* @__PURE__ */
|
|
5299
|
-
skillDescription && /* @__PURE__ */
|
|
5506
|
+
/* @__PURE__ */ jsxs6("span", { className: "min-w-0 flex-1 text-left", children: [
|
|
5507
|
+
/* @__PURE__ */ jsx15("span", { className: "block truncate", children: skill.label }),
|
|
5508
|
+
skillDescription && /* @__PURE__ */ jsx15("span", { className: "block truncate text-xs text-muted-foreground", children: skillDescription })
|
|
5300
5509
|
] })
|
|
5301
5510
|
]
|
|
5302
5511
|
},
|
|
@@ -5322,7 +5531,7 @@ function ComposerMenu({
|
|
|
5322
5531
|
"subAgent",
|
|
5323
5532
|
subAgent.nodeKey
|
|
5324
5533
|
) : false;
|
|
5325
|
-
return /* @__PURE__ */
|
|
5534
|
+
return /* @__PURE__ */ jsxs6(
|
|
5326
5535
|
DropdownMenuCheckboxItem,
|
|
5327
5536
|
{
|
|
5328
5537
|
checked: selected,
|
|
@@ -5338,7 +5547,7 @@ function ComposerMenu({
|
|
|
5338
5547
|
selected && "bg-muted"
|
|
5339
5548
|
),
|
|
5340
5549
|
children: [
|
|
5341
|
-
/* @__PURE__ */
|
|
5550
|
+
/* @__PURE__ */ jsx15("span", { className: "mt-0.5 flex size-7 shrink-0 items-center justify-center text-muted-foreground", children: /* @__PURE__ */ jsx15(
|
|
5342
5551
|
RuntimeCapabilityIcon,
|
|
5343
5552
|
{
|
|
5344
5553
|
option: {
|
|
@@ -5351,16 +5560,17 @@ function ComposerMenu({
|
|
|
5351
5560
|
variant: "list"
|
|
5352
5561
|
}
|
|
5353
5562
|
) }),
|
|
5354
|
-
/* @__PURE__ */
|
|
5355
|
-
/* @__PURE__ */
|
|
5356
|
-
(subAgent.description || subAgent.name) && /* @__PURE__ */
|
|
5357
|
-
] })
|
|
5563
|
+
/* @__PURE__ */ jsxs6("span", { className: "min-w-0 flex-1 text-left", children: [
|
|
5564
|
+
/* @__PURE__ */ jsx15("span", { className: "block truncate", children: subAgent.label }),
|
|
5565
|
+
(subAgent.description || subAgent.name) && /* @__PURE__ */ jsx15("span", { className: "block truncate text-xs text-muted-foreground", children: subAgent.description ?? subAgent.name })
|
|
5566
|
+
] }),
|
|
5567
|
+
renderSubAgentInfoButton(subAgent)
|
|
5358
5568
|
]
|
|
5359
5569
|
},
|
|
5360
5570
|
subAgent.nodeKey
|
|
5361
5571
|
);
|
|
5362
5572
|
});
|
|
5363
|
-
const toolRows = isSkills ? tools.filter((tool) => matchesQuery2(tool.label, tool.shortLabel)).map((tool) => /* @__PURE__ */
|
|
5573
|
+
const toolRows = isSkills ? tools.filter((tool) => matchesQuery2(tool.label, tool.shortLabel)).map((tool) => /* @__PURE__ */ jsxs6(
|
|
5364
5574
|
"button",
|
|
5365
5575
|
{
|
|
5366
5576
|
type: "button",
|
|
@@ -5373,14 +5583,14 @@ function ComposerMenu({
|
|
|
5373
5583
|
setOpen(false);
|
|
5374
5584
|
},
|
|
5375
5585
|
children: [
|
|
5376
|
-
/* @__PURE__ */
|
|
5377
|
-
/* @__PURE__ */
|
|
5586
|
+
/* @__PURE__ */ jsx15("span", { className: "flex size-7 shrink-0 items-center justify-center text-muted-foreground", children: getIconComponent(tool.icon) }),
|
|
5587
|
+
/* @__PURE__ */ jsx15("span", { className: "truncate", children: tool.label })
|
|
5378
5588
|
]
|
|
5379
5589
|
},
|
|
5380
5590
|
tool.id
|
|
5381
5591
|
)) : [];
|
|
5382
|
-
return /* @__PURE__ */
|
|
5383
|
-
/* @__PURE__ */
|
|
5592
|
+
return /* @__PURE__ */ jsxs6(Fragment, { children: [
|
|
5593
|
+
/* @__PURE__ */ jsx15(
|
|
5384
5594
|
PanelSearch,
|
|
5385
5595
|
{
|
|
5386
5596
|
value: query,
|
|
@@ -5390,29 +5600,109 @@ function ComposerMenu({
|
|
|
5390
5600
|
)
|
|
5391
5601
|
}
|
|
5392
5602
|
),
|
|
5393
|
-
/* @__PURE__ */
|
|
5394
|
-
|
|
5395
|
-
|
|
5396
|
-
|
|
5397
|
-
|
|
5398
|
-
|
|
5399
|
-
|
|
5400
|
-
|
|
5401
|
-
|
|
5402
|
-
|
|
5403
|
-
|
|
5404
|
-
|
|
5405
|
-
|
|
5406
|
-
|
|
5407
|
-
|
|
5408
|
-
|
|
5409
|
-
|
|
5410
|
-
|
|
5411
|
-
|
|
5603
|
+
/* @__PURE__ */ jsx15(
|
|
5604
|
+
"div",
|
|
5605
|
+
{
|
|
5606
|
+
"data-slot": "composer-capability-scroll",
|
|
5607
|
+
className: "max-h-72 overflow-y-auto overscroll-contain px-2 pb-2",
|
|
5608
|
+
children: /* @__PURE__ */ jsxs6("div", { "data-slot": "composer-capability-list", className: "space-y-1", children: [
|
|
5609
|
+
isSkills && expertSkills.length > 0 ? /* @__PURE__ */ jsx15(SkillGroup, { label: t("composer.workbuddy.expertSkills"), children: expertSkills.map(renderSkillRow) }) : null,
|
|
5610
|
+
isSkills ? Array.from(projectSkillGroups.entries()).map(
|
|
5611
|
+
([projectLabel, projectSkills]) => /* @__PURE__ */ jsx15(
|
|
5612
|
+
SkillGroup,
|
|
5613
|
+
{
|
|
5614
|
+
label: t("composer.workbuddy.projectSkills", {
|
|
5615
|
+
project: projectLabel
|
|
5616
|
+
}),
|
|
5617
|
+
children: projectSkills.map(renderSkillRow)
|
|
5618
|
+
},
|
|
5619
|
+
projectLabel
|
|
5620
|
+
)
|
|
5621
|
+
) : capabilityRows,
|
|
5622
|
+
toolRows,
|
|
5623
|
+
(isSkills ? filteredSkills.length : capabilityRows.length) === 0 && toolRows.length === 0 ? /* @__PURE__ */ jsx15("div", { className: "flex min-h-32 items-center justify-center px-4 text-center text-sm text-muted-foreground", children: t(
|
|
5624
|
+
isSkills ? "composer.workbuddy.emptySkills" : "composer.workbuddy.emptyExperts"
|
|
5625
|
+
) }) : null
|
|
5626
|
+
] })
|
|
5627
|
+
}
|
|
5628
|
+
)
|
|
5412
5629
|
] });
|
|
5413
5630
|
};
|
|
5414
|
-
|
|
5415
|
-
|
|
5631
|
+
const primaryPanel = /* @__PURE__ */ jsxs6(
|
|
5632
|
+
"div",
|
|
5633
|
+
{
|
|
5634
|
+
"data-slot": "composer-primary-panel",
|
|
5635
|
+
className: cn(
|
|
5636
|
+
"w-64 max-w-full shrink-0 overflow-hidden bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10",
|
|
5637
|
+
panelRoundedClass
|
|
5638
|
+
),
|
|
5639
|
+
children: [
|
|
5640
|
+
/* @__PURE__ */ jsxs6(
|
|
5641
|
+
DropdownMenuItem,
|
|
5642
|
+
{
|
|
5643
|
+
disabled: !attachmentsEnabled,
|
|
5644
|
+
onSelect: onAttachmentClick,
|
|
5645
|
+
className: cn("gap-3 p-1.5 font-normal", menuItemRoundedClass),
|
|
5646
|
+
children: [
|
|
5647
|
+
/* @__PURE__ */ jsx15(Paperclip, { className: "size-5" }),
|
|
5648
|
+
/* @__PURE__ */ jsx15("span", { className: "flex-1 text-base", children: t("composer.addAttachment") }),
|
|
5649
|
+
/* @__PURE__ */ jsx15(ChevronRight, { className: "size-4" })
|
|
5650
|
+
]
|
|
5651
|
+
}
|
|
5652
|
+
),
|
|
5653
|
+
/* @__PURE__ */ jsx15(DropdownMenuSeparator, { className: "my-2" }),
|
|
5654
|
+
/* @__PURE__ */ jsx15(
|
|
5655
|
+
PrimaryPanelItem,
|
|
5656
|
+
{
|
|
5657
|
+
icon: /* @__PURE__ */ jsx15(Target, {}),
|
|
5658
|
+
label: t("composer.workbuddy.targets"),
|
|
5659
|
+
active: activePanel === "targets",
|
|
5660
|
+
onSelect: () => choosePanel("targets"),
|
|
5661
|
+
className: menuItemRoundedClass
|
|
5662
|
+
}
|
|
5663
|
+
),
|
|
5664
|
+
/* @__PURE__ */ jsx15(
|
|
5665
|
+
PrimaryPanelItem,
|
|
5666
|
+
{
|
|
5667
|
+
icon: /* @__PURE__ */ jsx15(Bot, {}),
|
|
5668
|
+
label: t("composer.workbuddy.experts"),
|
|
5669
|
+
count: selectedSubAgentCount,
|
|
5670
|
+
active: activePanel === "experts",
|
|
5671
|
+
onSelect: () => choosePanel("experts"),
|
|
5672
|
+
className: menuItemRoundedClass
|
|
5673
|
+
}
|
|
5674
|
+
),
|
|
5675
|
+
/* @__PURE__ */ jsx15(
|
|
5676
|
+
PrimaryPanelItem,
|
|
5677
|
+
{
|
|
5678
|
+
icon: /* @__PURE__ */ jsx15(WandSparkles, {}),
|
|
5679
|
+
label: t("composer.capabilities.skills"),
|
|
5680
|
+
count: selectedSkillCount,
|
|
5681
|
+
active: activePanel === "skills",
|
|
5682
|
+
onSelect: () => choosePanel("skills"),
|
|
5683
|
+
className: menuItemRoundedClass
|
|
5684
|
+
}
|
|
5685
|
+
),
|
|
5686
|
+
/* @__PURE__ */ jsx15(
|
|
5687
|
+
PrimaryPanelItem,
|
|
5688
|
+
{
|
|
5689
|
+
icon: /* @__PURE__ */ jsx15(Plug2, {}),
|
|
5690
|
+
label: t("composer.workbuddy.connectors"),
|
|
5691
|
+
count: selectedConnectorBindingIds?.length ?? 0,
|
|
5692
|
+
active: activePanel === "connectors",
|
|
5693
|
+
disabled: !connectorsEnabled,
|
|
5694
|
+
onSelect: () => choosePanel("connectors"),
|
|
5695
|
+
className: menuItemRoundedClass
|
|
5696
|
+
}
|
|
5697
|
+
)
|
|
5698
|
+
]
|
|
5699
|
+
}
|
|
5700
|
+
);
|
|
5701
|
+
const secondaryPanelExpandsRight = Boolean(
|
|
5702
|
+
activePanel && activePanelLabel && canExpandSecondaryPanel
|
|
5703
|
+
);
|
|
5704
|
+
return /* @__PURE__ */ jsxs6(DropdownMenu, { open, onOpenChange: handleOpenChange, modal: false, children: [
|
|
5705
|
+
/* @__PURE__ */ jsx15(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx15(
|
|
5416
5706
|
Button,
|
|
5417
5707
|
{
|
|
5418
5708
|
ref: triggerRef,
|
|
@@ -5426,7 +5716,7 @@ function ComposerMenu({
|
|
|
5426
5716
|
"size-9 shrink-0 transition-[background-color,border-radius] duration-300 hover:bg-muted",
|
|
5427
5717
|
open ? "rounded-full bg-muted" : roundedClass
|
|
5428
5718
|
),
|
|
5429
|
-
children: /* @__PURE__ */
|
|
5719
|
+
children: /* @__PURE__ */ jsx15(
|
|
5430
5720
|
Plus,
|
|
5431
5721
|
{
|
|
5432
5722
|
className: cn(
|
|
@@ -5437,173 +5727,116 @@ function ComposerMenu({
|
|
|
5437
5727
|
)
|
|
5438
5728
|
}
|
|
5439
5729
|
) }),
|
|
5440
|
-
/* @__PURE__ */
|
|
5730
|
+
/* @__PURE__ */ jsx15(
|
|
5441
5731
|
DropdownMenuContent,
|
|
5442
5732
|
{
|
|
5443
5733
|
align: "start",
|
|
5444
5734
|
side: "top",
|
|
5445
5735
|
sideOffset: 8,
|
|
5446
5736
|
collisionBoundary,
|
|
5447
|
-
collisionPadding:
|
|
5737
|
+
collisionPadding: COMPOSER_MENU_COLLISION_PADDING,
|
|
5738
|
+
"data-layout": canExpandSecondaryPanel ? "wide" : "narrow",
|
|
5448
5739
|
className: cn(
|
|
5449
|
-
"bg-transparent shadow-none ring-0",
|
|
5450
|
-
|
|
5740
|
+
"max-w-(--radix-dropdown-menu-content-available-width) bg-transparent p-1 shadow-none ring-0",
|
|
5741
|
+
secondaryPanelExpandsRight ? "w-[33rem] overflow-visible" : "w-[16.5rem] overflow-hidden"
|
|
5451
5742
|
),
|
|
5452
|
-
children: /* @__PURE__ */
|
|
5743
|
+
children: /* @__PURE__ */ jsxs6(
|
|
5453
5744
|
"div",
|
|
5454
5745
|
{
|
|
5746
|
+
"data-slot": "composer-menu-layout",
|
|
5455
5747
|
className: cn(
|
|
5456
|
-
"items-end
|
|
5457
|
-
|
|
5748
|
+
"flex items-end",
|
|
5749
|
+
secondaryPanelExpandsRight && "w-full min-w-0 gap-2"
|
|
5458
5750
|
),
|
|
5459
5751
|
children: [
|
|
5460
|
-
|
|
5461
|
-
|
|
5462
|
-
|
|
5463
|
-
|
|
5464
|
-
className: cn(
|
|
5465
|
-
"w-64 max-w-full shrink-0 overflow-hidden bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10",
|
|
5466
|
-
panelRoundedClass
|
|
5467
|
-
),
|
|
5468
|
-
children: [
|
|
5469
|
-
/* @__PURE__ */ jsxs5(
|
|
5470
|
-
DropdownMenuItem,
|
|
5471
|
-
{
|
|
5472
|
-
disabled: !attachmentsEnabled,
|
|
5473
|
-
onSelect: onAttachmentClick,
|
|
5474
|
-
className: cn("gap-3 p-1.5 font-normal", menuItemRoundedClass),
|
|
5475
|
-
children: [
|
|
5476
|
-
/* @__PURE__ */ jsx14(Paperclip, { className: "size-5" }),
|
|
5477
|
-
/* @__PURE__ */ jsx14("span", { className: "flex-1 text-base", children: t("composer.addAttachment") }),
|
|
5478
|
-
/* @__PURE__ */ jsx14(ChevronRight, { className: "size-4" })
|
|
5479
|
-
]
|
|
5480
|
-
}
|
|
5481
|
-
),
|
|
5482
|
-
/* @__PURE__ */ jsx14(DropdownMenuSeparator, { className: "my-2" }),
|
|
5483
|
-
/* @__PURE__ */ jsx14(
|
|
5484
|
-
PrimaryPanelItem,
|
|
5485
|
-
{
|
|
5486
|
-
icon: /* @__PURE__ */ jsx14(Target, {}),
|
|
5487
|
-
label: t("composer.workbuddy.targets"),
|
|
5488
|
-
active: activePanel === "targets",
|
|
5489
|
-
onSelect: () => choosePanel("targets"),
|
|
5490
|
-
className: menuItemRoundedClass
|
|
5491
|
-
}
|
|
5492
|
-
),
|
|
5493
|
-
/* @__PURE__ */ jsx14(
|
|
5494
|
-
PrimaryPanelItem,
|
|
5495
|
-
{
|
|
5496
|
-
icon: /* @__PURE__ */ jsx14(Bot, {}),
|
|
5497
|
-
label: t("composer.workbuddy.experts"),
|
|
5498
|
-
count: selectedSubAgentCount,
|
|
5499
|
-
active: activePanel === "experts",
|
|
5500
|
-
onSelect: () => choosePanel("experts"),
|
|
5501
|
-
className: menuItemRoundedClass
|
|
5502
|
-
}
|
|
5503
|
-
),
|
|
5504
|
-
/* @__PURE__ */ jsx14(
|
|
5505
|
-
PrimaryPanelItem,
|
|
5506
|
-
{
|
|
5507
|
-
icon: /* @__PURE__ */ jsx14(WandSparkles, {}),
|
|
5508
|
-
label: t("composer.capabilities.skills"),
|
|
5509
|
-
count: selectedSkillCount,
|
|
5510
|
-
active: activePanel === "skills",
|
|
5511
|
-
onSelect: () => choosePanel("skills"),
|
|
5512
|
-
className: menuItemRoundedClass
|
|
5513
|
-
}
|
|
5514
|
-
),
|
|
5515
|
-
/* @__PURE__ */ jsx14(
|
|
5516
|
-
PrimaryPanelItem,
|
|
5517
|
-
{
|
|
5518
|
-
icon: /* @__PURE__ */ jsx14(Plug2, {}),
|
|
5519
|
-
label: t("composer.workbuddy.connectors"),
|
|
5520
|
-
count: selectedConnectorBindingIds?.length ?? 0,
|
|
5521
|
-
active: activePanel === "connectors",
|
|
5522
|
-
disabled: !connectorsEnabled,
|
|
5523
|
-
onSelect: () => choosePanel("connectors"),
|
|
5524
|
-
className: menuItemRoundedClass
|
|
5525
|
-
}
|
|
5526
|
-
)
|
|
5527
|
-
]
|
|
5528
|
-
}
|
|
5529
|
-
),
|
|
5530
|
-
activePanel === "targets" ? /* @__PURE__ */ jsx14(SecondaryPanel, { panelRoundedClass, children: /* @__PURE__ */ jsxs5("div", { className: "space-y-1 p-1", children: [
|
|
5531
|
-
/* @__PURE__ */ jsxs5(
|
|
5532
|
-
DropdownMenuItem,
|
|
5752
|
+
secondaryPanelExpandsRight ? primaryPanel : null,
|
|
5753
|
+
activePanel && activePanelLabel ? /* @__PURE__ */ jsxs6(SecondaryPanel, { panelRoundedClass, children: [
|
|
5754
|
+
!secondaryPanelExpandsRight ? /* @__PURE__ */ jsx15(
|
|
5755
|
+
PanelHeader,
|
|
5533
5756
|
{
|
|
5534
|
-
|
|
5535
|
-
|
|
5536
|
-
|
|
5537
|
-
onSelect: (event) => {
|
|
5538
|
-
event.preventDefault();
|
|
5539
|
-
onGoalPanelOpenChange?.(!goalPanelOpen);
|
|
5540
|
-
},
|
|
5541
|
-
className: cn(
|
|
5542
|
-
"gap-3 p-1.5",
|
|
5543
|
-
menuItemRoundedClass,
|
|
5544
|
-
goalPanelOpen && "bg-muted"
|
|
5545
|
-
),
|
|
5546
|
-
children: [
|
|
5547
|
-
/* @__PURE__ */ jsx14(Target, { className: "size-5" }),
|
|
5548
|
-
/* @__PURE__ */ jsx14("span", { className: "min-w-0 flex-1 text-base", children: t("chat.goal.label") }),
|
|
5549
|
-
/* @__PURE__ */ jsx14(Toggle, { checked: goalPanelOpen })
|
|
5550
|
-
]
|
|
5757
|
+
label: activePanelLabel,
|
|
5758
|
+
onBack: returnToPrimaryPanel,
|
|
5759
|
+
className: menuItemRoundedClass
|
|
5551
5760
|
}
|
|
5552
|
-
),
|
|
5553
|
-
/* @__PURE__ */
|
|
5554
|
-
|
|
5761
|
+
) : null,
|
|
5762
|
+
activePanel === "targets" ? /* @__PURE__ */ jsxs6("div", { className: "space-y-1 p-1", children: [
|
|
5763
|
+
/* @__PURE__ */ jsxs6(
|
|
5764
|
+
DropdownMenuItem,
|
|
5765
|
+
{
|
|
5766
|
+
role: "switch",
|
|
5767
|
+
"aria-checked": goalPanelOpen,
|
|
5768
|
+
disabled: !goalCommandAvailable,
|
|
5769
|
+
onSelect: (event) => {
|
|
5770
|
+
event.preventDefault();
|
|
5771
|
+
onGoalPanelOpenChange?.(!goalPanelOpen);
|
|
5772
|
+
},
|
|
5773
|
+
className: cn(
|
|
5774
|
+
"gap-3 p-1.5",
|
|
5775
|
+
menuItemRoundedClass,
|
|
5776
|
+
goalPanelOpen && "bg-muted"
|
|
5777
|
+
),
|
|
5778
|
+
children: [
|
|
5779
|
+
/* @__PURE__ */ jsx15(Target, { className: "size-5" }),
|
|
5780
|
+
/* @__PURE__ */ jsx15("span", { className: "min-w-0 flex-1 text-base", children: t("chat.goal.label") }),
|
|
5781
|
+
/* @__PURE__ */ jsx15(Toggle, { checked: goalPanelOpen })
|
|
5782
|
+
]
|
|
5783
|
+
}
|
|
5784
|
+
),
|
|
5785
|
+
/* @__PURE__ */ jsxs6(
|
|
5786
|
+
DropdownMenuItem,
|
|
5787
|
+
{
|
|
5788
|
+
role: "switch",
|
|
5789
|
+
"aria-checked": planModeEnabled,
|
|
5790
|
+
onSelect: (event) => {
|
|
5791
|
+
event.preventDefault();
|
|
5792
|
+
onPlanModeChange?.(!planModeEnabled);
|
|
5793
|
+
},
|
|
5794
|
+
className: cn(
|
|
5795
|
+
"gap-3 p-1.5",
|
|
5796
|
+
menuItemRoundedClass,
|
|
5797
|
+
planModeEnabled && "bg-muted"
|
|
5798
|
+
),
|
|
5799
|
+
children: [
|
|
5800
|
+
/* @__PURE__ */ jsx15(ListChecks, { className: "size-5" }),
|
|
5801
|
+
/* @__PURE__ */ jsx15("span", { className: "min-w-0 flex-1 text-base", children: t("composer.planMode") }),
|
|
5802
|
+
/* @__PURE__ */ jsx15(Toggle, { checked: planModeEnabled })
|
|
5803
|
+
]
|
|
5804
|
+
}
|
|
5805
|
+
)
|
|
5806
|
+
] }) : activePanel === "experts" || activePanel === "skills" ? renderCapabilityPanel(activePanel) : /* @__PURE__ */ jsx15(
|
|
5807
|
+
ConnectorMenuPanel,
|
|
5555
5808
|
{
|
|
5556
|
-
|
|
5557
|
-
|
|
5558
|
-
|
|
5559
|
-
|
|
5560
|
-
|
|
5561
|
-
|
|
5562
|
-
className: cn(
|
|
5563
|
-
"gap-3 p-1.5",
|
|
5564
|
-
menuItemRoundedClass,
|
|
5565
|
-
planModeEnabled && "bg-muted"
|
|
5566
|
-
),
|
|
5567
|
-
children: [
|
|
5568
|
-
/* @__PURE__ */ jsx14(ListChecks, { className: "size-5" }),
|
|
5569
|
-
/* @__PURE__ */ jsx14("span", { className: "min-w-0 flex-1 text-base", children: t("composer.planMode") }),
|
|
5570
|
-
/* @__PURE__ */ jsx14(Toggle, { checked: planModeEnabled })
|
|
5571
|
-
]
|
|
5809
|
+
client: connectorClient ?? null,
|
|
5810
|
+
xpertId: connectorXpertId,
|
|
5811
|
+
projectId: connectorProjectId,
|
|
5812
|
+
selectedBindingIds: selectedConnectorBindingIds,
|
|
5813
|
+
onSelectionChange: onConnectorSelectionChange,
|
|
5814
|
+
apiUrl
|
|
5572
5815
|
}
|
|
5573
5816
|
)
|
|
5574
|
-
] })
|
|
5575
|
-
ConnectorMenuPanel,
|
|
5576
|
-
{
|
|
5577
|
-
client: connectorClient ?? null,
|
|
5578
|
-
xpertId: connectorXpertId,
|
|
5579
|
-
projectId: connectorProjectId,
|
|
5580
|
-
selectedBindingIds: selectedConnectorBindingIds,
|
|
5581
|
-
onSelectionChange: onConnectorSelectionChange,
|
|
5582
|
-
apiUrl
|
|
5583
|
-
}
|
|
5584
|
-
) }) : null
|
|
5817
|
+
] }) : primaryPanel
|
|
5585
5818
|
]
|
|
5586
5819
|
}
|
|
5587
5820
|
)
|
|
5588
5821
|
}
|
|
5589
5822
|
),
|
|
5590
|
-
planModeEnabled ? /* @__PURE__ */
|
|
5823
|
+
planModeEnabled ? /* @__PURE__ */ jsx15(
|
|
5591
5824
|
ActiveIndicator,
|
|
5592
5825
|
{
|
|
5593
5826
|
label: t("composer.planModeActive"),
|
|
5594
5827
|
ariaLabel: t("composer.disablePlanMode"),
|
|
5595
|
-
icon: /* @__PURE__ */
|
|
5828
|
+
icon: /* @__PURE__ */ jsx15(ListChecks, {}),
|
|
5596
5829
|
roundedClass,
|
|
5597
5830
|
disabled,
|
|
5598
5831
|
onClick: () => onPlanModeChange?.(false)
|
|
5599
5832
|
}
|
|
5600
5833
|
) : null,
|
|
5601
|
-
goalCommandAvailable && goalPanelOpen ? /* @__PURE__ */
|
|
5834
|
+
goalCommandAvailable && goalPanelOpen ? /* @__PURE__ */ jsx15(
|
|
5602
5835
|
ActiveIndicator,
|
|
5603
5836
|
{
|
|
5604
5837
|
label: t("chat.goal.label"),
|
|
5605
5838
|
ariaLabel: t("chat.goal.hide"),
|
|
5606
|
-
icon: /* @__PURE__ */
|
|
5839
|
+
icon: /* @__PURE__ */ jsx15(Target, {}),
|
|
5607
5840
|
roundedClass,
|
|
5608
5841
|
disabled,
|
|
5609
5842
|
onClick: () => onGoalPanelOpenChange?.(false)
|
|
@@ -5611,6 +5844,29 @@ function ComposerMenu({
|
|
|
5611
5844
|
) : null
|
|
5612
5845
|
] });
|
|
5613
5846
|
}
|
|
5847
|
+
function PanelHeader({
|
|
5848
|
+
label,
|
|
5849
|
+
onBack,
|
|
5850
|
+
className
|
|
5851
|
+
}) {
|
|
5852
|
+
return /* @__PURE__ */ jsxs6(Fragment, { children: [
|
|
5853
|
+
/* @__PURE__ */ jsxs6(
|
|
5854
|
+
DropdownMenuItem,
|
|
5855
|
+
{
|
|
5856
|
+
onSelect: (event) => {
|
|
5857
|
+
event.preventDefault();
|
|
5858
|
+
onBack();
|
|
5859
|
+
},
|
|
5860
|
+
className: cn("gap-3 p-1.5 font-normal", className),
|
|
5861
|
+
children: [
|
|
5862
|
+
/* @__PURE__ */ jsx15(ArrowLeft, { className: "size-5" }),
|
|
5863
|
+
/* @__PURE__ */ jsx15("span", { className: "min-w-0 flex-1 text-base", children: label })
|
|
5864
|
+
]
|
|
5865
|
+
}
|
|
5866
|
+
),
|
|
5867
|
+
/* @__PURE__ */ jsx15(DropdownMenuSeparator, { className: "my-0" })
|
|
5868
|
+
] });
|
|
5869
|
+
}
|
|
5614
5870
|
function PrimaryPanelItem({
|
|
5615
5871
|
icon,
|
|
5616
5872
|
label,
|
|
@@ -5620,7 +5876,7 @@ function PrimaryPanelItem({
|
|
|
5620
5876
|
onSelect,
|
|
5621
5877
|
className
|
|
5622
5878
|
}) {
|
|
5623
|
-
return /* @__PURE__ */
|
|
5879
|
+
return /* @__PURE__ */ jsxs6(
|
|
5624
5880
|
DropdownMenuItem,
|
|
5625
5881
|
{
|
|
5626
5882
|
disabled,
|
|
@@ -5630,10 +5886,10 @@ function PrimaryPanelItem({
|
|
|
5630
5886
|
},
|
|
5631
5887
|
className: cn("gap-3 p-1.5 font-normal", className, active && "bg-muted"),
|
|
5632
5888
|
children: [
|
|
5633
|
-
|
|
5634
|
-
/* @__PURE__ */
|
|
5635
|
-
count > 0 ? /* @__PURE__ */
|
|
5636
|
-
/* @__PURE__ */
|
|
5889
|
+
React13.cloneElement(icon, { className: "size-5" }),
|
|
5890
|
+
/* @__PURE__ */ jsx15("span", { className: "min-w-0 flex-1 text-base", children: label }),
|
|
5891
|
+
count > 0 ? /* @__PURE__ */ jsx15("span", { className: "rounded-full bg-primary/10 px-1.5 py-0.5 text-xs font-normal text-primary", children: count }) : null,
|
|
5892
|
+
/* @__PURE__ */ jsx15(ChevronRight, { className: "size-4" })
|
|
5637
5893
|
]
|
|
5638
5894
|
}
|
|
5639
5895
|
);
|
|
@@ -5642,20 +5898,20 @@ function SecondaryPanel({
|
|
|
5642
5898
|
panelRoundedClass,
|
|
5643
5899
|
children
|
|
5644
5900
|
}) {
|
|
5645
|
-
return /* @__PURE__ */
|
|
5901
|
+
return /* @__PURE__ */ jsx15(
|
|
5646
5902
|
"div",
|
|
5647
5903
|
{
|
|
5648
5904
|
"data-slot": "composer-secondary-panel",
|
|
5649
5905
|
className: cn(
|
|
5650
|
-
"min-w-0 max-w-full
|
|
5906
|
+
"w-64 min-w-0 max-w-full overflow-hidden bg-popover text-popover-foreground shadow-lg ring-1 ring-foreground/10",
|
|
5651
5907
|
panelRoundedClass
|
|
5652
5908
|
),
|
|
5653
|
-
children: /* @__PURE__ */
|
|
5909
|
+
children: /* @__PURE__ */ jsx15(
|
|
5654
5910
|
"div",
|
|
5655
5911
|
{
|
|
5656
5912
|
"data-slot": "composer-secondary-scroll",
|
|
5657
|
-
className: "w-full min-w-0 overflow-x-
|
|
5658
|
-
children: /* @__PURE__ */
|
|
5913
|
+
className: "w-full min-w-0 overflow-x-hidden",
|
|
5914
|
+
children: /* @__PURE__ */ jsx15("div", { className: "w-full min-w-0", children })
|
|
5659
5915
|
}
|
|
5660
5916
|
)
|
|
5661
5917
|
}
|
|
@@ -5666,9 +5922,9 @@ function PanelSearch({
|
|
|
5666
5922
|
onChange,
|
|
5667
5923
|
placeholder
|
|
5668
5924
|
}) {
|
|
5669
|
-
return /* @__PURE__ */
|
|
5670
|
-
/* @__PURE__ */
|
|
5671
|
-
/* @__PURE__ */
|
|
5925
|
+
return /* @__PURE__ */ jsx15("div", { "data-slot": "composer-panel-search", className: "px-2 pt-1 pb-2", children: /* @__PURE__ */ jsxs6("div", { className: "relative", children: [
|
|
5926
|
+
/* @__PURE__ */ jsx15(Search2, { className: "pointer-events-none absolute left-3 top-1/2 size-5 -translate-y-1/2 text-muted-foreground" }),
|
|
5927
|
+
/* @__PURE__ */ jsx15(
|
|
5672
5928
|
Input,
|
|
5673
5929
|
{
|
|
5674
5930
|
autoFocus: true,
|
|
@@ -5678,14 +5934,14 @@ function PanelSearch({
|
|
|
5678
5934
|
className: "h-8 border-0 bg-muted pl-10 text-base shadow-none focus-visible:ring-1"
|
|
5679
5935
|
}
|
|
5680
5936
|
)
|
|
5681
|
-
] });
|
|
5937
|
+
] }) });
|
|
5682
5938
|
}
|
|
5683
5939
|
function SkillGroup({
|
|
5684
5940
|
label,
|
|
5685
5941
|
children
|
|
5686
5942
|
}) {
|
|
5687
|
-
return /* @__PURE__ */
|
|
5688
|
-
/* @__PURE__ */
|
|
5943
|
+
return /* @__PURE__ */ jsxs6("section", { "data-slot": "composer-skill-group", className: "space-y-1", children: [
|
|
5944
|
+
/* @__PURE__ */ jsx15("div", { className: "px-1.5 pt-1 text-xs font-normal text-muted-foreground", children: label }),
|
|
5689
5945
|
children
|
|
5690
5946
|
] });
|
|
5691
5947
|
}
|
|
@@ -5697,7 +5953,7 @@ function ActiveIndicator({
|
|
|
5697
5953
|
disabled,
|
|
5698
5954
|
onClick
|
|
5699
5955
|
}) {
|
|
5700
|
-
return /* @__PURE__ */
|
|
5956
|
+
return /* @__PURE__ */ jsxs6(
|
|
5701
5957
|
"button",
|
|
5702
5958
|
{
|
|
5703
5959
|
type: "button",
|
|
@@ -5709,28 +5965,28 @@ function ActiveIndicator({
|
|
|
5709
5965
|
roundedClass
|
|
5710
5966
|
),
|
|
5711
5967
|
children: [
|
|
5712
|
-
|
|
5713
|
-
/* @__PURE__ */
|
|
5714
|
-
/* @__PURE__ */
|
|
5968
|
+
React13.cloneElement(icon, { className: "mr-1.5 size-3.5" }),
|
|
5969
|
+
/* @__PURE__ */ jsx15("span", { children: label }),
|
|
5970
|
+
/* @__PURE__ */ jsx15(X, { className: "ml-0 h-3.5 w-0 shrink-0 overflow-hidden opacity-0 transition-[width,margin,opacity] duration-200 group-hover/indicator:ml-1 group-hover/indicator:w-3.5 group-hover/indicator:opacity-100 group-focus-visible/indicator:ml-1 group-focus-visible/indicator:w-3.5 group-focus-visible/indicator:opacity-100" })
|
|
5715
5971
|
]
|
|
5716
5972
|
}
|
|
5717
5973
|
);
|
|
5718
5974
|
}
|
|
5719
5975
|
|
|
5720
5976
|
// src/components/composer/ModelPicker.tsx
|
|
5721
|
-
import * as
|
|
5977
|
+
import * as React14 from "react";
|
|
5722
5978
|
import { Bot as Bot2, ChevronDown, SlidersHorizontal as SlidersHorizontal2 } from "lucide-react";
|
|
5723
|
-
import { jsx as
|
|
5979
|
+
import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
5724
5980
|
function ModelProviderAvatar({
|
|
5725
5981
|
avatar,
|
|
5726
5982
|
className,
|
|
5727
5983
|
imageClassName,
|
|
5728
5984
|
iconClassName
|
|
5729
5985
|
}) {
|
|
5730
|
-
const [failedUrl, setFailedUrl] =
|
|
5986
|
+
const [failedUrl, setFailedUrl] = React14.useState(null);
|
|
5731
5987
|
const avatarUrl = avatar?.url;
|
|
5732
5988
|
const showImage = Boolean(avatarUrl && failedUrl !== avatarUrl);
|
|
5733
|
-
return /* @__PURE__ */
|
|
5989
|
+
return /* @__PURE__ */ jsx16(
|
|
5734
5990
|
"span",
|
|
5735
5991
|
{
|
|
5736
5992
|
"aria-hidden": "true",
|
|
@@ -5740,7 +5996,7 @@ function ModelProviderAvatar({
|
|
|
5740
5996
|
className
|
|
5741
5997
|
),
|
|
5742
5998
|
style: avatar?.background ? { backgroundColor: avatar.background } : void 0,
|
|
5743
|
-
children: showImage ? /* @__PURE__ */
|
|
5999
|
+
children: showImage ? /* @__PURE__ */ jsx16(
|
|
5744
6000
|
"img",
|
|
5745
6001
|
{
|
|
5746
6002
|
"data-slot": "model-provider-avatar-image",
|
|
@@ -5749,7 +6005,7 @@ function ModelProviderAvatar({
|
|
|
5749
6005
|
className: cn("size-full object-contain p-1", imageClassName),
|
|
5750
6006
|
onError: () => setFailedUrl(avatarUrl ?? null)
|
|
5751
6007
|
}
|
|
5752
|
-
) : /* @__PURE__ */
|
|
6008
|
+
) : /* @__PURE__ */ jsx16(Bot2, { "aria-hidden": "true", className: cn("size-3.5", iconClassName) })
|
|
5753
6009
|
}
|
|
5754
6010
|
);
|
|
5755
6011
|
}
|
|
@@ -5765,8 +6021,8 @@ function ModelPicker({
|
|
|
5765
6021
|
const selectedModel = enabledModels.find(
|
|
5766
6022
|
(model) => model.id === selectedModelId
|
|
5767
6023
|
);
|
|
5768
|
-
return /* @__PURE__ */
|
|
5769
|
-
/* @__PURE__ */
|
|
6024
|
+
return /* @__PURE__ */ jsxs7(DropdownMenu, { children: [
|
|
6025
|
+
/* @__PURE__ */ jsx16(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs7(
|
|
5770
6026
|
"button",
|
|
5771
6027
|
{
|
|
5772
6028
|
type: "button",
|
|
@@ -5780,7 +6036,7 @@ function ModelPicker({
|
|
|
5780
6036
|
"disabled:pointer-events-none disabled:opacity-50"
|
|
5781
6037
|
),
|
|
5782
6038
|
children: [
|
|
5783
|
-
/* @__PURE__ */
|
|
6039
|
+
/* @__PURE__ */ jsx16(
|
|
5784
6040
|
ModelProviderAvatar,
|
|
5785
6041
|
{
|
|
5786
6042
|
avatar: selectedModel?.avatar,
|
|
@@ -5789,8 +6045,8 @@ function ModelPicker({
|
|
|
5789
6045
|
iconClassName: "size-3"
|
|
5790
6046
|
}
|
|
5791
6047
|
),
|
|
5792
|
-
/* @__PURE__ */
|
|
5793
|
-
/* @__PURE__ */
|
|
6048
|
+
/* @__PURE__ */ jsx16("span", { className: "truncate", children: selectedModel?.label ?? copy.label }),
|
|
6049
|
+
/* @__PURE__ */ jsx16(
|
|
5794
6050
|
ChevronDown,
|
|
5795
6051
|
{
|
|
5796
6052
|
"aria-hidden": "true",
|
|
@@ -5800,7 +6056,7 @@ function ModelPicker({
|
|
|
5800
6056
|
]
|
|
5801
6057
|
}
|
|
5802
6058
|
) }),
|
|
5803
|
-
/* @__PURE__ */
|
|
6059
|
+
/* @__PURE__ */ jsxs7(
|
|
5804
6060
|
DropdownMenuContent,
|
|
5805
6061
|
{
|
|
5806
6062
|
align: "end",
|
|
@@ -5809,8 +6065,8 @@ function ModelPicker({
|
|
|
5809
6065
|
collisionPadding: 12,
|
|
5810
6066
|
className: "w-80 max-w-[calc(100vw-1.5rem)] overflow-hidden rounded-xl p-0",
|
|
5811
6067
|
children: [
|
|
5812
|
-
/* @__PURE__ */
|
|
5813
|
-
/* @__PURE__ */
|
|
6068
|
+
/* @__PURE__ */ jsxs7("div", { className: "flex items-start gap-3 px-3 py-3", children: [
|
|
6069
|
+
/* @__PURE__ */ jsx16(
|
|
5814
6070
|
ModelProviderAvatar,
|
|
5815
6071
|
{
|
|
5816
6072
|
avatar: selectedModel?.avatar,
|
|
@@ -5818,34 +6074,34 @@ function ModelPicker({
|
|
|
5818
6074
|
iconClassName: "size-4"
|
|
5819
6075
|
}
|
|
5820
6076
|
),
|
|
5821
|
-
/* @__PURE__ */
|
|
5822
|
-
/* @__PURE__ */
|
|
5823
|
-
/* @__PURE__ */
|
|
6077
|
+
/* @__PURE__ */ jsxs7("span", { className: "min-w-0 flex-1", children: [
|
|
6078
|
+
/* @__PURE__ */ jsx16("span", { className: "block text-sm font-semibold text-popover-foreground", children: copy.title }),
|
|
6079
|
+
/* @__PURE__ */ jsx16("span", { className: "mt-0.5 block text-xs leading-4 text-muted-foreground", children: copy.description })
|
|
5824
6080
|
] })
|
|
5825
6081
|
] }),
|
|
5826
|
-
/* @__PURE__ */
|
|
5827
|
-
/* @__PURE__ */
|
|
5828
|
-
/* @__PURE__ */
|
|
6082
|
+
/* @__PURE__ */ jsx16(DropdownMenuSeparator, { className: "mx-0 my-0" }),
|
|
6083
|
+
/* @__PURE__ */ jsx16(DropdownMenuLabel, { className: "px-3 pt-2.5 pb-1 text-[11px] font-semibold tracking-wide uppercase", children: copy.availableModels }),
|
|
6084
|
+
/* @__PURE__ */ jsx16(
|
|
5829
6085
|
DropdownMenuRadioGroup,
|
|
5830
6086
|
{
|
|
5831
6087
|
value: selectedModel?.id ?? "",
|
|
5832
6088
|
onValueChange: onSelect,
|
|
5833
6089
|
className: "space-y-0.5 px-1.5 pb-1.5",
|
|
5834
|
-
children: models.map((model) => /* @__PURE__ */
|
|
6090
|
+
children: models.map((model) => /* @__PURE__ */ jsxs7(
|
|
5835
6091
|
DropdownMenuRadioItem,
|
|
5836
6092
|
{
|
|
5837
6093
|
value: model.id,
|
|
5838
6094
|
disabled: model.disabled,
|
|
5839
6095
|
className: "min-h-12 cursor-pointer items-center gap-2.5 rounded-lg px-2 py-2 pr-9 data-disabled:cursor-not-allowed",
|
|
5840
6096
|
children: [
|
|
5841
|
-
/* @__PURE__ */
|
|
5842
|
-
/* @__PURE__ */
|
|
5843
|
-
/* @__PURE__ */
|
|
5844
|
-
/* @__PURE__ */
|
|
5845
|
-
model.default ? /* @__PURE__ */
|
|
5846
|
-
model.disabled ? /* @__PURE__ */
|
|
6097
|
+
/* @__PURE__ */ jsx16(ModelProviderAvatar, { avatar: model.avatar, className: "size-7" }),
|
|
6098
|
+
/* @__PURE__ */ jsxs7("span", { className: "min-w-0 flex-1", children: [
|
|
6099
|
+
/* @__PURE__ */ jsxs7("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
6100
|
+
/* @__PURE__ */ jsx16("span", { className: "truncate font-medium text-popover-foreground", children: model.label }),
|
|
6101
|
+
model.default ? /* @__PURE__ */ jsx16("span", { className: "shrink-0 rounded-full bg-primary/10 px-1.5 py-0.5 text-[10px] font-medium text-primary", children: copy.defaultBadge }) : null,
|
|
6102
|
+
model.disabled ? /* @__PURE__ */ jsx16("span", { className: "shrink-0 rounded-full bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground", children: copy.unavailableBadge }) : null
|
|
5847
6103
|
] }),
|
|
5848
|
-
model.description ? /* @__PURE__ */
|
|
6104
|
+
model.description ? /* @__PURE__ */ jsx16("span", { className: "mt-0.5 block truncate text-xs text-muted-foreground", children: model.description }) : null
|
|
5849
6105
|
] })
|
|
5850
6106
|
]
|
|
5851
6107
|
},
|
|
@@ -5853,26 +6109,26 @@ function ModelPicker({
|
|
|
5853
6109
|
))
|
|
5854
6110
|
}
|
|
5855
6111
|
),
|
|
5856
|
-
/* @__PURE__ */
|
|
5857
|
-
/* @__PURE__ */
|
|
6112
|
+
/* @__PURE__ */ jsx16(DropdownMenuSeparator, { className: "mx-0 my-0" }),
|
|
6113
|
+
/* @__PURE__ */ jsxs7(
|
|
5858
6114
|
"div",
|
|
5859
6115
|
{
|
|
5860
6116
|
"data-slot": "model-picker-future-controls",
|
|
5861
6117
|
className: "flex items-center gap-2.5 bg-muted/30 px-3 py-2.5",
|
|
5862
6118
|
"aria-disabled": "true",
|
|
5863
6119
|
children: [
|
|
5864
|
-
/* @__PURE__ */
|
|
6120
|
+
/* @__PURE__ */ jsx16(
|
|
5865
6121
|
SlidersHorizontal2,
|
|
5866
6122
|
{
|
|
5867
6123
|
"aria-hidden": "true",
|
|
5868
6124
|
className: "size-4 shrink-0 text-muted-foreground"
|
|
5869
6125
|
}
|
|
5870
6126
|
),
|
|
5871
|
-
/* @__PURE__ */
|
|
5872
|
-
/* @__PURE__ */
|
|
5873
|
-
/* @__PURE__ */
|
|
6127
|
+
/* @__PURE__ */ jsxs7("span", { className: "min-w-0 flex-1", children: [
|
|
6128
|
+
/* @__PURE__ */ jsx16("span", { className: "block text-xs font-medium text-popover-foreground", children: copy.futureTitle }),
|
|
6129
|
+
/* @__PURE__ */ jsx16("span", { className: "block truncate text-[11px] text-muted-foreground", children: copy.futureDescription })
|
|
5874
6130
|
] }),
|
|
5875
|
-
/* @__PURE__ */
|
|
6131
|
+
/* @__PURE__ */ jsx16("span", { className: "shrink-0 rounded-full border border-border px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground", children: copy.futureBadge })
|
|
5876
6132
|
]
|
|
5877
6133
|
}
|
|
5878
6134
|
)
|
|
@@ -5883,9 +6139,9 @@ function ModelPicker({
|
|
|
5883
6139
|
}
|
|
5884
6140
|
|
|
5885
6141
|
// src/components/composer/WorkspaceFileMentionPalette.tsx
|
|
5886
|
-
import * as
|
|
6142
|
+
import * as React15 from "react";
|
|
5887
6143
|
import { FileText as FileText2, Loader2 as Loader22 } from "lucide-react";
|
|
5888
|
-
import { jsx as
|
|
6144
|
+
import { jsx as jsx17, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
5889
6145
|
var WORKSPACE_FILE_LIST_DEPTH = 12;
|
|
5890
6146
|
function getWorkspaceFilePath(file) {
|
|
5891
6147
|
return file.fullPath?.trim() || file.filePath.trim();
|
|
@@ -5897,7 +6153,7 @@ function flattenWorkspaceFiles(files) {
|
|
|
5897
6153
|
return [...isDirectory ? [] : [file], ...flattenWorkspaceFiles(children)];
|
|
5898
6154
|
});
|
|
5899
6155
|
}
|
|
5900
|
-
var WorkspaceFileMentionPalette =
|
|
6156
|
+
var WorkspaceFileMentionPalette = React15.forwardRef(function WorkspaceFileMentionPalette2({
|
|
5901
6157
|
client,
|
|
5902
6158
|
assistantId,
|
|
5903
6159
|
projectId,
|
|
@@ -5907,14 +6163,14 @@ var WorkspaceFileMentionPalette = React14.forwardRef(function WorkspaceFileMenti
|
|
|
5907
6163
|
className
|
|
5908
6164
|
}, ref) {
|
|
5909
6165
|
const { t } = useChatkitTranslation();
|
|
5910
|
-
const [files, setFiles] =
|
|
5911
|
-
const [loading, setLoading] =
|
|
5912
|
-
const [error, setError] =
|
|
5913
|
-
const [activeIndex, setActiveIndex] =
|
|
5914
|
-
const activeIndexRef =
|
|
5915
|
-
const optionRefs =
|
|
6166
|
+
const [files, setFiles] = React15.useState([]);
|
|
6167
|
+
const [loading, setLoading] = React15.useState(false);
|
|
6168
|
+
const [error, setError] = React15.useState(null);
|
|
6169
|
+
const [activeIndex, setActiveIndex] = React15.useState(0);
|
|
6170
|
+
const activeIndexRef = React15.useRef(0);
|
|
6171
|
+
const optionRefs = React15.useRef([]);
|
|
5916
6172
|
const loadErrorMessage = t("composer.fileMentions.loadError");
|
|
5917
|
-
|
|
6173
|
+
React15.useEffect(() => {
|
|
5918
6174
|
if (!client || !projectId && !assistantId) {
|
|
5919
6175
|
setFiles([]);
|
|
5920
6176
|
setLoading(false);
|
|
@@ -5946,7 +6202,7 @@ var WorkspaceFileMentionPalette = React14.forwardRef(function WorkspaceFileMenti
|
|
|
5946
6202
|
return () => controller.abort();
|
|
5947
6203
|
}, [assistantId, client, loadErrorMessage, projectId]);
|
|
5948
6204
|
const normalizedQuery = query.trim().toLocaleLowerCase();
|
|
5949
|
-
const visibleFiles =
|
|
6205
|
+
const visibleFiles = React15.useMemo(
|
|
5950
6206
|
() => files.filter((file) => {
|
|
5951
6207
|
const filePath = getWorkspaceFilePath(file);
|
|
5952
6208
|
if (selectedFilePaths.has(filePath)) return false;
|
|
@@ -5955,17 +6211,17 @@ var WorkspaceFileMentionPalette = React14.forwardRef(function WorkspaceFileMenti
|
|
|
5955
6211
|
}),
|
|
5956
6212
|
[files, normalizedQuery, selectedFilePaths]
|
|
5957
6213
|
);
|
|
5958
|
-
|
|
6214
|
+
React15.useLayoutEffect(() => {
|
|
5959
6215
|
setActiveIndex((current) => {
|
|
5960
6216
|
const nextIndex = visibleFiles.length === 0 ? 0 : Math.min(current, visibleFiles.length - 1);
|
|
5961
6217
|
activeIndexRef.current = nextIndex;
|
|
5962
6218
|
return nextIndex;
|
|
5963
6219
|
});
|
|
5964
6220
|
}, [visibleFiles.length]);
|
|
5965
|
-
|
|
6221
|
+
React15.useEffect(() => {
|
|
5966
6222
|
optionRefs.current[activeIndex]?.scrollIntoView?.({ block: "nearest" });
|
|
5967
6223
|
}, [activeIndex]);
|
|
5968
|
-
|
|
6224
|
+
React15.useImperativeHandle(
|
|
5969
6225
|
ref,
|
|
5970
6226
|
() => ({
|
|
5971
6227
|
moveActive: (direction) => {
|
|
@@ -5984,7 +6240,7 @@ var WorkspaceFileMentionPalette = React14.forwardRef(function WorkspaceFileMenti
|
|
|
5984
6240
|
[onSelect, visibleFiles]
|
|
5985
6241
|
);
|
|
5986
6242
|
const unavailable = !client || !projectId && !assistantId;
|
|
5987
|
-
return /* @__PURE__ */
|
|
6243
|
+
return /* @__PURE__ */ jsxs8(
|
|
5988
6244
|
"div",
|
|
5989
6245
|
{
|
|
5990
6246
|
"data-slot": "workspace-file-mention-palette",
|
|
@@ -5993,20 +6249,20 @@ var WorkspaceFileMentionPalette = React14.forwardRef(function WorkspaceFileMenti
|
|
|
5993
6249
|
className
|
|
5994
6250
|
),
|
|
5995
6251
|
children: [
|
|
5996
|
-
/* @__PURE__ */
|
|
6252
|
+
/* @__PURE__ */ jsxs8("div", { className: "border-b border-border px-3 py-2 text-xs font-medium text-muted-foreground", children: [
|
|
5997
6253
|
t("composer.fileMentions.title"),
|
|
5998
|
-
query ? /* @__PURE__ */
|
|
6254
|
+
query ? /* @__PURE__ */ jsxs8("span", { className: "ml-1 text-foreground", children: [
|
|
5999
6255
|
"@",
|
|
6000
6256
|
query
|
|
6001
6257
|
] }) : null
|
|
6002
6258
|
] }),
|
|
6003
|
-
/* @__PURE__ */
|
|
6004
|
-
/* @__PURE__ */
|
|
6259
|
+
/* @__PURE__ */ jsx17("div", { className: "max-h-56 overflow-y-auto p-1", children: unavailable ? /* @__PURE__ */ jsx17(PaletteMessage, { children: t("composer.fileMentions.unavailable") }) : loading ? /* @__PURE__ */ jsxs8(PaletteMessage, { children: [
|
|
6260
|
+
/* @__PURE__ */ jsx17(Loader22, { className: "size-4 animate-spin" }),
|
|
6005
6261
|
t("composer.fileMentions.loading")
|
|
6006
|
-
] }) : error ? /* @__PURE__ */
|
|
6262
|
+
] }) : error ? /* @__PURE__ */ jsx17(PaletteMessage, { role: "alert", children: error }) : visibleFiles.length === 0 ? /* @__PURE__ */ jsx17(PaletteMessage, { children: t("composer.fileMentions.empty") }) : visibleFiles.map((file, index) => {
|
|
6007
6263
|
const filePath = getWorkspaceFilePath(file);
|
|
6008
6264
|
const label = file.filePath || filePath;
|
|
6009
|
-
return /* @__PURE__ */
|
|
6265
|
+
return /* @__PURE__ */ jsxs8(
|
|
6010
6266
|
"button",
|
|
6011
6267
|
{
|
|
6012
6268
|
ref: (node) => {
|
|
@@ -6027,10 +6283,10 @@ var WorkspaceFileMentionPalette = React14.forwardRef(function WorkspaceFileMenti
|
|
|
6027
6283
|
index === activeIndex && "bg-muted"
|
|
6028
6284
|
),
|
|
6029
6285
|
children: [
|
|
6030
|
-
/* @__PURE__ */
|
|
6031
|
-
/* @__PURE__ */
|
|
6032
|
-
/* @__PURE__ */
|
|
6033
|
-
filePath || file.mimeType ? /* @__PURE__ */
|
|
6286
|
+
/* @__PURE__ */ jsx17("span", { className: "flex size-8 shrink-0 items-center justify-center rounded-md bg-background text-muted-foreground", children: /* @__PURE__ */ jsx17(FileText2, { className: "size-4" }) }),
|
|
6287
|
+
/* @__PURE__ */ jsxs8("span", { className: "min-w-0 flex-1", children: [
|
|
6288
|
+
/* @__PURE__ */ jsx17("span", { className: "block truncate font-medium", children: label }),
|
|
6289
|
+
filePath || file.mimeType ? /* @__PURE__ */ jsx17("span", { className: "block truncate text-xs text-muted-foreground", children: filePath || file.mimeType }) : null
|
|
6034
6290
|
] })
|
|
6035
6291
|
]
|
|
6036
6292
|
},
|
|
@@ -6045,7 +6301,7 @@ function PaletteMessage({
|
|
|
6045
6301
|
children,
|
|
6046
6302
|
role
|
|
6047
6303
|
}) {
|
|
6048
|
-
return /* @__PURE__ */
|
|
6304
|
+
return /* @__PURE__ */ jsx17(
|
|
6049
6305
|
"div",
|
|
6050
6306
|
{
|
|
6051
6307
|
role,
|
|
@@ -6056,7 +6312,7 @@ function PaletteMessage({
|
|
|
6056
6312
|
}
|
|
6057
6313
|
|
|
6058
6314
|
// src/components/composer/ProjectSelector.tsx
|
|
6059
|
-
import * as
|
|
6315
|
+
import * as React17 from "react";
|
|
6060
6316
|
import {
|
|
6061
6317
|
Check as Check2,
|
|
6062
6318
|
ChevronDown as ChevronDown2,
|
|
@@ -6070,16 +6326,16 @@ import {
|
|
|
6070
6326
|
// src/components/ui/popover.tsx
|
|
6071
6327
|
import "react";
|
|
6072
6328
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
6073
|
-
import { jsx as
|
|
6329
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
6074
6330
|
function Popover({
|
|
6075
6331
|
...props
|
|
6076
6332
|
}) {
|
|
6077
|
-
return /* @__PURE__ */
|
|
6333
|
+
return /* @__PURE__ */ jsx18(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
|
|
6078
6334
|
}
|
|
6079
6335
|
function PopoverTrigger({
|
|
6080
6336
|
...props
|
|
6081
6337
|
}) {
|
|
6082
|
-
return /* @__PURE__ */
|
|
6338
|
+
return /* @__PURE__ */ jsx18(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
|
|
6083
6339
|
}
|
|
6084
6340
|
function PopoverContent({
|
|
6085
6341
|
className,
|
|
@@ -6087,7 +6343,7 @@ function PopoverContent({
|
|
|
6087
6343
|
sideOffset = 4,
|
|
6088
6344
|
...props
|
|
6089
6345
|
}) {
|
|
6090
|
-
return /* @__PURE__ */
|
|
6346
|
+
return /* @__PURE__ */ jsx18(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx18(
|
|
6091
6347
|
PopoverPrimitive.Content,
|
|
6092
6348
|
{
|
|
6093
6349
|
"data-slot": "popover-content",
|
|
@@ -6103,7 +6359,7 @@ function PopoverContent({
|
|
|
6103
6359
|
}
|
|
6104
6360
|
|
|
6105
6361
|
// src/components/composer/ProjectSelector.tsx
|
|
6106
|
-
import { Fragment, jsx as
|
|
6362
|
+
import { Fragment as Fragment2, jsx as jsx19, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
6107
6363
|
var PROJECT_PAGE_SIZE = 100;
|
|
6108
6364
|
async function listAllAvailableProjects(projectsClient, xpertId, signal) {
|
|
6109
6365
|
const projects = [];
|
|
@@ -6137,20 +6393,20 @@ function ProjectSelector({
|
|
|
6137
6393
|
}) {
|
|
6138
6394
|
const { t } = useChatkitTranslation();
|
|
6139
6395
|
const { theme } = useTheme();
|
|
6140
|
-
const [open, setOpen] =
|
|
6141
|
-
const [query, setQuery] =
|
|
6142
|
-
const [createMode, setCreateMode] =
|
|
6143
|
-
const [newProjectName, setNewProjectName] =
|
|
6144
|
-
const [projects, setProjects] =
|
|
6145
|
-
const [loadFailed, setLoadFailed] =
|
|
6146
|
-
const [loadedFor, setLoadedFor] =
|
|
6396
|
+
const [open, setOpen] = React17.useState(false);
|
|
6397
|
+
const [query, setQuery] = React17.useState("");
|
|
6398
|
+
const [createMode, setCreateMode] = React17.useState(false);
|
|
6399
|
+
const [newProjectName, setNewProjectName] = React17.useState("");
|
|
6400
|
+
const [projects, setProjects] = React17.useState([]);
|
|
6401
|
+
const [loadFailed, setLoadFailed] = React17.useState(false);
|
|
6402
|
+
const [loadedFor, setLoadedFor] = React17.useState(null);
|
|
6147
6403
|
const panelRoundedClass = getPanelRoundedClass(theme.radius);
|
|
6148
6404
|
const menuItemRoundedClass = getMenuItemRoundedClass(theme.radius);
|
|
6149
6405
|
const lockedProjectLabel = label?.trim();
|
|
6150
|
-
|
|
6406
|
+
React17.useEffect(() => {
|
|
6151
6407
|
if (disabled) setOpen(false);
|
|
6152
6408
|
}, [disabled]);
|
|
6153
|
-
|
|
6409
|
+
React17.useEffect(() => {
|
|
6154
6410
|
if (locked) {
|
|
6155
6411
|
setProjects([]);
|
|
6156
6412
|
setLoadFailed(false);
|
|
@@ -6190,12 +6446,12 @@ function ProjectSelector({
|
|
|
6190
6446
|
});
|
|
6191
6447
|
return () => controller.abort();
|
|
6192
6448
|
}, [client, locked, xpertId]);
|
|
6193
|
-
const activeProject =
|
|
6449
|
+
const activeProject = React17.useMemo(
|
|
6194
6450
|
() => projects.find((project) => project.id === activeProjectId) ?? null,
|
|
6195
6451
|
[activeProjectId, projects]
|
|
6196
6452
|
);
|
|
6197
6453
|
const normalizedQuery = query.trim().toLocaleLowerCase();
|
|
6198
|
-
const filteredProjects =
|
|
6454
|
+
const filteredProjects = React17.useMemo(
|
|
6199
6455
|
() => projects.filter((project) => {
|
|
6200
6456
|
if (!normalizedQuery) return true;
|
|
6201
6457
|
return project.name.toLocaleLowerCase().includes(normalizedQuery);
|
|
@@ -6205,24 +6461,24 @@ function ProjectSelector({
|
|
|
6205
6461
|
const hasAvailableProjects = locked ? Boolean(activeProjectId) : loadedFor?.client === client && loadedFor.xpertId === xpertId && !loadFailed && projects.length > 0;
|
|
6206
6462
|
const projectRailAvailable = hasAvailableProjects || Boolean(onProjectCreate);
|
|
6207
6463
|
const isLoadingProjects = !locked && Boolean(client && xpertId) && loadedFor === null && !loadFailed;
|
|
6208
|
-
|
|
6464
|
+
React17.useEffect(() => {
|
|
6209
6465
|
onAvailabilityChange?.(projectRailAvailable);
|
|
6210
6466
|
}, [onAvailabilityChange, projectRailAvailable]);
|
|
6211
6467
|
if (locked && activeProjectId) {
|
|
6212
|
-
return /* @__PURE__ */
|
|
6468
|
+
return /* @__PURE__ */ jsx19(
|
|
6213
6469
|
"div",
|
|
6214
6470
|
{
|
|
6215
6471
|
"data-slot": "composer-project-rail",
|
|
6216
6472
|
className: "flex h-10 min-w-0 items-center px-1",
|
|
6217
|
-
children: /* @__PURE__ */
|
|
6473
|
+
children: /* @__PURE__ */ jsxs9(
|
|
6218
6474
|
"div",
|
|
6219
6475
|
{
|
|
6220
6476
|
"data-slot": "composer-project-locked",
|
|
6221
6477
|
className: "inline-flex h-5 max-w-full items-center gap-1.5 rounded-sm px-2 text-sm text-muted-foreground",
|
|
6222
6478
|
title: lockedProjectLabel || activeProjectId,
|
|
6223
6479
|
children: [
|
|
6224
|
-
/* @__PURE__ */
|
|
6225
|
-
/* @__PURE__ */
|
|
6480
|
+
/* @__PURE__ */ jsx19(FolderLock, { className: "size-3.5 shrink-0" }),
|
|
6481
|
+
/* @__PURE__ */ jsx19("span", { className: "truncate", children: lockedProjectLabel || activeProjectId })
|
|
6226
6482
|
]
|
|
6227
6483
|
}
|
|
6228
6484
|
)
|
|
@@ -6230,12 +6486,12 @@ function ProjectSelector({
|
|
|
6230
6486
|
);
|
|
6231
6487
|
}
|
|
6232
6488
|
if (!projectRailAvailable) return null;
|
|
6233
|
-
return /* @__PURE__ */
|
|
6489
|
+
return /* @__PURE__ */ jsx19(
|
|
6234
6490
|
"div",
|
|
6235
6491
|
{
|
|
6236
6492
|
"data-slot": "composer-project-rail",
|
|
6237
6493
|
className: "flex h-10 min-w-0 items-center px-1",
|
|
6238
|
-
children: /* @__PURE__ */
|
|
6494
|
+
children: /* @__PURE__ */ jsxs9(
|
|
6239
6495
|
Popover,
|
|
6240
6496
|
{
|
|
6241
6497
|
open,
|
|
@@ -6248,7 +6504,7 @@ function ProjectSelector({
|
|
|
6248
6504
|
}
|
|
6249
6505
|
},
|
|
6250
6506
|
children: [
|
|
6251
|
-
/* @__PURE__ */
|
|
6507
|
+
/* @__PURE__ */ jsx19(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs9(
|
|
6252
6508
|
"button",
|
|
6253
6509
|
{
|
|
6254
6510
|
type: "button",
|
|
@@ -6256,13 +6512,13 @@ function ProjectSelector({
|
|
|
6256
6512
|
className: "inline-flex h-5 max-w-full items-center gap-1.5 rounded-sm px-2 text-sm text-muted-foreground outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
|
|
6257
6513
|
"aria-label": t("composer.projects.select"),
|
|
6258
6514
|
children: [
|
|
6259
|
-
/* @__PURE__ */
|
|
6260
|
-
/* @__PURE__ */
|
|
6261
|
-
/* @__PURE__ */
|
|
6515
|
+
/* @__PURE__ */ jsx19(Folder, { className: "size-3.5 shrink-0" }),
|
|
6516
|
+
/* @__PURE__ */ jsx19("span", { className: "truncate", children: activeProject?.name ?? t("composer.projects.select") }),
|
|
6517
|
+
/* @__PURE__ */ jsx19(ChevronDown2, { className: "size-3.5 shrink-0" })
|
|
6262
6518
|
]
|
|
6263
6519
|
}
|
|
6264
6520
|
) }),
|
|
6265
|
-
/* @__PURE__ */
|
|
6521
|
+
/* @__PURE__ */ jsx19(
|
|
6266
6522
|
PopoverContent,
|
|
6267
6523
|
{
|
|
6268
6524
|
side: "top",
|
|
@@ -6270,15 +6526,15 @@ function ProjectSelector({
|
|
|
6270
6526
|
sideOffset: 8,
|
|
6271
6527
|
collisionPadding: 8,
|
|
6272
6528
|
className: cn(
|
|
6273
|
-
"w-64 max-w-[calc(100vw-1rem)] overflow-hidden border-0 bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10",
|
|
6529
|
+
"flex max-h-(--radix-popover-content-available-height) w-64 max-w-[calc(100vw-1rem)] overflow-hidden border-0 bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10",
|
|
6274
6530
|
panelRoundedClass
|
|
6275
6531
|
),
|
|
6276
|
-
children: /* @__PURE__ */
|
|
6532
|
+
children: /* @__PURE__ */ jsx19(
|
|
6277
6533
|
"div",
|
|
6278
6534
|
{
|
|
6279
6535
|
"data-slot": "composer-project-command",
|
|
6280
|
-
className: "flex
|
|
6281
|
-
children: createMode ? /* @__PURE__ */
|
|
6536
|
+
className: "flex min-h-0 w-full flex-col overflow-hidden",
|
|
6537
|
+
children: createMode ? /* @__PURE__ */ jsxs9(
|
|
6282
6538
|
"form",
|
|
6283
6539
|
{
|
|
6284
6540
|
"data-slot": "composer-project-create-form",
|
|
@@ -6291,7 +6547,7 @@ function ProjectSelector({
|
|
|
6291
6547
|
setOpen(false);
|
|
6292
6548
|
},
|
|
6293
6549
|
children: [
|
|
6294
|
-
/* @__PURE__ */
|
|
6550
|
+
/* @__PURE__ */ jsx19(
|
|
6295
6551
|
Input,
|
|
6296
6552
|
{
|
|
6297
6553
|
autoFocus: true,
|
|
@@ -6306,8 +6562,8 @@ function ProjectSelector({
|
|
|
6306
6562
|
)
|
|
6307
6563
|
}
|
|
6308
6564
|
),
|
|
6309
|
-
/* @__PURE__ */
|
|
6310
|
-
/* @__PURE__ */
|
|
6565
|
+
/* @__PURE__ */ jsxs9("div", { className: "flex justify-end gap-2", children: [
|
|
6566
|
+
/* @__PURE__ */ jsx19(
|
|
6311
6567
|
"button",
|
|
6312
6568
|
{
|
|
6313
6569
|
type: "button",
|
|
@@ -6319,7 +6575,7 @@ function ProjectSelector({
|
|
|
6319
6575
|
children: t("composer.projects.cancel")
|
|
6320
6576
|
}
|
|
6321
6577
|
),
|
|
6322
|
-
/* @__PURE__ */
|
|
6578
|
+
/* @__PURE__ */ jsx19(
|
|
6323
6579
|
"button",
|
|
6324
6580
|
{
|
|
6325
6581
|
type: "submit",
|
|
@@ -6331,15 +6587,15 @@ function ProjectSelector({
|
|
|
6331
6587
|
] })
|
|
6332
6588
|
]
|
|
6333
6589
|
}
|
|
6334
|
-
) : /* @__PURE__ */
|
|
6335
|
-
/* @__PURE__ */
|
|
6590
|
+
) : /* @__PURE__ */ jsxs9(Fragment2, { children: [
|
|
6591
|
+
/* @__PURE__ */ jsxs9(
|
|
6336
6592
|
"div",
|
|
6337
6593
|
{
|
|
6338
6594
|
"data-slot": "composer-project-search",
|
|
6339
|
-
className: "relative mb-2",
|
|
6595
|
+
className: "relative mb-2 shrink-0",
|
|
6340
6596
|
children: [
|
|
6341
|
-
/* @__PURE__ */
|
|
6342
|
-
/* @__PURE__ */
|
|
6597
|
+
/* @__PURE__ */ jsx19(Search3, { className: "pointer-events-none absolute left-3 top-1/2 z-10 size-4 -translate-y-1/2 text-muted-foreground" }),
|
|
6598
|
+
/* @__PURE__ */ jsx19(
|
|
6343
6599
|
Input,
|
|
6344
6600
|
{
|
|
6345
6601
|
autoFocus: true,
|
|
@@ -6355,70 +6611,77 @@ function ProjectSelector({
|
|
|
6355
6611
|
]
|
|
6356
6612
|
}
|
|
6357
6613
|
),
|
|
6358
|
-
/* @__PURE__ */
|
|
6614
|
+
/* @__PURE__ */ jsx19(
|
|
6359
6615
|
"div",
|
|
6360
6616
|
{
|
|
6361
|
-
"data-slot": "composer-project-
|
|
6362
|
-
className: "
|
|
6363
|
-
children:
|
|
6364
|
-
|
|
6365
|
-
|
|
6366
|
-
|
|
6367
|
-
|
|
6368
|
-
|
|
6369
|
-
|
|
6370
|
-
"
|
|
6371
|
-
|
|
6372
|
-
|
|
6373
|
-
|
|
6374
|
-
|
|
6375
|
-
|
|
6376
|
-
|
|
6377
|
-
|
|
6378
|
-
|
|
6379
|
-
|
|
6380
|
-
|
|
6381
|
-
|
|
6382
|
-
|
|
6383
|
-
|
|
6384
|
-
|
|
6385
|
-
|
|
6386
|
-
|
|
6387
|
-
type: "button",
|
|
6388
|
-
"data-slot": "composer-project-item",
|
|
6389
|
-
className: cn(
|
|
6390
|
-
"relative flex w-full cursor-default select-none items-center gap-3 px-1.5 py-1.5 text-left text-base outline-none hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground",
|
|
6391
|
-
menuItemRoundedClass,
|
|
6392
|
-
project.id === activeProjectId && "bg-accent text-accent-foreground"
|
|
6393
|
-
),
|
|
6394
|
-
onClick: () => {
|
|
6395
|
-
if (disabled) return;
|
|
6396
|
-
if (project.id !== activeProjectId) {
|
|
6397
|
-
onProjectChange?.(project.id);
|
|
6617
|
+
"data-slot": "composer-project-scroll-region",
|
|
6618
|
+
className: "min-h-0 flex-1 max-h-75 overflow-y-auto overscroll-contain",
|
|
6619
|
+
children: /* @__PURE__ */ jsxs9(
|
|
6620
|
+
"div",
|
|
6621
|
+
{
|
|
6622
|
+
"data-slot": "composer-project-list",
|
|
6623
|
+
className: "flex flex-col",
|
|
6624
|
+
children: [
|
|
6625
|
+
activeProjectId && !normalizedQuery ? /* @__PURE__ */ jsxs9(
|
|
6626
|
+
"button",
|
|
6627
|
+
{
|
|
6628
|
+
type: "button",
|
|
6629
|
+
"data-slot": "composer-project-clear",
|
|
6630
|
+
className: cn(
|
|
6631
|
+
"relative flex w-full cursor-default select-none items-center gap-3 px-1.5 py-1.5 text-left text-base outline-none hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground",
|
|
6632
|
+
menuItemRoundedClass
|
|
6633
|
+
),
|
|
6634
|
+
onClick: () => {
|
|
6635
|
+
if (disabled) return;
|
|
6636
|
+
onProjectChange?.(null);
|
|
6637
|
+
setOpen(false);
|
|
6638
|
+
},
|
|
6639
|
+
children: [
|
|
6640
|
+
/* @__PURE__ */ jsx19(FolderX, { className: "size-5 shrink-0 text-muted-foreground" }),
|
|
6641
|
+
/* @__PURE__ */ jsx19("span", { className: "min-w-0 flex-1 truncate font-normal", children: t("composer.projects.none") })
|
|
6642
|
+
]
|
|
6398
6643
|
}
|
|
6399
|
-
|
|
6400
|
-
},
|
|
6401
|
-
|
|
6402
|
-
|
|
6403
|
-
|
|
6404
|
-
|
|
6405
|
-
|
|
6406
|
-
|
|
6407
|
-
|
|
6408
|
-
|
|
6409
|
-
|
|
6644
|
+
) : null,
|
|
6645
|
+
isLoadingProjects ? /* @__PURE__ */ jsx19(ProjectMessage, { children: t("composer.projects.loading") }) : loadFailed ? /* @__PURE__ */ jsx19(ProjectMessage, { children: t("composer.projects.loadError") }) : filteredProjects.length === 0 ? /* @__PURE__ */ jsx19(ProjectMessage, { children: t("composer.projects.empty") }) : filteredProjects.map((project) => /* @__PURE__ */ jsxs9(
|
|
6646
|
+
"button",
|
|
6647
|
+
{
|
|
6648
|
+
type: "button",
|
|
6649
|
+
"data-slot": "composer-project-item",
|
|
6650
|
+
className: cn(
|
|
6651
|
+
"relative flex w-full cursor-default select-none items-center gap-3 px-1.5 py-1.5 text-left text-base outline-none hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground",
|
|
6652
|
+
menuItemRoundedClass,
|
|
6653
|
+
project.id === activeProjectId && "bg-accent text-accent-foreground"
|
|
6654
|
+
),
|
|
6655
|
+
onClick: () => {
|
|
6656
|
+
if (disabled) return;
|
|
6657
|
+
if (project.id !== activeProjectId) {
|
|
6658
|
+
onProjectChange?.(project.id);
|
|
6659
|
+
}
|
|
6660
|
+
setOpen(false);
|
|
6661
|
+
},
|
|
6662
|
+
children: [
|
|
6663
|
+
/* @__PURE__ */ jsx19(Folder, { className: "size-5 shrink-0 text-muted-foreground" }),
|
|
6664
|
+
/* @__PURE__ */ jsx19("span", { className: "min-w-0 flex-1 truncate font-normal", children: project.name }),
|
|
6665
|
+
project.id === activeProjectId ? /* @__PURE__ */ jsx19(Check2, { className: "size-4 shrink-0" }) : null
|
|
6666
|
+
]
|
|
6667
|
+
},
|
|
6668
|
+
project.id
|
|
6669
|
+
))
|
|
6670
|
+
]
|
|
6671
|
+
}
|
|
6672
|
+
)
|
|
6410
6673
|
}
|
|
6411
|
-
)
|
|
6412
|
-
onProjectCreate ? /* @__PURE__ */
|
|
6674
|
+
),
|
|
6675
|
+
onProjectCreate ? /* @__PURE__ */ jsxs9(
|
|
6413
6676
|
"button",
|
|
6414
6677
|
{
|
|
6415
6678
|
type: "button",
|
|
6416
6679
|
"data-slot": "composer-project-create",
|
|
6417
|
-
className: "mt-1 flex w-full items-center gap-3 border-t border-border px-1.5 py-1.5 text-left text-sm font-normal outline-none hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground",
|
|
6680
|
+
className: "mt-1 flex w-full shrink-0 items-center gap-3 border-t border-border px-1.5 py-1.5 text-left text-sm font-normal outline-none hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground",
|
|
6418
6681
|
onClick: () => setCreateMode(true),
|
|
6419
6682
|
children: [
|
|
6420
|
-
/* @__PURE__ */
|
|
6421
|
-
/* @__PURE__ */
|
|
6683
|
+
/* @__PURE__ */ jsx19(Plus2, { className: "size-4 shrink-0" }),
|
|
6684
|
+
/* @__PURE__ */ jsx19("span", { children: t("composer.projects.new") })
|
|
6422
6685
|
]
|
|
6423
6686
|
}
|
|
6424
6687
|
) : null
|
|
@@ -6434,77 +6697,11 @@ function ProjectSelector({
|
|
|
6434
6697
|
);
|
|
6435
6698
|
}
|
|
6436
6699
|
function ProjectMessage({ children }) {
|
|
6437
|
-
return /* @__PURE__ */
|
|
6700
|
+
return /* @__PURE__ */ jsx19("div", { className: "flex min-h-24 items-center justify-center px-4 text-center text-sm text-muted-foreground", children });
|
|
6438
6701
|
}
|
|
6439
6702
|
|
|
6440
6703
|
// src/components/composer/SendButton.tsx
|
|
6441
6704
|
import { ArrowUp, Square } from "lucide-react";
|
|
6442
|
-
|
|
6443
|
-
// src/components/ui/tooltip.tsx
|
|
6444
|
-
import "react";
|
|
6445
|
-
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
6446
|
-
import { jsx as jsx19, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
6447
|
-
function TooltipProvider({
|
|
6448
|
-
delayDuration = 0,
|
|
6449
|
-
...props
|
|
6450
|
-
}) {
|
|
6451
|
-
return /* @__PURE__ */ jsx19(
|
|
6452
|
-
TooltipPrimitive.Provider,
|
|
6453
|
-
{
|
|
6454
|
-
"data-slot": "tooltip-provider",
|
|
6455
|
-
delayDuration,
|
|
6456
|
-
...props
|
|
6457
|
-
}
|
|
6458
|
-
);
|
|
6459
|
-
}
|
|
6460
|
-
function Tooltip({
|
|
6461
|
-
...props
|
|
6462
|
-
}) {
|
|
6463
|
-
return /* @__PURE__ */ jsx19(TooltipProvider, { children: /* @__PURE__ */ jsx19(
|
|
6464
|
-
TooltipPrimitive.Root,
|
|
6465
|
-
{
|
|
6466
|
-
"data-slot": "tooltip",
|
|
6467
|
-
...props
|
|
6468
|
-
}
|
|
6469
|
-
) });
|
|
6470
|
-
}
|
|
6471
|
-
function TooltipTrigger({
|
|
6472
|
-
...props
|
|
6473
|
-
}) {
|
|
6474
|
-
return /* @__PURE__ */ jsx19(
|
|
6475
|
-
TooltipPrimitive.Trigger,
|
|
6476
|
-
{
|
|
6477
|
-
"data-slot": "tooltip-trigger",
|
|
6478
|
-
...props
|
|
6479
|
-
}
|
|
6480
|
-
);
|
|
6481
|
-
}
|
|
6482
|
-
function TooltipContent({
|
|
6483
|
-
className,
|
|
6484
|
-
sideOffset = 0,
|
|
6485
|
-
hideArrow = false,
|
|
6486
|
-
children,
|
|
6487
|
-
...props
|
|
6488
|
-
}) {
|
|
6489
|
-
return /* @__PURE__ */ jsx19(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs9(
|
|
6490
|
-
TooltipPrimitive.Content,
|
|
6491
|
-
{
|
|
6492
|
-
"data-slot": "tooltip-content",
|
|
6493
|
-
sideOffset,
|
|
6494
|
-
className: cn(
|
|
6495
|
-
"bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit rounded-md px-3 py-1.5 text-xs text-balance",
|
|
6496
|
-
className
|
|
6497
|
-
),
|
|
6498
|
-
...props,
|
|
6499
|
-
children: [
|
|
6500
|
-
children,
|
|
6501
|
-
!hideArrow ? /* @__PURE__ */ jsx19(TooltipPrimitive.Arrow, { className: "bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" }) : null
|
|
6502
|
-
]
|
|
6503
|
-
}
|
|
6504
|
-
) });
|
|
6505
|
-
}
|
|
6506
|
-
|
|
6507
|
-
// src/components/composer/SendButton.tsx
|
|
6508
6705
|
import { jsx as jsx20, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
6509
6706
|
function SendButton({
|
|
6510
6707
|
disabled = false,
|
|
@@ -7037,7 +7234,7 @@ import * as React21 from "react";
|
|
|
7037
7234
|
import {
|
|
7038
7235
|
CornerDownLeft,
|
|
7039
7236
|
Ellipsis,
|
|
7040
|
-
Info,
|
|
7237
|
+
Info as Info2,
|
|
7041
7238
|
PencilLine,
|
|
7042
7239
|
Trash2 as Trash22
|
|
7043
7240
|
} from "lucide-react";
|
|
@@ -7228,7 +7425,7 @@ function PendingFollowUps({
|
|
|
7228
7425
|
] })
|
|
7229
7426
|
] }),
|
|
7230
7427
|
/* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-1.5 text-[10px] leading-4 text-muted-foreground", children: [
|
|
7231
|
-
/* @__PURE__ */ jsx24(
|
|
7428
|
+
/* @__PURE__ */ jsx24(Info2, { className: "h-3 w-3 shrink-0" }),
|
|
7232
7429
|
/* @__PURE__ */ jsx24("span", { className: "truncate", children: item.mode === "queue" ? canSendItemNow ? t("chat.followUps.manualQueueHint") : t("chat.followUps.queueHint") : t("chat.followUps.steerHint") })
|
|
7233
7430
|
] })
|
|
7234
7431
|
] })
|
|
@@ -8458,7 +8655,7 @@ import {
|
|
|
8458
8655
|
ChevronLeft as ChevronLeft2,
|
|
8459
8656
|
ChevronRight as ChevronRight5,
|
|
8460
8657
|
CornerDownLeft as CornerDownLeft3,
|
|
8461
|
-
Info as
|
|
8658
|
+
Info as Info3
|
|
8462
8659
|
} from "lucide-react";
|
|
8463
8660
|
import { jsx as jsx29, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
8464
8661
|
var emptyQuestions = [];
|
|
@@ -8955,7 +9152,7 @@ function RequestUserInputPanel({
|
|
|
8955
9152
|
"aria-label": t("composer.requestUserInput.optionInfo", {
|
|
8956
9153
|
label: parsedLabel.label
|
|
8957
9154
|
}),
|
|
8958
|
-
children: /* @__PURE__ */ jsx29(
|
|
9155
|
+
children: /* @__PURE__ */ jsx29(Info3, { className: "h-3.5 w-3.5" })
|
|
8959
9156
|
}
|
|
8960
9157
|
) }),
|
|
8961
9158
|
/* @__PURE__ */ jsx29(
|
|
@@ -9301,7 +9498,7 @@ function useConversationSummaryEvent({
|
|
|
9301
9498
|
// src/components/chat/attachments.tsx
|
|
9302
9499
|
import * as React28 from "react";
|
|
9303
9500
|
import { FileText as FileText3, Loader2 as Loader24, RefreshCw as RefreshCw2, X as X5 } from "lucide-react";
|
|
9304
|
-
import { Fragment as
|
|
9501
|
+
import { Fragment as Fragment4, jsx as jsx30, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
9305
9502
|
var ACTIVE_PARSE_STATUSES = /* @__PURE__ */ new Set([
|
|
9306
9503
|
"uploaded",
|
|
9307
9504
|
"scanning",
|
|
@@ -9611,7 +9808,7 @@ var ChatAttachments = React28.forwardRef(function ChatAttachments2({
|
|
|
9611
9808
|
}
|
|
9612
9809
|
);
|
|
9613
9810
|
}
|
|
9614
|
-
return /* @__PURE__ */ jsxs20(
|
|
9811
|
+
return /* @__PURE__ */ jsxs20(Fragment4, { children: [
|
|
9615
9812
|
/* @__PURE__ */ jsx30(
|
|
9616
9813
|
"input",
|
|
9617
9814
|
{
|
|
@@ -11468,7 +11665,7 @@ var TooltipIconButton = forwardRef11(({ children, tooltip, side = "bottom", clas
|
|
|
11468
11665
|
TooltipIconButton.displayName = "TooltipIconButton";
|
|
11469
11666
|
|
|
11470
11667
|
// src/components/thread/mermaid-block.tsx
|
|
11471
|
-
import { Fragment as
|
|
11668
|
+
import { Fragment as Fragment5, jsx as jsx38, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
11472
11669
|
var HEX_COLOR_PATTERN = /^#([\da-f]{3,8})$/i;
|
|
11473
11670
|
var MERMAID_DIRECTIVE_PATTERN = /%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi;
|
|
11474
11671
|
var MERMAID_FRONTMATTER_PATTERN = /^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s;
|
|
@@ -11840,7 +12037,7 @@ function MermaidBlock({ code }) {
|
|
|
11840
12037
|
}, [clearCopyResetTimeout, code, isCopied]);
|
|
11841
12038
|
const hasRenderedDiagram = svgMarkup !== null && !renderError;
|
|
11842
12039
|
const statusMessage = isRendering ? t("markdown.mermaid.rendering") : t("markdown.mermaid.failed");
|
|
11843
|
-
return /* @__PURE__ */ jsxs23(
|
|
12040
|
+
return /* @__PURE__ */ jsxs23(Fragment5, { children: [
|
|
11844
12041
|
/* @__PURE__ */ jsx38(
|
|
11845
12042
|
Tabs,
|
|
11846
12043
|
{
|
|
@@ -11958,7 +12155,7 @@ function MermaidBlock({ code }) {
|
|
|
11958
12155
|
|
|
11959
12156
|
// src/components/thread/markdown-text.tsx
|
|
11960
12157
|
import "katex/dist/katex.min.css";
|
|
11961
|
-
import { Fragment as
|
|
12158
|
+
import { Fragment as Fragment6, jsx as jsx39, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
11962
12159
|
var markdownTableMinWidth = "max(7rem, calc(8rem * var(--density-spacing, 1)))";
|
|
11963
12160
|
var markdownTableCellPaddingInline = "calc(var(--density-padding, 1rem) * 1.25)";
|
|
11964
12161
|
var markdownTableCellPaddingBlock = "max(0.5rem, calc(var(--density-padding, 1rem) * 0.75))";
|
|
@@ -12446,7 +12643,7 @@ var defaultComponents = {
|
|
|
12446
12643
|
...stripMarkdownNode(props)
|
|
12447
12644
|
}
|
|
12448
12645
|
),
|
|
12449
|
-
pre: ({ className, children }) => Children.toArray(children).length === 1 && (isMermaidBlockChild(Children.toArray(children)[0]) || isMermaidCodeElement(Children.toArray(children)[0])) ? /* @__PURE__ */ jsx39(
|
|
12646
|
+
pre: ({ className, children }) => Children.toArray(children).length === 1 && (isMermaidBlockChild(Children.toArray(children)[0]) || isMermaidCodeElement(Children.toArray(children)[0])) ? /* @__PURE__ */ jsx39(Fragment6, { children }) : /* @__PURE__ */ jsx39(
|
|
12450
12647
|
"div",
|
|
12451
12648
|
{
|
|
12452
12649
|
className: cn(
|
|
@@ -12471,7 +12668,7 @@ var defaultComponents = {
|
|
|
12471
12668
|
if (language === "mermaid") {
|
|
12472
12669
|
return /* @__PURE__ */ jsx39(MermaidBlock, { code: normalizedCode });
|
|
12473
12670
|
}
|
|
12474
|
-
return /* @__PURE__ */ jsxs24(
|
|
12671
|
+
return /* @__PURE__ */ jsxs24(Fragment6, { children: [
|
|
12475
12672
|
/* @__PURE__ */ jsx39(CodeHeader, { language, code: normalizedCode }),
|
|
12476
12673
|
/* @__PURE__ */ jsx39(SyntaxHighlighter, { language, className, children: normalizedCode })
|
|
12477
12674
|
] });
|
|
@@ -12523,13 +12720,13 @@ import {
|
|
|
12523
12720
|
ChevronRight as ChevronRight6,
|
|
12524
12721
|
Clock3,
|
|
12525
12722
|
GitBranch,
|
|
12526
|
-
Info as
|
|
12723
|
+
Info as Info4,
|
|
12527
12724
|
Loader2 as Loader26,
|
|
12528
12725
|
MessageSquareText,
|
|
12529
12726
|
Wrench,
|
|
12530
12727
|
XCircle
|
|
12531
12728
|
} from "lucide-react";
|
|
12532
|
-
import { Fragment as
|
|
12729
|
+
import { Fragment as Fragment7, jsx as jsx40, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
12533
12730
|
function safeJson2(value) {
|
|
12534
12731
|
try {
|
|
12535
12732
|
return JSON.stringify(value, null, 2);
|
|
@@ -12613,7 +12810,7 @@ function MiddlewareEventRow({ content }) {
|
|
|
12613
12810
|
}
|
|
12614
12811
|
),
|
|
12615
12812
|
/* @__PURE__ */ jsx40("span", { className: "min-w-0 truncate font-medium", children: label }),
|
|
12616
|
-
detail ? /* @__PURE__ */ jsxs25(
|
|
12813
|
+
detail ? /* @__PURE__ */ jsxs25(Fragment7, { children: [
|
|
12617
12814
|
/* @__PURE__ */ jsx40("span", { className: "text-muted-foreground/50", children: "\xB7" }),
|
|
12618
12815
|
/* @__PURE__ */ jsx40("span", { className: "min-w-0 truncate", children: detail })
|
|
12619
12816
|
] }) : null
|
|
@@ -12730,7 +12927,7 @@ function AgentEventRow({ content }) {
|
|
|
12730
12927
|
isError ? "bg-destructive/10 text-destructive" : "bg-muted/40 text-muted-foreground"
|
|
12731
12928
|
),
|
|
12732
12929
|
children: [
|
|
12733
|
-
/* @__PURE__ */ jsx40(
|
|
12930
|
+
/* @__PURE__ */ jsx40(Info4, { className: "mt-0.5 h-3.5 w-3.5 shrink-0" }),
|
|
12734
12931
|
/* @__PURE__ */ jsxs25("div", { className: "min-w-0 flex-1", children: [
|
|
12735
12932
|
/* @__PURE__ */ jsx40("div", { className: "truncate font-medium", children: label }),
|
|
12736
12933
|
detail ? /* @__PURE__ */ jsx40("div", { className: "wrap-break-word", children: detail }) : null,
|
|
@@ -12807,7 +13004,7 @@ function AgentRunGroup({
|
|
|
12807
13004
|
)
|
|
12808
13005
|
} : null,
|
|
12809
13006
|
counts.events > 0 ? {
|
|
12810
|
-
icon:
|
|
13007
|
+
icon: Info4,
|
|
12811
13008
|
count: counts.events,
|
|
12812
13009
|
label: t(
|
|
12813
13010
|
`message.agentRun.counts.events.${counts.events === 1 ? "one" : "other"}`,
|
|
@@ -13928,7 +14125,7 @@ function ToolOutputAttachments({
|
|
|
13928
14125
|
}
|
|
13929
14126
|
|
|
13930
14127
|
// src/components/thread/messages/tool-component-group.tsx
|
|
13931
|
-
import { Fragment as
|
|
14128
|
+
import { Fragment as Fragment8, jsx as jsx46, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
13932
14129
|
var toolStatusConfig = {
|
|
13933
14130
|
success: {
|
|
13934
14131
|
iconClass: "border-green-500 text-green-700",
|
|
@@ -14570,7 +14767,7 @@ function ToolCallDetails({ content }) {
|
|
|
14570
14767
|
return /* @__PURE__ */ jsxs31("div", { className: "ml-6 mt-1 max-h-60 overflow-auto rounded-md bg-muted/30 px-3 py-2 text-xs text-muted-foreground", children: [
|
|
14571
14768
|
hasInput && /* @__PURE__ */ jsxs31("div", { className: "space-y-1", children: [
|
|
14572
14769
|
/* @__PURE__ */ jsxs31("div", { className: "flex min-w-0 items-baseline gap-1 text-[11px] font-medium text-muted-foreground", children: [
|
|
14573
|
-
toolName ? /* @__PURE__ */ jsxs31(
|
|
14770
|
+
toolName ? /* @__PURE__ */ jsxs31(Fragment8, { children: [
|
|
14574
14771
|
/* @__PURE__ */ jsx46("span", { className: "min-w-0 break-all font-mono text-foreground/80", children: toolName }),
|
|
14575
14772
|
/* @__PURE__ */ jsx46("span", { "aria-hidden": "true", children: "\xB7" })
|
|
14576
14773
|
] }) : null,
|
|
@@ -15466,7 +15663,7 @@ function clickDownload(uri, filename) {
|
|
|
15466
15663
|
}
|
|
15467
15664
|
|
|
15468
15665
|
// src/components/thread/messages/mcp-app.tsx
|
|
15469
|
-
import { Fragment as
|
|
15666
|
+
import { Fragment as Fragment9, jsx as jsx49, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
15470
15667
|
var EMPTY_INPUT_SCHEMA = {
|
|
15471
15668
|
type: "object",
|
|
15472
15669
|
properties: {}
|
|
@@ -16827,7 +17024,7 @@ function McpAppMessage({
|
|
|
16827
17024
|
if (isTornDown) {
|
|
16828
17025
|
return null;
|
|
16829
17026
|
}
|
|
16830
|
-
return /* @__PURE__ */ jsxs33(
|
|
17027
|
+
return /* @__PURE__ */ jsxs33(Fragment9, { children: [
|
|
16831
17028
|
displayMode === "fullscreen" ? /* @__PURE__ */ jsx49(
|
|
16832
17029
|
"div",
|
|
16833
17030
|
{
|
|
@@ -21118,7 +21315,7 @@ function formatElapsed(value) {
|
|
|
21118
21315
|
}
|
|
21119
21316
|
|
|
21120
21317
|
// src/components/chat.tsx
|
|
21121
|
-
import { Fragment as
|
|
21318
|
+
import { Fragment as Fragment12, jsx as jsx65, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
21122
21319
|
var defaultApiUrl2 = import.meta.env.VITE_XPERTAI_API_URL;
|
|
21123
21320
|
var COMPOSER_INPUT_MAX_HEIGHT = 128;
|
|
21124
21321
|
var LONG_TEXT_REFERENCE_THRESHOLD = 5e3;
|
|
@@ -23695,7 +23892,7 @@ function Chat({
|
|
|
23695
23892
|
) }) }),
|
|
23696
23893
|
/* @__PURE__ */ jsx65(TooltipContent, { side: "bottom", children: t("settings.open") })
|
|
23697
23894
|
] }),
|
|
23698
|
-
history?.enabled !== false && /* @__PURE__ */ jsxs46(
|
|
23895
|
+
history?.enabled !== false && /* @__PURE__ */ jsxs46(Fragment12, { children: [
|
|
23699
23896
|
/* @__PURE__ */ jsxs46(Tooltip, { children: [
|
|
23700
23897
|
/* @__PURE__ */ jsx65(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx65("span", { className: "inline-flex h-8 w-8", children: /* @__PURE__ */ jsx65(
|
|
23701
23898
|
"button",
|
|
@@ -23879,7 +24076,7 @@ function Chat({
|
|
|
23879
24076
|
pet: effectivePet,
|
|
23880
24077
|
mcpApps: options?.mcpApps
|
|
23881
24078
|
}
|
|
23882
|
-
) : /* @__PURE__ */ jsxs46(
|
|
24079
|
+
) : /* @__PURE__ */ jsxs46(Fragment12, { children: [
|
|
23883
24080
|
message.type === "human" && humanRuntimeCapabilityOptions.length > 0 && /* @__PURE__ */ jsx65(
|
|
23884
24081
|
HumanRuntimeCapabilityChips,
|
|
23885
24082
|
{
|
|
@@ -23965,22 +24162,6 @@ function Chat({
|
|
|
23965
24162
|
]
|
|
23966
24163
|
}
|
|
23967
24164
|
),
|
|
23968
|
-
!isAtBottom && messages.length > 0 && /* @__PURE__ */ jsx65("div", { className: "sticky bottom-20 z-20 flex justify-center px-4 pointer-events-none", children: /* @__PURE__ */ jsx65(
|
|
23969
|
-
Button,
|
|
23970
|
-
{
|
|
23971
|
-
type: "button",
|
|
23972
|
-
size: "icon-sm",
|
|
23973
|
-
variant: hasUpdatesBelow ? "default" : "outline",
|
|
23974
|
-
className: cn(
|
|
23975
|
-
"pointer-events-auto rounded-full shadow-md dark:border-white/20 dark:ring-1 dark:ring-white/15 dark:shadow-[0_0_0_1px_rgba(255,255,255,0.06),0_10px_30px_rgba(0,0,0,0.45)]",
|
|
23976
|
-
hasUpdatesBelow && "animate-bounce"
|
|
23977
|
-
),
|
|
23978
|
-
onClick: () => scrollToBottom(true, true),
|
|
23979
|
-
"aria-label": t("chat.scrollToBottom"),
|
|
23980
|
-
title: t("chat.scrollToBottom"),
|
|
23981
|
-
children: /* @__PURE__ */ jsx65(ArrowDown2, { size: 16 })
|
|
23982
|
-
}
|
|
23983
|
-
) }),
|
|
23984
24165
|
quoteSelection && /* @__PURE__ */ jsxs46(
|
|
23985
24166
|
"div",
|
|
23986
24167
|
{
|
|
@@ -24043,6 +24224,29 @@ function Chat({
|
|
|
24043
24224
|
),
|
|
24044
24225
|
style: chatColumnStyle,
|
|
24045
24226
|
children: [
|
|
24227
|
+
!isAtBottom && messages.length > 0 && /* @__PURE__ */ jsx65(
|
|
24228
|
+
"div",
|
|
24229
|
+
{
|
|
24230
|
+
"data-slot": "scroll-to-bottom",
|
|
24231
|
+
className: "pointer-events-none absolute left-1/2 top-0 z-20 flex -translate-x-1/2 -translate-y-full justify-center",
|
|
24232
|
+
children: /* @__PURE__ */ jsx65(
|
|
24233
|
+
Button,
|
|
24234
|
+
{
|
|
24235
|
+
type: "button",
|
|
24236
|
+
size: "icon-sm",
|
|
24237
|
+
variant: hasUpdatesBelow ? "default" : "outline",
|
|
24238
|
+
className: cn(
|
|
24239
|
+
"pointer-events-auto rounded-full shadow-md dark:border-white/20 dark:ring-1 dark:ring-white/15 dark:shadow-[0_0_0_1px_rgba(255,255,255,0.06),0_10px_30px_rgba(0,0,0,0.45)]",
|
|
24240
|
+
hasUpdatesBelow && "animate-bounce"
|
|
24241
|
+
),
|
|
24242
|
+
onClick: () => scrollToBottom(true, true),
|
|
24243
|
+
"aria-label": t("chat.scrollToBottom"),
|
|
24244
|
+
title: t("chat.scrollToBottom"),
|
|
24245
|
+
children: /* @__PURE__ */ jsx65(ArrowDown2, { size: 16 })
|
|
24246
|
+
}
|
|
24247
|
+
)
|
|
24248
|
+
}
|
|
24249
|
+
),
|
|
24046
24250
|
threadErrorMessage && /* @__PURE__ */ jsx65("div", { className: "mb-3 rounded-lg border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive overflow-auto", children: threadErrorMessage }),
|
|
24047
24251
|
/* @__PURE__ */ jsx65(
|
|
24048
24252
|
ChatAttachments,
|