@marimo-team/frontend 0.23.11-dev26 → 0.23.11-dev28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/dist/assets/{CellStatus-C52PsPYN.js → CellStatus-DG0T7bhO.js} +1 -1
  2. package/dist/assets/{ImperativeModal-CEtvKaPt.js → ImperativeModal-Da0ki2vE.js} +1 -1
  3. package/dist/assets/{JsonOutput-e5KwGs-t.js → JsonOutput-DlWKYXMe.js} +1 -1
  4. package/dist/assets/{LazyAnyLanguageCodeMirror-Cjh82vPC.js → LazyAnyLanguageCodeMirror-BzyBEXmN.js} +2 -2
  5. package/dist/assets/{MarimoErrorOutput-tWmQZh0O.js → MarimoErrorOutput-s6Xzn9tI.js} +1 -1
  6. package/dist/assets/{RSPContexts-DGcE_dt-.js → RSPContexts-CXtxUQv0.js} +1 -1
  7. package/dist/assets/{RenderHTML-CdzAncjW.js → RenderHTML-CpnOdUFq.js} +1 -1
  8. package/dist/assets/{RunButton-D1RSmpE5.js → RunButton-CzYEYNMZ.js} +1 -1
  9. package/dist/assets/{add-cell-with-ai-r88BQwnl.js → add-cell-with-ai-DDmDEBpR.js} +1 -1
  10. package/dist/assets/{add-connection-dialog-BqArtkaF.js → add-connection-dialog-JJXymrap.js} +1 -1
  11. package/dist/assets/{agent-panel-BFnSCM0u.js → agent-panel-EqJ4dU-o.js} +1 -1
  12. package/dist/assets/{ai-model-dropdown-CKfMxi81.js → ai-model-dropdown-B85JK7Bd.js} +1 -1
  13. package/dist/assets/{any-language-editor-BR8fqP2S.js → any-language-editor-wjCa9vg4.js} +1 -1
  14. package/dist/assets/{app-config-button-DgAKqCJQ.js → app-config-button-DiMYoaj_.js} +1 -1
  15. package/dist/assets/{cache-panel-BojhFrT4.js → cache-panel-DBDBad7n.js} +1 -1
  16. package/dist/assets/{cell-editor-vk3YgY2w.js → cell-editor-CWqkcdu3.js} +1 -1
  17. package/dist/assets/{cell-link-BBWAKZ--.js → cell-link-pz786Lch.js} +1 -1
  18. package/dist/assets/{cells-D3EcEVTz.js → cells-B7nz4LNo.js} +1 -1
  19. package/dist/assets/chat-display-DvmXfrjc.js +1 -0
  20. package/dist/assets/chat-panel-BKRoCuOx.js +3 -0
  21. package/dist/assets/{chat-ui-LkKFatRU.js → chat-ui-Cn47YAI0.js} +4 -4
  22. package/dist/assets/{column-preview-93mkKGs1.js → column-preview-DojzlcWG.js} +1 -1
  23. package/dist/assets/{command-Dzjey1r-.js → command-hJoUrc2W.js} +1 -1
  24. package/dist/assets/{command-palette-BIVH2C6k.js → command-palette-aogPQAVJ.js} +1 -1
  25. package/dist/assets/{common-Dc5W1wzl.js → common-snHJqSm6.js} +1 -1
  26. package/dist/assets/{components-CdfRUEBW.js → components-DkwTLclO.js} +1 -1
  27. package/dist/assets/{copy-icon-C8Cq0-V0.js → copy-icon-BFMtxrRP.js} +1 -1
  28. package/dist/assets/{datasource-BtJgopUR.js → datasource-D1L4FCps.js} +1 -1
  29. package/dist/assets/{dependency-graph-panel-TQ0py-Kw.js → dependency-graph-panel-BU50Zzq7.js} +1 -1
  30. package/dist/assets/{documentation-panel-LHZLKLAd.js → documentation-panel-BoOEY1b9.js} +1 -1
  31. package/dist/assets/{download-CYrhtDVp.js → download-D4lN2MwZ.js} +1 -1
  32. package/dist/assets/{edit-page-CdXZP-AI.js → edit-page--VXTezSw.js} +4 -4
  33. package/dist/assets/{error-panel-CxcsWY8O.js → error-panel-CAP9Dd3X.js} +1 -1
  34. package/dist/assets/{field-DIHN6mSK.js → field-CDo_rvhD.js} +1 -1
  35. package/dist/assets/{file-explorer-panel-Ix3_ncoS.js → file-explorer-panel-CRHak8Uc.js} +1 -1
  36. package/dist/assets/{file-icons-CM-BO4Tc.js → file-icons-BAedxhF8.js} +1 -1
  37. package/dist/assets/{file-name-input-JcnL59-O.js → file-name-input-C4QhsTrc.js} +1 -1
  38. package/dist/assets/{floating-outline-DRRP5I8p.js → floating-outline-CbZinm9T.js} +1 -1
  39. package/dist/assets/{focus-EuWjxeHB.js → focus-BZmaIt_1.js} +1 -1
  40. package/dist/assets/{form-BAAziqSH.js → form-BDERMNxH.js} +1 -1
  41. package/dist/assets/{gallery-page-BhgvTlLQ.js → gallery-page-CTs73lBw.js} +1 -1
  42. package/dist/assets/{glide-data-editor-CfPYm5Mc.js → glide-data-editor-DYfHd9aY.js} +1 -1
  43. package/dist/assets/{home-page-CV0Wger5.js → home-page-C6oKXYUU.js} +1 -1
  44. package/dist/assets/{hooks-CA6IH5Ny.js → hooks-Cbnt6qlO.js} +1 -1
  45. package/dist/assets/{html-to-image-BMbVLGQG.js → html-to-image-C4EfBRTz.js} +1 -1
  46. package/dist/assets/{index-DUE0RSxW.js → index-B0jzDeio.js} +3 -3
  47. package/dist/assets/{kiosk-mode-CHJ9OWcf.js → kiosk-mode-Ccj0LcCU.js} +1 -1
  48. package/dist/assets/{layout-Cpt95A_u.js → layout-Di7Q7AGl.js} +3 -3
  49. package/dist/assets/{logs-panel-DqMjHSxY.js → logs-panel-CHHx-jst.js} +1 -1
  50. package/dist/assets/{markdown-renderer-Ctc_BAzL.js → markdown-renderer-qOz3nDtd.js} +1 -1
  51. package/dist/assets/{name-cell-input-BUA6sZsk.js → name-cell-input-CQjKlesS.js} +1 -1
  52. package/dist/assets/{outline-panel-BTxBvW3K.js → outline-panel-CXXWnE52.js} +1 -1
  53. package/dist/assets/{packages-panel-CH6Jiyqt.js → packages-panel-BCgvituR.js} +1 -1
  54. package/dist/assets/{pair-with-agent-modal-CuwM9PX2.js → pair-with-agent-modal-BqOdnjR7.js} +1 -1
  55. package/dist/assets/{panels-C8IhLmTn.js → panels-BRu9rFtP.js} +1 -1
  56. package/dist/assets/{process-output-BD4gjuXh.js → process-output-VB_qPayj.js} +1 -1
  57. package/dist/assets/{radio-group-D-Tbwbga.js → radio-group-mrUpeS-s.js} +1 -1
  58. package/dist/assets/{readonly-python-code-CD37Ktr_.js → readonly-python-code-BcwZXLSu.js} +1 -1
  59. package/dist/assets/{request-registry-D6yN7WH-.js → request-registry-unC7eRnq.js} +1 -1
  60. package/dist/assets/{reveal-component-BaXkFbob.js → reveal-component-CCRpEni9.js} +1 -1
  61. package/dist/assets/{run-page-N0uXBlRc.js → run-page-CBEWg7PP.js} +1 -1
  62. package/dist/assets/{scratchpad-panel-B5qpYDCP.js → scratchpad-panel-DsnwQ3Z_.js} +1 -1
  63. package/dist/assets/{secrets-panel-DW36Nxci.js → secrets-panel-89_YFhgS.js} +1 -1
  64. package/dist/assets/{session-panel-BQbOiXTu.js → session-panel-t9agY1hh.js} +1 -1
  65. package/dist/assets/{snippets-panel-ngIQdZN-.js → snippets-panel-BdQrDQG8.js} +1 -1
  66. package/dist/assets/{state-a26U8Amw.js → state-B37Pwlpy.js} +1 -1
  67. package/dist/assets/{state-XBSJaDlj.js → state-CKbrzJT-.js} +1 -1
  68. package/dist/assets/{state-lfBdh7UT.js → state-ClRPM6Rk.js} +1 -1
  69. package/dist/assets/{terminal-zt3j3xY6.js → terminal-DlRITrt2.js} +1 -1
  70. package/dist/assets/{textarea-CIkM9ejr.js → textarea-BWLmfOrN.js} +1 -1
  71. package/dist/assets/{tracing-CvzDXfBi.js → tracing-BaCufmIv.js} +1 -1
  72. package/dist/assets/{tracing-panel-BSIiB4nQ.js → tracing-panel-DeB3GQ77.js} +2 -2
  73. package/dist/assets/{tree-actions-DOImIbet.js → tree-actions-fO1R5Ud_.js} +1 -1
  74. package/dist/assets/{useCellActionButton-D_GS6qfF.js → useCellActionButton-DfYBCG8b.js} +1 -1
  75. package/dist/assets/{useDeleteCell-R0cnbneF.js → useDeleteCell-BL1sT2ei.js} +1 -1
  76. package/dist/assets/{useDependencyPanelTab-1hFXraYl.js → useDependencyPanelTab-BpMHNBAO.js} +1 -1
  77. package/dist/assets/{useNotebookActions-CIfVqZq5.js → useNotebookActions-BX_dD3ya.js} +1 -1
  78. package/dist/assets/{useRunCells-DnS-CoD3.js → useRunCells-D-GyPuRn.js} +1 -1
  79. package/dist/assets/{useSplitCell-BZ8UVfk6.js → useSplitCell-DkyEaJF7.js} +1 -1
  80. package/dist/assets/{write-secret-modal-DONzgyYh.js → write-secret-modal-BEsGwBC8.js} +1 -1
  81. package/dist/index.html +47 -47
  82. package/package.json +1 -1
  83. package/src/components/chat/chat-display.tsx +5 -0
  84. package/src/components/chat/chat-panel.tsx +4 -0
  85. package/src/components/chat/tool-call/tool-call-view.tsx +4 -0
  86. package/src/components/chat/tool-call/tool-history-row.tsx +26 -5
  87. package/src/plugins/impl/chat/chat-ui.tsx +1 -0
  88. package/dist/assets/chat-display-C9WoxE6U.js +0 -1
  89. package/dist/assets/chat-panel-CFM1k9PV.js +0 -3
  90. /package/dist/assets/{DeferredRequestRegistry-CiquRdvU.js → DeferredRequestRegistry-EP9ZArpv.js} +0 -0
  91. /package/dist/assets/{clipboard-paste-Bvk41HSX.js → clipboard-paste-CXof_R04.js} +0 -0
  92. /package/dist/assets/{code-xml-CaRdRiek.js → code-xml-tqeFGeKJ.js} +0 -0
  93. /package/dist/assets/{copy-CFO636Td.js → copy-C6tO3NDV.js} +0 -0
  94. /package/dist/assets/{database-zap-CO_HxsuW.js → database-zap-DpKMaYZb.js} +0 -0
  95. /package/dist/assets/{ellipsis-iqVcpkRT.js → ellipsis-DesLDR9w.js} +0 -0
  96. /package/dist/assets/{external-link-mfK38Tpg.js → external-link-CRubBjqK.js} +0 -0
  97. /package/dist/assets/{eye-off-6RDlHoCz.js → eye-off-CFdFJ5Ma.js} +0 -0
  98. /package/dist/assets/{file-ZPWSptQF.js → file-CLyu7PSP.js} +0 -0
  99. /package/dist/assets/{file-headphone-D2bGq0xX.js → file-headphone-CY5S3y3b.js} +0 -0
  100. /package/dist/assets/{github-BZsqHbeC.js → github-CqonmEC7.js} +0 -0
  101. /package/dist/assets/{house-DTijHETb.js → house-DkdBWh44.js} +0 -0
  102. /package/dist/assets/{image-CzV694oU.js → image-jhXeQEgs.js} +0 -0
  103. /package/dist/assets/{input-DiAad2nt.js → input-BpT1_NFw.js} +0 -0
  104. /package/dist/assets/{link-D215MpkN.js → link-My4Pey3q.js} +0 -0
  105. /package/dist/assets/{message-circle-DzPHfj35.js → message-circle-D_YIPPZo.js} +0 -0
  106. /package/dist/assets/{package-Cxwiscky.js → package-BoMcg6sy.js} +0 -0
  107. /package/dist/assets/{plus-Dvg5FyTi.js → plus-CExKUszm.js} +0 -0
  108. /package/dist/assets/{refresh-ccw-AYso5mC6.js → refresh-ccw-CUkO1Vlo.js} +0 -0
  109. /package/dist/assets/{refresh-cw-hZ_ibJIl.js → refresh-cw-DcEasnos.js} +0 -0
  110. /package/dist/assets/{rotate-ccw-ChZ6LXqX.js → rotate-ccw-CBXqO1Fd.js} +0 -0
  111. /package/dist/assets/{save-BtZpvX_3.js → save-CGxzAyve.js} +0 -0
  112. /package/dist/assets/{settings-CP-IXCzQ.js → settings-Cn43l_vx.js} +0 -0
  113. /package/dist/assets/{spinner-BlJOg2gb.js → spinner-DTBVbtl-.js} +0 -0
  114. /package/dist/assets/{types-D9gLS68B.js → types-xF5uWODg.js} +0 -0
  115. /package/dist/assets/{youtube-DER9xpF0.js → youtube-B8SvzIo0.js} +0 -0
