@marimo-team/frontend 0.23.6-dev29 → 0.23.6-dev31

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 (66) hide show
  1. package/dist/assets/{CellStatus-BWdBmgXp.js → CellStatus-DXu3ucl7.js} +1 -1
  2. package/dist/assets/{JsonOutput-DyvRuemf.js → JsonOutput-J02aK2i8.js} +1 -1
  3. package/dist/assets/{MarimoErrorOutput-CTbMr92N.js → MarimoErrorOutput-IiY4RajQ.js} +1 -1
  4. package/dist/assets/{RenderHTML-BKLJDmuZ.js → RenderHTML-CZ0QfVg-.js} +1 -1
  5. package/dist/assets/{add-cell-with-ai-DMh3huz_.js → add-cell-with-ai-DIq2bBlj.js} +1 -1
  6. package/dist/assets/{add-connection-dialog-BHeJmqed.js → add-connection-dialog-Brml2tu_.js} +1 -1
  7. package/dist/assets/{agent-panel-1dKGIFrL.js → agent-panel-jsore4C9.js} +1 -1
  8. package/dist/assets/{ai-model-dropdown-B43T4OtX.js → ai-model-dropdown-ll1QMFU0.js} +1 -1
  9. package/dist/assets/{app-config-button-zkywKUHo.js → app-config-button-BhrXC9Rv.js} +1 -1
  10. package/dist/assets/{cell-editor-DeLJbSpO.js → cell-editor-CbSSobD0.js} +1 -1
  11. package/dist/assets/{cell-link-CpZw-906.js → cell-link-3OOv6O0A.js} +1 -1
  12. package/dist/assets/{cells-Wp62mkuO.js → cells-B624w_H9.js} +1 -1
  13. package/dist/assets/{chat-display-DdLRA8c9.js → chat-display-CiGYiUeC.js} +1 -1
  14. package/dist/assets/{chat-panel-BtE3Gbsz.js → chat-panel-BpXi6wLN.js} +1 -1
  15. package/dist/assets/{chat-ui-D0gV9UvE.js → chat-ui-hqB1xArH.js} +1 -1
  16. package/dist/assets/{column-preview-ChsQq9WG.js → column-preview-OXbDw0oD.js} +1 -1
  17. package/dist/assets/{command-palette-DaR28lR1.js → command-palette-CNoC1EEa.js} +1 -1
  18. package/dist/assets/{common-DUia6qYH.js → common-CUEJ0oC5.js} +1 -1
  19. package/dist/assets/{components-C4kBzZ8D.js → components-7_DKmd61.js} +1 -1
  20. package/dist/assets/{components-B6c-34E2.js → components-DgNHASCr.js} +1 -1
  21. package/dist/assets/{datasource-DA33QXqs.js → datasource-Bj6Y4avn.js} +1 -1
  22. package/dist/assets/{dependency-graph-panel-CW_F18M2.js → dependency-graph-panel-CvROuamu.js} +1 -1
  23. package/dist/assets/{documentation-panel-Bc2upDjI.js → documentation-panel-DQOJStuZ.js} +1 -1
  24. package/dist/assets/{download-DeMXY7lE.js → download-B6QfSAZf.js} +1 -1
  25. package/dist/assets/{edit-page-DW_zAyGK.js → edit-page-Blq34KEo.js} +3 -3
  26. package/dist/assets/{error-panel-BUdyn3Qm.js → error-panel-ggEwal7u.js} +1 -1
  27. package/dist/assets/{file-explorer-panel-CsE0pVjY.js → file-explorer-panel-_wljWuvm.js} +1 -1
  28. package/dist/assets/{file-icons-BB3Rj-wm.js → file-icons-D4rVuS1i.js} +1 -1
  29. package/dist/assets/{floating-outline-CjjOJghP.js → floating-outline-COhbcAxa.js} +1 -1
  30. package/dist/assets/{focus-Cg3dLaBY.js → focus-B4X28BCE.js} +1 -1
  31. package/dist/assets/{form-MPkf1K-U.js → form-CLvvnp1J.js} +1 -1
  32. package/dist/assets/{home-page-CSWFfl1W.js → home-page-Ct-nqlW_.js} +1 -1
  33. package/dist/assets/{hooks-CWL7vReb.js → hooks-KQ_ubW6k.js} +1 -1
  34. package/dist/assets/{html-to-image-BZTmy2-K.js → html-to-image-C4B8YBxt.js} +1 -1
  35. package/dist/assets/{index-DASUIN17.js → index-Cq12wKzb.js} +4 -4
  36. package/dist/assets/{kiosk-mode-CYRe-uR-.js → kiosk-mode-D1eVr9QD.js} +1 -1
  37. package/dist/assets/{layout-BSDV2zsQ.js → layout-BUGeEeY7.js} +3 -3
  38. package/dist/assets/{logs-panel-B4Ue007a.js → logs-panel-CLx6lve0.js} +1 -1
  39. package/dist/assets/{markdown-renderer-DjjwLrVA.js → markdown-renderer-ju9oyUcG.js} +1 -1
  40. package/dist/assets/{name-cell-input-6Jz5ePv7.js → name-cell-input-NuoWsYBh.js} +1 -1
  41. package/dist/assets/{outline-panel-jSt_ihdt.js → outline-panel-CT1GOJsz.js} +1 -1
  42. package/dist/assets/{packages-panel--bk9esFB.js → packages-panel-_dRad3SR.js} +1 -1
  43. package/dist/assets/{panels-DsAghTc4.js → panels-eDoCwKPU.js} +1 -1
  44. package/dist/assets/{process-output-DJ0w0E8U.js → process-output-DdrJ5wa5.js} +1 -1
  45. package/dist/assets/{radio-group-DxGLcDMI.js → radio-group-y3RioKfP.js} +1 -1
  46. package/dist/assets/{readonly-python-code-CANM2Z9C.js → readonly-python-code-DEZDJr2S.js} +1 -1
  47. package/dist/assets/{reveal-component-CokId0wF.js → reveal-component-D2oLiVuo.js} +1 -1
  48. package/dist/assets/{run-page-71bH-JPO.js → run-page-BPEZwva_.js} +1 -1
  49. package/dist/assets/{scratchpad-panel-DQYP_LcQ.js → scratchpad-panel-CEPThmzJ.js} +1 -1
  50. package/dist/assets/{session-panel-D4iAyuL8.js → session-panel-C9IDU4Lk.js} +1 -1
  51. package/dist/assets/{snippets-panel-C_DQv440.js → snippets-panel-Dy6YyoYZ.js} +1 -1
  52. package/dist/assets/{state-CBfVA1Zd.js → state-BpYA0Ikn.js} +1 -1
  53. package/dist/assets/{state-CxczBoEs.js → state-rNkOi6pv.js} +1 -1
  54. package/dist/assets/{textarea-CS5kXjyn.js → textarea-B3F_BjoD.js} +1 -1
  55. package/dist/assets/{tracing-DDRlYHms.js → tracing-CMVD83Zd.js} +1 -1
  56. package/dist/assets/{tracing-panel-Ck40sYAm.js → tracing-panel-Bt2oldyX.js} +2 -2
  57. package/dist/assets/{useCellActionButton-CWXrE9kV.js → useCellActionButton-C2rTlNjR.js} +1 -1
  58. package/dist/assets/{useDeleteCell-QZgst2RC.js → useDeleteCell-Dg0kcRv1.js} +1 -1
  59. package/dist/assets/{useDependencyPanelTab-C7jwIzJS.js → useDependencyPanelTab-BO6vMwMu.js} +1 -1
  60. package/dist/assets/{useNotebookActions-BsPckLW3.js → useNotebookActions-KZdyZZhM.js} +1 -1
  61. package/dist/assets/{useRunCells-CA51wX-c.js → useRunCells-BZHmiKaL.js} +1 -1
  62. package/dist/assets/{useSplitCell-C8vIjR4-.js → useSplitCell-DwxRK5WQ.js} +1 -1
  63. package/dist/index.html +22 -22
  64. package/package.json +1 -1
  65. package/src/core/codemirror/markdown/__tests__/commands.test.ts +36 -0
  66. package/src/core/codemirror/markdown/commands.ts +4 -1
