@marimo-team/frontend 0.19.3-dev49 → 0.19.3-dev50

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.
@@ -1 +1 @@
1
- import{s as z}from"./chunk-LvLJmgfZ.js";import{l as X}from"./useEvent-DlWF5OMa.js";import{t as Z}from"./react-BGmjiNul.js";import{vt as D}from"./cells-BNQUQiDS.js";import{t as E}from"./compiler-runtime-DeeZ7FnK.js";import{C as Q,S as $,_ as ee}from"./utils-pfqq9IdB.js";import{j as te}from"./config-D6nhy4FA.js";import{t as se}from"./jsx-runtime-DN_bIXfG.js";import{t as le}from"./button-B8cGZzP5.js";import{l as R}from"./once-CTiSlR1m.js";import{r as U}from"./requests-C0HaHO6a.js";import{t as ae}from"./createLucideIcon-CW2xpJ57.js";import{h as oe,l as B}from"./select-D9lTzMzP.js";import{c as ne,f as re,l as ie,r as ce,s as de,t as he}from"./state-BTHUBVxX.js";import{r as I}from"./input-B80Yt1uu.js";import{t as Y}from"./settings-MTlHVxz3.js";import{a as L,c as M,d as A,g as me,i as xe,l as F,o as P,p as pe,u as S}from"./textarea-Di1KKcL4.js";import{t as fe}from"./use-toast-Bzf3rpev.js";import{t as K}from"./tooltip-CvjcEpZC.js";import{o as ue}from"./alert-dialog-jcHA5geR.js";import{c as je,l as ve,n as ge,t as V}from"./dialog-CF5DtF1E.js";import{t as be}from"./VisuallyHidden-B9t3FhTP.js";import{i as we,r as ye,t as Ne}from"./popover-DtnzNVk-.js";import{n as Ce}from"./useDebounce-em3gna-v.js";import{n as ke}from"./ImperativeModal-DVhvP4lH.js";import{t as O}from"./kbd-Czc5z_04.js";import{t as _e}from"./links-DNmjkr65.js";import{t as G}from"./Inputs-DmoeP8nh.js";var Se=ae("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=E(),s=z(se(),1);const Le=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}=U(),w;e[0]===o?w=e[1]:(w=()=>{o(),setTimeout(Me,200)},e[0]=o,e[1]=w);let j=w;if(te())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)(ue,{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)(oe,{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)(K,{content:u,children:d}),e[12]=d,e[13]=u,e[14]=x):x=e[14],x};function Me(){window.close()}var J=E(),W=z(Z(),1),Ae=100;const Fe=()=>{let t=(0,J.c)(37),[e,a]=ee(),{saveAppConfig:f}=U(),r=(0,W.useId)(),i=(0,W.useId)(),u;t[0]===Symbol.for("react.memo_cache_sentinel")?(u=pe($),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=me(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=Ce(j,Ae),c;t[8]===e.width?c=t[9]:(c=[e.width],t[8]=e.width,t[9]=c),(0,W.useEffect)(Pe,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)(ie,{children:"Notebook Settings"}),(0,s.jsx)(ne,{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)(H,{title:"Display",children:[(0,s.jsx)(M,{control:l.control,name:"width",render:He}),(0,s.jsx)(M,{control:l.control,name:"app_title",render:Ee})]}),t[14]=l.control,t[15]=x);let h;t[16]===l.control?h=t[17]:(h=(0,s.jsxs)(H,{title:"Custom Files",children:[(0,s.jsx)(M,{control:l.control,name:"css_file",render:Ie}),(0,s.jsx)(M,{control:l.control,name:"html_head_file",render:Oe})]}),t[16]=l.control,t[17]=h);let y;t[18]===l.control?y=t[19]:(y=(0,s.jsx)(H,{title:"Data",children:(0,s.jsx)(M,{control:l.control,name:"sql_output",render:ze})}),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)(F,{className:"flex flex-col gap-2",children:[(0,s.jsx)(L,{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)(D,{id:r,"data-testid":"html-checkbox",checked:_.value.includes("html"),onCheckedChange:()=>{_.onChange(R(_.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)(D,{id:i,"data-testid":"ipynb-checkbox",checked:_.value.includes("ipynb"),onCheckedChange:()=>{_.onChange(R(_.value,"ipynb"))}}),(0,s.jsx)(S,{htmlFor:i,children:"IPYNB"})]})]})}),(0,s.jsx)(A,{})]}),(0,s.jsxs)(P,{children:["When enabled, marimo will periodically save this notebook in your selected formats (HTML, IPYNB) to a folder named"," ",(0,s.jsx)(O,{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)(H,{title:"Exporting outputs",children:(0,s.jsx)(M,{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)(xe,{...l,children:g}),t[34]=l,t[35]=g,t[36]=k):k=t[36],k};var H=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 Pe(){window.dispatchEvent(new Event("resize"))}function qe(t){return(0,s.jsx)("option",{value:t,children:t},t)}function He(t){let{field:e}=t;return(0,s.jsxs)(F,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"Width"}),(0,s.jsx)(L,{children:(0,s.jsx)(B,{"data-testid":"app-width-select",onChange:a=>e.onChange(a.target.value),value:e.value,disabled:e.disabled,className:"inline-flex mr-2",children:re().map(qe)})}),(0,s.jsx)(A,{})]})}function Ee(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(F,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"App title"}),(0,s.jsx)(L,{children:(0,s.jsx)(I,{...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)(A,{})]}),(0,s.jsx)(P,{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 Ie(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(F,{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)(L,{children:(0,s.jsx)(I,{...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)(A,{})]}),(0,s.jsx)(P,{children:"A filepath to a custom css file to be injected into the notebook."})]})}function Oe(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(F,{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)(L,{children:(0,s.jsx)(I,{...e,value:e.value??"",placeholder:"head.html",onChange:a=>{e.onChange(a.target.value)}})}),(0,s.jsx)(A,{})]}),(0,s.jsxs)(P,{children:["A filepath to an HTML file to be injected into the"," ",(0,s.jsx)(O,{className:"inline",children:"<head/>"})," section of the notebook. Use this to add analytics, custom fonts, meta tags, or external scripts."]})]})}function We(t){return(0,s.jsx)("option",{value:t.value,children:t.label},t.value)}function ze(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(F,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"SQL Output Type"}),(0,s.jsx)(L,{children:(0,s.jsx)(B,{"data-testid":"sql-output-select",onChange:a=>{e.onChange(a.target.value),fe({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:de.map(We)})}),(0,s.jsx)(A,{})]}),(0,s.jsxs)(P,{children:["The Python type returned by a SQL cell. For best performance with large datasets, we recommend using"," ",(0,s.jsx)(O,{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 De=E();const Qe=t=>{let e=(0,De.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(he),w=u?"disabled":"hint-green",j;e[0]===Symbol.for("react.memo_cache_sentinel")?(j=(0,s.jsx)(Y,{strokeWidth:1.8}),e[0]=j):j=e[0];let m;e[1]===b?m=e[2]:(m=(0,s.jsx)(K,{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)(ge,{className:"w-[90vw] h-[90vh] overflow-hidden sm:max-w-5xl top-[5vh] p-0",children:[(0,s.jsx)(be,{children:(0,s.jsx)(je,{children:"User settings"})}),(0,s.jsx)(ce,{})]}),e[7]=d):d=e[7];let x=d;if(!i){let T;e[8]===n?T=e[9]:(T=(0,s.jsx)(ve,{children:n}),e[8]=n,e[9]=T);let q;return e[10]!==o||e[11]!==l||e[12]!==T?(q=(0,s.jsxs)(V,{open:l,onOpenChange:o,children:[T,x]}),e[10]=o,e[11]=l,e[12]=T,e[13]=q):q=e[13],q}let h;e[14]===n?h=e[15]:(h=(0,s.jsx)(we,{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)(Fe,{}),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)(Y,{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)(ye,{className:"w-[650px] overflow-auto max-h-[80vh] max-w-[80vw]",align:"end",side:"bottom",onFocusOutside:Re,children:[y,N,(0,s.jsxs)(le,{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)(Ne,{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{Le as n,Se as r,Qe as t};
1
+ import{s as z}from"./chunk-LvLJmgfZ.js";import{l as X}from"./useEvent-DlWF5OMa.js";import{t as Z}from"./react-BGmjiNul.js";import{vt as D}from"./cells-BNQUQiDS.js";import{t as E}from"./compiler-runtime-DeeZ7FnK.js";import{C as Q,S as $,_ as ee}from"./utils-pfqq9IdB.js";import{j as te}from"./config-D6nhy4FA.js";import{t as se}from"./jsx-runtime-DN_bIXfG.js";import{t as le}from"./button-B8cGZzP5.js";import{l as R}from"./once-CTiSlR1m.js";import{r as U}from"./requests-C0HaHO6a.js";import{t as ae}from"./createLucideIcon-CW2xpJ57.js";import{h as oe,l as B}from"./select-D9lTzMzP.js";import{c as ne,f as re,l as ie,r as ce,s as de,t as he}from"./state-JzO-Ni5T.js";import{r as I}from"./input-B80Yt1uu.js";import{t as Y}from"./settings-MTlHVxz3.js";import{a as L,c as M,d as A,g as me,i as xe,l as F,o as P,p as pe,u as S}from"./textarea-Di1KKcL4.js";import{t as fe}from"./use-toast-Bzf3rpev.js";import{t as K}from"./tooltip-CvjcEpZC.js";import{o as ue}from"./alert-dialog-jcHA5geR.js";import{c as je,l as ve,n as ge,t as V}from"./dialog-CF5DtF1E.js";import{t as be}from"./VisuallyHidden-B9t3FhTP.js";import{i as we,r as ye,t as Ne}from"./popover-DtnzNVk-.js";import{n as Ce}from"./useDebounce-em3gna-v.js";import{n as ke}from"./ImperativeModal-DVhvP4lH.js";import{t as O}from"./kbd-Czc5z_04.js";import{t as _e}from"./links-DNmjkr65.js";import{t as G}from"./Inputs-DmoeP8nh.js";var Se=ae("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=E(),s=z(se(),1);const Le=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}=U(),w;e[0]===o?w=e[1]:(w=()=>{o(),setTimeout(Me,200)},e[0]=o,e[1]=w);let j=w;if(te())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)(ue,{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)(oe,{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)(K,{content:u,children:d}),e[12]=d,e[13]=u,e[14]=x):x=e[14],x};function Me(){window.close()}var J=E(),W=z(Z(),1),Ae=100;const Fe=()=>{let t=(0,J.c)(37),[e,a]=ee(),{saveAppConfig:f}=U(),r=(0,W.useId)(),i=(0,W.useId)(),u;t[0]===Symbol.for("react.memo_cache_sentinel")?(u=pe($),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=me(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=Ce(j,Ae),c;t[8]===e.width?c=t[9]:(c=[e.width],t[8]=e.width,t[9]=c),(0,W.useEffect)(Pe,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)(ie,{children:"Notebook Settings"}),(0,s.jsx)(ne,{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)(H,{title:"Display",children:[(0,s.jsx)(M,{control:l.control,name:"width",render:He}),(0,s.jsx)(M,{control:l.control,name:"app_title",render:Ee})]}),t[14]=l.control,t[15]=x);let h;t[16]===l.control?h=t[17]:(h=(0,s.jsxs)(H,{title:"Custom Files",children:[(0,s.jsx)(M,{control:l.control,name:"css_file",render:Ie}),(0,s.jsx)(M,{control:l.control,name:"html_head_file",render:Oe})]}),t[16]=l.control,t[17]=h);let y;t[18]===l.control?y=t[19]:(y=(0,s.jsx)(H,{title:"Data",children:(0,s.jsx)(M,{control:l.control,name:"sql_output",render:ze})}),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)(F,{className:"flex flex-col gap-2",children:[(0,s.jsx)(L,{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)(D,{id:r,"data-testid":"html-checkbox",checked:_.value.includes("html"),onCheckedChange:()=>{_.onChange(R(_.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)(D,{id:i,"data-testid":"ipynb-checkbox",checked:_.value.includes("ipynb"),onCheckedChange:()=>{_.onChange(R(_.value,"ipynb"))}}),(0,s.jsx)(S,{htmlFor:i,children:"IPYNB"})]})]})}),(0,s.jsx)(A,{})]}),(0,s.jsxs)(P,{children:["When enabled, marimo will periodically save this notebook in your selected formats (HTML, IPYNB) to a folder named"," ",(0,s.jsx)(O,{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)(H,{title:"Exporting outputs",children:(0,s.jsx)(M,{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)(xe,{...l,children:g}),t[34]=l,t[35]=g,t[36]=k):k=t[36],k};var H=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 Pe(){window.dispatchEvent(new Event("resize"))}function qe(t){return(0,s.jsx)("option",{value:t,children:t},t)}function He(t){let{field:e}=t;return(0,s.jsxs)(F,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"Width"}),(0,s.jsx)(L,{children:(0,s.jsx)(B,{"data-testid":"app-width-select",onChange:a=>e.onChange(a.target.value),value:e.value,disabled:e.disabled,className:"inline-flex mr-2",children:re().map(qe)})}),(0,s.jsx)(A,{})]})}function Ee(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(F,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"App title"}),(0,s.jsx)(L,{children:(0,s.jsx)(I,{...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)(A,{})]}),(0,s.jsx)(P,{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 Ie(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(F,{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)(L,{children:(0,s.jsx)(I,{...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)(A,{})]}),(0,s.jsx)(P,{children:"A filepath to a custom css file to be injected into the notebook."})]})}function Oe(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(F,{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)(L,{children:(0,s.jsx)(I,{...e,value:e.value??"",placeholder:"head.html",onChange:a=>{e.onChange(a.target.value)}})}),(0,s.jsx)(A,{})]}),(0,s.jsxs)(P,{children:["A filepath to an HTML file to be injected into the"," ",(0,s.jsx)(O,{className:"inline",children:"<head/>"})," section of the notebook. Use this to add analytics, custom fonts, meta tags, or external scripts."]})]})}function We(t){return(0,s.jsx)("option",{value:t.value,children:t.label},t.value)}function ze(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(F,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"SQL Output Type"}),(0,s.jsx)(L,{children:(0,s.jsx)(B,{"data-testid":"sql-output-select",onChange:a=>{e.onChange(a.target.value),fe({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:de.map(We)})}),(0,s.jsx)(A,{})]}),(0,s.jsxs)(P,{children:["The Python type returned by a SQL cell. For best performance with large datasets, we recommend using"," ",(0,s.jsx)(O,{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 De=E();const Qe=t=>{let e=(0,De.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(he),w=u?"disabled":"hint-green",j;e[0]===Symbol.for("react.memo_cache_sentinel")?(j=(0,s.jsx)(Y,{strokeWidth:1.8}),e[0]=j):j=e[0];let m;e[1]===b?m=e[2]:(m=(0,s.jsx)(K,{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)(ge,{className:"w-[90vw] h-[90vh] overflow-hidden sm:max-w-5xl top-[5vh] p-0",children:[(0,s.jsx)(be,{children:(0,s.jsx)(je,{children:"User settings"})}),(0,s.jsx)(ce,{})]}),e[7]=d):d=e[7];let x=d;if(!i){let T;e[8]===n?T=e[9]:(T=(0,s.jsx)(ve,{children:n}),e[8]=n,e[9]=T);let q;return e[10]!==o||e[11]!==l||e[12]!==T?(q=(0,s.jsxs)(V,{open:l,onOpenChange:o,children:[T,x]}),e[10]=o,e[11]=l,e[12]=T,e[13]=q):q=e[13],q}let h;e[14]===n?h=e[15]:(h=(0,s.jsx)(we,{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)(Fe,{}),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)(Y,{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)(ye,{className:"w-[650px] overflow-auto max-h-[80vh] max-w-[80vw]",align:"end",side:"bottom",onFocusOutside:Re,children:[y,N,(0,s.jsxs)(le,{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)(Ne,{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{Le as n,Se as r,Qe as t};
@@ -1,3 +1,3 @@
1
- import{s as et}from"./chunk-LvLJmgfZ.js";import{d as Pt,f as kt,l as zt,n as V,u as Ve}from"./useEvent-DlWF5OMa.js";import{t as Dt}from"./react-BGmjiNul.js";import{Un as Mt,un as Ft,w as Ht}from"./cells-BNQUQiDS.js";import"./react-dom-C9fstfnp.js";import{t as tt}from"./compiler-runtime-DeeZ7FnK.js";import{d as Pe}from"./hotkeys-uKX61F1_.js";import{n as rt,r as Ot}from"./utils-pfqq9IdB.js";import{o as Wt}from"./config-D6nhy4FA.js";import{r as ae}from"./useEventListener-COkmyg1v.js";import{t as Ut}from"./jsx-runtime-DN_bIXfG.js";import{t as B}from"./button-B8cGZzP5.js";import{t as se}from"./cn-C1rgT0yh.js";import"./dist-CAcX026F.js";import"./cjs-Bj40p_Np.js";import"./main-CwSdzVhm.js";import"./useNonce-EAuSVK-5.js";import{r as Yt}from"./requests-C0HaHO6a.js";import{E as Xt,O as Bt,c as Vt,d as qt,f as $t,g as Gt,k as Jt,l as lt,n as ot,p as Kt,s as nt,u as Qt,v as Zt,w as er,x as tr}from"./add-cell-with-ai-manh7kBT.js";import{i as at,n as rr,r as lr,t as or}from"./chat-components-CWiXtKu6.js";import{c as nr,o as ar,t as sr}from"./ai-model-dropdown-DzyBY5VA.js";import{a as ir,i as cr,n as dr,p as ur,r as mr,s as pr,t as hr}from"./select-D9lTzMzP.js";import"./markdown-renderer-BPnVa0ym.js";import{a as fr,n as st}from"./state-BTHUBVxX.js";import{n as xr}from"./spinner-C1czjtp7.js";import{t as vr}from"./plus-CHesBJpY.js";import{r as it,ut as gr}from"./input-B80Yt1uu.js";import{t as wr}from"./settings-MTlHVxz3.js";import{r as ct,t as br}from"./state-DWRZTH2y.js";import{t as yr}from"./square-leQTJTJJ.js";import"./dist-HGZzCB0y.js";import"./dist-CVj-_Iiz.js";import"./dist-BVf1IY4_.js";import"./dist-Cq_4nPfh.js";import"./dist-RKnr9SNh.js";import{t as jr}from"./use-toast-Bzf3rpev.js";import{C as Sr,E as Cr,_ as he,g as q,w as $,x as ke}from"./Combination-D1TsGrBC.js";import{i as dt,t as ie}from"./tooltip-CvjcEpZC.js";import{u as Nr}from"./menu-items-9PZrU2e0.js";import{i as Rr}from"./dates-CdsE1R40.js";import{t as Ar}from"./context-DHfVoQfl.js";import{i as _r,r as Tr,t as Er}from"./popover-DtnzNVk-.js";import{n as Lr}from"./error-banner-DvT0IGDZ.js";import{t as Ir}from"./copy-icon-jWsqdLn1.js";import"./chunk-OGVTOU66-CjNLT2C3.js";import"./katex-AwOI3EvM.js";import"./marked.esm-CHnOtnr3.js";import"./es-BoHEdemq.js";import{t as Pr}from"./chat-display-CGnOamQG.js";import"./esm-B3JckBtM.js";import{t as qe}from"./empty-state-B0XJ9ZUi.js";var ut=tt(),m=et(Dt(),1);const kr=({chatState:e,chatId:t,messages:r})=>{if(!t)return Pe.warn("No active chat"),e;let a=e.chats.get(t);if(!a)return Pe.warn("No active chat"),e;let o=new Map(e.chats),n=Date.now();return o.set(a.id,{...a,messages:r,updatedAt:n}),{...e,chats:o}};var l=et(Ut(),1);function zr(e,t){return m.useReducer((r,a)=>t[r][a]??r,e)}var $e="ScrollArea",[mt,xo]=Cr($e),[Dr,F]=mt($e),pt=m.forwardRef((e,t)=>{let{__scopeScrollArea:r,type:a="hover",dir:o,scrollHideDelay:n=600,...s}=e,[c,i]=m.useState(null),[d,u]=m.useState(null),[p,h]=m.useState(null),[f,g]=m.useState(null),[y,L]=m.useState(null),[b,C]=m.useState(0),[j,S]=m.useState(0),[R,N]=m.useState(!1),[I,P]=m.useState(!1),w=ae(t,z=>i(z)),T=Nr(o);return(0,l.jsx)(Dr,{scope:r,type:a,dir:T,scrollHideDelay:n,scrollArea:c,viewport:d,onViewportChange:u,content:p,onContentChange:h,scrollbarX:f,onScrollbarXChange:g,scrollbarXEnabled:R,onScrollbarXEnabledChange:N,scrollbarY:y,onScrollbarYChange:L,scrollbarYEnabled:I,onScrollbarYEnabledChange:P,onCornerWidthChange:C,onCornerHeightChange:S,children:(0,l.jsx)(he.div,{dir:T,...s,ref:w,style:{position:"relative","--radix-scroll-area-corner-width":b+"px","--radix-scroll-area-corner-height":j+"px",...e.style}})})});pt.displayName=$e;var ht="ScrollAreaViewport",ft=m.forwardRef((e,t)=>{let{__scopeScrollArea:r,children:a,nonce:o,...n}=e,s=F(ht,r),c=ae(t,m.useRef(null),s.onViewportChange);return(0,l.jsxs)(l.Fragment,{children:[(0,l.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:o}),(0,l.jsx)(he.div,{"data-radix-scroll-area-viewport":"",...n,ref:c,style:{overflowX:s.scrollbarXEnabled?"scroll":"hidden",overflowY:s.scrollbarYEnabled?"scroll":"hidden",...e.style},children:(0,l.jsx)("div",{ref:s.onContentChange,style:{minWidth:"100%",display:"table"},children:a})})]})});ft.displayName=ht;var U="ScrollAreaScrollbar",Ge=m.forwardRef((e,t)=>{let{forceMount:r,...a}=e,o=F(U,e.__scopeScrollArea),{onScrollbarXEnabledChange:n,onScrollbarYEnabledChange:s}=o,c=e.orientation==="horizontal";return m.useEffect(()=>(c?n(!0):s(!0),()=>{c?n(!1):s(!1)}),[c,n,s]),o.type==="hover"?(0,l.jsx)(Mr,{...a,ref:t,forceMount:r}):o.type==="scroll"?(0,l.jsx)(Fr,{...a,ref:t,forceMount:r}):o.type==="auto"?(0,l.jsx)(xt,{...a,ref:t,forceMount:r}):o.type==="always"?(0,l.jsx)(Je,{...a,ref:t}):null});Ge.displayName=U;var Mr=m.forwardRef((e,t)=>{let{forceMount:r,...a}=e,o=F(U,e.__scopeScrollArea),[n,s]=m.useState(!1);return m.useEffect(()=>{let c=o.scrollArea,i=0;if(c){let d=()=>{window.clearTimeout(i),s(!0)},u=()=>{i=window.setTimeout(()=>s(!1),o.scrollHideDelay)};return c.addEventListener("pointerenter",d),c.addEventListener("pointerleave",u),()=>{window.clearTimeout(i),c.removeEventListener("pointerenter",d),c.removeEventListener("pointerleave",u)}}},[o.scrollArea,o.scrollHideDelay]),(0,l.jsx)(ke,{present:r||n,children:(0,l.jsx)(xt,{"data-state":n?"visible":"hidden",...a,ref:t})})}),Fr=m.forwardRef((e,t)=>{let{forceMount:r,...a}=e,o=F(U,e.__scopeScrollArea),n=e.orientation==="horizontal",s=Fe(()=>i("SCROLL_END"),100),[c,i]=zr("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 m.useEffect(()=>{if(c==="idle"){let d=window.setTimeout(()=>i("HIDE"),o.scrollHideDelay);return()=>window.clearTimeout(d)}},[c,o.scrollHideDelay,i]),m.useEffect(()=>{let d=o.viewport,u=n?"scrollLeft":"scrollTop";if(d){let p=d[u],h=()=>{let f=d[u];p!==f&&(i("SCROLL"),s()),p=f};return d.addEventListener("scroll",h),()=>d.removeEventListener("scroll",h)}},[o.viewport,n,i,s]),(0,l.jsx)(ke,{present:r||c!=="hidden",children:(0,l.jsx)(Je,{"data-state":c==="hidden"?"hidden":"visible",...a,ref:t,onPointerEnter:$(e.onPointerEnter,()=>i("POINTER_ENTER")),onPointerLeave:$(e.onPointerLeave,()=>i("POINTER_LEAVE"))})})}),xt=m.forwardRef((e,t)=>{let r=F(U,e.__scopeScrollArea),{forceMount:a,...o}=e,[n,s]=m.useState(!1),c=e.orientation==="horizontal",i=Fe(()=>{if(r.viewport){let d=r.viewport.offsetWidth<r.viewport.scrollWidth,u=r.viewport.offsetHeight<r.viewport.scrollHeight;s(c?d:u)}},10);return ce(r.viewport,i),ce(r.content,i),(0,l.jsx)(ke,{present:a||n,children:(0,l.jsx)(Je,{"data-state":n?"visible":"hidden",...o,ref:t})})}),Je=m.forwardRef((e,t)=>{let{orientation:r="vertical",...a}=e,o=F(U,e.__scopeScrollArea),n=m.useRef(null),s=m.useRef(0),[c,i]=m.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),d=yt(c.viewport,c.content),u={...a,sizes:c,onSizesChange:i,hasThumb:d>0&&d<1,onThumbChange:h=>n.current=h,onThumbPointerUp:()=>s.current=0,onThumbPointerDown:h=>s.current=h};function p(h,f){return Xr(h,s.current,c,f)}return r==="horizontal"?(0,l.jsx)(Hr,{...u,ref:t,onThumbPositionChange:()=>{if(o.viewport&&n.current){let h=o.viewport.scrollLeft,f=jt(h,c,o.dir);n.current.style.transform=`translate3d(${f}px, 0, 0)`}},onWheelScroll:h=>{o.viewport&&(o.viewport.scrollLeft=h)},onDragScroll:h=>{o.viewport&&(o.viewport.scrollLeft=p(h,o.dir))}}):r==="vertical"?(0,l.jsx)(Or,{...u,ref:t,onThumbPositionChange:()=>{if(o.viewport&&n.current){let h=o.viewport.scrollTop,f=jt(h,c);n.current.style.transform=`translate3d(0, ${f}px, 0)`}},onWheelScroll:h=>{o.viewport&&(o.viewport.scrollTop=h)},onDragScroll:h=>{o.viewport&&(o.viewport.scrollTop=p(h))}}):null}),Hr=m.forwardRef((e,t)=>{let{sizes:r,onSizesChange:a,...o}=e,n=F(U,e.__scopeScrollArea),[s,c]=m.useState(),i=m.useRef(null),d=ae(t,i,n.onScrollbarXChange);return m.useEffect(()=>{i.current&&c(getComputedStyle(i.current))},[i]),(0,l.jsx)(gt,{"data-orientation":"horizontal",...o,ref:d,sizes:r,style:{bottom:0,left:n.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:n.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Me(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.x),onDragScroll:u=>e.onDragScroll(u.x),onWheelScroll:(u,p)=>{if(n.viewport){let h=n.viewport.scrollLeft+u.deltaX;e.onWheelScroll(h),Ct(h,p)&&u.preventDefault()}},onResize:()=>{i.current&&n.viewport&&s&&a({content:n.viewport.scrollWidth,viewport:n.viewport.offsetWidth,scrollbar:{size:i.current.clientWidth,paddingStart:De(s.paddingLeft),paddingEnd:De(s.paddingRight)}})}})}),Or=m.forwardRef((e,t)=>{let{sizes:r,onSizesChange:a,...o}=e,n=F(U,e.__scopeScrollArea),[s,c]=m.useState(),i=m.useRef(null),d=ae(t,i,n.onScrollbarYChange);return m.useEffect(()=>{i.current&&c(getComputedStyle(i.current))},[i]),(0,l.jsx)(gt,{"data-orientation":"vertical",...o,ref:d,sizes:r,style:{top:0,right:n.dir==="ltr"?0:void 0,left:n.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Me(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.y),onDragScroll:u=>e.onDragScroll(u.y),onWheelScroll:(u,p)=>{if(n.viewport){let h=n.viewport.scrollTop+u.deltaY;e.onWheelScroll(h),Ct(h,p)&&u.preventDefault()}},onResize:()=>{i.current&&n.viewport&&s&&a({content:n.viewport.scrollHeight,viewport:n.viewport.offsetHeight,scrollbar:{size:i.current.clientHeight,paddingStart:De(s.paddingTop),paddingEnd:De(s.paddingBottom)}})}})}),[Wr,vt]=mt(U),gt=m.forwardRef((e,t)=>{let{__scopeScrollArea:r,sizes:a,hasThumb:o,onThumbChange:n,onThumbPointerUp:s,onThumbPointerDown:c,onThumbPositionChange:i,onDragScroll:d,onWheelScroll:u,onResize:p,...h}=e,f=F(U,r),[g,y]=m.useState(null),L=ae(t,w=>y(w)),b=m.useRef(null),C=m.useRef(""),j=f.viewport,S=a.content-a.viewport,R=q(u),N=q(i),I=Fe(p,10);function P(w){b.current&&d({x:w.clientX-b.current.left,y:w.clientY-b.current.top})}return m.useEffect(()=>{let w=T=>{let z=T.target;g!=null&&g.contains(z)&&R(T,S)};return document.addEventListener("wheel",w,{passive:!1}),()=>document.removeEventListener("wheel",w,{passive:!1})},[j,g,S,R]),m.useEffect(N,[a,N]),ce(g,I),ce(f.content,I),(0,l.jsx)(Wr,{scope:r,scrollbar:g,hasThumb:o,onThumbChange:q(n),onThumbPointerUp:q(s),onThumbPositionChange:N,onThumbPointerDown:q(c),children:(0,l.jsx)(he.div,{...h,ref:L,style:{position:"absolute",...h.style},onPointerDown:$(e.onPointerDown,w=>{w.button===0&&(w.target.setPointerCapture(w.pointerId),b.current=g.getBoundingClientRect(),C.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",f.viewport&&(f.viewport.style.scrollBehavior="auto"),P(w))}),onPointerMove:$(e.onPointerMove,P),onPointerUp:$(e.onPointerUp,w=>{let T=w.target;T.hasPointerCapture(w.pointerId)&&T.releasePointerCapture(w.pointerId),document.body.style.webkitUserSelect=C.current,f.viewport&&(f.viewport.style.scrollBehavior=""),b.current=null})})})}),ze="ScrollAreaThumb",wt=m.forwardRef((e,t)=>{let{forceMount:r,...a}=e,o=vt(ze,e.__scopeScrollArea);return(0,l.jsx)(ke,{present:r||o.hasThumb,children:(0,l.jsx)(Ur,{ref:t,...a})})}),Ur=m.forwardRef((e,t)=>{let{__scopeScrollArea:r,style:a,...o}=e,n=F(ze,r),s=vt(ze,r),{onThumbPositionChange:c}=s,i=ae(t,p=>s.onThumbChange(p)),d=m.useRef(void 0),u=Fe(()=>{d.current&&(d.current=(d.current(),void 0))},100);return m.useEffect(()=>{let p=n.viewport;if(p){let h=()=>{u(),d.current||(d.current=Br(p,c),c())};return c(),p.addEventListener("scroll",h),()=>p.removeEventListener("scroll",h)}},[n.viewport,u,c]),(0,l.jsx)(he.div,{"data-state":s.hasThumb?"visible":"hidden",...o,ref:i,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...a},onPointerDownCapture:$(e.onPointerDownCapture,p=>{let h=p.target.getBoundingClientRect(),f=p.clientX-h.left,g=p.clientY-h.top;s.onThumbPointerDown({x:f,y:g})}),onPointerUp:$(e.onPointerUp,s.onThumbPointerUp)})});wt.displayName=ze;var Ke="ScrollAreaCorner",bt=m.forwardRef((e,t)=>{let r=F(Ke,e.__scopeScrollArea),a=!!(r.scrollbarX&&r.scrollbarY);return r.type!=="scroll"&&a?(0,l.jsx)(Yr,{...e,ref:t}):null});bt.displayName=Ke;var Yr=m.forwardRef((e,t)=>{let{__scopeScrollArea:r,...a}=e,o=F(Ke,r),[n,s]=m.useState(0),[c,i]=m.useState(0),d=!!(n&&c);return ce(o.scrollbarX,()=>{var p;let u=((p=o.scrollbarX)==null?void 0:p.offsetHeight)||0;o.onCornerHeightChange(u),i(u)}),ce(o.scrollbarY,()=>{var p;let u=((p=o.scrollbarY)==null?void 0:p.offsetWidth)||0;o.onCornerWidthChange(u),s(u)}),d?(0,l.jsx)(he.div,{...a,ref:t,style:{width:n,height:c,position:"absolute",right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function De(e){return e?parseInt(e,10):0}function yt(e,t){let r=e/t;return isNaN(r)?0:r}function Me(e){let t=yt(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,a=(e.scrollbar.size-r)*t;return Math.max(a,18)}function Xr(e,t,r,a="ltr"){let o=Me(r),n=o/2,s=t||n,c=o-s,i=r.scrollbar.paddingStart+s,d=r.scrollbar.size-r.scrollbar.paddingEnd-c,u=r.content-r.viewport,p=a==="ltr"?[0,u]:[u*-1,0];return St([i,d],p)(e)}function jt(e,t,r="ltr"){let a=Me(t),o=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,n=t.scrollbar.size-o,s=t.content-t.viewport,c=n-a,i=ur(e,r==="ltr"?[0,s]:[s*-1,0]);return St([0,s],[0,c])(i)}function St(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let a=(t[1]-t[0])/(e[1]-e[0]);return t[0]+a*(r-e[0])}}function Ct(e,t){return e>0&&e<t}var Br=(e,t=()=>{})=>{let r={left:e.scrollLeft,top:e.scrollTop},a=0;return(function o(){let n={left:e.scrollLeft,top:e.scrollTop},s=r.left!==n.left,c=r.top!==n.top;(s||c)&&t(),r=n,a=window.requestAnimationFrame(o)})(),()=>window.cancelAnimationFrame(a)};function Fe(e,t){let r=q(e),a=m.useRef(0);return m.useEffect(()=>()=>window.clearTimeout(a.current),[]),m.useCallback(()=>{window.clearTimeout(a.current),a.current=window.setTimeout(r,t)},[r,t])}function ce(e,t){let r=q(t);Sr(()=>{let a=0;if(e){let o=new ResizeObserver(()=>{cancelAnimationFrame(a),a=window.requestAnimationFrame(r)});return o.observe(e),()=>{window.cancelAnimationFrame(a),o.unobserve(e)}}},[e,r])}var Nt=pt,Vr=ft,qr=bt,Rt=m.forwardRef((e,t)=>{let r=(0,ut.c)(15),a,o,n;r[0]===e?(a=r[1],o=r[2],n=r[3]):({className:o,children:a,...n}=e,r[0]=e,r[1]=a,r[2]=o,r[3]=n);let s;r[4]===o?s=r[5]:(s=se("relative overflow-hidden",o),r[4]=o,r[5]=s);let c;r[6]===a?c=r[7]:(c=(0,l.jsx)(Vr,{className:"h-full w-full rounded-[inherit]",children:a}),r[6]=a,r[7]=c);let i,d;r[8]===Symbol.for("react.memo_cache_sentinel")?(i=(0,l.jsx)(At,{}),d=(0,l.jsx)(qr,{}),r[8]=i,r[9]=d):(i=r[8],d=r[9]);let u;return r[10]!==n||r[11]!==t||r[12]!==s||r[13]!==c?(u=(0,l.jsxs)(Nt,{ref:t,className:s,...n,children:[c,i,d]}),r[10]=n,r[11]=t,r[12]=s,r[13]=c,r[14]=u):u=r[14],u});Rt.displayName=Nt.displayName;var At=m.forwardRef((e,t)=>{let r=(0,ut.c)(14),a,o,n;r[0]===e?(a=r[1],o=r[2],n=r[3]):({className:a,orientation:n,...o}=e,r[0]=e,r[1]=a,r[2]=o,r[3]=n);let s=n===void 0?"vertical":n,c=s==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-px",i=s==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-px",d;r[4]!==a||r[5]!==c||r[6]!==i?(d=se("flex touch-none select-none transition-colors",c,i,a),r[4]=a,r[5]=c,r[6]=i,r[7]=d):d=r[7];let u;r[8]===Symbol.for("react.memo_cache_sentinel")?(u=(0,l.jsx)(wt,{className:"relative flex-1 rounded-full bg-border"}),r[8]=u):u=r[8];let p;return r[9]!==s||r[10]!==o||r[11]!==t||r[12]!==d?(p=(0,l.jsx)(Ge,{ref:t,orientation:s,className:d,...o,children:u}),r[9]=s,r[10]=o,r[11]=t,r[12]=d,r[13]=p):p=r[13],p});At.displayName=Ge.displayName;var $r=[{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 Gr=e=>{let t=Date.now(),r=$r.map(n=>({...n,chats:[]})),a={label:"Older",days:1/0,chats:[]},o=n=>{switch(n){case 0:return r[0];case 1:return r[1];case 2:return r[2];case 3:return r[3];default:return n>=4&&n<=7?r[4]:n>=8&&n<=30?r[5]:a}};for(let n of e)o(Math.floor((t-n.updatedAt)/864e5)).chats.push(n);return[...r,a].filter(n=>n.chats.length>0)},Jr=({activeChatId:e,setActiveChat:t})=>{let r=Ve(ct),{locale:a}=Ar(),[o,n]=(0,m.useState)(""),s=(0,m.useMemo)(()=>[...r.chats.values()].sort((d,u)=>u.updatedAt-d.updatedAt),[r.chats]),c=(0,m.useMemo)(()=>o.trim()?s.filter(d=>d.title.toLowerCase().includes(o.toLowerCase())):s,[s,o]),i=(0,m.useMemo)(()=>Gr(c),[c]);return(0,l.jsxs)(Er,{children:[(0,l.jsx)(ie,{content:"Previous chats",children:(0,l.jsx)(_r,{asChild:!0,children:(0,l.jsx)(B,{variant:"text",size:"icon",children:(0,l.jsx)(Mt,{className:"h-4 w-4"})})})}),(0,l.jsxs)(Tr,{className:"w-[480px] p-0",align:"start",side:"right",children:[(0,l.jsx)("div",{className:"pt-3 px-3 w-full",children:(0,l.jsx)(it,{placeholder:"Search chat history...",value:o,onChange:d=>n(d.target.value),className:"text-xs"})}),(0,l.jsx)(Rt,{className:"h-[450px] p-2",children:(0,l.jsxs)("div",{className:"space-y-3",children:[s.length===0&&(0,l.jsx)(qe,{title:"No chats yet",description:"Start a new chat to get started",icon:(0,l.jsx)(at,{})}),c.length===0&&o&&s.length>0&&(0,l.jsx)(qe,{title:"No chats found",description:`No chats match "${o}"`,icon:(0,l.jsx)(gr,{})}),i.map((d,u)=>(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsx)("div",{className:"text-xs px-1 text-muted-foreground/60",children:d.label}),(0,l.jsx)("div",{children:d.chats.map(p=>(0,l.jsxs)("button",{className:se("w-full p-1 rounded-md cursor-pointer text-left flex items-center justify-between",p.id===e&&"bg-accent",p.id!==e&&"hover:bg-muted/20"),onClick:()=>{t(p.id)},type:"button",children:[(0,l.jsx)("div",{className:"flex-1 min-w-0",children:(0,l.jsx)("div",{className:"text-sm truncate",children:p.title})}),(0,l.jsx)("div",{className:"text-xs text-muted-foreground/60 ml-2 flex-shrink-0",children:Rr(p.updatedAt,a)})]},p.id))}),u!==i.length-1&&(0,l.jsx)("hr",{})]},d.label))]})})]})]})};var de=tt(),_t="manual",Kr=new Set(["openai","google","anthropic"]),Qr=["image/*","text/*"],Zr=1024*1024*50,el=e=>{let t=(0,de.c)(18),{onNewChat:r,activeChatId:a,setActiveChat:o}=e,{handleClick:n}=st(),s;t[0]===Symbol.for("react.memo_cache_sentinel")?(s=(0,l.jsx)(vr,{className:"h-4 w-4"}),t[0]=s):s=t[0];let c;t[1]===r?c=t[2]:(c=(0,l.jsx)(ie,{content:"New chat",children:(0,l.jsx)(B,{variant:"text",size:"icon",onClick:r,children:s})}),t[1]=r,t[2]=c);let i;t[3]===Symbol.for("react.memo_cache_sentinel")?(i=(0,l.jsx)(fr,{}),t[3]=i):i=t[3];let d;t[4]===n?d=t[5]:(d=()=>n("ai"),t[4]=n,t[5]=d);let u;t[6]===Symbol.for("react.memo_cache_sentinel")?(u=(0,l.jsx)(wr,{className:"h-4 w-4"}),t[6]=u):u=t[6];let p;t[7]===d?p=t[8]:(p=(0,l.jsx)(ie,{content:"AI Settings",children:(0,l.jsx)(B,{variant:"text",size:"xs",className:"hover:bg-foreground/10 py-2",onClick:d,children:u})}),t[7]=d,t[8]=p);let h;t[9]!==a||t[10]!==o?(h=(0,l.jsx)(Jr,{activeChatId:a,setActiveChat:o}),t[9]=a,t[10]=o,t[11]=h):h=t[11];let f;t[12]!==p||t[13]!==h?(f=(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[i,p,h]}),t[12]=p,t[13]=h,t[14]=f):f=t[14];let g;return t[15]!==c||t[16]!==f?(g=(0,l.jsxs)("div",{className:"flex border-b px-2 py-1 justify-between shrink-0 items-center",children:[c,f]}),t[15]=c,t[16]=f,t[17]=g):g=t[17],g},Tt=(0,m.memo)(e=>{let t=(0,de.c)(15),{message:r,index:a,onEdit:o,isStreamingReasoning:n,isLast:s}=e,c;t[0]!==a||t[1]!==o?(c=y=>{var C,j,S;let L=(j=(C=y.parts)==null?void 0:C.filter(ol))==null?void 0:j.map(nl).join(`
1
+ import{s as et}from"./chunk-LvLJmgfZ.js";import{d as Pt,f as kt,l as zt,n as V,u as Ve}from"./useEvent-DlWF5OMa.js";import{t as Dt}from"./react-BGmjiNul.js";import{Un as Mt,un as Ft,w as Ht}from"./cells-BNQUQiDS.js";import"./react-dom-C9fstfnp.js";import{t as tt}from"./compiler-runtime-DeeZ7FnK.js";import{d as Pe}from"./hotkeys-uKX61F1_.js";import{n as rt,r as Ot}from"./utils-pfqq9IdB.js";import{o as Wt}from"./config-D6nhy4FA.js";import{r as ae}from"./useEventListener-COkmyg1v.js";import{t as Ut}from"./jsx-runtime-DN_bIXfG.js";import{t as B}from"./button-B8cGZzP5.js";import{t as se}from"./cn-C1rgT0yh.js";import"./dist-CAcX026F.js";import"./cjs-Bj40p_Np.js";import"./main-CwSdzVhm.js";import"./useNonce-EAuSVK-5.js";import{r as Yt}from"./requests-C0HaHO6a.js";import{E as Xt,O as Bt,c as Vt,d as qt,f as $t,g as Gt,k as Jt,l as lt,n as ot,p as Kt,s as nt,u as Qt,v as Zt,w as er,x as tr}from"./add-cell-with-ai-manh7kBT.js";import{i as at,n as rr,r as lr,t as or}from"./chat-components-CWiXtKu6.js";import{c as nr,o as ar,t as sr}from"./ai-model-dropdown-DzyBY5VA.js";import{a as ir,i as cr,n as dr,p as ur,r as mr,s as pr,t as hr}from"./select-D9lTzMzP.js";import"./markdown-renderer-BPnVa0ym.js";import{a as fr,n as st}from"./state-JzO-Ni5T.js";import{n as xr}from"./spinner-C1czjtp7.js";import{t as vr}from"./plus-CHesBJpY.js";import{r as it,ut as gr}from"./input-B80Yt1uu.js";import{t as wr}from"./settings-MTlHVxz3.js";import{r as ct,t as br}from"./state-DWRZTH2y.js";import{t as yr}from"./square-leQTJTJJ.js";import"./dist-HGZzCB0y.js";import"./dist-CVj-_Iiz.js";import"./dist-BVf1IY4_.js";import"./dist-Cq_4nPfh.js";import"./dist-RKnr9SNh.js";import{t as jr}from"./use-toast-Bzf3rpev.js";import{C as Sr,E as Cr,_ as he,g as q,w as $,x as ke}from"./Combination-D1TsGrBC.js";import{i as dt,t as ie}from"./tooltip-CvjcEpZC.js";import{u as Nr}from"./menu-items-9PZrU2e0.js";import{i as Rr}from"./dates-CdsE1R40.js";import{t as Ar}from"./context-DHfVoQfl.js";import{i as _r,r as Tr,t as Er}from"./popover-DtnzNVk-.js";import{n as Lr}from"./error-banner-DvT0IGDZ.js";import{t as Ir}from"./copy-icon-jWsqdLn1.js";import"./chunk-OGVTOU66-CjNLT2C3.js";import"./katex-AwOI3EvM.js";import"./marked.esm-CHnOtnr3.js";import"./es-BoHEdemq.js";import{t as Pr}from"./chat-display-CGnOamQG.js";import"./esm-B3JckBtM.js";import{t as qe}from"./empty-state-B0XJ9ZUi.js";var ut=tt(),m=et(Dt(),1);const kr=({chatState:e,chatId:t,messages:r})=>{if(!t)return Pe.warn("No active chat"),e;let a=e.chats.get(t);if(!a)return Pe.warn("No active chat"),e;let o=new Map(e.chats),n=Date.now();return o.set(a.id,{...a,messages:r,updatedAt:n}),{...e,chats:o}};var l=et(Ut(),1);function zr(e,t){return m.useReducer((r,a)=>t[r][a]??r,e)}var $e="ScrollArea",[mt,xo]=Cr($e),[Dr,F]=mt($e),pt=m.forwardRef((e,t)=>{let{__scopeScrollArea:r,type:a="hover",dir:o,scrollHideDelay:n=600,...s}=e,[c,i]=m.useState(null),[d,u]=m.useState(null),[p,h]=m.useState(null),[f,g]=m.useState(null),[y,L]=m.useState(null),[b,C]=m.useState(0),[j,S]=m.useState(0),[R,N]=m.useState(!1),[I,P]=m.useState(!1),w=ae(t,z=>i(z)),T=Nr(o);return(0,l.jsx)(Dr,{scope:r,type:a,dir:T,scrollHideDelay:n,scrollArea:c,viewport:d,onViewportChange:u,content:p,onContentChange:h,scrollbarX:f,onScrollbarXChange:g,scrollbarXEnabled:R,onScrollbarXEnabledChange:N,scrollbarY:y,onScrollbarYChange:L,scrollbarYEnabled:I,onScrollbarYEnabledChange:P,onCornerWidthChange:C,onCornerHeightChange:S,children:(0,l.jsx)(he.div,{dir:T,...s,ref:w,style:{position:"relative","--radix-scroll-area-corner-width":b+"px","--radix-scroll-area-corner-height":j+"px",...e.style}})})});pt.displayName=$e;var ht="ScrollAreaViewport",ft=m.forwardRef((e,t)=>{let{__scopeScrollArea:r,children:a,nonce:o,...n}=e,s=F(ht,r),c=ae(t,m.useRef(null),s.onViewportChange);return(0,l.jsxs)(l.Fragment,{children:[(0,l.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:o}),(0,l.jsx)(he.div,{"data-radix-scroll-area-viewport":"",...n,ref:c,style:{overflowX:s.scrollbarXEnabled?"scroll":"hidden",overflowY:s.scrollbarYEnabled?"scroll":"hidden",...e.style},children:(0,l.jsx)("div",{ref:s.onContentChange,style:{minWidth:"100%",display:"table"},children:a})})]})});ft.displayName=ht;var U="ScrollAreaScrollbar",Ge=m.forwardRef((e,t)=>{let{forceMount:r,...a}=e,o=F(U,e.__scopeScrollArea),{onScrollbarXEnabledChange:n,onScrollbarYEnabledChange:s}=o,c=e.orientation==="horizontal";return m.useEffect(()=>(c?n(!0):s(!0),()=>{c?n(!1):s(!1)}),[c,n,s]),o.type==="hover"?(0,l.jsx)(Mr,{...a,ref:t,forceMount:r}):o.type==="scroll"?(0,l.jsx)(Fr,{...a,ref:t,forceMount:r}):o.type==="auto"?(0,l.jsx)(xt,{...a,ref:t,forceMount:r}):o.type==="always"?(0,l.jsx)(Je,{...a,ref:t}):null});Ge.displayName=U;var Mr=m.forwardRef((e,t)=>{let{forceMount:r,...a}=e,o=F(U,e.__scopeScrollArea),[n,s]=m.useState(!1);return m.useEffect(()=>{let c=o.scrollArea,i=0;if(c){let d=()=>{window.clearTimeout(i),s(!0)},u=()=>{i=window.setTimeout(()=>s(!1),o.scrollHideDelay)};return c.addEventListener("pointerenter",d),c.addEventListener("pointerleave",u),()=>{window.clearTimeout(i),c.removeEventListener("pointerenter",d),c.removeEventListener("pointerleave",u)}}},[o.scrollArea,o.scrollHideDelay]),(0,l.jsx)(ke,{present:r||n,children:(0,l.jsx)(xt,{"data-state":n?"visible":"hidden",...a,ref:t})})}),Fr=m.forwardRef((e,t)=>{let{forceMount:r,...a}=e,o=F(U,e.__scopeScrollArea),n=e.orientation==="horizontal",s=Fe(()=>i("SCROLL_END"),100),[c,i]=zr("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 m.useEffect(()=>{if(c==="idle"){let d=window.setTimeout(()=>i("HIDE"),o.scrollHideDelay);return()=>window.clearTimeout(d)}},[c,o.scrollHideDelay,i]),m.useEffect(()=>{let d=o.viewport,u=n?"scrollLeft":"scrollTop";if(d){let p=d[u],h=()=>{let f=d[u];p!==f&&(i("SCROLL"),s()),p=f};return d.addEventListener("scroll",h),()=>d.removeEventListener("scroll",h)}},[o.viewport,n,i,s]),(0,l.jsx)(ke,{present:r||c!=="hidden",children:(0,l.jsx)(Je,{"data-state":c==="hidden"?"hidden":"visible",...a,ref:t,onPointerEnter:$(e.onPointerEnter,()=>i("POINTER_ENTER")),onPointerLeave:$(e.onPointerLeave,()=>i("POINTER_LEAVE"))})})}),xt=m.forwardRef((e,t)=>{let r=F(U,e.__scopeScrollArea),{forceMount:a,...o}=e,[n,s]=m.useState(!1),c=e.orientation==="horizontal",i=Fe(()=>{if(r.viewport){let d=r.viewport.offsetWidth<r.viewport.scrollWidth,u=r.viewport.offsetHeight<r.viewport.scrollHeight;s(c?d:u)}},10);return ce(r.viewport,i),ce(r.content,i),(0,l.jsx)(ke,{present:a||n,children:(0,l.jsx)(Je,{"data-state":n?"visible":"hidden",...o,ref:t})})}),Je=m.forwardRef((e,t)=>{let{orientation:r="vertical",...a}=e,o=F(U,e.__scopeScrollArea),n=m.useRef(null),s=m.useRef(0),[c,i]=m.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),d=yt(c.viewport,c.content),u={...a,sizes:c,onSizesChange:i,hasThumb:d>0&&d<1,onThumbChange:h=>n.current=h,onThumbPointerUp:()=>s.current=0,onThumbPointerDown:h=>s.current=h};function p(h,f){return Xr(h,s.current,c,f)}return r==="horizontal"?(0,l.jsx)(Hr,{...u,ref:t,onThumbPositionChange:()=>{if(o.viewport&&n.current){let h=o.viewport.scrollLeft,f=jt(h,c,o.dir);n.current.style.transform=`translate3d(${f}px, 0, 0)`}},onWheelScroll:h=>{o.viewport&&(o.viewport.scrollLeft=h)},onDragScroll:h=>{o.viewport&&(o.viewport.scrollLeft=p(h,o.dir))}}):r==="vertical"?(0,l.jsx)(Or,{...u,ref:t,onThumbPositionChange:()=>{if(o.viewport&&n.current){let h=o.viewport.scrollTop,f=jt(h,c);n.current.style.transform=`translate3d(0, ${f}px, 0)`}},onWheelScroll:h=>{o.viewport&&(o.viewport.scrollTop=h)},onDragScroll:h=>{o.viewport&&(o.viewport.scrollTop=p(h))}}):null}),Hr=m.forwardRef((e,t)=>{let{sizes:r,onSizesChange:a,...o}=e,n=F(U,e.__scopeScrollArea),[s,c]=m.useState(),i=m.useRef(null),d=ae(t,i,n.onScrollbarXChange);return m.useEffect(()=>{i.current&&c(getComputedStyle(i.current))},[i]),(0,l.jsx)(gt,{"data-orientation":"horizontal",...o,ref:d,sizes:r,style:{bottom:0,left:n.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:n.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Me(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.x),onDragScroll:u=>e.onDragScroll(u.x),onWheelScroll:(u,p)=>{if(n.viewport){let h=n.viewport.scrollLeft+u.deltaX;e.onWheelScroll(h),Ct(h,p)&&u.preventDefault()}},onResize:()=>{i.current&&n.viewport&&s&&a({content:n.viewport.scrollWidth,viewport:n.viewport.offsetWidth,scrollbar:{size:i.current.clientWidth,paddingStart:De(s.paddingLeft),paddingEnd:De(s.paddingRight)}})}})}),Or=m.forwardRef((e,t)=>{let{sizes:r,onSizesChange:a,...o}=e,n=F(U,e.__scopeScrollArea),[s,c]=m.useState(),i=m.useRef(null),d=ae(t,i,n.onScrollbarYChange);return m.useEffect(()=>{i.current&&c(getComputedStyle(i.current))},[i]),(0,l.jsx)(gt,{"data-orientation":"vertical",...o,ref:d,sizes:r,style:{top:0,right:n.dir==="ltr"?0:void 0,left:n.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Me(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.y),onDragScroll:u=>e.onDragScroll(u.y),onWheelScroll:(u,p)=>{if(n.viewport){let h=n.viewport.scrollTop+u.deltaY;e.onWheelScroll(h),Ct(h,p)&&u.preventDefault()}},onResize:()=>{i.current&&n.viewport&&s&&a({content:n.viewport.scrollHeight,viewport:n.viewport.offsetHeight,scrollbar:{size:i.current.clientHeight,paddingStart:De(s.paddingTop),paddingEnd:De(s.paddingBottom)}})}})}),[Wr,vt]=mt(U),gt=m.forwardRef((e,t)=>{let{__scopeScrollArea:r,sizes:a,hasThumb:o,onThumbChange:n,onThumbPointerUp:s,onThumbPointerDown:c,onThumbPositionChange:i,onDragScroll:d,onWheelScroll:u,onResize:p,...h}=e,f=F(U,r),[g,y]=m.useState(null),L=ae(t,w=>y(w)),b=m.useRef(null),C=m.useRef(""),j=f.viewport,S=a.content-a.viewport,R=q(u),N=q(i),I=Fe(p,10);function P(w){b.current&&d({x:w.clientX-b.current.left,y:w.clientY-b.current.top})}return m.useEffect(()=>{let w=T=>{let z=T.target;g!=null&&g.contains(z)&&R(T,S)};return document.addEventListener("wheel",w,{passive:!1}),()=>document.removeEventListener("wheel",w,{passive:!1})},[j,g,S,R]),m.useEffect(N,[a,N]),ce(g,I),ce(f.content,I),(0,l.jsx)(Wr,{scope:r,scrollbar:g,hasThumb:o,onThumbChange:q(n),onThumbPointerUp:q(s),onThumbPositionChange:N,onThumbPointerDown:q(c),children:(0,l.jsx)(he.div,{...h,ref:L,style:{position:"absolute",...h.style},onPointerDown:$(e.onPointerDown,w=>{w.button===0&&(w.target.setPointerCapture(w.pointerId),b.current=g.getBoundingClientRect(),C.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",f.viewport&&(f.viewport.style.scrollBehavior="auto"),P(w))}),onPointerMove:$(e.onPointerMove,P),onPointerUp:$(e.onPointerUp,w=>{let T=w.target;T.hasPointerCapture(w.pointerId)&&T.releasePointerCapture(w.pointerId),document.body.style.webkitUserSelect=C.current,f.viewport&&(f.viewport.style.scrollBehavior=""),b.current=null})})})}),ze="ScrollAreaThumb",wt=m.forwardRef((e,t)=>{let{forceMount:r,...a}=e,o=vt(ze,e.__scopeScrollArea);return(0,l.jsx)(ke,{present:r||o.hasThumb,children:(0,l.jsx)(Ur,{ref:t,...a})})}),Ur=m.forwardRef((e,t)=>{let{__scopeScrollArea:r,style:a,...o}=e,n=F(ze,r),s=vt(ze,r),{onThumbPositionChange:c}=s,i=ae(t,p=>s.onThumbChange(p)),d=m.useRef(void 0),u=Fe(()=>{d.current&&(d.current=(d.current(),void 0))},100);return m.useEffect(()=>{let p=n.viewport;if(p){let h=()=>{u(),d.current||(d.current=Br(p,c),c())};return c(),p.addEventListener("scroll",h),()=>p.removeEventListener("scroll",h)}},[n.viewport,u,c]),(0,l.jsx)(he.div,{"data-state":s.hasThumb?"visible":"hidden",...o,ref:i,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...a},onPointerDownCapture:$(e.onPointerDownCapture,p=>{let h=p.target.getBoundingClientRect(),f=p.clientX-h.left,g=p.clientY-h.top;s.onThumbPointerDown({x:f,y:g})}),onPointerUp:$(e.onPointerUp,s.onThumbPointerUp)})});wt.displayName=ze;var Ke="ScrollAreaCorner",bt=m.forwardRef((e,t)=>{let r=F(Ke,e.__scopeScrollArea),a=!!(r.scrollbarX&&r.scrollbarY);return r.type!=="scroll"&&a?(0,l.jsx)(Yr,{...e,ref:t}):null});bt.displayName=Ke;var Yr=m.forwardRef((e,t)=>{let{__scopeScrollArea:r,...a}=e,o=F(Ke,r),[n,s]=m.useState(0),[c,i]=m.useState(0),d=!!(n&&c);return ce(o.scrollbarX,()=>{var p;let u=((p=o.scrollbarX)==null?void 0:p.offsetHeight)||0;o.onCornerHeightChange(u),i(u)}),ce(o.scrollbarY,()=>{var p;let u=((p=o.scrollbarY)==null?void 0:p.offsetWidth)||0;o.onCornerWidthChange(u),s(u)}),d?(0,l.jsx)(he.div,{...a,ref:t,style:{width:n,height:c,position:"absolute",right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function De(e){return e?parseInt(e,10):0}function yt(e,t){let r=e/t;return isNaN(r)?0:r}function Me(e){let t=yt(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,a=(e.scrollbar.size-r)*t;return Math.max(a,18)}function Xr(e,t,r,a="ltr"){let o=Me(r),n=o/2,s=t||n,c=o-s,i=r.scrollbar.paddingStart+s,d=r.scrollbar.size-r.scrollbar.paddingEnd-c,u=r.content-r.viewport,p=a==="ltr"?[0,u]:[u*-1,0];return St([i,d],p)(e)}function jt(e,t,r="ltr"){let a=Me(t),o=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,n=t.scrollbar.size-o,s=t.content-t.viewport,c=n-a,i=ur(e,r==="ltr"?[0,s]:[s*-1,0]);return St([0,s],[0,c])(i)}function St(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let a=(t[1]-t[0])/(e[1]-e[0]);return t[0]+a*(r-e[0])}}function Ct(e,t){return e>0&&e<t}var Br=(e,t=()=>{})=>{let r={left:e.scrollLeft,top:e.scrollTop},a=0;return(function o(){let n={left:e.scrollLeft,top:e.scrollTop},s=r.left!==n.left,c=r.top!==n.top;(s||c)&&t(),r=n,a=window.requestAnimationFrame(o)})(),()=>window.cancelAnimationFrame(a)};function Fe(e,t){let r=q(e),a=m.useRef(0);return m.useEffect(()=>()=>window.clearTimeout(a.current),[]),m.useCallback(()=>{window.clearTimeout(a.current),a.current=window.setTimeout(r,t)},[r,t])}function ce(e,t){let r=q(t);Sr(()=>{let a=0;if(e){let o=new ResizeObserver(()=>{cancelAnimationFrame(a),a=window.requestAnimationFrame(r)});return o.observe(e),()=>{window.cancelAnimationFrame(a),o.unobserve(e)}}},[e,r])}var Nt=pt,Vr=ft,qr=bt,Rt=m.forwardRef((e,t)=>{let r=(0,ut.c)(15),a,o,n;r[0]===e?(a=r[1],o=r[2],n=r[3]):({className:o,children:a,...n}=e,r[0]=e,r[1]=a,r[2]=o,r[3]=n);let s;r[4]===o?s=r[5]:(s=se("relative overflow-hidden",o),r[4]=o,r[5]=s);let c;r[6]===a?c=r[7]:(c=(0,l.jsx)(Vr,{className:"h-full w-full rounded-[inherit]",children:a}),r[6]=a,r[7]=c);let i,d;r[8]===Symbol.for("react.memo_cache_sentinel")?(i=(0,l.jsx)(At,{}),d=(0,l.jsx)(qr,{}),r[8]=i,r[9]=d):(i=r[8],d=r[9]);let u;return r[10]!==n||r[11]!==t||r[12]!==s||r[13]!==c?(u=(0,l.jsxs)(Nt,{ref:t,className:s,...n,children:[c,i,d]}),r[10]=n,r[11]=t,r[12]=s,r[13]=c,r[14]=u):u=r[14],u});Rt.displayName=Nt.displayName;var At=m.forwardRef((e,t)=>{let r=(0,ut.c)(14),a,o,n;r[0]===e?(a=r[1],o=r[2],n=r[3]):({className:a,orientation:n,...o}=e,r[0]=e,r[1]=a,r[2]=o,r[3]=n);let s=n===void 0?"vertical":n,c=s==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-px",i=s==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-px",d;r[4]!==a||r[5]!==c||r[6]!==i?(d=se("flex touch-none select-none transition-colors",c,i,a),r[4]=a,r[5]=c,r[6]=i,r[7]=d):d=r[7];let u;r[8]===Symbol.for("react.memo_cache_sentinel")?(u=(0,l.jsx)(wt,{className:"relative flex-1 rounded-full bg-border"}),r[8]=u):u=r[8];let p;return r[9]!==s||r[10]!==o||r[11]!==t||r[12]!==d?(p=(0,l.jsx)(Ge,{ref:t,orientation:s,className:d,...o,children:u}),r[9]=s,r[10]=o,r[11]=t,r[12]=d,r[13]=p):p=r[13],p});At.displayName=Ge.displayName;var $r=[{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 Gr=e=>{let t=Date.now(),r=$r.map(n=>({...n,chats:[]})),a={label:"Older",days:1/0,chats:[]},o=n=>{switch(n){case 0:return r[0];case 1:return r[1];case 2:return r[2];case 3:return r[3];default:return n>=4&&n<=7?r[4]:n>=8&&n<=30?r[5]:a}};for(let n of e)o(Math.floor((t-n.updatedAt)/864e5)).chats.push(n);return[...r,a].filter(n=>n.chats.length>0)},Jr=({activeChatId:e,setActiveChat:t})=>{let r=Ve(ct),{locale:a}=Ar(),[o,n]=(0,m.useState)(""),s=(0,m.useMemo)(()=>[...r.chats.values()].sort((d,u)=>u.updatedAt-d.updatedAt),[r.chats]),c=(0,m.useMemo)(()=>o.trim()?s.filter(d=>d.title.toLowerCase().includes(o.toLowerCase())):s,[s,o]),i=(0,m.useMemo)(()=>Gr(c),[c]);return(0,l.jsxs)(Er,{children:[(0,l.jsx)(ie,{content:"Previous chats",children:(0,l.jsx)(_r,{asChild:!0,children:(0,l.jsx)(B,{variant:"text",size:"icon",children:(0,l.jsx)(Mt,{className:"h-4 w-4"})})})}),(0,l.jsxs)(Tr,{className:"w-[480px] p-0",align:"start",side:"right",children:[(0,l.jsx)("div",{className:"pt-3 px-3 w-full",children:(0,l.jsx)(it,{placeholder:"Search chat history...",value:o,onChange:d=>n(d.target.value),className:"text-xs"})}),(0,l.jsx)(Rt,{className:"h-[450px] p-2",children:(0,l.jsxs)("div",{className:"space-y-3",children:[s.length===0&&(0,l.jsx)(qe,{title:"No chats yet",description:"Start a new chat to get started",icon:(0,l.jsx)(at,{})}),c.length===0&&o&&s.length>0&&(0,l.jsx)(qe,{title:"No chats found",description:`No chats match "${o}"`,icon:(0,l.jsx)(gr,{})}),i.map((d,u)=>(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsx)("div",{className:"text-xs px-1 text-muted-foreground/60",children:d.label}),(0,l.jsx)("div",{children:d.chats.map(p=>(0,l.jsxs)("button",{className:se("w-full p-1 rounded-md cursor-pointer text-left flex items-center justify-between",p.id===e&&"bg-accent",p.id!==e&&"hover:bg-muted/20"),onClick:()=>{t(p.id)},type:"button",children:[(0,l.jsx)("div",{className:"flex-1 min-w-0",children:(0,l.jsx)("div",{className:"text-sm truncate",children:p.title})}),(0,l.jsx)("div",{className:"text-xs text-muted-foreground/60 ml-2 flex-shrink-0",children:Rr(p.updatedAt,a)})]},p.id))}),u!==i.length-1&&(0,l.jsx)("hr",{})]},d.label))]})})]})]})};var de=tt(),_t="manual",Kr=new Set(["openai","google","anthropic"]),Qr=["image/*","text/*"],Zr=1024*1024*50,el=e=>{let t=(0,de.c)(18),{onNewChat:r,activeChatId:a,setActiveChat:o}=e,{handleClick:n}=st(),s;t[0]===Symbol.for("react.memo_cache_sentinel")?(s=(0,l.jsx)(vr,{className:"h-4 w-4"}),t[0]=s):s=t[0];let c;t[1]===r?c=t[2]:(c=(0,l.jsx)(ie,{content:"New chat",children:(0,l.jsx)(B,{variant:"text",size:"icon",onClick:r,children:s})}),t[1]=r,t[2]=c);let i;t[3]===Symbol.for("react.memo_cache_sentinel")?(i=(0,l.jsx)(fr,{}),t[3]=i):i=t[3];let d;t[4]===n?d=t[5]:(d=()=>n("ai"),t[4]=n,t[5]=d);let u;t[6]===Symbol.for("react.memo_cache_sentinel")?(u=(0,l.jsx)(wr,{className:"h-4 w-4"}),t[6]=u):u=t[6];let p;t[7]===d?p=t[8]:(p=(0,l.jsx)(ie,{content:"AI Settings",children:(0,l.jsx)(B,{variant:"text",size:"xs",className:"hover:bg-foreground/10 py-2",onClick:d,children:u})}),t[7]=d,t[8]=p);let h;t[9]!==a||t[10]!==o?(h=(0,l.jsx)(Jr,{activeChatId:a,setActiveChat:o}),t[9]=a,t[10]=o,t[11]=h):h=t[11];let f;t[12]!==p||t[13]!==h?(f=(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[i,p,h]}),t[12]=p,t[13]=h,t[14]=f):f=t[14];let g;return t[15]!==c||t[16]!==f?(g=(0,l.jsxs)("div",{className:"flex border-b px-2 py-1 justify-between shrink-0 items-center",children:[c,f]}),t[15]=c,t[16]=f,t[17]=g):g=t[17],g},Tt=(0,m.memo)(e=>{let t=(0,de.c)(15),{message:r,index:a,onEdit:o,isStreamingReasoning:n,isLast:s}=e,c;t[0]!==a||t[1]!==o?(c=y=>{var C,j,S;let L=(j=(C=y.parts)==null?void 0:C.filter(ol))==null?void 0:j.map(nl).join(`
2
2
  `),b=(S=y.parts)==null?void 0:S.filter(al);return(0,l.jsxs)("div",{className:"w-[95%] bg-background border p-1 rounded-sm",children:[b==null?void 0:b.map(sl),(0,l.jsx)(ot,{value:L,placeholder:"Type your message...",onChange:il,onSubmit:(R,N)=>{N.trim()&&o(a,N)},onClose:cl},y.id)]})},t[0]=a,t[1]=o,t[2]=c):c=t[2];let i=c,d;t[3]!==s||t[4]!==n?(d=y=>(0,l.jsxs)("div",{className:"w-[95%] wrap-break-word",children:[(0,l.jsx)("div",{className:"absolute right-1 top-1 opacity-0 group-hover:opacity-100 transition-opacity",children:(0,l.jsx)(Ir,{className:"h-3 w-3",value:y.parts.filter(dl).map(ul).join(`
3
3
  `)||""})}),Pr({message:y,isStreamingReasoning:n,isLast:s})]}),t[3]=s,t[4]=n,t[5]=d):d=t[5];let u=d,p=r.role==="user"?"justify-end":"justify-start",h;t[6]===p?h=t[7]:(h=se("flex group relative",p),t[6]=p,t[7]=h);let f;t[8]!==r||t[9]!==u||t[10]!==i?(f=r.role==="user"?i(r):u(r),t[8]=r,t[9]=u,t[10]=i,t[11]=f):f=t[11];let g;return t[12]!==h||t[13]!==f?(g=(0,l.jsx)("div",{className:h,children:f}),t[12]=h,t[13]=f,t[14]=g):g=t[14],g});Tt.displayName="ChatMessage";var Et=(0,m.memo)(e=>{var fe;let t=(0,de.c)(39),{isEmpty:r,onSendClick:a,isLoading:o,onStop:n,fileInputRef:s,onAddFiles:c,onAddContext:i}=e,d=Ve(rt),u=(d==null?void 0:d.mode)||_t,p=((fe=d==null?void 0:d.models)==null?void 0:fe.chat_model)||"openai/gpt-4o",h=ar.parse(p).providerId,{saveModeChange:f}=nr(),g;t[0]===Symbol.for("react.memo_cache_sentinel")?(g=[{value:"ask",label:"Ask",subtitle:"Use AI with access to read-only tools like documentation search"},{value:"manual",label:"Manual",subtitle:"Pure chat, no tool usage"},{value:"agent",label:"Agent (beta)",subtitle:"Use AI with access to read and write tools"}],t[0]=g):g=t[0];let y=g,L=Kr.has(h),b;t[1]===u?b=t[2]:(b=(0,l.jsx)(pr,{className:"h-6 text-xs border-border shadow-none! ring-0! bg-muted hover:bg-muted/30 py-0 px-2 gap-1 capitalize",children:u}),t[1]=u,t[2]=b);let C;t[3]===Symbol.for("react.memo_cache_sentinel")?(C=(0,l.jsx)(ir,{children:"AI Mode"}),t[3]=C):C=t[3];let j;t[4]===y?j=t[5]:(j=(0,l.jsx)(dr,{children:(0,l.jsxs)(mr,{children:[C,y.map(ml)]})}),t[4]=y,t[5]=j);let S;t[6]!==u||t[7]!==f||t[8]!==b||t[9]!==j?(S=(0,l.jsx)(Ft,{feature:"chat_modes",children:(0,l.jsxs)(hr,{value:u,onValueChange:f,children:[b,j]})}),t[6]=u,t[7]=f,t[8]=b,t[9]=j,t[10]=S):S=t[10];let R;t[11]===Symbol.for("react.memo_cache_sentinel")?(R=(0,l.jsx)(sr,{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[11]=R):R=t[11];let N;t[12]===S?N=t[13]:(N=(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[S,R]}),t[12]=S,t[13]=N);let I;t[14]===Symbol.for("react.memo_cache_sentinel")?(I=(0,l.jsx)(Jt,{className:"h-3.5 w-3.5"}),t[14]=I):I=t[14];let P;t[15]!==o||t[16]!==i?(P=(0,l.jsx)(ie,{content:"Add context",children:(0,l.jsx)(B,{variant:"text",size:"icon",onClick:i,disabled:o,children:I})}),t[15]=o,t[16]=i,t[17]=P):P=t[17];let w;t[18]!==s||t[19]!==L||t[20]!==o||t[21]!==c?(w=L&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(ie,{content:"Attach a file",children:(0,l.jsx)(B,{variant:"text",size:"icon",className:"cursor-pointer",onClick:()=>{var X;return(X=s.current)==null?void 0:X.click()},title:"Attach a file",disabled:o,children:(0,l.jsx)(lr,{className:"h-3.5 w-3.5"})})}),(0,l.jsx)(it,{ref:s,type:"file",multiple:!0,hidden:!0,onChange:X=>{X.target.files&&c([...X.target.files])},accept:Qr.join(",")})]}),t[18]=s,t[19]=L,t[20]=o,t[21]=c,t[22]=w):w=t[22];let T=o?"Stop":"Submit",z=o?n:a,_=o?!1:r,E;t[23]===o?E=t[24]:(E=o?(0,l.jsx)(yr,{className:"h-3 w-3 fill-current"}):(0,l.jsx)(Bt,{className:"h-3 w-3"}),t[23]=o,t[24]=E);let H;t[25]!==z||t[26]!==_||t[27]!==E?(H=(0,l.jsx)(B,{variant:"text",size:"sm",className:"h-6 w-6 p-0 hover:bg-muted/30 cursor-pointer",onClick:z,disabled:_,children:E}),t[25]=z,t[26]=_,t[27]=E,t[28]=H):H=t[28];let Y;t[29]!==T||t[30]!==H?(Y=(0,l.jsx)(ie,{content:T,children:H}),t[29]=T,t[30]=H,t[31]=Y):Y=t[31];let O;t[32]!==w||t[33]!==Y||t[34]!==P?(O=(0,l.jsxs)("div",{className:"flex flex-row",children:[P,w,Y]}),t[32]=w,t[33]=Y,t[34]=P,t[35]=O):O=t[35];let D;return t[36]!==O||t[37]!==N?(D=(0,l.jsx)(dt,{children:(0,l.jsxs)("div",{className:"px-3 py-2 border-t border-border/20 flex flex-row items-center justify-between",children:[N,O]})}),t[36]=O,t[37]=N,t[38]=D):D=t[38],D});Et.displayName="ChatInputFooter";var Qe=(0,m.memo)(e=>{let t=(0,de.c)(29),{placeholder:r,input:a,inputClassName:o,setInput:n,onSubmit:s,inputRef:c,isLoading:i,onStop:d,fileInputRef:u,onAddFiles:p,onClose:h}=e,f;t[0]!==a||t[1]!==s?(f=()=>{a.trim()&&s(void 0,a)},t[0]=a,t[1]=s,t[2]=f):f=t[2];let g=V(f),y;t[3]===o?y=t[4]:(y=se("px-2 py-3 flex-1",o),t[3]=o,t[4]=y);let L=r||"Type your message...",b;t[5]!==a||t[6]!==c||t[7]!==p||t[8]!==h||t[9]!==s||t[10]!==n||t[11]!==L?(b=(0,l.jsx)(ot,{inputRef:c,value:a,onChange:n,onSubmit:s,onClose:h,onAddFiles:p,placeholder:L}),t[5]=a,t[6]=c,t[7]=p,t[8]=h,t[9]=s,t[10]=n,t[11]=L,t[12]=b):b=t[12];let C;t[13]!==y||t[14]!==b?(C=(0,l.jsx)("div",{className:y,children:b}),t[13]=y,t[14]=b,t[15]=C):C=t[15];let j=!a.trim(),S;t[16]===c?S=t[17]:(S=()=>tr(c),t[16]=c,t[17]=S);let R;t[18]!==u||t[19]!==g||t[20]!==i||t[21]!==p||t[22]!==d||t[23]!==j||t[24]!==S?(R=(0,l.jsx)(Et,{isEmpty:j,onAddContext:S,onSendClick:g,isLoading:i,onStop:d,fileInputRef:u,onAddFiles:p}),t[18]=u,t[19]=g,t[20]=i,t[21]=p,t[22]=d,t[23]=j,t[24]=S,t[25]=R):R=t[25];let N;return t[26]!==C||t[27]!==R?(N=(0,l.jsxs)("div",{className:"relative shrink-0 min-h-[80px] flex flex-col border-t",children:[C,R]}),t[26]=C,t[27]=R,t[28]=N):N=t[28],N});Qe.displayName="ChatInput";var tl=()=>{let e=(0,de.c)(6),t=Ve(Ot),{handleClick:r}=st();if(!t){let o;e[0]===r?o=e[1]:(o=(0,l.jsx)(B,{variant:"outline",size:"sm",onClick:()=>r("ai"),children:"Edit AI settings"}),e[0]=r,e[1]=o);let n;e[2]===Symbol.for("react.memo_cache_sentinel")?(n=(0,l.jsx)(at,{}),e[2]=n):n=e[2];let s;return e[3]===o?s=e[4]:(s=(0,l.jsx)(qe,{title:"Chat with AI",description:"AI is currently disabled. Add your API key to enable.",action:o,icon:n}),e[3]=o,e[4]=s),s}let a;return e[5]===Symbol.for("react.memo_cache_sentinel")?(a=(0,l.jsx)(rl,{}),e[5]=a):a=e[5],a},rl=()=>{let e=(0,de.c)(95),t=Pt(ct),[r,a]=zt(br),[o,n]=(0,m.useState)(""),[s,c]=(0,m.useState)(""),[i,d]=(0,m.useState)(),u=(0,m.useRef)(null),p=(0,m.useRef)(null),h=(0,m.useRef)(null),f=(0,m.useRef)(null),g=(0,m.useRef)(null),y=Wt(),{invokeAiTool:L,sendRun:b}=Yt(),C=r==null?void 0:r.id,j=kt(),{addStagedCell:S}=Zt(),{createNewCell:R,prepareForRun:N}=Ht(),I;e[0]!==S||e[1]!==R||e[2]!==N||e[3]!==b||e[4]!==j?(I={addStagedCell:S,createNewCell:R,prepareForRun:N,sendRun:b,store:j},e[0]=S,e[1]=R,e[2]=N,e[3]=b,e[4]=j,e[5]=I):I=e[5];let P=I,w;e[6]===(r==null?void 0:r.messages)?w=e[7]:(w=(r==null?void 0:r.messages)||[],e[6]=r==null?void 0:r.messages,e[7]=w);let T;if(e[8]!==y||e[9]!==j){let x;e[11]===j?x=e[12]:(x=async v=>{var ne;let A=await Vt(v.messages),W=((ne=j.get(rt))==null?void 0:ne.mode)||_t;return{body:{tools:Gt.getToolSchemas(W),...v,...A}}},e[11]=j,e[12]=x),T=new Xt({api:y.getAiURL("chat").toString(),headers:y.headers(),prepareSendMessagesRequest:x}),e[8]=y,e[9]=j,e[10]=T}else T=e[10];let z;e[13]===t?z=e[14]:(z=x=>{let{messages:v}=x;t(A=>kr({chatState:A,chatId:A.activeChatId,messages:v}))},e[13]=t,e[14]=z);let{messages:_,sendMessage:E,error:H,status:Y,regenerate:O,stop:D,addToolOutput:fe,id:X}=er({id:C,sendAutomaticallyWhen:pl,messages:w,transport:T,onFinish:z,onToolCall:async x=>{let{toolCall:v}=x;if(v.dynamic){Pe.debug("Skipping dynamic tool call",v);return}await qt({invokeAiTool:L,addToolOutput:Lt,toolCall:{toolName:v.toolName,toolCallId:v.toolCallId,input:v.input},toolContext:P})},onError:hl}),Lt=fe,xe;e[15]===Symbol.for("react.memo_cache_sentinel")?(xe=x=>{if(x.length===0)return;let v=0;for(let A of x)v+=A.size;if(v>Zr){jr({title:"File size exceeds 50MB limit",description:"Please remove some files and try again."});return}d(A=>[...A??[],...x])},e[15]=xe):xe=e[15];let ve=V(xe),ge;e[16]===i?ge=e[17]:(ge=x=>{i&&d(i.filter(v=>v!==x))},e[16]=i,e[17]=ge);let He=V(ge),k=Y==="submitted"||Y==="streaming",we;e[18]!==k||e[19]!==_?(we=k&&_.length>0&&Kt(_),e[18]=k,e[19]=_,e[20]=we):we=e[20];let ue=we,be;e[21]===Symbol.for("react.memo_cache_sentinel")?(be=()=>{requestAnimationFrame(()=>{if(h.current){let x=h.current;x.scrollTop=x.scrollHeight}})},e[21]=be):be=e[21];let ye;e[22]===C?ye=e[23]:(ye=[C],e[22]=C,e[23]=ye),(0,m.useEffect)(be,ye);let je;e[24]!==X||e[25]!==E||e[26]!==t?(je=async(x,v)=>{let A=Date.now(),W={id:X,title:Qt(x),messages:[],createdAt:A,updatedAt:A};t(pe=>{let Ze=new Map(pe.chats);return Ze.set(W.id,W),{...pe,chats:Ze,activeChatId:W.id}});let ne=v&&v.length>0?await lt(v):void 0;E({role:"user",parts:[{type:"text",text:x},...ne??[]]}),d(void 0),n("")},e[24]=X,e[25]=E,e[26]=t,e[27]=je):je=e[27];let Oe=je,Se;e[28]===a?Se=e[29]:(Se=()=>{a(null),n(""),c(""),d(void 0)},e[28]=a,e[29]=Se);let We=V(Se),Ce;e[30]!==_||e[31]!==E?(Ce=(x,v)=>{var pe;let A=_[x],W=(pe=A.parts)==null?void 0:pe.filter(fl),ne=A.id;E({messageId:ne,role:"user",parts:[{type:"text",text:v},...W]})},e[30]=_,e[31]=E,e[32]=Ce):Ce=e[32];let me=V(Ce),Ne;e[33]!==i||e[34]!==E?(Ne=async(x,v)=>{var W;if(!v.trim())return;(W=p.current)!=null&&W.view&&nt(p.current.view);let A=i?await lt(i):void 0;x==null||x.preventDefault(),E({text:v,files:A}),n(""),d(void 0)},e[33]=i,e[34]=E,e[35]=Ne):Ne=e[35];let Ue=V(Ne),Re;e[36]===O?Re=e[37]:(Re=()=>{O()},e[36]=O,e[37]=Re);let Ye=Re,Ae;e[38]!==Oe||e[39]!==i||e[40]!==s?(Ae=()=>{var x;s.trim()&&((x=u.current)!=null&&x.view&&nt(u.current.view),Oe(s.trim(),i))},e[38]=Oe,e[39]=i,e[40]=s,e[41]=Ae):Ae=e[41];let Xe=V(Ae),_e;e[42]===Symbol.for("react.memo_cache_sentinel")?(_e=()=>{var x,v;return(v=(x=u.current)==null?void 0:x.editor)==null?void 0:v.blur()},e[42]=_e):_e=e[42];let It=_e,M=_.length===0,Te;e[43]!==Ue||e[44]!==Xe||e[45]!==o||e[46]!==k||e[47]!==M||e[48]!==s||e[49]!==ve||e[50]!==D?(Te=M?(0,l.jsx)(Qe,{placeholder:"Ask anything, @ to include context about tables or dataframes",input:s,inputRef:u,inputClassName:"px-1 py-0",setInput:c,onSubmit:Xe,isLoading:k,onStop:D,fileInputRef:f,onAddFiles:ve,onClose:It},"new-thread-input"):(0,l.jsx)(Qe,{input:o,setInput:n,onSubmit:Ue,inputRef:p,isLoading:k,onStop:D,onClose:()=>{var x,v;return(v=(x=p.current)==null?void 0:x.editor)==null?void 0:v.blur()},fileInputRef:f,onAddFiles:ve}),e[43]=Ue,e[44]=Xe,e[45]=o,e[46]=k,e[47]=M,e[48]=s,e[49]=ve,e[50]=D,e[51]=Te):Te=e[51];let G=Te,Ee;e[52]!==i||e[53]!==M||e[54]!==He?(Ee=i&&i.length>0&&(0,l.jsx)("div",{className:se("flex flex-row gap-1 flex-wrap p-1",M&&"py-2 px-1"),children:i==null?void 0:i.map(x=>(0,l.jsx)(rr,{file:x,onRemove:()=>He(x)},x.name))}),e[52]=i,e[53]=M,e[54]=He,e[55]=Ee):Ee=e[55];let J=Ee,Be=r==null?void 0:r.id,K;e[56]!==We||e[57]!==a||e[58]!==Be?(K=(0,l.jsx)(dt,{children:(0,l.jsx)(el,{onNewChat:We,activeChatId:Be,setActiveChat:a})}),e[56]=We,e[57]=a,e[58]=Be,e[59]=K):K=e[59];let Q;e[60]!==G||e[61]!==J||e[62]!==M?(Q=M&&(0,l.jsxs)("div",{className:"rounded-md border bg-background",children:[J,G]}),e[60]=G,e[61]=J,e[62]=M,e[63]=Q):Q=e[63];let Z;if(e[64]!==me||e[65]!==ue||e[66]!==_){let x;e[68]!==me||e[69]!==ue||e[70]!==_.length?(x=(v,A)=>(0,l.jsx)(Tt,{message:v,index:A,onEdit:me,isStreamingReasoning:ue,isLast:A===_.length-1},v.id),e[68]=me,e[69]=ue,e[70]=_.length,e[71]=x):x=e[71],Z=_.map(x),e[64]=me,e[65]=ue,e[66]=_,e[67]=Z}else Z=e[67];let ee;e[72]===k?ee=e[73]:(ee=k&&(0,l.jsx)("div",{className:"flex justify-center py-4",children:(0,l.jsx)(xr,{className:"h-4 w-4 animate-spin"})}),e[72]=k,e[73]=ee);let te;e[74]!==H||e[75]!==Ye?(te=H&&(0,l.jsxs)("div",{className:"flex items-center justify-center space-x-2 mb-4",children:[(0,l.jsx)(Lr,{error:H}),(0,l.jsx)(B,{variant:"outline",size:"sm",onClick:Ye,children:"Retry"})]}),e[74]=H,e[75]=Ye,e[76]=te):te=e[76];let Le;e[77]===Symbol.for("react.memo_cache_sentinel")?(Le=(0,l.jsx)("div",{ref:g}),e[77]=Le):Le=e[77];let re;e[78]!==Q||e[79]!==Z||e[80]!==ee||e[81]!==te?(re=(0,l.jsxs)("div",{className:"flex-1 px-3 bg-(--slate-1) gap-4 py-3 flex flex-col overflow-y-auto",ref:h,children:[Q,Z,ee,te,Le]}),e[78]=Q,e[79]=Z,e[80]=ee,e[81]=te,e[82]=re):re=e[82];let le;e[83]!==k||e[84]!==D?(le=k&&(0,l.jsx)("div",{className:"w-full flex justify-center items-center z-20 border-t",children:(0,l.jsx)(B,{variant:"linkDestructive",size:"sm",onClick:D,children:"Stop"})}),e[83]=k,e[84]=D,e[85]=le):le=e[85];let oe;e[86]!==G||e[87]!==J||e[88]!==M?(oe=!M&&(0,l.jsxs)(l.Fragment,{children:[J,G]}),e[86]=G,e[87]=J,e[88]=M,e[89]=oe):oe=e[89];let Ie;return e[90]!==K||e[91]!==re||e[92]!==le||e[93]!==oe?(Ie=(0,l.jsxs)("div",{className:"flex flex-col h-[calc(100%-53px)]",children:[K,re,le,oe]}),e[90]=K,e[91]=re,e[92]=le,e[93]=oe,e[94]=Ie):Ie=e[94],Ie},ll=tl;function ol(e){return e.type==="text"}function nl(e){return e.text}function al(e){return e.type==="file"}function sl(e,t){return(0,l.jsx)(or,{attachment:e},t)}function il(){}function cl(){}function dl(e){return e.type==="text"}function ul(e){return e.text}function ml(e){return(0,l.jsx)(cr,{value:e.value,className:"text-xs",children:(0,l.jsxs)("div",{className:"flex flex-col",children:[e.label,(0,l.jsx)("div",{className:"text-muted-foreground text-xs pt-1 block",children:e.subtitle})]})},e.value)}function pl(e){let{messages:t}=e;return $t(t)}function hl(e){Pe.error("An error occurred:",e)}function fl(e){return e.type==="file"}export{ll as default};
@@ -1 +1 @@
1
- import{s as V}from"./chunk-LvLJmgfZ.js";import{l as X,u as z}from"./useEvent-DlWF5OMa.js";import{t as Y}from"./react-BGmjiNul.js";import{Br as Z}from"./cells-BNQUQiDS.js";import"./react-dom-C9fstfnp.js";import{t as T}from"./compiler-runtime-DeeZ7FnK.js";import"./tooltip-CrRUCOBw.js";import{a as ee,i as le,l as te}from"./hotkeys-uKX61F1_.js";import{_ as ie,f as ae,v as oe}from"./utils-pfqq9IdB.js";import"./config-D6nhy4FA.js";import{i as re}from"./switch-RowEjq0T.js";import{t as ne}from"./useEventListener-COkmyg1v.js";import{t as pe}from"./jsx-runtime-DN_bIXfG.js";import"./dist-CAcX026F.js";import"./JsonOutput-BSGE-MRo.js";import"./cjs-Bj40p_Np.js";import"./main-CwSdzVhm.js";import"./useNonce-EAuSVK-5.js";import{r as se}from"./requests-C0HaHO6a.js";import"./layout-DT91GUei.js";import"./download-B6EJS7Ar.js";import{t as de}from"./useCellActionButton-D5Zt1dDz.js";import"./markdown-renderer-BPnVa0ym.js";import{i as me,t as he}from"./useNotebookActions-Ck-yX5ub.js";import{f as ce}from"./state-BTHUBVxX.js";import"./dist-HGZzCB0y.js";import"./dist-CVj-_Iiz.js";import"./dist-BVf1IY4_.js";import"./dist-Cq_4nPfh.js";import"./dist-RKnr9SNh.js";import"./Combination-D1TsGrBC.js";import"./dates-CdsE1R40.js";import"./popover-DtnzNVk-.js";import"./share-CXQVxivL.js";import"./vega-loader.browser-C8wT63Va.js";import"./defaultLocale-BLUna9fQ.js";import"./defaultLocale-DzliDDTm.js";import"./purify.es-N-2faAGj.js";import{a as fe,c as ye,i as L,l as J,n as ue,o as K,r as be,s as ge}from"./command-YPFTinLj.js";import"./chunk-OGVTOU66-CjNLT2C3.js";import"./katex-AwOI3EvM.js";import"./marked.esm-CHnOtnr3.js";import"./es-BoHEdemq.js";import{r as ke}from"./focus-DM53w5BH.js";import{t as Q}from"./renderShortcut-eU5Hsfml.js";import"./esm-B3JckBtM.js";import"./name-cell-input-BaEPC7ON.js";import"./multi-icon-BOYRpNB_.js";import"./dist-BRZzJw_5.js";import"./dist-P7JHert4.js";import"./dist-CoiWxjLF.js";import"./dist-cVYW_wBR.js";import"./dist-BAmo7Mv9.js";import"./dist-3oAtECdQ.js";import"./dist-D6Pwf0VF.js";import"./dist-D9HMoxdZ.js";import"./dist-JtCdI6tY.js";import"./esm-CCqLcax5.js";var Ce=T(),je=V(Y(),1);function xe(e,l){let t=(0,Ce.c)(11),n;t[0]===l?n=t[1]:(n=new Z(l),t[0]=l,t[1]=n);let p=n,r;t[2]!==e||t[3]!==p?(r=()=>p.get(e),t[2]=e,t[3]=p,t[4]=r):r=t[4];let[m,g]=(0,je.useState)(r),i;t[5]!==e||t[6]!==p?(i=k=>{g(k),p.set(e,k)},t[5]=e,t[6]=p,t[7]=i):i=t[7];let y=i,h;return t[8]!==y||t[9]!==m?(h=[m,y],t[8]=y,t[9]=m,t[10]=h):h=t[10],h}var ve=T(),_e=3;function we(){let e=(0,ve.c)(7),l;e[0]===Symbol.for("react.memo_cache_sentinel")?(l=[],e[0]=l):l=e[0];let[t,n]=xe("marimo:commands",l),p;e[1]!==t||e[2]!==n?(p=m=>{n(Se([m,...t]).slice(0,_e))},e[1]=t,e[2]=n,e[3]=p):p=e[3];let r;return e[4]!==t||e[5]!==p?(r={recentCommands:t,addRecentCommand:p},e[4]=t,e[5]=p,e[6]=r):r=e[6],r}function Se(e){return[...new Set(e)]}function W(e){return e.dropdown!==void 0}function U(e,l=""){return e.flatMap(t=>t.label?W(t)?U(t.dropdown,`${l+t.label} > `):{...t,label:l+t.label}:[])}var He=T();function Ae(){let e=(0,He.c)(75),[l,t]=oe(),[n,p]=ie(),{saveAppConfig:r,saveUserConfig:m}=se(),g;e[0]!==m||e[1]!==t?(g=async d=>{await m({config:d}).then(()=>{t(c=>({...c,...d}))})},e[0]=m,e[1]=t,e[2]=g):g=e[2];let i=g,y;e[3]!==r||e[4]!==p?(y=async d=>{await r({config:d}).then(()=>{p(d)})},e[3]=r,e[4]=p,e[5]=y):y=e[5];let h=y,k;if(e[6]!==n||e[7]!==l.completion||e[8]!==l.display||e[9]!==l.keymap||e[10]!==h||e[11]!==i){let d;e[13]===n?d=e[14]:(d=P=>P!==n.width,e[13]=n,e[14]=d);let c;e[15]!==n||e[16]!==h?(c=P=>({label:`App config > Set width=${P}`,handle:()=>{h({...n,width:P})}}),e[15]=n,e[16]=h,e[17]=c):c=e[17];let H;e[18]!==l.display||e[19]!==i?(H={label:"Config > Set theme: dark",handle:()=>{i({display:{...l.display,theme:"dark"}})}},e[18]=l.display,e[19]=i,e[20]=H):H=e[20];let C;e[21]!==l.display||e[22]!==i?(C={label:"Config > Set theme: light",handle:()=>{i({display:{...l.display,theme:"light"}})}},e[21]=l.display,e[22]=i,e[23]=C):C=e[23];let A;e[24]!==l.display||e[25]!==i?(A={label:"Config > Set theme: system",handle:()=>{i({display:{...l.display,theme:"system"}})}},e[24]=l.display,e[25]=i,e[26]=A):A=e[26];let R=l.keymap.preset==="vim",M;e[27]!==l.keymap||e[28]!==i?(M=()=>{i({keymap:{...l.keymap,preset:"vim"}})},e[27]=l.keymap,e[28]=i,e[29]=M):M=e[29];let N;e[30]!==R||e[31]!==M?(N={label:"Config > Switch keymap to VIM",hidden:R,handle:M},e[30]=R,e[31]=M,e[32]=N):N=e[32];let D=l.keymap.preset==="default",j;e[33]!==l.keymap||e[34]!==i?(j=()=>{i({keymap:{...l.keymap,preset:"default"}})},e[33]=l.keymap,e[34]=i,e[35]=j):j=e[35];let u;e[36]!==D||e[37]!==j?(u={label:"Config > Switch keymap to default (current: VIM)",hidden:D,handle:j},e[36]=D,e[37]=j,e[38]=u):u=e[38];let x;e[39]!==l.completion||e[40]!==i?(x=()=>{i({completion:{...l.completion,copilot:!1}})},e[39]=l.completion,e[40]=i,e[41]=x):x=e[41];let v=l.completion.copilot!=="github",$;e[42]!==x||e[43]!==v?($={label:"Config > Disable GitHub Copilot",handle:x,hidden:v},e[42]=x,e[43]=v,e[44]=$):$=e[44];let _;e[45]!==l.completion||e[46]!==i?(_=()=>{i({completion:{...l.completion,copilot:"github"}})},e[45]=l.completion,e[46]=i,e[47]=_):_=e[47];let O=l.completion.copilot==="github",q;e[48]!==_||e[49]!==O?(q={label:"Config > Enable GitHub Copilot",handle:_,hidden:O},e[48]=_,e[49]=O,e[50]=q):q=e[50];let B=!l.display.reference_highlighting,w;e[51]!==l.display||e[52]!==i?(w=()=>{i({display:{...l.display,reference_highlighting:!1}})},e[51]=l.display,e[52]=i,e[53]=w):w=e[53];let b;e[54]!==B||e[55]!==w?(b={label:"Config > Disable reference highlighting",hidden:B,handle:w},e[54]=B,e[55]=w,e[56]=b):b=e[56];let f;e[57]!==l.display||e[58]!==i?(f=()=>{i({display:{...l.display,reference_highlighting:!0}})},e[57]=l.display,e[58]=i,e[59]=f):f=e[59];let E;e[60]!==l.display.reference_highlighting||e[61]!==f?(E={label:"Config > Enable reference highlighting",hidden:l.display.reference_highlighting,handle:f},e[60]=l.display.reference_highlighting,e[61]=f,e[62]=E):E=e[62];let o=l.display.cell_output==="above",a;e[63]!==l.display||e[64]!==i?(a=()=>{i({display:{...l.display,cell_output:"above"}})},e[63]=l.display,e[64]=i,e[65]=a):a=e[65];let F;e[66]!==o||e[67]!==a?(F={label:"Config > Set cell output area: above",hidden:o,handle:a},e[66]=o,e[67]=a,e[68]=F):F=e[68];let S=l.display.cell_output==="below",I;e[69]!==l.display||e[70]!==i?(I=()=>{i({display:{...l.display,cell_output:"below"}})},e[69]=l.display,e[70]=i,e[71]=I):I=e[71];let G;e[72]!==S||e[73]!==I?(G={label:"Config > Set cell output area: below",hidden:S,handle:I},e[72]=S,e[73]=I,e[74]=G):G=e[74],k=[...ce().filter(d).map(c),H,C,A,N,u,$,q,b,E,F,G].filter(Me),e[6]=n,e[7]=l.completion,e[8]=l.display,e[9]=l.keymap,e[10]=h,e[11]=i,e[12]=k}else k=e[12];return k}function Me(e){return!e.hidden}var Ne=T(),s=V(pe(),1),De=()=>{let e=(0,Ne.c)(37),[l,t]=X(me),n=re(),p=z(ke),r=z(ae),m;e[0]===p?m=e[1]:(m={cell:p},e[0]=p,e[1]=m);let g=de(m).flat();g=U(g);let i=Ae(),y=he();y=[...U(y),...U(i)];let h=y.filter(Ee),k=ee.keyBy(h,Fe),{recentCommands:d,addRecentCommand:c}=we(),H;e[2]===d?H=e[3]:(H=new Set(d),e[2]=d,e[3]=H);let C=H,A;e[4]!==r||e[5]!==t?(A=o=>{te(r.getHotkey("global.commandPalette").key)(o)&&(o.preventDefault(),t(Ie))},e[4]=r,e[5]=t,e[6]=A):A=e[6],ne(document,"keydown",A);let R;e[7]!==c||e[8]!==r||e[9]!==n||e[10]!==t?(R=(o,a)=>{let F=n[o];if(!F)return null;let S=r.getHotkey(o);return(0,s.jsxs)(K,{disabled:a.disabled,onSelect:()=>{c(o),t(!1),requestAnimationFrame(()=>{F()})},value:S.name,children:[(0,s.jsxs)("span",{children:[S.name,a.tooltip&&(0,s.jsx)("span",{className:"ml-2",children:a.tooltip})]}),(0,s.jsx)(J,{children:(0,s.jsx)(Q,{shortcut:S.key})})]},o)},e[7]=c,e[8]=r,e[9]=n,e[10]=t,e[11]=R):R=e[11];let M=R,N;e[12]!==c||e[13]!==r||e[14]!==t?(N=o=>{let{label:a,handle:F,props:S,hotkey:I}=o,G=S===void 0?{}:S;return(0,s.jsxs)(K,{disabled:G.disabled,onSelect:()=>{c(a),t(!1),requestAnimationFrame(()=>{F()})},value:a,children:[(0,s.jsxs)("span",{children:[a,G.tooltip&&(0,s.jsxs)("span",{className:"ml-2",children:["(",G.tooltip,")"]})]}),I&&(0,s.jsx)(J,{children:(0,s.jsx)(Q,{shortcut:r.getHotkey(I).key})})]},a)},e[12]=c,e[13]=r,e[14]=t,e[15]=N):N=e[15];let D=N,j=ue,u;e[16]===Symbol.for("react.memo_cache_sentinel")?(u=(0,s.jsx)(fe,{placeholder:"Type to search..."}),e[16]=u):u=e[16];let x=ge,v;e[17]===Symbol.for("react.memo_cache_sentinel")?(v=(0,s.jsx)(be,{children:"No results found."}),e[17]=v):v=e[17];let $=d.length>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(L,{heading:"Recently Used",children:d.map(o=>{let a=k[o];return le(o)?M(o,{disabled:a==null?void 0:a.disabled,tooltip:a==null?void 0:a.tooltip}):a&&!W(a)?D({label:a.label,handle:a.handleHeadless||a.handle,props:{disabled:a.disabled,tooltip:a.tooltip}}):null})}),(0,s.jsx)(ye,{})]}),_=L,O=r.iterate().map(o=>{if(C.has(o))return null;let a=k[o];return M(o,{disabled:a==null?void 0:a.disabled,tooltip:a==null?void 0:a.tooltip})}),q=h.map(o=>C.has(o.label)?null:D({label:o.label,handle:o.handleHeadless||o.handle,props:{disabled:o.disabled,tooltip:o.tooltip}})),B;e[18]!==C||e[19]!==D?(B=o=>C.has(o.label)?null:D({label:`Cell > ${o.label}`,handle:o.handleHeadless||o.handle,props:{disabled:o.disabled,tooltip:o.tooltip}}),e[18]=C,e[19]=D,e[20]=B):B=e[20];let w=g.map(B),b;e[21]!==_||e[22]!==q||e[23]!==w||e[24]!==O?(b=(0,s.jsxs)(_,{heading:"Commands",children:[O,q,w]}),e[21]=_,e[22]=q,e[23]=w,e[24]=O,e[25]=b):b=e[25];let f;e[26]!==x||e[27]!==b||e[28]!==v||e[29]!==$?(f=(0,s.jsxs)(x,{children:[v,$,b]}),e[26]=x,e[27]=b,e[28]=v,e[29]=$,e[30]=f):f=e[30];let E;return e[31]!==j||e[32]!==l||e[33]!==t||e[34]!==f||e[35]!==u?(E=(0,s.jsxs)(j,{open:l,onOpenChange:t,children:[u,f]}),e[31]=j,e[32]=l,e[33]=t,e[34]=f,e[35]=u,e[36]=E):E=e[36],E};function Ee(e){return!e.hotkey}function Fe(e){return e.label}function Ie(e){return!e}export{De as default};
1
+ import{s as V}from"./chunk-LvLJmgfZ.js";import{l as X,u as z}from"./useEvent-DlWF5OMa.js";import{t as Y}from"./react-BGmjiNul.js";import{Br as Z}from"./cells-BNQUQiDS.js";import"./react-dom-C9fstfnp.js";import{t as T}from"./compiler-runtime-DeeZ7FnK.js";import"./tooltip-CrRUCOBw.js";import{a as ee,i as le,l as te}from"./hotkeys-uKX61F1_.js";import{_ as ie,f as ae,v as oe}from"./utils-pfqq9IdB.js";import"./config-D6nhy4FA.js";import{i as re}from"./switch-RowEjq0T.js";import{t as ne}from"./useEventListener-COkmyg1v.js";import{t as pe}from"./jsx-runtime-DN_bIXfG.js";import"./dist-CAcX026F.js";import"./JsonOutput-BSGE-MRo.js";import"./cjs-Bj40p_Np.js";import"./main-CwSdzVhm.js";import"./useNonce-EAuSVK-5.js";import{r as se}from"./requests-C0HaHO6a.js";import"./layout-DT91GUei.js";import"./download-B6EJS7Ar.js";import{t as de}from"./useCellActionButton-D5Zt1dDz.js";import"./markdown-renderer-BPnVa0ym.js";import{i as me,t as he}from"./useNotebookActions-DEl-rH-3.js";import{f as ce}from"./state-JzO-Ni5T.js";import"./dist-HGZzCB0y.js";import"./dist-CVj-_Iiz.js";import"./dist-BVf1IY4_.js";import"./dist-Cq_4nPfh.js";import"./dist-RKnr9SNh.js";import"./Combination-D1TsGrBC.js";import"./dates-CdsE1R40.js";import"./popover-DtnzNVk-.js";import"./share-CXQVxivL.js";import"./vega-loader.browser-C8wT63Va.js";import"./defaultLocale-BLUna9fQ.js";import"./defaultLocale-DzliDDTm.js";import"./purify.es-N-2faAGj.js";import{a as fe,c as ye,i as L,l as J,n as ue,o as K,r as be,s as ge}from"./command-YPFTinLj.js";import"./chunk-OGVTOU66-CjNLT2C3.js";import"./katex-AwOI3EvM.js";import"./marked.esm-CHnOtnr3.js";import"./es-BoHEdemq.js";import{r as ke}from"./focus-DM53w5BH.js";import{t as Q}from"./renderShortcut-eU5Hsfml.js";import"./esm-B3JckBtM.js";import"./name-cell-input-BaEPC7ON.js";import"./multi-icon-BOYRpNB_.js";import"./dist-BRZzJw_5.js";import"./dist-P7JHert4.js";import"./dist-CoiWxjLF.js";import"./dist-cVYW_wBR.js";import"./dist-BAmo7Mv9.js";import"./dist-3oAtECdQ.js";import"./dist-D6Pwf0VF.js";import"./dist-D9HMoxdZ.js";import"./dist-JtCdI6tY.js";import"./esm-CCqLcax5.js";var Ce=T(),je=V(Y(),1);function xe(e,l){let t=(0,Ce.c)(11),n;t[0]===l?n=t[1]:(n=new Z(l),t[0]=l,t[1]=n);let p=n,r;t[2]!==e||t[3]!==p?(r=()=>p.get(e),t[2]=e,t[3]=p,t[4]=r):r=t[4];let[m,g]=(0,je.useState)(r),i;t[5]!==e||t[6]!==p?(i=k=>{g(k),p.set(e,k)},t[5]=e,t[6]=p,t[7]=i):i=t[7];let y=i,h;return t[8]!==y||t[9]!==m?(h=[m,y],t[8]=y,t[9]=m,t[10]=h):h=t[10],h}var ve=T(),_e=3;function we(){let e=(0,ve.c)(7),l;e[0]===Symbol.for("react.memo_cache_sentinel")?(l=[],e[0]=l):l=e[0];let[t,n]=xe("marimo:commands",l),p;e[1]!==t||e[2]!==n?(p=m=>{n(Se([m,...t]).slice(0,_e))},e[1]=t,e[2]=n,e[3]=p):p=e[3];let r;return e[4]!==t||e[5]!==p?(r={recentCommands:t,addRecentCommand:p},e[4]=t,e[5]=p,e[6]=r):r=e[6],r}function Se(e){return[...new Set(e)]}function W(e){return e.dropdown!==void 0}function U(e,l=""){return e.flatMap(t=>t.label?W(t)?U(t.dropdown,`${l+t.label} > `):{...t,label:l+t.label}:[])}var He=T();function Ae(){let e=(0,He.c)(75),[l,t]=oe(),[n,p]=ie(),{saveAppConfig:r,saveUserConfig:m}=se(),g;e[0]!==m||e[1]!==t?(g=async d=>{await m({config:d}).then(()=>{t(c=>({...c,...d}))})},e[0]=m,e[1]=t,e[2]=g):g=e[2];let i=g,y;e[3]!==r||e[4]!==p?(y=async d=>{await r({config:d}).then(()=>{p(d)})},e[3]=r,e[4]=p,e[5]=y):y=e[5];let h=y,k;if(e[6]!==n||e[7]!==l.completion||e[8]!==l.display||e[9]!==l.keymap||e[10]!==h||e[11]!==i){let d;e[13]===n?d=e[14]:(d=P=>P!==n.width,e[13]=n,e[14]=d);let c;e[15]!==n||e[16]!==h?(c=P=>({label:`App config > Set width=${P}`,handle:()=>{h({...n,width:P})}}),e[15]=n,e[16]=h,e[17]=c):c=e[17];let H;e[18]!==l.display||e[19]!==i?(H={label:"Config > Set theme: dark",handle:()=>{i({display:{...l.display,theme:"dark"}})}},e[18]=l.display,e[19]=i,e[20]=H):H=e[20];let C;e[21]!==l.display||e[22]!==i?(C={label:"Config > Set theme: light",handle:()=>{i({display:{...l.display,theme:"light"}})}},e[21]=l.display,e[22]=i,e[23]=C):C=e[23];let A;e[24]!==l.display||e[25]!==i?(A={label:"Config > Set theme: system",handle:()=>{i({display:{...l.display,theme:"system"}})}},e[24]=l.display,e[25]=i,e[26]=A):A=e[26];let R=l.keymap.preset==="vim",M;e[27]!==l.keymap||e[28]!==i?(M=()=>{i({keymap:{...l.keymap,preset:"vim"}})},e[27]=l.keymap,e[28]=i,e[29]=M):M=e[29];let N;e[30]!==R||e[31]!==M?(N={label:"Config > Switch keymap to VIM",hidden:R,handle:M},e[30]=R,e[31]=M,e[32]=N):N=e[32];let D=l.keymap.preset==="default",j;e[33]!==l.keymap||e[34]!==i?(j=()=>{i({keymap:{...l.keymap,preset:"default"}})},e[33]=l.keymap,e[34]=i,e[35]=j):j=e[35];let u;e[36]!==D||e[37]!==j?(u={label:"Config > Switch keymap to default (current: VIM)",hidden:D,handle:j},e[36]=D,e[37]=j,e[38]=u):u=e[38];let x;e[39]!==l.completion||e[40]!==i?(x=()=>{i({completion:{...l.completion,copilot:!1}})},e[39]=l.completion,e[40]=i,e[41]=x):x=e[41];let v=l.completion.copilot!=="github",$;e[42]!==x||e[43]!==v?($={label:"Config > Disable GitHub Copilot",handle:x,hidden:v},e[42]=x,e[43]=v,e[44]=$):$=e[44];let _;e[45]!==l.completion||e[46]!==i?(_=()=>{i({completion:{...l.completion,copilot:"github"}})},e[45]=l.completion,e[46]=i,e[47]=_):_=e[47];let O=l.completion.copilot==="github",q;e[48]!==_||e[49]!==O?(q={label:"Config > Enable GitHub Copilot",handle:_,hidden:O},e[48]=_,e[49]=O,e[50]=q):q=e[50];let B=!l.display.reference_highlighting,w;e[51]!==l.display||e[52]!==i?(w=()=>{i({display:{...l.display,reference_highlighting:!1}})},e[51]=l.display,e[52]=i,e[53]=w):w=e[53];let b;e[54]!==B||e[55]!==w?(b={label:"Config > Disable reference highlighting",hidden:B,handle:w},e[54]=B,e[55]=w,e[56]=b):b=e[56];let f;e[57]!==l.display||e[58]!==i?(f=()=>{i({display:{...l.display,reference_highlighting:!0}})},e[57]=l.display,e[58]=i,e[59]=f):f=e[59];let E;e[60]!==l.display.reference_highlighting||e[61]!==f?(E={label:"Config > Enable reference highlighting",hidden:l.display.reference_highlighting,handle:f},e[60]=l.display.reference_highlighting,e[61]=f,e[62]=E):E=e[62];let o=l.display.cell_output==="above",a;e[63]!==l.display||e[64]!==i?(a=()=>{i({display:{...l.display,cell_output:"above"}})},e[63]=l.display,e[64]=i,e[65]=a):a=e[65];let F;e[66]!==o||e[67]!==a?(F={label:"Config > Set cell output area: above",hidden:o,handle:a},e[66]=o,e[67]=a,e[68]=F):F=e[68];let S=l.display.cell_output==="below",I;e[69]!==l.display||e[70]!==i?(I=()=>{i({display:{...l.display,cell_output:"below"}})},e[69]=l.display,e[70]=i,e[71]=I):I=e[71];let G;e[72]!==S||e[73]!==I?(G={label:"Config > Set cell output area: below",hidden:S,handle:I},e[72]=S,e[73]=I,e[74]=G):G=e[74],k=[...ce().filter(d).map(c),H,C,A,N,u,$,q,b,E,F,G].filter(Me),e[6]=n,e[7]=l.completion,e[8]=l.display,e[9]=l.keymap,e[10]=h,e[11]=i,e[12]=k}else k=e[12];return k}function Me(e){return!e.hidden}var Ne=T(),s=V(pe(),1),De=()=>{let e=(0,Ne.c)(37),[l,t]=X(me),n=re(),p=z(ke),r=z(ae),m;e[0]===p?m=e[1]:(m={cell:p},e[0]=p,e[1]=m);let g=de(m).flat();g=U(g);let i=Ae(),y=he();y=[...U(y),...U(i)];let h=y.filter(Ee),k=ee.keyBy(h,Fe),{recentCommands:d,addRecentCommand:c}=we(),H;e[2]===d?H=e[3]:(H=new Set(d),e[2]=d,e[3]=H);let C=H,A;e[4]!==r||e[5]!==t?(A=o=>{te(r.getHotkey("global.commandPalette").key)(o)&&(o.preventDefault(),t(Ie))},e[4]=r,e[5]=t,e[6]=A):A=e[6],ne(document,"keydown",A);let R;e[7]!==c||e[8]!==r||e[9]!==n||e[10]!==t?(R=(o,a)=>{let F=n[o];if(!F)return null;let S=r.getHotkey(o);return(0,s.jsxs)(K,{disabled:a.disabled,onSelect:()=>{c(o),t(!1),requestAnimationFrame(()=>{F()})},value:S.name,children:[(0,s.jsxs)("span",{children:[S.name,a.tooltip&&(0,s.jsx)("span",{className:"ml-2",children:a.tooltip})]}),(0,s.jsx)(J,{children:(0,s.jsx)(Q,{shortcut:S.key})})]},o)},e[7]=c,e[8]=r,e[9]=n,e[10]=t,e[11]=R):R=e[11];let M=R,N;e[12]!==c||e[13]!==r||e[14]!==t?(N=o=>{let{label:a,handle:F,props:S,hotkey:I}=o,G=S===void 0?{}:S;return(0,s.jsxs)(K,{disabled:G.disabled,onSelect:()=>{c(a),t(!1),requestAnimationFrame(()=>{F()})},value:a,children:[(0,s.jsxs)("span",{children:[a,G.tooltip&&(0,s.jsxs)("span",{className:"ml-2",children:["(",G.tooltip,")"]})]}),I&&(0,s.jsx)(J,{children:(0,s.jsx)(Q,{shortcut:r.getHotkey(I).key})})]},a)},e[12]=c,e[13]=r,e[14]=t,e[15]=N):N=e[15];let D=N,j=ue,u;e[16]===Symbol.for("react.memo_cache_sentinel")?(u=(0,s.jsx)(fe,{placeholder:"Type to search..."}),e[16]=u):u=e[16];let x=ge,v;e[17]===Symbol.for("react.memo_cache_sentinel")?(v=(0,s.jsx)(be,{children:"No results found."}),e[17]=v):v=e[17];let $=d.length>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(L,{heading:"Recently Used",children:d.map(o=>{let a=k[o];return le(o)?M(o,{disabled:a==null?void 0:a.disabled,tooltip:a==null?void 0:a.tooltip}):a&&!W(a)?D({label:a.label,handle:a.handleHeadless||a.handle,props:{disabled:a.disabled,tooltip:a.tooltip}}):null})}),(0,s.jsx)(ye,{})]}),_=L,O=r.iterate().map(o=>{if(C.has(o))return null;let a=k[o];return M(o,{disabled:a==null?void 0:a.disabled,tooltip:a==null?void 0:a.tooltip})}),q=h.map(o=>C.has(o.label)?null:D({label:o.label,handle:o.handleHeadless||o.handle,props:{disabled:o.disabled,tooltip:o.tooltip}})),B;e[18]!==C||e[19]!==D?(B=o=>C.has(o.label)?null:D({label:`Cell > ${o.label}`,handle:o.handleHeadless||o.handle,props:{disabled:o.disabled,tooltip:o.tooltip}}),e[18]=C,e[19]=D,e[20]=B):B=e[20];let w=g.map(B),b;e[21]!==_||e[22]!==q||e[23]!==w||e[24]!==O?(b=(0,s.jsxs)(_,{heading:"Commands",children:[O,q,w]}),e[21]=_,e[22]=q,e[23]=w,e[24]=O,e[25]=b):b=e[25];let f;e[26]!==x||e[27]!==b||e[28]!==v||e[29]!==$?(f=(0,s.jsxs)(x,{children:[v,$,b]}),e[26]=x,e[27]=b,e[28]=v,e[29]=$,e[30]=f):f=e[30];let E;return e[31]!==j||e[32]!==l||e[33]!==t||e[34]!==f||e[35]!==u?(E=(0,s.jsxs)(j,{open:l,onOpenChange:t,children:[u,f]}),e[31]=j,e[32]=l,e[33]=t,e[34]=f,e[35]=u,e[36]=E):E=e[36],E};function Ee(e){return!e.hotkey}function Fe(e){return e.label}function Ie(e){return!e}export{De as default};