@@ -1 +1 @@
1
- import{s as V}from"./chunk-LvLJmgfZ.js";import{t as B}from"./react-Bj1aDYRI.js";import{t as G}from"./compiler-runtime-B3qBwwSJ.js";import{t as H}from"./jsx-runtime-PbYoItBR.js";import{c as I,i as J,n as O,s as Q,t as U}from"./select-sS-2VQvj.js";import{t as P}from"./label-BbRibkug.js";import{t as W}from"./button-Db07tdz7.js";import{r as X}from"./requests-KshNNAOp.js";import{r as D}from"./input-DiAad2nt.js";import{t as E}from"./use-toast-BH8bU9Xf.js";import{a as Z,c as $,i as ee,n as te,r as re}from"./dialog-CNmqslzW.js";import{t as ae}from"./links-DK7te6sJ.js";import{r as L}from"./field-DIHN6mSK.js";var oe=G(),T=V(B(),1),t=V(H(),1);function ne(a){return a.toSorted((e,r)=>e.provider==="env"?1:r.provider==="env"?-1:0)}const le=a=>{let e=(0,oe.c)(43),{providerNames:r,onClose:A,onSuccess:F}=a,{writeSecret:Y}=X(),[o,M]=T.useState(""),[l,R]=T.useState(""),[n,z]=T.useState(r[0]),g;e[0]!==o||e[1]!==n||e[2]!==F||e[3]!==l||e[4]!==Y?(g=async i=>{if(i.preventDefault(),!n){E({title:"Error",description:"No location selected for the secret.",variant:"danger"});return}if(!o||!l||!n){E({title:"Error",description:"Please fill in all fields.",variant:"danger"});return}try{await Y({key:o,value:l,provider:"dotenv",name:n}),E({title:"Secret created",description:"The secret has been created successfully."}),F(o)}catch{E({title:"Error",description:"Failed to create secret. Please try again.",variant:"danger"})}},e[0]=o,e[1]=n,e[2]=F,e[3]=l,e[4]=Y,e[5]=g):g=e[5];let q=g,j;e[6]===Symbol.for("react.memo_cache_sentinel")?(j=(0,t.jsxs)(Z,{children:[(0,t.jsx)($,{children:"Add Secret"}),(0,t.jsx)(re,{children:"Add a new secret to your environment variables."})]}),e[6]=j):j=e[6];let y;e[7]===Symbol.for("react.memo_cache_sentinel")?(y=(0,t.jsx)(P,{htmlFor:"key",children:"Key"}),e[7]=y):y=e[7];let S;e[8]===Symbol.for("react.memo_cache_sentinel")?(S=i=>{M(ie(i.target.value))},e[8]=S):S=e[8];let s;e[9]===o?s=e[10]:(s=(0,t.jsxs)("div",{className:"grid gap-2",children:[y,(0,t.jsx)(D,{id:"key",value:o,onChange:S,placeholder:"MY_SECRET_KEY",required:!0})]}),e[9]=o,e[10]=s);let _;e[11]===Symbol.for("react.memo_cache_sentinel")?(_=(0,t.jsx)(P,{htmlFor:"value",children:"Value"}),e[11]=_):_=e[11];let b;e[12]===Symbol.for("react.memo_cache_sentinel")?(b=i=>R(i.target.value),e[12]=b):b=e[12];let c;e[13]===l?c=e[14]:(c=(0,t.jsx)(D,{id:"value",type:"password",value:l,onChange:b,required:!0,autoComplete:"off"}),e[13]=l,e[14]=c);let C;e[15]===Symbol.for("react.memo_cache_sentinel")?(C=se()&&(0,t.jsx)(L,{children:"Note: You are sending this key over http."}),e[15]=C):C=e[15];let d;e[16]===c?d=e[17]:(d=(0,t.jsxs)("div",{className:"grid gap-2",children:[_,c,C]}),e[16]=c,e[17]=d);let N;e[18]===Symbol.for("react.memo_cache_sentinel")?(N=(0,t.jsx)(P,{htmlFor:"location",children:"Location"}),e[18]=N):N=e[18];let m;e[19]===r.length?m=e[20]:(m=r.length===0&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"No dotenv locations configured."}),e[19]=r.length,e[20]=m);let h;e[21]!==n||e[22]!==r?(h=r.length>0&&(0,t.jsxs)(U,{value:n,onValueChange:i=>z(i),children:[(0,t.jsx)(Q,{children:(0,t.jsx)(I,{placeholder:"Select a provider"})}),(0,t.jsx)(O,{children:r.map(ce)})]}),e[21]=n,e[22]=r,e[23]=h):h=e[23];let k;e[24]===Symbol.for("react.memo_cache_sentinel")?(k=(0,t.jsxs)(L,{children:["You can configure the location by setting the"," ",(0,t.jsx)(ae,{href:"https://links.marimo.app/dotenv",children:"dotenv configuration"}),"."]}),e[24]=k):k=e[24];let p;e[25]!==m||e[26]!==h?(p=(0,t.jsxs)("div",{className:"grid gap-2",children:[N,m,h,k]}),e[25]=m,e[26]=h,e[27]=p):p=e[27];let u;e[28]!==d||e[29]!==p||e[30]!==s?(u=(0,t.jsxs)("div",{className:"grid gap-4 py-4",children:[s,d,p]}),e[28]=d,e[29]=p,e[30]=s,e[31]=u):u=e[31];let f;e[32]===A?f=e[33]:(f=(0,t.jsx)(W,{type:"button",variant:"outline",onClick:A,children:"Cancel"}),e[32]=A,e[33]=f);let K=!o||!l||!n,v;e[34]===K?v=e[35]:(v=(0,t.jsx)(W,{type:"submit",disabled:K,children:"Add Secret"}),e[34]=K,e[35]=v);let x;e[36]!==f||e[37]!==v?(x=(0,t.jsxs)(ee,{children:[f,v]}),e[36]=f,e[37]=v,e[38]=x):x=e[38];let w;return e[39]!==q||e[40]!==u||e[41]!==x?(w=(0,t.jsx)(te,{children:(0,t.jsxs)("form",{onSubmit:q,children:[j,u,x]})}),e[39]=q,e[40]=u,e[41]=x,e[42]=w):w=e[42],w};function ie(a){return a.replaceAll(/\W/g,"_")}function se(){return window.location.href.startsWith("http://")}function ce(a){return(0,t.jsx)(J,{value:a,children:a},a)}export{ne as n,le as t};
1
+ import{s as V}from"./chunk-LvLJmgfZ.js";import{t as B}from"./react-Bj1aDYRI.js";import{t as G}from"./compiler-runtime-B3qBwwSJ.js";import{t as H}from"./jsx-runtime-PbYoItBR.js";import{c as I,i as J,n as O,s as Q,t as U}from"./select-sS-2VQvj.js";import{t as P}from"./label-BbRibkug.js";import{t as W}from"./button-Db07tdz7.js";import{r as X}from"./requests-KshNNAOp.js";import{r as D}from"./input-BpT1_NFw.js";import{t as E}from"./use-toast-BH8bU9Xf.js";import{a as Z,c as $,i as ee,n as te,r as re}from"./dialog-CNmqslzW.js";import{t as ae}from"./links-DK7te6sJ.js";import{r as L}from"./field-CDo_rvhD.js";var oe=G(),T=V(B(),1),t=V(H(),1);function ne(a){return a.toSorted((e,r)=>e.provider==="env"?1:r.provider==="env"?-1:0)}const le=a=>{let e=(0,oe.c)(43),{providerNames:r,onClose:A,onSuccess:F}=a,{writeSecret:Y}=X(),[o,M]=T.useState(""),[l,R]=T.useState(""),[n,z]=T.useState(r[0]),g;e[0]!==o||e[1]!==n||e[2]!==F||e[3]!==l||e[4]!==Y?(g=async i=>{if(i.preventDefault(),!n){E({title:"Error",description:"No location selected for the secret.",variant:"danger"});return}if(!o||!l||!n){E({title:"Error",description:"Please fill in all fields.",variant:"danger"});return}try{await Y({key:o,value:l,provider:"dotenv",name:n}),E({title:"Secret created",description:"The secret has been created successfully."}),F(o)}catch{E({title:"Error",description:"Failed to create secret. Please try again.",variant:"danger"})}},e[0]=o,e[1]=n,e[2]=F,e[3]=l,e[4]=Y,e[5]=g):g=e[5];let q=g,j;e[6]===Symbol.for("react.memo_cache_sentinel")?(j=(0,t.jsxs)(Z,{children:[(0,t.jsx)($,{children:"Add Secret"}),(0,t.jsx)(re,{children:"Add a new secret to your environment variables."})]}),e[6]=j):j=e[6];let y;e[7]===Symbol.for("react.memo_cache_sentinel")?(y=(0,t.jsx)(P,{htmlFor:"key",children:"Key"}),e[7]=y):y=e[7];let S;e[8]===Symbol.for("react.memo_cache_sentinel")?(S=i=>{M(ie(i.target.value))},e[8]=S):S=e[8];let s;e[9]===o?s=e[10]:(s=(0,t.jsxs)("div",{className:"grid gap-2",children:[y,(0,t.jsx)(D,{id:"key",value:o,onChange:S,placeholder:"MY_SECRET_KEY",required:!0})]}),e[9]=o,e[10]=s);let _;e[11]===Symbol.for("react.memo_cache_sentinel")?(_=(0,t.jsx)(P,{htmlFor:"value",children:"Value"}),e[11]=_):_=e[11];let b;e[12]===Symbol.for("react.memo_cache_sentinel")?(b=i=>R(i.target.value),e[12]=b):b=e[12];let c;e[13]===l?c=e[14]:(c=(0,t.jsx)(D,{id:"value",type:"password",value:l,onChange:b,required:!0,autoComplete:"off"}),e[13]=l,e[14]=c);let C;e[15]===Symbol.for("react.memo_cache_sentinel")?(C=se()&&(0,t.jsx)(L,{children:"Note: You are sending this key over http."}),e[15]=C):C=e[15];let d;e[16]===c?d=e[17]:(d=(0,t.jsxs)("div",{className:"grid gap-2",children:[_,c,C]}),e[16]=c,e[17]=d);let N;e[18]===Symbol.for("react.memo_cache_sentinel")?(N=(0,t.jsx)(P,{htmlFor:"location",children:"Location"}),e[18]=N):N=e[18];let m;e[19]===r.length?m=e[20]:(m=r.length===0&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"No dotenv locations configured."}),e[19]=r.length,e[20]=m);let h;e[21]!==n||e[22]!==r?(h=r.length>0&&(0,t.jsxs)(U,{value:n,onValueChange:i=>z(i),children:[(0,t.jsx)(Q,{children:(0,t.jsx)(I,{placeholder:"Select a provider"})}),(0,t.jsx)(O,{children:r.map(ce)})]}),e[21]=n,e[22]=r,e[23]=h):h=e[23];let k;e[24]===Symbol.for("react.memo_cache_sentinel")?(k=(0,t.jsxs)(L,{children:["You can configure the location by setting the"," ",(0,t.jsx)(ae,{href:"https://links.marimo.app/dotenv",children:"dotenv configuration"}),"."]}),e[24]=k):k=e[24];let p;e[25]!==m||e[26]!==h?(p=(0,t.jsxs)("div",{className:"grid gap-2",children:[N,m,h,k]}),e[25]=m,e[26]=h,e[27]=p):p=e[27];let u;e[28]!==d||e[29]!==p||e[30]!==s?(u=(0,t.jsxs)("div",{className:"grid gap-4 py-4",children:[s,d,p]}),e[28]=d,e[29]=p,e[30]=s,e[31]=u):u=e[31];let f;e[32]===A?f=e[33]:(f=(0,t.jsx)(W,{type:"button",variant:"outline",onClick:A,children:"Cancel"}),e[32]=A,e[33]=f);let K=!o||!l||!n,v;e[34]===K?v=e[35]:(v=(0,t.jsx)(W,{type:"submit",disabled:K,children:"Add Secret"}),e[34]=K,e[35]=v);let x;e[36]!==f||e[37]!==v?(x=(0,t.jsxs)(ee,{children:[f,v]}),e[36]=f,e[37]=v,e[38]=x):x=e[38];let w;return e[39]!==q||e[40]!==u||e[41]!==x?(w=(0,t.jsx)(te,{children:(0,t.jsxs)("form",{onSubmit:q,children:[j,u,x]})}),e[39]=q,e[40]=u,e[41]=x,e[42]=w):w=e[42],w};function ie(a){return a.replaceAll(/\W/g,"_")}function se(){return window.location.href.startsWith("http://")}function ce(a){return(0,t.jsx)(J,{value:a,children:a},a)}export{ne as n,le as t};
package/dist/index.html CHANGED
@@ -66,7 +66,7 @@
66
66
  <marimo-server-token data-token="{{ server_token }}" hidden></marimo-server-token>
67
67
  <!-- /TODO -->
68
68
  <title>{{ title }}</title>
69
- <script type="module" crossorigin src="./assets/index-DUE0RSxW.js"></script>
69
+ <script type="module" crossorigin src="./assets/index-B0jzDeio.js"></script>
70
70
  <link rel="modulepreload" crossorigin href="./assets/preload-helper-y72bE5iF.js">
71
71
  <link rel="modulepreload" crossorigin href="./assets/chunk-LvLJmgfZ.js">
72
72
  <link rel="modulepreload" crossorigin href="./assets/react-Bj1aDYRI.js">
@@ -101,7 +101,7 @@
101
101
  <link rel="modulepreload" crossorigin href="./assets/utils-BGFUZat2.js">
102
102
  <link rel="modulepreload" crossorigin href="./assets/Deferred-CfyqLOPG.js">
103
103
  <link rel="modulepreload" crossorigin href="./assets/uuid-BukULOeS.js">
104
- <link rel="modulepreload" crossorigin href="./assets/DeferredRequestRegistry-CiquRdvU.js">
104
+ <link rel="modulepreload" crossorigin href="./assets/DeferredRequestRegistry-EP9ZArpv.js">
105
105
  <link rel="modulepreload" crossorigin href="./assets/constants-B9JJ72XE.js">
106
106
  <link rel="modulepreload" crossorigin href="./assets/session-DF0gSADo.js">
107
107
  <link rel="modulepreload" crossorigin href="./assets/config-B00Uc1a3.js">
@@ -131,9 +131,9 @@
131
131
  <link rel="modulepreload" crossorigin href="./assets/isSymbol-BT6B8Bon.js">
132
132
  <link rel="modulepreload" crossorigin href="./assets/now-CsYTPAhW.js">
133
133
  <link rel="modulepreload" crossorigin href="./assets/debounce-OiXznToA.js">
134
- <link rel="modulepreload" crossorigin href="./assets/database-zap-CO_HxsuW.js">
134
+ <link rel="modulepreload" crossorigin href="./assets/database-zap-DpKMaYZb.js">
135
135
  <link rel="modulepreload" crossorigin href="./assets/main-DmhaVp6Y.js">
136
- <link rel="modulepreload" crossorigin href="./assets/cells-D3EcEVTz.js">
136
+ <link rel="modulepreload" crossorigin href="./assets/cells-B7nz4LNo.js">
137
137
  <link rel="modulepreload" crossorigin href="./assets/ErrorBoundary-clTdAaK7.js">
138
138
  <link rel="modulepreload" crossorigin href="./assets/kbd-BCXa3Ocm.js">
139
139
  <link rel="modulepreload" crossorigin href="./assets/useInstallPackage-BaCdyZWe.js">
@@ -145,40 +145,40 @@
145
145
  <link rel="modulepreload" crossorigin href="./assets/context-DE_5rdOV.js">
146
146
  <link rel="modulepreload" crossorigin href="./assets/useNumberFormatter-DCM-63YT.js">
147
147
  <link rel="modulepreload" crossorigin href="./assets/usePress-mjvipKvz.js">
148
- <link rel="modulepreload" crossorigin href="./assets/input-DiAad2nt.js">
149
- <link rel="modulepreload" crossorigin href="./assets/ImperativeModal-CEtvKaPt.js">
150
- <link rel="modulepreload" crossorigin href="./assets/cell-link-BBWAKZ--.js">
148
+ <link rel="modulepreload" crossorigin href="./assets/input-BpT1_NFw.js">
149
+ <link rel="modulepreload" crossorigin href="./assets/ImperativeModal-Da0ki2vE.js">
150
+ <link rel="modulepreload" crossorigin href="./assets/cell-link-pz786Lch.js">
151
151
  <link rel="modulepreload" crossorigin href="./assets/multi-map-DDbeVHF9.js">
152
152
  <link rel="modulepreload" crossorigin href="./assets/alert-DcAz54bD.js">