@@ -1 +1 @@
1
- import{s as W}from"./chunk-LvLJmgfZ.js";import{l as X}from"./useEvent-D91BmmQi.js";import{t as Z}from"./react-Bj1aDYRI.js";import{zt as I}from"./cells-Wp62mkuO.js";import{t as H}from"./compiler-runtime-B3qBwwSJ.js";import{S as $,c as ee,i as te,l as se,n as le,u as ae}from"./ai-model-dropdown-B43T4OtX.js";import{C as oe,v as ne,w as Q}from"./utils-BrXijSdZ.js";import{T as re}from"./config-B2jNjodW.js";import{t as ie}from"./jsx-runtime-BqBOg78p.js";import{o as ce}from"./alert-dialog-BGBdrcqJ.js";import{i as de,r as he,t as me}from"./popover-UExmgBsf.js";import{l as R}from"./select-5i7URBEn.js";import{t as U}from"./tooltip-Gcwqb_SK.js";import{t as xe}from"./button-D9nb17Rw.js";import{s as B}from"./arrays-DYDL-3-i.js";import{r as Y}from"./requests-DIwGYs0l.js";import{t as pe}from"./createLucideIcon-D5guW7EU.js";import{t as fe}from"./x-C-6liIBr.js";import{r as z}from"./input-BX98vgAu.js";import{t as K}from"./settings-DfFe0dWD.js";import{a as M,c as A,d as L,g as ue,i as je,l as P,o as q,p as ve,u as S}from"./textarea-CS5kXjyn.js";import{t as ge}from"./use-toast-T0_cQDma.js";import{i as be}from"./RSPContexts-CINae4Gg.js";import{n as we}from"./useDebounce-CLMpJfhX.js";import{c as ye,l as Ne,n as Ce,t as V}from"./dialog-Dj0qTFnG.js";import{n as ke}from"./ImperativeModal-D7lQ0Q7_.js";import{t as D}from"./kbd-B3Breaz2.js";import{t as _e}from"./links-Dpap8NI2.js";import{t as G}from"./Inputs-BdyX096j.js";var Se=pe("power-off",[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),Te=H(),s=W(ie(),1);const Me=t=>{let e=(0,Te.c)(15),{description:a,disabled:f,tooltip:r}=t,i=f===void 0?!1:f,u=r===void 0?"Shutdown":r,{openConfirm:b,closeModal:l}=ke(),{sendShutdown:o}=Y(),w;e[0]===o?w=e[1]:(w=()=>{o(),setTimeout(Ae,200)},e[0]=o,e[1]=w);let j=w;if(re())return null;let m=i?"disabled":"red",c;e[2]!==l||e[3]!==a||e[4]!==j||e[5]!==b?(c=h=>{h.stopPropagation(),b({title:"Shutdown",description:a,variant:"destructive",confirmAction:(0,s.jsx)(ce,{onClick:()=>{j(),l()},"aria-label":"Confirm Shutdown",children:"Shutdown"})})},e[2]=l,e[3]=a,e[4]=j,e[5]=b,e[6]=c):c=e[6];let n;e[7]===Symbol.for("react.memo_cache_sentinel")?(n=(0,s.jsx)(fe,{strokeWidth:1}),e[7]=n):n=e[7];let d;e[8]!==i||e[9]!==m||e[10]!==c?(d=(0,s.jsx)(G,{"aria-label":"Shutdown","data-testid":"shutdown-button",shape:"circle",size:"small",color:m,className:"h-[27px] w-[27px]",disabled:i,onClick:c,children:n}),e[8]=i,e[9]=m,e[10]=c,e[11]=d):d=e[11];let x;return e[12]!==d||e[13]!==u?(x=(0,s.jsx)(U,{content:u,children:d}),e[12]=d,e[13]=u,e[14]=x):x=e[14],x};function Ae(){window.close()}var J=H(),O=W(Z(),1),Le=100;const Pe=()=>{let t=(0,J.c)(37),[e,a]=ne(),{saveAppConfig:f}=Y(),r=(0,O.useId)(),i=(0,O.useId)(),u;t[0]===Symbol.for("react.memo_cache_sentinel")?(u=ve(oe),t[0]=u):u=t[0];let b;t[1]===e?b=t[2]:(b={resolver:u,defaultValues:e},t[1]=e,t[2]=b);let l=ue(b),o;t[3]!==f||t[4]!==a?(o=async p=>{await f({config:p}).then(()=>{a(p)}).catch(()=>{a(p)})},t[3]=f,t[4]=a,t[5]=o):o=t[5];let w=o,j;t[6]===w?j=t[7]:(j=p=>{w(p)},t[6]=w,t[7]=j);let m=we(j,Le),c;t[8]===e.width?c=t[9]:(c=[e.width],t[8]=e.width,t[9]=c),(0,O.useEffect)(qe,c);let n;t[10]!==m||t[11]!==l?(n=l.handleSubmit(m),t[10]=m,t[11]=l,t[12]=n):n=t[12];let d;t[13]===Symbol.for("react.memo_cache_sentinel")?(d=(0,s.jsxs)("div",{children:[(0,s.jsx)(ae,{children:"Notebook Settings"}),(0,s.jsx)(se,{children:"Configure how your notebook or application looks and behaves."})]}),t[13]=d):d=t[13];let x;t[14]===l.control?x=t[15]:(x=(0,s.jsxs)(F,{title:"Display",children:[(0,s.jsx)(A,{control:l.control,name:"width",render:Fe}),(0,s.jsx)(A,{control:l.control,name:"app_title",render:He})]}),t[14]=l.control,t[15]=x);let h;t[16]===l.control?h=t[17]:(h=(0,s.jsxs)(F,{title:"Custom Files",children:[(0,s.jsx)(A,{control:l.control,name:"css_file",render:ze}),(0,s.jsx)(A,{control:l.control,name:"html_head_file",render:De})]}),t[16]=l.control,t[17]=h);let y;t[18]===l.control?y=t[19]:(y=(0,s.jsx)(F,{title:"Data",children:(0,s.jsx)(A,{control:l.control,name:"sql_output",render:We})}),t[18]=l.control,t[19]=y);let N;t[20]!==r||t[21]!==i?(N=p=>{let{field:_}=p;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-col gap-2",children:[(0,s.jsx)(M,{children:(0,s.jsxs)("div",{className:"flex gap-4",children:[(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(I,{id:r,"data-testid":"html-checkbox",checked:_.value.includes("html"),onCheckedChange:()=>{_.onChange(B(_.value,"html"))}}),(0,s.jsx)(S,{htmlFor:r,children:"HTML"})]}),(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(I,{id:i,"data-testid":"ipynb-checkbox",checked:_.value.includes("ipynb"),onCheckedChange:()=>{_.onChange(B(_.value,"ipynb"))}}),(0,s.jsx)(S,{htmlFor:i,children:"IPYNB"})]})]})}),(0,s.jsx)(L,{})]}),(0,s.jsxs)(q,{children:["When enabled, marimo will periodically save this notebook in your selected formats (HTML, IPYNB) to a folder named"," ",(0,s.jsx)(D,{className:"inline",children:"__marimo__"})," next to your notebook file."]})]})},t[20]=r,t[21]=i,t[22]=N):N=t[22];let v;t[23]!==l.control||t[24]!==N?(v=(0,s.jsx)(F,{title:"Exporting outputs",children:(0,s.jsx)(A,{control:l.control,name:"auto_download",render:N})}),t[23]=l.control,t[24]=N,t[25]=v):v=t[25];let C;t[26]!==v||t[27]!==x||t[28]!==h||t[29]!==y?(C=(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-x-8 gap-y-4",children:[x,h,y,v]}),t[26]=v,t[27]=x,t[28]=h,t[29]=y,t[30]=C):C=t[30];let g;t[31]!==C||t[32]!==n?(g=(0,s.jsxs)("form",{onChange:n,className:"flex flex-col gap-6",children:[d,C]}),t[31]=C,t[32]=n,t[33]=g):g=t[33];let k;return t[34]!==l||t[35]!==g?(k=(0,s.jsx)(je,{...l,children:g}),t[34]=l,t[35]=g,t[36]=k):k=t[36],k};var F=t=>{let e=(0,J.c)(5),{title:a,children:f}=t,r;e[0]===a?r=e[1]:(r=(0,s.jsx)("h3",{className:"text-base font-semibold mb-1",children:a}),e[0]=a,e[1]=r);let i;return e[2]!==f||e[3]!==r?(i=(0,s.jsxs)("div",{className:"flex flex-col gap-y-2",children:[r,f]}),e[2]=f,e[3]=r,e[4]=i):i=e[4],i};function qe(){window.dispatchEvent(new Event("resize"))}function Ee(t){return(0,s.jsx)("option",{value:t,children:t},t)}function Fe(t){let{field:e}=t;return(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"Width"}),(0,s.jsx)(M,{children:(0,s.jsx)(R,{"data-testid":"app-width-select",onChange:a=>e.onChange(a.target.value),value:e.value,disabled:e.disabled,className:"inline-flex mr-2",children:$().map(Ee)})}),(0,s.jsx)(L,{})]})}function He(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"App title"}),(0,s.jsx)(M,{children:(0,s.jsx)(z,{...e,value:e.value??"",onChange:a=>{e.onChange(a.target.value),Q.safeParse(a.target.value).success&&(document.title=a.target.value)}})}),(0,s.jsx)(L,{})]}),(0,s.jsx)(q,{children:"The application title is put in the title tag in the HTML code and typically displayed in the title bar of the browser window."})]})}function ze(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{className:"shrink-0",children:"Custom CSS"}),(0,s.jsx)(M,{children:(0,s.jsx)(z,{...e,value:e.value??"",placeholder:"custom.css",onChange:a=>{e.onChange(a.target.value),Q.safeParse(a.target.value).success&&(document.title=a.target.value)}})}),(0,s.jsx)(L,{})]}),(0,s.jsx)(q,{children:"A filepath to a custom css file to be injected into the notebook."})]})}function De(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{className:"shrink-0",children:"HTML Head"}),(0,s.jsx)(M,{children:(0,s.jsx)(z,{...e,value:e.value??"",placeholder:"head.html",onChange:a=>{e.onChange(a.target.value)}})}),(0,s.jsx)(L,{})]}),(0,s.jsxs)(q,{children:["A filepath to an HTML file to be injected into the"," ",(0,s.jsx)(D,{className:"inline",children:"<head/>"})," section of the notebook. Use this to add analytics, custom fonts, meta tags, or external scripts."]})]})}function Oe(t){return(0,s.jsx)("option",{value:t.value,children:t.label},t.value)}function We(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"SQL Output Type"}),(0,s.jsx)(M,{children:(0,s.jsx)(R,{"data-testid":"sql-output-select",onChange:a=>{e.onChange(a.target.value),ge({title:"Kernel Restart Required",description:"This change requires a kernel restart to take effect."})},value:e.value,disabled:e.disabled,className:"inline-flex mr-2",children:ee.map(Oe)})}),(0,s.jsx)(L,{})]}),(0,s.jsxs)(q,{children:["The Python type returned by a SQL cell. For best performance with large datasets, we recommend using"," ",(0,s.jsx)(D,{className:"inline",children:"native"}),". See the"," ",(0,s.jsx)(_e,{href:"https://docs.marimo.io/guides/working_with_data/sql",children:"SQL guide"})," ","for more information."]})]})}var Ie=H();const Qe=t=>{let e=(0,Ie.c)(32),{showAppConfig:a,disabled:f,tooltip:r}=t,i=a===void 0?!0:a,u=f===void 0?!1:f,b=r===void 0?"Settings":r,[l,o]=X(le),w=u?"disabled":"hint-green",j;e[0]===Symbol.for("react.memo_cache_sentinel")?(j=(0,s.jsx)(K,{strokeWidth:1.8}),e[0]=j):j=e[0];let m;e[1]===b?m=e[2]:(m=(0,s.jsx)(U,{content:b,children:j}),e[1]=b,e[2]=m);let c;e[3]!==u||e[4]!==w||e[5]!==m?(c=(0,s.jsx)(G,{"aria-label":"Config","data-testid":"app-config-button",shape:"circle",size:"small",className:"h-[27px] w-[27px]",disabled:u,color:w,children:m}),e[3]=u,e[4]=w,e[5]=m,e[6]=c):c=e[6];let n=c,d;e[7]===Symbol.for("react.memo_cache_sentinel")?(d=(0,s.jsxs)(Ce,{className:"w-[90vw] h-[90vh] overflow-hidden sm:max-w-5xl top-[5vh] p-0",children:[(0,s.jsx)(be,{children:(0,s.jsx)(ye,{children:"User settings"})}),(0,s.jsx)(te,{})]}),e[7]=d):d=e[7];let x=d;if(!i){let T;e[8]===n?T=e[9]:(T=(0,s.jsx)(Ne,{children:n}),e[8]=n,e[9]=T);let E;return e[10]!==o||e[11]!==l||e[12]!==T?(E=(0,s.jsxs)(V,{open:l,onOpenChange:o,children:[T,x]}),e[10]=o,e[11]=l,e[12]=T,e[13]=E):E=e[13],E}let h;e[14]===n?h=e[15]:(h=(0,s.jsx)(de,{asChild:!0,children:n}),e[14]=n,e[15]=h);let y,N;e[16]===Symbol.for("react.memo_cache_sentinel")?(y=(0,s.jsx)(Pe,{}),N=(0,s.jsx)("div",{className:"h-px bg-border my-2"}),e[16]=y,e[17]=N):(y=e[16],N=e[17]);let v;e[18]===o?v=e[19]:(v=()=>o(!0),e[18]=o,e[19]=v);let C;e[20]===Symbol.for("react.memo_cache_sentinel")?(C=(0,s.jsx)(K,{strokeWidth:1.8,className:"w-4 h-4 mr-2"}),e[20]=C):C=e[20];let g;e[21]===v?g=e[22]:(g=(0,s.jsxs)(he,{className:"w-[650px] overflow-auto max-h-[80vh] max-w-[80vw]",align:"end",side:"bottom",onFocusOutside:Re,children:[y,N,(0,s.jsxs)(xe,{onClick:v,variant:"link",className:"px-0",children:[C,"User settings"]})]}),e[21]=v,e[22]=g);let k;e[23]!==g||e[24]!==h?(k=(0,s.jsxs)(me,{children:[h,g]}),e[23]=g,e[24]=h,e[25]=k):k=e[25];let p;e[26]!==o||e[27]!==l?(p=(0,s.jsx)(V,{open:l,onOpenChange:o,children:x}),e[26]=o,e[27]=l,e[28]=p):p=e[28];let _;return e[29]!==k||e[30]!==p?(_=(0,s.jsxs)(s.Fragment,{children:[k,p]}),e[29]=k,e[30]=p,e[31]=_):_=e[31],_};function Re(t){return t.preventDefault()}export{Me as n,Se as r,Qe as t};
1
+ import{s as W}from"./chunk-LvLJmgfZ.js";import{l as X}from"./useEvent-D91BmmQi.js";import{t as Z}from"./react-Bj1aDYRI.js";import{zt as I}from"./cells-B624w_H9.js";import{t as H}from"./compiler-runtime-B3qBwwSJ.js";import{S as $,c as ee,i as te,l as se,n as le,u as ae}from"./ai-model-dropdown-ll1QMFU0.js";import{C as oe,v as ne,w as Q}from"./utils-BrXijSdZ.js";import{T as re}from"./config-B2jNjodW.js";import{t as ie}from"./jsx-runtime-BqBOg78p.js";import{o as ce}from"./alert-dialog-BGBdrcqJ.js";import{i as de,r as he,t as me}from"./popover-UExmgBsf.js";import{l as R}from"./select-5i7URBEn.js";import{t as U}from"./tooltip-Gcwqb_SK.js";import{t as xe}from"./button-D9nb17Rw.js";import{s as B}from"./arrays-DYDL-3-i.js";import{r as Y}from"./requests-DIwGYs0l.js";import{t as pe}from"./createLucideIcon-D5guW7EU.js";import{t as fe}from"./x-C-6liIBr.js";import{r as z}from"./input-BX98vgAu.js";import{t as K}from"./settings-DfFe0dWD.js";import{a as M,c as A,d as L,g as ue,i as je,l as P,o as q,p as ve,u as S}from"./textarea-B3F_BjoD.js";import{t as ge}from"./use-toast-T0_cQDma.js";import{i as be}from"./RSPContexts-CINae4Gg.js";import{n as we}from"./useDebounce-CLMpJfhX.js";import{c as ye,l as Ne,n as Ce,t as V}from"./dialog-Dj0qTFnG.js";import{n as ke}from"./ImperativeModal-D7lQ0Q7_.js";import{t as D}from"./kbd-B3Breaz2.js";import{t as _e}from"./links-Dpap8NI2.js";import{t as G}from"./Inputs-BdyX096j.js";var Se=pe("power-off",[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),Te=H(),s=W(ie(),1);const Me=t=>{let e=(0,Te.c)(15),{description:a,disabled:f,tooltip:r}=t,i=f===void 0?!1:f,u=r===void 0?"Shutdown":r,{openConfirm:b,closeModal:l}=ke(),{sendShutdown:o}=Y(),w;e[0]===o?w=e[1]:(w=()=>{o(),setTimeout(Ae,200)},e[0]=o,e[1]=w);let j=w;if(re())return null;let m=i?"disabled":"red",c;e[2]!==l||e[3]!==a||e[4]!==j||e[5]!==b?(c=h=>{h.stopPropagation(),b({title:"Shutdown",description:a,variant:"destructive",confirmAction:(0,s.jsx)(ce,{onClick:()=>{j(),l()},"aria-label":"Confirm Shutdown",children:"Shutdown"})})},e[2]=l,e[3]=a,e[4]=j,e[5]=b,e[6]=c):c=e[6];let n;e[7]===Symbol.for("react.memo_cache_sentinel")?(n=(0,s.jsx)(fe,{strokeWidth:1}),e[7]=n):n=e[7];let d;e[8]!==i||e[9]!==m||e[10]!==c?(d=(0,s.jsx)(G,{"aria-label":"Shutdown","data-testid":"shutdown-button",shape:"circle",size:"small",color:m,className:"h-[27px] w-[27px]",disabled:i,onClick:c,children:n}),e[8]=i,e[9]=m,e[10]=c,e[11]=d):d=e[11];let x;return e[12]!==d||e[13]!==u?(x=(0,s.jsx)(U,{content:u,children:d}),e[12]=d,e[13]=u,e[14]=x):x=e[14],x};function Ae(){window.close()}var J=H(),O=W(Z(),1),Le=100;const Pe=()=>{let t=(0,J.c)(37),[e,a]=ne(),{saveAppConfig:f}=Y(),r=(0,O.useId)(),i=(0,O.useId)(),u;t[0]===Symbol.for("react.memo_cache_sentinel")?(u=ve(oe),t[0]=u):u=t[0];let b;t[1]===e?b=t[2]:(b={resolver:u,defaultValues:e},t[1]=e,t[2]=b);let l=ue(b),o;t[3]!==f||t[4]!==a?(o=async p=>{await f({config:p}).then(()=>{a(p)}).catch(()=>{a(p)})},t[3]=f,t[4]=a,t[5]=o):o=t[5];let w=o,j;t[6]===w?j=t[7]:(j=p=>{w(p)},t[6]=w,t[7]=j);let m=we(j,Le),c;t[8]===e.width?c=t[9]:(c=[e.width],t[8]=e.width,t[9]=c),(0,O.useEffect)(qe,c);let n;t[10]!==m||t[11]!==l?(n=l.handleSubmit(m),t[10]=m,t[11]=l,t[12]=n):n=t[12];let d;t[13]===Symbol.for("react.memo_cache_sentinel")?(d=(0,s.jsxs)("div",{children:[(0,s.jsx)(ae,{children:"Notebook Settings"}),(0,s.jsx)(se,{children:"Configure how your notebook or application looks and behaves."})]}),t[13]=d):d=t[13];let x;t[14]===l.control?x=t[15]:(x=(0,s.jsxs)(F,{title:"Display",children:[(0,s.jsx)(A,{control:l.control,name:"width",render:Fe}),(0,s.jsx)(A,{control:l.control,name:"app_title",render:He})]}),t[14]=l.control,t[15]=x);let h;t[16]===l.control?h=t[17]:(h=(0,s.jsxs)(F,{title:"Custom Files",children:[(0,s.jsx)(A,{control:l.control,name:"css_file",render:ze}),(0,s.jsx)(A,{control:l.control,name:"html_head_file",render:De})]}),t[16]=l.control,t[17]=h);let y;t[18]===l.control?y=t[19]:(y=(0,s.jsx)(F,{title:"Data",children:(0,s.jsx)(A,{control:l.control,name:"sql_output",render:We})}),t[18]=l.control,t[19]=y);let N;t[20]!==r||t[21]!==i?(N=p=>{let{field:_}=p;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-col gap-2",children:[(0,s.jsx)(M,{children:(0,s.jsxs)("div",{className:"flex gap-4",children:[(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(I,{id:r,"data-testid":"html-checkbox",checked:_.value.includes("html"),onCheckedChange:()=>{_.onChange(B(_.value,"html"))}}),(0,s.jsx)(S,{htmlFor:r,children:"HTML"})]}),(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(I,{id:i,"data-testid":"ipynb-checkbox",checked:_.value.includes("ipynb"),onCheckedChange:()=>{_.onChange(B(_.value,"ipynb"))}}),(0,s.jsx)(S,{htmlFor:i,children:"IPYNB"})]})]})}),(0,s.jsx)(L,{})]}),(0,s.jsxs)(q,{children:["When enabled, marimo will periodically save this notebook in your selected formats (HTML, IPYNB) to a folder named"," ",(0,s.jsx)(D,{className:"inline",children:"__marimo__"})," next to your notebook file."]})]})},t[20]=r,t[21]=i,t[22]=N):N=t[22];let v;t[23]!==l.control||t[24]!==N?(v=(0,s.jsx)(F,{title:"Exporting outputs",children:(0,s.jsx)(A,{control:l.control,name:"auto_download",render:N})}),t[23]=l.control,t[24]=N,t[25]=v):v=t[25];let C;t[26]!==v||t[27]!==x||t[28]!==h||t[29]!==y?(C=(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-x-8 gap-y-4",children:[x,h,y,v]}),t[26]=v,t[27]=x,t[28]=h,t[29]=y,t[30]=C):C=t[30];let g;t[31]!==C||t[32]!==n?(g=(0,s.jsxs)("form",{onChange:n,className:"flex flex-col gap-6",children:[d,C]}),t[31]=C,t[32]=n,t[33]=g):g=t[33];let k;return t[34]!==l||t[35]!==g?(k=(0,s.jsx)(je,{...l,children:g}),t[34]=l,t[35]=g,t[36]=k):k=t[36],k};var F=t=>{let e=(0,J.c)(5),{title:a,children:f}=t,r;e[0]===a?r=e[1]:(r=(0,s.jsx)("h3",{className:"text-base font-semibold mb-1",children:a}),e[0]=a,e[1]=r);let i;return e[2]!==f||e[3]!==r?(i=(0,s.jsxs)("div",{className:"flex flex-col gap-y-2",children:[r,f]}),e[2]=f,e[3]=r,e[4]=i):i=e[4],i};function qe(){window.dispatchEvent(new Event("resize"))}function Ee(t){return(0,s.jsx)("option",{value:t,children:t},t)}function Fe(t){let{field:e}=t;return(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"Width"}),(0,s.jsx)(M,{children:(0,s.jsx)(R,{"data-testid":"app-width-select",onChange:a=>e.onChange(a.target.value),value:e.value,disabled:e.disabled,className:"inline-flex mr-2",children:$().map(Ee)})}),(0,s.jsx)(L,{})]})}function He(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"App title"}),(0,s.jsx)(M,{children:(0,s.jsx)(z,{...e,value:e.value??"",onChange:a=>{e.onChange(a.target.value),Q.safeParse(a.target.value).success&&(document.title=a.target.value)}})}),(0,s.jsx)(L,{})]}),(0,s.jsx)(q,{children:"The application title is put in the title tag in the HTML code and typically displayed in the title bar of the browser window."})]})}function ze(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{className:"shrink-0",children:"Custom CSS"}),(0,s.jsx)(M,{children:(0,s.jsx)(z,{...e,value:e.value??"",placeholder:"custom.css",onChange:a=>{e.onChange(a.target.value),Q.safeParse(a.target.value).success&&(document.title=a.target.value)}})}),(0,s.jsx)(L,{})]}),(0,s.jsx)(q,{children:"A filepath to a custom css file to be injected into the notebook."})]})}function De(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{className:"shrink-0",children:"HTML Head"}),(0,s.jsx)(M,{children:(0,s.jsx)(z,{...e,value:e.value??"",placeholder:"head.html",onChange:a=>{e.onChange(a.target.value)}})}),(0,s.jsx)(L,{})]}),(0,s.jsxs)(q,{children:["A filepath to an HTML file to be injected into the"," ",(0,s.jsx)(D,{className:"inline",children:"<head/>"})," section of the notebook. Use this to add analytics, custom fonts, meta tags, or external scripts."]})]})}function Oe(t){return(0,s.jsx)("option",{value:t.value,children:t.label},t.value)}function We(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"SQL Output Type"}),(0,s.jsx)(M,{children:(0,s.jsx)(R,{"data-testid":"sql-output-select",onChange:a=>{e.onChange(a.target.value),ge({title:"Kernel Restart Required",description:"This change requires a kernel restart to take effect."})},value:e.value,disabled:e.disabled,className:"inline-flex mr-2",children:ee.map(Oe)})}),(0,s.jsx)(L,{})]}),(0,s.jsxs)(q,{children:["The Python type returned by a SQL cell. For best performance with large datasets, we recommend using"," ",(0,s.jsx)(D,{className:"inline",children:"native"}),". See the"," ",(0,s.jsx)(_e,{href:"https://docs.marimo.io/guides/working_with_data/sql",children:"SQL guide"})," ","for more information."]})]})}var Ie=H();const Qe=t=>{let e=(0,Ie.c)(32),{showAppConfig:a,disabled:f,tooltip:r}=t,i=a===void 0?!0:a,u=f===void 0?!1:f,b=r===void 0?"Settings":r,[l,o]=X(le),w=u?"disabled":"hint-green",j;e[0]===Symbol.for("react.memo_cache_sentinel")?(j=(0,s.jsx)(K,{strokeWidth:1.8}),e[0]=j):j=e[0];let m;e[1]===b?m=e[2]:(m=(0,s.jsx)(U,{content:b,children:j}),e[1]=b,e[2]=m);let c;e[3]!==u||e[4]!==w||e[5]!==m?(c=(0,s.jsx)(G,{"aria-label":"Config","data-testid":"app-config-button",shape:"circle",size:"small",className:"h-[27px] w-[27px]",disabled:u,color:w,children:m}),e[3]=u,e[4]=w,e[5]=m,e[6]=c):c=e[6];let n=c,d;e[7]===Symbol.for("react.memo_cache_sentinel")?(d=(0,s.jsxs)(Ce,{className:"w-[90vw] h-[90vh] overflow-hidden sm:max-w-5xl top-[5vh] p-0",children:[(0,s.jsx)(be,{children:(0,s.jsx)(ye,{children:"User settings"})}),(0,s.jsx)(te,{})]}),e[7]=d):d=e[7];let x=d;if(!i){let T;e[8]===n?T=e[9]:(T=(0,s.jsx)(Ne,{children:n}),e[8]=n,e[9]=T);let E;return e[10]!==o||e[11]!==l||e[12]!==T?(E=(0,s.jsxs)(V,{open:l,onOpenChange:o,children:[T,x]}),e[10]=o,e[11]=l,e[12]=T,e[13]=E):E=e[13],E}let h;e[14]===n?h=e[15]:(h=(0,s.jsx)(de,{asChild:!0,children:n}),e[14]=n,e[15]=h);let y,N;e[16]===Symbol.for("react.memo_cache_sentinel")?(y=(0,s.jsx)(Pe,{}),N=(0,s.jsx)("div",{className:"h-px bg-border my-2"}),e[16]=y,e[17]=N):(y=e[16],N=e[17]);let v;e[18]===o?v=e[19]:(v=()=>o(!0),e[18]=o,e[19]=v);let C;e[20]===Symbol.for("react.memo_cache_sentinel")?(C=(0,s.jsx)(K,{strokeWidth:1.8,className:"w-4 h-4 mr-2"}),e[20]=C):C=e[20];let g;e[21]===v?g=e[22]:(g=(0,s.jsxs)(he,{className:"w-[650px] overflow-auto max-h-[80vh] max-w-[80vw]",align:"end",side:"bottom",onFocusOutside:Re,children:[y,N,(0,s.jsxs)(xe,{onClick:v,variant:"link",className:"px-0",children:[C,"User settings"]})]}),e[21]=v,e[22]=g);let k;e[23]!==g||e[24]!==h?(k=(0,s.jsxs)(me,{children:[h,g]}),e[23]=g,e[24]=h,e[25]=k):k=e[25];let p;e[26]!==o||e[27]!==l?(p=(0,s.jsx)(V,{open:l,onOpenChange:o,children:x}),e[26]=o,e[27]=l,e[28]=p):p=e[28];let _;return e[29]!==k||e[30]!==p?(_=(0,s.jsxs)(s.Fragment,{children:[k,p]}),e[29]=k,e[30]=p,e[31]=_):_=e[31],_};function Re(t){return t.preventDefault()}export{Me as n,Se as r,Qe as t};
@@ -1,5 +1,5 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./loro_wasm_bg-DWJCS9pK.js","./loro_wasm_bg-Bu4Ofw1K.js","./chunk-LvLJmgfZ.js"])))=>i.map(i=>d[i]);
2
- var nd=Object.defineProperty;var Ia=re=>{throw TypeError(re)};var rd=(re,z,pe)=>z in re?nd(re,z,{enumerable:!0,configurable:!0,writable:!0,value:pe}):re[z]=pe;var p=(re,z,pe)=>rd(re,typeof z!="symbol"?z+"":z,pe),od=(re,z,pe)=>z.has(re)||Ia("Cannot "+pe);var Fa=(re,z,pe)=>(od(re,z,"read from private field"),pe?pe.call(re):z.get(re)),La=(re,z,pe)=>z.has(re)?Ia("Cannot add the same private member more than once"):z instanceof WeakSet?z.add(re):z.set(re,pe);import{s as Oa}from"./chunk-LvLJmgfZ.js";import{d as _a,f as gr,i as ee,l as vn,n as le,p as _t,s as En,u as se}from"./useEvent-D91BmmQi.js";import{t as ad}from"./react-Bj1aDYRI.js";import{$t as Da,Ai as Nn,B as Ua,Bt as Ba,Ct as hr,Dt as id,E as kn,Et as sd,F as ld,G as ja,H as Pa,Hn as cd,Jt as br,Kn as ud,Ln as dd,Ot as Dt,Qt as Ma,Rn as fd,St as md,Tt as Cn,U as Ra,V as pd,Vn as Ga,Xr as gd,Yr as hd,Zt as yr,_n as bd,a as Ja,b as tt,bn as yd,d as Wa,ei as wd,h as wr,it as vd,jn as Ed,jt as Nd,ln as kd,mn as Cd,mt as Sd,nn as xd,on as Sn,ot as Ad,pr as Td,pt as vr,qr as Er,qt as Id,rn as Fd,ti as Va,tn as Ld,u as $a,vi as Ha,wn as Nr,xi as Od,xn as _d,yn as Dd,zn as Ud,zr as Bd,zt as jd,__tla as Pd}from"./cells-Wp62mkuO.js";import{P as qa,R as Md,k as Rd,w as Gd}from"./zod-H_cgTO0M.js";import{t as Ge}from"./compiler-runtime-B3qBwwSJ.js";import{C as Jd,f as Wd,m as Vd,p as $d,t as Hd,v as qd,w as zd}from"./ai-model-dropdown-B43T4OtX.js";import{_ as $e,c as za,h as kr,t as Kd,v as Yd}from"./useEventListener-BR0C1MaI.js";import{t as Ut}from"./invariant-BUdrueMv.js";import{S as Cr,h as Ka,m as Xd,o as Qd,p as Ya,s as Xa}from"./utils-BrXijSdZ.js";import{S as Qa,T as Zd,m as ef,o as tf,r as Za,v as ht,w as Bt}from"./config-B2jNjodW.js";import{n as nf,t as rf}from"./switch-DZyZgphf.js";import{n as of}from"./globals-BS0Ia3-E.js";import{t as af}from"./ErrorBoundary-DzYV_VeY.js";import{t as st}from"./cn-DCUzRj2J.js";import{t as sf}from"./jsx-runtime-BqBOg78p.js";import{l as lf,r as cf,t as uf}from"./popover-UExmgBsf.js";import{I as df,__tla as ff}from"./JsonOutput-DyvRuemf.js";import{t as Sr}from"./label-DTR8T0AE.js";import{r as mf}from"./download-DeMXY7lE.js";import{t as xn}from"./tooltip-Gcwqb_SK.js";import{r as xr,t as lt}from"./button-D9nb17Rw.js";import{Bt as bt,Ct as ei,Dt as pf,E as gf,Ft as Ar,H as ti,Ht as jt,I as hf,J as l,Jt as fe,Kt as bf,Lt as An,Mt as yf,P as wf,St as Je,V as ni,Vt as Tr,Wt as ct,Yt as He,Zt as Pt,_ as vf,a as Ef,at as j,bt as Nf,ct as Xe,en as Tn,ft as kf,it as Cf,lt as In,m as Sf,pt as xf,rt as H,st as Af,vt as Tf,w as If,wt as Ff,yt as Lf,zt as Of}from"./dist-BrR4M-k3.js";import{E as _f,P as Df,S as Uf,a as Bf,b as jf,c as Pf,n as Ir,r as Mf,w as Rf,x as Gf}from"./dist-CHcznzB-.js";import{o as ri}from"./arrays-DYDL-3-i.js";import{n as Jf}from"./once-DRroIaBz.js";import{t as Fr}from"./createReducer-1ePoj7v6.js";import{a as Wf,c as Vf,f as Fn,h as $f,i as Hf,l as Mt,n as oi,o as qf,t as zf}from"./dist-HlsDto3K.js";import{t as Kf}from"./main-B0OX4z33.js";import{r as Ln,t as Yf}from"./requests-DIwGYs0l.js";import{t as Xf}from"./createLucideIcon-D5guW7EU.js";import{r as ai,t as Qf,__tla as Zf}from"./layout-BSDV2zsQ.js";import{t as em}from"./x-C-6liIBr.js";import{t as tm}from"./circle-check-C17zXg7L.js";import{A as nm,E as ii,O as rm,T as om,a as si,d as am,n as im,o as sm,r as li,s as lm,x as cm}from"./add-cell-with-ai-DMh3huz_.js";import{r as um,t as dm}from"./file-icons-BB3Rj-wm.js";import{n as fm}from"./spinner-Bhir8k53.js";import{t as ci}from"./save-Clg5dMoP.js";import{Y as mm,Z as ui}from"./input-BX98vgAu.js";import{t as pm}from"./sparkles-CZ5WmLPA.js";import{t as gm}from"./preload-helper-DItdS47A.js";import{t as yt}from"./use-toast-T0_cQDma.js";import{n as Qe}from"./paths-BXWH6vv4.js";import{t as hm}from"./session-VtovaFBS.js";import{r as bm}from"./useTheme-DFXuDFj9.js";import{n as ym}from"./copy-BCF-tANo.js";import{k as wm}from"./usePress-CfcdTqJM.js";import{a as vm}from"./useRunCells-CA51wX-c.js";import{c as di,i as fi,n as mi,r as Em}from"./dialog-Dj0qTFnG.js";import{t as pi}from"./useHotkey-DccKPSPx.js";import{n as gi}from"./ImperativeModal-D7lQ0Q7_.js";import{r as Nm}from"./errors-TZBmrJmc.js";import{t as Y}from"./extends-B2LJnKU3.js";import{t as Rt}from"./objectWithoutPropertiesLoose-DaPAPabU.js";import{t as km}from"./kbd-B3Breaz2.js";import{a as Lr}from"./useInstallPackage-D0NLybAx.js";import{i as Cm,n as hi}from"./state-CxczBoEs.js";import{a as Sm,o as xm}from"./cell-link-CpZw-906.js";import{n as Am}from"./useAsyncData-BFC6lWG9.js";import{a as Tm,o as bi,r as Im,s as yi,t as Fm}from"./command-CBCkexpx.js";import{r as wi}from"./html-to-image-BZTmy2-K.js";import{a as Lm}from"./focus-Cg3dLaBY.js";import{a as vi}from"./renderShortcut-Bfk4NjRL.js";import{n as Om,t as _m}from"./icons-D9TuFTJG.js";import{n as wt}from"./esm-BmrwxxCo.js";import{t as Ei}from"./dist-DCqWIRLq.js";import{n as Or,t as Ni}from"./useDeleteCell-QZgst2RC.js";import{t as Dm}from"./useSplitCell-C8vIjR4-.js";import{co as Um,do as _r,fo as Bm,ft as jm,go as vt,ho as ki,lo as Dr,mo as Ci,oo as Pm,po as Mm,so as Si,uo as xi,__tla as Rm}from"./loro_wasm_bg-Bu4Ofw1K.js";import{t as Gm}from"./ws-CtTwmdal.js";import{t as Ai}from"./Inputs-BdyX096j.js";import{n as Jm}from"./hooks-CWL7vReb.js";let On,Ur,Ti,Br,ut,jr,he,Gt,Jt,Ii,Fi,Li,Oi,_i,_n,Di,Dn,Ui,Un,Wm=Promise.all([(()=>{try{return Pd}catch{}})(),(()=>{try{return ff}catch{}})(),(()=>{try{return Zf}catch{}})(),(()=>{try{return Rm}catch{}})()]).then(async()=>{var wn,Ta,ye,we,ve,Ee,Ne,ke,Ce,Se,xe,Ae,Te,Ie,Fe,Le,Oe,_e,De,Ue,Be;var re=Xf("file-pen",[["path",{d:"M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34",key:"o6klzx"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z",key:"zhnas1"}]]);const z={showInput:"Mod-l",acceptEdit:"Mod-y",rejectEdit:"Mod-u"};var pe=300;const Nt=jt.define({combine:e=>Tn(e,{onError:console.error,inputDebounceTime:pe,keymaps:z},{onError:(t,n)=>t&&n,inputDebounceTime:(t,n)=>t&&n,keymaps:(t,n)=>t&&n})}),nt=fe.define(),rt=He.define({create(){return{show:!1,lineFrom:0,lineTo:0}},update(e,t){for(let n of t.effects)if(n.is(nt))return n.value;return e}}),kt=fe.define(),Ct=fe.define(),Mr=He.define({create(){return{shouldFocus:!1,inputValue:""}},update(e,t){let n=e;for(let r of t.effects)r.is(kt)&&(n={...n,inputValue:r.value}),r.is(Ct)&&(n={...n,shouldFocus:r.value});return n}}),Wt=fe.define(),St=He.define({create(){return null},update(e,t){for(let n of t.effects)if(n.is(Wt))return n.value;return e}}),dt=fe.define(),Rr=He.define({create(){return!1},update(e,t){for(let n of t.effects)if(n.is(dt))return n.value;return e}});var Bi=1;const Gr=e=>{let{state:t}=e,n=t.selection.main;if(n.empty)return!1;let r=t.doc,o=r.lineAt(n.from),a=r.lineAt(n.to);if(t.sliceDoc(o.from,a.to).trim().length<Bi)return!1;let i=Math.max(1,Math.min(o.number,r.lines)),s=Math.max(1,Math.min(a.number,r.lines));return e.dispatch({effects:[nt.of({show:!0,lineFrom:i,lineTo:s}),Ct.of(!0),kt.of("")],selection:bt.cursor(o.from)}),!0},Jr=e=>e.state.field(St)?(e.dispatch({effects:[Wt.of(null),nt.of({show:!1,lineFrom:0,lineTo:0}),Ct.of(!1),kt.of(""),dt.of(!1)]}),!0):!1,Wr=e=>{let t=e.state.field(St);return t?(e.dispatch({changes:{from:t.from,to:t.to,insert:t.oldCode},effects:[Wt.of(null),nt.of({show:!1,lineFrom:0,lineTo:0}),Ct.of(!1),kt.of(""),dt.of(!1)]}),!0):!1};var Bn={mac:"\u2318",windows:"\u229E Win",default:"Ctrl"};function ji(){return navigator.platform.startsWith("Mac")?Bn.mac:navigator.platform.startsWith("Win")?Bn.windows:Bn.default}function jn(e){return e.replace("Mod",ji()).replace("-"," ").toUpperCase()}function ue(e,t){let n=document.createElement(e);return n.className=t,n}function Pi(e,t,n=void 0){let r=()=>{};return(...o)=>(r(),new Promise((a,i)=>{let s=setTimeout(()=>a(e(...o)),t);r=()=>{clearTimeout(s),n!==void 0&&i(n)}}))}var Vt=He.define({create(){return{suggestion:null}},update(e,t){let n=t.effects.find(r=>r.is($t));return!t.docChanged&&!n&&!t.selection?e:n&&t.state.doc===n.value.doc?{suggestion:n.value.text}:{suggestion:null}}}),$t=fe.define();function Mi(e,t){let n=e.state.selection.main.head,r=[],o=H.widget({widget:new Ri(t),side:1});return r.push(o.range(n)),H.set(r)}var Ri=class extends In{constructor(t){super();p(this,"suggestion");this.suggestion=t}toDOM(){let t=document.createElement("span");return t.style.opacity="0.4",t.className="cm-inline-suggestion",t.textContent=this.suggestion,t.setAttribute("role","suggestion"),t.setAttribute("aria-label",`Suggestion: ${this.suggestion}`),t}get lineBreaks(){return this.suggestion.split(`
2
+ var nd=Object.defineProperty;var Ia=re=>{throw TypeError(re)};var rd=(re,z,pe)=>z in re?nd(re,z,{enumerable:!0,configurable:!0,writable:!0,value:pe}):re[z]=pe;var p=(re,z,pe)=>rd(re,typeof z!="symbol"?z+"":z,pe),od=(re,z,pe)=>z.has(re)||Ia("Cannot "+pe);var Fa=(re,z,pe)=>(od(re,z,"read from private field"),pe?pe.call(re):z.get(re)),La=(re,z,pe)=>z.has(re)?Ia("Cannot add the same private member more than once"):z instanceof WeakSet?z.add(re):z.set(re,pe);import{s as Oa}from"./chunk-LvLJmgfZ.js";import{d as _a,f as gr,i as ee,l as vn,n as le,p as _t,s as En,u as se}from"./useEvent-D91BmmQi.js";import{t as ad}from"./react-Bj1aDYRI.js";import{$t as Da,Ai as Nn,B as Ua,Bt as Ba,Ct as hr,Dt as id,E as kn,Et as sd,F as ld,G as ja,H as Pa,Hn as cd,Jt as br,Kn as ud,Ln as dd,Ot as Dt,Qt as Ma,Rn as fd,St as md,Tt as Cn,U as Ra,V as pd,Vn as Ga,Xr as gd,Yr as hd,Zt as yr,_n as bd,a as Ja,b as tt,bn as yd,d as Wa,ei as wd,h as wr,it as vd,jn as Ed,jt as Nd,ln as kd,mn as Cd,mt as Sd,nn as xd,on as Sn,ot as Ad,pr as Td,pt as vr,qr as Er,qt as Id,rn as Fd,ti as Va,tn as Ld,u as $a,vi as Ha,wn as Nr,xi as Od,xn as _d,yn as Dd,zn as Ud,zr as Bd,zt as jd,__tla as Pd}from"./cells-B624w_H9.js";import{P as qa,R as Md,k as Rd,w as Gd}from"./zod-H_cgTO0M.js";import{t as Ge}from"./compiler-runtime-B3qBwwSJ.js";import{C as Jd,f as Wd,m as Vd,p as $d,t as Hd,v as qd,w as zd}from"./ai-model-dropdown-ll1QMFU0.js";import{_ as $e,c as za,h as kr,t as Kd,v as Yd}from"./useEventListener-BR0C1MaI.js";import{t as Ut}from"./invariant-BUdrueMv.js";import{S as Cr,h as Ka,m as Xd,o as Qd,p as Ya,s as Xa}from"./utils-BrXijSdZ.js";import{S as Qa,T as Zd,m as ef,o as tf,r as Za,v as ht,w as Bt}from"./config-B2jNjodW.js";import{n as nf,t as rf}from"./switch-DZyZgphf.js";import{n as of}from"./globals-BS0Ia3-E.js";import{t as af}from"./ErrorBoundary-DzYV_VeY.js";import{t as st}from"./cn-DCUzRj2J.js";import{t as sf}from"./jsx-runtime-BqBOg78p.js";import{l as lf,r as cf,t as uf}from"./popover-UExmgBsf.js";import{I as df,__tla as ff}from"./JsonOutput-J02aK2i8.js";import{t as Sr}from"./label-DTR8T0AE.js";import{r as mf}from"./download-B6QfSAZf.js";import{t as xn}from"./tooltip-Gcwqb_SK.js";import{r as xr,t as lt}from"./button-D9nb17Rw.js";import{Bt as bt,Ct as ei,Dt as pf,E as gf,Ft as Ar,H as ti,Ht as jt,I as hf,J as l,Jt as fe,Kt as bf,Lt as An,Mt as yf,P as wf,St as Je,V as ni,Vt as Tr,Wt as ct,Yt as He,Zt as Pt,_ as vf,a as Ef,at as j,bt as Nf,ct as Xe,en as Tn,ft as kf,it as Cf,lt as In,m as Sf,pt as xf,rt as H,st as Af,vt as Tf,w as If,wt as Ff,yt as Lf,zt as Of}from"./dist-BrR4M-k3.js";import{E as _f,P as Df,S as Uf,a as Bf,b as jf,c as Pf,n as Ir,r as Mf,w as Rf,x as Gf}from"./dist-CHcznzB-.js";import{o as ri}from"./arrays-DYDL-3-i.js";import{n as Jf}from"./once-DRroIaBz.js";import{t as Fr}from"./createReducer-1ePoj7v6.js";import{a as Wf,c as Vf,f as Fn,h as $f,i as Hf,l as Mt,n as oi,o as qf,t as zf}from"./dist-HlsDto3K.js";import{t as Kf}from"./main-B0OX4z33.js";import{r as Ln,t as Yf}from"./requests-DIwGYs0l.js";import{t as Xf}from"./createLucideIcon-D5guW7EU.js";import{r as ai,t as Qf,__tla as Zf}from"./layout-BUGeEeY7.js";import{t as em}from"./x-C-6liIBr.js";import{t as tm}from"./circle-check-C17zXg7L.js";import{A as nm,E as ii,O as rm,T as om,a as si,d as am,n as im,o as sm,r as li,s as lm,x as cm}from"./add-cell-with-ai-DIq2bBlj.js";import{r as um,t as dm}from"./file-icons-D4rVuS1i.js";import{n as fm}from"./spinner-Bhir8k53.js";import{t as ci}from"./save-Clg5dMoP.js";import{Y as mm,Z as ui}from"./input-BX98vgAu.js";import{t as pm}from"./sparkles-CZ5WmLPA.js";import{t as gm}from"./preload-helper-DItdS47A.js";import{t as yt}from"./use-toast-T0_cQDma.js";import{n as Qe}from"./paths-BXWH6vv4.js";import{t as hm}from"./session-VtovaFBS.js";import{r as bm}from"./useTheme-DFXuDFj9.js";import{n as ym}from"./copy-BCF-tANo.js";import{k as wm}from"./usePress-CfcdTqJM.js";import{a as vm}from"./useRunCells-BZHmiKaL.js";import{c as di,i as fi,n as mi,r as Em}from"./dialog-Dj0qTFnG.js";import{t as pi}from"./useHotkey-DccKPSPx.js";import{n as gi}from"./ImperativeModal-D7lQ0Q7_.js";import{r as Nm}from"./errors-TZBmrJmc.js";import{t as Y}from"./extends-B2LJnKU3.js";import{t as Rt}from"./objectWithoutPropertiesLoose-DaPAPabU.js";import{t as km}from"./kbd-B3Breaz2.js";import{a as Lr}from"./useInstallPackage-D0NLybAx.js";import{i as Cm,n as hi}from"./state-rNkOi6pv.js";import{a as Sm,o as xm}from"./cell-link-3OOv6O0A.js";import{n as Am}from"./useAsyncData-BFC6lWG9.js";import{a as Tm,o as bi,r as Im,s as yi,t as Fm}from"./command-CBCkexpx.js";import{r as wi}from"./html-to-image-C4B8YBxt.js";import{a as Lm}from"./focus-B4X28BCE.js";import{a as vi}from"./renderShortcut-Bfk4NjRL.js";import{n as Om,t as _m}from"./icons-D9TuFTJG.js";import{n as wt}from"./esm-BmrwxxCo.js";import{t as Ei}from"./dist-DCqWIRLq.js";import{n as Or,t as Ni}from"./useDeleteCell-Dg0kcRv1.js";import{t as Dm}from"./useSplitCell-DwxRK5WQ.js";import{co as Um,do as _r,fo as Bm,ft as jm,go as vt,ho as ki,lo as Dr,mo as Ci,oo as Pm,po as Mm,so as Si,uo as xi,__tla as Rm}from"./loro_wasm_bg-Bu4Ofw1K.js";import{t as Gm}from"./ws-CtTwmdal.js";import{t as Ai}from"./Inputs-BdyX096j.js";import{n as Jm}from"./hooks-KQ_ubW6k.js";let On,Ur,Ti,Br,ut,jr,he,Gt,Jt,Ii,Fi,Li,Oi,_i,_n,Di,Dn,Ui,Un,Wm=Promise.all([(()=>{try{return Pd}catch{}})(),(()=>{try{return ff}catch{}})(),(()=>{try{return Zf}catch{}})(),(()=>{try{return Rm}catch{}})()]).then(async()=>{var wn,Ta,ye,we,ve,Ee,Ne,ke,Ce,Se,xe,Ae,Te,Ie,Fe,Le,Oe,_e,De,Ue,Be;var re=Xf("file-pen",[["path",{d:"M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34",key:"o6klzx"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z",key:"zhnas1"}]]);const z={showInput:"Mod-l",acceptEdit:"Mod-y",rejectEdit:"Mod-u"};var pe=300;const Nt=jt.define({combine:e=>Tn(e,{onError:console.error,inputDebounceTime:pe,keymaps:z},{onError:(t,n)=>t&&n,inputDebounceTime:(t,n)=>t&&n,keymaps:(t,n)=>t&&n})}),nt=fe.define(),rt=He.define({create(){return{show:!1,lineFrom:0,lineTo:0}},update(e,t){for(let n of t.effects)if(n.is(nt))return n.value;return e}}),kt=fe.define(),Ct=fe.define(),Mr=He.define({create(){return{shouldFocus:!1,inputValue:""}},update(e,t){let n=e;for(let r of t.effects)r.is(kt)&&(n={...n,inputValue:r.value}),r.is(Ct)&&(n={...n,shouldFocus:r.value});return n}}),Wt=fe.define(),St=He.define({create(){return null},update(e,t){for(let n of t.effects)if(n.is(Wt))return n.value;return e}}),dt=fe.define(),Rr=He.define({create(){return!1},update(e,t){for(let n of t.effects)if(n.is(dt))return n.value;return e}});var Bi=1;const Gr=e=>{let{state:t}=e,n=t.selection.main;if(n.empty)return!1;let r=t.doc,o=r.lineAt(n.from),a=r.lineAt(n.to);if(t.sliceDoc(o.from,a.to).trim().length<Bi)return!1;let i=Math.max(1,Math.min(o.number,r.lines)),s=Math.max(1,Math.min(a.number,r.lines));return e.dispatch({effects:[nt.of({show:!0,lineFrom:i,lineTo:s}),Ct.of(!0),kt.of("")],selection:bt.cursor(o.from)}),!0},Jr=e=>e.state.field(St)?(e.dispatch({effects:[Wt.of(null),nt.of({show:!1,lineFrom:0,lineTo:0}),Ct.of(!1),kt.of(""),dt.of(!1)]}),!0):!1,Wr=e=>{let t=e.state.field(St);return t?(e.dispatch({changes:{from:t.from,to:t.to,insert:t.oldCode},effects:[Wt.of(null),nt.of({show:!1,lineFrom:0,lineTo:0}),Ct.of(!1),kt.of(""),dt.of(!1)]}),!0):!1};var Bn={mac:"\u2318",windows:"\u229E Win",default:"Ctrl"};function ji(){return navigator.platform.startsWith("Mac")?Bn.mac:navigator.platform.startsWith("Win")?Bn.windows:Bn.default}function jn(e){return e.replace("Mod",ji()).replace("-"," ").toUpperCase()}function ue(e,t){let n=document.createElement(e);return n.className=t,n}function Pi(e,t,n=void 0){let r=()=>{};return(...o)=>(r(),new Promise((a,i)=>{let s=setTimeout(()=>a(e(...o)),t);r=()=>{clearTimeout(s),n!==void 0&&i(n)}}))}var Vt=He.define({create(){return{suggestion:null}},update(e,t){let n=t.effects.find(r=>r.is($t));return!t.docChanged&&!n&&!t.selection?e:n&&t.state.doc===n.value.doc?{suggestion:n.value.text}:{suggestion:null}}}),$t=fe.define();function Mi(e,t){let n=e.state.selection.main.head,r=[],o=H.widget({widget:new Ri(t),side:1});return r.push(o.range(n)),H.set(r)}var Ri=class extends In{constructor(t){super();p(this,"suggestion");this.suggestion=t}toDOM(){let t=document.createElement("span");return t.style.opacity="0.4",t.className="cm-inline-suggestion",t.textContent=this.suggestion,t.setAttribute("role","suggestion"),t.setAttribute("aria-label",`Suggestion: ${this.suggestion}`),t}get lineBreaks(){return this.suggestion.split(`
3
3
  `).length-1}},Gi=class{constructor(e){p(this,"cache",new Map);p(this,"timeout");this.timeout=e}get(e){let t=this.cache.get(e);return t?Date.now()-t.timestamp>this.timeout?(this.cache.delete(e),null):t.result:null}set(e,t){this.cache.set(e,{result:t,timestamp:Date.now()})}},Ji=(e,t)=>Xe.fromClass(class{constructor(){p(this,"abortController",null);p(this,"cache");this.cache=new Gi(t.cacheTimeout??1e3)}async update(n){var i,s,u,c,d;if(!n.docChanged||((s=(i=t.events)==null?void 0:i.beforeSuggestionFetch)==null?void 0:s.call(i,n.view))===!1)return;(u=this.abortController)==null||u.abort(),this.abortController=new AbortController;let r=n.state.doc,o=r.toString(),a=this.cache.get(o);if(a){n.view.dispatch({effects:$t.of({text:a,doc:r})});return}try{let f=await e(n.state,this.abortController.signal,n.view);if(this.abortController.signal.aborted||((d=(c=t.events)==null?void 0:c.shouldShowSuggestion)==null?void 0:d.call(c,n.view,f))===!1)return;this.cache.set(o,f),n.view.dispatch({effects:$t.of({text:f,doc:r})})}catch(f){f instanceof Error&&f.name!=="AbortError"&&console.error("Suggestion fetch error:",f)}}destroy(){var n;(n=this.abortController)==null||n.abort()}}),Wi=Xe.fromClass(class{constructor(){p(this,"decorations");this.decorations=H.none}update(e){var n;let t=(n=e.state.field(Vt))==null?void 0:n.suggestion;if(!t){this.decorations=H.none;return}this.decorations=Mi(e.view,t)}},{decorations:e=>e.decorations});function Vi(e,t,n,r){return{...e.changeByRange(o=>{if(o===e.selection.main)return{changes:{from:n,to:r,insert:t},range:bt.cursor(n+t.length)};let a=r-n;return!o.empty||a&&e.sliceDoc(o.from-a,o.from)!==e.sliceDoc(n,r)?{range:o}:{changes:{from:o.from-a,to:o.from,insert:t},range:bt.cursor(o.from-a+t.length)}}),userEvent:"input.complete"}}var $i=e=>{var r,o,a;let t=(r=e.state.field(Vt))==null?void 0:r.suggestion;if(!t)return!1;let n=e.state.facet(Pn);return e.dispatch({...Vi(e.state,t,e.state.selection.main.head,e.state.selection.main.head)}),(a=(o=n.events)==null?void 0:o.onSuggestionAccepted)==null||a.call(o,e,t),!0},Vr=e=>{var r,o,a;let t=(r=e.state.field(Vt))==null?void 0:r.suggestion;if(!t)return!1;let n=e.state.facet(Pn);return e.dispatch({effects:$t.of({text:null,doc:e.state.doc})}),(a=(o=n.events)==null?void 0:o.onSuggestionRejected)==null||a.call(o,e,t),!0},Hi=Je.of([{key:"Tab",run:$i},{key:"Escape",run:Vr}]),Pn=jt.define({combine:e=>e.at(-1)});function $r(e){let{delay:t=500,includeKeymap:n=!0}=e,r=Pi(e.fetchFn,t);return[Vt,Pn.of(e),Ji(r,e),Wi,n?Hi:[]]}const qi=j.baseTheme({".cm-ai-input-container":{display:"flex",flexDirection:"column",gap:"4px",width:"min(calc(100% + 7px), 500px)",padding:"5px 5px",margin:"0 -6px",backgroundColor:"light-dark(rgb(241, 243, 245), rgb(40, 40, 40))"},".cm-ai-input":{display:"block",width:"100%",padding:"3px 8px",border:"2px solid rgb(51, 154, 240)",borderRadius:"5px",fontSize:"12px"},".cm-ai-help-info-button":{fontSize:"10px",paddingLeft:"10px",height:"18px",color:"light-dark(rgb(109, 117, 125), rgb(170, 170, 170))",display:"block",marginRight:"auto"},".cm-ai-help-info-button:hover":{color:"light-dark(rgb(89, 97, 105), rgb(190, 190, 190))"},".cm-ai-generate-button":{background:"#0E639C",border:"none",padding:"2px 6px",color:"#ffffff",cursor:"pointer",font:"inherit",borderRadius:"4px","&:hover":{backgroundColor:"#1177bb"}},".cm-line.cm-ai-selection, .cm-line.cm-ai-selection.cm-active-line":{backgroundColor:"light-dark(color-mix(in srgb, rgb(223, 227, 232) 50%, transparent), color-mix(in srgb, rgb(50, 50, 50) 50%, transparent)) !important"},".cm-line:has(.cm-new-code-line)":{backgroundColor:"light-dark(color-mix(in srgb, rgb(183, 235, 143) 50%, transparent), color-mix(in srgb, rgb(40, 100, 40) 50%, transparent)) !important"},".cm-old-code-container":{backgroundColor:"light-dark(rgb(255, 205, 205), rgb(100, 40, 40))",position:"relative",display:"flex",paddingTop:"0",width:"100%",alignItems:"center"},".cm-code-button":{position:"absolute",right:"5px",top:"50%",transform:"translateY(-50%)",background:"none",border:"none",cursor:"pointer",fontSize:"16px"},".cm-floating-buttons":{fontFamily:"sans-serif",position:"absolute",top:"-20px",left:"5px",display:"flex"},".cm-floating-button":{fontFamily:"sans-serif",padding:"2px 5px",fontSize:"10px",cursor:"pointer",fontWeight:"700"},".cm-floating-accept":{backgroundColor:"light-dark(rgb(55, 125, 34), rgb(40, 80, 25))",borderTopLeftRadius:"5px",borderBottomLeftRadius:"5px",color:"white",filter:"brightness(90%)","&:hover":{filter:"brightness(100%)"}},".cm-floating-reject":{backgroundColor:"light-dark(rgb(220, 53, 69), rgb(180, 40, 50))",color:"white",borderTopRightRadius:"5px",borderBottomRightRadius:"5px",filter:"brightness(90%)","&:hover":{filter:"brightness(100%)"}},".hotkey":{display:"inline-block",padding:"0 4px",borderRadius:"3px",backgroundColor:"rgba(255, 255, 255, 0.1)",fontSize:"90%"},".cm-ai-loading-indicator":{fontStyle:"italic",fontSize:"10px",paddingLeft:"12px",color:"light-dark(rgb(109, 117, 125), rgb(170, 170, 170))",opacity:"0",transition:"opacity 0.3s ease-in-out","&::after":{content:'""',display:"inline-block",animation:"ellipsis-pulse 1.5s steps(4, end) infinite"},"&:not(:empty)":{opacity:"1"}},".cm-ai-input:disabled":{opacity:"0.5"},"@keyframes ellipsis-pulse":{"0%":{content:"'.'"},"25%":{content:"'..'"},"50%":{content:"'...'"},"75%":{content:"''"}},".cm-ai-loading-container":{display:"flex",alignItems:"center",padding:"0 8px"},".cm-ai-cancel-button":{padding:"2px 8px",fontSize:"10px",borderRadius:"4px",color:"light-dark(rgb(109, 117, 125), rgb(170, 170, 170))",cursor:"pointer","&:hover":{background:"light-dark(rgb(223, 227, 232), rgb(50, 50, 50))"}},".hidden":{display:"none"}});function zi(e){var s,u;let t=e.state.facet(Nt),n={...z,...t.keymaps},r=e.state.facet(Ht),o=ue("div","cm-ai-tooltip").appendChild(ue("div","cm-ai-tooltip-button")),a=o.appendChild(document.createElement("span"));a.textContent=`${r.label} `;let i=a.appendChild(document.createElement("span"));return i.className="hotkey",i.textContent=jn(n.showInput),(s=o.querySelector("span"))==null||s.addEventListener("mousedown",c=>{c.stopPropagation(),c.button===0&&c.preventDefault()}),(u=o.querySelector("span"))==null||u.addEventListener("click",c=>{c.preventDefault(),Gr(e)}),o}const Ht=jt.define({combine(e){return Tn(e,{render:zi,hideOnBlur:!1,label:"Edit with AI"})}}),Ki=Xe.fromClass((Ta=class{constructor(e){p(this,"view");p(this,"suppress");p(this,"dom");p(this,"mousedown",()=>{this.suppress=!0});p(this,"mouseup",()=>{this.suppress=!1,this.display(this.view)});p(this,"scroll",()=>{this.display(this.view)});p(this,"windowScroll",()=>{this.display(this.view)});La(this,wn,e=>{var n;let t=e.state.selection.ranges.find(r=>!r.empty);if(t&&!this.suppress){let r=e.coordsAtPos(t.from),o=e.coordsAtPos(t.to);if(!r||!o)return;let a=e.dom.getBoundingClientRect(),i=(n=e.dom.parentElement)==null?void 0:n.getBoundingClientRect(),s=v=>v.top>=a.top&&v.top<=a.bottom&&v.left>=a.left&&v.left<=a.right,u=v=>!i||v.top>=i.top&&v.top<=i.bottom&&v.left>=i.left&&v.left<=i.right,c=s(r)||s(o),d=u(r)||u(o);if(!c||!d){this.dom.style.display="none",this.dom.setAttribute("aria-hidden","true");return}this.dom.style.display="flex",this.dom.setAttribute("aria-hidden","false");let f=this.dom.getBoundingClientRect(),g=s(r)?r:o,m=a.right-f.width,h=Math.min(g.left,m),w=g.top-f.height,y=i?i.y:-1/0;w<y&&(w=o.bottom),this.dom.style.left=`${h}px`,this.dom.style.top=`${w}px`,requestAnimationFrame(()=>{this.dom&&this.dom.setAttribute("aria-hidden","false")})}else this.dom.style.display="none",this.dom.setAttribute("aria-hidden","true")});this.view=e;let t=e.state.facet(Ht);this.suppress=!1,document.addEventListener("mousedown",this.mousedown),document.addEventListener("mouseup",this.mouseup),e.scrollDOM.addEventListener("scroll",this.scroll),window.addEventListener("scroll",this.windowScroll,!0);let n=t.render(e);e.dom.appendChild(n),this.dom=n}update(e){this.display(e.view)}docViewUpdate(e){this.display(e)}display(e){if(e.state.field(rt).show){this.dom.style.display="none";return}if(e.state.facet(Ht).hideOnBlur&&!e.hasFocus){this.dom.style.display="none",this.dom.setAttribute("aria-hidden","true");return}e.requestMeasure({read:Fa(this,wn)})}destroy(){document.removeEventListener("mousedown",this.mousedown),document.removeEventListener("mouseup",this.mouseup),this.view.scrollDOM.removeEventListener("scroll",this.scroll),window.removeEventListener("scroll",this.windowScroll,!0),this.dom.remove()}},wn=new WeakMap,Ta));var Yi=j.baseTheme({".cm-ai-tooltip-button":{userSelect:"none",fontFamily:"system-ui, -apple-system, sans-serif",position:"fixed",display:"flex",boxSizing:"border-box",padding:"2px 6px",borderRadius:"4px",fontSize:"12px",backgroundColor:"#0E639C",color:"#ffffff",border:"1px solid transparent",boxShadow:"0 2px 4px rgba(0,0,0,0.1)",zIndex:"999",transition:"opacity 0.5s","&[aria-hidden='true']":{opacity:"0"},"&[aria-hidden='false']":{opacity:"1"},"& > span":{pointerEvents:"auto",cursor:"pointer",display:"inline-block",padding:"2px"},"&:hover":{backgroundColor:"#1177bb"}}});function Xi(){return[Ki,Yi]}var Qi=class extends In{constructor(t){super();p(this,"oldCode");this.oldCode=t}toDOM(t){let n=ue("div","cm-old-code-container");n.setAttribute("role","region"),n.setAttribute("aria-label","Previous code version");let r=ue("div","cm-old-code cm-line");r.textContent=this.oldCode;let o=ue("div","cm-floating-buttons"),a=t.state.facet(Nt),i={...z,...a.keymaps},s=ue("button","cm-floating-button cm-floating-accept");s.innerHTML=`<span class="hotkey">${jn(i.acceptEdit)}</span> Accept`,s.setAttribute("aria-label","Accept changes"),s.addEventListener("click",c=>{c.preventDefault(),c.stopPropagation(),t.focus(),Jr(t)});let u=ue("button","cm-floating-button cm-floating-reject");return u.innerHTML=`<span class="hotkey">${jn(i.rejectEdit)}</span> Reject`,u.setAttribute("aria-label","Reject changes"),u.addEventListener("click",c=>{c.preventDefault(),c.stopPropagation(),t.focus(),Wr(t)}),o.append(s,u),n.append(r,o),n}updateDOM(t,n){return!0}},Zi=class extends In{constructor(t){super();p(this,"complete");p(this,"abortController",null);p(this,"dom",null);p(this,"input",null);p(this,"loadingContainer",null);p(this,"helpInfo",null);p(this,"inputContainer",null);p(this,"form",null);p(this,"view",null);p(this,"onKeyDown",async t=>{t.key==="Enter"&&!t.shiftKey?(t.preventDefault(),await this.handleSubmit()):t.key==="Escape"&&this.onCancel()});p(this,"onCancel",()=>{this.cleanup();let t=this.view;t&&(t.dispatch({effects:[nt.of({show:!1,lineFrom:0,lineTo:0}),dt.of(!1)]}),t.focus())});p(this,"handleSubmit",async t=>{var h;let n=this.view;if(!n)return;let r=n.state.facet(Nt);t==null||t.stopPropagation();let o=n.state.field(rt),{input:a}=this;if(!a)return;let i=a.value.trim();if(!o.show||!i)return;let s=n.state.doc.line(o.lineFrom),u=n.state.doc.line(o.lineTo),c=s.from,d=u.to,f=n.state.sliceDoc(c,d),g=n.state.sliceDoc(0,c),m=n.state.sliceDoc(d);this.abortController=new AbortController,n.dispatch({effects:dt.of(!0)}),this.toggleLoading(!0);try{let w=await this.complete({prompt:i,selection:f,codeBefore:g,codeAfter:m,editorView:n,signal:this.abortController.signal});if(!n.state.field(rt).show)return;if(!w||typeof w!="string")throw Error("Invalid completion result");n.dispatch({changes:{from:c,to:d,insert:w},effects:[nt.of({show:!1,lineFrom:0,lineTo:0}),Wt.of({from:c,to:c+w.length,oldCode:f,newCode:w}),dt.of(!1)]})}catch(w){if(w instanceof DOMException&&w.name==="AbortError")return;(h=r.onError)==null||h.call(r,w)}finally{this.cleanup(),this.toggleLoading(!1),n.focus()}});this.complete=t}toDOM(t){if(this.dom)return this.dom;this.view=t;let n=t.state.field(Mr),r=t.state.field(Rr),o=ue("div","cm-ai-input-container");this.inputContainer=o,this.dom=o;let a=ue("form","cm-ai-input-form");this.form=a,a.setAttribute("role","search"),a.setAttribute("aria-label","AI editing instructions"),a.addEventListener("submit",y=>y.preventDefault());let i=ue("input","cm-ai-input");this.input=i,a.append(i),i.placeholder="Editing instructions...",i.setAttribute("aria-label","AI editing instructions"),i.setAttribute("autocomplete","off"),i.setAttribute("spellcheck","true"),i.value=n.inputValue;let s=ue("div","cm-ai-loading-container");this.loadingContainer=s;let u=ue("div","cm-ai-loading-indicator");u.setAttribute("role","status"),u.setAttribute("aria-live","polite"),u.textContent="Generating";let c=ue("button","cm-ai-cancel-button");c.textContent="Cancel",c.setAttribute("aria-label","Cancel code generation"),c.addEventListener("click",this.onCancel),s.append(c,u);let d=ue("div","cm-ai-help-info");this.helpInfo=d;let f=d.appendChild(document.createElement("button"));f.className="cm-ai-help-info-button",f.textContent="Esc to close",f.addEventListener("click",this.onCancel);let g=ue("button","cm-ai-generate-button");g.textContent="\u23CE Generate",g.setAttribute("aria-label","Generate code"),g.addEventListener("click",this.handleSubmit),this.toggleLoading(r),n.shouldFocus&&requestAnimationFrame(()=>{i.value=n.inputValue,i.focus(),t.dispatch({effects:Ct.of(!1)})}),m(i.value),i.addEventListener("input",w),i.addEventListener("keydown",this.onKeyDown);function m(y){d.replaceChildren(y?g:f)}let h="";function w(){t.dispatch({effects:kt.of(i.value)});let y=i.value.trim();y!==h&&(h=y,m(y))}return o}toggleLoading(t){var n;this.inputContainer&&this.form&&this.loadingContainer&&this.helpInfo&&((n=this.inputContainer)==null||n.replaceChildren(this.form,t?this.loadingContainer:this.helpInfo))}updateDOM(t,n){return this.dom=t,this.input=t.querySelector(".cm-ai-input"),!0}cleanup(){var t,n,r;(t=this.abortController)==null||t.abort(),this.abortController=null,(n=this.dom)==null||n.remove(),(r=this.input)==null||r.remove(),this.dom=null,this.input=null}destroy(){this.cleanup()}};function es(e){if(!e.prompt)throw Error("prompt function is required");let t={...z,...e.keymaps};return[Nt.of(e),rt,Mr,St,Rr,Xi(),qi,Je.of([{key:t.showInput,run:Gr}]),ct.highest([Je.of([{key:t.acceptEdit,run:Jr},{key:t.rejectEdit,run:Wr}])]),ts,ns,rs,os]}const ts=j.updateListener.of(e=>{let t=e.state.field(rt);if(!t.show||!e.docChanged)return;let{lineFrom:n,lineTo:r}=t,o=!1;e.changes.iterChanges((a,i,s,u)=>{let c=e.state.doc.lineAt(a).number;if(c<n){let d=e.state.doc.lineAt(u).number-e.state.doc.lineAt(s).number;n+=d,r+=d,o=!0}else if(c<=r){let d=e.state.doc.lineAt(u).number-e.state.doc.lineAt(s).number;r+=d,o=!0}}),o&&e.view.dispatch({effects:[nt.of({show:!0,lineFrom:n,lineTo:r})]})}),ns=j.decorations.of(e=>{let t=e.state.field(St);return t?H.set([H.mark({class:"cm-new-code-line"}).range(t.from,t.to)]):H.none}),rs=j.decorations.compute([rt],e=>{let t=e.field(rt),n=e.facet(Nt),r=[];if(t.show){let o=t.lineFrom,a=t.lineTo;for(let i=o;i<=a;i++){let s=e.doc.line(i).from;r.push(H.line({class:"cm-ai-selection"}).range(s)),i===o&&r.push(H.widget({widget:new Zi(n.prompt),side:-1}).range(s))}}return H.set(r)}),os=He.define({create(e){return H.none},update(e,t){let n=t.state.field(St);return n?H.set([H.widget({widget:new Qi(n.oldCode),block:!0}).range(n.from)]):H.none},provide:e=>j.decorations.from(e)});var as=Ge(),F=Oa(ad(),1),Mn=()=>({entries:new Map}),{valueAtom:Hr,useActions:qr}=Fr(Mn,{submit:(e,t)=>{let{cellIds:n,deleteCell:r,deleteManyCells:o,store:a}=t,i=a.get(tt),s=a.get(dd),u=new Set(i.cellIds.inOrderIds.filter(f=>i.cellData[f].code.trim()==="")),c=new Map;for(let f of n){if(u.has(f)){c.set(f,{cellId:f,type:"simple"});continue}let g=i.cellRuntime[f],m=new Map;for(let w of Object.values(s)){let y=w.declaredBy.includes(f),v=w.usedBy.some(C=>!u.has(C));y&&v&&m.set(w.name,w.usedBy)}let h;g!=null&&g.runElapsedTimeMs&&g.runElapsedTimeMs>2e3&&(h=g.runElapsedTimeMs),m.size===0&&h===void 0?c.set(f,{cellId:f,type:"simple"}):c.set(f,{cellId:f,type:"expensive",executionDurationMs:h,defs:m})}let d=[...c.values()].every(f=>f.type==="simple");return c.size>0&&d?(c.size===1?r({cellId:[...c.values()][0].cellId}):o({cellIds:[...c.values()].map(f=>f.cellId)}),Mn()):{...e,entries:c}},clear:()=>Mn()});Un=function(){let e=gr(),{submit:t,clear:n}=qr(),{entries:r}=se(Hr),o=Ni(),a=Or();return(0,F.useMemo)(()=>({submit:i=>{t({cellIds:i,deleteCell:o,deleteManyCells:a,store:e})},clear:n,get idle(){return r.size===0},get shouldConfirmDelete(){return r.size>1}}),[e,t,n,r,o,a])},Ui=function(e){let t=(0,as.c)(16),n=se(Hr),r=qr(),o=Or(),a;t[0]!==e||t[1]!==n.entries?(a=n.entries.get(e),t[0]=e,t[1]=n.entries,t[2]=a):a=t[2];let i=a;if(!i){let d;return t[3]===Symbol.for("react.memo_cache_sentinel")?(d={isPending:!1},t[3]=d):d=t[3],d}if(n.entries.size!==1){let d;return t[4]===i?d=t[5]:(d={isPending:!0,shouldConfirmDelete:!1,...i},t[4]=i,t[5]=d),d}let s;t[6]!==r||t[7]!==o||t[8]!==n.entries?(s=()=>{o({cellIds:[...n.entries.values()].map(is)}),r.clear()},t[6]=r,t[7]=o,t[8]=n.entries,t[9]=s):s=t[9];let u;t[10]===r?u=t[11]:(u=()=>r.clear(),t[10]=r,t[11]=u);let c;return t[12]!==i||t[13]!==s||t[14]!==u?(c={isPending:!0,...i,shouldConfirmDelete:!0,confirm:s,cancel:u},t[12]=i,t[13]=s,t[14]=u,t[15]=c):c=t[15],c};function is(e){return e.cellId}async function ss(e){var s,u;let t=`
4
4
  ${e.codeBefore}
5
5
  <rewrite_this>
@@ -1 +1 @@
1
- import{s as j}from"./chunk-LvLJmgfZ.js";import{d as L,l as P,n as w,u as A}from"./useEvent-D91BmmQi.js";import{Ai as E,E as O,Ft as y,N as F,j as S,pn as T,vi as _}from"./cells-Wp62mkuO.js";import{t as b}from"./compiler-runtime-B3qBwwSJ.js";import{_ as $}from"./useEventListener-BR0C1MaI.js";import{d as D}from"./utils-BrXijSdZ.js";import{r as N}from"./constants-DMpttj8Q.js";import{v as q,w as B}from"./config-B2jNjodW.js";import{t as H}from"./cn-DCUzRj2J.js";import{t as M}from"./jsx-runtime-BqBOg78p.js";import{r as R}from"./requests-DIwGYs0l.js";import{n as U}from"./paths-BXWH6vv4.js";import{s as V}from"./session-VtovaFBS.js";import{n as z}from"./ImperativeModal-D7lQ0Q7_.js";var G=b();function I(){return A(_)}function J(){let r=(0,G.c)(5),[t]=P(q),e=L(_),{openAlert:a}=z(),{sendRename:o}=R(),s;return r[0]!==t.state||r[1]!==a||r[2]!==o||r[3]!==e?(s=async l=>{let n=D();return t.state===B.OPEN?(V(i=>{l===null?i.delete(N.filePath):i.set(N.filePath,l)}),o({filename:l}).then(()=>(e(l),document.title=n.app_title||U.basename(l)||"Untitled Notebook",l)).catch(i=>(a(i.message),null))):(a("Failed to save notebook: not connected to a kernel."),null)},r[0]=t.state,r[1]=a,r[2]=o,r[3]=e,r[4]=s):s=r[4],w(s)}var p=b(),v=j(M(),1);const h=r=>{let t=(0,p.c)(12),{className:e,cellId:a,variant:o,onClick:s,formatCellName:l,skipScroll:n}=r,i=F()[a]??"",C=S().inOrderIds.indexOf(a),{showCellIfHidden:d}=O(),g=l??W,c;t[0]===e?c=t[1]:(c=H("inline-block cursor-pointer text-link hover:underline",e),t[0]=e,t[1]=c);let m;t[2]!==a||t[3]!==s||t[4]!==d||t[5]!==n||t[6]!==o?(m=k=>{if(a==="__scratch__")return!1;d({cellId:a}),k.stopPropagation(),k.preventDefault(),requestAnimationFrame(()=>{x(a,o,n)&&(s==null||s())})},t[2]=a,t[3]=s,t[4]=d,t[5]=n,t[6]=o,t[7]=m):m=t[7];let f=g(y(i,C)),u;return t[8]!==c||t[9]!==m||t[10]!==f?(u=(0,v.jsx)("div",{className:c,role:"link",tabIndex:-1,onClick:m,children:f}),t[8]=c,t[9]=m,t[10]=f,t[11]=u):u=t[11],u},K=r=>{let t=(0,p.c)(2),e;return t[0]===r?e=t[1]:(e=(0,v.jsx)(h,{...r,variant:"destructive"}),t[0]=r,t[1]=e),e},Q=r=>{let t=(0,p.c)(10),{cellId:e,lineNumber:a}=r,o=I(),s;t[0]!==e||t[1]!==a?(s=()=>T(e,a),t[0]=e,t[1]=a,t[2]=s):s=t[2];let l;t[3]!==e||t[4]!==o?(l=i=>e==="__scratch__"?"scratch":`marimo://${o||"untitled"}#cell=${i}`,t[3]=e,t[4]=o,t[5]=l):l=t[5];let n;return t[6]!==e||t[7]!==s||t[8]!==l?(n=(0,v.jsx)(h,{cellId:e,onClick:s,skipScroll:!0,variant:"destructive",className:"traceback-cell-link",formatCellName:l}),t[6]=e,t[7]=s,t[8]=l,t[9]=n):n=t[9],n};function x(r,t,e){let a=E.create(r),o=document.getElementById(a),s=o==null?void 0:o.classList.contains("has-error");return o===null?($.error(`Cell ${a} not found on page.`),!1):(e||o.scrollIntoView({behavior:"smooth",block:"center"}),(t==="destructive"||s&&t===void 0)&&(o.classList.add("error-outline"),setTimeout(()=>{o.classList.remove("error-outline")},2e3)),(t==="focus"||!s&&t===void 0)&&(o.classList.add("focus-outline"),setTimeout(()=>{o.classList.remove("focus-outline")},2e3)),!0)}function W(r){return r}export{I as a,x as i,K as n,J as o,Q as r,h as t};
1
+ import{s as j}from"./chunk-LvLJmgfZ.js";import{d as L,l as P,n as w,u as A}from"./useEvent-D91BmmQi.js";import{Ai as E,E as O,Ft as y,N as F,j as S,pn as T,vi as _}from"./cells-B624w_H9.js";import{t as b}from"./compiler-runtime-B3qBwwSJ.js";import{_ as $}from"./useEventListener-BR0C1MaI.js";import{d as D}from"./utils-BrXijSdZ.js";import{r as N}from"./constants-DMpttj8Q.js";import{v as q,w as B}from"./config-B2jNjodW.js";import{t as H}from"./cn-DCUzRj2J.js";import{t as M}from"./jsx-runtime-BqBOg78p.js";import{r as R}from"./requests-DIwGYs0l.js";import{n as U}from"./paths-BXWH6vv4.js";import{s as V}from"./session-VtovaFBS.js";import{n as z}from"./ImperativeModal-D7lQ0Q7_.js";var G=b();function I(){return A(_)}function J(){let r=(0,G.c)(5),[t]=P(q),e=L(_),{openAlert:a}=z(),{sendRename:o}=R(),s;return r[0]!==t.state||r[1]!==a||r[2]!==o||r[3]!==e?(s=async l=>{let n=D();return t.state===B.OPEN?(V(i=>{l===null?i.delete(N.filePath):i.set(N.filePath,l)}),o({filename:l}).then(()=>(e(l),document.title=n.app_title||U.basename(l)||"Untitled Notebook",l)).catch(i=>(a(i.message),null))):(a("Failed to save notebook: not connected to a kernel."),null)},r[0]=t.state,r[1]=a,r[2]=o,r[3]=e,r[4]=s):s=r[4],w(s)}var p=b(),v=j(M(),1);const h=r=>{let t=(0,p.c)(12),{className:e,cellId:a,variant:o,onClick:s,formatCellName:l,skipScroll:n}=r,i=F()[a]??"",C=S().inOrderIds.indexOf(a),{showCellIfHidden:d}=O(),g=l??W,c;t[0]===e?c=t[1]:(c=H("inline-block cursor-pointer text-link hover:underline",e),t[0]=e,t[1]=c);let m;t[2]!==a||t[3]!==s||t[4]!==d||t[5]!==n||t[6]!==o?(m=k=>{if(a==="__scratch__")return!1;d({cellId:a}),k.stopPropagation(),k.preventDefault(),requestAnimationFrame(()=>{x(a,o,n)&&(s==null||s())})},t[2]=a,t[3]=s,t[4]=d,t[5]=n,t[6]=o,t[7]=m):m=t[7];let f=g(y(i,C)),u;return t[8]!==c||t[9]!==m||t[10]!==f?(u=(0,v.jsx)("div",{className:c,role:"link",tabIndex:-1,onClick:m,children:f}),t[8]=c,t[9]=m,t[10]=f,t[11]=u):u=t[11],u},K=r=>{let t=(0,p.c)(2),e;return t[0]===r?e=t[1]:(e=(0,v.jsx)(h,{...r,variant:"destructive"}),t[0]=r,t[1]=e),e},Q=r=>{let t=(0,p.c)(10),{cellId:e,lineNumber:a}=r,o=I(),s;t[0]!==e||t[1]!==a?(s=()=>T(e,a),t[0]=e,t[1]=a,t[2]=s):s=t[2];let l;t[3]!==e||t[4]!==o?(l=i=>e==="__scratch__"?"scratch":`marimo://${o||"untitled"}#cell=${i}`,t[3]=e,t[4]=o,t[5]=l):l=t[5];let n;return t[6]!==e||t[7]!==s||t[8]!==l?(n=(0,v.jsx)(h,{cellId:e,onClick:s,skipScroll:!0,variant:"destructive",className:"traceback-cell-link",formatCellName:l}),t[6]=e,t[7]=s,t[8]=l,t[9]=n):n=t[9],n};function x(r,t,e){let a=E.create(r),o=document.getElementById(a),s=o==null?void 0:o.classList.contains("has-error");return o===null?($.error(`Cell ${a} not found on page.`),!1):(e||o.scrollIntoView({behavior:"smooth",block:"center"}),(t==="destructive"||s&&t===void 0)&&(o.classList.add("error-outline"),setTimeout(()=>{o.classList.remove("error-outline")},2e3)),(t==="focus"||!s&&t===void 0)&&(o.classList.add("focus-outline"),setTimeout(()=>{o.classList.remove("focus-outline")},2e3)),!0)}function W(r){return r}export{I as a,x as i,K as n,J as o,Q as r,h as t};
@@ -96,7 +96,7 @@ mark line col
96
96
  `&&c--,e.state.overwrite?d=.2:m.status&&(d=.5)}if(f){let E=c<n.state.doc.length&&n.state.sliceDoc(c,c+1);E&&/[\uDC00-\uDFFF]/.test(E)&&c>1&&(c--,E=n.state.sliceDoc(c,c+1));let L=n.coordsAtPos(c,1);if(!L)return null;let P=f3(n),q=n.domAtPos(c),V=q?q.node:n.contentDOM;for(V instanceof Text&&q.offset>=V.data.length&&((_=V.parentElement)==null?void 0:_.nextSibling)&&(V=(x=V.parentElement)==null?void 0:x.nextSibling,q={node:V,offset:0});q&&q.node instanceof HTMLElement;)V=q.node,q={node:q.node.childNodes[q.offset],offset:0};if(!(V instanceof HTMLElement)){if(!V.parentNode)return null;V=V.parentNode}let B=getComputedStyle(V),M=L.left,J=(S=(s=n).coordsForChar)==null?void 0:S.call(s,c);if(J&&(M=J.left),!E||E==`
97
97
  `||E=="\r")E="\xA0";else if(E==" "){E="\xA0";var b=n.coordsAtPos(c+1,-1);b&&(M=b.left-(b.left-L.left)/parseInt(B.tabSize))}else/[\uD800-\uDBFF]/.test(E)&&c<n.state.doc.length-1&&(E+=n.state.sliceDoc(c+1,c+2));let le=L.bottom-L.top;return new l3((M-P.left)/n.scaleX,(L.top-P.top+le*(1-d))/n.scaleY,le*d/n.scaleY,B.fontFamily,B.fontSize,B.fontWeight,B.color,o?"cm-fat-cursor cm-cursor-primary":"cm-fat-cursor cm-cursor-secondary",E,d!=1)}else return null}let Wy,Uy,Ky,Qy;Wy=typeof navigator<"u"&&/linux/i.test(navigator.platform)&&/ Gecko\/\d+/.exec(navigator.userAgent),fa=XS(Ve),Uy=250,Ky=Et.baseTheme({".cm-vimMode .cm-cursorLayer:not(.cm-vimCursorLayer)":{display:"none"},".cm-vim-panel":{padding:"0px 10px",fontFamily:"monospace",minHeight:"1.3em",display:"flex"},".cm-vim-panel input":{border:"none",outline:"none",backgroundColor:"inherit"},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"}}),Qy=Ki.fromClass(class{constructor(e){this.status="",this.query=null,this.decorations=ca.none,this.waitForCopy=!1,this.lastKeydown="",this.useNextTextInput=!1,this.compositionText="",this.view=e;let n=this.cm=new Ve(e);fa.enterVimMode(this.cm),this.view.cm=this.cm,this.cm.state.vimPlugin=this,this.blockCursor=new c3(e,n),this.updateClass(),this.cm.on("vim-command-done",()=>{n.state.vim&&(n.state.vim.status=""),this.blockCursor.scheduleRedraw(),this.updateStatus()}),this.cm.on("vim-mode-change",a=>{n.state.vim&&(n.state.vim.mode=a.mode,a.subMode&&(n.state.vim.mode+=" block"),n.state.vim.status="",this.blockCursor.scheduleRedraw(),this.updateClass(),this.updateStatus())}),this.cm.on("dialog",()=>{this.cm.state.statusbar?this.updateStatus():e.dispatch({effects:Gy.of(!!this.cm.state.dialog)})}),this.dom=document.createElement("span"),this.spacer=document.createElement("span"),this.spacer.style.flex="1",this.statusButton=document.createElement("span"),this.statusButton.onclick=a=>{fa.handleKey(this.cm,"<Esc>","user"),this.cm.focus()},this.statusButton.style.cssText="cursor: pointer"}update(e){var n;if((e.viewportChanged||e.docChanged)&&this.query&&this.highlight(this.query),e.docChanged&&this.cm.onChange(e),e.selectionSet&&this.cm.onSelectionChange(),e.viewportChanged,this.cm.curOp&&!this.cm.curOp.isVimOp&&this.cm.onBeforeEndOperation(),e.transactions){for(let a of e.transactions)for(let o of a.effects)if(o.is(Hh))if(!((n=o.value)!=null&&n.forVim))this.highlight(null);else{let s=o.value.create();this.highlight(s)}}this.blockCursor.update(e)}updateClass(){let e=this.cm.state;!e.vim||e.vim.insertMode&&!e.overwrite?this.view.scrollDOM.classList.remove("cm-vimMode"):this.view.scrollDOM.classList.add("cm-vimMode")}updateStatus(){let e=this.cm.state.statusbar,n=this.cm.state.vim;if(!e||!n)return;let a=this.cm.state.dialog;if(a)a.parentElement!=e&&(e.textContent="",e.appendChild(a));else{e.textContent="";var o=(n.mode||"normal").toUpperCase();n.insertModeReturn&&(o+="(C-O)"),this.statusButton.textContent=`--${o}--`,e.appendChild(this.statusButton),e.appendChild(this.spacer)}this.dom.textContent=n.status,e.appendChild(this.dom)}destroy(){fa.leaveVimMode(this.cm),this.updateClass(),this.blockCursor.destroy(),delete this.view.cm}highlight(e){if(this.query=e,!e)return this.decorations=ca.none;let{view:n}=this,a=new Pw;for(let o=0,s=n.visibleRanges,c=s.length;o<c;o++){let{from:f,to:d}=s[o];for(;o<c-1&&d>s[o+1].from-2*Uy;)d=s[++o].to;e.highlight(n.state,f,d,(m,b)=>{a.add(m,b,m3)})}return this.decorations=a.finish()}handleKey(e,n){let a=this.cm,o=a.state.vim;if(!o)return;let s=fa.vimKeyFromEvent(e,o);if(Ve.signal(this.cm,"inputEvent",{type:"handleKey",key:s}),!s)return;if(s=="<Esc>"&&!o.insertMode&&!o.visualMode&&this.query){let f=o.searchState_;f&&(a.removeOverlay(f.getOverlay()),f.setOverlay(null))}if(s==="<C-c>"&&!Ve.isMac&&a.somethingSelected())return this.waitForCopy=!0,!0;o.status=(o.status||"")+s;let c=fa.multiSelectHandleKey(a,s,"user");return o=fa.maybeInitVimState_(a),!c&&o.insertMode&&a.state.overwrite&&(e.key&&e.key.length==1&&!/\n/.test(e.key)?(c=!0,a.overWriteSelection(e.key)):e.key=="Backspace"&&(c=!0,Ve.commands.cursorCharLeft(a))),c&&(Ve.signal(this.cm,"vim-keypress",s),e.preventDefault(),e.stopPropagation(),this.blockCursor.scheduleRedraw()),this.updateStatus(),!!c}},{eventHandlers:{copy:function(e,n){this.waitForCopy&&(this.waitForCopy=!1,Promise.resolve().then(()=>{var a=this.cm,o=a.state.vim;o&&(o.insertMode?a.setSelection(a.getCursor(),a.getCursor()):a.operation(()=>{a.curOp&&(a.curOp.isVimOp=!0),fa.handleKey(a,"<Esc>","user")}))}))},compositionstart:function(e,n){this.useNextTextInput=!0,Ve.signal(this.cm,"inputEvent",e)},compositionupdate:function(e,n){Ve.signal(this.cm,"inputEvent",e)},compositionend:function(e,n){Ve.signal(this.cm,"inputEvent",e)},keypress:function(e,n){Ve.signal(this.cm,"inputEvent",e),this.lastKeydown=="Dead"&&this.handleKey(e,n)},keydown:function(e,n){Ve.signal(this.cm,"inputEvent",e),this.lastKeydown=e.key,this.lastKeydown=="Unidentified"||this.lastKeydown=="Process"||this.lastKeydown=="Dead"?this.useNextTextInput=!0:(this.useNextTextInput=!1,this.handleKey(e,n))}},provide:()=>[Et.inputHandler.of((e,n,a,o)=>{var _,x;var s=Pl(e);if(!s)return!1;var c=(_=s.state)==null?void 0:_.vim,f=s.state.vimPlugin;if(c&&!c.insertMode&&!((x=s.curOp)!=null&&x.isVimOp)){if(o==="\0\0")return!0;if(Ve.signal(s,"inputEvent",{type:"text",text:o,from:n,to:a}),o.length==1&&f.useNextTextInput){if(c.expectLiteralNext&&e.composing)return f.compositionText=o,!1;if(f.compositionText){var d=f.compositionText;f.compositionText="";var m=e.state.selection.main.head;if(d===e.state.sliceDoc(m-d.length,m)){var b=s.getCursor();s.replaceRange("",s.posFromIndex(m-d.length),b)}}return f.handleKey({key:o,preventDefault:()=>{},stopPropagation:()=>{}}),h3(e),!0}}return!1})],decorations:e=>e.decorations});function h3(e){var n=e.scrollDOM.parentElement;if(n){if(Wy){e.contentDOM.textContent="\0\0",e.contentDOM.dispatchEvent(new CustomEvent("compositionend"));return}var a=e.scrollDOM.nextSibling,o=window.getSelection(),s=o&&{anchorNode:o.anchorNode,anchorOffset:o.anchorOffset,focusNode:o.focusNode,focusOffset:o.focusOffset};e.scrollDOM.remove(),n.insertBefore(e.scrollDOM,a);try{s&&o&&(o.setPosition(s.anchorNode,s.anchorOffset),s.focusNode&&o.extend(s.focusNode,s.focusOffset))}catch(c){console.error(c)}e.focus(),e.contentDOM.dispatchEvent(new CustomEvent("compositionend"))}}var m3=ca.mark({class:"cm-searchMatch"}),Gy=la.define(),g3=os.define({create:()=>!1,update(e,n){for(let a of n.effects)a.is(Gy)&&(e=a.value);return e},provide:e=>Bh.from(e,n=>n?y3:null)});function y3(e){let n=document.createElement("div");n.className="cm-vim-panel";let a=e.cm;return a.state.dialog&&n.appendChild(a.state.dialog),{top:!1,dom:n}}function v3(e){let n=document.createElement("div");n.className="cm-vim-panel";let a=e.cm;return a.state.statusbar=n,a.state.vimPlugin.updateStatus(),{dom:n}}gx=function(e={}){return[Ky,Qy,d3,e.status?Bh.of(v3):g3]},Pl=function(e){return e.cm||null},Sm=function(e){let n=e.state.selection.main;return n.from===0&&n.to===0},zm=function(e,n=!1){let a=e.state.selection.main,o=e.state.doc.length;return n&&a.from===o-1&&a.to===o-1?!0:a.from===o&&a.to===o},ux=function(e){e&&e.dispatch({selection:{anchor:e.state.doc.length,head:e.state.doc.length}})},Ax=function(e){var n;return((n=Pl(e))==null?void 0:n.state.vim)!=null},Fx=function(e){var a;let n=(a=Pl(e))==null?void 0:a.state.vim;return n?!n.mode&&!n.insertMode&&!n.visualMode?!0:n.mode==="normal":!1},Tx=function(e){e&&e.dispatch({selection:{anchor:0,head:e.state.doc.length}})};function Jy(e,n){if(!(n!=null&&n.length))return ca.none;let a=new Pw,o=e.facet(ua),s=n.filter(c=>c.kind==="cell"&&c.cellId===o).toSorted((c,f)=>c.lineNumber-f.lineNumber);for(let c of s)try{let f=e.doc.line(c.lineNumber),d=ca.line({class:"cm-error-line"});a.add(f.from,f.from,d)}catch(f){be.debug("Invalid line number in error decoration",{error:f})}return a.finish()}function Xy(e,n){if(!(n!=null&&n.length))return;let a=e.state.facet(ua),o=n.filter(f=>f.kind==="cell"&&f.cellId===a);if(o.length===0)return;let s=r8(e.state),c=[];for(let f of o)try{let d=e.state.doc.line(f.lineNumber);s.between(d.from,d.to,(m,b)=>{c.push(Z6.of({from:m,to:b}))})}catch(d){be.debug("Invalid line numbers",{error:d})}c.length>0&&e.dispatch({effects:c})}var b3=class{constructor(e,n){let a=n.get();this.decorations=Jy(e.state,a),Xy(e,a),this.unsubscribe=n.sub(o=>{let s=this.decorations.size;this.decorations=Jy(e.state,o),Xy(e,o),s!==this.decorations.size&&e.dispatch({userEvent:"marimo.error-decoration-update"})})}update(e){this.decorations=this.decorations.map(e.changes)}destroy(){this.unsubscribe()}};function w3(e){return Ki.define(n=>new b3(n,e),{decorations:n=>n.decorations})}function _3(e){return[w3(e),Et.theme({".cm-error-line":{backgroundColor:"color-mix(in srgb, var(--red-4) 40%, transparent)"},"&.cm-focused .cm-error-line.cm-activeLine":{backgroundColor:"color-mix(in srgb, var(--red-6) 40%, transparent)"}})]}function x3({cellId:e,hotkeys:n}){let a=[];return a.push(...ww({key:n.getHotkey("cell.run").key,preventDefault:!0,stopPropagation:!0,run:o=>(o.state.facet(st).onRun(),!0)}),{key:n.getHotkey("cell.runAndNewBelow").key,preventDefault:!0,stopPropagation:!0,run:o=>{let s=o.state.facet(st);return s.onRun(),e==="__scratch__"||(o.contentDOM.blur(),s.moveToNextCell({cellId:e,before:!1})),!0}},...ww({key:n.getHotkey("cell.runAndNewAbove").key,preventDefault:!0,stopPropagation:!0,run:o=>{let s=o.state.facet(st);return s.onRun(),e==="__scratch__"||(o.contentDOM.blur(),s.moveToNextCell({cellId:e,before:!0})),!0}}),{key:n.getHotkey("cell.aiCompletion").key,preventDefault:!0,stopPropagation:!0,run:o=>(o.state.facet(st).aiCellCompletion()&&o.contentDOM.focus(),!0)}),e!=="__scratch__"&&a.push({key:n.getHotkey("cell.goToDefinition").key,preventDefault:!0,stopPropagation:!0,run:o=>(Dm(o),!0)},{key:n.getHotkey("cell.delete").key,preventDefault:!0,stopPropagation:!0,run:o=>(o.state.doc.length===0&&o.state.facet(st).deleteCell(),!0)},{key:n.getHotkey("cell.moveUp").key,preventDefault:!0,stopPropagation:!0,run:o=>(o.state.facet(st).moveCell({cellId:e,before:!0}),!0)},{key:n.getHotkey("cell.moveDown").key,preventDefault:!0,stopPropagation:!0,run:o=>(o.state.facet(st).moveCell({cellId:e,before:!1}),!0)},{key:n.getHotkey("cell.moveLeft").key,preventDefault:!0,stopPropagation:!0,run:o=>(o.state.facet(st).moveCell({cellId:e,before:!0,direction:"left"}),!0)},{key:n.getHotkey("cell.moveRight").key,preventDefault:!0,stopPropagation:!0,run:o=>(o.state.facet(st).moveCell({cellId:e,before:!1,direction:"right"}),!0)},{key:"ArrowUp",run:o=>Ww(o.state)?!1:Sm(o)?(o.state.facet(st).moveToNextCell({cellId:e,before:!0,noCreate:!0}),!0):!1},{key:"ArrowDown",run:o=>Ww(o.state)?!1:zm(o)?(o.state.facet(st).moveToNextCell({cellId:e,before:!1,noCreate:!0}),!0):!1},{key:n.getHotkey("cell.focusDown").key,preventDefault:!0,stopPropagation:!0,run:o=>(o.state.facet(st).moveToNextCell({cellId:e,before:!1,noCreate:!0}),!0)},{key:n.getHotkey("cell.focusUp").key,preventDefault:!0,stopPropagation:!0,run:o=>(o.state.facet(st).moveToNextCell({cellId:e,before:!0,noCreate:!0}),!0)},{key:n.getHotkey("cell.sendToBottom").key,preventDefault:!0,stopPropagation:!0,run:o=>(o.state.facet(st).sendToBottom({cellId:e}),!0)},{key:n.getHotkey("cell.sendToTop").key,preventDefault:!0,stopPropagation:!0,run:o=>(o.state.facet(st).sendToTop({cellId:e}),!0)},{key:n.getHotkey("cell.createAbove").key,preventDefault:!0,stopPropagation:!0,run:o=>(o.contentDOM.blur(),o.state.facet(st).createNewCell({cellId:e,before:!0}),!0)},{key:n.getHotkey("cell.createBelow").key,preventDefault:!0,stopPropagation:!0,run:o=>(o.contentDOM.blur(),o.state.facet(st).createNewCell({cellId:e,before:!1}),!0)},{key:n.getHotkey("cell.hideCode").key,preventDefault:!0,stopPropagation:!0,run:o=>{var c;let s=o.state.facet(st).toggleHideCode();return Uw(o),s?(o.contentDOM.blur(),(c=document.getElementById(En.create(e)))==null||c.focus()):o.contentDOM.focus(),!0}},{key:n.getHotkey("cell.splitCell").key,preventDefault:!0,stopPropagation:!0,run:o=>{let s=o.state.facet(st);return s.splitCell({cellId:e}),s.moveToNextCell&&requestAnimationFrame(()=>{o.contentDOM.blur(),s.moveToNextCell({cellId:e,before:!1})}),!0}}),[qu.high(Ja.of(a))]}function k3(e){return[Et.updateListener.of(n=>{if(n.docChanged){let a=n.transactions.some(f=>f.effects.some(d=>d.is(bs))),o=wr(n.view),s=n.view.state.facet(st),c=n.view.state.facet(ua);s.updateCellCode({cellId:c,code:o,formattingChange:a})}}),xS(e)]}var C3=["input","delete","undo","redo"];function S3({docChanged:e,transactions:n,predicate:a=()=>!0,hasFocus:o=!1}){return!e||!a()||n.some(s=>s.effects.some(c=>c.is(bs)))?!1:n.some(s=>s.annotation(Za)===void 0?C3.some(c=>s.isUserEvent(c))||o:!1)}function E3({predicate:e}){return Et.updateListener.of(n=>{S3({docChanged:n.docChanged,transactions:n.transactions,predicate:e,hasFocus:n.view.hasFocus})&&n.view.state.facet(st).onRun()})}jx=function({cellId:e,hotkeys:n,cellActions:a}){return[st.of(a),ua.of(e),x3({cellId:e,hotkeys:n}),k3(n),_3(bS(NT(e),Me))]};const Yy=async e=>{let n=e.state.doc.sliceString(0,e.pos),a=document.activeElement,o=null;if(a!==null){let f=En.findElement(a);f!==null&&(o=En.parse(f.id))}if(o===null)return be.error("Failed to find active cell."),null;let s=await _d.request({document:n,cellId:o});if(!s)return null;let c=df.asHoverTooltip({position:e.pos,message:s,limitToType:"tooltip"});return c&&Me.set(Yu,{documentation:c.html??null}),c?null:df.asCompletionResult(e.pos,s)};function T3(e){return n=>e.predicate(n.state)?e.completion(n):null}var I3=async e=>{let n=e.matchBefore(/:\w*$/);if(!e.explicit&&!n)return null;let a=await L3();return{from:(n==null?void 0:n.from)??e.pos,options:a,validFor:/^[\w:]*$/}},L3=rr(async()=>{let e=await fetch("https://unpkg.com/emojilib@3.0.11/dist/emoji-en-US.json").then(n=>{if(!n.ok)throw Error("Failed to fetch emoji list");return n.json()}).catch(()=>({}));return Object.entries(e).map(([n,a])=>({shortcode:a[0],label:a.map(o=>`:${o}`).join(" "),emoji:n,displayLabel:`${n} ${a[0].replaceAll("_"," ")}`,apply:n,type:"emoji"}))}),O3=async e=>{let n=e.matchBefore(/::[\w-:]*$/);if(!e.explicit&&!n)return null;let a=await A3();return{from:(n==null?void 0:n.from)??e.pos,options:a,validFor:/^[\w-:]*$/}},A3=rr(async()=>{let e=await fetch("https://unpkg.com/lucide-static@0.452.0/tags.json").then(a=>{if(!a.ok)throw Error("Failed to fetch Lucide icon list");return a.json()}).catch(()=>({})),n=a=>`https://cdn.jsdelivr.net/npm/lucide-static@0.452.0/icons/${a}.svg`;return Object.entries(e).map(([a,o])=>({label:`::${a}`,displayLabel:a,type:"lucide-icon",boost:10,apply:`::lucide:${a}::`,detail:o.join(", "),info:()=>{let s=document.createElement("img");return s.src=n(a),s.style.width="24px",s.style.height="24px",s}}))}),R3=e=>{let n=e.matchBefore(/\\\w*$/);return!e.explicit&&!n?null:{from:(n==null?void 0:n.from)??e.pos,options:P3(),validFor:/^[\w\\]*$/}},P3=rr(()=>[["alpha","\u03B1","Greek small letter alpha"],["beta","\u03B2","Greek small letter beta"],["gamma","\u03B3","Greek small letter gamma"],["delta","\u03B4","Greek small letter delta"],["epsilon","\u03B5","Greek small letter epsilon"],["zeta","\u03B6","Greek small letter zeta"],["eta","\u03B7","Greek small letter eta"],["theta","\u03B8","Greek small letter theta"],["iota","\u03B9","Greek small letter iota"],["kappa","\u03BA","Greek small letter kappa"],["lambda","\u03BB","Greek small letter lambda"],["mu","\u03BC","Greek small letter mu"],["nu","\u03BD","Greek small letter nu"],["xi","\u03BE","Greek small letter xi"],["omicron","\u03BF","Greek small letter omicron"],["pi","\u03C0","Greek small letter pi"],["rho","\u03C1","Greek small letter rho"],["sigma","\u03C3","Greek small letter sigma"],["tau","\u03C4","Greek small letter tau"],["upsilon","\u03C5","Greek small letter upsilon"],["phi","\u03C6","Greek small letter phi"],["chi","\u03C7","Greek small letter chi"],["psi","\u03C8","Greek small letter psi"],["omega","\u03C9","Greek small letter omega"],["Gamma","\u0393","Greek capital letter gamma"],["Delta","\u0394","Greek capital letter delta"],["Theta","\u0398","Greek capital letter theta"],["Lambda","\u039B","Greek capital letter lambda"],["Xi","\u039E","Greek capital letter xi"],["Pi","\u03A0","Greek capital letter pi"],["Sigma","\u03A3","Greek capital letter sigma"],["Phi","\u03A6","Greek capital letter phi"],["Psi","\u03A8","Greek capital letter psi"],["Omega","\u03A9","Greek capital letter omega"],["pm","\xB1","Plus-minus sign"],["mp","\u2213","Minus-plus sign"],["times","\xD7","Multiplication sign"],["div","\xF7","Division sign"],["cdot","\u22C5","Dot operator"],["ast","\u2217","Asterisk operator"],["star","\u22C6","Star operator"],["circ","\u2218","Ring operator"],["bullet","\u2022","Bullet"],["cap","\u2229","Intersection"],["cup","\u222A","Union"],["uplus","\u228E","Multiset union"],["sqcap","\u2293","Square cap"],["sqcup","\u2294","Square cup"],["vee","\u2228","Logical or"],["wedge","\u2227","Logical and"],["setminus","\u2216","Set minus"],["oplus","\u2295","Circled plus"],["ominus","\u2296","Circled minus"],["otimes","\u2297","Circled times"],["oslash","\u2298","Circled division slash"],["odot","\u2299","Circled dot operator"],["leq","\u2264","Less than or equal to"],["geq","\u2265","Greater than or equal to"],["equiv","\u2261","Identical to"],["prec","\u227A","Precedes"],["succ","\u227B","Succeeds"],["sim","\u223C","Tilde operator"],["perp","\u22A5","Up tack"],["mid","\u2223","Divides"],["parallel","\u2225","Parallel to"],["subset","\u2282","Subset of"],["supset","\u2283","Superset of"],["subseteq","\u2286","Subset of or equal to"],["supseteq","\u2287","Superset of or equal to"],["cong","\u2245","Approximately equal to"],["approx","\u2248","Almost equal to"],["neq","\u2260","Not equal to"],["ne","\u2260","Not equal to"],["propto","\u221D","Proportional to"],["leftarrow","\u2190","Leftward arrow"],["rightarrow","\u2192","Rightward arrow"],["Leftarrow","\u21D0","Leftward double arrow"],["Rightarrow","\u21D2","Rightward double arrow"],["leftrightarrow","\u2194","Left right arrow"],["Leftrightarrow","\u21D4","Left right double arrow"],["uparrow","\u2191","Upward arrow"],["downarrow","\u2193","Downward arrow"],["Uparrow","\u21D1","Upward double arrow"],["Downarrow","\u21D3","Downward double arrow"],["infty","\u221E","Infinity"],["nabla","\u2207","Nabla"],["partial","\u2202","Partial differential"],["forall","\u2200","For all"],["exists","\u2203","There exists"],["nexists","\u2204","There does not exist"],["emptyset","\u2205","Empty set"],["in","\u2208","Element of"],["notin","\u2209","Not an element of"],["sum","\u2211","N-ary summation"],["prod","\u220F","N-ary product"],["int","\u222B","Integral"],["oint","\u222E","Contour integral"],["sqrt","\u221A","Square root"],["hbar","\u210F","Planck constant over 2pi"],["ldots","\u2026","Horizontal ellipsis"],["cdots","\u22EF","Midline horizontal ellipsis"],["vdots","\u22EE","Vertical ellipsis"],["ddots","\u22F1","Down right diagonal ellipsis"]].map(([e,n,a])=>({label:`\\${e} ${a}`,displayLabel:e,type:"latex-symbol",boost:10,apply:`\\${e}`,info:()=>{let o=document.createElement("div");return o.textContent=`${n} ${a}`,o},detail:n})));const N3=[I3,O3,R3];var M3=100;function lo(e){return!e.state.selection.main.empty}function mf({view:e,selection:n,markup:a}){let o=[],s=!0;for(let c=n.from;c<=n.to;c++)if(!e.state.doc.lineAt(c).text.startsWith(a)){s=!1;break}for(let c=n.from;c<=n.to;){let f=e.state.doc.lineAt(c),d=f.text.startsWith(a);s?o.push({from:f.from,to:f.from+a.length,insert:Ui.of([""])}):(d&&o.push({from:f.from,to:f.from+a.length,insert:Ui.of([""])}),o.push({from:f.from,insert:Ui.of([a])})),c=f.to+1}return o}function gf({view:e,range:n,markupAfter:a,markupBefore:o}){if(n.empty){let b=e.state.wordAt(n.head);b&&(n=b)}let s=e.state.sliceDoc(n.from-o.length,n.from)===o,c=e.state.sliceDoc(n.to,n.to+a.length)===a,f=[];f.push(s?{from:n.from-o.length,to:n.from,insert:Ui.of([""])}:{from:n.from,insert:Ui.of(o.split(`
98
98
  `))},c?{from:n.to,to:n.to+a.length,insert:Ui.of([""])}:{from:n.to,insert:Ui.of(a.split(`
99
- `))});let d=s?-o.length:o.length,m=c?-a.length:a.length;return{changes:f,range:$t.range(n.from+d,n.to+m)}}function D3(e){if(!lo(e))return!1;let n=mf({view:e,selection:e.state.selection.main,markup:"> "});return n.length>0&&e.dispatch(e.state.update({changes:n,scrollIntoView:!0,userEvent:"input"})),e.focus(),!0}function j3(e){if(!lo(e))return!1;let n=e.state.changeByRange(a=>{if(a.empty){let o=e.state.wordAt(a.head);o&&(a=o)}return gf({view:e,range:a,markupBefore:"**",markupAfter:"**"})});return e.dispatch(e.state.update(n,{scrollIntoView:!0,annotations:ss.userEvent.of("input")})),e.focus(),!0}function Zy(e){if(!lo(e))return!1;let n=e.state.changeByRange(a=>{if(a.empty){let s=e.state.wordAt(a.head);s&&(a=s)}let o=e.state.doc.lineAt(a.from).number!==e.state.doc.lineAt(a.to).number;return gf({view:e,range:a,markupBefore:o?"```\n":"`",markupAfter:o?"\n```":"`"})});return e.dispatch(e.state.update(n,{scrollIntoView:!0,annotations:ss.userEvent.of("input")})),e.focus(),!0}function z3(e){let n=e.state.changeByRange(a=>{if(a.empty){let o=e.state.wordAt(a.head);o&&(a=o)}return gf({view:e,range:a,markupBefore:"_",markupAfter:"_"})});return e.dispatch(e.state.update(n,{scrollIntoView:!0,annotations:ss.userEvent.of("input")})),e.focus(),!0}function e1(e,n="http://"){if(!lo(e))return!1;let a=e.state.changeByRange(s=>{let c=e.state.sliceDoc(s.from,s.to);return{changes:[{from:s.from,to:s.to,insert:`[${c}](${n})`}],range:s}});e.dispatch(e.state.update(a,{scrollIntoView:!0,annotations:ss.userEvent.of("input")}));let{to:o}=a.selection.main;try{e.dispatch({selection:$t.create([$t.range(o+3,o+3+n.length),$t.cursor(o+3+n.length)])})}catch{}return e.focus(),!0}n0=async function(e,n){var d;let a=new FileReader,o=await new Promise(m=>{a.onload=()=>m(a.result),a.readAsDataURL(n)}),s;try{if(o.startsWith("data:")){let m=o.split(",")[1],b=prompt("We can save your image as a file. Enter a filename.",n.name),_=n.type.split("/")[1];if(b===null){let x=Math.round(o.length/1024);if(x>M3){Tl({title:"Content too large",description:`The content size is ${x} KB, which is too large to paste directly into the document.`});return}}else{b.trim()===""?b=n.name:b.endsWith(`.${_}`)||(b=`${b}.${_}`);let x=Me.get(hs),S=x?Yw.dirname(x):null,E=S?`${S}/public`:"public",L=await br().sendCreateFileOrFolder({path:E,type:"file",name:b,contents:m});L.success?(s=(d=L.info)==null?void 0:d.path,s&&S&&s.startsWith(S)&&(s=Yw.rest(s,S)),Tl({title:"Image uploaded successfully",description:`We've uploaded your image at ${s}`})):Tl({title:"Failed to upload image. Using raw base64 string."})}}}catch{Tl({title:"Failed to upload image. Using raw base64 string."})}let c=e.state.changeByRange(m=>{let b=e.state.sliceDoc(m.from,m.to);return b.trim()===""&&(b="alt"),{changes:[{from:m.from,to:m.to,insert:`![${b}](${s??o})`}],range:m}});e.dispatch(e.state.update(c,{scrollIntoView:!0,annotations:ss.userEvent.of("input")}));let{to:f}=c.selection.main;try{e.dispatch({selection:$t.create([$t.range(f+4,f+4+o.length),$t.cursor(f+4+o.length)])})}catch{}return e.focus(),!0},Wm=async function(e,n){let a=await n.text(),o=e.state.changeByRange(s=>({changes:[{from:s.from,to:s.from,insert:a}],range:s}));return e.dispatch(e.state.update(o,{scrollIntoView:!0,annotations:ss.userEvent.of("input")})),e.focus(),!0};function q3(e){if(!lo(e))return!1;let{changes:n}=e.state.changeByRange(a=>({range:a,changes:mf({view:e,selection:a,markup:e.state.sliceDoc(a.from,a.to+2).startsWith("* ")?"* ":"- "})}));return n.length>0&&e.dispatch(e.state.update({changes:n,scrollIntoView:!0,userEvent:"input"})),e.focus(),!0}function F3(e){if(!lo(e))return!1;let{changes:n}=e.state.changeByRange(a=>({range:a,changes:mf({view:e,selection:a,markup:"1. "})}));return n.length>0&&e.dispatch(e.state.update({changes:n,scrollIntoView:!0,userEvent:"input"})),e.focus(),!0}function B3(e){return[qu.highest(Ja.of([{key:e.getHotkey("markdown.bold").key,stopPropagation:!0,run:j3},{key:e.getHotkey("markdown.italic").key,stopPropagation:!0,run:z3},{key:e.getHotkey("markdown.link").key,stopPropagation:!0,run:n=>e1(n)},{key:e.getHotkey("markdown.orderedList").key,run:F3},{key:e.getHotkey("markdown.unorderedList").key,run:q3},{key:e.getHotkey("markdown.blockquote").key,run:D3},{key:e.getHotkey("markdown.code").key,run:Zy},{key:"`",run:Zy}])),Et.domEventHandlers({paste:(n,a)=>{var s;if(a.state.selection.main.empty)return!1;let o=(s=n.clipboardData)==null?void 0:s.getData("text/plain");o!=null&&o.startsWith("http")&&(n.preventDefault(),e1(a,o))}}),Et.domEventHandlers({paste:(n,a)=>{var s;let o=(s=n.clipboardData)==null?void 0:s.files[0];if(!o)return!1;if(o.type.startsWith("image/"))return n.preventDefault(),n0(a,o),!0;if(o.type.startsWith("text/"))return n.preventDefault(),Wm(a,o),!0}})]}function V3(e,n,a=3,o=""){return Object.values(e).flatMap(s=>n.has(s.name)?[]:{label:`${o}${s.name}`,displayLabel:s.name,detail:s.dataType??"",boost:a,type:"variable",apply:`${o}${s.name}`,section:"Variable",info:()=>Am(s)})}Am=function(e){let n=document.createElement("div");n.classList.add("mo-cm-tooltip","docs-documentation","min-w-[200px]","flex","flex-col","gap-1","p-2");let a=document.createElement("div");a.classList.add("flex","items-center","gap-2");let o=document.createElement("span");if(o.classList.add("font-bold","text-base"),o.textContent=e.name,a.append(o),e.dataType){let s=document.createElement("span");s.classList.add("text-xs","px-1.5","py-0.5","rounded-full","bg-purple-100","text-purple-800","dark:bg-purple-900","dark:text-purple-200"),s.textContent=e.dataType,a.append(s)}if(n.append(a),e.value){let s=document.createElement("div");s.classList.add("flex","flex-col","gap-1");let c=document.createElement("div");c.classList.add("text-xs","text-muted-foreground"),c.textContent="Value:",s.append(c);let f=document.createElement("div");f.classList.add("text-xs","font-mono","bg-muted","p-2","rounded","overflow-auto","max-h-40"),f.textContent=e.value,s.append(f),n.append(s)}return n};var co="Python",yf=123,t1=125,vf=1,H3={mark:`${co}Mark`,resolve:co};function $3(e,n){return{defineNodes:[{name:co,style:zu.emphasis},{name:`${co}Mark`,style:zu.processingInstruction}],parseInline:[{name:co,parse(a,o,s){return!n()||o!==yf&&o!==t1||o===yf&&a.slice(s-1,s)==="{"?-1:a.addDelimiter(H3,s,s+vf,o===yf,o===t1)}}],wrap:zw(a=>{if(!n()||a.type.name!==co)return null;let o=a.from+vf,s=a.to-vf;return o>=s||o<0||s<0?null:{parser:e,overlay:[{from:o,to:s}],extensions:[Xw().support]}})}}const W3=e=>{let n=e.state.doc.sliceString(0,e.pos),a=n.lastIndexOf("{");if(n.at(a-1)==="{"||a===-1||n.indexOf("}",a)>a)return null;let o=e.matchBefore(/\w*$/);if(!o)return null;let s=V3(Me.get(Xa),new Set,99);return{from:o.from,options:s,validFor:/^\w*$/}};var Yl="InlineMathDollar",uo="InlineMathBracket",Zl="BlockMathDollar",fo="BlockMathBracket",ci={[Yl]:1,[uo]:3,[Zl]:2,[fo]:3},pt={DOLLAR:36,BACKSLASH:92,OPEN_PAREN:40,CLOSE_PAREN:41,OPEN_BRACKET:91,CLOSE_BRACKET:93},po=Object.keys(ci).reduce((e,n)=>(e[n]={mark:`${n}Mark`,resolve:n},e),{});function U3(e){let n=[];return Object.keys(ci).forEach(a=>{n.push({name:a,style:zu.emphasis},{name:`${a}Mark`,style:zu.processingInstruction})}),{defineNodes:n,parseInline:[{name:Zl,parse(a,o,s){return o!==pt.DOLLAR||a.char(s+1)!==pt.DOLLAR?-1:a.addDelimiter(po[Zl],s,s+ci[Zl],!0,!0)}},{name:Yl,parse(a,o,s){return o!==pt.DOLLAR||a.char(s+1)===pt.DOLLAR?-1:a.addDelimiter(po[Yl],s,s+ci[Yl],!0,!0)}},{name:uo,before:"Escape",parse(a,o,s){return o!==pt.BACKSLASH||a.char(s+1)!==pt.BACKSLASH||![pt.OPEN_PAREN,pt.CLOSE_PAREN].includes(a.char(s+2))?-1:a.addDelimiter(po[uo],s,s+ci[uo],a.char(s+2)===pt.OPEN_PAREN,a.char(s+2)===pt.CLOSE_PAREN)}},{name:fo,before:"Escape",parse(a,o,s){return o!==pt.BACKSLASH||a.char(s+1)!==pt.BACKSLASH||![pt.OPEN_BRACKET,pt.CLOSE_BRACKET].includes(a.char(s+2))?-1:a.addDelimiter(po[fo],s,s+ci[fo],a.char(s+2)===pt.OPEN_BRACKET,a.char(s+2)===pt.CLOSE_BRACKET)}},{name:uo,before:"Escape",parse(a,o,s){return o!==pt.BACKSLASH||![pt.OPEN_PAREN,pt.CLOSE_PAREN].includes(a.char(s+1))?-1:a.addDelimiter(po[uo],s,s+2,a.char(s+1)===pt.OPEN_PAREN,a.char(s+1)===pt.CLOSE_PAREN)}},{name:fo,before:"Escape",parse(a,o,s){return o!==pt.BACKSLASH||![pt.OPEN_BRACKET,pt.CLOSE_BRACKET].includes(a.char(s+1))?-1:a.addDelimiter(po[fo],s,s+2,a.char(s+1)===pt.OPEN_BRACKET,a.char(s+1)===pt.CLOSE_BRACKET)}}],wrap:zw(a=>{let o=ci[a.type.name];if(o){let s=a.from+o,c=a.to-o;return s>=c||s<0||c<0?null:{parser:e,overlay:[{from:s,to:c}]}}return null})}}Xu=la.define(),Vu=la.define(),Nr=os.define({create:()=>({}),update:(e,n)=>{for(let a of n.effects){if(a.is(Xu))return a.value;if(a.is(Vu))return{...e,...a.value}}return e}}),rx=!0,rd=class{constructor(){ve(this,"parser",new nd);ve(this,"type","markdown");ve(this,"defaultCode",this.parser.defaultCode);ve(this,"defaultMetadata",this.parser.defaultMetadata)}static fromMarkdown(e){return nd.fromMarkdown(e)}transformIn(e){let n=this.parser.transformIn(e);return[n.code,n.offset,n.metadata]}transformOut(e,n){let a=this.parser.transformOut(e,n);return[a.code,a.offset]}isSupported(e){return this.parser.isSupported(e)}getExtension(e,n,a,o){let s=Jw().language.data,c,f=()=>{var m;if(!c)return!0;let d=c==null?void 0:c.state.field(Nr);return d===void 0?!1:((m=d.quotePrefix)==null?void 0:m.includes("f"))??!1};return[Ki.define(d=>(c=d,{})),Jw({base:X8,codeLanguages:QC,extensions:[U3(jw.define(tI).parser),$3(Gh.parser,f)]}),B3(a),N3.map(d=>s.of({autocomplete:d})),Xw().language.data.of({autocomplete:T3({completion:Yy,predicate:f})}),Bu({defaultKeymap:!1,activateOnTyping:!0}),E3({predicate:()=>!f()})]}};function ec(){var e;return((e=Me.get(jl))==null?void 0:e.rootUri)??"file:///"}function tc(){var n;let e=(n=Me.get(jl))==null?void 0:n.rootUri;return e?[{uri:e,name:"marimo"}]:[]}function n1(){var e;return((e=Me.get(jl))==null?void 0:e.documentUri)??"file:///__marimo_notebook__.py"}function K3(e){return Rr.filter(e,n=>n!==!1&&n!==null)}function r1(e){let n=e.map(K3);return Object.assign({},...n)}var Q3=class{constructor(e){ve(this,"clients",[]);this.clients=e,this.documentUri=n1()}onNotification(e){let n=[];for(let a of this.clients)n.push(a.onNotification(e));return()=>{for(let a of n)a();return!0}}get clientCapabilities(){return r1(this.clients.map(e=>{if(e.clientCapabilities)return typeof e.clientCapabilities=="function"?e.clientCapabilities({}):e.clientCapabilities}).filter(e=>e!=null))}get ready(){return this.clients.some(e=>e.ready)}set ready(e){this.clients.forEach(n=>{n.ready=e})}get capabilities(){return r1(this.clients.map(e=>e.capabilities).filter(e=>e!==null))}set capabilities(e){this.clients.forEach(n=>{n.capabilities=e})}get initializePromise(){return this.clients[0].initializePromise}set initializePromise(e){this.clients.forEach(n=>{n.initializePromise=e})}firstWithCapability(e){return this.clients.find(n=>{var a;return(a=n.capabilities)==null?void 0:a[e]})}clientsWithCapability(e){return this.clients.filter(n=>{var a;return(a=n.capabilities)==null?void 0:a[e]})}async initialize(){await Promise.all(this.clients.map(e=>e.initialize()))}async close(){await Promise.all(this.clients.map(e=>e.close()))}async textDocumentDidChange(e){return await Promise.all(this.clients.map(n=>n.textDocumentDidChange(e))),e}async completionItemResolve(e){let n=this.firstWithCapability("completionProvider");return n?n.completionItemResolve(e):e}async textDocumentCodeAction(e){let n=this.firstWithCapability("codeActionProvider");return n?n.textDocumentCodeAction(e):null}async textDocumentRename(e){let n=this.firstWithCapability("renameProvider");return n?n.textDocumentRename(e):null}async textDocumentPrepareRename(e){let n=this.firstWithCapability("renameProvider");return n?n.textDocumentPrepareRename(e):null}async textDocumentSignatureHelp(e){let n=this.firstWithCapability("signatureHelpProvider");return n?n.textDocumentSignatureHelp(e):null}async textDocumentCompletion(e){let n=this.clientsWithCapability("completionProvider");return G3(await Promise.allSettled(n.map(a=>a.textDocumentCompletion(e))))}async textDocumentDefinition(e){let n=this.firstWithCapability("definitionProvider");return n?n.textDocumentDefinition(e):null}async textDocumentDidOpen(e){return await Promise.all(this.clients.map(n=>n.textDocumentDidOpen(e))),e}async textDocumentHover(e){var n;for(let a of this.clients){if(!((n=a.capabilities)!=null&&n.hoverProvider))continue;let o=await a.textDocumentHover(e);if(o)return o}return{contents:[]}}};function G3(e){let n=[],a=!1;for(let o of e)if(o.status==="fulfilled"){let s=o.value;if(s==null)continue;Array.isArray(s)&&n.push(...s),"items"in s&&(n.push(...s.items),a||(a=s.isIncomplete))}return{items:n,isIncomplete:a}}A_=function(e){return[...J3(e),e].join(`
99
+ `))});let d=s?-o.length:o.length,m=c?-a.length:a.length;return{changes:f,range:$t.range(n.from+d,n.to+m)}}function D3(e){if(!lo(e))return!1;let n=mf({view:e,selection:e.state.selection.main,markup:"> "});return n.length>0&&e.dispatch(e.state.update({changes:n,scrollIntoView:!0,userEvent:"input"})),e.focus(),!0}function j3(e){if(!lo(e))return!1;let n=e.state.changeByRange(a=>{if(a.empty){let o=e.state.wordAt(a.head);o&&(a=o)}return gf({view:e,range:a,markupBefore:"**",markupAfter:"**"})});return e.dispatch(e.state.update(n,{scrollIntoView:!0,annotations:ss.userEvent.of("input")})),e.focus(),!0}function Zy(e){if(!lo(e))return!1;let n=e.state.changeByRange(a=>{if(a.empty){let s=e.state.wordAt(a.head);s&&(a=s)}let o=e.state.doc.lineAt(a.from).number!==e.state.doc.lineAt(a.to).number;return gf({view:e,range:a,markupBefore:o?"```\n":"`",markupAfter:o?"\n```":"`"})});return e.dispatch(e.state.update(n,{scrollIntoView:!0,annotations:ss.userEvent.of("input")})),e.focus(),!0}function z3(e){let n=e.state.changeByRange(a=>{if(a.empty){let o=e.state.wordAt(a.head);o&&(a=o)}return gf({view:e,range:a,markupBefore:"_",markupAfter:"_"})});return e.dispatch(e.state.update(n,{scrollIntoView:!0,annotations:ss.userEvent.of("input")})),e.focus(),!0}function e1(e,n="http://"){if(!lo(e))return!1;let a=e.state.changeByRange(s=>{let c=e.state.sliceDoc(s.from,s.to);return{changes:[{from:s.from,to:s.to,insert:`[${c}](${n})`}],range:s}});e.dispatch(e.state.update(a,{scrollIntoView:!0,annotations:ss.userEvent.of("input")}));let{to:o}=a.selection.main;try{e.dispatch({selection:$t.create([$t.range(o+3,o+3+n.length),$t.cursor(o+3+n.length)])})}catch{}return e.focus(),!0}n0=async function(e,n){var d;let a=new FileReader,o=await new Promise(m=>{a.onload=()=>m(a.result),a.readAsDataURL(n)}),s;try{if(o.startsWith("data:")){let m=o.split(",")[1],b=prompt("We can save your image as a file. Enter a filename.",n.name),_=n.type.split("/")[1];if(b===null){let x=Math.round(o.length/1024);if(x>M3){Tl({title:"Content too large",description:`The content size is ${x} KB, which is too large to paste directly into the document.`});return}}else{b.trim()===""?b=n.name:b.endsWith(`.${_}`)||(b=`${b}.${_}`);let x=Me.get(hs),S=x?Yw.dirname(x):null,E=S?`${S}/public`:"public",L=await br().sendCreateFileOrFolder({path:E,type:"file",name:b,contents:m});L.success?(s=(d=L.info)==null?void 0:d.path,s&&S&&s.startsWith(S)&&(s=Yw.rest(s,S).replaceAll("\\","/")),Tl({title:"Image uploaded successfully",description:`We've uploaded your image at ${s}`})):Tl({title:"Failed to upload image. Using raw base64 string."})}}}catch{Tl({title:"Failed to upload image. Using raw base64 string."})}let c=e.state.changeByRange(m=>{let b=e.state.sliceDoc(m.from,m.to);return b.trim()===""&&(b="alt"),{changes:[{from:m.from,to:m.to,insert:`![${b}](${s??o})`}],range:m}});e.dispatch(e.state.update(c,{scrollIntoView:!0,annotations:ss.userEvent.of("input")}));let{to:f}=c.selection.main;try{e.dispatch({selection:$t.create([$t.range(f+4,f+4+o.length),$t.cursor(f+4+o.length)])})}catch{}return e.focus(),!0},Wm=async function(e,n){let a=await n.text(),o=e.state.changeByRange(s=>({changes:[{from:s.from,to:s.from,insert:a}],range:s}));return e.dispatch(e.state.update(o,{scrollIntoView:!0,annotations:ss.userEvent.of("input")})),e.focus(),!0};function q3(e){if(!lo(e))return!1;let{changes:n}=e.state.changeByRange(a=>({range:a,changes:mf({view:e,selection:a,markup:e.state.sliceDoc(a.from,a.to+2).startsWith("* ")?"* ":"- "})}));return n.length>0&&e.dispatch(e.state.update({changes:n,scrollIntoView:!0,userEvent:"input"})),e.focus(),!0}function F3(e){if(!lo(e))return!1;let{changes:n}=e.state.changeByRange(a=>({range:a,changes:mf({view:e,selection:a,markup:"1. "})}));return n.length>0&&e.dispatch(e.state.update({changes:n,scrollIntoView:!0,userEvent:"input"})),e.focus(),!0}function B3(e){return[qu.highest(Ja.of([{key:e.getHotkey("markdown.bold").key,stopPropagation:!0,run:j3},{key:e.getHotkey("markdown.italic").key,stopPropagation:!0,run:z3},{key:e.getHotkey("markdown.link").key,stopPropagation:!0,run:n=>e1(n)},{key:e.getHotkey("markdown.orderedList").key,run:F3},{key:e.getHotkey("markdown.unorderedList").key,run:q3},{key:e.getHotkey("markdown.blockquote").key,run:D3},{key:e.getHotkey("markdown.code").key,run:Zy},{key:"`",run:Zy}])),Et.domEventHandlers({paste:(n,a)=>{var s;if(a.state.selection.main.empty)return!1;let o=(s=n.clipboardData)==null?void 0:s.getData("text/plain");o!=null&&o.startsWith("http")&&(n.preventDefault(),e1(a,o))}}),Et.domEventHandlers({paste:(n,a)=>{var s;let o=(s=n.clipboardData)==null?void 0:s.files[0];if(!o)return!1;if(o.type.startsWith("image/"))return n.preventDefault(),n0(a,o),!0;if(o.type.startsWith("text/"))return n.preventDefault(),Wm(a,o),!0}})]}function V3(e,n,a=3,o=""){return Object.values(e).flatMap(s=>n.has(s.name)?[]:{label:`${o}${s.name}`,displayLabel:s.name,detail:s.dataType??"",boost:a,type:"variable",apply:`${o}${s.name}`,section:"Variable",info:()=>Am(s)})}Am=function(e){let n=document.createElement("div");n.classList.add("mo-cm-tooltip","docs-documentation","min-w-[200px]","flex","flex-col","gap-1","p-2");let a=document.createElement("div");a.classList.add("flex","items-center","gap-2");let o=document.createElement("span");if(o.classList.add("font-bold","text-base"),o.textContent=e.name,a.append(o),e.dataType){let s=document.createElement("span");s.classList.add("text-xs","px-1.5","py-0.5","rounded-full","bg-purple-100","text-purple-800","dark:bg-purple-900","dark:text-purple-200"),s.textContent=e.dataType,a.append(s)}if(n.append(a),e.value){let s=document.createElement("div");s.classList.add("flex","flex-col","gap-1");let c=document.createElement("div");c.classList.add("text-xs","text-muted-foreground"),c.textContent="Value:",s.append(c);let f=document.createElement("div");f.classList.add("text-xs","font-mono","bg-muted","p-2","rounded","overflow-auto","max-h-40"),f.textContent=e.value,s.append(f),n.append(s)}return n};var co="Python",yf=123,t1=125,vf=1,H3={mark:`${co}Mark`,resolve:co};function $3(e,n){return{defineNodes:[{name:co,style:zu.emphasis},{name:`${co}Mark`,style:zu.processingInstruction}],parseInline:[{name:co,parse(a,o,s){return!n()||o!==yf&&o!==t1||o===yf&&a.slice(s-1,s)==="{"?-1:a.addDelimiter(H3,s,s+vf,o===yf,o===t1)}}],wrap:zw(a=>{if(!n()||a.type.name!==co)return null;let o=a.from+vf,s=a.to-vf;return o>=s||o<0||s<0?null:{parser:e,overlay:[{from:o,to:s}],extensions:[Xw().support]}})}}const W3=e=>{let n=e.state.doc.sliceString(0,e.pos),a=n.lastIndexOf("{");if(n.at(a-1)==="{"||a===-1||n.indexOf("}",a)>a)return null;let o=e.matchBefore(/\w*$/);if(!o)return null;let s=V3(Me.get(Xa),new Set,99);return{from:o.from,options:s,validFor:/^\w*$/}};var Yl="InlineMathDollar",uo="InlineMathBracket",Zl="BlockMathDollar",fo="BlockMathBracket",ci={[Yl]:1,[uo]:3,[Zl]:2,[fo]:3},pt={DOLLAR:36,BACKSLASH:92,OPEN_PAREN:40,CLOSE_PAREN:41,OPEN_BRACKET:91,CLOSE_BRACKET:93},po=Object.keys(ci).reduce((e,n)=>(e[n]={mark:`${n}Mark`,resolve:n},e),{});function U3(e){let n=[];return Object.keys(ci).forEach(a=>{n.push({name:a,style:zu.emphasis},{name:`${a}Mark`,style:zu.processingInstruction})}),{defineNodes:n,parseInline:[{name:Zl,parse(a,o,s){return o!==pt.DOLLAR||a.char(s+1)!==pt.DOLLAR?-1:a.addDelimiter(po[Zl],s,s+ci[Zl],!0,!0)}},{name:Yl,parse(a,o,s){return o!==pt.DOLLAR||a.char(s+1)===pt.DOLLAR?-1:a.addDelimiter(po[Yl],s,s+ci[Yl],!0,!0)}},{name:uo,before:"Escape",parse(a,o,s){return o!==pt.BACKSLASH||a.char(s+1)!==pt.BACKSLASH||![pt.OPEN_PAREN,pt.CLOSE_PAREN].includes(a.char(s+2))?-1:a.addDelimiter(po[uo],s,s+ci[uo],a.char(s+2)===pt.OPEN_PAREN,a.char(s+2)===pt.CLOSE_PAREN)}},{name:fo,before:"Escape",parse(a,o,s){return o!==pt.BACKSLASH||a.char(s+1)!==pt.BACKSLASH||![pt.OPEN_BRACKET,pt.CLOSE_BRACKET].includes(a.char(s+2))?-1:a.addDelimiter(po[fo],s,s+ci[fo],a.char(s+2)===pt.OPEN_BRACKET,a.char(s+2)===pt.CLOSE_BRACKET)}},{name:uo,before:"Escape",parse(a,o,s){return o!==pt.BACKSLASH||![pt.OPEN_PAREN,pt.CLOSE_PAREN].includes(a.char(s+1))?-1:a.addDelimiter(po[uo],s,s+2,a.char(s+1)===pt.OPEN_PAREN,a.char(s+1)===pt.CLOSE_PAREN)}},{name:fo,before:"Escape",parse(a,o,s){return o!==pt.BACKSLASH||![pt.OPEN_BRACKET,pt.CLOSE_BRACKET].includes(a.char(s+1))?-1:a.addDelimiter(po[fo],s,s+2,a.char(s+1)===pt.OPEN_BRACKET,a.char(s+1)===pt.CLOSE_BRACKET)}}],wrap:zw(a=>{let o=ci[a.type.name];if(o){let s=a.from+o,c=a.to-o;return s>=c||s<0||c<0?null:{parser:e,overlay:[{from:s,to:c}]}}return null})}}Xu=la.define(),Vu=la.define(),Nr=os.define({create:()=>({}),update:(e,n)=>{for(let a of n.effects){if(a.is(Xu))return a.value;if(a.is(Vu))return{...e,...a.value}}return e}}),rx=!0,rd=class{constructor(){ve(this,"parser",new nd);ve(this,"type","markdown");ve(this,"defaultCode",this.parser.defaultCode);ve(this,"defaultMetadata",this.parser.defaultMetadata)}static fromMarkdown(e){return nd.fromMarkdown(e)}transformIn(e){let n=this.parser.transformIn(e);return[n.code,n.offset,n.metadata]}transformOut(e,n){let a=this.parser.transformOut(e,n);return[a.code,a.offset]}isSupported(e){return this.parser.isSupported(e)}getExtension(e,n,a,o){let s=Jw().language.data,c,f=()=>{var m;if(!c)return!0;let d=c==null?void 0:c.state.field(Nr);return d===void 0?!1:((m=d.quotePrefix)==null?void 0:m.includes("f"))??!1};return[Ki.define(d=>(c=d,{})),Jw({base:X8,codeLanguages:QC,extensions:[U3(jw.define(tI).parser),$3(Gh.parser,f)]}),B3(a),N3.map(d=>s.of({autocomplete:d})),Xw().language.data.of({autocomplete:T3({completion:Yy,predicate:f})}),Bu({defaultKeymap:!1,activateOnTyping:!0}),E3({predicate:()=>!f()})]}};function ec(){var e;return((e=Me.get(jl))==null?void 0:e.rootUri)??"file:///"}function tc(){var n;let e=(n=Me.get(jl))==null?void 0:n.rootUri;return e?[{uri:e,name:"marimo"}]:[]}function n1(){var e;return((e=Me.get(jl))==null?void 0:e.documentUri)??"file:///__marimo_notebook__.py"}function K3(e){return Rr.filter(e,n=>n!==!1&&n!==null)}function r1(e){let n=e.map(K3);return Object.assign({},...n)}var Q3=class{constructor(e){ve(this,"clients",[]);this.clients=e,this.documentUri=n1()}onNotification(e){let n=[];for(let a of this.clients)n.push(a.onNotification(e));return()=>{for(let a of n)a();return!0}}get clientCapabilities(){return r1(this.clients.map(e=>{if(e.clientCapabilities)return typeof e.clientCapabilities=="function"?e.clientCapabilities({}):e.clientCapabilities}).filter(e=>e!=null))}get ready(){return this.clients.some(e=>e.ready)}set ready(e){this.clients.forEach(n=>{n.ready=e})}get capabilities(){return r1(this.clients.map(e=>e.capabilities).filter(e=>e!==null))}set capabilities(e){this.clients.forEach(n=>{n.capabilities=e})}get initializePromise(){return this.clients[0].initializePromise}set initializePromise(e){this.clients.forEach(n=>{n.initializePromise=e})}firstWithCapability(e){return this.clients.find(n=>{var a;return(a=n.capabilities)==null?void 0:a[e]})}clientsWithCapability(e){return this.clients.filter(n=>{var a;return(a=n.capabilities)==null?void 0:a[e]})}async initialize(){await Promise.all(this.clients.map(e=>e.initialize()))}async close(){await Promise.all(this.clients.map(e=>e.close()))}async textDocumentDidChange(e){return await Promise.all(this.clients.map(n=>n.textDocumentDidChange(e))),e}async completionItemResolve(e){let n=this.firstWithCapability("completionProvider");return n?n.completionItemResolve(e):e}async textDocumentCodeAction(e){let n=this.firstWithCapability("codeActionProvider");return n?n.textDocumentCodeAction(e):null}async textDocumentRename(e){let n=this.firstWithCapability("renameProvider");return n?n.textDocumentRename(e):null}async textDocumentPrepareRename(e){let n=this.firstWithCapability("renameProvider");return n?n.textDocumentPrepareRename(e):null}async textDocumentSignatureHelp(e){let n=this.firstWithCapability("signatureHelpProvider");return n?n.textDocumentSignatureHelp(e):null}async textDocumentCompletion(e){let n=this.clientsWithCapability("completionProvider");return G3(await Promise.allSettled(n.map(a=>a.textDocumentCompletion(e))))}async textDocumentDefinition(e){let n=this.firstWithCapability("definitionProvider");return n?n.textDocumentDefinition(e):null}async textDocumentDidOpen(e){return await Promise.all(this.clients.map(n=>n.textDocumentDidOpen(e))),e}async textDocumentHover(e){var n;for(let a of this.clients){if(!((n=a.capabilities)!=null&&n.hoverProvider))continue;let o=await a.textDocumentHover(e);if(o)return o}return{contents:[]}}};function G3(e){let n=[],a=!1;for(let o of e)if(o.status==="fulfilled"){let s=o.value;if(s==null)continue;Array.isArray(s)&&n.push(...s),"items"in s&&(n.push(...s.items),a||(a=s.isIncomplete))}return{items:n,isIncomplete:a}}A_=function(e){return[...J3(e),e].join(`
100
100
  `)};function J3(e){return a0().map(n=>{let a=wr(n);return a===e?null:a}).filter(Boolean).toSorted((n,a)=>n.startsWith("import")&&!a.startsWith("import")?-1:!n.startsWith("import")&&a.startsWith("import")?1:0)}var X3=Te(e=>{let n=e(Ye);return Rr.fromEntries(n.cellIds.inOrderIds.map(a=>{let o=n.cellHandles[a];return[a,o!=null&&o.current?wr(o.current.editorView):""]}))}),Y3=Te(e=>e(Ye).cellIds.inOrderIds),Z3=Te(e=>tE(e(Y3),e(Xa)));const eE=Te(e=>({cellIds:e(Z3),codes:e(X3)}));function tE(e,n){var m,b;let a=new Map;e.forEach(_=>a.set(_,[]));let o=new Set(e),s=new Set(e);for(let{declaredBy:_,usedBy:x}of Object.values(n))for(let S of _){o.delete(S);for(let E of x)s.delete(E),E!==S&&((m=a.get(S))==null||m.push(E))}let c=new Map;e.forEach(_=>c.set(_,0)),a.forEach(_=>{_.forEach(x=>{c.set(x,(c.get(x)||0)+1)})});let f=[];c.forEach((_,x)=>{_===0&&f.push(x)});let d=[];for(;f.length>0;){let _=f.shift();if(!_)break;d.push(_),(b=a.get(_))==null||b.forEach(x=>{c.set(x,(c.get(x)||0)-1),c.get(x)===0&&f.push(x)})}return[...d.filter(_=>!o.has(_)),...o]}function nE(e,n){let a=new Map,o=0;e.forEach(f=>{a.set(f,o),o+=n[f].split(`
101
101
  `).length});function s(f){return a.has(f)||be.warn("[lsp] no cell line offsets for",f),a.get(f)??0}let c=e.map(f=>n[f]).join(`
102
102
  `);return{cellIds:e,mergedText:c,transformRange:(f,d)=>a1(f,s(d)),reverseRange:(f,d)=>a1(f,-s(d)),isInRange:(f,d)=>{let m=n[d].split(`
@@ -1 +1 @@
1
- import{s as P}from"./chunk-LvLJmgfZ.js";import{t as U}from"./react-Bj1aDYRI.js";import{gr as X,ur as $}from"./cells-Wp62mkuO.js";import{C as z,P as G,R as E,T as K}from"./zod-H_cgTO0M.js";import{t as J}from"./compiler-runtime-B3qBwwSJ.js";import{t as L}from"./isEmpty-CXeoXbuc.js";import{X as Q}from"./ai-model-dropdown-B43T4OtX.js";import{_ as W}from"./useEventListener-BR0C1MaI.js";import{t as C}from"./cn-DCUzRj2J.js";import{t as Y}from"./jsx-runtime-BqBOg78p.js";import{a as D,i as I,n as V,r as B}from"./multi-map-rafH3cg3.js";import{i as Z}from"./strings-md4mFbOQ.js";import{t as ee}from"./bot-message-square-DrbHk31W.js";import{t as H}from"./markdown-renderer-DjjwLrVA.js";import{l as te}from"./add-cell-with-ai-DMh3huz_.js";import{n as se}from"./spinner-Bhir8k53.js";import{c as ae}from"./datasource-DA33QXqs.js";import{t as re}from"./RenderHTML-BKLJDmuZ.js";var le=J(),ne=P(U(),1),t=P(Y(),1);const oe=n=>{let e=(0,le.c)(13),{reasoning:a,index:l,isStreaming:s}=n,r=l===void 0?0:l,m=s===void 0?!1:s,o=m?"reasoning":void 0,x;e[0]===Symbol.for("react.memo_cache_sentinel")?(x=(0,t.jsx)(ee,{className:"h-3 w-3"}),e[0]=x):x=e[0];let p=m?"Thinking":"View reasoning",c;e[1]!==a.length||e[2]!==p?(c=(0,t.jsx)(D,{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:[x,p," (",a.length," ","chars)"]})}),e[1]=a.length,e[2]=p,e[3]=c):c=e[3];let i;e[4]===a?i=e[5]:(i=(0,t.jsx)(B,{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)(H,{content:a})})})}),e[4]=a,e[5]=i);let d;e[6]!==c||e[7]!==i?(d=(0,t.jsxs)(I,{value:"reasoning",className:"border-0",children:[c,i]}),e[6]=c,e[7]=i,e[8]=d):d=e[8];let u;return e[9]!==r||e[10]!==o||e[11]!==d?(u=(0,t.jsx)(V,{type:"single",collapsible:!0,className:"w-full mb-2",value:o,children:d},r),e[9]=r,e[10]=o,e[11]=d,e[12]=u):u=e[12],u};var T=J(),ie=G({status:E().default("success"),auth_required:K().default(!1),action_url:z(),next_steps:z(),meta:z(),message:E().nullish()}).passthrough(),de=n=>{let e=(0,T.c)(12),{data:a}=n,l;if(e[0]!==a){let{status:s,auth_required:r,action_url:m,meta:o,next_steps:x,message:p,...c}=a,i;e[2]===Symbol.for("react.memo_cache_sentinel")?(i=(0,t.jsx)("h3",{className:"text-xs font-semibold text-muted-foreground",children:"Tool Result"}),e[2]=i):i=e[2];let d;e[3]===s?d=e[4]:(d=(0,t.jsx)("span",{className:"text-xs px-2 py-0.5 bg-[var(--grass-2)] text-[var(--grass-11)] rounded-full font-medium capitalize",children:s}),e[3]=s,e[4]=d);let u;e[5]===r?u=e[6]:(u=r&&(0,t.jsx)("span",{className:"text-xs px-2 py-0.5 bg-[var(--amber-2)] text-[var(--amber-11)] rounded-full",children:"Auth Required"}),e[5]=r,e[6]=u);let h;e[7]!==d||e[8]!==u?(h=(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[i,(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[d,u]})]}),e[7]=d,e[8]=u,e[9]=h):h=e[9];let f;e[10]===p?f=e[11]:(f=p&&(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)($,{className:"h-3 w-3 text-[var(--blue-11)] mt-0.5 flex-shrink-0"}),(0,t.jsx)("div",{className:"text-xs text-foreground",children:p})]}),e[10]=p,e[11]=f),l=(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[h,f,c&&(0,t.jsx)("div",{className:"space-y-3",children:Object.entries(c).map(xe)})]}),e[0]=a,e[1]=l}else l=e[1];return l},ce=n=>{let e=(0,T.c)(8),{result:a}=n,l;e[0]===a?l=e[1]:(l=ie.safeParse(a),e[0]=a,e[1]=l);let s=l;if(s.success){let o;return e[2]===s.data?o=e[3]:(o=(0,t.jsx)(de,{data:s.data}),e[2]=s.data,e[3]=o),o}let r;e[4]===a?r=e[5]:(r=typeof a=="string"?a:JSON.stringify(a,null,2),e[4]=a,e[5]=r);let m;return e[6]===r?m=e[7]:(m=(0,t.jsx)("div",{className:"text-xs font-medium text-muted-foreground mb-1 max-h-64 overflow-y-auto scrollbar-thin",children:r}),e[6]=r,e[7]=m),m},me=n=>{let e=(0,T.c)(9),{input:a}=n;if(!(a&&a!==null))return null;let l;e[0]===a?l=e[1]:(l=L(a),e[0]=a,e[1]=l);let s=l,r=typeof a=="object"&&!Array.isArray(a)&&Object.keys(a).length>0,m;e[2]===Symbol.for("react.memo_cache_sentinel")?(m=(0,t.jsx)("h3",{className:"text-xs font-semibold text-muted-foreground",children:"Tool Request"}),e[2]=m):m=e[2];let o;e[3]!==a||e[4]!==s||e[5]!==r?(o=s?"{}":r?JSON.stringify(a,null,2):String(a),e[3]=a,e[4]=s,e[5]=r,e[6]=o):o=e[6];let x;return e[7]===o?x=e[8]:(x=(0,t.jsxs)("div",{className:"space-y-2",children:[m,(0,t.jsx)("pre",{className:"bg-[var(--slate-2)] p-2 text-muted-foreground border border-[var(--slate-4)] rounded text-xs overflow-auto scrollbar-thin max-h-64",children:o})]}),e[7]=o,e[8]=x),x};const M=n=>{let e=(0,T.c)(38),{toolName:a,result:l,error:s,index:r,state:m,className:o,input:x}=n,p=r===void 0?0:r,c=m==="output-available"&&(l||s),i=s?"error":c?"success":"loading",d;e[0]===i?d=e[1]:(d=()=>{switch(i){case"loading":return(0,t.jsx)(se,{className:"h-3 w-3 animate-spin"});case"error":return(0,t.jsx)(X,{className:"h-3 w-3 text-[var(--red-11)]"});case"success":return(0,t.jsx)(Q,{className:"h-3 w-3 text-[var(--grass-11)]"});default:return(0,t.jsx)(ae,{className:"h-3 w-3"})}},e[0]=i,e[1]=d);let u=d,h;e[2]!==s||e[3]!==c||e[4]!==i?(h=()=>i==="loading"?"Running":s?"Failed":c?"Done":"Tool call",e[2]=s,e[3]=c,e[4]=i,e[5]=h):h=e[5];let f=h,F=`tool-${p}`,g;e[6]===o?g=e[7]:(g=C("w-full",o),e[6]=o,e[7]=g);let A=i==="error"&&"text-[var(--red-11)]/80",k=i==="success"&&"text-[var(--grass-11)]/80",j;e[8]!==A||e[9]!==k?(j=C("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",A,k),e[8]=A,e[9]=k,e[10]=j):j=e[10];let v;e[11]===u?v=e[12]:(v=u(),e[11]=u,e[12]=v);let q=f(),b;e[13]===a?b=e[14]:(b=ue(a),e[13]=a,e[14]=b);let N;e[15]===b?N=e[16]:(N=(0,t.jsx)("code",{className:"font-mono text-xs",children:b}),e[15]=b,e[16]=N);let y;e[17]!==q||e[18]!==N||e[19]!==v?(y=(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[v,q,":",N]}),e[17]=q,e[18]=N,e[19]=v,e[20]=y):y=e[20];let w;e[21]!==y||e[22]!==j?(w=(0,t.jsx)(D,{className:j,children:y}),e[21]=y,e[22]=j,e[23]=w):w=e[23];let _;e[24]!==s||e[25]!==c||e[26]!==x||e[27]!==l?(_=c&&(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)(me,{input:x}),l!=null&&(0,t.jsx)(ce,{result:l}),s&&(0,t.jsxs)("div",{className:"bg-[var(--red-2)] border border-[var(--red-6)] rounded-lg p-3",children:[(0,t.jsxs)("div",{className:"text-xs font-semibold text-[var(--red-11)] mb-2 flex items-center gap-2",children:[(0,t.jsx)("div",{className:"w-1.5 h-1.5 bg-[var(--red-9)] rounded-full"}),"Error"]}),(0,t.jsx)("div",{className:"text-sm text-[var(--red-11)] leading-relaxed",children:s})]})]}),e[24]=s,e[25]=c,e[26]=x,e[27]=l,e[28]=_):_=e[28];let S;e[29]===_?S=e[30]:(S=(0,t.jsx)(B,{className:"py-2 px-2",children:_}),e[29]=_,e[30]=S);let R;e[31]!==w||e[32]!==S?(R=(0,t.jsxs)(I,{value:"tool-call",className:"border-0",children:[w,S]}),e[31]=w,e[32]=S,e[33]=R):R=e[33];let O;return e[34]!==R||e[35]!==F||e[36]!==g?(O=(0,t.jsx)(V,{type:"single",collapsible:!0,className:g,children:R},F),e[34]=R,e[35]=F,e[36]=g,e[37]=O):O=e[37],O};function ue(n){return n.replace("tool-","")}function xe(n){let[e,a]=n;return L(a)?null:(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsxs)("div",{className:"text-xs font-medium text-muted-foreground capitalize flex items-center gap-2",children:[(0,t.jsx)("div",{className:"w-1.5 h-1.5 bg-[var(--blue-9)] rounded-full"}),e]}),(0,t.jsx)("pre",{className:"bg-[var(--slate-2)] p-2 text-muted-foreground border border-[var(--slate-4)] rounded text-xs overflow-auto scrollbar-thin max-h-64",children:JSON.stringify(a,null,2)})]},e)}const pe=({message:n,isStreamingReasoning:e,isLast:a})=>{return(0,t.jsx)(t.Fragment,{children:n.parts.map((s,r)=>l(s,r))});function l(s,r){if(he(s))return(0,t.jsx)(M,{index:r,toolName:s.type,result:s.output,className:"my-2",state:s.state,input:s.input},r);if(fe(s))return W.debug("Found data part",s),null;switch(s.type){case"text":return s.text.includes("<marimo-")?(0,t.jsx)(ne.Fragment,{children:re({html:s.text})},r):(0,t.jsx)(H,{content:s.text},r);case"reasoning":return(0,t.jsx)(oe,{reasoning:s.text,index:r,isStreaming:e&&a&&r===(n.parts.length||0)-1},r);case"file":return(0,t.jsx)(te,{attachment:s},r);case"dynamic-tool":return(0,t.jsx)(M,{toolName:s.toolName,result:s.output,state:s.state,input:s.input},r);case"source-document":case"source-url":case"step-start":return W.debug("Found non-renderable part",s),null;default:return Z(s),null}}};function he(n){return n.type.startsWith("tool-")}function fe(n){return n.type.startsWith("data-")}export{pe as t};
1
+ import{s as P}from"./chunk-LvLJmgfZ.js";import{t as U}from"./react-Bj1aDYRI.js";import{gr as X,ur as $}from"./cells-B624w_H9.js";import{C as z,P as G,R as E,T as K}from"./zod-H_cgTO0M.js";import{t as J}from"./compiler-runtime-B3qBwwSJ.js";import{t as L}from"./isEmpty-CXeoXbuc.js";import{X as Q}from"./ai-model-dropdown-ll1QMFU0.js";import{_ as W}from"./useEventListener-BR0C1MaI.js";import{t as C}from"./cn-DCUzRj2J.js";import{t as Y}from"./jsx-runtime-BqBOg78p.js";import{a as D,i as I,n as V,r as B}from"./multi-map-rafH3cg3.js";import{i as Z}from"./strings-md4mFbOQ.js";import{t as ee}from"./bot-message-square-DrbHk31W.js";import{t as H}from"./markdown-renderer-ju9oyUcG.js";import{l as te}from"./add-cell-with-ai-DIq2bBlj.js";import{n as se}from"./spinner-Bhir8k53.js";import{c as ae}from"./datasource-Bj6Y4avn.js";import{t as re}from"./RenderHTML-CZ0QfVg-.js";var le=J(),ne=P(U(),1),t=P(Y(),1);const oe=n=>{let e=(0,le.c)(13),{reasoning:a,index:l,isStreaming:s}=n,r=l===void 0?0:l,m=s===void 0?!1:s,o=m?"reasoning":void 0,x;e[0]===Symbol.for("react.memo_cache_sentinel")?(x=(0,t.jsx)(ee,{className:"h-3 w-3"}),e[0]=x):x=e[0];let p=m?"Thinking":"View reasoning",c;e[1]!==a.length||e[2]!==p?(c=(0,t.jsx)(D,{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:[x,p," (",a.length," ","chars)"]})}),e[1]=a.length,e[2]=p,e[3]=c):c=e[3];let i;e[4]===a?i=e[5]:(i=(0,t.jsx)(B,{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)(H,{content:a})})})}),e[4]=a,e[5]=i);let d;e[6]!==c||e[7]!==i?(d=(0,t.jsxs)(I,{value:"reasoning",className:"border-0",children:[c,i]}),e[6]=c,e[7]=i,e[8]=d):d=e[8];let u;return e[9]!==r||e[10]!==o||e[11]!==d?(u=(0,t.jsx)(V,{type:"single",collapsible:!0,className:"w-full mb-2",value:o,children:d},r),e[9]=r,e[10]=o,e[11]=d,e[12]=u):u=e[12],u};var T=J(),ie=G({status:E().default("success"),auth_required:K().default(!1),action_url:z(),next_steps:z(),meta:z(),message:E().nullish()}).passthrough(),de=n=>{let e=(0,T.c)(12),{data:a}=n,l;if(e[0]!==a){let{status:s,auth_required:r,action_url:m,meta:o,next_steps:x,message:p,...c}=a,i;e[2]===Symbol.for("react.memo_cache_sentinel")?(i=(0,t.jsx)("h3",{className:"text-xs font-semibold text-muted-foreground",children:"Tool Result"}),e[2]=i):i=e[2];let d;e[3]===s?d=e[4]:(d=(0,t.jsx)("span",{className:"text-xs px-2 py-0.5 bg-[var(--grass-2)] text-[var(--grass-11)] rounded-full font-medium capitalize",children:s}),e[3]=s,e[4]=d);let u;e[5]===r?u=e[6]:(u=r&&(0,t.jsx)("span",{className:"text-xs px-2 py-0.5 bg-[var(--amber-2)] text-[var(--amber-11)] rounded-full",children:"Auth Required"}),e[5]=r,e[6]=u);let h;e[7]!==d||e[8]!==u?(h=(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[i,(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[d,u]})]}),e[7]=d,e[8]=u,e[9]=h):h=e[9];let f;e[10]===p?f=e[11]:(f=p&&(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)($,{className:"h-3 w-3 text-[var(--blue-11)] mt-0.5 flex-shrink-0"}),(0,t.jsx)("div",{className:"text-xs text-foreground",children:p})]}),e[10]=p,e[11]=f),l=(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[h,f,c&&(0,t.jsx)("div",{className:"space-y-3",children:Object.entries(c).map(xe)})]}),e[0]=a,e[1]=l}else l=e[1];return l},ce=n=>{let e=(0,T.c)(8),{result:a}=n,l;e[0]===a?l=e[1]:(l=ie.safeParse(a),e[0]=a,e[1]=l);let s=l;if(s.success){let o;return e[2]===s.data?o=e[3]:(o=(0,t.jsx)(de,{data:s.data}),e[2]=s.data,e[3]=o),o}let r;e[4]===a?r=e[5]:(r=typeof a=="string"?a:JSON.stringify(a,null,2),e[4]=a,e[5]=r);let m;return e[6]===r?m=e[7]:(m=(0,t.jsx)("div",{className:"text-xs font-medium text-muted-foreground mb-1 max-h-64 overflow-y-auto scrollbar-thin",children:r}),e[6]=r,e[7]=m),m},me=n=>{let e=(0,T.c)(9),{input:a}=n;if(!(a&&a!==null))return null;let l;e[0]===a?l=e[1]:(l=L(a),e[0]=a,e[1]=l);let s=l,r=typeof a=="object"&&!Array.isArray(a)&&Object.keys(a).length>0,m;e[2]===Symbol.for("react.memo_cache_sentinel")?(m=(0,t.jsx)("h3",{className:"text-xs font-semibold text-muted-foreground",children:"Tool Request"}),e[2]=m):m=e[2];let o;e[3]!==a||e[4]!==s||e[5]!==r?(o=s?"{}":r?JSON.stringify(a,null,2):String(a),e[3]=a,e[4]=s,e[5]=r,e[6]=o):o=e[6];let x;return e[7]===o?x=e[8]:(x=(0,t.jsxs)("div",{className:"space-y-2",children:[m,(0,t.jsx)("pre",{className:"bg-[var(--slate-2)] p-2 text-muted-foreground border border-[var(--slate-4)] rounded text-xs overflow-auto scrollbar-thin max-h-64",children:o})]}),e[7]=o,e[8]=x),x};const M=n=>{let e=(0,T.c)(38),{toolName:a,result:l,error:s,index:r,state:m,className:o,input:x}=n,p=r===void 0?0:r,c=m==="output-available"&&(l||s),i=s?"error":c?"success":"loading",d;e[0]===i?d=e[1]:(d=()=>{switch(i){case"loading":return(0,t.jsx)(se,{className:"h-3 w-3 animate-spin"});case"error":return(0,t.jsx)(X,{className:"h-3 w-3 text-[var(--red-11)]"});case"success":return(0,t.jsx)(Q,{className:"h-3 w-3 text-[var(--grass-11)]"});default:return(0,t.jsx)(ae,{className:"h-3 w-3"})}},e[0]=i,e[1]=d);let u=d,h;e[2]!==s||e[3]!==c||e[4]!==i?(h=()=>i==="loading"?"Running":s?"Failed":c?"Done":"Tool call",e[2]=s,e[3]=c,e[4]=i,e[5]=h):h=e[5];let f=h,F=`tool-${p}`,g;e[6]===o?g=e[7]:(g=C("w-full",o),e[6]=o,e[7]=g);let A=i==="error"&&"text-[var(--red-11)]/80",k=i==="success"&&"text-[var(--grass-11)]/80",j;e[8]!==A||e[9]!==k?(j=C("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",A,k),e[8]=A,e[9]=k,e[10]=j):j=e[10];let v;e[11]===u?v=e[12]:(v=u(),e[11]=u,e[12]=v);let q=f(),b;e[13]===a?b=e[14]:(b=ue(a),e[13]=a,e[14]=b);let N;e[15]===b?N=e[16]:(N=(0,t.jsx)("code",{className:"font-mono text-xs",children:b}),e[15]=b,e[16]=N);let y;e[17]!==q||e[18]!==N||e[19]!==v?(y=(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[v,q,":",N]}),e[17]=q,e[18]=N,e[19]=v,e[20]=y):y=e[20];let w;e[21]!==y||e[22]!==j?(w=(0,t.jsx)(D,{className:j,children:y}),e[21]=y,e[22]=j,e[23]=w):w=e[23];let _;e[24]!==s||e[25]!==c||e[26]!==x||e[27]!==l?(_=c&&(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)(me,{input:x}),l!=null&&(0,t.jsx)(ce,{result:l}),s&&(0,t.jsxs)("div",{className:"bg-[var(--red-2)] border border-[var(--red-6)] rounded-lg p-3",children:[(0,t.jsxs)("div",{className:"text-xs font-semibold text-[var(--red-11)] mb-2 flex items-center gap-2",children:[(0,t.jsx)("div",{className:"w-1.5 h-1.5 bg-[var(--red-9)] rounded-full"}),"Error"]}),(0,t.jsx)("div",{className:"text-sm text-[var(--red-11)] leading-relaxed",children:s})]})]}),e[24]=s,e[25]=c,e[26]=x,e[27]=l,e[28]=_):_=e[28];let S;e[29]===_?S=e[30]:(S=(0,t.jsx)(B,{className:"py-2 px-2",children:_}),e[29]=_,e[30]=S);let R;e[31]!==w||e[32]!==S?(R=(0,t.jsxs)(I,{value:"tool-call",className:"border-0",children:[w,S]}),e[31]=w,e[32]=S,e[33]=R):R=e[33];let O;return e[34]!==R||e[35]!==F||e[36]!==g?(O=(0,t.jsx)(V,{type:"single",collapsible:!0,className:g,children:R},F),e[34]=R,e[35]=F,e[36]=g,e[37]=O):O=e[37],O};function ue(n){return n.replace("tool-","")}function xe(n){let[e,a]=n;return L(a)?null:(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsxs)("div",{className:"text-xs font-medium text-muted-foreground capitalize flex items-center gap-2",children:[(0,t.jsx)("div",{className:"w-1.5 h-1.5 bg-[var(--blue-9)] rounded-full"}),e]}),(0,t.jsx)("pre",{className:"bg-[var(--slate-2)] p-2 text-muted-foreground border border-[var(--slate-4)] rounded text-xs overflow-auto scrollbar-thin max-h-64",children:JSON.stringify(a,null,2)})]},e)}const pe=({message:n,isStreamingReasoning:e,isLast:a})=>{return(0,t.jsx)(t.Fragment,{children:n.parts.map((s,r)=>l(s,r))});function l(s,r){if(he(s))return(0,t.jsx)(M,{index:r,toolName:s.type,result:s.output,className:"my-2",state:s.state,input:s.input},r);if(fe(s))return W.debug("Found data part",s),null;switch(s.type){case"text":return s.text.includes("<marimo-")?(0,t.jsx)(ne.Fragment,{children:re({html:s.text})},r):(0,t.jsx)(H,{content:s.text},r);case"reasoning":return(0,t.jsx)(oe,{reasoning:s.text,index:r,isStreaming:e&&a&&r===(n.parts.length||0)-1},r);case"file":return(0,t.jsx)(te,{attachment:s},r);case"dynamic-tool":return(0,t.jsx)(M,{toolName:s.toolName,result:s.output,state:s.state,input:s.input},r);case"source-document":case"source-url":case"step-start":return W.debug("Found non-renderable part",s),null;default:return Z(s),null}}};function he(n){return n.type.startsWith("tool-")}function fe(n){return n.type.startsWith("data-")}export{pe as t};
@@ -1,3 +1,3 @@
1
- import{s as Ke}from"./chunk-LvLJmgfZ.js";import{d as kt,f as Lt,l as It,n as ue,u as We}from"./useEvent-D91BmmQi.js";import{t as Pt}from"./react-Bj1aDYRI.js";import{E as Dt,hr as Mt}from"./cells-Wp62mkuO.js";import"./react-dom-CSu739Rf.js";import{t as Qe}from"./compiler-runtime-B3qBwwSJ.js";import{E as zt,T as Ft,o as Ht,r as Ze,t as Ot}from"./ai-model-dropdown-B43T4OtX.js";import{_ as _e,o as le}from"./useEventListener-BR0C1MaI.js";import{n as et,r as Ut}from"./utils-BrXijSdZ.js";import{o as Wt}from"./config-B2jNjodW.js";import{t as oe}from"./cn-DCUzRj2J.js";import{t as Yt}from"./jsx-runtime-BqBOg78p.js";import{C as pe,S as Xt,_ as Te,b as V,h as q,y as Vt}from"./fullscreen-BDxedMYP.js";import{u as qt}from"./menu-items-CwUpDHG7.js";import{i as Bt,r as $t,t as Gt}from"./popover-UExmgBsf.js";import{a as Jt,i as Kt,n as Qt,p as Zt,r as er,s as tr,t as rr}from"./select-5i7URBEn.js";import{i as tt,t as Ye}from"./tooltip-Gcwqb_SK.js";import{t as ae}from"./button-D9nb17Rw.js";import"./dist-BrR4M-k3.js";import"./cjs-BRGiG41H.js";import"./main-B0OX4z33.js";import"./useNonce-DfoVjkkH.js";import{r as lr}from"./requests-DIwGYs0l.js";import{t as rt}from"./createLucideIcon-D5guW7EU.js";import{t as lt}from"./bot-message-square-DrbHk31W.js";import"./markdown-renderer-DjjwLrVA.js";import{O as ot,S as or,T as ar,_ as nr,b as sr,c as ir,d as cr,f as dr,g as ur,h as pr,j as mr,k as hr,l as fr,m as at,n as nt,p as xr,s as vr,u as gr,v as wr,y as br}from"./add-cell-with-ai-DMh3huz_.js";import{n as yr}from"./spinner-Bhir8k53.js";import{t as jr}from"./message-circle-CWm2KnSx.js";import{t as Sr}from"./plus-BgB18UzY.js";import{dt as Cr,r as Nr}from"./input-BX98vgAu.js";import{t as Rr}from"./settings-DfFe0dWD.js";import"./dist-DQOq2Tf-.js";import"./dist-DBiqbYe-.js";import"./dist-VjDnmGCZ.js";import"./dist-E6ttb8td.js";import"./dist-B324sPca.js";import"./session-VtovaFBS.js";import"./purify.es-DBmVz-Wl.js";import{i as Ar}from"./dates-CAlnO9QB.js";import{t as _r}from"./copy-icon-BYNydU7b.js";import{t as Tr}from"./context-B3MsQb-b.js";import{r as st,t as Er}from"./state-CxczBoEs.js";import{n as kr}from"./error-banner-C6aBa98y.js";import"./chunk-5FQGJX7Z-e_arGD4o.js";import"./html-to-image-BZTmy2-K.js";import"./esm-BmrwxxCo.js";import{t as Xe}from"./empty-state-CsVQSqKA.js";import{t as Lr}from"./chat-display-DdLRA8c9.js";var p=Ke(Pt(),1),o=Ke(Yt(),1);function Ir(e,t){return p.useReducer((r,n)=>t[r][n]??r,e)}var Ve="ScrollArea",[it,po]=Xt(Ve),[Pr,z]=it(Ve),ct=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,v]=p.useState(null),[j,T]=p.useState(null),[g,N]=p.useState(0),[R,y]=p.useState(0),[S,C]=p.useState(!1),[E,I]=p.useState(!1),w=le(t,k=>c(k)),_=qt(l);return(0,o.jsx)(Pr,{scope:r,type:n,dir:_,scrollHideDelay:a,scrollArea:i,viewport:u,onViewportChange:d,content:m,onContentChange:h,scrollbarX:f,onScrollbarXChange:v,scrollbarXEnabled:S,onScrollbarXEnabledChange:C,scrollbarY:j,onScrollbarYChange:T,scrollbarYEnabled:E,onScrollbarYEnabledChange:I,onCornerWidthChange:N,onCornerHeightChange:y,children:(0,o.jsx)(pe.div,{dir:_,...s,ref:w,style:{position:"relative","--radix-scroll-area-corner-width":g+"px","--radix-scroll-area-corner-height":R+"px",...e.style}})})});ct.displayName=Ve;var dt="ScrollAreaViewport",ut=p.forwardRef((e,t)=>{let{__scopeScrollArea:r,children:n,nonce:l,...a}=e,s=z(dt,r),i=le(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)(pe.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})})]})});ut.displayName=dt;var U="ScrollAreaScrollbar",qe=p.forwardRef((e,t)=>{let{forceMount:r,...n}=e,l=z(U,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)(Dr,{...n,ref:t,forceMount:r}):l.type==="scroll"?(0,o.jsx)(Mr,{...n,ref:t,forceMount:r}):l.type==="auto"?(0,o.jsx)(pt,{...n,ref:t,forceMount:r}):l.type==="always"?(0,o.jsx)(Be,{...n,ref:t}):null});qe.displayName=U;var Dr=p.forwardRef((e,t)=>{let{forceMount:r,...n}=e,l=z(U,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)(Te,{present:r||a,children:(0,o.jsx)(pt,{"data-state":a?"visible":"hidden",...n,ref:t})})}),Mr=p.forwardRef((e,t)=>{let{forceMount:r,...n}=e,l=z(U,e.__scopeScrollArea),a=e.orientation==="horizontal",s=Ie(()=>c("SCROLL_END"),100),[i,c]=Ir("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)(Te,{present:r||i!=="hidden",children:(0,o.jsx)(Be,{"data-state":i==="hidden"?"hidden":"visible",...n,ref:t,onPointerEnter:V(e.onPointerEnter,()=>c("POINTER_ENTER")),onPointerLeave:V(e.onPointerLeave,()=>c("POINTER_LEAVE"))})})}),pt=p.forwardRef((e,t)=>{let r=z(U,e.__scopeScrollArea),{forceMount:n,...l}=e,[a,s]=p.useState(!1),i=e.orientation==="horizontal",c=Ie(()=>{if(r.viewport){let u=r.viewport.offsetWidth<r.viewport.scrollWidth,d=r.viewport.offsetHeight<r.viewport.scrollHeight;s(i?u:d)}},10);return ne(r.viewport,c),ne(r.content,c),(0,o.jsx)(Te,{present:n||a,children:(0,o.jsx)(Be,{"data-state":a?"visible":"hidden",...l,ref:t})})}),Be=p.forwardRef((e,t)=>{let{orientation:r="vertical",...n}=e,l=z(U,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=vt(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 Wr(h,s.current,i,f)}return r==="horizontal"?(0,o.jsx)(zr,{...d,ref:t,onThumbPositionChange:()=>{if(l.viewport&&a.current){let h=l.viewport.scrollLeft,f=gt(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)(Fr,{...d,ref:t,onThumbPositionChange:()=>{if(l.viewport&&a.current){let h=l.viewport.scrollTop,f=gt(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}),zr=p.forwardRef((e,t)=>{let{sizes:r,onSizesChange:n,...l}=e,a=z(U,e.__scopeScrollArea),[s,i]=p.useState(),c=p.useRef(null),u=le(t,c,a.onScrollbarXChange);return p.useEffect(()=>{c.current&&i(getComputedStyle(c.current))},[c]),(0,o.jsx)(ht,{"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":Le(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),bt(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:ke(s.paddingLeft),paddingEnd:ke(s.paddingRight)}})}})}),Fr=p.forwardRef((e,t)=>{let{sizes:r,onSizesChange:n,...l}=e,a=z(U,e.__scopeScrollArea),[s,i]=p.useState(),c=p.useRef(null),u=le(t,c,a.onScrollbarYChange);return p.useEffect(()=>{c.current&&i(getComputedStyle(c.current))},[c]),(0,o.jsx)(ht,{"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":Le(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),bt(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:ke(s.paddingTop),paddingEnd:ke(s.paddingBottom)}})}})}),[Hr,mt]=it(U),ht=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(U,r),[v,j]=p.useState(null),T=le(t,w=>j(w)),g=p.useRef(null),N=p.useRef(""),R=f.viewport,y=n.content-n.viewport,S=q(d),C=q(c),E=Ie(m,10);function I(w){g.current&&u({x:w.clientX-g.current.left,y:w.clientY-g.current.top})}return p.useEffect(()=>{let w=_=>{let k=_.target;v!=null&&v.contains(k)&&S(_,y)};return document.addEventListener("wheel",w,{passive:!1}),()=>document.removeEventListener("wheel",w,{passive:!1})},[R,v,y,S]),p.useEffect(C,[n,C]),ne(v,E),ne(f.content,E),(0,o.jsx)(Hr,{scope:r,scrollbar:v,hasThumb:l,onThumbChange:q(a),onThumbPointerUp:q(s),onThumbPositionChange:C,onThumbPointerDown:q(i),children:(0,o.jsx)(pe.div,{...h,ref:T,style:{position:"absolute",...h.style},onPointerDown:V(e.onPointerDown,w=>{w.button===0&&(w.target.setPointerCapture(w.pointerId),g.current=v.getBoundingClientRect(),N.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",f.viewport&&(f.viewport.style.scrollBehavior="auto"),I(w))}),onPointerMove:V(e.onPointerMove,I),onPointerUp:V(e.onPointerUp,w=>{let _=w.target;_.hasPointerCapture(w.pointerId)&&_.releasePointerCapture(w.pointerId),document.body.style.webkitUserSelect=N.current,f.viewport&&(f.viewport.style.scrollBehavior=""),g.current=null})})})}),Ee="ScrollAreaThumb",ft=p.forwardRef((e,t)=>{let{forceMount:r,...n}=e,l=mt(Ee,e.__scopeScrollArea);return(0,o.jsx)(Te,{present:r||l.hasThumb,children:(0,o.jsx)(Or,{ref:t,...n})})}),Or=p.forwardRef((e,t)=>{let{__scopeScrollArea:r,style:n,...l}=e,a=z(Ee,r),s=mt(Ee,r),{onThumbPositionChange:i}=s,c=le(t,m=>s.onThumbChange(m)),u=p.useRef(void 0),d=Ie(()=>{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=Yr(m,i),i())};return i(),m.addEventListener("scroll",h),()=>m.removeEventListener("scroll",h)}},[a.viewport,d,i]),(0,o.jsx)(pe.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:V(e.onPointerDownCapture,m=>{let h=m.target.getBoundingClientRect(),f=m.clientX-h.left,v=m.clientY-h.top;s.onThumbPointerDown({x:f,y:v})}),onPointerUp:V(e.onPointerUp,s.onThumbPointerUp)})});ft.displayName=Ee;var $e="ScrollAreaCorner",xt=p.forwardRef((e,t)=>{let r=z($e,e.__scopeScrollArea),n=!!(r.scrollbarX&&r.scrollbarY);return r.type!=="scroll"&&n?(0,o.jsx)(Ur,{...e,ref:t}):null});xt.displayName=$e;var Ur=p.forwardRef((e,t)=>{let{__scopeScrollArea:r,...n}=e,l=z($e,r),[a,s]=p.useState(0),[i,c]=p.useState(0),u=!!(a&&i);return ne(l.scrollbarX,()=>{var m;let d=((m=l.scrollbarX)==null?void 0:m.offsetHeight)||0;l.onCornerHeightChange(d),c(d)}),ne(l.scrollbarY,()=>{var m;let d=((m=l.scrollbarY)==null?void 0:m.offsetWidth)||0;l.onCornerWidthChange(d),s(d)}),u?(0,o.jsx)(pe.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 ke(e){return e?parseInt(e,10):0}function vt(e,t){let r=e/t;return isNaN(r)?0:r}function Le(e){let t=vt(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,n=(e.scrollbar.size-r)*t;return Math.max(n,18)}function Wr(e,t,r,n="ltr"){let l=Le(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 wt([c,u],m)(e)}function gt(e,t,r="ltr"){let n=Le(t),l=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-l,s=t.content-t.viewport,i=a-n,c=Zt(e,r==="ltr"?[0,s]:[s*-1,0]);return wt([0,s],[0,i])(c)}function wt(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 bt(e,t){return e>0&&e<t}var Yr=(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 Ie(e,t){let r=q(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 ne(e,t){let r=q(t);Vt(()=>{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 yt=ct,Xr=ut,Vr=xt,qr=rt("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"}]]),Br=rt("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"}]]),jt=Qe();const $r=({chatState:e,chatId:t,messages:r})=>{if(!t)return _e.warn("No active chat"),e;let n=e.chats.get(t);if(!n)return _e.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 St=p.forwardRef((e,t)=>{let r=(0,jt.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=oe("relative overflow-hidden",l),r[4]=l,r[5]=s);let i;r[6]===n?i=r[7]:(i=(0,o.jsx)(Xr,{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)(Ct,{}),u=(0,o.jsx)(Vr,{}),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)(yt,{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});St.displayName=yt.displayName;var Ct=p.forwardRef((e,t)=>{let r=(0,jt.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=oe("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)(ft,{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)(qe,{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});Ct.displayName=qe.displayName;var Gr=[{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 Jr=e=>{let t=Date.now(),r=Gr.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)},Kr=({activeChatId:e,setActiveChat:t})=>{let r=We(st),{locale:n}=Tr(),[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)(()=>Jr(i),[i]);return(0,o.jsxs)(Gt,{children:[(0,o.jsx)(Ye,{content:"Previous chats",children:(0,o.jsx)(Bt,{asChild:!0,children:(0,o.jsx)(ae,{variant:"text",size:"icon",children:(0,o.jsx)(Mt,{className:"h-4 w-4"})})})}),(0,o.jsxs)($t,{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)(Nr,{placeholder:"Search chat history...",value:l,onChange:u=>a(u.target.value),className:"text-xs"})}),(0,o.jsx)(St,{className:"h-[450px] p-2",children:(0,o.jsxs)("div",{className:"space-y-3",children:[s.length===0&&(0,o.jsx)(Xe,{title:"No chats yet",description:"Start a new chat to get started",icon:(0,o.jsx)(lt,{})}),i.length===0&&l&&s.length>0&&(0,o.jsx)(Xe,{title:"No chats found",description:`No chats match "${l}"`,icon:(0,o.jsx)(Cr,{})}),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:oe("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:Ar(m.updatedAt,n)})]},m.id))}),d!==c.length-1&&(0,o.jsx)("hr",{})]},u.label))]})})]})]})};var se=Qe(),Nt="manual",Qr=e=>{let t=(0,se.c)(18),{onNewChat:r,activeChatId:n,setActiveChat:l}=e,{handleClick:a}=Ze(),s;t[0]===Symbol.for("react.memo_cache_sentinel")?(s=(0,o.jsx)(Sr,{className:"h-4 w-4"}),t[0]=s):s=t[0];let i;t[1]===r?i=t[2]:(i=(0,o.jsx)(Ye,{content:"New chat",children:(0,o.jsx)(ae,{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)(Ht,{}),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)(Rr,{className:"h-4 w-4"}),t[6]=d):d=t[6];let m;t[7]===u?m=t[8]:(m=(0,o.jsx)(Ye,{content:"AI Settings",children:(0,o.jsx)(ae,{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)(Kr,{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 v;return t[15]!==i||t[16]!==f?(v=(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]=v):v=t[17],v},Rt=(0,p.memo)(e=>{let t=(0,se.c)(15),{message:r,index:n,onEdit:l,isStreamingReasoning:a,isLast:s}=e,i;t[0]!==n||t[1]!==l?(i=j=>{var N,R,y;let T=(R=(N=j.parts)==null?void 0:N.filter(rl))==null?void 0:R.map(ll).join(`
1
+ import{s as Ke}from"./chunk-LvLJmgfZ.js";import{d as kt,f as Lt,l as It,n as ue,u as We}from"./useEvent-D91BmmQi.js";import{t as Pt}from"./react-Bj1aDYRI.js";import{E as Dt,hr as Mt}from"./cells-B624w_H9.js";import"./react-dom-CSu739Rf.js";import{t as Qe}from"./compiler-runtime-B3qBwwSJ.js";import{E as zt,T as Ft,o as Ht,r as Ze,t as Ot}from"./ai-model-dropdown-ll1QMFU0.js";import{_ as _e,o as le}from"./useEventListener-BR0C1MaI.js";import{n as et,r as Ut}from"./utils-BrXijSdZ.js";import{o as Wt}from"./config-B2jNjodW.js";import{t as oe}from"./cn-DCUzRj2J.js";import{t as Yt}from"./jsx-runtime-BqBOg78p.js";import{C as pe,S as Xt,_ as Te,b as V,h as q,y as Vt}from"./fullscreen-BDxedMYP.js";import{u as qt}from"./menu-items-CwUpDHG7.js";import{i as Bt,r as $t,t as Gt}from"./popover-UExmgBsf.js";import{a as Jt,i as Kt,n as Qt,p as Zt,r as er,s as tr,t as rr}from"./select-5i7URBEn.js";import{i as tt,t as Ye}from"./tooltip-Gcwqb_SK.js";import{t as ae}from"./button-D9nb17Rw.js";import"./dist-BrR4M-k3.js";import"./cjs-BRGiG41H.js";import"./main-B0OX4z33.js";import"./useNonce-DfoVjkkH.js";import{r as lr}from"./requests-DIwGYs0l.js";import{t as rt}from"./createLucideIcon-D5guW7EU.js";import{t as lt}from"./bot-message-square-DrbHk31W.js";import"./markdown-renderer-ju9oyUcG.js";import{O as ot,S as or,T as ar,_ as nr,b as sr,c as ir,d as cr,f as dr,g as ur,h as pr,j as mr,k as hr,l as fr,m as at,n as nt,p as xr,s as vr,u as gr,v as wr,y as br}from"./add-cell-with-ai-DIq2bBlj.js";import{n as yr}from"./spinner-Bhir8k53.js";import{t as jr}from"./message-circle-CWm2KnSx.js";import{t as Sr}from"./plus-BgB18UzY.js";import{dt as Cr,r as Nr}from"./input-BX98vgAu.js";import{t as Rr}from"./settings-DfFe0dWD.js";import"./dist-DQOq2Tf-.js";import"./dist-DBiqbYe-.js";import"./dist-VjDnmGCZ.js";import"./dist-E6ttb8td.js";import"./dist-B324sPca.js";import"./session-VtovaFBS.js";import"./purify.es-DBmVz-Wl.js";import{i as Ar}from"./dates-CAlnO9QB.js";import{t as _r}from"./copy-icon-BYNydU7b.js";import{t as Tr}from"./context-B3MsQb-b.js";import{r as st,t as Er}from"./state-rNkOi6pv.js";import{n as kr}from"./error-banner-C6aBa98y.js";import"./chunk-5FQGJX7Z-e_arGD4o.js";import"./html-to-image-C4B8YBxt.js";import"./esm-BmrwxxCo.js";import{t as Xe}from"./empty-state-CsVQSqKA.js";import{t as Lr}from"./chat-display-CiGYiUeC.js";var p=Ke(Pt(),1),o=Ke(Yt(),1);function Ir(e,t){return p.useReducer((r,n)=>t[r][n]??r,e)}var Ve="ScrollArea",[it,po]=Xt(Ve),[Pr,z]=it(Ve),ct=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,v]=p.useState(null),[j,T]=p.useState(null),[g,N]=p.useState(0),[R,y]=p.useState(0),[S,C]=p.useState(!1),[E,I]=p.useState(!1),w=le(t,k=>c(k)),_=qt(l);return(0,o.jsx)(Pr,{scope:r,type:n,dir:_,scrollHideDelay:a,scrollArea:i,viewport:u,onViewportChange:d,content:m,onContentChange:h,scrollbarX:f,onScrollbarXChange:v,scrollbarXEnabled:S,onScrollbarXEnabledChange:C,scrollbarY:j,onScrollbarYChange:T,scrollbarYEnabled:E,onScrollbarYEnabledChange:I,onCornerWidthChange:N,onCornerHeightChange:y,children:(0,o.jsx)(pe.div,{dir:_,...s,ref:w,style:{position:"relative","--radix-scroll-area-corner-width":g+"px","--radix-scroll-area-corner-height":R+"px",...e.style}})})});ct.displayName=Ve;var dt="ScrollAreaViewport",ut=p.forwardRef((e,t)=>{let{__scopeScrollArea:r,children:n,nonce:l,...a}=e,s=z(dt,r),i=le(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)(pe.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})})]})});ut.displayName=dt;var U="ScrollAreaScrollbar",qe=p.forwardRef((e,t)=>{let{forceMount:r,...n}=e,l=z(U,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)(Dr,{...n,ref:t,forceMount:r}):l.type==="scroll"?(0,o.jsx)(Mr,{...n,ref:t,forceMount:r}):l.type==="auto"?(0,o.jsx)(pt,{...n,ref:t,forceMount:r}):l.type==="always"?(0,o.jsx)(Be,{...n,ref:t}):null});qe.displayName=U;var Dr=p.forwardRef((e,t)=>{let{forceMount:r,...n}=e,l=z(U,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)(Te,{present:r||a,children:(0,o.jsx)(pt,{"data-state":a?"visible":"hidden",...n,ref:t})})}),Mr=p.forwardRef((e,t)=>{let{forceMount:r,...n}=e,l=z(U,e.__scopeScrollArea),a=e.orientation==="horizontal",s=Ie(()=>c("SCROLL_END"),100),[i,c]=Ir("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)(Te,{present:r||i!=="hidden",children:(0,o.jsx)(Be,{"data-state":i==="hidden"?"hidden":"visible",...n,ref:t,onPointerEnter:V(e.onPointerEnter,()=>c("POINTER_ENTER")),onPointerLeave:V(e.onPointerLeave,()=>c("POINTER_LEAVE"))})})}),pt=p.forwardRef((e,t)=>{let r=z(U,e.__scopeScrollArea),{forceMount:n,...l}=e,[a,s]=p.useState(!1),i=e.orientation==="horizontal",c=Ie(()=>{if(r.viewport){let u=r.viewport.offsetWidth<r.viewport.scrollWidth,d=r.viewport.offsetHeight<r.viewport.scrollHeight;s(i?u:d)}},10);return ne(r.viewport,c),ne(r.content,c),(0,o.jsx)(Te,{present:n||a,children:(0,o.jsx)(Be,{"data-state":a?"visible":"hidden",...l,ref:t})})}),Be=p.forwardRef((e,t)=>{let{orientation:r="vertical",...n}=e,l=z(U,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=vt(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 Wr(h,s.current,i,f)}return r==="horizontal"?(0,o.jsx)(zr,{...d,ref:t,onThumbPositionChange:()=>{if(l.viewport&&a.current){let h=l.viewport.scrollLeft,f=gt(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)(Fr,{...d,ref:t,onThumbPositionChange:()=>{if(l.viewport&&a.current){let h=l.viewport.scrollTop,f=gt(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}),zr=p.forwardRef((e,t)=>{let{sizes:r,onSizesChange:n,...l}=e,a=z(U,e.__scopeScrollArea),[s,i]=p.useState(),c=p.useRef(null),u=le(t,c,a.onScrollbarXChange);return p.useEffect(()=>{c.current&&i(getComputedStyle(c.current))},[c]),(0,o.jsx)(ht,{"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":Le(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),bt(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:ke(s.paddingLeft),paddingEnd:ke(s.paddingRight)}})}})}),Fr=p.forwardRef((e,t)=>{let{sizes:r,onSizesChange:n,...l}=e,a=z(U,e.__scopeScrollArea),[s,i]=p.useState(),c=p.useRef(null),u=le(t,c,a.onScrollbarYChange);return p.useEffect(()=>{c.current&&i(getComputedStyle(c.current))},[c]),(0,o.jsx)(ht,{"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":Le(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),bt(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:ke(s.paddingTop),paddingEnd:ke(s.paddingBottom)}})}})}),[Hr,mt]=it(U),ht=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(U,r),[v,j]=p.useState(null),T=le(t,w=>j(w)),g=p.useRef(null),N=p.useRef(""),R=f.viewport,y=n.content-n.viewport,S=q(d),C=q(c),E=Ie(m,10);function I(w){g.current&&u({x:w.clientX-g.current.left,y:w.clientY-g.current.top})}return p.useEffect(()=>{let w=_=>{let k=_.target;v!=null&&v.contains(k)&&S(_,y)};return document.addEventListener("wheel",w,{passive:!1}),()=>document.removeEventListener("wheel",w,{passive:!1})},[R,v,y,S]),p.useEffect(C,[n,C]),ne(v,E),ne(f.content,E),(0,o.jsx)(Hr,{scope:r,scrollbar:v,hasThumb:l,onThumbChange:q(a),onThumbPointerUp:q(s),onThumbPositionChange:C,onThumbPointerDown:q(i),children:(0,o.jsx)(pe.div,{...h,ref:T,style:{position:"absolute",...h.style},onPointerDown:V(e.onPointerDown,w=>{w.button===0&&(w.target.setPointerCapture(w.pointerId),g.current=v.getBoundingClientRect(),N.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",f.viewport&&(f.viewport.style.scrollBehavior="auto"),I(w))}),onPointerMove:V(e.onPointerMove,I),onPointerUp:V(e.onPointerUp,w=>{let _=w.target;_.hasPointerCapture(w.pointerId)&&_.releasePointerCapture(w.pointerId),document.body.style.webkitUserSelect=N.current,f.viewport&&(f.viewport.style.scrollBehavior=""),g.current=null})})})}),Ee="ScrollAreaThumb",ft=p.forwardRef((e,t)=>{let{forceMount:r,...n}=e,l=mt(Ee,e.__scopeScrollArea);return(0,o.jsx)(Te,{present:r||l.hasThumb,children:(0,o.jsx)(Or,{ref:t,...n})})}),Or=p.forwardRef((e,t)=>{let{__scopeScrollArea:r,style:n,...l}=e,a=z(Ee,r),s=mt(Ee,r),{onThumbPositionChange:i}=s,c=le(t,m=>s.onThumbChange(m)),u=p.useRef(void 0),d=Ie(()=>{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=Yr(m,i),i())};return i(),m.addEventListener("scroll",h),()=>m.removeEventListener("scroll",h)}},[a.viewport,d,i]),(0,o.jsx)(pe.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:V(e.onPointerDownCapture,m=>{let h=m.target.getBoundingClientRect(),f=m.clientX-h.left,v=m.clientY-h.top;s.onThumbPointerDown({x:f,y:v})}),onPointerUp:V(e.onPointerUp,s.onThumbPointerUp)})});ft.displayName=Ee;var $e="ScrollAreaCorner",xt=p.forwardRef((e,t)=>{let r=z($e,e.__scopeScrollArea),n=!!(r.scrollbarX&&r.scrollbarY);return r.type!=="scroll"&&n?(0,o.jsx)(Ur,{...e,ref:t}):null});xt.displayName=$e;var Ur=p.forwardRef((e,t)=>{let{__scopeScrollArea:r,...n}=e,l=z($e,r),[a,s]=p.useState(0),[i,c]=p.useState(0),u=!!(a&&i);return ne(l.scrollbarX,()=>{var m;let d=((m=l.scrollbarX)==null?void 0:m.offsetHeight)||0;l.onCornerHeightChange(d),c(d)}),ne(l.scrollbarY,()=>{var m;let d=((m=l.scrollbarY)==null?void 0:m.offsetWidth)||0;l.onCornerWidthChange(d),s(d)}),u?(0,o.jsx)(pe.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 ke(e){return e?parseInt(e,10):0}function vt(e,t){let r=e/t;return isNaN(r)?0:r}function Le(e){let t=vt(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,n=(e.scrollbar.size-r)*t;return Math.max(n,18)}function Wr(e,t,r,n="ltr"){let l=Le(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 wt([c,u],m)(e)}function gt(e,t,r="ltr"){let n=Le(t),l=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-l,s=t.content-t.viewport,i=a-n,c=Zt(e,r==="ltr"?[0,s]:[s*-1,0]);return wt([0,s],[0,i])(c)}function wt(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 bt(e,t){return e>0&&e<t}var Yr=(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 Ie(e,t){let r=q(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 ne(e,t){let r=q(t);Vt(()=>{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 yt=ct,Xr=ut,Vr=xt,qr=rt("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"}]]),Br=rt("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"}]]),jt=Qe();const $r=({chatState:e,chatId:t,messages:r})=>{if(!t)return _e.warn("No active chat"),e;let n=e.chats.get(t);if(!n)return _e.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 St=p.forwardRef((e,t)=>{let r=(0,jt.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=oe("relative overflow-hidden",l),r[4]=l,r[5]=s);let i;r[6]===n?i=r[7]:(i=(0,o.jsx)(Xr,{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)(Ct,{}),u=(0,o.jsx)(Vr,{}),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)(yt,{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});St.displayName=yt.displayName;var Ct=p.forwardRef((e,t)=>{let r=(0,jt.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=oe("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)(ft,{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)(qe,{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});Ct.displayName=qe.displayName;var Gr=[{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 Jr=e=>{let t=Date.now(),r=Gr.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)},Kr=({activeChatId:e,setActiveChat:t})=>{let r=We(st),{locale:n}=Tr(),[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)(()=>Jr(i),[i]);return(0,o.jsxs)(Gt,{children:[(0,o.jsx)(Ye,{content:"Previous chats",children:(0,o.jsx)(Bt,{asChild:!0,children:(0,o.jsx)(ae,{variant:"text",size:"icon",children:(0,o.jsx)(Mt,{className:"h-4 w-4"})})})}),(0,o.jsxs)($t,{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)(Nr,{placeholder:"Search chat history...",value:l,onChange:u=>a(u.target.value),className:"text-xs"})}),(0,o.jsx)(St,{className:"h-[450px] p-2",children:(0,o.jsxs)("div",{className:"space-y-3",children:[s.length===0&&(0,o.jsx)(Xe,{title:"No chats yet",description:"Start a new chat to get started",icon:(0,o.jsx)(lt,{})}),i.length===0&&l&&s.length>0&&(0,o.jsx)(Xe,{title:"No chats found",description:`No chats match "${l}"`,icon:(0,o.jsx)(Cr,{})}),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:oe("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:Ar(m.updatedAt,n)})]},m.id))}),d!==c.length-1&&(0,o.jsx)("hr",{})]},u.label))]})})]})]})};var se=Qe(),Nt="manual",Qr=e=>{let t=(0,se.c)(18),{onNewChat:r,activeChatId:n,setActiveChat:l}=e,{handleClick:a}=Ze(),s;t[0]===Symbol.for("react.memo_cache_sentinel")?(s=(0,o.jsx)(Sr,{className:"h-4 w-4"}),t[0]=s):s=t[0];let i;t[1]===r?i=t[2]:(i=(0,o.jsx)(Ye,{content:"New chat",children:(0,o.jsx)(ae,{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)(Ht,{}),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)(Rr,{className:"h-4 w-4"}),t[6]=d):d=t[6];let m;t[7]===u?m=t[8]:(m=(0,o.jsx)(Ye,{content:"AI Settings",children:(0,o.jsx)(ae,{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)(Kr,{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 v;return t[15]!==i||t[16]!==f?(v=(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]=v):v=t[17],v},Rt=(0,p.memo)(e=>{let t=(0,se.c)(15),{message:r,index:n,onEdit:l,isStreamingReasoning:a,isLast:s}=e,i;t[0]!==n||t[1]!==l?(i=j=>{var N,R,y;let T=(R=(N=j.parts)==null?void 0:N.filter(rl))==null?void 0:R.map(ll).join(`
2
2
  `),g=(y=j.parts)==null?void 0:y.filter(ol);return(0,o.jsxs)("div",{className:"w-[95%] bg-background border p-1 rounded-sm",children:[g==null?void 0:g.map(al),(0,o.jsx)(nt,{value:T,placeholder:"Type your message...",onChange:nl,onSubmit:(S,C)=>{C.trim()&&l(n,C)},onClose:sl},j.id)]})},t[0]=n,t[1]=l,t[2]=i):i=t[2];let c=i,u;t[3]!==s||t[4]!==a?(u=j=>(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)(_r,{className:"h-3 w-3",value:j.parts.filter(il).map(cl).join(`
3
3
  `)||""})}),Lr({message:j,isStreamingReasoning:a,isLast:s})]}),t[3]=s,t[4]=a,t[5]=u):u=t[5];let d=u,m=r.role==="user"?"justify-end":"justify-start",h;t[6]===m?h=t[7]:(h=oe("flex group relative",m),t[6]=m,t[7]=h);let f;t[8]!==r||t[9]!==d||t[10]!==c?(f=r.role==="user"?c(r):d(r),t[8]=r,t[9]=d,t[10]=c,t[11]=f):f=t[11];let v;return t[12]!==h||t[13]!==f?(v=(0,o.jsx)("div",{className:h,children:f}),t[12]=h,t[13]=f,t[14]=v):v=t[14],v});Rt.displayName="ChatMessage";var At=(0,p.memo)(e=>{var D,Y;let t=(0,se.c)(39),{isEmpty:r,onSendClick:n,isLoading:l,onStop:a,fileInputRef:s,onAddFiles:i,onAddContext:c}=e,u=We(et),d=(u==null?void 0:u.mode)||Nt,m=((D=u==null?void 0:u.models)==null?void 0:D.chat_model)||"openai/gpt-4o",h=Ft.parse(m).providerId,{saveModeChange:f}=zt(),v;t[0]===Symbol.for("react.memo_cache_sentinel")?(v=[{value:"manual",label:"Manual",subtitle:"Pure chat, no tool usage",Icon:jr},{value:"ask",label:"Ask",subtitle:"Use AI with access to read-only tools like documentation search",Icon:Br},{value:"agent",label:"Agent (beta)",subtitle:"Use AI with access to read and write tools",Icon:qr}],t[0]=v):v=t[0];let j=v,T=dr.has(h),g=(Y=j.find(me=>me.value===d))==null?void 0:Y.Icon,N;t[1]===g?N=t[2]:(N=g&&(0,o.jsx)(g,{className:"h-3 w-3"}),t[1]=g,t[2]=N);let R;t[3]===d?R=t[4]:(R=(0,o.jsx)("span",{className:"capitalize",children:d}),t[3]=d,t[4]=R);let y;t[5]!==N||t[6]!==R?(y=(0,o.jsxs)(tr,{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:[N,R]}),t[5]=N,t[6]=R,t[7]=y):y=t[7];let S;t[8]===Symbol.for("react.memo_cache_sentinel")?(S=(0,o.jsx)(Jt,{className:"text-xs uppercase tracking-wider text-muted-foreground/70 font-medium",children:"AI Mode"}),t[8]=S):S=t[8];let C;t[9]===j?C=t[10]:(C=(0,o.jsx)(Qt,{children:(0,o.jsxs)(er,{children:[S,j.map(dl)]})}),t[9]=j,t[10]=C);let E;t[11]!==d||t[12]!==f||t[13]!==y||t[14]!==C?(E=(0,o.jsxs)(rr,{value:d,onValueChange:f,children:[y,C]}),t[11]=d,t[12]=f,t[13]=y,t[14]=C,t[15]=E):E=t[15];let I;t[16]===Symbol.for("react.memo_cache_sentinel")?(I=(0,o.jsx)(Ot,{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[16]=I):I=t[16];let w;t[17]===E?w=t[18]:(w=(0,o.jsxs)("div",{className:"flex items-center gap-2",children:[E,I]}),t[17]=E,t[18]=w);let _;t[19]!==l||t[20]!==c?(_=(0,o.jsx)(vr,{handleAddContext:c,isLoading:l}),t[19]=l,t[20]=c,t[21]=_):_=t[21];let k;t[22]!==s||t[23]!==T||t[24]!==l||t[25]!==i?(k=T&&(0,o.jsx)(ir,{fileInputRef:s,isLoading:l,onAddFiles:i}),t[22]=s,t[23]=T,t[24]=l,t[25]=i,t[26]=k):k=t[26];let F;t[27]!==r||t[28]!==l||t[29]!==n||t[30]!==a?(F=(0,o.jsx)(cr,{isLoading:l,onStop:a,onSendClick:n,isEmpty:r}),t[27]=r,t[28]=l,t[29]=n,t[30]=a,t[31]=F):F=t[31];let H;t[32]!==_||t[33]!==k||t[34]!==F?(H=(0,o.jsxs)("div",{className:"flex flex-row",children:[_,k,F]}),t[32]=_,t[33]=k,t[34]=F,t[35]=H):H=t[35];let A;return t[36]!==H||t[37]!==w?(A=(0,o.jsx)(tt,{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:[w,H]})}),t[36]=H,t[37]=w,t[38]=A):A=t[38],A});At.displayName="ChatInputFooter";var Ge=(0,p.memo)(e=>{let t=(0,se.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 v=ue(f),j;t[3]===l?j=t[4]:(j=oe("px-2 py-3 flex-1",l),t[3]=l,t[4]=j);let T=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]!==T?(g=(0,o.jsx)(nt,{inputRef:i,value:n,onChange:a,onSubmit:s,onClose:h,onAddFiles:m,placeholder:T}),t[5]=n,t[6]=i,t[7]=m,t[8]=h,t[9]=s,t[10]=a,t[11]=T,t[12]=g):g=t[12];let N;t[13]!==j||t[14]!==g?(N=(0,o.jsx)("div",{className:j,children:g}),t[13]=j,t[14]=g,t[15]=N):N=t[15];let R=!n.trim(),y;t[16]===i?y=t[17]:(y=()=>ar(i),t[16]=i,t[17]=y);let S;t[18]!==d||t[19]!==v||t[20]!==c||t[21]!==m||t[22]!==u||t[23]!==R||t[24]!==y?(S=(0,o.jsx)(At,{isEmpty:R,onAddContext:y,onSendClick:v,isLoading:c,onStop:u,fileInputRef:d,onAddFiles:m}),t[18]=d,t[19]=v,t[20]=c,t[21]=m,t[22]=u,t[23]=R,t[24]=y,t[25]=S):S=t[25];let C;return t[26]!==N||t[27]!==S?(C=(0,o.jsxs)("div",{className:"relative shrink-0 min-h-[80px] flex flex-col border-t",children:[N,S]}),t[26]=N,t[27]=S,t[28]=C):C=t[28],C});Ge.displayName="ChatInput";var Zr=()=>{let e=(0,se.c)(6),t=We(Ut),{handleClick:r}=Ze();if(!t){let l;e[0]===r?l=e[1]:(l=(0,o.jsx)(ae,{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)(lt,{}),e[2]=a):a=e[2];let s;return e[3]===l?s=e[4]:(s=(0,o.jsx)(Xe,{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)(el,{}),e[5]=n):n=e[5],n},el=()=>{let e=(0,se.c)(95),t=kt(st),[r,n]=It(Er),[l,a]=(0,p.useState)(""),[s,i]=(0,p.useState)(""),{files:c,addFiles:u,clearFiles:d,removeFile:m}=br(),h=(0,p.useRef)(null),f=(0,p.useRef)(null),v=(0,p.useRef)(null),j=(0,p.useRef)(null),T=(0,p.useRef)(null),g=Wt(),{invokeAiTool:N,sendRun:R}=lr(),y=r==null?void 0:r.id,S=Lt(),{addStagedCell:C}=or(),{createNewCell:E,prepareForRun:I}=Dt(),w;e[0]!==C||e[1]!==E||e[2]!==I||e[3]!==R||e[4]!==S?(w={addStagedCell:C,createNewCell:E,prepareForRun:I,sendRun:R,store:S},e[0]=C,e[1]=E,e[2]=I,e[3]=R,e[4]=S,e[5]=w):w=e[5];let _=w,k;e[6]===(r==null?void 0:r.messages)?k=e[7]:(k=(r==null?void 0:r.messages)||[],e[6]=r==null?void 0:r.messages,e[7]=k);let F;if(e[8]!==g||e[9]!==S){let x;e[11]===g?x=e[12]:(x=()=>g.headers(),e[11]=g,e[12]=x),F=new mr({api:g.getAiURL("chat").toString(),headers:x,prepareSendMessagesRequest:async b=>{var W;let L=await xr(b.messages),O=((W=S.get(et))==null?void 0:W.mode)||Nt,de=sr.getToolSchemas(O);return{api:g.getAiURL("chat").toString(),body:{tools:de,...b,...L}}}}),e[8]=g,e[9]=S,e[10]=F}else F=e[10];let H;e[13]===t?H=e[14]:(H=x=>{let{messages:b}=x;t(L=>$r({chatState:L,chatId:L.activeChatId,messages:b}))},e[13]=t,e[14]=H);let{messages:A,sendMessage:D,error:Y,status:me,regenerate:Pe,stop:X,addToolOutput:_t,id:De}=hr({id:y,sendAutomaticallyWhen:ul,messages:k,transport:F,onFinish:H,onToolCall:async x=>{let{toolCall:b}=x;if(b.dynamic){_e.debug("Skipping dynamic tool call",b);return}await ur({invokeAiTool:N,addToolOutput:Tt,toolCall:{toolName:b.toolName,toolCallId:b.toolCallId,input:b.input},toolContext:_})},onError:pl}),Tt=_t,P=me==="submitted"||me==="streaming",he;e[15]!==P||e[16]!==A?(he=P&&A.length>0&&wr(A),e[15]=P,e[16]=A,e[17]=he):he=e[17];let ie=he,fe;e[18]===Symbol.for("react.memo_cache_sentinel")?(fe=()=>{requestAnimationFrame(()=>{if(v.current){let x=v.current;x.scrollTop=x.scrollHeight}})},e[18]=fe):fe=e[18];let xe;e[19]===y?xe=e[20]:(xe=[y],e[19]=y,e[20]=xe),(0,p.useEffect)(fe,xe);let ve;e[21]!==De||e[22]!==d||e[23]!==D||e[24]!==t?(ve=async(x,b)=>{let L=Date.now(),O={id:De,title:pr(x),messages:[],createdAt:L,updatedAt:L};t(W=>{let Je=new Map(W.chats);return Je.set(O.id,O),{...W,chats:Je,activeChatId:O.id}});let de=b&&b.length>0?await at(b):void 0;D({role:"user",parts:[{type:"text",text:x},...de??[]]}),d(),a("")},e[21]=De,e[22]=d,e[23]=D,e[24]=t,e[25]=ve):ve=e[25];let Me=ve,ge;e[26]!==d||e[27]!==n?(ge=()=>{n(null),a(""),i(""),d()},e[26]=d,e[27]=n,e[28]=ge):ge=e[28];let ze=ue(ge),we;e[29]!==A||e[30]!==D?(we=(x,b)=>{var W;let L=A[x],O=(W=L.parts)==null?void 0:W.filter(ml),de=L.id;D({messageId:de,role:"user",parts:[{type:"text",text:b},...O]})},e[29]=A,e[30]=D,e[31]=we):we=e[31];let ce=ue(we),be;e[32]!==d||e[33]!==c||e[34]!==D?(be=async(x,b)=>{var O;if(!b.trim())return;(O=f.current)!=null&&O.view&&ot(f.current.view);let L=c?await at(c):void 0;x==null||x.preventDefault(),D({text:b,files:L}),a(""),d()},e[32]=d,e[33]=c,e[34]=D,e[35]=be):be=e[35];let Fe=ue(be),ye;e[36]===Pe?ye=e[37]:(ye=()=>{Pe()},e[36]=Pe,e[37]=ye);let He=ye,je;e[38]!==Me||e[39]!==c||e[40]!==s?(je=()=>{var x;s.trim()&&((x=h.current)!=null&&x.view&&ot(h.current.view),Me(s.trim(),c))},e[38]=Me,e[39]=c,e[40]=s,e[41]=je):je=e[41];let Oe=ue(je),Se;e[42]===Symbol.for("react.memo_cache_sentinel")?(Se=()=>{var x,b;return(b=(x=h.current)==null?void 0:x.editor)==null?void 0:b.blur()},e[42]=Se):Se=e[42];let Et=Se,M=A.length===0,Ce;e[43]!==u||e[44]!==Fe||e[45]!==Oe||e[46]!==l||e[47]!==P||e[48]!==M||e[49]!==s||e[50]!==X?(Ce=M?(0,o.jsx)(Ge,{placeholder:"Ask anything, @ to include context about tables or dataframes",input:s,inputRef:h,inputClassName:"px-1 py-0",setInput:i,onSubmit:Oe,isLoading:P,onStop:X,fileInputRef:j,onAddFiles:u,onClose:Et},"new-thread-input"):(0,o.jsx)(Ge,{input:l,setInput:a,onSubmit:Fe,inputRef:f,isLoading:P,onStop:X,onClose:()=>{var x,b;return(b=(x=f.current)==null?void 0:x.editor)==null?void 0:b.blur()},fileInputRef:j,onAddFiles:u}),e[43]=u,e[44]=Fe,e[45]=Oe,e[46]=l,e[47]=P,e[48]=M,e[49]=s,e[50]=X,e[51]=Ce):Ce=e[51];let B=Ce,Ne;e[52]!==c||e[53]!==M||e[54]!==m?(Ne=c&&c.length>0&&(0,o.jsx)("div",{className:oe("flex flex-row gap-1 flex-wrap p-1",M&&"py-2 px-1"),children:c==null?void 0:c.map(x=>(0,o.jsx)(gr,{file:x,onRemove:()=>m(x)},x.name))}),e[52]=c,e[53]=M,e[54]=m,e[55]=Ne):Ne=e[55];let $=Ne,Ue=r==null?void 0:r.id,G;e[56]!==ze||e[57]!==n||e[58]!==Ue?(G=(0,o.jsx)(tt,{children:(0,o.jsx)(Qr,{onNewChat:ze,activeChatId:Ue,setActiveChat:n})}),e[56]=ze,e[57]=n,e[58]=Ue,e[59]=G):G=e[59];let J;e[60]!==B||e[61]!==$||e[62]!==M?(J=M&&(0,o.jsxs)("div",{className:"rounded-md border bg-background",children:[$,B]}),e[60]=B,e[61]=$,e[62]=M,e[63]=J):J=e[63];let K;if(e[64]!==ce||e[65]!==ie||e[66]!==A){let x;e[68]!==ce||e[69]!==ie||e[70]!==A.length?(x=(b,L)=>(0,o.jsx)(Rt,{message:b,index:L,onEdit:ce,isStreamingReasoning:ie,isLast:L===A.length-1},b.id),e[68]=ce,e[69]=ie,e[70]=A.length,e[71]=x):x=e[71],K=A.map(x),e[64]=ce,e[65]=ie,e[66]=A,e[67]=K}else K=e[67];let Q;e[72]===P?Q=e[73]:(Q=P&&(0,o.jsx)("div",{className:"flex justify-center py-4",children:(0,o.jsx)(yr,{className:"h-4 w-4 animate-spin"})}),e[72]=P,e[73]=Q);let Z;e[74]!==Y||e[75]!==He?(Z=Y&&(0,o.jsxs)("div",{className:"flex items-center justify-center space-x-2 mb-4",children:[(0,o.jsx)(kr,{error:Y||Error("Unknown error")}),(0,o.jsx)(ae,{variant:"outline",size:"sm",onClick:He,children:"Retry"})]}),e[74]=Y,e[75]=He,e[76]=Z):Z=e[76];let Re;e[77]===Symbol.for("react.memo_cache_sentinel")?(Re=(0,o.jsx)("div",{ref:T}),e[77]=Re):Re=e[77];let ee;e[78]!==J||e[79]!==K||e[80]!==Q||e[81]!==Z?(ee=(0,o.jsxs)("div",{className:"flex-1 px-3 bg-(--slate-1) gap-4 py-3 flex flex-col overflow-y-auto",ref:v,children:[J,K,Q,Z,Re]}),e[78]=J,e[79]=K,e[80]=Q,e[81]=Z,e[82]=ee):ee=e[82];let te;e[83]!==P||e[84]!==X?(te=P&&(0,o.jsx)("div",{className:"w-full flex justify-center items-center z-20 border-t",children:(0,o.jsx)(ae,{variant:"linkDestructive",size:"sm",onClick:X,children:"Stop"})}),e[83]=P,e[84]=X,e[85]=te):te=e[85];let re;e[86]!==B||e[87]!==$||e[88]!==M?(re=!M&&(0,o.jsxs)(o.Fragment,{children:[$,B]}),e[86]=B,e[87]=$,e[88]=M,e[89]=re):re=e[89];let Ae;return e[90]!==G||e[91]!==ee||e[92]!==te||e[93]!==re?(Ae=(0,o.jsxs)("div",{className:"flex flex-col h-[calc(100%-53px)]",children:[G,ee,te,re]}),e[90]=G,e[91]=ee,e[92]=te,e[93]=re,e[94]=Ae):Ae=e[94],Ae},tl=Zr;function rl(e){return e.type==="text"}function ll(e){return e.text}function ol(e){return e.type==="file"}function al(e,t){return(0,o.jsx)(fr,{attachment:e},t)}function nl(){}function sl(){}function il(e){return e.type==="text"}function cl(e){return e.text}function dl(e){return(0,o.jsx)(Kt,{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 ul(e){let{messages:t}=e;return nr(t)}function pl(e){_e.error("An error occurred:",e)}function ml(e){return e.type==="file"}export{tl as default};
@@ -1,4 +1,4 @@
1
- import{s as Z}from"./chunk-LvLJmgfZ.js";import"./useEvent-D91BmmQi.js";import{t as re}from"./react-Bj1aDYRI.js";import{cn as ae}from"./cells-Wp62mkuO.js";import"./react-dom-CSu739Rf.js";import{C as ne,P as le,R as oe,T as ie,k as me}from"./zod-H_cgTO0M.js";import{t as ce}from"./compiler-runtime-B3qBwwSJ.js";import{_ as K,d as de,t as pe}from"./useEventListener-BR0C1MaI.js";import{t as B}from"./cn-DCUzRj2J.js";import{t as ue}from"./jsx-runtime-BqBOg78p.js";import"./fullscreen-BDxedMYP.js";import{i as he,l as xe,r as G,t as U}from"./popover-UExmgBsf.js";import{a as fe,p as ge,r as be,t as je}from"./dropdown-menu-D1A3cFC8.js";import{t as W}from"./label-DTR8T0AE.js";import{t as Y}from"./tooltip-Gcwqb_SK.js";import{t as z}from"./button-D9nb17Rw.js";import"./dist-BrR4M-k3.js";import"./cjs-BRGiG41H.js";import"./main-B0OX4z33.js";import"./useNonce-DfoVjkkH.js";import{t as ve}from"./strings-md4mFbOQ.js";import{t as ye}from"./createLucideIcon-D5guW7EU.js";import{t as Ne}from"./bot-message-square-DrbHk31W.js";import{t as we}from"./x-C-6liIBr.js";import"./markdown-renderer-DjjwLrVA.js";import{u as _e}from"./toDate-B5A0DFEz.js";import{M as ke,N as Ce,P as Se,j as Ae,k as Me,m as Re,n as ze}from"./add-cell-with-ai-DMh3huz_.js";import{t as Ee}from"./spinner-Bhir8k53.js";import{o as Ie,r as qe}from"./input-BX98vgAu.js";import{t as Fe}from"./settings-DfFe0dWD.js";import{t as $e}from"./trash-2-CKlZA04n.js";import"./dist-DQOq2Tf-.js";import"./dist-DBiqbYe-.js";import"./dist-VjDnmGCZ.js";import"./dist-E6ttb8td.js";import"./dist-B324sPca.js";import"./session-VtovaFBS.js";import"./purify.es-DBmVz-Wl.js";import{t as De}from"./copy-icon-BYNydU7b.js";import{r as Te}from"./react-icons.esm-D9xfKaPZ.js";import{t as He}from"./events-BRAWQiYK.js";import{n as Le}from"./error-banner-C6aBa98y.js";import{n as Oe}from"./useAsyncData-BFC6lWG9.js";import"./chunk-5FQGJX7Z-e_arGD4o.js";import"./html-to-image-BZTmy2-K.js";import"./esm-BmrwxxCo.js";import{t as Pe}from"./chat-display-DdLRA8c9.js";var Ve=ye("rotate-cw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]),J=ce(),t=Z(ue(),1),b=Z(re(),1),Ke=xe,Ye=le({type:me("stream_chunk"),message_id:oe(),content:ne().nullable().transform(s=>s),is_final:ie().optional()});const Je=s=>{var X;let[e,m]=(0,b.useState)(""),[x,N]=(0,b.useState)(s.config),[_,c]=(0,b.useState)(s.config),[o,f]=(0,b.useState)(void 0),h=(0,b.useRef)(null),g=(0,b.useRef)(null),j=(0,b.useRef)(null),i=(0,b.useRef)(null);Object.keys(s.config).some(r=>s.config[r]!==_[r])&&(N(s.config),c(s.config));let l=(0,b.useRef)(x);l.current=x;let p=(0,b.useRef)({backendMessageId:null,frontendMessageIndex:null}),a=(0,b.useRef)(null),{data:d}=Oe(async()=>(await s.get_chat_history({})).messages,[]),n=s.value.length>0?s.value:d,{messages:u,sendMessage:k,setMessages:R,status:A,stop:$,error:C,regenerate:M,clearError:S}=Me({transport:new Ae({fetch:async(r,v)=>{var D;if(v===void 0)return fetch(r);let y=JSON.parse(v.body),w=v.signal,O={max_tokens:l.current.max_tokens,temperature:l.current.temperature,top_p:l.current.top_p,top_k:l.current.top_k,frequency_penalty:l.current.frequency_penalty,presence_penalty:l.current.presence_penalty};try{let H=y.messages.map(F=>{var E;return{...F,content:(E=F.parts)==null?void 0:E.map(P=>"text"in P?P.text:"").join(`
1
+ import{s as Z}from"./chunk-LvLJmgfZ.js";import"./useEvent-D91BmmQi.js";import{t as re}from"./react-Bj1aDYRI.js";import{cn as ae}from"./cells-B624w_H9.js";import"./react-dom-CSu739Rf.js";import{C as ne,P as le,R as oe,T as ie,k as me}from"./zod-H_cgTO0M.js";import{t as ce}from"./compiler-runtime-B3qBwwSJ.js";import{_ as K,d as de,t as pe}from"./useEventListener-BR0C1MaI.js";import{t as B}from"./cn-DCUzRj2J.js";import{t as ue}from"./jsx-runtime-BqBOg78p.js";import"./fullscreen-BDxedMYP.js";import{i as he,l as xe,r as G,t as U}from"./popover-UExmgBsf.js";import{a as fe,p as ge,r as be,t as je}from"./dropdown-menu-D1A3cFC8.js";import{t as W}from"./label-DTR8T0AE.js";import{t as Y}from"./tooltip-Gcwqb_SK.js";import{t as z}from"./button-D9nb17Rw.js";import"./dist-BrR4M-k3.js";import"./cjs-BRGiG41H.js";import"./main-B0OX4z33.js";import"./useNonce-DfoVjkkH.js";import{t as ve}from"./strings-md4mFbOQ.js";import{t as ye}from"./createLucideIcon-D5guW7EU.js";import{t as Ne}from"./bot-message-square-DrbHk31W.js";import{t as we}from"./x-C-6liIBr.js";import"./markdown-renderer-ju9oyUcG.js";import{u as _e}from"./toDate-B5A0DFEz.js";import{M as ke,N as Ce,P as Se,j as Ae,k as Me,m as Re,n as ze}from"./add-cell-with-ai-DIq2bBlj.js";import{t as Ee}from"./spinner-Bhir8k53.js";import{o as Ie,r as qe}from"./input-BX98vgAu.js";import{t as Fe}from"./settings-DfFe0dWD.js";import{t as $e}from"./trash-2-CKlZA04n.js";import"./dist-DQOq2Tf-.js";import"./dist-DBiqbYe-.js";import"./dist-VjDnmGCZ.js";import"./dist-E6ttb8td.js";import"./dist-B324sPca.js";import"./session-VtovaFBS.js";import"./purify.es-DBmVz-Wl.js";import{t as De}from"./copy-icon-BYNydU7b.js";import{r as Te}from"./react-icons.esm-D9xfKaPZ.js";import{t as He}from"./events-BRAWQiYK.js";import{n as Le}from"./error-banner-C6aBa98y.js";import{n as Oe}from"./useAsyncData-BFC6lWG9.js";import"./chunk-5FQGJX7Z-e_arGD4o.js";import"./html-to-image-C4B8YBxt.js";import"./esm-BmrwxxCo.js";import{t as Pe}from"./chat-display-CiGYiUeC.js";var Ve=ye("rotate-cw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]),J=ce(),t=Z(ue(),1),b=Z(re(),1),Ke=xe,Ye=le({type:me("stream_chunk"),message_id:oe(),content:ne().nullable().transform(s=>s),is_final:ie().optional()});const Je=s=>{var X;let[e,m]=(0,b.useState)(""),[x,N]=(0,b.useState)(s.config),[_,c]=(0,b.useState)(s.config),[o,f]=(0,b.useState)(void 0),h=(0,b.useRef)(null),g=(0,b.useRef)(null),j=(0,b.useRef)(null),i=(0,b.useRef)(null);Object.keys(s.config).some(r=>s.config[r]!==_[r])&&(N(s.config),c(s.config));let l=(0,b.useRef)(x);l.current=x;let p=(0,b.useRef)({backendMessageId:null,frontendMessageIndex:null}),a=(0,b.useRef)(null),{data:d}=Oe(async()=>(await s.get_chat_history({})).messages,[]),n=s.value.length>0?s.value:d,{messages:u,sendMessage:k,setMessages:R,status:A,stop:$,error:C,regenerate:M,clearError:S}=Me({transport:new Ae({fetch:async(r,v)=>{var D;if(v===void 0)return fetch(r);let y=JSON.parse(v.body),w=v.signal,O={max_tokens:l.current.max_tokens,temperature:l.current.temperature,top_p:l.current.top_p,top_k:l.current.top_k,frequency_penalty:l.current.frequency_penalty,presence_penalty:l.current.presence_penalty};try{let H=y.messages.map(F=>{var E;return{...F,content:(E=F.parts)==null?void 0:E.map(P=>"text"in P?P.text:"").join(`
2
2
  `)}}),V=new ReadableStream({start(F){a.current=F;let E=()=>{try{F.close()}catch(P){K.debug("Controller may already be closed",{error:P})}a.current=null};return w==null||w.addEventListener("abort",E),()=>{w==null||w.removeEventListener("abort",E)}},cancel(){a.current=null}});return s.send_prompt({messages:H,config:O}).catch(F=>{var E;(E=a.current)==null||E.error(F),a.current=null}),ke({stream:V})}catch(H){if(p.current={backendMessageId:null,frontendMessageIndex:null},H instanceof Error&&H.name==="AbortError")return new Response("Aborted",{status:499});let V=(D=H.message)==null?void 0:D.split("failed with exception ").pop();return new Response(V,{status:400})}}}),messages:n,onFinish:r=>{f(void 0),h.current&&(h.current.value=""),K.debug("Finished streaming message:",r),p.current={backendMessageId:null,frontendMessageIndex:null},s.setValue(r.messages)},onError:r=>{K.error("An error occurred:",r),p.current={backendMessageId:null,frontendMessageIndex:null}}});pe(s.host,He.TYPE,r=>{let v=Ye.safeParse(r.detail.message);if(!v.success)return;let y=v.data,w=a.current;w&&(y.content&&w.enqueue(y.content),y.is_final&&(w.close(),a.current=null))});let I=A==="submitted"||A==="streaming",T=r=>{let v=u.findIndex(y=>y.id===r);if(v!==-1){let y=u.filter(w=>w.id!==r);s.delete_chat_message({index:v}),R(y),s.setValue(y)}},Q=Array.isArray(s.allowAttachments)&&s.allowAttachments.length>0||s.allowAttachments===!0,ee={triggerCompletionRegex:/^\/(\w+)?/,completions:s.prompts.map(r=>({label:`/${r}`,displayLabel:r,apply:r}))},te=s.prompts.length>0?"Type your message here, / for prompts":"Type your message here...";(0,b.useEffect)(()=>{var r;(r=i.current)==null||r.scrollTo({top:i.current.scrollHeight,behavior:"smooth"})},[u.length,i]);let q=(X=j.current)==null?void 0:X.view,se=()=>{if(q){let r=q.state.doc.length;q.dispatch({changes:{from:0,to:r,insert:""}})}m("")};return(0,t.jsxs)("div",{className:"flex flex-col h-full bg-(--slate-1) rounded-lg shadow border border-(--slate-6) overflow-hidden relative",style:{maxHeight:s.maxHeight},children:[(0,t.jsx)("div",{className:"absolute top-0 right-0 flex justify-end z-10 border border-(--slate-6) bg-inherit rounded-bl-lg",children:(0,t.jsx)(z,{variant:"text",size:"icon",disabled:u.length===0,onClick:()=>{R([]),s.setValue([]),s.delete_chat_history({}),S()},children:(0,t.jsx)(Ve,{className:"h-3 w-3"})})}),(0,t.jsxs)("div",{className:"grow overflow-y-auto gap-4 pt-8 pb-4 px-2 flex flex-col",ref:i,children:[u.length===0&&(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center h-full text-muted-foreground text-center p-4",children:[(0,t.jsx)(Ne,{className:"h-12 w-12 mb-4"}),(0,t.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"No messages yet"}),(0,t.jsx)("p",{className:"text-sm",children:"Start a conversation by typing a message below."})]}),u.map((r,v)=>{var O;let y=(O=r.parts)==null?void 0:O.filter(D=>D.type==="text").map(D=>D.text).join(`
3
3
  `),w=v===u.length-1;return(0,t.jsxs)("div",{className:B("flex flex-col group gap-2",r.role==="user"?"items-end":"items-start"),children:[(0,t.jsx)("div",{className:`max-w-[80%] p-3 rounded-lg ${r.role==="user"?"bg-(--sky-11) text-(--slate-1) whitespace-pre-wrap":"bg-(--slate-4) text-(--slate-12)"}`,children:Pe({message:r,isStreamingReasoning:A==="streaming",isLast:w})}),(0,t.jsxs)("div",{className:"flex justify-end text-xs gap-2 invisible group-hover:visible",children:[(0,t.jsx)(De,{value:y,className:"h-3 w-3",buttonClassName:"text-xs text-(--slate-9) hover:text-(--slate-11)"}),(0,t.jsx)("button",{type:"button",onClick:()=>T(r.id),className:"text-xs text-(--slate-9) hover:text-(--slate-11)",children:(0,t.jsx)($e,{className:"h-3 w-3 text-(--red-9)"})})]})]},`${r.id}-${v}`)}),I&&(0,t.jsxs)("div",{className:"flex items-center justify-center space-x-2 mb-4",children:[(0,t.jsx)(Ee,{size:"small"}),(0,t.jsx)(z,{variant:"link",size:"sm",onClick:()=>$(),className:"text-(--red-9) hover:text-(--red-11)",children:"Stop"})]}),C&&(0,t.jsxs)("div",{className:"flex items-center justify-center space-x-2 mb-4",children:[(0,t.jsx)(Le,{error:C}),(0,t.jsx)(z,{variant:"outline",size:"sm",onClick:()=>M(),children:"Retry"})]})]}),(0,t.jsxs)("form",{onSubmit:async r=>{if(r.preventDefault(),s.disabled)return;let v=o?await Re(o):void 0;k({role:"user",parts:[{type:"text",text:e},...v??[]]}),se()},ref:g,inert:s.disabled||void 0,className:B("flex w-full border-t border-(--slate-6) px-2 py-1 items-center",s.disabled&&"opacity-50 cursor-not-allowed"),children:[s.showConfigurationControls&&(0,t.jsx)(Xe,{config:x,onChange:N}),s.prompts.length>0&&(0,t.jsx)(Ze,{prompts:s.prompts,onSelect:r=>{m(r),requestAnimationFrame(()=>{q==null||q.focus(),ae(q)})}}),(0,t.jsx)(ze,{className:"rounded-sm mr-2",placeholder:te,value:e,inputRef:j,maxHeight:s.maxHeight?`${s.maxHeight/2}px`:void 0,onChange:m,onSubmit:(r,v)=>{var y;v.trim()&&((y=g.current)==null||y.requestSubmit())},onClose:()=>{},additionalCompletions:ee}),o&&o.length===1&&(0,t.jsx)("span",{title:o[0].name,className:"text-sm text-(--slate-11) truncate shrink-0 w-fit max-w-24",children:o[0].name}),o&&o.length>1&&(0,t.jsxs)("span",{title:[...o].map(r=>r.name).join(`
4
4
  `),className:"text-sm text-(--slate-11) truncate shrink-0",children:[o.length," files"]}),o&&o.length>0&&(0,t.jsx)(z,{type:"button",variant:"text",size:"sm",onClick:()=>{f(void 0),h.current&&(h.current.value="")},children:(0,t.jsx)(we,{className:"size-3"})}),Q&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(z,{type:"button",variant:"text",size:"sm",onClick:()=>{var r;return(r=h.current)==null?void 0:r.click()},children:(0,t.jsx)(Se,{className:"h-4"})}),(0,t.jsx)("input",{type:"file",ref:h,className:"hidden",multiple:!0,accept:Array.isArray(s.allowAttachments)?s.allowAttachments.join(","):void 0,onChange:r=>{r.target.files&&f([...r.target.files])}})]}),(0,t.jsx)(z,{type:"submit",disabled:I||!e,variant:"outline",size:"xs",className:"text-(--slate-11)",children:(0,t.jsx)(Ce,{className:"h-4 w-4"})})]})]})};var L={max_tokens:{min:1,max:4096,description:"Maximum number of tokens to generate"},temperature:{min:0,max:2,step:.1,description:"Controls randomness (0: deterministic, 2: very random)"},top_p:{min:0,max:1,step:.1,description:"Nucleus sampling: probability mass to consider"},top_k:{min:1,max:100,description:"Top-k sampling: number of highest probability tokens to consider"},frequency_penalty:{min:-2,max:2,description:"Penalizes frequent tokens (-2: favor, 2: avoid)"},presence_penalty:{min:-2,max:2,description:"Penalizes new tokens (-2: favor, 2: avoid)"}},Xe=s=>{let e=(0,J.c)(16),{config:m,onChange:x}=s,[N,_]=(0,b.useState)(!1),c;e[0]!==m||e[1]!==x?(c=(a,d)=>{let n=d===null||Number.isNaN(d)?null:d;if(n!==null){let{min:u,max:k}=L[a];n=Math.max(u,Math.min(k,n))}x({...m,[a]:n})},e[0]=m,e[1]=x,e[2]=c):c=e[2];let o=c,f;e[3]===Symbol.for("react.memo_cache_sentinel")?(f=a=>{a.key==="Enter"&&(a.preventDefault(),_(!1))},e[3]=f):f=e[3];let h=f,g;e[4]===Symbol.for("react.memo_cache_sentinel")?(g=(0,t.jsx)(Y,{content:"Configuration",children:(0,t.jsx)(he,{asChild:!0,children:(0,t.jsx)(z,{variant:"outline",size:"sm",className:"border-none shadow-none hover:bg-transparent",children:(0,t.jsx)(Fe,{className:"h-3 w-3"})})})}),e[4]=g):g=e[4];let j;e[5]===Symbol.for("react.memo_cache_sentinel")?(j=(0,t.jsx)("h4",{className:"font-bold leading-none",children:"Configuration"}),e[5]=j):j=e[5];let i;if(e[6]!==m||e[7]!==o){let a;e[9]===o?a=e[10]:(a=d=>{let[n,u]=d;return(0,t.jsxs)("div",{className:"grid grid-cols-3 items-center gap-1",children:[(0,t.jsxs)(W,{htmlFor:n,className:"flex w-full justify-between col-span-3 align-end",children:[ve.startCase(n),(0,t.jsx)(Y,{delayDuration:200,side:"top",content:(0,t.jsx)("div",{className:"text-xs flex flex-col",children:L[n].description}),children:(0,t.jsx)(_e,{className:"h-3 w-3 cursor-help text-muted-foreground hover:text-foreground"})})]}),(0,t.jsx)(Ie,{id:n,"aria-label":n,value:u??NaN,placeholder:"null",minValue:L[n].min,maxValue:L[n].max,step:L[n].step??1,onChange:k=>o(n,k),onKeyDown:h,className:"col-span-3"})]},n)},e[9]=o,e[10]=a),i=de.entries(m).map(a),e[6]=m,e[7]=o,e[8]=i}else i=e[8];let l;e[11]===i?l=e[12]:(l=(0,t.jsx)(G,{className:"w-70 border",children:(0,t.jsxs)("div",{className:"grid gap-3",children:[j,i]})}),e[11]=i,e[12]=l);let p;return e[13]!==N||e[14]!==l?(p=(0,t.jsxs)(U,{open:N,onOpenChange:_,children:[g,l]}),e[13]=N,e[14]=l,e[15]=p):p=e[15],p},Ze=s=>{let e=(0,J.c)(18),{prompts:m,onSelect:x}=s,[N,_]=(0,b.useState)(!1),[c,o]=(0,b.useState)(""),f;e[0]===x?f=e[1]:(f=d=>{[...d.matchAll(/{{(\w+)}}/g)].length>0?(o(d),_(!0)):x(d)},e[0]=x,e[1]=f);let h=f,g;e[2]===Symbol.for("react.memo_cache_sentinel")?(g=(0,t.jsx)(Y,{content:"Select a prompt",children:(0,t.jsx)(ge,{asChild:!0,children:(0,t.jsx)(z,{variant:"outline",size:"sm",className:"border-none shadow-none hover:bg-transparent",children:(0,t.jsx)(Te,{className:"h-3 w-3"})})})}),e[2]=g):g=e[2];let j;if(e[3]!==h||e[4]!==m){let d;e[6]===h?d=e[7]:(d=(n,u)=>(0,t.jsx)(fe,{onSelect:()=>h(n),className:"whitespace-normal text-left",children:n},u),e[6]=h,e[7]=d),j=m.map(d),e[3]=h,e[4]=m,e[5]=j}else j=e[5];let i;e[8]===j?i=e[9]:(i=(0,t.jsx)(Ke,{children:(0,t.jsxs)(je,{children:[g,(0,t.jsx)(be,{side:"right",align:"end",onCloseAutoFocus:Ge,className:"w-64 max-h-96 overflow-y-auto",children:j})]})}),e[8]=j,e[9]=i);let l;e[10]===Symbol.for("react.memo_cache_sentinel")?(l=()=>_(!1),e[10]=l):l=e[10];let p;e[11]!==x||e[12]!==c?(p=(0,t.jsx)(G,{side:"right",align:"end",className:"min-w-80 px-2",children:(0,t.jsx)(Be,{prompt:c,onClose:l,onSelect:x})}),e[11]=x,e[12]=c,e[13]=p):p=e[13];let a;return e[14]!==N||e[15]!==i||e[16]!==p?(a=(0,t.jsxs)(U,{open:N,onOpenChange:_,children:[i,p]}),e[14]=N,e[15]=i,e[16]=p,e[17]=a):a=e[17],a},Be=s=>{let e=(0,J.c)(32),{prompt:m,onClose:x,onSelect:N}=s,_;e[0]===Symbol.for("react.memo_cache_sentinel")?(_={},e[0]=_):_=e[0];let[c,o]=(0,b.useState)(_),f,h;e[1]===m?(f=e[2],h=e[3]):(f=()=>{o([...m.matchAll(/{{(\w+)}}/g)].reduce(Ue,{}))},h=[m],e[1]=m,e[2]=f,e[3]=h),(0,b.useEffect)(f,h);let g;e[4]===Symbol.for("react.memo_cache_sentinel")?(g=(C,M)=>{o(S=>({...S,[C]:M}))},e[4]=g):g=e[4];let j=g,i;if(e[5]!==m||e[6]!==c){let C;e[8]===Symbol.for("react.memo_cache_sentinel")?(C=/{{(\w+)}}/g,e[8]=C):C=e[8];let M;e[9]===c?M=e[10]:(M=(S,I)=>c[I]||`{{${I}}}`,e[9]=c,e[10]=M),i=m.replaceAll(C,M),e[5]=m,e[6]=c,e[7]=i}else i=e[7];let l=i,p;e[11]===c?p=e[12]:(p=Object.values(c).some(We),e[11]=c,e[12]=p);let a=p,d;e[13]!==x||e[14]!==N||e[15]!==l?(d=()=>{N(l),x()},e[13]=x,e[14]=N,e[15]=l,e[16]=d):d=e[16];let n=d,u;e[17]===c?u=e[18]:(u=Object.entries(c),e[17]=c,e[18]=u);let k;e[19]!==n||e[20]!==a||e[21]!==u?(k=u.map((C,M)=>{let[S,I]=C;return(0,t.jsxs)("div",{className:"grid grid-cols-4 items-center gap-2",children:[(0,t.jsx)(W,{htmlFor:S,className:"font-semibold text-base",children:S}),(0,t.jsx)(qe,{id:S,value:I,onChange:T=>j(S,T.target.value),rootClassName:"col-span-3 w-full",className:"m-0",placeholder:`Enter value for ${S}`,autoFocus:M===0,onKeyDown:T=>{T.key==="Enter"&&!a&&n()}})]},S)}),e[19]=n,e[20]=a,e[21]=u,e[22]=k):k=e[22];let R;e[23]===l?R=e[24]:(R=(0,t.jsx)("div",{className:"grid gap-2 prose dark:prose-invert",children:(0,t.jsx)("blockquote",{className:"text-sm",children:l})}),e[23]=l,e[24]=R);let A;e[25]!==n||e[26]!==a?(A=(0,t.jsx)(z,{onClick:n,size:"xs",disabled:a,children:"Submit"}),e[25]=n,e[26]=a,e[27]=A):A=e[27];let $;return e[28]!==R||e[29]!==A||e[30]!==k?($=(0,t.jsxs)("div",{className:"grid gap-4",children:[k,R,A]}),e[28]=R,e[29]=A,e[30]=k,e[31]=$):$=e[31],$};function Ge(s){return s.preventDefault()}function Ue(s,e){return s[e[1]]="",s}function We(s){return s==null||s.trim()===""}export{Je as Chatbot};