153
153
  <link rel="modulepreload" crossorigin href="./assets/chevron-right-C7RH0Nc7.js">
154
154
  <link rel="modulepreload" crossorigin href="./assets/dropdown-menu-BYGDVBcE.js">
155
155
  <link rel="modulepreload" crossorigin href="./assets/links-DK7te6sJ.js">
156
- <link rel="modulepreload" crossorigin href="./assets/useRunCells-DnS-CoD3.js">
156
+ <link rel="modulepreload" crossorigin href="./assets/useRunCells-D-GyPuRn.js">
157
157
  <link rel="modulepreload" crossorigin href="./assets/copy-DlC1PYY-.js">
158
- <link rel="modulepreload" crossorigin href="./assets/copy-CFO636Td.js">
159
- <link rel="modulepreload" crossorigin href="./assets/copy-icon-C8Cq0-V0.js">
160
- <link rel="modulepreload" crossorigin href="./assets/RenderHTML-CdzAncjW.js">
161
- <link rel="modulepreload" crossorigin href="./assets/datasource-BtJgopUR.js">
162
- <link rel="modulepreload" crossorigin href="./assets/state-a26U8Amw.js">
163
- <link rel="modulepreload" crossorigin href="./assets/package-Cxwiscky.js">
158
+ <link rel="modulepreload" crossorigin href="./assets/copy-C6tO3NDV.js">
159
+ <link rel="modulepreload" crossorigin href="./assets/copy-icon-BFMtxrRP.js">
160
+ <link rel="modulepreload" crossorigin href="./assets/RenderHTML-CpnOdUFq.js">
161
+ <link rel="modulepreload" crossorigin href="./assets/datasource-D1L4FCps.js">
162
+ <link rel="modulepreload" crossorigin href="./assets/state-B37Pwlpy.js">
163
+ <link rel="modulepreload" crossorigin href="./assets/package-BoMcg6sy.js">
164
164
  <link rel="modulepreload" crossorigin href="./assets/sparkles-DctOjjEz.js">
165
- <link rel="modulepreload" crossorigin href="./assets/MarimoErrorOutput-tWmQZh0O.js">
166
- <link rel="modulepreload" crossorigin href="./assets/eye-off-6RDlHoCz.js">
167
- <link rel="modulepreload" crossorigin href="./assets/refresh-cw-hZ_ibJIl.js">
168
- <link rel="modulepreload" crossorigin href="./assets/tree-actions-DOImIbet.js">
169
- <link rel="modulepreload" crossorigin href="./assets/spinner-BlJOg2gb.js">
170
- <link rel="modulepreload" crossorigin href="./assets/html-to-image-BMbVLGQG.js">
171
- <link rel="modulepreload" crossorigin href="./assets/focus-EuWjxeHB.js">
165
+ <link rel="modulepreload" crossorigin href="./assets/MarimoErrorOutput-s6Xzn9tI.js">
166
+ <link rel="modulepreload" crossorigin href="./assets/eye-off-CFdFJ5Ma.js">
167
+ <link rel="modulepreload" crossorigin href="./assets/refresh-cw-DcEasnos.js">
168
+ <link rel="modulepreload" crossorigin href="./assets/tree-actions-fO1R5Ud_.js">
169
+ <link rel="modulepreload" crossorigin href="./assets/spinner-DTBVbtl-.js">
170
+ <link rel="modulepreload" crossorigin href="./assets/html-to-image-C4EfBRTz.js">
171
+ <link rel="modulepreload" crossorigin href="./assets/focus-BZmaIt_1.js">
172
172
  <link rel="modulepreload" crossorigin href="./assets/useAsyncData-CT1LpOBD.js">
173
- <link rel="modulepreload" crossorigin href="./assets/LazyAnyLanguageCodeMirror-Cjh82vPC.js">
173
+ <link rel="modulepreload" crossorigin href="./assets/LazyAnyLanguageCodeMirror-BzyBEXmN.js">
174
174
  <link rel="modulepreload" crossorigin href="./assets/micromark-factory-space-P--XWZhg.js">
175
175
  <link rel="modulepreload" crossorigin href="./assets/chunk-5FQGJX7Z-D-AUn5sP.js">
176
- <link rel="modulepreload" crossorigin href="./assets/markdown-renderer-Ctc_BAzL.js">
177
- <link rel="modulepreload" crossorigin href="./assets/command-Dzjey1r-.js">
178
- <link rel="modulepreload" crossorigin href="./assets/field-DIHN6mSK.js">
176
+ <link rel="modulepreload" crossorigin href="./assets/markdown-renderer-qOz3nDtd.js">
177
+ <link rel="modulepreload" crossorigin href="./assets/command-hJoUrc2W.js">
178
+ <link rel="modulepreload" crossorigin href="./assets/field-CDo_rvhD.js">
179
179
  <link rel="modulepreload" crossorigin href="./assets/popover-D1IutFqN.js">
180
180
  <link rel="modulepreload" crossorigin href="./assets/errors-48KFPvCp.js">
181
- <link rel="modulepreload" crossorigin href="./assets/download-CYrhtDVp.js">
181
+ <link rel="modulepreload" crossorigin href="./assets/download-D4lN2MwZ.js">
182
182
  <link rel="modulepreload" crossorigin href="./assets/table-BEAxH5RS.js">
183
183
  <link rel="modulepreload" crossorigin href="./assets/useIframeCapabilities-CJXRJK5V.js">
184
184
  <link rel="modulepreload" crossorigin href="./assets/error-banner-B4PMmgPV.js">
@@ -190,29 +190,29 @@
190
190
  <link rel="modulepreload" crossorigin href="./assets/emotion-is-prop-valid.esm-DiQGBfwj.js">
191
191
  <link rel="modulepreload" crossorigin href="./assets/useDateFormatter-CANi6nSX.js">
192
192
  <link rel="modulepreload" crossorigin href="./assets/react-icons.esm-C2u-_EAQ.js">
193
- <link rel="modulepreload" crossorigin href="./assets/RSPContexts-DGcE_dt-.js">
193
+ <link rel="modulepreload" crossorigin href="./assets/RSPContexts-CXtxUQv0.js">
194
194
  <link rel="modulepreload" crossorigin href="./assets/table-DxdydCSG.js">
195
- <link rel="modulepreload" crossorigin href="./assets/ellipsis-iqVcpkRT.js">
196
- <link rel="modulepreload" crossorigin href="./assets/external-link-mfK38Tpg.js">
197
- <link rel="modulepreload" crossorigin href="./assets/message-circle-DzPHfj35.js">
198
- <link rel="modulepreload" crossorigin href="./assets/plus-Dvg5FyTi.js">
195
+ <link rel="modulepreload" crossorigin href="./assets/ellipsis-DesLDR9w.js">
196
+ <link rel="modulepreload" crossorigin href="./assets/external-link-CRubBjqK.js">
197
+ <link rel="modulepreload" crossorigin href="./assets/message-circle-D_YIPPZo.js">
198
+ <link rel="modulepreload" crossorigin href="./assets/plus-CExKUszm.js">
199
199
  <link rel="modulepreload" crossorigin href="./assets/trash-2-CjPoUZCP.js">
200
200
  <link rel="modulepreload" crossorigin href="./assets/react-resizable-panels.browser.esm-CgWOEYeG.js">
201
- <link rel="modulepreload" crossorigin href="./assets/JsonOutput-e5KwGs-t.js">
201
+ <link rel="modulepreload" crossorigin href="./assets/JsonOutput-DlWKYXMe.js">
202
202
  <link rel="modulepreload" crossorigin href="./assets/chart-no-axes-column-DVEV2j1H.js">
203
203
  <link rel="modulepreload" crossorigin href="./assets/square-function-CPbVtjKW.js">
204
204
  <link rel="modulepreload" crossorigin href="./assets/spec-RgR7OB72.js">
205
- <link rel="modulepreload" crossorigin href="./assets/column-preview-93mkKGs1.js">
205
+ <link rel="modulepreload" crossorigin href="./assets/column-preview-DojzlcWG.js">
206
206
  <link rel="modulepreload" crossorigin href="./assets/icons-D3YFXNmD.js">
207
- <link rel="modulepreload" crossorigin href="./assets/radio-group-D-Tbwbga.js">
208
- <link rel="modulepreload" crossorigin href="./assets/floating-outline-DRRP5I8p.js">
207
+ <link rel="modulepreload" crossorigin href="./assets/radio-group-mrUpeS-s.js">
208
+ <link rel="modulepreload" crossorigin href="./assets/floating-outline-CbZinm9T.js">
209
209
  <link rel="modulepreload" crossorigin href="./assets/objectWithoutPropertiesLoose-Msf1n32r.js">
210
210
  <link rel="modulepreload" crossorigin href="./assets/esm-DSv-aO_T.js">
211
- <link rel="modulepreload" crossorigin href="./assets/readonly-python-code-CD37Ktr_.js">
212
- <link rel="modulepreload" crossorigin href="./assets/file-headphone-D2bGq0xX.js">
213
- <link rel="modulepreload" crossorigin href="./assets/file-ZPWSptQF.js">
214
- <link rel="modulepreload" crossorigin href="./assets/image-CzV694oU.js">
215
- <link rel="modulepreload" crossorigin href="./assets/file-icons-CM-BO4Tc.js">
211
+ <link rel="modulepreload" crossorigin href="./assets/readonly-python-code-BcwZXLSu.js">
212
+ <link rel="modulepreload" crossorigin href="./assets/file-headphone-CY5S3y3b.js">
213
+ <link rel="modulepreload" crossorigin href="./assets/file-CLyu7PSP.js">
214
+ <link rel="modulepreload" crossorigin href="./assets/image-jhXeQEgs.js">
215
+ <link rel="modulepreload" crossorigin href="./assets/file-icons-BAedxhF8.js">
216
216
  <link rel="modulepreload" crossorigin href="./assets/switch-LzzmbPXe.js">
217
217
  <link rel="modulepreload" crossorigin href="./assets/events-BRbNg7Li.js">
218
218
  <link rel="modulepreload" crossorigin href="./assets/globals-CBDJBT8O.js">
@@ -221,15 +221,15 @@
221
221
  <link rel="modulepreload" crossorigin href="./assets/memoize-Tp7rARFe.js">
222
222
  <link rel="modulepreload" crossorigin href="./assets/get-C-qh_et5.js">
223
223
  <link rel="modulepreload" crossorigin href="./assets/_baseSet-CsW0tABf.js">
224
- <link rel="modulepreload" crossorigin href="./assets/state-XBSJaDlj.js">
224
+ <link rel="modulepreload" crossorigin href="./assets/state-CKbrzJT-.js">
225
225
  <link rel="modulepreload" crossorigin href="./assets/label-BbRibkug.js">
226
- <link rel="modulepreload" crossorigin href="./assets/textarea-CIkM9ejr.js">
227
- <link rel="modulepreload" crossorigin href="./assets/refresh-ccw-AYso5mC6.js">
228
- <link rel="modulepreload" crossorigin href="./assets/form-BAAziqSH.js">
226
+ <link rel="modulepreload" crossorigin href="./assets/textarea-BWLmfOrN.js">
227
+ <link rel="modulepreload" crossorigin href="./assets/refresh-ccw-CUkO1Vlo.js">
228
+ <link rel="modulepreload" crossorigin href="./assets/form-BDERMNxH.js">
229
229
  <link rel="modulepreload" crossorigin href="./assets/renderShortcut-BV7Qf4L2.js">
230
230
  <link rel="modulepreload" crossorigin href="./assets/useBoolean-BqfyqCpr.js">
231
231
  <link rel="modulepreload" crossorigin href="./assets/useDeepCompareMemoize-zUHU--0D.js">
232
- <link rel="modulepreload" crossorigin href="./assets/types-D9gLS68B.js">
232
+ <link rel="modulepreload" crossorigin href="./assets/types-xF5uWODg.js">
233
233
  <link rel="modulepreload" crossorigin href="./assets/semaphore-FlZezxaf.js">
234
234
  <link rel="modulepreload" crossorigin href="./assets/fileToBase64-Doh9J-g6.js">
235
235
  <link rel="modulepreload" crossorigin href="./assets/pathUtils-ANiMIEDI.js">
@@ -239,8 +239,8 @@
239
239
  <link rel="modulepreload" crossorigin href="./assets/hasIn-CSsM95b1.js">
240
240
  <link rel="modulepreload" crossorigin href="./assets/flatten-Bd5tsfm_.js">
241
241
  <link rel="modulepreload" crossorigin href="./assets/pick-D1xb4gl6.js">
242
- <link rel="modulepreload" crossorigin href="./assets/code-xml-CaRdRiek.js">
243
- <link rel="modulepreload" crossorigin href="./assets/house-DTijHETb.js">
242
+ <link rel="modulepreload" crossorigin href="./assets/code-xml-tqeFGeKJ.js">
243
+ <link rel="modulepreload" crossorigin href="./assets/house-DkdBWh44.js">
244
244
  <link rel="modulepreload" crossorigin href="./assets/square-DPWHdF_-.js">
245
245
  <link rel="modulepreload" crossorigin href="./assets/triangle-alert-CV7pqa1o.js">
246
246
  <link rel="modulepreload" crossorigin href="./assets/bundle.esm-BULc9l6b.js">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marimo-team/frontend",
3
- "version": "0.23.11-dev26",
3
+ "version": "0.23.11-dev28",
4
4
  "main": "dist/main.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -20,11 +20,14 @@ export const renderUIMessage = ({
20
20
  message,
21
21
  isStreamingReasoning,
22
22
  isLast,
23
+ isActive,
23
24
  addToolApprovalResponse,
24
25
  }: {
25
26
  message: UIMessage;
26
27
  isStreamingReasoning: boolean;
27
28
  isLast: boolean;
29
+ /** Whether the chat is currently streaming/submitting a response. */
30
+ isActive: boolean;
28
31
  addToolApprovalResponse?: ChatAddToolApproveResponseFunction;
29
32
  }) => {
30
33
  return (
@@ -49,6 +52,7 @@ export const renderUIMessage = ({
49
52
  approval={part.approval}
50
53
  onApprove={addToolApprovalResponse}
51
54
  isLive={isLast}
55
+ isActive={isActive}
52
56
  />
53
57
  );
54
58
  }
@@ -102,6 +106,7 @@ export const renderUIMessage = ({
102
106
  approval={part.approval}
103
107
  onApprove={addToolApprovalResponse}
104
108
  isLive={isLast}
109
+ isActive={isActive}
105
110
  />
106
111
  );
107
112
  case "source-document":
@@ -143,6 +143,7 @@ interface ChatMessageProps {
143
143
  onEdit: (index: number, newValue: string) => void;
144
144
  isStreamingReasoning: boolean;
145
145
  isLast: boolean;
146
+ isActive: boolean;
146
147
  addToolApprovalResponse?: ChatAddToolApproveResponseFunction;
147
148
  }
148
149
 
@@ -153,6 +154,7 @@ const ChatMessageDisplay: React.FC<ChatMessageProps> = memo(
153
154
  onEdit,
154
155
  isStreamingReasoning,
155
156
  isLast,
157
+ isActive,
156
158
  addToolApprovalResponse,
157
159
  }) => {
158
160
  const renderUserMessage = (message: UIMessage) => {
@@ -205,6 +207,7 @@ const ChatMessageDisplay: React.FC<ChatMessageProps> = memo(
205
207
  message,
206
208
  isStreamingReasoning,
207
209
  isLast,
210
+ isActive,
208
211
  addToolApprovalResponse,
209
212
  })}
210
213
  </div>
@@ -780,6 +783,7 @@ const ChatPanelBody = () => {
780
783
  onEdit={handleMessageEdit}
781
784
  isStreamingReasoning={isStreamingReasoning}
782
785
  isLast={idx === messages.length - 1}
786
+ isActive={isLoading}
783
787
  addToolApprovalResponse={addToolApprovalResponse}
784
788
  />
785
789
  ))}
@@ -24,6 +24,7 @@ interface ToolCallViewProps {
24
24
  * (the user has moved on).
25
25
  */
26
26
  isLive?: boolean;
27
+ isActive?: boolean;
27
28
  }
28
29
 
29
30
  export const ToolCallView: React.FC<ToolCallViewProps> = ({
@@ -37,6 +38,7 @@ export const ToolCallView: React.FC<ToolCallViewProps> = ({
37
38
  index,
38
39
  className,
39
40
  isLive = true,
41
+ isActive = true,
40
42
  }) => {
41
43
  switch (state) {
42
44
  case "approval-requested":
@@ -61,6 +63,7 @@ export const ToolCallView: React.FC<ToolCallViewProps> = ({
61
63
  input={input}
62
64
  index={index}
63
65
  className={className}
66
+ isActive={isActive}
64
67
  />
65
68
  );
66
69
 
@@ -89,6 +92,7 @@ export const ToolCallView: React.FC<ToolCallViewProps> = ({
89
92
  approval={approval}
90
93
  index={index}
91
94
  className={className}
95
+ isActive={isActive}
92
96
  />
93
97
  );
94
98
 
@@ -1,6 +1,12 @@
1
1
  /* Copyright 2026 Marimo. All rights reserved. */
2
2
 
3
- import { BanIcon, CheckCircleIcon, Loader2, WrenchIcon } from "lucide-react";
3
+ import {
4
+ BanIcon,
5
+ CheckCircleIcon,
6
+ CircleSlashIcon,
7
+ Loader2,
8
+ WrenchIcon,
9
+ } from "lucide-react";
4
10
  import React from "react";
5
11
  import {
6
12
  Accordion,
@@ -29,7 +35,19 @@ const STATUS_LABEL: Record<HistoryState, string> = {
29
35
  "output-denied": "Denied",
30
36
  };
31
37
 
32
- const StatusIcon: React.FC<{ state: HistoryState }> = ({ state }) => {
38
+ const PENDING_STATES = new Set<HistoryState>([
39
+ "input-streaming",
40
+ "input-available",
41
+ "approval-responded",
42
+ ]);
43
+
44
+ const StatusIcon: React.FC<{ state: HistoryState; interrupted: boolean }> = ({
45
+ state,
46
+ interrupted,
47
+ }) => {
48
+ if (interrupted) {
49
+ return <CircleSlashIcon className="h-3 w-3 text-muted-foreground" />;
50
+ }
33
51
  switch (state) {
34
52
  case "input-streaming":
35
53
  case "input-available":
@@ -69,6 +87,7 @@ interface ToolHistoryRowProps {
69
87
  approval?: ToolApproval;
70
88
  index?: number;
71
89
  className?: string;
90
+ isActive?: boolean;
72
91
  }
73
92
 
74
93
  export const ToolHistoryRow: React.FC<ToolHistoryRowProps> = ({
@@ -79,7 +98,9 @@ export const ToolHistoryRow: React.FC<ToolHistoryRowProps> = ({
79
98
  approval,
80
99
  index = 0,
81
100
  className,
101
+ isActive = true,
82
102
  }) => {
103
+ const interrupted = !isActive && PENDING_STATES.has(state);
83
104
  return (
84
105
  <Accordion
85
106
  key={`tool-${index}`}
@@ -91,12 +112,12 @@ export const ToolHistoryRow: React.FC<ToolHistoryRowProps> = ({
91
112
  <AccordionTrigger
92
113
  className={cn(
93
114
  "h-6 text-xs border-border shadow-none! ring-0! bg-muted/60 hover:bg-muted py-0 px-2 gap-1 rounded-sm [&[data-state=open]>svg]:rotate-180 hover:no-underline",
94
- getTriggerToneClass(state),
115
+ interrupted ? "text-muted-foreground" : getTriggerToneClass(state),
95
116
  )}
96
117
  >
97
118
  <span className="flex items-center gap-1">
98
- <StatusIcon state={state} />
99
- {STATUS_LABEL[state]}:
119
+ <StatusIcon state={state} interrupted={interrupted} />
120
+ {interrupted ? "Interrupted" : STATUS_LABEL[state]}:
100
121
  <code className="font-mono text-xs">
101
122
  {formatToolName(toolName)}
102
123
  </code>
@@ -445,6 +445,7 @@ export const Chatbot: React.FC<Props> = (props) => {
445
445
  message,
446
446
  isStreamingReasoning: status === "streaming",
447
447
  isLast,
448
+ isActive: isLoading,
448
449
  addToolApprovalResponse: isLast
449
450
  ? addToolApprovalResponse
450
451
  : undefined,
@@ -1 +0,0 @@
1
- import{s as z}from"./chunk-LvLJmgfZ.js";import{t as X}from"./react-Bj1aDYRI.js";import{Cr as B,_r as H,vr as I}from"./cells-D3EcEVTz.js";import{A as K,C as R,R as F,T as Q}from"./zod-H_cgTO0M.js";import{t as y}from"./compiler-runtime-B3qBwwSJ.js";import{t as U}from"./isEmpty-CXeoXbuc.js";import{X as Y}from"./ai-model-dropdown-CKfMxi81.js";import{_ as Z}from"./useEventListener-BfYriKqt.js";import{t as S}from"./cn-X2M2usMq.js";import{t as ee}from"./jsx-runtime-PbYoItBR.js";import{a as O,i as $,n as D,r as E}from"./multi-map-DDbeVHF9.js";import{t as J}from"./button-Db07tdz7.js";import{i as T}from"./strings-B-yaq2o7.js";import{t as te}from"./createLucideIcon-BTp1tQDO.js";import{t as se}from"./ban-CttLZK8l.js";import{t as re}from"./bot-message-square-AslRbAeb.js";import{r as ae}from"./x-9vLEgLY6.js";import{t as M}from"./markdown-renderer-Ctc_BAzL.js";import{f as V,l as le}from"./add-cell-with-ai-r88BQwnl.js";import{t as ne}from"./external-link-mfK38Tpg.js";import{n as oe}from"./spinner-BlJOg2gb.js";import{c as ie}from"./datasource-BtJgopUR.js";import{t as ce}from"./RenderHTML-CdzAncjW.js";var de=te("shield-question-mark",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3",key:"mhlwft"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),ue=y(),k=z(X(),1),t=z(ee(),1);const me=c=>{let e=(0,ue.c)(13),{reasoning:l,index:a,isStreaming:i}=c,s=a===void 0?0:a,r=i===void 0?!1:i,[n,u]=k.useState("");if(!l&&!r)return null;let x=r?"reasoning":n,d;e[0]===Symbol.for("react.memo_cache_sentinel")?(d=(0,t.jsx)(re,{className:"h-3 w-3"}),e[0]=d):d=e[0];let h=r?"Thinking":"View reasoning",m=l.length>0&&` (${l.length} chars)`,o;e[1]!==h||e[2]!==m?(o=(0,t.jsx)(O,{className:"text-xs text-muted-foreground hover:bg-muted/50 px-2 py-1 h-auto rounded-sm [&[data-state=open]>svg]:rotate-180",children:(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[d,h,m]})}),e[1]=h,e[2]=m,e[3]=o):o=e[3];let p;e[4]===l?p=e[5]:(p=(0,t.jsx)(E,{className:"pb-2 px-2",children:(0,t.jsx)("div",{className:"bg-muted/30 border border-muted/50 rounded-md p-3 italic text-muted-foreground/90 relative",children:(0,t.jsx)("div",{className:"pr-6",children:(0,t.jsx)(M,{content:l})})})}),e[4]=l,e[5]=p);let f;e[6]!==o||e[7]!==p?(f=(0,t.jsxs)($,{value:"reasoning",className:"border-0",children:[o,p]}),e[6]=o,e[7]=p,e[8]=f):f=e[8];let v;return e[9]!==s||e[10]!==x||e[11]!==f?(v=(0,t.jsx)(D,{type:"single",collapsible:!0,className:"w-full mb-2",value:x,onValueChange:u,children:f},s),e[9]=s,e[10]=x,e[11]=f,e[12]=v):v=e[12],v};function q(c){return c.replace("tool-","")}var pe=y();const A=c=>{let e=(0,pe.c)(9),{input:l,label:a}=c,i=a===void 0?"Tool Request":a;if(l==null)return null;let s;e[0]===i?s=e[1]:(s=(0,t.jsx)("h3",{className:"text-xs font-semibold text-muted-foreground",children:i}),e[0]=i,e[1]=s);let r;e[2]===l?r=e[3]:(r=JSON.stringify(l,null,2),e[2]=l,e[3]=r);let n;e[4]===r?n=e[5]:(n=(0,t.jsx)("pre",{className:"bg-(--slate-2) p-2 text-muted-foreground border border-(--slate-4) rounded text-xs overflow-auto scrollbar-thin max-h-64",children:r}),e[4]=r,e[5]=n);let u;return e[6]!==s||e[7]!==n?(u=(0,t.jsxs)("div",{className:"space-y-2",children:[s,n]}),e[6]=s,e[7]=n,e[8]=u):u=e[8],u};var xe=y();const he=c=>{let e=(0,xe.c)(25),{toolName:l,input:a,approval:i,onApprove:s,className:r}=c,n;e[0]===r?n=e[1]:(n=S("rounded-md border border-(--amber-6) bg-(--amber-2) p-3 space-y-3",r),e[0]=r,e[1]=n);let u=`Approval required for ${q(l)}`,x;e[2]===Symbol.for("react.memo_cache_sentinel")?(x=(0,t.jsx)(de,{className:"h-4 w-4 text-(--amber-11) mt-0.5 shrink-0"}),e[2]=x):x=e[2];let d;e[3]===Symbol.for("react.memo_cache_sentinel")?(d=(0,t.jsx)("span",{className:"font-semibold",children:"Approval required:"}),e[3]=d):d=e[3];let h;e[4]===l?h=e[5]:(h=q(l),e[4]=l,e[5]=h);let m;e[6]===h?m=e[7]:(m=(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[x,(0,t.jsxs)("div",{className:"text-xs text-(--amber-11) leading-relaxed",children:[d," ",(0,t.jsx)("code",{className:"font-mono",children:h})]})]}),e[6]=h,e[7]=m);let o;e[8]===a?o=e[9]:(o=(0,t.jsx)(A,{input:a}),e[8]=a,e[9]=o);let p;e[10]!==i.id||e[11]!==s?(p=(0,t.jsx)(J,{size:"xs",variant:"outline",onClick:()=>s({id:i.id,approved:!1}),children:"Deny"}),e[10]=i.id,e[11]=s,e[12]=p):p=e[12];let f;e[13]!==i.id||e[14]!==s?(f=(0,t.jsx)(J,{size:"xs",onClick:()=>s({id:i.id,approved:!0}),children:"Approve"}),e[13]=i.id,e[14]=s,e[15]=f):f=e[15];let v;e[16]!==p||e[17]!==f?(v=(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[p,f]}),e[16]=p,e[17]=f,e[18]=v):v=e[18];let b;return e[19]!==n||e[20]!==v||e[21]!==u||e[22]!==m||e[23]!==o?(b=(0,t.jsxs)("div",{className:n,role:"alertdialog","aria-label":u,children:[m,o,v]}),e[19]=n,e[20]=v,e[21]=u,e[22]=m,e[23]=o,e[24]=b):b=e[24],b};var fe=y();const ve=c=>{let e=(0,fe.c)(28),{toolName:l,input:a,errorText:i,isLive:s,className:r}=c,[n,u]=k.useState(s),x=k.useRef(s),d,h;e[0]===s?(d=e[1],h=e[2]):(d=()=>{x.current&&!s&&u(!1),x.current=s},h=[s],e[0]=s,e[1]=d,e[2]=h),k.useEffect(d,h);let m;e[3]===r?m=e[4]:(m=S("rounded-md border border-(--red-6) bg-(--red-2)",r),e[3]=r,e[4]=m);let o;e[5]===Symbol.for("react.memo_cache_sentinel")?(o=()=>u(be),e[5]=o):o=e[5];let p;e[6]===Symbol.for("react.memo_cache_sentinel")?(p=(0,t.jsx)(B,{className:"h-3.5 w-3.5 shrink-0"}),e[6]=p):p=e[6];let f;e[7]===Symbol.for("react.memo_cache_sentinel")?(f=(0,t.jsx)("span",{className:"font-semibold",children:"Failed:"}),e[7]=f):f=e[7];let v;e[8]===l?v=e[9]:(v=q(l),e[8]=l,e[9]=v);let b;e[10]===v?b=e[11]:(b=(0,t.jsxs)("span",{className:"flex-1 text-left",children:[f," ",(0,t.jsx)("code",{className:"font-mono",children:v})]}),e[10]=v,e[11]=b);let N=n&&"rotate-180",j;e[12]===N?j=e[13]:(j=S("h-3.5 w-3.5 shrink-0 transition-transform",N),e[12]=N,e[13]=j);let g;e[14]===j?g=e[15]:(g=(0,t.jsx)(ae,{className:j}),e[14]=j,e[15]=g);let w;e[16]!==n||e[17]!==g||e[18]!==b?(w=(0,t.jsxs)("button",{type:"button",onClick:o,className:"w-full flex items-center gap-2 px-3 py-2 text-xs text-(--red-11) hover:bg-(--red-3) rounded-md transition-colors","aria-expanded":n,children:[p,b,g]}),e[16]=n,e[17]=g,e[18]=b,e[19]=w):w=e[19];let _;e[20]!==i||e[21]!==a||e[22]!==n?(_=n&&(0,t.jsxs)("div",{className:"px-3 pb-3 space-y-3 border-t border-(--red-6)/40 pt-3",children:[(0,t.jsx)(A,{input:a}),i&&(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-xs font-semibold text-(--red-11) mb-1",children:"Error"}),(0,t.jsx)("pre",{className:"bg-(--red-2) border border-(--red-6) rounded p-2 text-xs text-(--red-11) leading-relaxed overflow-auto scrollbar-thin max-h-64 whitespace-pre-wrap",children:i})]})]}),e[20]=i,e[21]=a,e[22]=n,e[23]=_):_=e[23];let C;return e[24]!==w||e[25]!==_||e[26]!==m?(C=(0,t.jsxs)("div",{className:m,children:[w,_]}),e[24]=w,e[25]=_,e[26]=m,e[27]=C):C=e[27],C};function be(c){return!c}var W=y();function je(c){return c==null?!0:typeof c=="object"?U(c):!1}var ge=K({status:F().default("success"),auth_required:Q().default(!1),action_url:R(),next_steps:R(),meta:R(),message:F().nullish()}),Ne=c=>{let e=(0,W.c)(12),{data:l}=c,a;if(e[0]!==l){let{status:i,auth_required:s,action_url:r,meta:n,next_steps:u,message:x,...d}=l,h;e[2]===Symbol.for("react.memo_cache_sentinel")?(h=(0,t.jsx)("h3",{className:"text-xs font-semibold text-muted-foreground",children:"Tool Result"}),e[2]=h):h=e[2];let m;e[3]===i?m=e[4]:(m=(0,t.jsx)("span",{className:"text-xs px-2 py-0.5 bg-(--grass-2) text-(--grass-11) rounded-full font-medium capitalize",children:i}),e[3]=i,e[4]=m);let o;e[5]===s?o=e[6]:(o=s&&(0,t.jsx)("span",{className:"text-xs px-2 py-0.5 bg-(--amber-2) text-(--amber-11) rounded-full",children:"Auth Required"}),e[5]=s,e[6]=o);let p;e[7]!==m||e[8]!==o?(p=(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[h,(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[m,o]})]}),e[7]=m,e[8]=o,e[9]=p):p=e[9];let f;e[10]===x?f=e[11]:(f=x&&(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)(H,{className:"h-3 w-3 text-(--blue-11) mt-0.5 shrink-0"}),(0,t.jsx)("div",{className:"text-xs text-foreground",children:x})]}),e[10]=x,e[11]=f),a=(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[p,f,d&&(0,t.jsx)("div",{className:"space-y-3",children:Object.entries(d).map(we)})]}),e[0]=l,e[1]=a}else a=e[1];return a};const ye=c=>{let e=(0,W.c)(8),{result:l}=c,a;e[0]===l?a=e[1]:(a=ge.safeParse(l),e[0]=l,e[1]=a);let i=a;if(i.success){let n;return e[2]===i.data?n=e[3]:(n=(0,t.jsx)(Ne,{data:i.data}),e[2]=i.data,e[3]=n),n}let s;e[4]===l?s=e[5]:(s=typeof l=="string"?l:JSON.stringify(l,null,2),e[4]=l,e[5]=s);let r;return e[6]===s?r=e[7]:(r=(0,t.jsx)("div",{className:"text-xs font-medium text-muted-foreground mb-1 max-h-64 overflow-y-auto scrollbar-thin",children:s}),e[6]=s,e[7]=r),r};function we(c){let[e,l]=c;return je(l)?null:(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:e}),(0,t.jsx)("pre",{className:"bg-(--slate-2) p-2 text-muted-foreground border border-(--slate-4) rounded text-xs overflow-auto scrollbar-thin max-h-64",children:JSON.stringify(l,null,2)})]},e)}var L=y(),_e={"input-streaming":"Generating","input-available":"Running","approval-responded":"Awaiting result","output-available":"Done","output-denied":"Denied"},Se=c=>{let e=(0,L.c)(4),{state:l}=c;switch(l){case"input-streaming":case"input-available":case"approval-responded":{let a;return e[0]===Symbol.for("react.memo_cache_sentinel")?(a=(0,t.jsx)(oe,{className:"h-3 w-3 animate-spin"}),e[0]=a):a=e[0],a}case"output-available":{let a;return e[1]===Symbol.for("react.memo_cache_sentinel")?(a=(0,t.jsx)(Y,{className:"h-3 w-3 text-(--grass-11)"}),e[1]=a):a=e[1],a}case"output-denied":{let a;return e[2]===Symbol.for("react.memo_cache_sentinel")?(a=(0,t.jsx)(se,{className:"h-3 w-3 text-muted-foreground"}),e[2]=a):a=e[2],a}default:{T(l);let a;return e[3]===Symbol.for("react.memo_cache_sentinel")?(a=(0,t.jsx)(ie,{className:"h-3 w-3"}),e[3]=a):a=e[3],a}}};function Te(c){switch(c){case"output-available":return"text-(--grass-11)/80";case"output-denied":return"text-muted-foreground";case"input-streaming":case"input-available":case"approval-responded":return"";default:return T(c),""}}const G=c=>{let e=(0,L.c)(29),{toolName:l,state:a,input:i,result:s,approval:r,index:n,className:u}=c,x=`tool-${n===void 0?0:n}`,d;e[0]===u?d=e[1]:(d=S("w-full",u),e[0]=u,e[1]=d);let h;e[2]===a?h=e[3]:(h=S("h-6 text-xs border-border shadow-none! ring-0! bg-muted/60 hover:bg-muted py-0 px-2 gap-1 rounded-sm [&[data-state=open]>svg]:rotate-180 hover:no-underline",Te(a)),e[2]=a,e[3]=h);let m;e[4]===a?m=e[5]:(m=(0,t.jsx)(Se,{state:a}),e[4]=a,e[5]=m);let o=_e[a],p;e[6]===l?p=e[7]:(p=q(l),e[6]=l,e[7]=p);let f;e[8]===p?f=e[9]:(f=(0,t.jsx)("code",{className:"font-mono text-xs",children:p}),e[8]=p,e[9]=f);let v;e[10]!==m||e[11]!==o||e[12]!==f?(v=(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[m,o,":",f]}),e[10]=m,e[11]=o,e[12]=f,e[13]=v):v=e[13];let b;e[14]!==h||e[15]!==v?(b=(0,t.jsx)(O,{className:h,children:v}),e[14]=h,e[15]=v,e[16]=b):b=e[16];let N;e[17]!==r||e[18]!==i||e[19]!==s||e[20]!==a?(N=(0,t.jsx)(E,{className:"py-2 px-2",children:(0,t.jsx)(ke,{state:a,input:i,result:s,approval:r})}),e[17]=r,e[18]=i,e[19]=s,e[20]=a,e[21]=N):N=e[21];let j;e[22]!==b||e[23]!==N?(j=(0,t.jsxs)($,{value:"tool-call",className:"border-0",children:[b,N]}),e[22]=b,e[23]=N,e[24]=j):j=e[24];let g;return e[25]!==j||e[26]!==x||e[27]!==d?(g=(0,t.jsx)(D,{type:"single",collapsible:!0,className:d,children:j},x),e[25]=j,e[26]=x,e[27]=d,e[28]=g):g=e[28],g};var ke=c=>{let e=(0,L.c)(16),{state:l,input:a,result:i,approval:s}=c;switch(l){case"input-streaming":case"input-available":case"approval-responded":{let r;return e[0]===a?r=e[1]:(r=(0,t.jsx)(A,{input:a}),e[0]=a,e[1]=r),r}case"output-available":{let r;e[2]===a?r=e[3]:(r=(0,t.jsx)(A,{input:a}),e[2]=a,e[3]=r);let n;e[4]===i?n=e[5]:(n=i!=null&&(0,t.jsx)(ye,{result:i}),e[4]=i,e[5]=n);let u;return e[6]!==r||e[7]!==n?(u=(0,t.jsxs)("div",{className:"space-y-3",children:[r,n]}),e[6]=r,e[7]=n,e[8]=u):u=e[8],u}case"output-denied":{let r;e[9]===a?r=e[10]:(r=(0,t.jsx)(A,{input:a}),e[9]=a,e[10]=r);let n=s!=null&&s.reason?`: ${s.reason}`:".",u;e[11]===n?u=e[12]:(u=(0,t.jsxs)("div",{className:"bg-muted/40 border border-border rounded-md p-3 text-xs text-muted-foreground leading-relaxed",children:["Tool execution was denied",n]}),e[11]=n,e[12]=u);let x;return e[13]!==r||e[14]!==u?(x=(0,t.jsxs)("div",{className:"space-y-3",children:[r,u]}),e[13]=r,e[14]=u,e[15]=x):x=e[15],x}default:return T(l),null}},Ae=y();const P=c=>{let e=(0,Ae.c)(25),{toolName:l,state:a,result:i,errorText:s,input:r,approval:n,onApprove:u,index:x,className:d,isLive:h}=c,m=h===void 0?!0:h;switch(a){case"approval-requested":{if(n!=null&&u!=null){let p;return e[0]!==n||e[1]!==d||e[2]!==r||e[3]!==u||e[4]!==l?(p=(0,t.jsx)(he,{toolName:l,input:r,approval:n,onApprove:u,className:d}),e[0]=n,e[1]=d,e[2]=r,e[3]=u,e[4]=l,e[5]=p):p=e[5],p}let o;return e[6]!==d||e[7]!==x||e[8]!==r||e[9]!==l?(o=(0,t.jsx)(G,{toolName:l,state:"input-available",input:r,index:x,className:d}),e[6]=d,e[7]=x,e[8]=r,e[9]=l,e[10]=o):o=e[10],o}case"output-error":{let o;return e[11]!==d||e[12]!==s||e[13]!==r||e[14]!==m||e[15]!==l?(o=(0,t.jsx)(ve,{toolName:l,input:r,errorText:s,isLive:m,className:d}),e[11]=d,e[12]=s,e[13]=r,e[14]=m,e[15]=l,e[16]=o):o=e[16],o}case"input-streaming":case"input-available":case"approval-responded":case"output-available":case"output-denied":{let o;return e[17]!==n||e[18]!==d||e[19]!==x||e[20]!==r||e[21]!==i||e[22]!==a||e[23]!==l?(o=(0,t.jsx)(G,{toolName:l,state:a,input:r,result:i,approval:n,index:x,className:d}),e[17]=n,e[18]=d,e[19]=x,e[20]=r,e[21]=i,e[22]=a,e[23]=l,e[24]=o):o=e[24],o}default:return T(a),null}},Ce=({message:c,isStreamingReasoning:e,isLast:l,addToolApprovalResponse:a})=>{return(0,t.jsx)(t.Fragment,{children:c.parts.map((s,r)=>i(s,r))});function i(s,r){if(qe(s))return(0,t.jsx)(P,{index:r,toolName:s.type,result:s.output,errorText:s.state==="output-error"?s.errorText:void 0,className:"my-2",state:s.state,input:s.input,approval:s.approval,onApprove:a,isLive:l},r);if(Re(s))return Z.debug("Found data part",s),null;switch(s.type){case"text":return s.text.includes("<marimo-")?(0,t.jsx)(k.Fragment,{children:ce({html:s.text})},r):(0,t.jsx)(M,{content:s.text},r);case"reasoning":return(0,t.jsx)(me,{reasoning:s.text,index:r,isStreaming:e&&l&&r===(c.parts.length||0)-1},r);case"file":return(0,t.jsx)(le,{attachment:s},r);case"dynamic-tool":return(0,t.jsx)(P,{toolName:s.toolName,result:s.output,errorText:s.state==="output-error"?s.errorText:void 0,state:s.state,input:s.input,approval:s.approval,onApprove:a,isLive:l},r);case"source-document":return(0,t.jsx)(V,{icon:(0,t.jsx)(I,{className:"h-3 w-3 shrink-0"}),title:s.title,subtitle:s.filename},r);case"source-url":return(0,t.jsx)(V,{icon:(0,t.jsx)(ne,{className:"h-3 w-3 shrink-0"}),title:s.title??s.url,subtitle:s.title?s.url:void 0,href:s.url},r);case"step-start":return null;default:return T(s),null}}};function qe(c){return c.type.startsWith("tool-")}function Re(c){return c.type.startsWith("data-")}export{Ce as t};
@@ -1,3 +0,0 @@
1
- import{s as rt}from"./chunk-LvLJmgfZ.js";import{d as Mt,f as zt,l as Ft,n as se,u as Be}from"./useEvent-D91BmmQi.js";import{t as Ht}from"./react-Bj1aDYRI.js";import{D as Wt,Sr as Ot}from"./cells-D3EcEVTz.js";import"./react-dom-CSu739Rf.js";import{t as ot}from"./compiler-runtime-B3qBwwSJ.js";import{E as Yt,T as Xt,o as Ut,r as lt,t as qt}from"./ai-model-dropdown-CKfMxi81.js";import{_ as Le,o as ie}from"./useEventListener-BfYriKqt.js";import{a as Vt,n as at}from"./utils-BGFUZat2.js";import{T as Bt,o as $t}from"./config-B00Uc1a3.js";import{t as ce}from"./cn-X2M2usMq.js";import{t as Kt}from"./jsx-runtime-PbYoItBR.js";import{C as Gt,b as Jt,g as V,v as Ie,w as xe,x as B}from"./fullscreen-6ovMHcQN.js";import{u as Qt}from"./menu-items-W_pMIJi0.js";import{i as Zt,r as er,t as tr}from"./popover-D1IutFqN.js";import{a as rr,i as or,n as lr,p as ar,r as nr,s as sr,t as ir}from"./select-sS-2VQvj.js";import{i as nt,t as $e}from"./tooltip-CWSr2PfE.js";import{t as $}from"./button-Db07tdz7.js";import"./dist-Dez1I5M9.js";import"./cjs-DXo9vDEJ.js";import"./main-DmhaVp6Y.js";import"./useNonce-0SWz6w4W.js";import{r as cr}from"./requests-KshNNAOp.js";import{t as st}from"./createLucideIcon-BTp1tQDO.js";import{t as dr}from"./arrow-right-DFk7kYqp.js";import{t as it}from"./bot-message-square-AslRbAeb.js";import"./markdown-renderer-Ctc_BAzL.js";import{A as ur,C as pr,E as mr,F as hr,M as fr,_ as xr,b as vr,c as gr,d as wr,g as br,h as ct,k as dt,l as yr,m as jr,n as ut,p as Sr,s as Cr,u as Nr,v as Rr,x as Ar,y as Tr}from"./add-cell-with-ai-r88BQwnl.js";import{n as _r}from"./spinner-BlJOg2gb.js";import{t as Er}from"./message-circle-DzPHfj35.js";import{t as kr}from"./plus-Dvg5FyTi.js";import{dt as Lr,r as Ir}from"./input-DiAad2nt.js";import{t as Pr}from"./settings-CP-IXCzQ.js";import{t as Dr}from"./chat-display-C9WoxE6U.js";import{t as Mr}from"./sparkles-DctOjjEz.js";import"./dist-DHMtQYxT.js";import"./dist-Bj9Iedc0.js";import"./dist-D-o1OXc9.js";import"./dist-BZhJ1bTM.js";import"./dist-DnIl7RU-.js";import"./session-DF0gSADo.js";import"./purify.es-DdxMtdqK.js";import{s as zr}from"./dates-Digd3pPR.js";import{t as Fr}from"./copy-icon-C8Cq0-V0.js";import{t as Hr}from"./context-DE_5rdOV.js";import{n as Wr}from"./ImperativeModal-CEtvKaPt.js";import{r as pt,t as Or}from"./state-a26U8Amw.js";import{n as Yr}from"./error-banner-B4PMmgPV.js";import"./chunk-5FQGJX7Z-D-AUn5sP.js";import"./html-to-image-BMbVLGQG.js";import"./esm-DSv-aO_T.js";import{t as Ke}from"./empty-state-BpcrGgJU.js";import{t as Xr}from"./pair-with-agent-modal-CuwM9PX2.js";var p=rt(Ht(),1),o=rt(Kt(),1);function Ur(e,t){return p.useReducer((r,n)=>t[r][n]??r,e)}var Ge="ScrollArea",[mt,Tl]=Gt(Ge),[qr,z]=mt(Ge),ht=p.forwardRef((e,t)=>{let{__scopeScrollArea:r,type:n="hover",dir:l,scrollHideDelay:a=600,...s}=e,[i,c]=p.useState(null),[u,d]=p.useState(null),[m,h]=p.useState(null),[f,x]=p.useState(null),[C,R]=p.useState(null),[g,N]=p.useState(0),[_,y]=p.useState(0),[j,S]=p.useState(!1),[A,L]=p.useState(!1),w=ie(t,I=>c(I)),E=Qt(l);return(0,o.jsx)(qr,{scope:r,type:n,dir:E,scrollHideDelay:a,scrollArea:i,viewport:u,onViewportChange:d,content:m,onContentChange:h,scrollbarX:f,onScrollbarXChange:x,scrollbarXEnabled:j,onScrollbarXEnabledChange:S,scrollbarY:C,onScrollbarYChange:R,scrollbarYEnabled:A,onScrollbarYEnabledChange:L,onCornerWidthChange:N,onCornerHeightChange:y,children:(0,o.jsx)(xe.div,{dir:E,...s,ref:w,style:{position:"relative","--radix-scroll-area-corner-width":g+"px","--radix-scroll-area-corner-height":_+"px",...e.style}})})});ht.displayName=Ge;var ft="ScrollAreaViewport",xt=p.forwardRef((e,t)=>{let{__scopeScrollArea:r,children:n,nonce:l,...a}=e,s=z(ft,r),i=ie(t,p.useRef(null),s.onViewportChange);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:l}),(0,o.jsx)(xe.div,{"data-radix-scroll-area-viewport":"",...a,ref:i,style:{overflowX:s.scrollbarXEnabled?"scroll":"hidden",overflowY:s.scrollbarYEnabled?"scroll":"hidden",...e.style},children:(0,o.jsx)("div",{ref:s.onContentChange,style:{minWidth:"100%",display:"table"},children:n})})]})});xt.displayName=ft;var Y="ScrollAreaScrollbar",Je=p.forwardRef((e,t)=>{let{forceMount:r,...n}=e,l=z(Y,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:s}=l,i=e.orientation==="horizontal";return p.useEffect(()=>(i?a(!0):s(!0),()=>{i?a(!1):s(!1)}),[i,a,s]),l.type==="hover"?(0,o.jsx)(Vr,{...n,ref:t,forceMount:r}):l.type==="scroll"?(0,o.jsx)(Br,{...n,ref:t,forceMount:r}):l.type==="auto"?(0,o.jsx)(vt,{...n,ref:t,forceMount:r}):l.type==="always"?(0,o.jsx)(Qe,{...n,ref:t}):null});Je.displayName=Y;var Vr=p.forwardRef((e,t)=>{let{forceMount:r,...n}=e,l=z(Y,e.__scopeScrollArea),[a,s]=p.useState(!1);return p.useEffect(()=>{let i=l.scrollArea,c=0;if(i){let u=()=>{window.clearTimeout(c),s(!0)},d=()=>{c=window.setTimeout(()=>s(!1),l.scrollHideDelay)};return i.addEventListener("pointerenter",u),i.addEventListener("pointerleave",d),()=>{window.clearTimeout(c),i.removeEventListener("pointerenter",u),i.removeEventListener("pointerleave",d)}}},[l.scrollArea,l.scrollHideDelay]),(0,o.jsx)(Ie,{present:r||a,children:(0,o.jsx)(vt,{"data-state":a?"visible":"hidden",...n,ref:t})})}),Br=p.forwardRef((e,t)=>{let{forceMount:r,...n}=e,l=z(Y,e.__scopeScrollArea),a=e.orientation==="horizontal",s=ze(()=>c("SCROLL_END"),100),[i,c]=Ur("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return p.useEffect(()=>{if(i==="idle"){let u=window.setTimeout(()=>c("HIDE"),l.scrollHideDelay);return()=>window.clearTimeout(u)}},[i,l.scrollHideDelay,c]),p.useEffect(()=>{let u=l.viewport,d=a?"scrollLeft":"scrollTop";if(u){let m=u[d],h=()=>{let f=u[d];m!==f&&(c("SCROLL"),s()),m=f};return u.addEventListener("scroll",h),()=>u.removeEventListener("scroll",h)}},[l.viewport,a,c,s]),(0,o.jsx)(Ie,{present:r||i!=="hidden",children:(0,o.jsx)(Qe,{"data-state":i==="hidden"?"hidden":"visible",...n,ref:t,onPointerEnter:B(e.onPointerEnter,()=>c("POINTER_ENTER")),onPointerLeave:B(e.onPointerLeave,()=>c("POINTER_LEAVE"))})})}),vt=p.forwardRef((e,t)=>{let r=z(Y,e.__scopeScrollArea),{forceMount:n,...l}=e,[a,s]=p.useState(!1),i=e.orientation==="horizontal",c=ze(()=>{if(r.viewport){let u=r.viewport.offsetWidth<r.viewport.scrollWidth,d=r.viewport.offsetHeight<r.viewport.scrollHeight;s(i?u:d)}},10);return de(r.viewport,c),de(r.content,c),(0,o.jsx)(Ie,{present:n||a,children:(0,o.jsx)(Qe,{"data-state":a?"visible":"hidden",...l,ref:t})})}),Qe=p.forwardRef((e,t)=>{let{orientation:r="vertical",...n}=e,l=z(Y,e.__scopeScrollArea),a=p.useRef(null),s=p.useRef(0),[i,c]=p.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=jt(i.viewport,i.content),d={...n,sizes:i,onSizesChange:c,hasThumb:u>0&&u<1,onThumbChange:h=>a.current=h,onThumbPointerUp:()=>s.current=0,onThumbPointerDown:h=>s.current=h};function m(h,f){return Zr(h,s.current,i,f)}return r==="horizontal"?(0,o.jsx)($r,{...d,ref:t,onThumbPositionChange:()=>{if(l.viewport&&a.current){let h=l.viewport.scrollLeft,f=St(h,i,l.dir);a.current.style.transform=`translate3d(${f}px, 0, 0)`}},onWheelScroll:h=>{l.viewport&&(l.viewport.scrollLeft=h)},onDragScroll:h=>{l.viewport&&(l.viewport.scrollLeft=m(h,l.dir))}}):r==="vertical"?(0,o.jsx)(Kr,{...d,ref:t,onThumbPositionChange:()=>{if(l.viewport&&a.current){let h=l.viewport.scrollTop,f=St(h,i);a.current.style.transform=`translate3d(0, ${f}px, 0)`}},onWheelScroll:h=>{l.viewport&&(l.viewport.scrollTop=h)},onDragScroll:h=>{l.viewport&&(l.viewport.scrollTop=m(h))}}):null}),$r=p.forwardRef((e,t)=>{let{sizes:r,onSizesChange:n,...l}=e,a=z(Y,e.__scopeScrollArea),[s,i]=p.useState(),c=p.useRef(null),u=ie(t,c,a.onScrollbarXChange);return p.useEffect(()=>{c.current&&i(getComputedStyle(c.current))},[c]),(0,o.jsx)(wt,{"data-orientation":"horizontal",...l,ref:u,sizes:r,style:{bottom:0,left:a.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:a.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Me(r)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.x),onDragScroll:d=>e.onDragScroll(d.x),onWheelScroll:(d,m)=>{if(a.viewport){let h=a.viewport.scrollLeft+d.deltaX;e.onWheelScroll(h),Nt(h,m)&&d.preventDefault()}},onResize:()=>{c.current&&a.viewport&&s&&n({content:a.viewport.scrollWidth,viewport:a.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:De(s.paddingLeft),paddingEnd:De(s.paddingRight)}})}})}),Kr=p.forwardRef((e,t)=>{let{sizes:r,onSizesChange:n,...l}=e,a=z(Y,e.__scopeScrollArea),[s,i]=p.useState(),c=p.useRef(null),u=ie(t,c,a.onScrollbarYChange);return p.useEffect(()=>{c.current&&i(getComputedStyle(c.current))},[c]),(0,o.jsx)(wt,{"data-orientation":"vertical",...l,ref:u,sizes:r,style:{top:0,right:a.dir==="ltr"?0:void 0,left:a.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Me(r)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.y),onDragScroll:d=>e.onDragScroll(d.y),onWheelScroll:(d,m)=>{if(a.viewport){let h=a.viewport.scrollTop+d.deltaY;e.onWheelScroll(h),Nt(h,m)&&d.preventDefault()}},onResize:()=>{c.current&&a.viewport&&s&&n({content:a.viewport.scrollHeight,viewport:a.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:De(s.paddingTop),paddingEnd:De(s.paddingBottom)}})}})}),[Gr,gt]=mt(Y),wt=p.forwardRef((e,t)=>{let{__scopeScrollArea:r,sizes:n,hasThumb:l,onThumbChange:a,onThumbPointerUp:s,onThumbPointerDown:i,onThumbPositionChange:c,onDragScroll:u,onWheelScroll:d,onResize:m,...h}=e,f=z(Y,r),[x,C]=p.useState(null),R=ie(t,w=>C(w)),g=p.useRef(null),N=p.useRef(""),_=f.viewport,y=n.content-n.viewport,j=V(d),S=V(c),A=ze(m,10);function L(w){g.current&&u({x:w.clientX-g.current.left,y:w.clientY-g.current.top})}return p.useEffect(()=>{let w=E=>{let I=E.target;x!=null&&x.contains(I)&&j(E,y)};return document.addEventListener("wheel",w,{passive:!1}),()=>document.removeEventListener("wheel",w,{passive:!1})},[_,x,y,j]),p.useEffect(S,[n,S]),de(x,A),de(f.content,A),(0,o.jsx)(Gr,{scope:r,scrollbar:x,hasThumb:l,onThumbChange:V(a),onThumbPointerUp:V(s),onThumbPositionChange:S,onThumbPointerDown:V(i),children:(0,o.jsx)(xe.div,{...h,ref:R,style:{position:"absolute",...h.style},onPointerDown:B(e.onPointerDown,w=>{w.button===0&&(w.target.setPointerCapture(w.pointerId),g.current=x.getBoundingClientRect(),N.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",f.viewport&&(f.viewport.style.scrollBehavior="auto"),L(w))}),onPointerMove:B(e.onPointerMove,L),onPointerUp:B(e.onPointerUp,w=>{let E=w.target;E.hasPointerCapture(w.pointerId)&&E.releasePointerCapture(w.pointerId),document.body.style.webkitUserSelect=N.current,f.viewport&&(f.viewport.style.scrollBehavior=""),g.current=null})})})}),Pe="ScrollAreaThumb",bt=p.forwardRef((e,t)=>{let{forceMount:r,...n}=e,l=gt(Pe,e.__scopeScrollArea);return(0,o.jsx)(Ie,{present:r||l.hasThumb,children:(0,o.jsx)(Jr,{ref:t,...n})})}),Jr=p.forwardRef((e,t)=>{let{__scopeScrollArea:r,style:n,...l}=e,a=z(Pe,r),s=gt(Pe,r),{onThumbPositionChange:i}=s,c=ie(t,m=>s.onThumbChange(m)),u=p.useRef(void 0),d=ze(()=>{u.current&&(u.current=(u.current(),void 0))},100);return p.useEffect(()=>{let m=a.viewport;if(m){let h=()=>{d(),u.current||(u.current=eo(m,i),i())};return i(),m.addEventListener("scroll",h),()=>m.removeEventListener("scroll",h)}},[a.viewport,d,i]),(0,o.jsx)(xe.div,{"data-state":s.hasThumb?"visible":"hidden",...l,ref:c,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...n},onPointerDownCapture:B(e.onPointerDownCapture,m=>{let h=m.target.getBoundingClientRect(),f=m.clientX-h.left,x=m.clientY-h.top;s.onThumbPointerDown({x:f,y:x})}),onPointerUp:B(e.onPointerUp,s.onThumbPointerUp)})});bt.displayName=Pe;var Ze="ScrollAreaCorner",yt=p.forwardRef((e,t)=>{let r=z(Ze,e.__scopeScrollArea),n=!!(r.scrollbarX&&r.scrollbarY);return r.type!=="scroll"&&n?(0,o.jsx)(Qr,{...e,ref:t}):null});yt.displayName=Ze;var Qr=p.forwardRef((e,t)=>{let{__scopeScrollArea:r,...n}=e,l=z(Ze,r),[a,s]=p.useState(0),[i,c]=p.useState(0),u=!!(a&&i);return de(l.scrollbarX,()=>{var m;let d=((m=l.scrollbarX)==null?void 0:m.offsetHeight)||0;l.onCornerHeightChange(d),c(d)}),de(l.scrollbarY,()=>{var m;let d=((m=l.scrollbarY)==null?void 0:m.offsetWidth)||0;l.onCornerWidthChange(d),s(d)}),u?(0,o.jsx)(xe.div,{...n,ref:t,style:{width:a,height:i,position:"absolute",right:l.dir==="ltr"?0:void 0,left:l.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function De(e){return e?parseInt(e,10):0}function jt(e,t){let r=e/t;return isNaN(r)?0:r}function Me(e){let t=jt(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,n=(e.scrollbar.size-r)*t;return Math.max(n,18)}function Zr(e,t,r,n="ltr"){let l=Me(r),a=l/2,s=t||a,i=l-s,c=r.scrollbar.paddingStart+s,u=r.scrollbar.size-r.scrollbar.paddingEnd-i,d=r.content-r.viewport,m=n==="ltr"?[0,d]:[d*-1,0];return Ct([c,u],m)(e)}function St(e,t,r="ltr"){let n=Me(t),l=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-l,s=t.content-t.viewport,i=a-n,c=ar(e,r==="ltr"?[0,s]:[s*-1,0]);return Ct([0,s],[0,i])(c)}function Ct(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let n=(t[1]-t[0])/(e[1]-e[0]);return t[0]+n*(r-e[0])}}function Nt(e,t){return e>0&&e<t}var eo=(e,t=()=>{})=>{let r={left:e.scrollLeft,top:e.scrollTop},n=0;return(function l(){let a={left:e.scrollLeft,top:e.scrollTop},s=r.left!==a.left,i=r.top!==a.top;(s||i)&&t(),r=a,n=window.requestAnimationFrame(l)})(),()=>window.cancelAnimationFrame(n)};function ze(e,t){let r=V(e),n=p.useRef(0);return p.useEffect(()=>()=>window.clearTimeout(n.current),[]),p.useCallback(()=>{window.clearTimeout(n.current),n.current=window.setTimeout(r,t)},[r,t])}function de(e,t){let r=V(t);Jt(()=>{let n=0;if(e){let l=new ResizeObserver(()=>{cancelAnimationFrame(n),n=window.requestAnimationFrame(r)});return l.observe(e),()=>{window.cancelAnimationFrame(n),l.unobserve(e)}}},[e,r])}var Rt=ht,to=xt,ro=yt,oo=st("hat-glasses",[["path",{d:"M14 18a2 2 0 0 0-4 0",key:"1v8fkw"}],["path",{d:"m19 11-2.11-6.657a2 2 0 0 0-2.752-1.148l-1.276.61A2 2 0 0 1 12 4H8.5a2 2 0 0 0-1.925 1.456L5 11",key:"1fkr7p"}],["path",{d:"M2 11h20",key:"3eubbj"}],["circle",{cx:"17",cy:"18",r:"3",key:"82mm0e"}],["circle",{cx:"7",cy:"18",r:"3",key:"lvkj7j"}]]),lo=st("notebook-text",[["path",{d:"M2 6h4",key:"aawbzj"}],["path",{d:"M2 10h4",key:"l0bgd4"}],["path",{d:"M2 14h4",key:"1gsvsf"}],["path",{d:"M2 18h4",key:"1bu2t1"}],["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["path",{d:"M9.5 8h5",key:"11mslq"}],["path",{d:"M9.5 12H16",key:"ktog6x"}],["path",{d:"M9.5 16H14",key:"p1seyn"}]]),At=ot();const ao=({chatState:e,chatId:t,messages:r})=>{if(!t)return Le.warn("No active chat"),e;let n=e.chats.get(t);if(!n)return Le.warn("No active chat"),e;let l=new Map(e.chats),a=Date.now();return l.set(n.id,{...n,messages:r,updatedAt:a}),{...e,chats:l}};var Tt=p.forwardRef((e,t)=>{let r=(0,At.c)(15),n,l,a;r[0]===e?(n=r[1],l=r[2],a=r[3]):({className:l,children:n,...a}=e,r[0]=e,r[1]=n,r[2]=l,r[3]=a);let s;r[4]===l?s=r[5]:(s=ce("relative overflow-hidden",l),r[4]=l,r[5]=s);let i;r[6]===n?i=r[7]:(i=(0,o.jsx)(to,{className:"h-full w-full rounded-[inherit]",children:n}),r[6]=n,r[7]=i);let c,u;r[8]===Symbol.for("react.memo_cache_sentinel")?(c=(0,o.jsx)(_t,{}),u=(0,o.jsx)(ro,{}),r[8]=c,r[9]=u):(c=r[8],u=r[9]);let d;return r[10]!==a||r[11]!==t||r[12]!==s||r[13]!==i?(d=(0,o.jsxs)(Rt,{ref:t,className:s,...a,children:[i,c,u]}),r[10]=a,r[11]=t,r[12]=s,r[13]=i,r[14]=d):d=r[14],d});Tt.displayName=Rt.displayName;var _t=p.forwardRef((e,t)=>{let r=(0,At.c)(14),n,l,a;r[0]===e?(n=r[1],l=r[2],a=r[3]):({className:n,orientation:a,...l}=e,r[0]=e,r[1]=n,r[2]=l,r[3]=a);let s=a===void 0?"vertical":a,i=s==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-px",c=s==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-px",u;r[4]!==n||r[5]!==i||r[6]!==c?(u=ce("flex touch-none select-none transition-colors",i,c,n),r[4]=n,r[5]=i,r[6]=c,r[7]=u):u=r[7];let d;r[8]===Symbol.for("react.memo_cache_sentinel")?(d=(0,o.jsx)(bt,{className:"relative flex-1 rounded-full bg-border"}),r[8]=d):d=r[8];let m;return r[9]!==s||r[10]!==l||r[11]!==t||r[12]!==u?(m=(0,o.jsx)(Je,{ref:t,orientation:s,className:u,...l,children:d}),r[9]=s,r[10]=l,r[11]=t,r[12]=u,r[13]=m):m=r[13],m});_t.displayName=Je.displayName;var no=[{label:"Today",days:0},{label:"Yesterday",days:1},{label:"2d ago",days:2},{label:"3d ago",days:3},{label:"This week",days:7},{label:"This month",days:30}];const so=e=>{let t=Date.now(),r=no.map(a=>({...a,chats:[]})),n={label:"Older",days:1/0,chats:[]},l=a=>{switch(a){case 0:return r[0];case 1:return r[1];case 2:return r[2];case 3:return r[3];default:return a>=4&&a<=7?r[4]:a>=8&&a<=30?r[5]:n}};for(let a of e)l(Math.floor((t-a.updatedAt)/864e5)).chats.push(a);return[...r,n].filter(a=>a.chats.length>0)},io=({activeChatId:e,setActiveChat:t})=>{let r=Be(pt),{locale:n}=Hr(),[l,a]=(0,p.useState)(""),s=(0,p.useMemo)(()=>[...r.chats.values()].toSorted((u,d)=>d.updatedAt-u.updatedAt),[r.chats]),i=(0,p.useMemo)(()=>l.trim()?s.filter(u=>u.title.toLowerCase().includes(l.toLowerCase())):s,[s,l]),c=(0,p.useMemo)(()=>so(i),[i]);return(0,o.jsxs)(tr,{children:[(0,o.jsx)($e,{content:"Previous chats",children:(0,o.jsx)(Zt,{asChild:!0,children:(0,o.jsx)($,{variant:"text",size:"icon",children:(0,o.jsx)(Ot,{className:"h-4 w-4"})})})}),(0,o.jsxs)(er,{className:"w-[480px] p-0",align:"start",side:"right",children:[(0,o.jsx)("div",{className:"pt-3 px-3 w-full",children:(0,o.jsx)(Ir,{placeholder:"Search chat history...",value:l,onChange:u=>a(u.target.value),className:"text-xs"})}),(0,o.jsx)(Tt,{className:"h-[450px] p-2",children:(0,o.jsxs)("div",{className:"space-y-3",children:[s.length===0&&(0,o.jsx)(Ke,{title:"No chats yet",description:"Start a new chat to get started",icon:(0,o.jsx)(it,{})}),i.length===0&&l&&s.length>0&&(0,o.jsx)(Ke,{title:"No chats found",description:`No chats match "${l}"`,icon:(0,o.jsx)(Lr,{})}),c.map((u,d)=>(0,o.jsxs)("div",{className:"space-y-2",children:[(0,o.jsx)("div",{className:"text-xs px-1 text-muted-foreground/60",children:u.label}),(0,o.jsx)("div",{children:u.chats.map(m=>(0,o.jsxs)("button",{className:ce("w-full p-1 rounded-md cursor-pointer text-left flex items-center justify-between",m.id===e&&"bg-accent",m.id!==e&&"hover:bg-muted/20"),onClick:()=>{t(m.id)},type:"button",children:[(0,o.jsx)("div",{className:"flex-1 min-w-0",children:(0,o.jsx)("div",{className:"text-sm truncate",children:m.title})}),(0,o.jsx)("div",{className:"text-xs text-muted-foreground/60 ml-2 flex-shrink-0",children:zr(m.updatedAt,n)})]},m.id))}),d!==c.length-1&&(0,o.jsx)("hr",{})]},u.label))]})})]})]})};var K=ot(),Et="manual",co=e=>{let t=(0,K.c)(18),{onNewChat:r,activeChatId:n,setActiveChat:l}=e,{handleClick:a}=lt(),s;t[0]===Symbol.for("react.memo_cache_sentinel")?(s=(0,o.jsx)(kr,{className:"h-4 w-4"}),t[0]=s):s=t[0];let i;t[1]===r?i=t[2]:(i=(0,o.jsx)($e,{content:"New chat",children:(0,o.jsx)($,{variant:"text",size:"icon",onClick:r,children:s})}),t[1]=r,t[2]=i);let c;t[3]===Symbol.for("react.memo_cache_sentinel")?(c=(0,o.jsx)(Ut,{}),t[3]=c):c=t[3];let u;t[4]===a?u=t[5]:(u=()=>a("ai"),t[4]=a,t[5]=u);let d;t[6]===Symbol.for("react.memo_cache_sentinel")?(d=(0,o.jsx)(Pr,{className:"h-4 w-4"}),t[6]=d):d=t[6];let m;t[7]===u?m=t[8]:(m=(0,o.jsx)($e,{content:"AI Settings",children:(0,o.jsx)($,{variant:"text",size:"xs",className:"hover:bg-foreground/10 py-2",onClick:u,children:d})}),t[7]=u,t[8]=m);let h;t[9]!==n||t[10]!==l?(h=(0,o.jsx)(io,{activeChatId:n,setActiveChat:l}),t[9]=n,t[10]=l,t[11]=h):h=t[11];let f;t[12]!==m||t[13]!==h?(f=(0,o.jsxs)("div",{className:"flex items-center gap-2",children:[c,m,h]}),t[12]=m,t[13]=h,t[14]=f):f=t[14];let x;return t[15]!==i||t[16]!==f?(x=(0,o.jsxs)("div",{className:"flex border-b px-2 py-1 justify-between shrink-0 items-center",children:[i,f]}),t[15]=i,t[16]=f,t[17]=x):x=t[17],x},kt=(0,p.memo)(e=>{let t=(0,K.c)(16),{message:r,index:n,onEdit:l,isStreamingReasoning:a,isLast:s,addToolApprovalResponse:i}=e,c;t[0]!==n||t[1]!==l?(c=R=>{var _,y,j;let g=(y=(_=R.parts)==null?void 0:_.filter(fo))==null?void 0:y.map(xo).join(`
2
- `),N=(j=R.parts)==null?void 0:j.filter(vo);return(0,o.jsxs)("div",{className:"w-[95%] bg-background border p-1 rounded-sm",children:[N==null?void 0:N.map(go),(0,o.jsx)(ut,{value:g,placeholder:"Type your message...",onChange:wo,onSubmit:(S,A)=>{A.trim()&&l(n,A)},onClose:bo},R.id)]})},t[0]=n,t[1]=l,t[2]=c):c=t[2];let u=c,d;t[3]!==i||t[4]!==s||t[5]!==a?(d=R=>(0,o.jsxs)("div",{className:"w-[95%] wrap-break-word",children:[(0,o.jsx)("div",{className:"absolute right-1 top-1 opacity-0 group-hover:opacity-100 transition-opacity",children:(0,o.jsx)(Fr,{className:"h-3 w-3",value:R.parts.filter(yo).map(jo).join(`
3
- `)||""})}),Dr({message:R,isStreamingReasoning:a,isLast:s,addToolApprovalResponse:i})]}),t[3]=i,t[4]=s,t[5]=a,t[6]=d):d=t[6];let m=d,h=r.role==="user"?"justify-end":"justify-start",f;t[7]===h?f=t[8]:(f=ce("flex group relative",h),t[7]=h,t[8]=f);let x;t[9]!==r||t[10]!==m||t[11]!==u?(x=r.role==="user"?u(r):m(r),t[9]=r,t[10]=m,t[11]=u,t[12]=x):x=t[12];let C;return t[13]!==f||t[14]!==x?(C=(0,o.jsx)("div",{className:f,children:x}),t[13]=f,t[14]=x,t[15]=C):C=t[15],C});kt.displayName="ChatMessage";var Lt=(0,p.memo)(e=>{var D;let t=(0,K.c)(42),{isEmpty:r,onSendClick:n,isLoading:l,onStop:a,fileInputRef:s,onAddFiles:i,onAddContext:c}=e,u=Be(at),d=(u==null?void 0:u.mode)||Et,m=((D=u==null?void 0:u.models)==null?void 0:D.chat_model)||"openai/gpt-4o",h=Xt.parse(m).providerId,{saveModeChange:f}=Yt(),x;t[0]===Symbol.for("react.memo_cache_sentinel")?(x=[{value:"manual",label:"Manual",subtitle:"Pure chat, no tool usage",Icon:Er},{value:"ask",label:"Ask",subtitle:"AI with access to read-only tools like documentation search",Icon:lo},{value:"agent",label:"Agent",subtitle:"AI with access to read and write tools",Icon:oo}],t[0]=x):x=t[0];let C=Sr.has(h),R;t[1]!==d||t[2]!==x?(R=x.find(G=>G.value===d),t[1]=d,t[2]=x,t[3]=R):R=t[3];let g=R,N=g==null?void 0:g.Icon,_=g==null?void 0:g.label,y;t[4]===N?y=t[5]:(y=N&&(0,o.jsx)(N,{className:"h-3 w-3"}),t[4]=N,t[5]=y);let j;t[6]===_?j=t[7]:(j=(0,o.jsx)("span",{children:_}),t[6]=_,t[7]=j);let S;t[8]!==y||t[9]!==j?(S=(0,o.jsxs)(sr,{className:"h-6 text-xs border-border shadow-none! ring-0! bg-muted hover:bg-muted/30 py-0 px-2 gap-1.5",children:[y,j]}),t[8]=y,t[9]=j,t[10]=S):S=t[10];let A;t[11]===Symbol.for("react.memo_cache_sentinel")?(A=(0,o.jsx)(rr,{className:"text-xs uppercase tracking-wider text-muted-foreground/70 font-medium",children:"AI Mode"}),t[11]=A):A=t[11];let L;t[12]===x?L=t[13]:(L=(0,o.jsx)(lr,{children:(0,o.jsxs)(nr,{children:[A,x.map(So)]})}),t[12]=x,t[13]=L);let w;t[14]!==d||t[15]!==f||t[16]!==S||t[17]!==L?(w=(0,o.jsxs)(ir,{value:d,onValueChange:f,children:[S,L]}),t[14]=d,t[15]=f,t[16]=S,t[17]=L,t[18]=w):w=t[18];let E;t[19]===Symbol.for("react.memo_cache_sentinel")?(E=(0,o.jsx)(qt,{placeholder:"Model",triggerClassName:"h-6 text-xs shadow-none! ring-0! bg-muted hover:bg-muted/30 rounded-sm",iconSize:"small",showAddCustomModelDocs:!0,forRole:"chat"}),t[19]=E):E=t[19];let I;t[20]===w?I=t[21]:(I=(0,o.jsxs)("div",{className:"flex items-center gap-2",children:[w,E]}),t[20]=w,t[21]=I);let X;t[22]!==l||t[23]!==c?(X=(0,o.jsx)(Cr,{handleAddContext:c,isLoading:l}),t[22]=l,t[23]=c,t[24]=X):X=t[24];let F;t[25]!==s||t[26]!==C||t[27]!==l||t[28]!==i?(F=C&&(0,o.jsx)(gr,{fileInputRef:s,isLoading:l,onAddFiles:i}),t[25]=s,t[26]=C,t[27]=l,t[28]=i,t[29]=F):F=t[29];let H;t[30]!==r||t[31]!==l||t[32]!==n||t[33]!==a?(H=(0,o.jsx)(wr,{isLoading:l,onStop:a,onSendClick:n,isEmpty:r}),t[30]=r,t[31]=l,t[32]=n,t[33]=a,t[34]=H):H=t[34];let W;t[35]!==X||t[36]!==F||t[37]!==H?(W=(0,o.jsxs)("div",{className:"flex flex-row",children:[X,F,H]}),t[35]=X,t[36]=F,t[37]=H,t[38]=W):W=t[38];let T;return t[39]!==W||t[40]!==I?(T=(0,o.jsx)(nt,{children:(0,o.jsxs)("div",{className:"px-3 py-2 border-t border-border/20 flex flex-row flex-wrap items-center justify-between gap-1",children:[I,W]})}),t[39]=W,t[40]=I,t[41]=T):T=t[41],T});Lt.displayName="ChatInputFooter";var et=(0,p.memo)(e=>{let t=(0,K.c)(29),{placeholder:r,input:n,inputClassName:l,setInput:a,onSubmit:s,inputRef:i,isLoading:c,onStop:u,fileInputRef:d,onAddFiles:m,onClose:h}=e,f;t[0]!==n||t[1]!==s?(f=()=>{n.trim()&&s(void 0,n)},t[0]=n,t[1]=s,t[2]=f):f=t[2];let x=se(f),C;t[3]===l?C=t[4]:(C=ce("px-2 py-3 flex-1",l),t[3]=l,t[4]=C);let R=r||"Type your message...",g;t[5]!==n||t[6]!==i||t[7]!==m||t[8]!==h||t[9]!==s||t[10]!==a||t[11]!==R?(g=(0,o.jsx)(ut,{inputRef:i,value:n,onChange:a,onSubmit:s,onClose:h,onAddFiles:m,placeholder:R}),t[5]=n,t[6]=i,t[7]=m,t[8]=h,t[9]=s,t[10]=a,t[11]=R,t[12]=g):g=t[12];let N;t[13]!==C||t[14]!==g?(N=(0,o.jsx)("div",{className:C,children:g}),t[13]=C,t[14]=g,t[15]=N):N=t[15];let _=!n.trim(),y;t[16]===i?y=t[17]:(y=()=>mr(i),t[16]=i,t[17]=y);let j;t[18]!==d||t[19]!==x||t[20]!==c||t[21]!==m||t[22]!==u||t[23]!==_||t[24]!==y?(j=(0,o.jsx)(Lt,{isEmpty:_,onAddContext:y,onSendClick:x,isLoading:c,onStop:u,fileInputRef:d,onAddFiles:m}),t[18]=d,t[19]=x,t[20]=c,t[21]=m,t[22]=u,t[23]=_,t[24]=y,t[25]=j):j=t[25];let S;return t[26]!==N||t[27]!==j?(S=(0,o.jsxs)("div",{className:"relative shrink-0 min-h-[80px] flex flex-col border-t",children:[N,j]}),t[26]=N,t[27]=j,t[28]=S):S=t[28],S});et.displayName="ChatInput";var uo=e=>{let t=(0,K.c)(5),{onPairWithAgent:r}=e;if(Bt())return null;let n,l,a;t[0]===Symbol.for("react.memo_cache_sentinel")?(n=(0,o.jsx)(Mr,{className:"h-3.5 w-3.5 shrink-0"}),l=(0,o.jsx)("span",{children:"Work on this notebook with your own agent"}),a=(0,o.jsx)(dr,{className:"h-3 w-3 shrink-0"}),t[0]=n,t[1]=l,t[2]=a):(n=t[0],l=t[1],a=t[2]);let s;return t[3]===r?s=t[4]:(s=(0,o.jsxs)($,{variant:"text",className:"gap-1.5 text-sm text-link hover:underline",onClick:r,children:[n,l,a]}),t[3]=r,t[4]=s),s},po=()=>{let e=(0,K.c)(6),t=Be(Vt),{handleClick:r}=lt();if(!t){let l;e[0]===r?l=e[1]:(l=(0,o.jsx)($,{variant:"outline",size:"sm",onClick:()=>r("ai","ai-providers"),children:"Edit AI settings"}),e[0]=r,e[1]=l);let a;e[2]===Symbol.for("react.memo_cache_sentinel")?(a=(0,o.jsx)(it,{}),e[2]=a):a=e[2];let s;return e[3]===l?s=e[4]:(s=(0,o.jsx)(Ke,{title:"Chat with AI",description:"No AI provider configured or Chat model not selected",action:l,icon:a}),e[3]=l,e[4]=s),s}let n;return e[5]===Symbol.for("react.memo_cache_sentinel")?(n=(0,o.jsx)(mo,{}),e[5]=n):n=e[5],n},mo=()=>{let e=(0,K.c)(101),t=Mt(pt),[r,n]=Ft(Or),[l,a]=(0,p.useState)(""),[s,i]=(0,p.useState)(""),{files:c,addFiles:u,clearFiles:d,removeFile:m}=vr(),h=(0,p.useRef)(null),f=(0,p.useRef)(null),x=(0,p.useRef)(null),C=(0,p.useRef)(null),R=(0,p.useRef)(null),g=$t(),{invokeAiTool:N,sendRun:_}=cr(),{openModal:y,closeModal:j}=Wr(),S=r==null?void 0:r.id,A=zt(),{addStagedCell:L}=pr(),{createNewCell:w,prepareForRun:E}=Wt(),I;e[0]!==L||e[1]!==w||e[2]!==E||e[3]!==_||e[4]!==A?(I={addStagedCell:L,createNewCell:w,prepareForRun:E,sendRun:_,store:A},e[0]=L,e[1]=w,e[2]=E,e[3]=_,e[4]=A,e[5]=I):I=e[5];let X=I,F;e[6]===(r==null?void 0:r.messages)?F=e[7]:(F=(r==null?void 0:r.messages)||[],e[6]=r==null?void 0:r.messages,e[7]=F);let H;if(e[8]!==g||e[9]!==A){let v;e[11]===g?v=e[12]:(v=()=>g.headers(),e[11]=g,e[12]=v),H=new fr({api:g.getAiURL("chat").toString(),headers:v,prepareSendMessagesRequest:async b=>{var fe;let k=await hr({messages:b.messages});k.success||Le.debug("Outgoing chat messages failed AI SDK schema validation",k.error);let O=await jr(b.messages),he=((fe=A.get(at))==null?void 0:fe.mode)||Et,q=Ar.getToolSchemas(he);return{api:g.getAiURL("chat").toString(),body:{tools:q,...b,...O}}}}),e[8]=g,e[9]=A,e[10]=H}else H=e[10];let W;e[13]===t?W=e[14]:(W=v=>{let{messages:b}=v;t(k=>ao({chatState:k,chatId:k.activeChatId,messages:b}))},e[13]=t,e[14]=W);let{messages:T,sendMessage:D,error:G,status:tt,regenerate:Fe,stop:U,addToolOutput:It,addToolApprovalResponse:ue,id:He}=ur({id:S,sendAutomaticallyWhen:Co,messages:F,transport:H,onFinish:W,onToolCall:async v=>{let{toolCall:b}=v;await xr({invokeAiTool:N,addToolOutput:Pt,toolCall:{toolName:b.toolName,toolCallId:b.toolCallId,input:b.input},toolContext:X})},onError:No}),Pt=It,P=tt==="submitted"||tt==="streaming",ve;e[15]!==P||e[16]!==T?(ve=P&&T.length>0&&Tr(T),e[15]=P,e[16]=T,e[17]=ve):ve=e[17];let pe=ve,ge;e[18]===Symbol.for("react.memo_cache_sentinel")?(ge=()=>{requestAnimationFrame(()=>{if(x.current){let v=x.current;v.scrollTop=v.scrollHeight}})},e[18]=ge):ge=e[18];let we;e[19]===S?we=e[20]:(we=[S],e[19]=S,e[20]=we),(0,p.useEffect)(ge,we);let be;e[21]!==He||e[22]!==d||e[23]!==D||e[24]!==t?(be=async(v,b)=>{let k=Date.now(),O={id:He,title:br(v),messages:[],createdAt:k,updatedAt:k};t(q=>{let fe=new Map(q.chats);return fe.set(O.id,O),{...q,chats:fe,activeChatId:O.id}});let he=b&&b.length>0?await ct(b):void 0;D({role:"user",parts:[{type:"text",text:v},...he??[]]}),d(),a("")},e[21]=He,e[22]=d,e[23]=D,e[24]=t,e[25]=be):be=e[25];let We=be,ye;e[26]!==d||e[27]!==n?(ye=()=>{n(null),a(""),i(""),d()},e[26]=d,e[27]=n,e[28]=ye):ye=e[28];let Oe=se(ye),je;e[29]!==j||e[30]!==y?(je=()=>{y((0,o.jsx)(Xr,{onClose:j}))},e[29]=j,e[30]=y,e[31]=je):je=e[31];let Ye=se(je),Se;e[32]!==T||e[33]!==D?(Se=(v,b)=>{var q;let k=T[v],O=(q=k.parts)==null?void 0:q.filter(Ro),he=k.id;D({messageId:he,role:"user",parts:[{type:"text",text:b},...O]})},e[32]=T,e[33]=D,e[34]=Se):Se=e[34];let me=se(Se),Ce;e[35]!==d||e[36]!==c||e[37]!==D?(Ce=async(v,b)=>{var O;if(!b.trim())return;(O=f.current)!=null&&O.view&&dt(f.current.view);let k=c?await ct(c):void 0;v==null||v.preventDefault(),D({text:b,files:k}),a(""),d()},e[35]=d,e[36]=c,e[37]=D,e[38]=Ce):Ce=e[38];let Xe=se(Ce),Ne;e[39]===Fe?Ne=e[40]:(Ne=()=>{Fe()},e[39]=Fe,e[40]=Ne);let Ue=Ne,Re;e[41]!==We||e[42]!==c||e[43]!==s?(Re=()=>{var v;s.trim()&&((v=h.current)!=null&&v.view&&dt(h.current.view),We(s.trim(),c))},e[41]=We,e[42]=c,e[43]=s,e[44]=Re):Re=e[44];let qe=se(Re),Ae;e[45]===Symbol.for("react.memo_cache_sentinel")?(Ae=()=>{var v,b;return(b=(v=h.current)==null?void 0:v.editor)==null?void 0:b.blur()},e[45]=Ae):Ae=e[45];let Dt=Ae,M=T.length===0,Te;e[46]!==u||e[47]!==Xe||e[48]!==qe||e[49]!==l||e[50]!==P||e[51]!==M||e[52]!==s||e[53]!==U?(Te=M?(0,o.jsx)(et,{placeholder:"Ask anything, @ to include context about tables or dataframes",input:s,inputRef:h,inputClassName:"px-1 py-0",setInput:i,onSubmit:qe,isLoading:P,onStop:U,fileInputRef:C,onAddFiles:u,onClose:Dt},"new-thread-input"):(0,o.jsx)(et,{input:l,setInput:a,onSubmit:Xe,inputRef:f,isLoading:P,onStop:U,onClose:()=>{var v,b;return(b=(v=f.current)==null?void 0:v.editor)==null?void 0:b.blur()},fileInputRef:C,onAddFiles:u}),e[46]=u,e[47]=Xe,e[48]=qe,e[49]=l,e[50]=P,e[51]=M,e[52]=s,e[53]=U,e[54]=Te):Te=e[54];let J=Te,_e;e[55]!==c||e[56]!==M||e[57]!==m?(_e=c&&c.length>0&&(0,o.jsx)("div",{className:ce("flex flex-row gap-1 flex-wrap p-1",M&&"py-2 px-1"),children:c==null?void 0:c.map(v=>(0,o.jsx)(Nr,{file:v,onRemove:()=>m(v)},v.name))}),e[55]=c,e[56]=M,e[57]=m,e[58]=_e):_e=e[58];let Q=_e,Ve=r==null?void 0:r.id,Z;e[59]!==Oe||e[60]!==n||e[61]!==Ve?(Z=(0,o.jsx)(nt,{children:(0,o.jsx)(co,{onNewChat:Oe,activeChatId:Ve,setActiveChat:n})}),e[59]=Oe,e[60]=n,e[61]=Ve,e[62]=Z):Z=e[62];let ee;e[63]!==J||e[64]!==Q||e[65]!==Ye||e[66]!==M?(ee=M&&(0,o.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,o.jsxs)("div",{className:"rounded-md border bg-background",children:[Q,J]}),(0,o.jsx)(uo,{onPairWithAgent:Ye})]}),e[63]=J,e[64]=Q,e[65]=Ye,e[66]=M,e[67]=ee):ee=e[67];let te;if(e[68]!==ue||e[69]!==me||e[70]!==pe||e[71]!==T){let v;e[73]!==ue||e[74]!==me||e[75]!==pe||e[76]!==T.length?(v=(b,k)=>(0,o.jsx)(kt,{message:b,index:k,onEdit:me,isStreamingReasoning:pe,isLast:k===T.length-1,addToolApprovalResponse:ue},b.id),e[73]=ue,e[74]=me,e[75]=pe,e[76]=T.length,e[77]=v):v=e[77],te=T.map(v),e[68]=ue,e[69]=me,e[70]=pe,e[71]=T,e[72]=te}else te=e[72];let re;e[78]===P?re=e[79]:(re=P&&(0,o.jsx)("div",{className:"flex justify-center py-4",children:(0,o.jsx)(_r,{className:"h-4 w-4 animate-spin"})}),e[78]=P,e[79]=re);let oe;e[80]!==G||e[81]!==Ue?(oe=G&&(0,o.jsxs)("div",{className:"flex items-center justify-center space-x-2 mb-4",children:[(0,o.jsx)(Yr,{error:G||Error("Unknown error")}),(0,o.jsx)($,{variant:"outline",size:"sm",onClick:Ue,children:"Retry"})]}),e[80]=G,e[81]=Ue,e[82]=oe):oe=e[82];let Ee;e[83]===Symbol.for("react.memo_cache_sentinel")?(Ee=(0,o.jsx)("div",{ref:R}),e[83]=Ee):Ee=e[83];let le;e[84]!==ee||e[85]!==te||e[86]!==re||e[87]!==oe?(le=(0,o.jsxs)("div",{className:"flex-1 px-3 bg-(--slate-1) gap-4 py-3 flex flex-col overflow-y-auto",ref:x,children:[ee,te,re,oe,Ee]}),e[84]=ee,e[85]=te,e[86]=re,e[87]=oe,e[88]=le):le=e[88];let ae;e[89]!==P||e[90]!==U?(ae=P&&(0,o.jsx)("div",{className:"w-full flex justify-center items-center z-20 border-t",children:(0,o.jsx)($,{variant:"linkDestructive",size:"sm",onClick:U,children:"Stop"})}),e[89]=P,e[90]=U,e[91]=ae):ae=e[91];let ne;e[92]!==J||e[93]!==Q||e[94]!==M?(ne=!M&&(0,o.jsxs)(o.Fragment,{children:[Q,J]}),e[92]=J,e[93]=Q,e[94]=M,e[95]=ne):ne=e[95];let ke;return e[96]!==Z||e[97]!==le||e[98]!==ae||e[99]!==ne?(ke=(0,o.jsxs)("div",{className:"flex flex-col h-[calc(100%-53px)]",children:[Z,le,ae,ne]}),e[96]=Z,e[97]=le,e[98]=ae,e[99]=ne,e[100]=ke):ke=e[100],ke},ho=po;function fo(e){return e.type==="text"}function xo(e){return e.text}function vo(e){return e.type==="file"}function go(e,t){return(0,o.jsx)(yr,{attachment:e},t)}function wo(){}function bo(){}function yo(e){return e.type==="text"}function jo(e){return e.text}function So(e){return(0,o.jsx)(or,{value:e.value,className:"text-xs py-1",children:(0,o.jsxs)("div",{className:"flex items-start gap-2.5",children:[(0,o.jsx)("span",{className:"mt-1 text-muted-foreground",children:(0,o.jsx)(e.Icon,{className:"h-3 w-3"})}),(0,o.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,o.jsx)("span",{className:"font-semibold",children:e.label}),(0,o.jsx)("span",{className:"text-muted-foreground",children:e.subtitle})]})]})},e.value)}function Co(e){let{messages:t}=e;return Rr(t)}function No(e){Le.error("An error occurred:",e)}function Ro(e){return e.type==="file"}export{ho as default};