@marimo-team/frontend 0.25.2-dev121 → 0.25.2-dev123

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.
@@ -14,7 +14,7 @@ import{a as e,t}from"./rolldown-runtime-B0Z9INg1.js";import{c as n,l as r,o as i
14
14
  ${new Uy(n,qy(e,t).toCode()).toCode()}
15
15
  ${n}
16
16
  `.trim()}function Yy(e){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=n===`field`&&typeof r==`string`?new Hy(Yi(r)):new Hy(r));return t}var Xy=(0,K.createContext)({fields:[],saveForm:Pt.NOOP,chartType:oa.LINE}),Zy=()=>(0,K.use)(Xy),Qy=K.forwardRef((e,t)=>{let n=(0,J.c)(7),{className:r,valueMap:i,...a}=e,[o,s]=Aa(!1),{locale:c}=zo(),l;n[0]===r?l=n[1]:(l=G(`relative flex touch-none select-none hover:cursor-pointer`,`data-[orientation=horizontal]:w-full data-[orientation=horizontal]:items-center`,`data-[orientation=vertical]:h-full data-[orientation=vertical]:justify-center`,`data-disabled:cursor-not-allowed`,r),n[0]=r,n[1]=l);let u;n[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=G(`relative grow overflow-hidden rounded-full bg-slate-200 dark:bg-accent/60`,`data-[orientation=horizontal]:h-2 data-[orientation=horizontal]:w-full`,`data-[orientation=vertical]:h-full data-[orientation=vertical]:w-2`),n[2]=u):u=n[2];let d;n[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,q.jsx)(ll,{"data-testid":`track`,className:u,children:(0,q.jsx)(dl,{"data-testid":`range`,className:G(`absolute bg-blue-500 dark:bg-primary`,`data-[orientation=horizontal]:h-full`,`data-[orientation=vertical]:w-full`,`data-disabled:opacity-50`)})}),n[3]=d):d=n[3];let f=Bi,p=a.value!=null&&a.value.length===1&&(0,q.jsx)(Ri,{children:Bo(i(a.value[0]),{locale:c})},a.value[0]),m;return n[4]!==f||n[5]!==p?(m=(0,q.jsx)(f,{children:p}),n[4]=f,n[5]=p,n[6]=m):m=n[6],(0,q.jsxs)(nl,{ref:t,className:l,...a,children:[d,(0,q.jsx)(Li,{children:(0,q.jsxs)(Ii,{delayDuration:0,open:o,children:[(0,q.jsx)(zi,{asChild:!0,children:(0,q.jsx)(vl,{"aria-label":a[`aria-label`],"aria-labelledby":a[`aria-labelledby`],"data-testid":`thumb`,className:`block h-4 w-4 rounded-full shadow-xs-solid border border-blue-500 dark:border-primary dark:bg-accent bg-white hover:bg-blue-300 focus:bg-blue-300 transition-colors focus-visible:outline-hidden data-disabled:pointer-events-none data-disabled:opacity-50`,onFocus:s.setTrue,onBlur:s.setFalse,onMouseEnter:s.setTrue,onMouseLeave:s.setFalse})}),m]})})]})});Qy.displayName=nl.displayName;var $y=class{tagName=`marimo-multiselect`;validator=H({initialValue:U(B()),label:B().nullable(),options:U(B()),fullWidth:V().default(!1),maxSelections:z().optional(),disabled:V().default(!1)});render(e){return(0,q.jsx)(eb,{...e.data,value:e.value,setValue:e.setValue})}},eb=e=>{let t=(0,J.c)(17),{options:n,label:r,value:i,setValue:a,fullWidth:o,maxSelections:s,disabled:c}=e,l=(0,K.useId)(),u;t[0]===n?u=t[1]:(u=n.map(tb),t[0]=n,t[1]=u);let d=u,f;t[2]===a?f=t[3]:(f=e=>a(e??[]),t[2]=a,t[3]=f);let p;t[4]!==c||t[5]!==o||t[6]!==l||t[7]!==d||t[8]!==s||t[9]!==f||t[10]!==i?(p=(0,q.jsx)(Q_,{id:l,options:d,value:i,onChange:f,multiple:!0,maxSelections:s,pinSelected:!0,compactChipTrigger:!0,fullWidth:o,disabled:c}),t[4]=c,t[5]=o,t[6]=l,t[7]=d,t[8]=s,t[9]=f,t[10]=i,t[11]=p):p=t[11];let m;return t[12]!==o||t[13]!==l||t[14]!==r||t[15]!==p?(m=(0,q.jsx)(kv,{label:r,controlId:l,fullWidth:o,children:p}),t[12]=o,t[13]=l,t[14]=r,t[15]=p,t[16]=m):m=t[16],m};function tb(e){return{value:e,label:e}}var nb=e=>{let t=(0,J.c)(5),{text:n,tooltip:r}=e,i;t[0]===r?i=t[1]:(i=r&&(0,q.jsx)(Vi,{content:r,children:(0,q.jsx)(Se,{className:`w-3 h-3 mt-0.5`})}),t[0]=r,t[1]=i);let a;return t[2]!==i||t[3]!==n?(a=(0,q.jsxs)(`h2`,{className:`font-semibold my-0 flex items-center gap-1`,children:[n,i]}),t[2]=i,t[3]=n,t[4]=a):a=t[4],a},rb=e=>{let t=(0,J.c)(5),{children:n,className:r}=e,i;t[0]===r?i=t[1]:(i=G(`flex flex-col gap-2`,r),t[0]=r,t[1]=i);let a;return t[2]!==n||t[3]!==i?(a=(0,q.jsx)(`div`,{className:i,children:n}),t[2]=n,t[3]=i,t[4]=a):a=t[4],a},ib=e=>{let t=(0,J.c)(4),{className:n}=e,r;t[0]===n?r=t[1]:(r=G(`my-1`,n),t[0]=n,t[1]=r);let i;return t[2]===r?i=t[3]:(i=(0,q.jsx)(`hr`,{className:r}),t[2]=r,t[3]=i),i},ab=e=>{let t=(0,J.c)(5),{children:n,className:r}=e,i;t[0]===r?i=t[1]:(i=G(`flex flex-col gap-1.5`,r),t[0]=r,t[1]=i);let a;return t[2]!==n||t[3]!==i?(a=(0,q.jsx)(`section`,{className:i,children:n}),t[2]=n,t[3]=i,t[4]=a):a=t[4],a},ob=e=>{let t=(0,J.c)(7),{Icon:n,text:r}=e,i;t[0]===n?i=t[1]:(i=(0,q.jsx)(n,{className:`w-3 h-3 mr-2`}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,q.jsx)(`span`,{children:r}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,q.jsxs)(`div`,{className:`flex items-center`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o},sb=e=>{let t=(0,J.c)(5),{children:n,className:r}=e,i;t[0]===r?i=t[1]:(i=G(`py-1`,r),t[0]=r,t[1]=i);let a;return t[2]!==n||t[3]!==i?(a=(0,q.jsx)(Vn,{className:i,children:n}),t[2]=n,t[3]=i,t[4]=a):a=t[4],a},cb=e=>{let t=(0,J.c)(3),{children:n,value:r}=e,i;return t[0]!==n||t[1]!==r?(i=(0,q.jsx)(Ln,{value:r,className:`border-none`,children:n}),t[0]=n,t[1]=r,t[2]=i):i=t[2],i},lb=e=>{let t=(0,J.c)(5),{children:n,wrapperClassName:r}=e,i;t[0]===r?i=t[1]:(i=G(`pb-2 flex flex-col gap-2`,r),t[0]=r,t[1]=i);let a;return t[2]!==n||t[3]!==i?(a=(0,q.jsx)(zn,{wrapperClassName:i,children:n}),t[2]=n,t[3]=i,t[4]=a):a=t[4],a},ub=e=>{let t=(0,J.c)(4),{code:n,insertNewCell:r,language:i}=e,a;return t[0]!==n||t[1]!==r||t[2]!==i?(a=(0,q.jsx)(Qa,{minHeight:`330px`,maxHeight:`330px`,code:n,language:i,showHideCode:!1,showCopyCode:!1,insertNewCell:r}),t[0]=n,t[1]=r,t[2]=i,t[3]=a):a=t[3],a},db=`__clear__`,fb=e=>{let t=(0,J.c)(23),{fieldName:n,columns:r,onValueChange:i,includeCountField:a}=e,o=a===void 0||a,s=ge(),c;t[0]===n?c=t[1]:(c=n.replace(`.field`,`.type`),t[0]=n,t[1]=c);let u=c,d;t[2]===n?d=t[3]:(d=n.replace(`.field`,`.selectedDataType`),t[2]=n,t[3]=d);let f=d,p;t[4]!==n||t[5]!==s||t[6]!==i||t[7]!==f||t[8]!==u?(p=()=>{s.setValue(n,``),s.setValue(u,``),s.setValue(f,``),i?.(``,void 0)},t[4]=n,t[5]=s,t[6]=i,t[7]=f,t[8]=u,t[9]=p):p=t[9];let m=p,h;t[10]!==m||t[11]!==r||t[12]!==n||t[13]!==s||t[14]!==o||t[15]!==i||t[16]!==f||t[17]!==u?(h=e=>{let{field:t}=e;return(0,q.jsx)(ce,{children:(0,q.jsx)(L,{children:(0,q.jsxs)(Ti,{...t,onValueChange:e=>{if(e===db){m();return}if(e===`__count__`){s.setValue(n,e),s.setValue(u,``),s.setValue(f,``),i?.(n,`number`);return}let t=r.find(t=>t.name===e);t&&(s.setValue(n,e),s.setValue(u,t.type),s.setValue(f,aa(t.type)),i?.(n,t.type))},value:t.value??``,children:[(0,q.jsx)(wi,{className:`w-40 truncate`,onClear:t.value?m:void 0,children:(0,q.jsx)(pi,{placeholder:`Select column`})}),(0,q.jsxs)(bi,{children:[t.value&&(0,q.jsx)(_i,{value:db,children:(0,q.jsxs)(`div`,{className:`flex items-center truncate`,children:[(0,q.jsx)(Ma,{className:`w-3 h-3 mr-2`}),`Clear`]})}),o&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(_i,{value:`__count__`,children:(0,q.jsxs)(`div`,{className:`flex items-center truncate`,children:[(0,q.jsx)(fo,{className:`w-3 h-3 mr-2`}),`Count of records`]})},`__count__`),(0,q.jsx)(xi,{})]}),r.map(Tb)]})]})})})},t[10]=m,t[11]=r,t[12]=n,t[13]=s,t[14]=o,t[15]=i,t[16]=f,t[17]=u,t[18]=h):h=t[18];let g;return t[19]!==n||t[20]!==s.control||t[21]!==h?(g=(0,q.jsx)(l,{control:s.control,name:n,render:h}),t[19]=n,t[20]=s.control,t[21]=h,t[22]=g):g=t[22],g},pb=e=>{let t=(0,J.c)(8),{fieldName:n,label:r,options:i,defaultValue:a}=e,o=ge(),s;t[0]!==a||t[1]!==r||t[2]!==i?(s=e=>{let{field:t}=e;return(0,q.jsxs)(ce,{className:`flex flex-row items-center justify-between`,children:[(0,q.jsx)(ke,{children:r}),(0,q.jsx)(L,{children:(0,q.jsxs)(Ti,{...t,onValueChange:t.onChange,value:t.value??a,children:[(0,q.jsx)(wi,{className:`truncate`,children:(0,q.jsx)(pi,{placeholder:`Select an option`})}),(0,q.jsx)(bi,{children:(0,q.jsx)(Ci,{children:i.filter(Eb).map(Db)})})]})})]})},t[0]=a,t[1]=r,t[2]=i,t[3]=s):s=t[3];let c;return t[4]!==n||t[5]!==o.control||t[6]!==s?(c=(0,q.jsx)(l,{control:o.control,name:n,render:s}),t[4]=n,t[5]=o.control,t[6]=s,t[7]=c):c=t[7],c},mb=e=>{let t=(0,J.c)(6),{fieldName:n,label:r}=e,i=ge(),a;t[0]===r?a=t[1]:(a=e=>{let{field:t}=e;return(0,q.jsxs)(ce,{className:`flex flex-row gap-2 items-center`,children:[(0,q.jsx)(ke,{children:r}),(0,q.jsx)(L,{children:(0,q.jsx)(uo,{...t,value:t.value??``,onValueChange:t.onChange,className:`text-xs h-5`})})]})},t[0]=r,t[1]=a);let o;return t[2]!==n||t[3]!==i.control||t[4]!==a?(o=(0,q.jsx)(l,{control:i.control,name:n,render:a}),t[2]=n,t[3]=i.control,t[4]=a,t[5]=o):o=t[5],o},hb=e=>{let t=(0,J.c)(17),n,r,i,a,o,s;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4],o=t[5],s=t[6]):({fieldName:r,label:o,className:n,inputClassName:i,isDisabled:a,...s}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o,t[6]=s);let c=ge(),u;t[7]!==n||t[8]!==i||t[9]!==a||t[10]!==o||t[11]!==s?(u=e=>{let{field:t}=e;return(0,q.jsxs)(ce,{className:G(`flex flex-row items-center gap-2`,n),children:[(0,q.jsx)(ke,{className:`whitespace-nowrap`,children:o}),(0,q.jsx)(L,{children:(0,q.jsx)(so,{...t,value:t.value,onValueChange:t.onChange,"aria-label":o,className:G(`w-16`,i),isDisabled:a,minValue:0,...s})})]})},t[7]=n,t[8]=i,t[9]=a,t[10]=o,t[11]=s,t[12]=u):u=t[12];let d;return t[13]!==r||t[14]!==c.control||t[15]!==u?(d=(0,q.jsx)(l,{control:c.control,name:r,render:u}),t[13]=r,t[14]=c.control,t[15]=u,t[16]=d):d=t[16],d},gb=e=>{let t=(0,J.c)(8),{fieldName:n,label:r,className:i,defaultValue:a}=e,o=ge(),s;t[0]!==i||t[1]!==a||t[2]!==r?(s=e=>{let{field:t}=e;return(0,q.jsxs)(ce,{className:G(`flex flex-row items-center gap-2`,i),children:[(0,q.jsx)(ke,{children:r}),(0,q.jsx)(L,{children:(0,q.jsx)(p,{checked:t.value??a??!1,onCheckedChange:t.onChange,className:`w-4 h-4`})})]})},t[0]=i,t[1]=a,t[2]=r,t[3]=s):s=t[3];let c;return t[4]!==n||t[5]!==o.control||t[6]!==s?(c=(0,q.jsx)(l,{control:o.control,name:n,render:s}),t[4]=n,t[5]=o.control,t[6]=s,t[7]=c):c=t[7],c},_b=e=>{let t=(0,J.c)(13),{fieldName:n,label:r,defaultValue:i,start:a,stop:o,step:s,className:c}=e,u=ge(),d=K.useId(),f;t[0]!==c||t[1]!==i||t[2]!==n||t[3]!==r||t[4]!==d||t[5]!==a||t[6]!==s||t[7]!==o?(f=e=>{let{field:t}=e,l=t.value??i,u=Number(l),f=e=>{typeof e==`string`&&(e=Number(e)),t.onChange(e)};return(0,q.jsxs)(ce,{className:G(`flex flex-row items-center gap-2 w-1/2`,c),children:[(0,q.jsx)(ke,{id:d,children:r}),(0,q.jsx)(L,{children:(0,q.jsx)(Qy,{...t,"aria-labelledby":d,id:n,className:`relative flex items-center select-none`,value:[u],min:a,max:o,step:s,onValueChange:e=>{let[t]=e;f(t)},onValueCommit:e=>{let[t]=e;f(t)},valueMap:Ob})})]})},t[0]=c,t[1]=i,t[2]=n,t[3]=r,t[4]=d,t[5]=a,t[6]=s,t[7]=o,t[8]=f):f=t[8];let p;return t[9]!==n||t[10]!==u.control||t[11]!==f?(p=(0,q.jsx)(l,{control:u.control,name:n,render:f}),t[9]=n,t[10]=u.control,t[11]=f,t[12]=p):p=t[12],p},vb=e=>{let t=(0,J.c)(28),{fieldName:n,label:r,className:i}=e,a=ge(),o;t[0]!==n||t[1]!==a?(o=a.watch(n),t[0]=n,t[1]=a,t[2]=o):o=t[2];let s=o,c;t[3]===s?c=t[4]:(c=s??[],t[3]=s,t[4]=c);let[u,d]=K.useState(c),f;t[5]!==u||t[6]!==n||t[7]!==a?(f=()=>{let e=[...u,`#000000`];d(e),a.setValue(n,e)},t[5]=u,t[6]=n,t[7]=a,t[8]=f):f=t[8];let p=f,m;t[9]!==u||t[10]!==n||t[11]!==a?(m=e=>{let t=u.filter((t,n)=>n!==e);d(t),a.setValue(n,t)},t[9]=u,t[10]=n,t[11]=a,t[12]=m):m=t[12];let h=m,g;t[13]!==u||t[14]!==n||t[15]!==a?(g=(e,t)=>{let r=[...u];r[e]=t,d(r),a.setValue(n,r)},t[13]=u,t[14]=n,t[15]=a,t[16]=g):g=t[16];let _=g,v;t[17]!==p||t[18]!==i||t[19]!==u||t[20]!==r||t[21]!==h||t[22]!==_?(v=()=>(0,q.jsxs)(ce,{className:G(`flex flex-col gap-2`,i),children:[(0,q.jsx)(ke,{children:r}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[u.map((e,t)=>(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`input`,{type:`color`,value:e,onChange:e=>_(t,e.target.value),className:`w-4 h-4 rounded cursor-pointer`}),(0,q.jsx)(`span`,{className:`text-xs text-muted-foreground font-mono`,children:e}),(0,q.jsx)(Ui,{variant:`ghost`,size:`sm`,onClick:()=>h(t),className:`h-4 w-4 p-0`,children:(0,q.jsx)(Ma,{className:`h-2 w-2`})})]},t)),(0,q.jsxs)(Ui,{variant:`outline`,size:`sm`,onClick:p,className:`w-fit h-6 text-xs`,children:[(0,q.jsx)(io,{className:`h-3 w-3 mr-1`}),`Add Color`]})]})]}),t[17]=p,t[18]=i,t[19]=u,t[20]=r,t[21]=h,t[22]=_,t[23]=v):v=t[23];let y;return t[24]!==n||t[25]!==a.control||t[26]!==v?(y=(0,q.jsx)(l,{control:a.control,name:n,render:v}),t[24]=n,t[25]=a.control,t[26]=v,t[27]=y):y=t[27],y},yb=e=>{let t=(0,J.c)(10),{fieldName:n,label:r}=e,i=ge(),a;t[0]!==n||t[1]!==i?(a=()=>{i.setValue(n,``)},t[0]=n,t[1]=i,t[2]=a):a=t[2];let o=a,s=kb,c;t[3]!==o||t[4]!==r?(c=e=>{let{field:t}=e;return(0,q.jsxs)(ce,{className:`flex flex-row items-center justify-between w-full`,children:[(0,q.jsx)(ke,{children:r}),(0,q.jsx)(L,{children:(0,q.jsxs)(Ti,{...t,onValueChange:e=>{e===db?o():t.onChange(e)},value:t.value??`yearmonthdate`,children:[(0,q.jsx)(wi,{onClear:t.value?o:void 0,children:(0,q.jsx)(pi,{placeholder:`Select unit`})}),(0,q.jsxs)(bi,{className:`w-72`,children:[t.value&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(_i,{value:db,children:(0,q.jsxs)(`div`,{className:`flex items-center truncate`,children:[(0,q.jsx)(Ma,{className:`w-3 h-3 mr-2`}),`Clear`]})}),(0,q.jsx)(xi,{})]}),(0,q.jsxs)(Ci,{children:[ea.map(s),(0,q.jsx)(xi,{}),na.map(s)]})]})]})})]})},t[3]=o,t[4]=r,t[5]=c):c=t[5];let u;return t[6]!==n||t[7]!==i.control||t[8]!==c?(u=(0,q.jsx)(l,{control:i.control,name:n,render:c}),t[6]=n,t[7]=i.control,t[8]=c,t[9]=u):u=t[9],u},bb=e=>{let t=(0,J.c)(9),{fieldName:n,label:r,defaultValue:i,onValueChange:a}=e,[o,s]=K.useState(!1),c=ge(),u;t[0]!==i||t[1]!==o||t[2]!==r||t[3]!==a?(u=e=>{let{field:t}=e;return(0,q.jsxs)(ce,{className:`flex flex-row items-center justify-between w-full`,children:[(0,q.jsx)(ke,{children:r}),(0,q.jsx)(L,{children:(0,q.jsxs)(Ti,{...t,onValueChange:e=>{t.onChange(e),a?.(e)},value:t.value??i,open:o,onOpenChange:s,children:[(0,q.jsx)(wi,{children:(0,q.jsx)(pi,{placeholder:`Select an option`})}),(0,q.jsx)(bi,{children:(0,q.jsx)(Ci,{children:ta.map(e=>{let t=h[e],n=e===`string`?`categorical`:e;return(0,q.jsx)(_i,{value:e,className:`flex flex-col items-start justify-center`,subtitle:o&&(0,q.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:ga[e]}),children:(0,q.jsx)(ob,{Icon:t,text:No(n)})},e)})})})]})})]})},t[0]=i,t[1]=o,t[2]=r,t[3]=a,t[4]=u):u=t[4];let d;return t[5]!==n||t[6]!==c.control||t[7]!==u?(d=(0,q.jsx)(l,{control:c.control,name:n,render:u}),t[5]=n,t[6]=c.control,t[7]=u,t[8]=d):d=t[8],d},xb=e=>{let t=(0,J.c)(12),{fieldName:n,selectedDataType:r,binFieldName:i,defaultAggregation:a}=e,o=ge(),s=r===`string`?sa:$i,{chartType:c}=Zy(),u=c!==oa.HEATMAP,d=Ab,f=jb,p;t[0]!==i||t[1]!==o?(p=e=>{let{value:t,previousValue:n,onChange:r}=e;t===`bin`?o.setValue(i,!0):n===`bin`&&o.setValue(i,!1),r(t)},t[0]=i,t[1]=o,t[2]=p):p=t[2];let m=p,h;t[3]!==s||t[4]!==a||t[5]!==m||t[6]!==u?(h=e=>{let{field:t}=e;return(0,q.jsx)(ce,{children:(0,q.jsx)(L,{children:(0,q.jsxs)(Ti,{...t,value:(t.value??a??`none`).toString(),onValueChange:e=>{m({value:e,previousValue:t.value,onChange:t.onChange})},children:[(0,q.jsx)(wi,{variant:`ghost`,children:(0,q.jsx)(pi,{})}),(0,q.jsx)(bi,{children:(0,q.jsxs)(Ci,{children:[(0,q.jsx)(fi,{children:`Aggregation`}),s.map(e=>{let t=Qi[e],n=d(ra[e]??`Other`),r=f({value:e,Icon:t??fo,subtitle:n});return e===`bin`?u?(0,q.jsxs)(`div`,{children:[(0,q.jsx)(xi,{}),r]},e):null:r})]})})]})})})},t[3]=s,t[4]=a,t[5]=m,t[6]=u,t[7]=h):h=t[7];let g;return t[8]!==n||t[9]!==o.control||t[10]!==h?(g=(0,q.jsx)(l,{control:o.control,name:n,render:h}),t[8]=n,t[9]=o.control,t[10]=h,t[11]=g):g=t[11],g},Sb=e=>{let t=(0,J.c)(7),{fieldName:n,saveFunction:r}=e,i=ge(),{fields:a}=Zy(),o=Mb,s;t[0]!==a||t[1]!==r?(s=e=>{let{field:t}=e,n=t.value?.map(Nb)??[];return(0,q.jsx)(ce,{children:(0,q.jsx)(L,{children:(0,q.jsx)(eb,{options:a?.map(Pb)??[],disabled:!1,value:n,setValue:e=>{let n=(typeof e==`function`?e([]):e).map(e=>o(e,a));t.onChange(n),r()},label:null,fullWidth:!1})})})},t[0]=a,t[1]=r,t[2]=s):s=t[2];let c;return t[3]!==n||t[4]!==i.control||t[5]!==s?(c=(0,q.jsx)(l,{control:i.control,name:n,render:s}),t[3]=n,t[4]=i.control,t[5]=s,t[6]=c):c=t[6],c},Cb=e=>{let t=(0,J.c)(5),{fieldName:n,label:r,defaultValue:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=ua.map(Fb),t[0]=a):a=t[0];let o=i??`ascending`,s;return t[1]!==n||t[2]!==r||t[3]!==o?(s=(0,q.jsx)(pb,{fieldName:n,label:r,options:a,defaultValue:o}),t[1]=n,t[2]=r,t[3]=o,t[4]=s):s=t[4],s},wb=e=>{let t=(0,J.c)(13),{fieldName:n}=e,r=ge(),i;t[0]===r.control?i=t[1]:(i={control:r.control},t[0]=r.control,t[1]=i);let a=d(i);if(!a[n]?.bin?.binned)return null;let o;t[2]!==n||t[3]!==a?(o=Number.isNaN(a[n]?.bin?.step),t[2]=n,t[3]=a,t[4]=o):o=t[4];let s=!o,c=`${n}.bin.step`,l;t[5]===c?l=t[6]:(l=(0,q.jsx)(hb,{fieldName:c,label:`Bin step`,inputClassName:`w-14`,placeholder:`0.5`}),t[5]=c,t[6]=l);let u=`${n}.bin.maxbins`,f;t[7]!==s||t[8]!==u?(f=(0,q.jsx)(hb,{fieldName:u,label:`Max bins`,inputClassName:`w-14`,isDisabled:s,placeholder:`10`}),t[7]=s,t[8]=u,t[9]=f):f=t[9];let p;return t[10]!==l||t[11]!==f?(p=(0,q.jsxs)(`div`,{className:`flex flex-row justify-between`,children:[l,f]}),t[10]=l,t[11]=f,t[12]=p):p=t[12],p};function Tb(e){if(e.name.trim()===``)return null;let t=h[e.type];return(0,q.jsx)(_i,{value:e.name,children:(0,q.jsxs)(`div`,{className:`flex items-center truncate`,children:[(0,q.jsx)(t,{className:`w-3 h-3 mr-2`}),e.name]})},e.name)}function Eb(e){return e.value!==``}function Db(e){return(0,q.jsx)(_i,{value:e.value,children:e.display},e.value)}function Ob(e){return e}function kb(e){let[t,n]=Zi[e];return(0,q.jsx)(_i,{value:e,className:`flex flex-row`,subtitle:(0,q.jsx)(`span`,{className:`text-xs text-muted-foreground ml-auto`,children:n}),children:t},e)}function Ab(e){return(0,q.jsx)(`span`,{className:`text-xs text-muted-foreground pr-10`,children:e})}function jb(e){let{value:t,Icon:n,subtitle:r}=e;return(0,q.jsx)(_i,{value:t,className:`flex flex-col items-start justify-center`,subtitle:r,children:(0,q.jsxs)(`div`,{className:`flex items-center`,children:[(0,q.jsx)(n,{className:`w-3 h-3 mr-2`}),No(t)]})},t)}function Mb(e,t){return{field:e,type:t.find(t=>t.name===e)?.type??`string`}}function Nb(e){return e.field}function Pb(e){return e.name}function Fb(e){return{display:(0,q.jsx)(ob,{Icon:e===`ascending`?Pl:cr,text:No(e)}),value:e}}function Ib(e){return da(e?.field)&&e?.field!==`__count__`}function Lb(e){return e?.selectedDataType===`string`&&Ib(e)}function Rb(e){return e?.selectedDataType===`number`&&Ib(e)}function zb(e){return e?.selectedDataType===`temporal`&&Ib(e)}function Bb(e){return e?.selectedDataType!==`temporal`&&Ib(e)}function Vb(e){let t=e?.type?aa(e.type):`string`;return{inferredDataType:t,selectedDataType:e?.selectedDataType||t}}var Hb=e=>{let t=(0,J.c)(14),{columnFieldName:n,column:r,columns:i,binFieldName:a,defaultAggregation:o}=e,s;t[0]===r?s=t[1]:(s=Vb(r),t[0]=r,t[1]=s);let{selectedDataType:c}=s,l;t[2]!==n||t[3]!==i?(l=(0,q.jsx)(fb,{fieldName:n,columns:i}),t[2]=n,t[3]=i,t[4]=l):l=t[4];let u;t[5]!==a||t[6]!==r||t[7]!==n||t[8]!==o||t[9]!==c?(u=Bb(r)&&(0,q.jsx)(xb,{fieldName:n.replace(`.field`,`.aggregate`),selectedDataType:c,binFieldName:a,defaultAggregation:o}),t[5]=a,t[6]=r,t[7]=n,t[8]=o,t[9]=c,t[10]=u):u=t[10];let d;return t[11]!==l||t[12]!==u?(d=(0,q.jsxs)(`div`,{className:`flex flex-row justify-between`,children:[l,u]}),t[11]=l,t[12]=u,t[13]=d):d=t[13],d},Ub=e=>{let t=(0,J.c)(7),{value:n,onValueChange:r}=e,i,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=Hi({variant:`outline`,className:`user-select-none w-full justify-between px-3`}),a=(0,q.jsx)(pi,{}),t[0]=i,t[1]=a):(i=t[0],a=t[1]);let o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,q.jsxs)(Si,{className:i,children:[a,(0,q.jsx)(hi,{asChild:!0,children:(0,q.jsx)(ja,{className:`h-4 w-4 opacity-50`})})]}),t[2]=o):o=t[2];let s;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,q.jsxs)(`div`,{className:`flex flex-row gap-2 items-center`,children:[o,(0,q.jsx)(bi,{children:la.map(Yb)})]}),t[3]=s):s=t[3];let c;return t[4]!==r||t[5]!==n?(c=(0,q.jsx)(Ti,{value:n,onValueChange:r,children:s}),t[4]=r,t[5]=n,t[6]=c):c=t[6],c},Wb=e=>{let t=(0,J.c)(10),{chartType:n}=e,r=ha[n],i;t[0]===r?i=t[1]:(i=(0,q.jsx)(r,{className:`w-4 h-4 mr-2`}),t[0]=r,t[1]=i);let a;t[2]===n?a=t[3]:(a=No(n),t[2]=n,t[3]=a);let o;t[4]!==i||t[5]!==a?(o=(0,q.jsxs)(`div`,{className:`flex items-center`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6];let s;return t[7]!==n||t[8]!==o?(s=(0,q.jsx)(_i,{value:n,className:`gap-2`,children:o}),t[7]=n,t[8]=o,t[9]=s):s=t[9],s},Gb=()=>{let e=(0,J.c)(22),t=ge(),n;e[0]===t.control?n=e[1]:(n={control:t.control},e[0]=t.control,e[1]=n);let r=d(n),i=Zy(),a=r.general?.xColumn,o;e[2]===a?o=e[3]:(o=Vb(a),e[2]=a,e[3]=o);let{inferredDataType:s}=o,c=i.chartType===oa.LINE||i.chartType===oa.BAR||i.chartType===oa.AREA,l;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,q.jsx)(nb,{text:`X-Axis`}),e[4]=l):l=e[4];let u;e[5]!==i.fields||e[6]!==a?(u=(0,q.jsx)(Hb,{columnFieldName:`general.xColumn.field`,column:a,columns:i.fields,binFieldName:`xAxis.bin.binned`}),e[5]=i.fields,e[6]=a,e[7]=u):u=e[7];let f;e[8]!==s||e[9]!==a?(f=Ib(a)&&(0,q.jsx)(bb,{label:`Data Type`,fieldName:`general.xColumn.selectedDataType`,defaultValue:s}),e[8]=s,e[9]=a,e[10]=f):f=e[10];let p;e[11]===a?p=e[12]:(p=zb(a)&&(0,q.jsx)(yb,{fieldName:`general.xColumn.timeUnit`,label:`Time Resolution`}),e[11]=a,e[12]=p);let m;e[13]!==c||e[14]!==r.general?.xColumn?.sort||e[15]!==a?(m=Ib(a)&&c&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Cb,{fieldName:`general.xColumn.sort`,label:`Sort`,defaultValue:r.general?.xColumn?.sort}),Rb(a)&&(0,q.jsx)(wb,{fieldName:`xAxis`})]}),e[13]=c,e[14]=r.general?.xColumn?.sort,e[15]=a,e[16]=m):m=e[16];let h;return e[17]!==u||e[18]!==f||e[19]!==p||e[20]!==m?(h=(0,q.jsxs)(ab,{children:[l,u,f,p,m]}),e[17]=u,e[18]=f,e[19]=p,e[20]=m,e[21]=h):h=e[21],h},Kb=()=>{let e=(0,J.c)(29),t=ge(),n;e[0]===t.control?n=e[1]:(n={control:t.control},e[0]=t.control,e[1]=n);let r=d(n),i=Zy(),a=r.general?.yColumn,o=a?.field,s;e[2]===o?s=e[3]:(s=da(o),e[2]=o,e[3]=s);let c=s,l=r.general?.xColumn?.field,u;e[4]===l?u=e[5]:(u=da(l),e[4]=l,e[5]=u);let f=u,p;e[6]===a?p=e[7]:(p=Vb(a),e[6]=a,e[7]=p);let{inferredDataType:m}=p,h;Rb(a)?h=_a:Lb(a)&&(h=`count`);let g;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,q.jsx)(nb,{text:`Y-Axis`}),e[8]=g):g=e[8];let _;e[9]!==i.fields||e[10]!==h||e[11]!==a?(_=(0,q.jsx)(Hb,{columnFieldName:`general.yColumn.field`,column:a,columns:i.fields,binFieldName:`yAxis.bin.binned`,defaultAggregation:h}),e[9]=i.fields,e[10]=h,e[11]=a,e[12]=_):_=e[12];let v;e[13]!==m||e[14]!==a?(v=Ib(a)&&(0,q.jsx)(bb,{label:`Data Type`,fieldName:`general.yColumn.selectedDataType`,defaultValue:m}),e[13]=m,e[14]=a,e[15]=v):v=e[15];let y;e[16]===a?y=e[17]:(y=zb(a)&&(0,q.jsx)(yb,{fieldName:`general.yColumn.timeUnit`,label:`Time Resolution`}),e[16]=a,e[17]=y);let b;e[18]!==f||e[19]!==c?(b=c&&f&&(0,q.jsx)(gb,{fieldName:`general.horizontal`,label:`Invert axis`}),e[18]=f,e[19]=c,e[20]=b):b=e[20];let x;e[21]===a?x=e[22]:(x=Rb(a)&&(0,q.jsx)(wb,{fieldName:`yAxis`}),e[21]=a,e[22]=x);let S;return e[23]!==b||e[24]!==x||e[25]!==_||e[26]!==v||e[27]!==y?(S=(0,q.jsxs)(ab,{children:[g,_,v,y,b,x]}),e[23]=b,e[24]=x,e[25]=_,e[26]=v,e[27]=y,e[28]=S):S=e[28],S},qb=()=>{let e=(0,J.c)(13),{fields:t}=Zy(),n=ge(),r;e[0]===n.control?r=e[1]:(r={control:n.control},e[0]=n.control,e[1]=r);let i=d(r).general?.colorByColumn,a;e[2]===i?a=e[3]:(a=Rb(i),e[2]=i,e[3]=a);let o=a,s;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,q.jsx)(nb,{text:`Color by`}),e[4]=s):s=e[4];let c;e[5]!==i||e[6]!==t?(c=(0,q.jsx)(Hb,{columnFieldName:`general.colorByColumn.field`,column:i,columns:t,binFieldName:`color.bin.binned`}),e[5]=i,e[6]=t,e[7]=c):c=e[7];let l;e[8]===o?l=e[9]:(l=o&&(0,q.jsx)(wb,{fieldName:`color`}),e[8]=o,e[9]=l);let u;return e[10]!==c||e[11]!==l?(u=(0,q.jsxs)(ab,{children:[s,c,l]}),e[10]=c,e[11]=l,e[12]=u):u=e[12],u},Jb=()=>{let e=(0,J.c)(7),t=Zy().fields,n=ge(),r;e[0]===n.control?r=e[1]:(r={control:n.control},e[0]=n.control,e[1]=r);let i=d(r),a;e[2]!==t||e[3]!==i.general?.facet?(a=e=>{let n=i.general?.facet?.[e],r=da(n?.field),{inferredDataType:a}=Vb(n),o=e===`row`?`general.facet.row.linkYAxis`:`general.facet.column.linkXAxis`;return(0,q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,q.jsxs)(`div`,{className:`flex flex-row justify-between`,children:[(0,q.jsx)(`p`,{className:`font-semibold`,children:No(e)}),(0,q.jsx)(fb,{fieldName:`general.facet.${e}.field`,columns:t})]}),r&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(bb,{label:`Data Type`,fieldName:`general.facet.${e}.selectedDataType`,defaultValue:a}),zb(n)&&(0,q.jsx)(yb,{fieldName:`general.facet.${e}.timeUnit`,label:`Time Resolution`}),Rb(n)&&(0,q.jsxs)(`div`,{className:`flex flex-row justify-between`,children:[(0,q.jsx)(gb,{fieldName:`general.facet.${e}.binned`,label:`Binned`,defaultValue:!0}),(0,q.jsx)(hb,{fieldName:`general.facet.${e}.maxbins`,label:`Max Bins`,placeholder:`6`,defaultValue:6})]}),(0,q.jsx)(Cb,{fieldName:`general.facet.${e}.sort`,label:`Sort`}),(0,q.jsx)(gb,{fieldName:o,label:`Link ${e===`row`?`Y`:`X`} Axes`,defaultValue:!0})]})]})},e[2]=t,e[3]=i.general?.facet,e[4]=a):a=e[4];let o=a,s;return e[5]===o?s=e[6]:(s=(0,q.jsxs)(ab,{className:`gap-3`,children:[o(`row`),o(`column`)]}),e[5]=o,e[6]=s),s};function Yb(e){return(0,q.jsx)(Wb,{chartType:e},e)}var Xb=()=>{let e=(0,J.c)(17),t=ge(),n;e[0]===t.control?n=e[1]:(n={control:t.control},e[0]=t.control,e[1]=n);let r=d(n),i=r.general?.yColumn,a=r.general?.colorByColumn,o=i?.field,s;e[2]===o?s=e[3]:(s=da(o),e[2]=o,e[3]=s);let c=s,{chartType:l}=Zy(),u;e[4]!==l||e[5]!==a?.field?(u=da(a?.field)&&(l===oa.BAR||l===oa.LINE),e[4]=l,e[5]=a?.field,e[6]=u):u=e[6];let f=u,p,m,h;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,q.jsx)(Vi,{delayDuration:100,content:`To persist a chart, add the generated Python code to a new cell.`,children:(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(yo,{className:`h-3.5 w-3.5 mb-0.5 text-muted-foreground`}),(0,q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Charts are not saved.`})]})}),m=(0,q.jsx)(Gb,{}),h=(0,q.jsx)(Kb,{}),e[7]=p,e[8]=m,e[9]=h):(p=e[7],m=e[8],h=e[9]);let g;e[10]!==f||e[11]!==c?(g=c&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(qb,{}),f&&(0,q.jsx)(`div`,{className:`flex flex-row gap-2`,children:(0,q.jsx)(gb,{fieldName:`general.stacking`,label:`Stacked`})})]}),e[10]=f,e[11]=c,e[12]=g):g=e[12];let _,v;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,q.jsx)(ib,{}),v=(0,q.jsx)(Qb,{}),e[13]=_,e[14]=v):(_=e[13],v=e[14]);let y;return e[15]===g?y=e[16]:(y=(0,q.jsxs)(q.Fragment,{children:[p,m,h,g,_,v]}),e[15]=g,e[16]=y),y},Zb=()=>{let e=(0,J.c)(15),{chartType:t}=Zy(),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,q.jsx)(sb,{className:`pt-0`,children:(0,q.jsx)(nb,{text:`General`})}),e[0]=n):n=e[0];let r;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,q.jsx)(mb,{label:`Plot title`,fieldName:`general.title`}),e[1]=r):r=e[1];let i=t===oa.SCATTER,a;e[2]===i?a=e[3]:(a=(0,q.jsxs)(cb,{value:`general`,children:[n,(0,q.jsxs)(lb,{children:[r,(0,q.jsx)(gb,{fieldName:`style.gridLines`,label:`Show grid lines`,defaultValue:i})]})]}),e[2]=i,e[3]=a);let o;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,q.jsx)(sb,{children:(0,q.jsx)(nb,{text:`X-Axis`})}),e[4]=o):o=e[4];let s;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,q.jsxs)(cb,{value:`xAxis`,children:[o,(0,q.jsxs)(lb,{children:[(0,q.jsx)(mb,{label:`Label`,fieldName:`xAxis.label`}),(0,q.jsx)(_b,{fieldName:`xAxis.width`,label:`Width`,defaultValue:400,start:200,stop:800})]})]}),e[5]=s):s=e[5];let c;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,q.jsx)(sb,{children:(0,q.jsx)(nb,{text:`Y-Axis`})}),e[6]=c):c=e[6];let l;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,q.jsxs)(cb,{value:`yAxis`,children:[c,(0,q.jsxs)(lb,{children:[(0,q.jsx)(mb,{label:`Label`,fieldName:`yAxis.label`}),(0,q.jsx)(_b,{fieldName:`yAxis.height`,label:`Height`,defaultValue:300,start:150,stop:600})]})]}),e[7]=l):l=e[7];let u;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,q.jsx)(sb,{children:(0,q.jsx)(nb,{text:`Color`})}),e[8]=u):u=e[8];let d;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,q.jsx)(pb,{fieldName:`color.field`,label:`Field`,options:fa.map($b),defaultValue:ma}),e[9]=d):d=e[9];let f,p;e[10]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,q.jsx)(pb,{fieldName:`color.scheme`,label:`Color scheme`,defaultValue:Xi,options:va.map(ex)}),p=(0,q.jsx)(vb,{fieldName:`color.range`,label:`Color range`}),e[10]=f,e[11]=p):(f=e[10],p=e[11]);let m;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,q.jsxs)(cb,{value:`color`,children:[u,(0,q.jsxs)(lb,{children:[d,f,p,(0,q.jsxs)(`p`,{className:`text-xs`,children:[(0,q.jsx)(Se,{className:`w-2.5 h-2.5 inline mb-1 mr-1`}),`If you are using color range, color scheme will be ignored.`]})]})]}),e[12]=m):m=e[12];let h;return e[13]===a?h=e[14]:(h=(0,q.jsxs)(Hn,{type:`multiple`,children:[a,s,l,m]}),e[13]=a,e[14]=h),h},Qb=()=>{let e=(0,J.c)(11),{saveForm:t}=Zy(),n=ge(),r;e[0]===n.control?r=e[1]:(r={control:n.control},e[0]=n.control,e[1]=r);let i=d(r).tooltips?.auto,a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,q.jsx)(sb,{className:`pt-0`,children:(0,q.jsx)(nb,{text:`Faceting`,tooltip:`Repeat the chart for each unique field value`})}),e[2]=a):a=e[2];let o;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,q.jsxs)(cb,{value:`facet`,children:[a,(0,q.jsx)(lb,{children:(0,q.jsx)(Jb,{})})]}),e[3]=o):o=e[3];let s;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,q.jsx)(sb,{children:(0,q.jsx)(nb,{text:`Tooltips`})}),e[4]=s):s=e[4];let c;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,q.jsx)(gb,{fieldName:`tooltips.auto`,label:`Include X, Y and Color`}),e[5]=c):c=e[5];let l;e[6]!==i||e[7]!==t?(l=!i&&(0,q.jsx)(Sb,{fieldName:`tooltips.fields`,saveFunction:t}),e[6]=i,e[7]=t,e[8]=l):l=e[8];let u;return e[9]===l?u=e[10]:(u=(0,q.jsxs)(Hn,{type:`multiple`,children:[o,(0,q.jsxs)(cb,{value:`tooltips`,children:[s,(0,q.jsxs)(lb,{wrapperClassName:`flex-row justify-between`,children:[c,l]})]})]}),e[9]=l,e[10]=u),u};function $b(e){return{display:No(e),value:e}}function ex(e){return{display:No(e),value:e}}var tx=()=>{let e=(0,J.c)(17),t=ge(),n;e[0]===t.control?n=e[1]:(n={control:t.control},e[0]=t.control,e[1]=n);let r=d(n),i=r.general?.xColumn?.field,a;e[2]===i?a=e[3]:(a=da(i),e[2]=i,e[3]=a);let o=a,s=r.general?.yColumn?.field,c;e[4]===s?c=e[5]:(c=da(s),e[4]=s,e[5]=c);let l=c,u;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,q.jsx)(Gb,{}),e[6]=u):u=e[6];let f;e[7]===o?f=e[8]:(f=o&&(0,q.jsx)(hb,{fieldName:`xAxis.bin.maxbins`,label:`Number of boxes (max)`,className:`justify-between`}),e[7]=o,e[8]=f);let p;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,q.jsx)(Kb,{}),e[9]=p):p=e[9];let m;e[10]===l?m=e[11]:(m=l&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(hb,{fieldName:`yAxis.bin.maxbins`,label:`Number of boxes (max)`,className:`justify-between`}),(0,q.jsx)(qb,{})]}),e[10]=l,e[11]=m);let h,g;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,q.jsx)(ib,{}),h=(0,q.jsx)(Qb,{}),e[12]=h,e[13]=g):(h=e[12],g=e[13]);let _;return e[14]!==f||e[15]!==m?(_=(0,q.jsxs)(q.Fragment,{children:[u,f,p,m,g,h]}),e[14]=f,e[15]=m,e[16]=_):_=e[16],_},nx=()=>{let e=(0,J.c)(25),t=ge(),{fields:n}=Zy(),r;e[0]===t.control?r=e[1]:(r={control:t.control},e[0]=t.control,e[1]=r);let i=d(r),a=i.general?.colorByColumn,o=i.general?.yColumn?.selectedDataType;(o===``||!o)&&(o=`string`);let s;e[2]===a?s=e[3]:(s=a?.type?aa(a.type):`string`,e[2]=a,e[3]=s);let c=s,l;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,q.jsx)(nb,{text:`Color by`}),e[4]=l):l=e[4];let u;e[5]===n?u=e[6]:(u=(0,q.jsx)(fb,{fieldName:`general.colorByColumn.field`,columns:n,includeCountField:!1}),e[5]=n,e[6]=u);let f;e[7]!==a?.field||e[8]!==c?(f=da(a?.field)&&(0,q.jsx)(bb,{fieldName:`general.colorByColumn.selectedDataType`,label:`Data Type`,defaultValue:c}),e[7]=a?.field,e[8]=c,e[9]=f):f=e[9];let p;e[10]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,q.jsx)(nb,{text:`Size by`}),e[10]=p):p=e[10];let m;e[11]===n?m=e[12]:(m=(0,q.jsx)(fb,{fieldName:`general.yColumn.field`,columns:n}),e[11]=n,e[12]=m);let h;e[13]===o?h=e[14]:(h=(0,q.jsx)(xb,{fieldName:`general.yColumn.aggregate`,selectedDataType:o,binFieldName:`yAxis.bin.binned`}),e[13]=o,e[14]=h);let g;e[15]!==m||e[16]!==h?(g=(0,q.jsxs)(`div`,{className:`flex flex-row justify-between`,children:[m,h]}),e[15]=m,e[16]=h,e[17]=g):g=e[17];let _,v,y;e[18]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,q.jsx)(hb,{fieldName:`style.innerRadius`,label:`Donut size`,className:`w-32`}),_=(0,q.jsx)(ib,{}),v=(0,q.jsx)(Qb,{}),e[18]=_,e[19]=v,e[20]=y):(_=e[18],v=e[19],y=e[20]);let b;return e[21]!==u||e[22]!==f||e[23]!==g?(b=(0,q.jsxs)(q.Fragment,{children:[l,u,f,p,g,y,_,v]}),e[21]=u,e[22]=f,e[23]=g,e[24]=b):b=e[24],b},rx=e=>{let t=(0,J.c)(8),{baseSpec:n,data:r,height:i}=e,{theme:a}=Lo();if(!r){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,q.jsx)(`div`,{children:`No data`}),t[0]=e):e=t[0],e}let o;t[1]!==r||t[2]!==i||t[3]!==a?(o=e=>{if(typeof e==`string`)return(0,q.jsx)(Pr,{children:e});let t=pa(e,r);return(0,q.jsx)(K.Suspense,{fallback:(0,q.jsx)(ix,{}),children:(0,q.jsx)(li,{spec:t,"data-container-width":bs(t),options:{theme:a===`dark`?`dark`:void 0,height:i,actions:{export:!0,source:!1,compiled:!1,editor:!1},mode:`vega`,renderer:`canvas`,tooltip:cs.call}})})},t[1]=r,t[2]=i,t[3]=a,t[4]=o):o=t[4];let s=o,c;return t[5]!==n||t[6]!==s?(c=(0,q.jsx)(`div`,{className:`h-full m-auto rounded-md w-full`,children:s(n)}),t[5]=n,t[6]=s,t[7]=c):c=t[7],c},ix=()=>{let e=(0,J.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,q.jsx)(Pr,{className:`mt-14`,children:`Loading chart...`}),e[0]=t):t=e[0],t},ax=H({binned:V().optional(),step:z().optional(),maxbins:z().optional()}),ox=H({field:B().optional(),type:Ze([...Gv,``]).catch(`unknown`).optional(),selectedDataType:Ze([...ta,``]).optional(),sort:Ze(ua).default(`ascending`).optional(),timeUnit:Ze(ia).optional()}),sx=ox.extend({aggregate:Ze($i).default(ma).optional()}),cx=ox.extend({linkYAxis:V().default(!0),binned:V().default(!0),maxbins:z().default(6)}),lx=ox.extend({linkXAxis:V().default(!0),binned:V().default(!0),maxbins:z().default(6)}),ux=H({general:H({title:B().optional(),xColumn:sx.optional(),yColumn:sx.optional(),colorByColumn:sx.optional(),facet:H({row:cx,column:lx}).optional(),horizontal:V().optional(),stacking:V().optional()}).optional(),xAxis:H({label:B().optional(),width:z().optional(),bin:ax.optional()}).optional(),yAxis:H({label:B().optional(),height:z().optional(),bin:ax.optional()}).optional(),color:H({field:Ze([...fa,ma]).default(ma),scheme:B().default(Xi).optional(),range:U(B()).optional(),domain:U(B()).optional(),bin:ax.optional()}).optional(),style:H({innerRadius:z().optional(),gridLines:V().optional()}).optional(),tooltips:H({auto:V(),fields:U(H({field:B(),type:Ze(Gv).catch(`unknown`)}))}).default({auto:!0,fields:[]}).optional()});function dx(){return{general:{facet:{row:{linkYAxis:!0,binned:!0,maxbins:6},column:{linkXAxis:!0,binned:!0,maxbins:6}}},color:{field:ma,scheme:`default`},tooltips:{auto:!0,fields:[]}}}var fx=`marimo:charts:v2`,px=H({tabName:B().transform(e=>e),chartType:B().transform(e=>e),config:ux}),mx=U(Ue([B().transform(e=>e),U(px)])),hx=new E(fx,mx,()=>[]),gx={getItem:e=>{try{let t=hx.get(e);return new Map(t)}catch(e){return W.warn(`Error getting chart storage`,e),new Map}},setItem:(e,t)=>{hx.set(e,[...t.entries()])},removeItem:e=>{hx.remove(e)}},_x=Qt(fx,new Map,gx);function vx(e,t){let n=No(t);return e===0?`${n} Chart`:`${n} Chart ${e+1}`}var yx=gx.getItem(fx);function bx(e){let t=yx.get(e);return t?t.length>0:!1}var xx=`bar`,Sx=`table`,Cx=290,wx=5e4,Tx=50;function Ex(e,t){let n=e??[];return!t||t.length===0?n:Eo([...n,...t],e=>e[0])}var Dx=({cellId:e,data:t,dataTable:r,totalRows:i,columns:a,getDataUrl:o,fieldTypes:s,rowHeaders:c,displayHeader:l,onCloseChartBuilder:u})=>{let[d,f]=n(_x),p=e?d.get(e)??[]:[],[m,h]=(0,K.useState)(Sx),[g,_]=(0,K.useState)(p.length),v=(0,K.useRef)(l);if(l&&!v.current&&p.length===0&&e){v.current=l;let t=vx(0,xx),n=new Map(d);n.set(e,[{tabName:t,chartType:xx,config:dx()}]),f(n),_(1),h(t)}if(v.current=l,!l||p.length===0&&!l)return r;let y=()=>{if(!e)return;let t=vx(g,xx),n=new Map(d);n.set(e,[...p,{tabName:t,chartType:xx,config:dx()}]),f(n),_(g+1),h(t)},b=t=>{if(!e)return;let n=p.findIndex(e=>e.tabName===t),r=p.filter(e=>e.tabName!==t),i=new Map(d);i.set(e,r),f(i),r.length===0?u?.():t===m&&(n<r.length?h(r[n].tabName):h(r[r.length-1].tabName))},x=({tabName:t,chartType:n,chartConfig:r})=>{if(!e)return;let i=new Map(d);i.set(e,p.map(e=>e.tabName===t?{...e,chartType:n,config:r}:e)),f(i)},S=(t,n)=>{if(!e)return;let r=d.get(e)??[],i=r.findIndex(e=>e.tabName===t);if(i===-1)return;let a=r.map(e=>e.tabName===t?{...e,chartType:n,tabName:vx(i,n)}:e),o=new Map(d).set(e,a);f(o),h(a[i].tabName)},C=i===`too_many`||i>wx||a>Tx;return(0,q.jsxs)(Fi,{value:m,className:`-mt-1`,children:[(0,q.jsxs)(Pi,{part:`table-tabs`,children:[(0,q.jsx)(Mi,{className:`text-xs`,value:Sx,onClick:()=>h(Sx),children:`Table`}),p.map((e,t)=>(0,q.jsxs)(Mi,{className:`text-xs`,value:e.tabName,onClick:()=>h(e.tabName),children:[e.tabName,(0,q.jsx)(Ma,{className:`w-3 h-3 ml-1 mt-[0.5px] hover:text-red-500 hover:font-semibold`,onClick:t=>{t.stopPropagation(),b(e.tabName)}})]},t)),(0,q.jsx)(Ui,{variant:`text`,size:`icon`,onClick:y,title:`Add chart`,children:`+`})]}),(0,q.jsx)(Ni,{className:`mt-1 overflow-hidden`,value:Sx,children:r}),p.map((e,n)=>(0,q.jsx)(Ni,{value:e.tabName,className:`h-[400px] mt-0`,children:(0,q.jsx)(kx,{tableData:t,chartConfig:e.config,chartType:e.chartType,saveChart:t=>{x({tabName:e.tabName,chartType:e.chartType,chartConfig:t})},saveChartType:t=>{S(e.tabName,t)},getDataUrl:o,hasSchema:!!s?.length,fieldTypes:Ex(s??Qr(r.props.data),c),isLargeDataset:C})},n))]})},Ox=`X and Y columns are not set`,kx=({tableData:e,chartConfig:t,chartType:n,saveChart:r,saveChartType:i,getDataUrl:a,fieldTypes:o,hasSchema:s=!!o?.length,isLargeDataset:c})=>{let{theme:l}=Lo(),u=D({defaultValues:t??dx(),resolver:y(ux)}),[d,f]=(0,K.useState)(n),[p,m]=(0,K.useState)(!1),[h,g]=(0,K.useState)(!c),{ref:_}=Os(),v=As(s?o:null),{data:b,isPending:x,error:S}=Ko(async()=>{if(!a||e.length===0||!h)return[];let t=await a({});if(Array.isArray(t.data_url))return t.data_url;let n;return n=t.format===`arrow`?{type:`arrow`}:t.format===`json`?{type:`json`}:{type:`csv`,parse:ys(v&&Object.fromEntries(v.map(([e,[t]])=>[e,t])),{parseDates:!0})},ss(t.data_url,n)},[e,h,v]),C=u.watch(),w=(0,K.useMemo)(()=>structuredClone(C),[C]),T=ca(d,w,l,`container`,Cx),E=(0,K.useMemo)(()=>x?(0,q.jsx)(ri,{}):S?(0,q.jsx)(Ur,{error:S}):h?(0,q.jsx)(rx,{baseSpec:T,data:b,height:Cx}):(0,q.jsxs)(gs,{variant:`warning`,className:`flex flex-row gap-2 items-center w-2/3 mx-auto`,children:[(0,q.jsx)(yo,{className:`h-4 w-4 mt-1`}),(0,q.jsxs)(ms,{className:`flex flex-row justify-between items-center w-full`,children:[(0,q.jsx)(`span`,{children:`Rendering large datasets is not well supported and may crash the browser`}),(0,q.jsx)(Ui,{variant:`warn`,onClick:()=>g(!0),className:`h-8`,children:`Proceed`})]})]}),[x,S,h,T,b]);return(0,q.jsxs)(`div`,{className:`flex flex-row gap-2 h-full rounded-md border-t pr-2`,children:[(0,q.jsxs)(`div`,{className:`relative flex flex-col gap-2 overflow-auto px-2 py-3 scrollbar-thin transition-width duration-200 ${p?`w-8`:`w-[300px]`}`,children:[!p&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Ub,{value:d,onValueChange:e=>{f(e),i(e)}}),(0,q.jsx)(Ax,{form:u,saveChart:r,fieldTypes:o,chartType:d})]}),(0,q.jsx)(Ui,{variant:`outline`,size:`icon`,className:`border-border ml-auto`,onClick:()=>m(e=>!e),title:p?`Expand sidebar`:`Collapse sidebar`,children:p?(0,q.jsx)(Pa,{className:`w-4 h-5`}):(0,q.jsx)(ki,{className:`w-4 h-5`})})]}),(0,q.jsx)(`div`,{className:`flex-1 overflow-auto h-full w-full mt-3`,children:(()=>{let e=Ox;return typeof T!=`string`&&(e=Jy(T,`_df`,`_chart`)),(0,q.jsxs)(Fi,{defaultValue:`chart`,children:[(0,q.jsx)(`div`,{className:`flex flex-row gap-1.5 items-center`,children:(0,q.jsxs)(Pi,{children:[(0,q.jsxs)(Mi,{value:`chart`,className:`h-6`,children:[(0,q.jsx)(Ji,{className:`text-muted-foreground mr-2 w-4 h-4`}),`Chart`]}),(0,q.jsxs)(Mi,{value:`code`,className:`h-6`,children:[(0,q.jsx)(ks,{className:`text-muted-foreground mr-2`}),`Python code`]}),!1]})}),(0,q.jsx)(Ni,{value:`chart`,ref:_,children:E}),(0,q.jsx)(Ni,{value:`code`,children:(0,q.jsx)(ub,{code:e,insertNewCell:e!==Ox,language:`python`})}),!1]})})()})]})},Ax=e=>{let t=(0,J.c)(28),{form:n,saveChart:r,fieldTypes:i,chartType:a}=e,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=[],t[0]=o):o=t[0];let s=o;if(i){let e;t[1]===i?e=t[2]:(e=i.map(jx),t[1]=i,t[2]=e),s=e}let c;t[3]!==n||t[4]!==r?(c=()=>{let e=n.getValues();r(e)},t[3]=n,t[4]=r,t[5]=c):c=t[5];let l=Go(c,300),u=Xb;a===oa.PIE?u=nx:a===oa.HEATMAP&&(u=tx);let d;t[6]!==a||t[7]!==l||t[8]!==s?(d={fields:s,saveForm:l,chartType:a},t[6]=a,t[7]=l,t[8]=s,t[9]=d):d=t[9];let f;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,q.jsxs)(Mi,{value:`data`,className:`w-1/2 h-6`,children:[(0,q.jsx)(Gi,{className:`w-4 h-4 mr-2`}),`Data`]}),t[10]=f):f=t[10];let p;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,q.jsxs)(Pi,{className:`w-full`,children:[f,(0,q.jsxs)(Mi,{value:`style`,className:`w-1/2 h-6`,children:[(0,q.jsx)(ee,{className:`w-4 h-4 mr-2`}),`Style`]})]}),t[11]=p):p=t[11];let m;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,q.jsx)(`hr`,{className:`my-2`}),t[12]=m):m=t[12];let h;t[13]===u?h=t[14]:(h=(0,q.jsxs)(Ni,{value:`data`,children:[m,(0,q.jsx)(rb,{children:(0,q.jsx)(u,{})})]}),t[13]=u,t[14]=h);let g;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,q.jsx)(`hr`,{className:`my-2`}),t[15]=g):g=t[15];let _;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,q.jsxs)(Ni,{value:`style`,children:[g,(0,q.jsx)(rb,{children:(0,q.jsx)(Zb,{})})]}),t[16]=_):_=t[16];let v;t[17]===h?v=t[18]:(v=(0,q.jsxs)(Fi,{defaultValue:`data`,children:[p,h,_]}),t[17]=h,t[18]=v);let y;t[19]!==l||t[20]!==v?(y=(0,q.jsx)(`form`,{onSubmit:Mx,onChange:l,children:v}),t[19]=l,t[20]=v,t[21]=y):y=t[21];let b;t[22]!==n||t[23]!==y?(b=(0,q.jsx)(ne,{...n,children:y}),t[22]=n,t[23]=y,t[24]=b):b=t[24];let x;return t[25]!==b||t[26]!==d?(x=(0,q.jsx)(Xy,{value:d,children:b}),t[25]=b,t[26]=d,t[27]=x):x=t[27],x};function jx(e){return{name:e[0],type:e[1][0]}}function Mx(e){return e.preventDefault()}function Nx(e,t){let i=(0,J.c)(16),a=r(mr),{focusCell:o}=T(),s=k(),[c,l]=n(kr),[u,d]=n(sr),[f,p]=n(ui),m=Px(e,t);!t&&a&&(W.error(`CellId is not found, defaulting to fixed mode`),a=!1);let h=e=>u===m&&f&&e===c,g=s===t,_=u&&Fx(u,t);a&&g&&u!==m&&!_&&d(m);let v=u===m&&f,y;i[0]!==t||i[1]!==o||i[2]!==v||i[3]!==a||i[4]!==m||i[5]!==c||i[6]!==p||i[7]!==d||i[8]!==l?(y=function(e){v?(d(null),p(!1)):(d(m),a&&t&&o({cellId:t}),p(!0),e&&!c&&l(e))},i[0]=t,i[1]=o,i[2]=v,i[3]=a,i[4]=m,i[5]=c,i[6]=p,i[7]=d,i[8]=l,i[9]=y):y=i[9];let b=y,x;return i[10]!==v||i[11]!==h||i[12]!==c||i[13]!==l||i[14]!==b?(x={isPanelOpen:h,isAnyPanelOpen:v,togglePanel:b,panelType:c,setPanelType:l},i[10]=v,i[11]=h,i[12]=c,i[13]=l,i[14]=b,i[15]=x):x=i[15],x}function Px(e,t){return t?`${t}-${e}`:e}function Fx(e,t){return t?e.startsWith(t):!1}var Ix=H({geometry_column:B().nullish(),options:H({separator:B().optional(),encoding:B().optional(),ensure_ascii:V().optional()}).optional()}),Lx=H({url:B(),filename:B(),error:B().nullish(),missing_packages:U(B()).nullish(),code:Ze([`geometry_required`,`invalid_geometry`,`invalid_metadata`,`unsupported_representation`,`unsupported_version`,`missing_packages`,`conversion_failed`]).nullish(),column:B().nullish()}),Rx=Pv.input(Ix.extend({format:Ze([`csv`,`json`,`parquet`,`tsv`])})).output(Lx),zx=Pv.input(Ix.extend({format:He(`geojson`)})).output(Lx.extend({code:We([Lx.shape.code,He(`missing_crs`)])})),Bx=H({geometry_columns:U(H({name:B(),encoding:Ze([`objects`,`wkb`,`wkt`,`other`]),crs:We([B(),qe(B(),Ge())]).nullable()})),primary_geometry_column:B().nullable(),default_geometry_column:B().nullable(),formats:qe(B(),H({available:V(),reason:B().nullable(),missing_packages:U(B())}))}),Vx=Pv.input(H({})).output(Bx);function Hx({previewColumn:e,fieldTypes:t,totalRows:n,totalColumns:r,tableId:i,table:a}){let[o,s]=(0,K.useState)(``),{locale:c}=zo(),l=t?.filter(([e])=>!(e===`__select__`||e===`_marimo_row_id`||e.startsWith(`__m_column__`))),u=l?.filter(([e])=>Ne(o,e)),{totalColumns:d,hiddenColumns:f}=oi(a,r),{visible:p}=lr(a),m=Er(a),{rowsAndColumns:h,hiddenSuffix:g}=ci({numRows:n,totalColumns:d,locale:c,hiddenColumns:f});return(0,q.jsxs)(`div`,{className:`mb-3`,children:[(0,q.jsxs)(`div`,{className:`text-xs font-semibold ml-2 flex items-center gap-1`,children:[h,f>0&&(0,q.jsx)(`span`,{children:g}),(0,q.jsx)(Co,{tooltip:`Copy column names`,value:l?.map(([e])=>e).join(`,
17
- `)||``,className:`h-3 w-3`}),(0,q.jsxs)(`div`,{className:`ml-auto flex items-center gap-1`,children:[(0,q.jsx)(Vi,{content:`Show all columns`,delayDuration:400,children:(0,q.jsxs)(Ui,{type:`button`,variant:`ghost`,size:`xs`,className:`gap-1`,disabled:f===0,onClick:()=>a.toggleAllColumnsVisible(!0),children:[(0,q.jsx)(De,{className:`w-3 h-3`}),`Show all`]})}),(0,q.jsx)(Vi,{content:`Hide all columns`,delayDuration:400,children:(0,q.jsxs)(Ui,{type:`button`,variant:`ghost`,size:`xs`,className:`gap-1`,disabled:p===0,onClick:()=>a.toggleAllColumnsVisible(!1),children:[(0,q.jsx)(La,{className:`w-3 h-3`}),`Hide all`]})})]})]}),(0,q.jsxs)(le,{className:`h-5/6 bg-background`,shouldFilter:!1,children:[(0,q.jsx)(ue,{placeholder:`Search columns...`,value:o,onValueChange:e=>s(e)}),(0,q.jsxs)(je,{className:`max-h-full`,children:[(0,q.jsx)(ye,{children:`No results.`}),u?.map(([t,[n,r]],o)=>{let s=a.getColumn(t);return(0,q.jsx)(Ux,{columnName:t,column:s,dataType:n,externalType:r,previewColumn:e,table:a,showOnlyColumnState:m,defaultExpanded:o===0},`${i}-${t}`)})]})]})]})}function Ux({columnName:e,column:t,dataType:n,externalType:r,previewColumn:i,table:a,showOnlyColumnState:o,defaultExpanded:s=!1}){let[c,l]=(0,K.useState)(s);return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(ie,{onSelect:()=>l(!c),className:`flex flex-row items-center gap-1.5 group w-full cursor-pointer`,children:[c?(0,q.jsx)(ja,{className:`w-3 h-3 shrink-0 text-muted-foreground`}):(0,q.jsx)(Pa,{className:`w-3 h-3 shrink-0 text-muted-foreground`}),(0,q.jsx)(Br,{columnName:(0,q.jsx)(`span`,{className:c?`font-semibold`:``,children:e}),dataType:n}),(0,q.jsxs)(`div`,{className:`ml-auto flex items-center gap-0.5`,children:[(0,q.jsx)(Co,{tooltip:`Copy column name`,value:e,className:`h-3 w-3`,buttonClassName:G(`inline-flex items-center justify-center rounded-md h-6 w-6`,`group-hover:opacity-100 opacity-0 hover:bg-muted text-muted-foreground hover:text-primary`)}),t?.getCanHide()&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Rr,{table:a,columnIds:[e],disabled:ii(o,[e]),className:G(t.getIsVisible()?`group-hover:opacity-100 opacity-0`:`opacity-100`)}),(0,q.jsx)(Vi,{content:t.getIsVisible()?`Hide column`:`Show column`,delayDuration:400,children:(0,q.jsx)(Ui,{type:`button`,variant:`text`,size:`icon`,"aria-label":t.getIsVisible()?`Hide column`:`Show column`,className:G(`hover:bg-muted text-muted-foreground hover:text-primary`,t.getIsVisible()?`group-hover:opacity-100 opacity-0`:`opacity-100`),onClick:e=>{e.preventDefault(),e.stopPropagation(),t.toggleVisibility(!t.getIsVisible())},children:t.getIsVisible()?(0,q.jsx)(De,{className:`h-3 w-3`,strokeWidth:2.5}):(0,q.jsx)(La,{className:`h-3 w-3`,strokeWidth:2.5})})})]}),(0,q.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:r})]})]},e),c&&(0,q.jsx)(_n,{children:(0,q.jsx)(Wx,{previewColumn:i,columnName:e,dataType:n})})]})}var Wx=({previewColumn:e,columnName:t,dataType:n})=>{let{theme:r}=Lo(),{locale:i}=zo(),{data:a,error:o,isPending:s,refetch:c}=Ko(async()=>await e({column:t}),[]);if(o)return(0,q.jsx)(Hr,{error:o});if(s)return(0,q.jsx)(Nr,{message:`Loading...`});if(!a)return(0,q.jsx)(Wr,{content:`No data`,className:`pl-4`});let{chart_spec:l,chart_code:u,error:d,missing_packages:f,stats:p}=a,m=d&&mo({error:d,missingPackages:f,refetchPreview:c}),h=p&&po({stats:p,dataType:n,locale:i}),g=l&&ho(l,r);return(0,q.jsxs)(Xr,{className:`px-2 py-1`,children:[m,u&&(0,q.jsx)(go,{chartCode:u}),g,h]})},Gx=({rowIdx:e,setRowIdx:t,totalRows:n,fieldTypes:r,getRow:i,isSelectable:a,isRowSelected:o,handleRowSelectionChange:s})=>{let[c,l]=(0,K.useState)(``),u=(0,K.useRef)(null),d=(0,K.useId)(),{locale:f}=zo(),m=n===Vr,{data:h,error:g}=Ko(async()=>(await i(e)).rows,[i,e,n]),_=e=>{e<0||typeof n==`number`&&e>=n||t(e)},v=()=>{s?.(t=>{if(o){let{[e]:n,...r}=t;return r}return{...t,[e]:!0}})};!m&&e>n&&_(n-1);let y=t=>{if(!(t.target instanceof HTMLInputElement))switch(t.key){case`ArrowLeft`:_(e-1);break;case`ArrowRight`:_(e+1);break;case` `:t.preventDefault(),v()}},b=`h-6 w-6 p-0.5`;return(0,q.jsxs)(`div`,{className:`flex flex-col gap-3 focus:outline-hidden`,ref:u,tabIndex:-1,onKeyDown:y,children:[(0,q.jsxs)(`div`,{className:`flex flex-row gap-2 items-center mr-2 px-2`,children:[a&&(0,q.jsxs)(`div`,{className:`flex items-center`,title:`Select/unselect the current row`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,q.jsx)(p,{id:d,checked:o,onCheckedChange:v,className:`h-3.5 w-3.5`}),(0,q.jsx)(`label`,{htmlFor:d,className:`text-xs text-muted-foreground cursor-pointer`,children:`Select`})]}),(0,q.jsx)(Ds,{shortcut:`Space`,className:`scale-75`})]}),(0,q.jsx)(Ui,{variant:`outline`,size:`xs`,className:`${b} ml-auto`,onClick:()=>_(0),disabled:e===0,"aria-label":`Go to first row`,children:(0,q.jsx)(di,{})}),(0,q.jsx)(Ui,{variant:`outline`,size:`xs`,className:b,onClick:()=>_(e-1),disabled:e===0,"aria-label":`Previous row`,children:(0,q.jsx)(ki,{})}),(0,q.jsx)(`span`,{className:`text-xs`,children:m?`Row ${e+1}`:`Row ${e+1} of ${Fr(n,f)}`}),(0,q.jsx)(Ui,{variant:`outline`,size:`xs`,className:b,onClick:()=>_(e+1),disabled:!m&&e===n-1,"aria-label":`Next row`,children:(0,q.jsx)(Pa,{})}),(0,q.jsx)(Ui,{variant:`outline`,size:`xs`,className:b,onClick:()=>{m||_(n-1)},disabled:m||e===n-1,"aria-label":`Go to last row`,children:(0,q.jsx)(Tr,{})})]}),(0,q.jsx)(le,{className:`bg-background`,shouldFilter:!1,children:(0,q.jsx)(ue,{placeholder:`Search`,value:c,onValueChange:l,"data-testid":`selection-panel-search-input`})}),(()=>{if(g)return(0,q.jsx)(_s,{error:g,className:`p-4 mx-3 mt-5`});if(n===0)return(0,q.jsx)(qx,{kind:`info`,Icon:Se,message:`No rows selected`});if(!h)return(0,q.jsx)(Mr,{milliseconds:200,children:(0,q.jsx)(qa,{size:`medium`,centered:!0})});if(h.length!==1){let e=m?`LazyFrame, no data available.`:`Expected 1 row, got ${h.length} rows. Please report the issue.`;return(0,q.jsx)(qx,{kind:`warn`,Icon:yo,message:e})}let e=h[0];if(typeof e!=`object`||!e)return(0,q.jsx)(qx,{kind:`warn`,Icon:yo,message:`Row is not an object. Please report the issue.`});let t={};for(let[n,r]of Object.entries(e))n!==`__select__`&&n!==`_marimo_row_id`&&(n.startsWith(`__m_column__`)?t[n.slice(pr.length)]=r:t[n]=r);return(0,q.jsxs)(Es,{className:`mb-4`,children:[(0,q.jsx)(xs,{children:(0,q.jsxs)(ws,{children:[(0,q.jsx)(Ss,{className:`w-1/4`,children:`Column`}),(0,q.jsx)(Ss,{className:`w-3/4`,children:`Value`})]})}),(0,q.jsx)(Cs,{children:r?.map(([e,[n,r]])=>{let i=t[e];if(!Kx({columnName:e,columnValue:i,searchQuery:c}))return null;let a=gr({column:{id:e,columnDef:{meta:{dataType:n,dtype:r}},getColumnFormatting:()=>void 0,applyColumnFormatting:e=>e},renderValue:()=>i,getValue:()=>i,selectCell:void 0,cellStyles:`text-left break-word`}),o=typeof i==`object`?JSON.stringify(i):String(i);return(0,q.jsxs)(ws,{className:`group`,children:[(0,q.jsx)(Ts,{children:(0,q.jsx)(Br,{columnName:(0,q.jsx)(`span`,{children:e}),dataType:n})}),(0,q.jsx)(Ts,{children:(0,q.jsxs)(`div`,{className:`flex flex-row items-center justify-between gap-1`,children:[a,(0,q.jsx)(Co,{value:o,className:`w-3 h-3 mr-1 text-muted-foreground cursor-pointer opacity-0 group-hover:opacity-100`})]})})]},e)})})]})})()]})};function Kx({columnName:e,columnValue:t,searchQuery:n}){let r=e.toLowerCase(),i=n.toLowerCase(),a=typeof t==`object`?JSON.stringify(t):String(t);return a=a.toLowerCase(),r.includes(i)||a.includes(i)}var qx=e=>{let t=(0,J.c)(8),{kind:n,Icon:r,message:i}=e,a;t[0]===r?a=t[1]:(a=(0,q.jsx)(r,{className:`w-5 h-5`}),t[0]=r,t[1]=a);let o;t[2]===i?o=t[3]:(o=(0,q.jsx)(`span`,{children:i}),t[2]=i,t[3]=o);let s;return t[4]!==n||t[5]!==a||t[6]!==o?(s=(0,q.jsxs)(vs,{kind:n,className:`p-4 mx-3 mt-3 flex flex-row items-center gap-2`,children:[a,o]}),t[4]=n,t[5]=a,t[6]=o,t[7]=s):s=t[7],s},Jx=`text-[13px] uppercase tracking-wide font-semibold cursor-pointer transition-colors`,Yx=`text-primary`,Xx=`hover:text-foreground`;function Zx({rowIdx:e,setRowIdx:t,totalRows:n,fieldTypes:r,getRow:i,isSelectable:a,isRowSelected:o,handleRowSelectionChange:s,previewColumn:c,totalColumns:l,tableId:u,table:d,showRowExplorer:f,showColumnExplorer:p,activeTab:m,onTabChange:h}){let g=f&&p,_=(0,q.jsx)(Gx,{rowIdx:e,setRowIdx:t,totalRows:n,fieldTypes:r,getRow:i,isSelectable:a,isRowSelected:o,handleRowSelectionChange:s}),v=c&&(0,q.jsx)(Hx,{previewColumn:c,fieldTypes:r,totalRows:n,totalColumns:l,tableId:u,table:d});if(!g)return f?_:p?v:null;let y=m??wr.ROW_VIEWER;return(0,q.jsxs)(Fi,{value:y,onValueChange:e=>h(e),className:`flex flex-col min-w-[350px]`,children:[(0,q.jsx)(Or,{name:Dr.CONTEXT_AWARE_PANEL_HEADER,children:(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(Ui,{variant:`text`,size:`xs`,onClick:()=>h(wr.ROW_VIEWER),className:G(Jx,y===wr.ROW_VIEWER?Yx:Xx),children:`Rows`}),(0,q.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:`|`}),(0,q.jsx)(Ui,{variant:`text`,size:`xs`,onClick:()=>h(wr.COLUMN_EXPLORER),className:G(Jx,y===wr.COLUMN_EXPLORER?Yx:Xx),children:`Columns`})]})}),(0,q.jsx)(Ni,{value:wr.ROW_VIEWER,className:`flex-1 overflow-auto`,children:_}),(0,q.jsx)(Ni,{value:wr.COLUMN_EXPLORER,className:`flex-1 overflow-auto`,children:v})]})}function Qx(e,t){let n=(0,J.c)(2),r=(0,K.useRef)(!1),i;n[0]===e?i=n[1]:(i=()=>{if(!r.current){r.current=!0;return}e()},n[0]=e,n[1]=i),(0,K.useEffect)(i,t)}var $x=We([z(),Je(),B()]).nullable(),eS=H({total:z().nullable(),nulls:z().nullable(),unique:z().nullable(),true:z().nullable(),false:z().nullable(),min:$x,max:$x,std:$x,mean:$x,median:$x,p5:$x,p25:$x,p75:$x,p95:$x}),tS=U(H({bin_start:We([z(),B(),nt(Date)]),bin_end:We([z(),B(),nt(Date)]),count:z()})),nS=U(H({value:B(),count:z()})),rS=qe(B(),qe(B(),B().nullable())).optional(),iS=Cv(`marimo-table`).withData(H({initialValue:We([U(z()),U(H({rowId:B(),columnName:B()}))]),label:B().nullable(),data:We([B(),U(H({}).passthrough())]),rawData:We([B(),U(Ve({}))]).nullish(),totalRows:We([z(),He(Vr)]),pagination:V().default(!1),pageSize:z().default(10),selection:Ze([`single`,`multi`,`single-cell`,`multi-cell`]).nullable().default(null),showDownload:V().default(!1),showFilters:V().default(!1),showColumnSummaries:We([V(),Ze([`stats`,`chart`])]).default(!0),showDataTypes:V().default(!0),showPageSizeSelector:V().default(!0),showColumnExplorer:V().default(!0),showRowExplorer:V().default(!0),showChartBuilder:V().default(!0),showSearch:V().default(!0),rowHeaders:cy,freezeColumnsLeft:U(B()).optional(),freezeColumnsRight:U(B()).optional(),hiddenColumns:U(B()).optional(),textJustifyColumns:qe(B(),Ze([`left`,`center`,`right`])).optional(),wrappedColumns:U(B()).optional(),columnWidths:qe(B(),z().int().positive()).optional(),headerTooltip:qe(B(),B()).optional(),fieldTypes:cy.nullish(),totalColumns:z(),maxColumns:We([z(),He(`all`)]).default(`all`),hasStableRowId:V().default(!1),maxHeight:z().optional(),cellStyles:qe(B(),qe(B(),H({}).passthrough())).optional(),hoverTemplate:B().optional(),cellHoverTexts:rS,lazy:V().default(!1),preload:V().default(!1)})).withFunctions({download_as:Rx,download_geojson:zx,get_export_metadata:Vx,get_column_summaries:Pv.input(Ve({})).output(H({data:We([B(),U(Ve({}))]).nullable(),stats:qe(B(),eS),bin_values:qe(B(),tS),value_counts:qe(B(),nS),show_charts:V(),is_disabled:V().optional()})),search:Pv.input(H({sort:U(H({by:B(),descending:V()})).optional(),query:B().optional(),filters:hy.optional(),page_number:z(),page_size:z(),max_columns:z().nullable().optional()})).output(H({data:We([B(),U(H({}).passthrough())]),total_rows:We([z(),He(Vr)]),cell_styles:qe(B(),qe(B(),H({}).passthrough())).nullable(),cell_hover_texts:rS.nullable(),raw_data:We([B(),U(Ve({}))]).nullish()})),get_row_ids:Pv.input(H({}).passthrough()).output(H({row_ids:U(z()),all_rows:V(),error:B().nullable()})),get_data_url:Pv.input(H({}).passthrough()).output(H({data_url:We([B(),U(H({}).passthrough())]),format:Ze([`csv`,`json`,`arrow`])})),calculate_top_k_rows:Pv.input(H({column:B(),k:z()})).output(H({data:U(Ue([Qe(),z()]))})),preview_column:Pv.input(H({column:B()})).output(H({chart_spec:B().nullable(),chart_code:B().nullable(),error:B().nullable(),missing_packages:U(B()).nullable(),stats:eS.nullable()})),get_size_bytes:Pv.input(H({})).output(H({size_bytes:z().nullish()}))}).renderer(e=>(0,q.jsx)(dS,{children:(0,q.jsx)(cS,{isLazy:e.data.lazy,preload:e.data.preload,host:e.host,children:(0,q.jsx)(lS,{...e.data,...e.functions,host:e.host,data:e.data.data,value:e.value,setValue:e.setValue,cellHoverTexts:e.data.cellHoverTexts})})})),aS=new Map;function oS(e,t){return e!=null&&t!=null&&aS.get(e)===t}function sS(e,t){e!=null&&t!=null&&aS.set(e,t)}var cS=e=>{let t=(0,J.c)(13),{isLazy:n,children:r,preload:i,host:a}=e,o,s,c,l;if(t[0]!==a||t[1]!==n||t[2]!==i){let e=a.closest(`[${b}]`);l=e?Me.parse(e):null,o=a.closest(`[${_}]`)?.getAttribute(_),s=K.useState,c=n&&!i&&!oS(l,o),t[0]=a,t[1]=n,t[2]=i,t[3]=o,t[4]=s,t[5]=c,t[6]=l}else o=t[3],s=t[4],c=t[5],l=t[6];let[u,d]=s(c);if(u){let e;t[7]!==o||t[8]!==l?(e=()=>{sS(l,o),d(!1)},t[7]=o,t[8]=l,t[9]=e):e=t[9];let n;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,q.jsx)(F,{className:`mr-2 h-4 w-4`}),t[10]=n):n=t[10];let r;return t[11]===e?r=t[12]:(r=(0,q.jsx)(`div`,{className:`flex h-20 items-center justify-center`,children:(0,q.jsxs)(Ui,{variant:`outline`,size:`xs`,onClick:e,children:[n,`Preview data`]})}),t[11]=e,t[12]=r),r}return r},lS=(0,K.memo)(e=>{let t=(0,J.c)(119),n;t[0]===e.host?n=t[1]:(n=M(e.host),t[0]=e.host,t[1]=n);let i=n,a=e.search,o=e.setValue,s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=[],t[2]=s):s=t[2];let[c,l]=(0,K.useState)(s),u;t[3]===e.pageSize?u=t[4]:(u={pageSize:e.pageSize,pageIndex:0},t[3]=e.pageSize,t[4]=u);let[d,f]=K.useState(u),[p,m]=(0,K.useState)(``),h;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(h=[],t[5]=h):h=t[5];let[g,_]=(0,K.useState)(h),v;t[6]!==i||t[7]!==e.showChartBuilder?(v=()=>!e.showChartBuilder||!i?!1:bx(i),t[6]=i,t[7]=e.showChartBuilder,t[8]=v):v=t[8];let[y,b]=(0,K.useState)(v),x;t[9]!==e.hasStableRowId||t[10]!==o?(x=()=>{e.hasStableRowId||o([])},t[9]=e.hasStableRowId,t[10]=o,t[11]=x):x=t[11];let S;t[12]!==g||t[13]!==e.hasStableRowId||t[14]!==p||t[15]!==o||t[16]!==c?(S=[o,g,p,c,e.hasStableRowId],t[12]=g,t[13]=e.hasStableRowId,t[14]=p,t[15]=o,t[16]=c,t[17]=S):S=t[17],Qx(x,S);let C,w;t[18]===e.pageSize?(C=t[19],w=t[20]):(C=()=>{f({pageIndex:0,pageSize:e.pageSize})},w=[e.pageSize],t[18]=e.pageSize,t[19]=C,t[20]=w),(0,K.useEffect)(C,w);let T;t[21]!==g||t[22]!==d.pageIndex||t[23]!==d.pageSize||t[24]!==e.cellHoverTexts||t[25]!==e.cellStyles||t[26]!==e.data||t[27]!==e.lazy||t[28]!==e.pageSize||t[29]!==e.rawData||t[30]!==e.totalRows||t[31]!==a||t[32]!==p||t[33]!==c?(T=async()=>{if(e.totalRows===0)return{rows:ko.EMPTY,totalRows:0,cellStyles:{}};let t=e.data,n=e.rawData,r=e.totalRows,i=e.cellStyles,o=e.cellHoverTexts,s=d.pageSize!==e.pageSize,l=p===``&&d.pageIndex===0&&g.length===0&&c.length===0&&!e.lazy&&!s,u=c.length>0?c.map(fS):void 0,f=a({sort:u,query:p,page_number:d.pageIndex,page_size:d.pageSize,filters:Ap(g)});if(l)f.catch(pS);else{let e=await f;t=e.data,n=e.raw_data,r=e.total_rows,i=e.cell_styles||{},o=e.cell_hover_texts||{}}let[m,h]=await Lr(t,n);return t=m,{rows:t,rawRows:h,totalRows:r,cellStyles:i,cellHoverTexts:o}},t[21]=g,t[22]=d.pageIndex,t[23]=d.pageSize,t[24]=e.cellHoverTexts,t[25]=e.cellStyles,t[26]=e.data,t[27]=e.lazy,t[28]=e.pageSize,t[29]=e.rawData,t[30]=e.totalRows,t[31]=a,t[32]=p,t[33]=c,t[34]=T):T=t[34];let E=As(e.fieldTypes),D;t[35]!==g||t[36]!==d.pageIndex||t[37]!==d.pageSize||t[38]!==e.cellHoverTexts||t[39]!==e.cellStyles||t[40]!==e.data||t[41]!==e.lazy||t[42]!==e.totalRows||t[43]!==a||t[44]!==p||t[45]!==c||t[46]!==E?(D=[c,a,g,p,E,e.data,e.totalRows,e.lazy,e.cellHoverTexts,e.cellStyles,d.pageSize,d.pageIndex],t[35]=g,t[36]=d.pageIndex,t[37]=d.pageSize,t[38]=e.cellHoverTexts,t[39]=e.cellStyles,t[40]=e.data,t[41]=e.lazy,t[42]=e.totalRows,t[43]=a,t[44]=p,t[45]=c,t[46]=E,t[47]=D):D=t[47];let{data:O,error:k,isPending:A,isFetching:j}=Ko(T,D),N=r(ni),P;t[48]!==N||t[49]!==e?(P=async()=>!N||!e.showDownload||e.lazy||e.totalRows===0?null:(await e.get_size_bytes({})).size_bytes??null,t[48]=N,t[49]=e,t[50]=P):P=t[50];let F=e.showDownload,I=e.get_size_bytes,ee=e.lazy,L=e.totalRows,te=As(g),ne=As(c),re;t[51]!==N||t[52]!==e.get_size_bytes||t[53]!==e.lazy||t[54]!==e.showDownload||t[55]!==e.totalRows||t[56]!==p||t[57]!==te||t[58]!==ne?(re=[N,F,I,ee,L,p,te,ne],t[51]=N,t[52]=e.get_size_bytes,t[53]=e.lazy,t[54]=e.showDownload,t[55]=e.totalRows,t[56]=p,t[57]=te,t[58]=ne,t[59]=re):re=t[59];let{data:ie,isPending:ae}=Ko(P,re),oe=ie??null,se=!!N&&e.showDownload&&ae,ce;t[60]!==g||t[61]!==a||t[62]!==p||t[63]!==c?(ce=async e=>{let t=c.length>0?c.map(mS):void 0,n=await a({page_number:e,page_size:1,sort:t,query:p,filters:Ap(g),max_columns:null});return{rows:await Jr(n.data)}},t[60]=g,t[61]=a,t[62]=p,t[63]=c,t[64]=ce):ce=t[64];let le=ce,ue;t[65]===Symbol.for(`react.memo_cache_sentinel`)?(ue=()=>{f(hS)},t[65]=ue):ue=t[65];let de=O?.totalRows,fe;t[66]===de?fe=t[67]:(fe=[de],t[66]=de,t[67]=fe),(0,K.useEffect)(ue,fe);let pe;t[68]===e?pe=t[69]:(pe=async()=>{let t=rn();return e.totalRows===0||!e.showColumnSummaries||t?{data:null,stats:{},bin_values:{},value_counts:{},show_charts:!1}:e.get_column_summaries({})},t[68]=e,t[69]=pe);let me;t[70]!==g||t[71]!==e.data||t[72]!==e.get_column_summaries||t[73]!==e.showColumnSummaries||t[74]!==e.totalRows||t[75]!==p?(me=[e.get_column_summaries,e.showColumnSummaries,g,p,e.totalRows,e.data],t[70]=g,t[71]=e.data,t[72]=e.get_column_summaries,t[73]=e.showColumnSummaries,t[74]=e.totalRows,t[75]=p,t[76]=me):me=t[76];let{data:he,error:ge}=Ko(pe,me),_e,ve;if(t[77]===ge?(_e=t[78],ve=t[79]):(_e=()=>{ge&&W.error(ge)},ve=[ge],t[77]=ge,t[78]=_e,t[79]=ve),(0,K.useEffect)(_e,ve),A){let n=e.totalRows!==`too_many`&&e.totalRows>0?Math.min(e.totalRows,e.pageSize):e.pageSize,r;return t[80]===n?r=t[81]:(r=(0,q.jsx)(Mr,{milliseconds:200,children:(0,q.jsx)(Bv,{pageSize:n})}),t[80]=n,t[81]=r),r}let ye=null;if(k){W.error(k);let e;t[82]===k?e=t[83]:(e=!rn()&&(0,q.jsxs)(gs,{variant:`destructive`,className:`mb-2`,children:[(0,q.jsx)(hs,{children:`Error`}),(0,q.jsx)(`div`,{className:`text-md`,children:k.message||`An unknown error occurred`})]}),t[82]=k,t[83]=e),ye=e}let be;t[84]===y?be=t[85]:(be=()=>{b(!y)},t[84]=y,t[85]=be);let xe=be,Se=O?.rows??ko.EMPTY,Ce=O?.rawRows,we=j&&!A,Te=O?.totalRows??e.totalRows,Ee=O?.cellStyles??e.cellStyles,De=O?.cellHoverTexts??e.cellHoverTexts,Oe;t[86]!==i||t[87]!==he||t[88]!==y||t[89]!==g||t[90]!==le||t[91]!==d||t[92]!==e||t[93]!==p||t[94]!==oe||t[95]!==se||t[96]!==c||t[97]!==Se||t[98]!==Ce||t[99]!==we||t[100]!==Te||t[101]!==Ee||t[102]!==De||t[103]!==xe?(Oe=(0,q.jsx)(uS,{...e,data:Se,rawData:Ce,columnSummaries:he,sorting:c,setSorting:l,searchQuery:p,setSearchQuery:m,filters:g,setFilters:_,reloading:we,totalRows:Te,sizeBytes:oe,sizeBytesIsLoading:se,paginationState:d,setPaginationState:f,cellStyles:Ee,cellHoverTexts:De,toggleDisplayHeader:xe,isChartBuilderOpen:y,getRow:le,cellId:i,maxHeight:e.maxHeight}),t[86]=i,t[87]=he,t[88]=y,t[89]=g,t[90]=le,t[91]=d,t[92]=e,t[93]=p,t[94]=oe,t[95]=se,t[96]=c,t[97]=Se,t[98]=Ce,t[99]=we,t[100]=Te,t[101]=Ee,t[102]=De,t[103]=xe,t[104]=Oe):Oe=t[104];let ke=Oe,Ae;t[105]!==i||t[106]!==ke||t[107]!==O?.rows||t[108]!==y||t[109]!==e.fieldTypes||t[110]!==e.get_data_url||t[111]!==e.rowHeaders||t[112]!==e.showChartBuilder||t[113]!==e.totalColumns||t[114]!==e.totalRows?(Ae=e.showChartBuilder?(0,q.jsx)(Dx,{displayHeader:y,onCloseChartBuilder:()=>b(!1),data:O?.rows||[],columns:e.totalColumns,totalRows:e.totalRows,dataTable:ke,getDataUrl:e.get_data_url,fieldTypes:e.fieldTypes,rowHeaders:e.rowHeaders,cellId:i}):ke,t[105]=i,t[106]=ke,t[107]=O?.rows,t[108]=y,t[109]=e.fieldTypes,t[110]=e.get_data_url,t[111]=e.rowHeaders,t[112]=e.showChartBuilder,t[113]=e.totalColumns,t[114]=e.totalRows,t[115]=Ae):Ae=t[115];let je;return t[116]!==ye||t[117]!==Ae?(je=(0,q.jsxs)(q.Fragment,{children:[ye,Ae]}),t[116]=ye,t[117]=Ae,t[118]=je):je=t[118],je});lS.displayName=`LoadingDataTableComponent`;var uS=e=>{let t=(0,J.c)(146),{label:n,data:r,rawData:i,totalRows:a,sizeBytes:o,sizeBytesIsLoading:c,maxColumns:l,pagination:u,selection:d,value:f,showFilters:p,showDownload:m,showPageSizeSelector:h,showColumnExplorer:g,showRowExplorer:_,showChartBuilder:v,showDataTypes:y,rowHeaders:b,fieldTypes:x,paginationState:S,setPaginationState:C,download_as:w,download_geojson:T,get_export_metadata:E,columnSummaries:D,className:O,setValue:k,sorting:A,setSorting:j,showSearch:M,searchQuery:N,setSearchQuery:P,filters:F,setFilters:I,reloading:ee,freezeColumnsLeft:L,freezeColumnsRight:te,hiddenColumns:ne,textJustifyColumns:re,wrappedColumns:ie,columnWidths:ae,headerTooltip:oe,totalColumns:se,get_row_ids:ce,cellStyles:le,hoverTemplate:ue,cellHoverTexts:de,toggleDisplayHeader:fe,isChartBuilderOpen:pe,calculate_top_k_rows:me,preview_column:he,getRow:ge,cellId:_e,maxHeight:ve}=e,ye=d,be=y,xe=(0,K.useId)(),Se;t[0]!==w||t[1]!==T?(Se=e=>{let{format:t,...n}=e;return t===`geojson`?T({format:t,...n}):w({format:t,...n})},t[0]=w,t[1]=T,t[2]=Se):Se=t[2];let Ce=Se,{locale:we}=zo(),[Te,Ee]=(0,K.useState)(0),{isPanelOpen:De,isAnyPanelOpen:Oe,togglePanel:ke,panelType:Ae,setPanelType:je}=Nx(xe,_e),R;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(R=rn(),t[3]=R):R=t[3];let Me=R,Ne;bb0:{if(!D){Ne=Ar.EMPTY;break bb0}if(!x||!D.stats){Ne=Ar.EMPTY;break bb0}let e;if(t[4]!==D.bin_values||t[5]!==D.data||t[6]!==D.show_charts||t[7]!==D.stats||t[8]!==D.value_counts||t[9]!==x){let n=Zr(x);e=new Ar(D.data||[],n,D.stats,D.bin_values,D.value_counts,{includeCharts:D.show_charts}),t[4]=D.bin_values,t[5]=D.data,t[6]=D.show_charts,t[7]=D.stats,t[8]=D.value_counts,t[9]=x,t[10]=e}else e=t[10];Ne=e}let Pe=Ne,Fe;t[11]===b?Fe=t[12]:(Fe=new Set(b.map(gS)),t[11]=b,t[12]=Fe);let Ie=Fe,Le;t[13]!==r||t[14]!==x||t[15]!==Ie?(Le=x??Qr(r).filter(e=>{let[t]=e;return!Ie.has(t)}),t[13]=r,t[14]=x,t[15]=Ie,t[16]=Le):Le=t[16];let Re=As(Le),ze;bb1:{if(l===`all`){ze=Re;break bb1}let e;t[17]!==l||t[18]!==Re?(e=Re.slice(0,l),t[17]=l,t[18]=Re,t[19]=e):e=t[19],ze=e}let z=ze,Be;if(t[20]!==r||t[21]!==z){if(Be={},r&&r.length>0){for(let[e,t]of z)if(t[0]===`number`){let t=0;for(let n of r){let r=n[e];if(typeof r==`number`&&Number.isFinite(r)){let e=String(r),n=e.indexOf(`.`);n!==-1&&(t=Math.max(t,e.length-n-1))}}Be[e]=t}}t[20]=r,t[21]=z,t[22]=Be}else Be=t[22];let Ve=Be,He=As(b),Ue=As(re),We=As(ie),Ge=As(ae),Ke=As(Pe),qe=As(Ve),Je=z.length;x||(be=!1),Me&&(ye=null);let B;t[23]!==me||t[24]!==qe||t[25]!==oe||t[26]!==Ke||t[27]!==z||t[28]!==Ge||t[29]!==He||t[30]!==Ue||t[31]!==We||t[32]!==ye||t[33]!==be?(B=_r({rowHeaders:He,selection:ye,chartSpecModel:Ke,fieldTypes:z,textJustifyColumns:Ue,wrappedColumns:We,columnWidths:Ge,headerTooltip:oe,showDataTypes:be,calculateTopKRows:me,fractionDigitsByColumn:qe}),t[23]=me,t[24]=qe,t[25]=oe,t[26]=Ke,t[27]=z,t[28]=Ge,t[29]=He,t[30]=Ue,t[31]=We,t[32]=ye,t[33]=be,t[34]=B):B=t[34];let V=B,Ye;t[35]===f?Ye=t[36]:(Ye=Object.fromEntries((f||[]).map(_S)),t[35]=f,t[36]=Ye);let Xe=Ye,Ze;t[37]!==Xe||t[38]!==ye||t[39]!==k?(Ze=e=>{if(ye===`single`){let t=Pt.asUpdater(e)({});k(Object.keys(t).slice(0,1))}if(ye===`multi`){let t=Pt.asUpdater(e)(Xe);k(Object.keys(t))}},t[37]=Xe,t[38]=ye,t[39]=k,t[40]=Ze):Ze=t[40];let Qe=s(Ze),$e;t[41]!==S||t[42]!==C||t[43]!==Ee||t[44]!==a?($e=e=>{if(Ee(e),e<0||typeof a==`number`&&e>=a||a===`too_many`)return;let t=ei(e,S.pageIndex,S.pageSize);t!==null&&C(e=>({...e,pageIndex:t}))},t[41]=S,t[42]=C,t[43]=Ee,t[44]=a,t[45]=$e):$e=t[45];let H=s($e),et;t[46]===f?et=t[47]:(et=f.filter(vS),t[46]=f,t[47]=et);let tt=et,nt;t[48]!==tt||t[49]!==ye||t[50]!==k?(nt=e=>{if(ye===`single-cell`){let t=Pt.asUpdater(e)(tt);k(t.slice(0,1))}if(ye===`multi-cell`){let t=Pt.asUpdater(e)(tt);k(t)}},t[48]=tt,t[49]=ye,t[50]=k,t[51]=nt):nt=t[51];let U=s(nt),rt=ye===`multi`||ye===`single`,it=g&&!!he,at;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(at=Dn(),t[52]=at):at=t[52];let ot=at,st;t[53]===Symbol.for(`react.memo_cache_sentinel`)?(st=Bt(),t[53]=st):st=t[53];let ct=st,lt;bb2:{if(!Oe||!(_||it)){lt=void 0;break bb2}let e;t[54]!==it||t[55]!==ge||t[56]!==Qe||t[57]!==xe||t[58]!==rt||t[59]!==Re||t[60]!==Ae||t[61]!==he||t[62]!==Xe||t[63]!==je||t[64]!==H||t[65]!==_||t[66]!==se||t[67]!==a||t[68]!==Te?(e=e=>(0,q.jsx)(vr,{children:(0,q.jsx)(Zx,{rowIdx:Te,setRowIdx:H,totalRows:a,fieldTypes:Re,getRow:ge,isSelectable:rt,isRowSelected:!!Xe[Te],handleRowSelectionChange:Qe,previewColumn:he,totalColumns:se,tableId:xe,table:e,showRowExplorer:_&&!ot,showColumnExplorer:it&&!ot,activeTab:Ae,onTabChange:je})}),t[54]=it,t[55]=ge,t[56]=Qe,t[57]=xe,t[58]=rt,t[59]=Re,t[60]=Ae,t[61]=he,t[62]=Xe,t[63]=je,t[64]=H,t[65]=_,t[66]=se,t[67]=a,t[68]=Te,t[69]=e):e=t[69],lt=e}let ut=lt,dt;t[70]!==r||t[71]!==S||t[72]!==a?(dt=a===`too_many`&&S.pageSize===r.length&&(0,q.jsxs)(vs,{className:`mb-1 rounded`,children:[`Previewing the first `,S.pageSize,` rows.`]}),t[70]=r,t[71]=S,t[72]=a,t[73]=dt):dt=t[73];let ft;t[74]!==Je||t[75]!==se?(ft=Je<se&&Je>0&&(0,q.jsxs)(vs,{className:`mb-1 rounded`,children:[`Result clipped. Showing `,Je,` of `,se,` columns.`]}),t[74]=Je,t[75]=se,t[76]=ft):ft=t[76];let pt;t[77]!==r||t[78]!==Me||t[79]!==we||t[80]!==a?(pt=Me&&typeof a==`number`&&r.length<a&&(0,q.jsxs)(vs,{className:`mb-1 rounded`,children:[`Showing the first `,(0,q.jsx)(`strong`,{children:Vo(r.length,we)}),` `,`of `,(0,q.jsx)(`strong`,{children:Vo(a,we)}),` rows. Increase the table's `,(0,q.jsx)(`code`,{children:`page_size`}),` to embed more in the static export.`]}),t[77]=r,t[78]=Me,t[79]=we,t[80]=a,t[81]=pt):pt=t[81];let mt;t[82]===D?.is_disabled?mt=t[83]:(mt=D?.is_disabled&&(0,q.jsx)(vs,{className:`mb-1 rounded`,children:`Column summaries are unavailable. Filter your data to fewer than 1,000,000 rows.`}),t[82]=D?.is_disabled,t[83]=mt);let ht=m?Ce:void 0,gt=m?E:void 0,_t=v&&!ct,vt=(_||it)&&!ot&&!ct,yt;t[84]===Ee?yt=t[85]:(yt=e=>Ee(e),t[84]=Ee,t[85]=yt);let bt;t[86]!==me||t[87]!==de||t[88]!==tt||t[89]!==le||t[90]!==O||t[91]!==V||t[92]!==r||t[93]!==F||t[94]!==L||t[95]!==te||t[96]!==ce||t[97]!==U||t[98]!==Qe||t[99]!==ne||t[100]!==ue||t[101]!==Oe||t[102]!==pe||t[103]!==De||t[104]!==ve||t[105]!==u||t[106]!==S||t[107]!==i||t[108]!==ee||t[109]!==ut||t[110]!==Xe||t[111]!==N||t[112]!==ye||t[113]!==I||t[114]!==C||t[115]!==P||t[116]!==j||t[117]!==p||t[118]!==h||t[119]!==M||t[120]!==o||t[121]!==c||t[122]!==A||t[123]!==ht||t[124]!==gt||t[125]!==_t||t[126]!==vt||t[127]!==yt||t[128]!==fe||t[129]!==ke||t[130]!==se||t[131]!==a||t[132]!==Te?(bt=(0,q.jsx)(Ir,{data:r,rawData:i,columns:V,className:O,maxHeight:ve,sorting:A,totalRows:a,sizeBytes:o,sizeBytesIsLoading:c,totalColumns:se,manualSorting:!0,setSorting:j,pagination:u,manualPagination:!0,selection:ye,paginationState:S,setPaginationState:C,rowSelection:Xe,cellSelection:tt,cellStyling:le,hoverTemplate:ue,cellHoverTexts:de,downloadAs:ht,getExportMetadata:gt,showSearch:M,searchQuery:N,onSearchQueryChange:P,showFilters:p,filters:F,onFiltersChange:I,calculateTopKRows:me,reloading:ee,onRowSelectionChange:Qe,freezeColumnsLeft:L,freezeColumnsRight:te,hiddenColumns:ne,onCellSelectionChange:U,getRowIds:ce,toggleDisplayHeader:fe,showChartBuilder:_t,isChartBuilderOpen:pe,showPageSizeSelector:h,showTableExplorer:vt,togglePanel:ke,isPanelOpen:De,isAnyPanelOpen:Oe,viewedRowIdx:Te,onViewedRowChange:yt,renderTableExplorerPanel:ut}),t[86]=me,t[87]=de,t[88]=tt,t[89]=le,t[90]=O,t[91]=V,t[92]=r,t[93]=F,t[94]=L,t[95]=te,t[96]=ce,t[97]=U,t[98]=Qe,t[99]=ne,t[100]=ue,t[101]=Oe,t[102]=pe,t[103]=De,t[104]=ve,t[105]=u,t[106]=S,t[107]=i,t[108]=ee,t[109]=ut,t[110]=Xe,t[111]=N,t[112]=ye,t[113]=I,t[114]=C,t[115]=P,t[116]=j,t[117]=p,t[118]=h,t[119]=M,t[120]=o,t[121]=c,t[122]=A,t[123]=ht,t[124]=gt,t[125]=_t,t[126]=vt,t[127]=yt,t[128]=fe,t[129]=ke,t[130]=se,t[131]=a,t[132]=Te,t[133]=bt):bt=t[133];let xt;t[134]!==n||t[135]!==bt?(xt=(0,q.jsx)(kv,{label:n,align:`top`,fullWidth:!0,children:bt}),t[134]=n,t[135]=bt,t[136]=xt):xt=t[136];let St;t[137]!==Pe||t[138]!==xt?(St=(0,q.jsx)(jr,{value:Pe,children:xt}),t[137]=Pe,t[138]=xt,t[139]=St):St=t[139];let Ct;return t[140]!==dt||t[141]!==ft||t[142]!==pt||t[143]!==mt||t[144]!==St?(Ct=(0,q.jsxs)(q.Fragment,{children:[dt,ft,pt,mt,St]}),t[140]=dt,t[141]=ft,t[142]=pt,t[143]=mt,t[144]=St,t[145]=Ct):Ct=t[145],Ct},dS=e=>{let t=(0,J.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,q.jsx)(_n,{children:(0,q.jsx)(o,{store:a,children:(0,q.jsx)(dr,{controller:ur,children:n})})}),t[0]=n,t[1]=r),r};function fS(e){return{by:e.id,descending:e.desc}}function pS(e){W.error(e)}function mS(e){return{by:e.id,descending:e.desc}}function hS(e){return e.pageIndex===0?e:{...e,pageIndex:0}}function gS(e){let[t]=e;return t}function _S(e){return[e,!0]}function vS(e){return e instanceof Object&&e.columnName!==void 0}var yS=class{tagName=`marimo-date`;validator=H({initialValue:B(),label:B().nullable(),start:B(),stop:B(),step:B().optional(),fullWidth:V().default(!1),disabled:V().optional()});render(e){return(0,q.jsx)(bS,{...e.data,value:e.value,setValue:e.setValue,disabled:e.data.disabled})}},bS=e=>{let t=(0,J.c)(21),n=(0,K.useId)(),r;t[0]===e?r=t[1]:(r=t=>{if(!t)return;let n=t.toString();e.setValue(n)},t[0]=e,t[1]=r);let i=r,a=e.label,o=e.fullWidth,s;t[2]===e.value?s=t[3]:(s=qr(e.value),t[2]=e.value,t[3]=s);let c=e.label?n:void 0,l=e.label?void 0:`date picker`,u;t[4]===e.start?u=t[5]:(u=qr(e.start),t[4]=e.start,t[5]=u);let d;t[6]===e.stop?d=t[7]:(d=qr(e.stop),t[6]=e.stop,t[7]=d);let f;t[8]!==i||t[9]!==e.disabled||t[10]!==s||t[11]!==c||t[12]!==l||t[13]!==u||t[14]!==d?(f=(0,q.jsx)(xr,{granularity:`day`,value:s,onChange:i,"aria-labelledby":c,"aria-label":l,minValue:u,maxValue:d,isDisabled:e.disabled}),t[8]=i,t[9]=e.disabled,t[10]=s,t[11]=c,t[12]=l,t[13]=u,t[14]=d,t[15]=f):f=t[15];let p;return t[16]!==n||t[17]!==e.fullWidth||t[18]!==e.label||t[19]!==f?(p=(0,q.jsx)(kv,{labelId:n,label:a,fullWidth:o,children:f}),t[16]=n,t[17]=e.fullWidth,t[18]=e.label,t[19]=f,t[20]=p):p=t[20],p},xS=class{tagName=`marimo-date-range`;validator=H({initialValue:Ue([B(),B()]),label:B().nullable(),start:B(),stop:B(),step:B().optional(),fullWidth:V().default(!1),disabled:V().optional()});render(e){return(0,q.jsx)(SS,{...e.data,value:e.value,setValue:e.setValue})}},SS=e=>{let t=(0,J.c)(26),n=(0,K.useId)(),r;t[0]===e?r=t[1]:(r=t=>{if(!t)return;let{start:n,end:r}=t,i=[n.toString(),r.toString()];e.setValue(i)},t[0]=e,t[1]=r);let i=r,a=e.label,o=e.fullWidth,s;t[2]===e.value[0]?s=t[3]:(s=qr(e.value[0]),t[2]=e.value[0],t[3]=s);let c;t[4]===e.value[1]?c=t[5]:(c=qr(e.value[1]),t[4]=e.value[1],t[5]=c);let l;t[6]!==s||t[7]!==c?(l={start:s,end:c},t[6]=s,t[7]=c,t[8]=l):l=t[8];let u=e.label?n:void 0,d=e.label?void 0:`date range picker`,f;t[9]===e.start?f=t[10]:(f=qr(e.start),t[9]=e.start,t[10]=f);let p;t[11]===e.stop?p=t[12]:(p=qr(e.stop),t[11]=e.stop,t[12]=p);let m;t[13]!==i||t[14]!==e.disabled||t[15]!==l||t[16]!==u||t[17]!==d||t[18]!==f||t[19]!==p?(m=(0,q.jsx)(fr,{granularity:`day`,value:l,onChange:i,"aria-labelledby":u,"aria-label":d,minValue:f,maxValue:p,isDisabled:e.disabled}),t[13]=i,t[14]=e.disabled,t[15]=l,t[16]=u,t[17]=d,t[18]=f,t[19]=p,t[20]=m):m=t[20];let h;return t[21]!==n||t[22]!==e.fullWidth||t[23]!==e.label||t[24]!==m?(h=(0,q.jsx)(kv,{labelId:n,label:a,fullWidth:o,children:m}),t[21]=n,t[22]=e.fullWidth,t[23]=e.label,t[24]=m,t[25]=h):h=t[25],h},CS=class{tagName=`marimo-datetime`;validator=H({initialValue:B(),label:B().nullable(),start:B(),stop:B(),step:B().optional(),precision:Ze([`hour`,`minute`,`second`]).default(`minute`),fullWidth:V().default(!1),disabled:V().optional()});render(e){return(0,q.jsx)(wS,{...e.data,value:e.value,setValue:e.setValue})}},wS=e=>{let t=(0,J.c)(22),n=(0,K.useId)(),r;t[0]===e?r=t[1]:(r=t=>{if(!t)return;let n=t.toString();e.setValue(n)},t[0]=e,t[1]=r);let i=r,a;t[2]===e.value?a=t[3]:(a=e.value?or(e.value):void 0,t[2]=e.value,t[3]=a);let o=a,s=e.label,c=e.fullWidth,l=e.precision,u=e.label?n:void 0,d=e.label?void 0:`date time picker`,f;t[4]===e.start?f=t[5]:(f=or(e.start),t[4]=e.start,t[5]=f);let p;t[6]===e.stop?p=t[7]:(p=or(e.stop),t[6]=e.stop,t[7]=p);let m;t[8]!==i||t[9]!==o||t[10]!==e.disabled||t[11]!==e.precision||t[12]!==u||t[13]!==d||t[14]!==f||t[15]!==p?(m=(0,q.jsx)(xr,{granularity:l,value:o,onChange:i,"aria-labelledby":u,"aria-label":d,minValue:f,maxValue:p,isDisabled:e.disabled}),t[8]=i,t[9]=o,t[10]=e.disabled,t[11]=e.precision,t[12]=u,t[13]=d,t[14]=f,t[15]=p,t[16]=m):m=t[16];let h;return t[17]!==n||t[18]!==e.fullWidth||t[19]!==e.label||t[20]!==m?(h=(0,q.jsx)(kv,{labelId:n,label:s,fullWidth:c,children:m}),t[17]=n,t[18]=e.fullWidth,t[19]=e.label,t[20]=m,t[21]=h):h=t[21],h},TS=class{tagName=`marimo-dict`;validator=H({label:B().nullable(),elementIds:qe(B(),B())});render(e){return(0,q.jsx)(ES,{...e.data,value:e.value,setValue:e.setValue,children:e.children})}},ES=e=>{let t=(0,J.c)(4),{elementIds:n,setValue:r,children:i}=e,a,o;return t[0]!==n||t[1]!==r?(a=()=>{let e=e=>{let t=e.detail.element;if(t===null||!(t instanceof Node))return;let i=yv(t);if(i===null)return;let a=n[i];a!==void 0&&r(t=>{let n=t?{...t}:{};return n[a]=e.detail.value,n})};return document.addEventListener(fs.TYPE,e),()=>{document.removeEventListener(fs.TYPE,e)}},o=[n,r],t[0]=n,t[1]=r,t[2]=a,t[3]=o):(a=t[2],o=t[3]),(0,K.useEffect)(a,o),i},DS=e=>{let t=(0,J.c)(20),{options:n,value:r,setValue:i,label:a,allowSelectNone:o,fullWidth:s,disabled:c}=e,l=(0,K.useId)(),u;t[0]===n?u=t[1]:(u=n.map(OS),t[0]=n,t[1]=u);let d=u,f;t[2]===i?f=t[3]:(f=e=>i(e??null),t[2]=i,t[3]=f);let p;t[4]===s?p=t[5]:(p=G({"w-full":s}),t[4]=s,t[5]=p);let m;t[6]!==o||t[7]!==c||t[8]!==s||t[9]!==l||t[10]!==d||t[11]!==f||t[12]!==p||t[13]!==r?(m=(0,q.jsx)(Q_,{id:l,options:d,value:r,onChange:f,multiple:!1,allowSelectNone:o,fullWidth:s,disabled:c,className:p,"data-testid":`marimo-plugin-searchable-dropdown`}),t[6]=o,t[7]=c,t[8]=s,t[9]=l,t[10]=d,t[11]=f,t[12]=p,t[13]=r,t[14]=m):m=t[14];let h;return t[15]!==s||t[16]!==l||t[17]!==a||t[18]!==m?(h=(0,q.jsx)(kv,{label:a,controlId:l,fullWidth:s,children:m}),t[15]=s,t[16]=l,t[17]=a,t[18]=m,t[19]=h):h=t[19],h};function OS(e){return{value:e,label:e}}var kS=class{tagName=`marimo-dropdown`;validator=H({initialValue:U(B()),label:B().nullable(),options:U(B()),allowSelectNone:V(),fullWidth:V().default(!1),searchable:V().default(!1),disabled:V().default(!1)});render(e){if(e.data.searchable){let t=e.value.length>0?e.value[0]:null,n=t=>e.setValue(t?[t]:[]);return(0,q.jsx)(DS,{...e.data,value:t,setValue:n})}return(0,q.jsx)(jS,{...e.data,value:e.value,setValue:e.setValue})}},AS=`--`,jS=e=>{let t=(0,J.c)(25),{label:n,options:r,value:i,setValue:a,allowSelectNone:o,fullWidth:s,disabled:c}=e,l=(0,K.useId)(),u=o?AS:r[0],d=i.length===0?u:i[0],f;t[0]===a?f=t[1]:(f=e=>{let t=e.target.value;a(t===AS?[]:[t])},t[0]=a,t[1]=f);let p;t[2]===s?p=t[3]:(p=G({"w-full":s}),t[2]=s,t[3]=p);let m;t[4]!==o||t[5]!==i.length?(m=o?(0,q.jsx)(`option`,{value:AS,selected:i.length===0,children:`--`}):null,t[4]=o,t[5]=i.length,t[6]=m):m=t[6];let h;if(t[7]!==r||t[8]!==i){let e;t[10]===i?e=t[11]:(e=e=>(0,q.jsx)(`option`,{value:e,selected:i.includes(e),children:e},e),t[10]=i,t[11]=e),h=r.map(e),t[7]=r,t[8]=i,t[9]=h}else h=t[9];let g;t[12]!==c||t[13]!==l||t[14]!==d||t[15]!==f||t[16]!==p||t[17]!==m||t[18]!==h?(g=(0,q.jsxs)(vi,{"data-testid":`marimo-plugin-dropdown`,onChange:f,className:p,value:d,id:l,disabled:c,children:[m,h]}),t[12]=c,t[13]=l,t[14]=d,t[15]=f,t[16]=p,t[17]=m,t[18]=h,t[19]=g):g=t[19];let _;return t[20]!==s||t[21]!==l||t[22]!==n||t[23]!==g?(_=(0,q.jsx)(kv,{label:n,controlId:l,fullWidth:s,children:g}),t[20]=s,t[21]=l,t[22]=n,t[23]=g,t[24]=_):_=t[24],_},MS=K.lazy(()=>wo(()=>import(`./ConnectedDataExplorerComponent-t8fH_TNc.js`),__vite__mapDeps([349,1,2,3,4,15,16,17,22,23,24,31,6,25,26,27,32,33,30,34,35,37,350,39,82,139,327,62,59,64,71,12,7,13,9,14,18,154,72,155,156,157,158,159,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,88,43,28,89,162]),import.meta.url)),NS=Cv(`marimo-data-explorer`).withData(H({label:B().nullish(),data:B()})).renderer(e=>(0,q.jsx)(MS,{...e.data,value:e.value,setValue:e.setValue})),PS=(0,K.createContext)(new Map),FS=(0,K.createContext)(``),IS=(0,K.createContext)(()=>Promise.resolve({values:[],too_many_values:!1})),LS=e=>{let t=(0,J.c)(4),{type:n}=e,r;t[0]===n?r=t[1]:(r=()=>n.startsWith(`int`)||n.startsWith(`float`)||n.startsWith(`uint`)||n.startsWith(`number`)||n.startsWith(`complex`)?(0,q.jsx)(Fl,{size:14}):n.startsWith(`object`)||n.startsWith(`string`)?(0,q.jsx)(Oa,{size:14}):n.startsWith(`date`)||n.startsWith(`time`)?(0,q.jsx)(Ta,{size:14}):n.startsWith(`bool`)?(0,q.jsx)(Ca,{size:14}):(0,q.jsx)(_e,{size:14}),t[0]=n,t[1]=r);let i=r,a;return t[2]===i?a=t[3]:(a=(0,q.jsx)(`div`,{className:`border p-px border-border bg-(--slate-2) flex items-center justify-center rounded`,children:i()}),t[2]=i,t[3]=a),a},RS=()=>({isMatch:e=>{let{special:t}=R.parse(e.description||``);return t===`column_id`},Component:({schema:e,form:t,path:n})=>{let r=K.use(PS),{label:i,description:a}=R.parse(e.description);return(0,q.jsx)(l,{control:t.control,name:n,render:({field:e})=>(0,q.jsxs)(ce,{children:[(0,q.jsx)(ke,{children:i}),(0,q.jsx)(re,{children:a}),(0,q.jsx)(L,{children:(0,q.jsxs)(Ti,{"data-testid":`marimo-plugin-data-frames-column-select`,value:e.value==null?e.value:JSON.stringify(e.value),onValueChange:t=>{let n=JSON.parse(t);e.onChange(n)},children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(wi,{className:`min-w-[180px]`,children:(0,q.jsx)(pi,{placeholder:`--`})}),(0,q.jsx)(US,{})]}),(0,q.jsx)(bi,{children:(0,q.jsxs)(Ci,{children:[[...r.entries()].map(([e,t])=>(0,q.jsx)(_i,{value:JSON.stringify(e),children:(0,q.jsxs)(`span`,{className:`flex items-center gap-2 flex-1`,children:[(0,q.jsx)(LS,{type:t}),(0,q.jsx)(`span`,{className:`flex-1`,children:e}),(0,q.jsxs)(`span`,{className:`text-muted-foreground text-xs font-semibold`,children:[`(`,t,`)`]})]})},e)),r.size===0&&(0,q.jsx)(_i,{disabled:!0,value:`--`,children:`No columns`})]})})]})})]})})}}),zS=()=>({isMatch:e=>{if(e instanceof et){let t=e.element,n=t instanceof $e?t.description:``,{special:r}=R.parse(n||``);return r===`column_id`}return!1},Component:({schema:e,form:t,path:n})=>{let{label:r}=R.parse(e.description);return(0,q.jsx)(BS,{schema:e,form:t,path:n,itemLabel:r})}}),BS=e=>{let t=(0,J.c)(13),{schema:n,form:r,path:i,itemLabel:a}=e,o=K.use(PS),s;t[0]===n.description?s=t[1]:(s=R.parse(n.description),t[0]=n.description,t[1]=s);let{description:c}=s,u;t[2]===a?u=t[3]:(u=a?`Select ${a.toLowerCase()}`:void 0,t[2]=a,t[3]=u);let d=u,f;t[4]!==o||t[5]!==c||t[6]!==a||t[7]!==d?(f=e=>{let{field:t}=e,n=x(t.value);return(0,q.jsxs)(ce,{children:[(0,q.jsx)(ke,{children:a}),(0,q.jsx)(re,{children:c}),(0,q.jsx)(L,{children:(0,q.jsx)(we,{className:`min-w-[180px]`,placeholder:d,displayValue:String,multiple:!0,chips:!0,keepPopoverOpenOnSelect:!0,value:n,onValueChange:e=>{t.onChange(e)},children:[...o.entries()].map(qS)})}),(0,q.jsx)(xe,{})]})},t[4]=o,t[5]=c,t[6]=a,t[7]=d,t[8]=f):f=t[8];let p;return t[9]!==r.control||t[10]!==i||t[11]!==f?(p=(0,q.jsx)(l,{control:r.control,name:i,render:f}),t[9]=r.control,t[10]=i,t[11]=f,t[12]=p):p=t[12],p},VS=()=>({isMatch:e=>{if(e instanceof et){let{special:t}=R.parse(e.description||``);return t===`column_values`}return!1},Component:({schema:e,form:t,path:n})=>{let{label:r,description:i,placeholder:a}=R.parse(e.description),o=K.use(FS),s=K.use(IS),{data:c,isPending:u}=Ko(()=>s({column:o}),[o]),d=c?.values||[];if(d.length===0&&!u)return(0,q.jsx)(l,{control:t.control,name:n,render:({field:e})=>(0,q.jsxs)(ce,{children:[(0,q.jsx)(ke,{children:r}),(0,q.jsx)(re,{children:i}),(0,q.jsx)(L,{children:(0,q.jsx)(uo,{...e,value:e.value,onValueChange:e.onChange,className:`my-0`,placeholder:a})}),(0,q.jsx)(xe,{})]})});let f=d.map(String);return(0,q.jsx)(l,{control:t.control,name:n,render:({field:e})=>(0,q.jsxs)(ce,{children:[(0,q.jsx)(ke,{className:`whitespace-pre`,children:r}),(0,q.jsx)(re,{children:i}),(0,q.jsx)(L,{children:(0,q.jsx)(we,{className:`min-w-[180px]`,placeholder:a,multiple:!1,displayValue:e=>e,value:Array.isArray(e.value)?e.value[0]:e.value,onValueChange:e.onChange,children:f.map(e=>(0,q.jsx)(Oe,{value:e,children:e},e))})}),(0,q.jsx)(xe,{})]})})}}),HS=()=>({isMatch:e=>{let{special:t}=R.parse(e.description||``);return t===`column_values`&&e instanceof et},Component:({schema:e,form:t,path:n})=>{let r=K.use(FS),i=K.use(IS),{data:a,isPending:o}=Ko(()=>i({column:r}),[r]),s=a?.values||[];if(s.length===0&&!o)return(0,q.jsx)(l,{control:t.control,name:n,render:({field:t})=>(0,q.jsxs)(ce,{children:[(0,q.jsx)(ke,{children:e.description}),(0,q.jsx)(L,{children:(0,q.jsx)(I,{...t})}),(0,q.jsx)(xe,{})]})});let c=s.map(String);return(0,q.jsx)(l,{control:t.control,name:n,render:({field:t})=>{let n=x(t.value);return(0,q.jsxs)(ce,{children:[(0,q.jsx)(ke,{children:e.description}),(0,q.jsx)(L,{children:(0,q.jsx)(N,{...t,value:n,options:c})}),(0,q.jsx)(xe,{})]})}})}}),US=e=>{let t=(0,J.c)(4),{className:n}=e,r;t[0]===n?r=t[1]:(r=G(`text-destructive text-xs w-[16px]`,n),t[0]=n,t[1]=r);let i;return t[2]===r?i=t[3]:(i=(0,q.jsx)(Ee,{className:r}),t[2]=r,t[3]=i),i},WS=()=>({isMatch:e=>{if(e instanceof tt){let{special:t}=R.parse(e.description||``);return t===`column_filter`}return!1},Component:({schema:e,form:t,path:n})=>(0,q.jsx)(GS,{schema:e,form:t,path:n})}),GS=e=>{let t=(0,J.c)(25),{path:n,form:r,schema:i}=e,a;t[0]===i.description?a=t[1]:(a=R.parse(i.description),t[0]=i.description,t[1]=a);let{description:o}=a,s=K.use(PS),c=Lt.entries(i.shape).find(JS)?.[1],u;t[2]===n?u=t[3]:(u={name:n},t[2]=n,t[3]=u);let{column_id:f,operator:p}=d(u),m=RS(),h=[S({schema:c,form:r,path:`${n}.column_id`,renderers:[m]})],g,_;if(t[4]!==f||t[5]!==s||t[6]!==r||t[7]!==n?(g=()=>{let e=iy(s.get(f)),t=r.getValues(`${n}.operator`);e.includes(t)||(r.setValue(`${n}.operator`,e[0]),r.setValue(`${n}.value`,void 0))},_=[f,s,r,n],t[4]=f,t[5]=s,t[6]=r,t[7]=n,t[8]=g,t[9]=_):(g=t[8],_=t[9]),(0,K.useEffect)(g,_),f!=null){let e;t[10]!==f||t[11]!==s?(e=iy(s.get(f)),t[10]=f,t[11]=s,t[12]=e):e=t[12];let i=e;if(i.length===0){let e;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,q.jsxs)(`div`,{className:`text-muted-foreground text-xs font-semibold`,children:[(0,q.jsx)(ke,{className:`whitespace-pre`,children:` `}),(0,q.jsx)(`p`,{children:`This column type does not support filtering.`})]},`no_operator`),t[13]=e):e=t[13],h.push(e)}else{let e=`${n}.operator`,a;t[14]!==o||t[15]!==i?(a=e=>{let{field:t}=e;return(0,q.jsxs)(ce,{children:[(0,q.jsx)(ke,{className:`whitespace-pre`,children:` `}),(0,q.jsx)(re,{children:o}),(0,q.jsx)(L,{children:(0,q.jsxs)(Ti,{"data-testid":`marimo-plugin-data-frames-filter-operator-select`,value:t.value,onValueChange:t.onChange,children:[(0,q.jsx)(wi,{className:`min-w-[140px]`,children:(0,q.jsx)(pi,{placeholder:`--`})}),(0,q.jsx)(bi,{children:(0,q.jsx)(Ci,{children:i.map(YS)})})]})}),(0,q.jsx)(xe,{})]})},t[14]=o,t[15]=i,t[16]=a):a=t[16];let s;t[17]!==r.control||t[18]!==e||t[19]!==a?(s=(0,q.jsx)(l,{control:r.control,name:e,render:a},`operator`),t[17]=r.control,t[18]=e,t[19]=a,t[20]=s):s=t[20],h.push(s)}}if(p!=null){let e=ay(s.get(f),p);e.length===1&&h.push((0,q.jsx)(K.Fragment,{children:S({schema:e[0],form:r,path:`${n}.value`,renderers:[]})},`value`))}let v=()=>(0,q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,q.jsx)(`div`,{className:G(`flex flex-row gap-2`),children:h}),(0,q.jsx)(xe,{})]}),y;return t[21]!==r.control||t[22]!==n||t[23]!==v?(y=(0,q.jsx)(l,{control:r.control,name:n,render:v}),t[21]=r.control,t[22]=n,t[23]=v,t[24]=y):y=t[24],y},KS=[RS(),zS(),VS(),HS(),WS()];function qS(e){let[t,n]=e;return(0,q.jsx)(Oe,{value:t,children:(0,q.jsxs)(`span`,{className:`flex items-center gap-2 flex-1`,children:[(0,q.jsx)(LS,{type:n}),(0,q.jsx)(`span`,{className:`flex-1`,children:t}),(0,q.jsxs)(`span`,{className:`text-muted-foreground text-xs font-semibold`,children:[`(`,n,`)`]})]})},t)}function JS(e){let[t]=e;return t===`column_id`}function YS(e){return(0,q.jsx)(_i,{value:e,children:Fo.startCase(e)},e)}function XS(e,t,n=0){if(!t||t.length===0)return e;let r=t[Math.min(n,t.length-1)];if(!r)return e;let i=new Map;for(let[e,[t]]of r)i.set(e,t);return i}var ZS=({initialValue:e,columns:t,onChange:n,onInvalidChange:r,getColumnValues:i,columnTypesPerStep:a,lazy:o,ref:c})=>{let l=D({resolver:y(Dy),defaultValues:e,mode:`onChange`,reValidateMode:`onChange`}),{handleSubmit:u,watch:d,control:f,formState:p}=l,m=s(e=>{n(e)}),h=s(e=>{r(e)}),_=s(()=>{u(e=>{m(e),o&&l.reset(e,{keepValues:!0})},()=>{h(l.getValues())})()});(0,K.useImperativeHandle)(c,()=>({submit:_}),[]),(0,K.useEffect)(()=>{if(o)return;let e=d(()=>{_()});return()=>e.unsubscribe()},[d,_,o]);let[v,b]=K.useState(e.transforms.length>0?0:void 0),x=g({control:f,name:`transforms`}),S=l.watch(`transforms`),w=v===void 0?void 0:S[v]?.type,T=Ey.options.find(e=>C(e).value===w),E=(0,K.useMemo)(()=>XS(t,a,v),[t,S,v]),O=e=>{let t=Te(e),n=x.fields.length;x.append(t),b(n)};return(0,q.jsx)(PS,{value:E,children:(0,q.jsx)(IS,{value:i,children:(0,q.jsxs)(`form`,{onSubmit:e=>e.preventDefault(),onKeyDown:o?e=>e.key===`Enter`&&e.preventDefault():void 0,className:`relative flex flex-row max-h-[400px] overflow-hidden bg-background`,children:[(0,q.jsx)(QS,{items:l.watch(`transforms`),selected:v,onSelect:e=>{b(e)},onDelete:e=>{x.remove(e);let t=e-1;b(Math.max(t,0))},onAdd:O}),(0,q.jsxs)(`div`,{className:`flex flex-col flex-1 p-4 overflow-auto min-h-[200px] border-l`,children:[v!==void 0&&T&&(0,q.jsx)(P,{form:l,schema:T,path:`transforms.${v}`,renderers:KS},`transforms.${v}`),(v===void 0||!T)&&(0,q.jsxs)(`div`,{className:`flex flex-col items-center justify-center grow gap-3`,children:[(0,q.jsx)(Hl,{className:`w-8 h-8 text-muted-foreground`}),(0,q.jsx)($S,{onAdd:O,children:(0,q.jsx)(Ui,{"data-testid":`marimo-plugin-data-frames-add-transform`,variant:`text`,size:`xs`,children:(0,q.jsx)(`div`,{className:`text-sm`,children:`Select a transform to begin`})})})]})]}),o&&(0,q.jsxs)(`div`,{className:`absolute bottom-0 right-0 border-l border-t rounded-tl-sm flex flex-row items-center gap-1 p-1.5 pr-1`,children:[(0,q.jsx)(Ui,{"data-testid":`marimo-plugin-data-frames-apply`,variant:p.isDirty?`warn`:`outline`,size:`xs`,onClick:_,className:`h-6`,children:`Apply`}),(0,q.jsx)(Vi,{delayDuration:100,content:(0,q.jsxs)(`div`,{className:`flex flex-col gap-1.5 text-xs text-muted-foreground max-w-96 text-pretty`,children:[(0,q.jsxs)(`p`,{children:[`This dataframe is marked lazy to improve performance.`,` `,(0,q.jsxs)(`span`,{children:[`Click`,` `,(0,q.jsx)(`span`,{className:`px-1 mr-1 rounded border border-border`,children:`Apply`}),`to apply the transforms.`]})]}),(0,q.jsxs)(`p`,{children:[`Pass`,` `,(0,q.jsx)(`code`,{className:`bg-muted px-1 py-0.5 rounded-sm`,children:`lazy=False`}),` `,`to`,` `,(0,q.jsx)(`code`,{className:`bg-muted px-1 py-0.5 rounded-sm`,children:`mo.ui.dataframe`}),` `,`to automatically apply transformations.`]})]}),children:(0,q.jsx)(Se,{className:`w-3 h-3 text-muted-foreground hover:text-foreground cursor-help`})})]})]})})})},QS=e=>{let t=(0,J.c)(17),{items:n,selected:r,onAdd:i,onSelect:a,onDelete:o}=e,s;if(t[0]!==n||t[1]!==o||t[2]!==a||t[3]!==r){let e;t[5]!==o||t[6]!==a||t[7]!==r?(e=(e,t)=>(0,q.jsxs)(`div`,{onClick:()=>{a(t)},className:G(`flex flex-row min-h-[40px] items-center px-2 cursor-pointer hover:bg-accent/50 text-sm overflow-hidden hover-actions-parent border border-muted border-l-2 border-l-transparent`,{"border-l-primary bg-accent text-accent-foreground":r===t}),children:[(0,q.jsx)(`div`,{className:`grow text-ellipsis`,children:Fo.startCase(e.type)}),(0,q.jsx)(vo,{className:`w-3 h-3 hover-action text-muted-foreground hover:text-destructive`,onClick:e=>{o(t),e.stopPropagation()}})]},`${JSON.stringify(e)}-${t}`),t[5]=o,t[6]=a,t[7]=r,t[8]=e):e=t[8],s=n.map(e),t[0]=n,t[1]=o,t[2]=a,t[3]=r,t[4]=s}else s=t[4];let c;t[9]===s?c=t[10]:(c=(0,q.jsx)(`div`,{className:`flex flex-col overflow-y-auto grow`,children:s}),t[9]=s,t[10]=c);let l;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,q.jsxs)(Ui,{"data-testid":`marimo-plugin-data-frames-add-transform`,variant:`text`,className:`w-full rounded-none m-0 hover:text-accent-foreground`,size:`xs`,children:[(0,q.jsx)(io,{className:`w-3 h-3 mr-1`}),`Add`]}),t[11]=l):l=t[11];let u;t[12]===i?u=t[13]:(u=(0,q.jsx)(`div`,{className:`flex flex-row shrink-0`,children:(0,q.jsx)($S,{onAdd:i,children:l})}),t[12]=i,t[13]=u);let d;return t[14]!==c||t[15]!==u?(d=(0,q.jsxs)(`div`,{className:`flex flex-col overflow-y-hidden w-[180px] shadow-xs h-full`,children:[c,u]}),t[14]=c,t[15]=u,t[16]=d):d=t[16],d},$S=e=>{let t=(0,J.c)(12),{onAdd:n,children:r}=e,i;t[0]===r?i=t[1]:(i=(0,q.jsx)(rr,{asChild:!0,children:r}),t[0]=r,t[1]=i);let a,o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,q.jsx)(nr,{children:`Add Transform`}),o=(0,q.jsx)(er,{}),t[2]=a,t[3]=o):(a=t[2],o=t[3]);let s;t[4]===n?s=t[5]:(s=Object.values(Ey.options).map(e=>{let t=C(e),r=eC[t.value];return(0,q.jsxs)($n,{onSelect:t=>{t.stopPropagation(),n(e)},children:[(0,q.jsx)(r,{className:`w-3.5 h-3.5 mr-2`}),(0,q.jsx)(`span`,{children:Fo.startCase(t.value)})]},t.value)}),t[4]=n,t[5]=s);let c;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,q.jsx)($n,{onSelect:tC,children:(0,q.jsx)(`span`,{className:`underline text-primary text-xs cursor-pointer`,children:`Request a transform`})},`_request_`),t[6]=c):c=t[6];let l;t[7]===s?l=t[8]:(l=(0,q.jsxs)(ir,{className:`w-56`,children:[a,o,(0,q.jsxs)(tr,{children:[s,c]})]}),t[7]=s,t[8]=l);let u;return t[9]!==i||t[10]!==l?(u=(0,q.jsxs)(ar,{modal:!1,children:[i,l]}),t[9]=i,t[10]=l,t[11]=u):u=t[11],u},eC={aggregate:fo,column_conversion:me,filter_rows:Sr,group_by:Bl,rename_column:no,select_columns:Ul,sort_column:Nl,shuffle_rows:Vl,sample_rows:Ll,explode_columns:Il,expand_dict:Ra,unique:Rl,pivot:F};function tC(e){e.stopPropagation(),window.open(`https://github.com/marimo-team/marimo/issues/new?title=New%20dataframe%20transform:&labels=enhancement&template=feature_request.yaml`,`_blank`)}var nC=Cv(`marimo-dataframe`).withData(H({label:B().nullish(),pageSize:z().default(5),showDownload:V().default(!0),dataframeName:B().optional(),columns:U(Ue([B().or(z()),B(),B()])).transform(e=>{let t=new Map;return e.forEach(([e,n])=>{t.set(e,n)}),t}),lazy:V().default(!1)})).withFunctions({get_dataframe:Pv.input(H({})).output(H({url:B(),total_rows:z(),row_headers:cy,field_types:cy,column_types_per_step:U(cy),python_code:B().nullish(),sql_code:B().nullish()})),get_column_values:Pv.input(H({column:B()})).output(H({values:U(Qe()),too_many_values:V()})),search:Pv.input(H({sort:U(H({by:B(),descending:V()})).optional(),query:B().optional(),filters:hy.optional(),page_number:z(),page_size:z()})).output(H({data:We([B(),U(H({}).passthrough())]),total_rows:z()})),download_as:Rx,download_geojson:zx,get_export_metadata:Vx,get_size_bytes:Pv.input(H({})).output(H({size_bytes:z().nullish()}))}).renderer(e=>(0,q.jsx)(dS,{children:(0,q.jsx)(iC,{...e.data,...e.functions,value:e.value,setValue:e.setValue,host:e.host})})),rC={transforms:[]},iC=(0,K.memo)(e=>{let t=(0,J.c)(72),{columns:n,pageSize:r,showDownload:a,lazy:o,value:s,setValue:c,get_dataframe:l,get_column_values:u,search:d,download_as:f,download_geojson:p,get_export_metadata:m,get_size_bytes:h,host:g}=e,_;t[0]===l?_=t[1]:(_=()=>l({}),t[0]=l,t[1]=_);let v=s?.transforms,y;t[2]===v?y=t[3]:(y=[v],t[2]=v,t[3]=y);let{data:b,error:x,isPending:S}=Ko(_,y),C;t[4]===b?C=t[5]:(C=b||{},t[4]=b,t[5]=C);let{url:w,total_rows:T,row_headers:E,field_types:D,column_types_per_step:O,python_code:k,sql_code:A}=C,j=D?.length,[M,N]=(0,K.useState)(s||rC),P=(0,K.useRef)(null),F;t[6]===o?F=t[7]:(F=e=>{o&&e!==`transform`&&P.current?.submit()},t[6]=o,t[7]=F);let I=F,ee=(0,K.useRef)(M),L;t[8]===M?L=t[9]:(L=()=>{ee.current=M},t[8]=M,t[9]=L),(0,K.useEffect)(L);let te;t[10]!==c||t[11]!==s?.transforms.length?(te=()=>{let e=ee.current;s?.transforms.length!==e.transforms.length&&c(e)},t[10]=c,t[11]=s?.transforms.length,t[12]=te):te=t[12];let ne=s?.transforms.length,re;t[13]!==b||t[14]!==c||t[15]!==ne?(re=[b,ne,ee,c],t[13]=b,t[14]=c,t[15]=ne,t[16]=re):re=t[16],(0,K.useEffect)(te,re);let ie;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(ie=(0,q.jsxs)(Mi,{value:`transform`,className:`text-xs py-1`,children:[(0,q.jsx)(fo,{className:`w-3 h-3 mr-2`}),`Transform`]}),t[17]=ie):ie=t[17];let ae;t[18]===k?ae=t[19]:(ae=k&&(0,q.jsxs)(Mi,{value:`python-code`,className:`text-xs py-1`,children:[(0,q.jsx)(Fa,{className:`w-3 h-3 mr-2`}),`Python Code`]}),t[18]=k,t[19]=ae);let oe;t[20]===A?oe=t[21]:(oe=A&&(0,q.jsxs)(Mi,{value:`sql-code`,className:`text-xs py-1`,children:[(0,q.jsx)(Gi,{className:`w-3 h-3 mr-2`}),`SQL Code`]}),t[20]=A,t[21]=oe);let se;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(se=(0,q.jsx)(`div`,{className:`grow`}),t[22]=se):se=t[22];let ce;t[23]!==ae||t[24]!==oe?(ce=(0,q.jsxs)(Pi,{className:`h-8`,children:[ie,ae,oe,se]}),t[23]=ae,t[24]=oe,t[25]=ce):ce=t[25];let le;t[26]===S?le=t[27]:(le=S&&(0,q.jsx)(qa,{size:`small`}),t[26]=S,t[27]=le);let ue;t[28]!==ce||t[29]!==le?(ue=(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[ce,le]}),t[28]=ce,t[29]=le,t[30]=ue):ue=t[30];let de;t[31]!==c||t[32]!==s?(de=e=>{i(e,s)||(c(e),N(e))},t[31]=c,t[32]=s,t[33]=de):de=t[33];let fe;t[34]!==O||t[35]!==n||t[36]!==u||t[37]!==M||t[38]!==o||t[39]!==de?(fe=(0,q.jsx)(Ni,{value:`transform`,className:`mt-1 border rounded-t overflow-hidden`,children:(0,q.jsx)(ZS,{ref:P,initialValue:M,columns:n,onChange:de,onInvalidChange:N,getColumnValues:u,columnTypesPerStep:O,lazy:o})}),t[34]=O,t[35]=n,t[36]=u,t[37]=M,t[38]=o,t[39]=de,t[40]=fe):fe=t[40];let pe;t[41]===k?pe=t[42]:(pe=k&&(0,q.jsx)(Ni,{value:`python-code`,className:`mt-1 border rounded-t overflow-hidden`,children:(0,q.jsx)(Qa,{minHeight:`215px`,maxHeight:`215px`,code:k,language:`python`})}),t[41]=k,t[42]=pe);let me;t[43]===A?me=t[44]:(me=A&&(0,q.jsx)(Ni,{value:`sql-code`,className:`mt-1 border rounded-t overflow-hidden`,children:(0,q.jsx)(Qa,{minHeight:`215px`,maxHeight:`215px`,code:A,language:`sql`})}),t[43]=A,t[44]=me);let he;t[45]!==I||t[46]!==ue||t[47]!==fe||t[48]!==pe||t[49]!==me?(he=(0,q.jsxs)(Fi,{defaultValue:`transform`,onValueChange:I,children:[ue,fe,pe,me]}),t[45]=I,t[46]=ue,t[47]=fe,t[48]=pe,t[49]=me,t[50]=he):he=t[50];let ge;t[51]===x?ge=t[52]:(ge=x&&(0,q.jsx)(_s,{error:x}),t[51]=x,t[52]=ge);let _e=w||``,ve=T??0,ye=j??0,be=E||ko.EMPTY,xe=T&&T>5||!1,Se;t[53]!==f||t[54]!==p||t[55]!==D||t[56]!==m||t[57]!==h||t[58]!==g||t[59]!==r||t[60]!==d||t[61]!==a||t[62]!==_e||t[63]!==ve||t[64]!==ye||t[65]!==be||t[66]!==xe?(Se=(0,q.jsx)(lS,{label:null,className:`rounded-b border-x border-b`,data:_e,hasStableRowId:!1,totalRows:ve,totalColumns:ye,maxColumns:`all`,pageSize:r,pagination:!0,fieldTypes:D,rowHeaders:be,showDownload:a,download_as:f,download_geojson:p,get_export_metadata:m,get_size_bytes:h,showSearch:!1,showFilters:!1,search:d,showColumnSummaries:!1,showDataTypes:!0,get_column_summaries:aC,showPageSizeSelector:xe,showColumnExplorer:!1,showRowExplorer:!0,showChartBuilder:!1,value:ko.EMPTY,setValue:Pt.NOOP,selection:null,lazy:!1,host:g}),t[53]=f,t[54]=p,t[55]=D,t[56]=m,t[57]=h,t[58]=g,t[59]=r,t[60]=d,t[61]=a,t[62]=_e,t[63]=ve,t[64]=ye,t[65]=be,t[66]=xe,t[67]=Se):Se=t[67];let Ce;return t[68]!==he||t[69]!==ge||t[70]!==Se?(Ce=(0,q.jsxs)(`div`,{children:[he,ge,Se]}),t[68]=he,t[69]=ge,t[70]=Se,t[71]=Ce):Ce=t[71],Ce});iC.displayName=`DataFrameComponent`;function aC(){return Promise.resolve({data:null,stats:{},bin_values:{},value_counts:{},show_charts:!1})}var oC=Cv(`marimo-file-browser`).withData(H({initialPath:B(),filetypes:U(B()),selectionMode:B(),multiple:V(),label:B().nullable(),restrictNavigation:V()})).withFunctions({list_directory:Pv.input(H({path:B()})).output(H({files:U(H({id:B(),path:B(),name:B(),is_directory:V()})),total_count:z(),is_truncated:V()}))}).renderer(e=>(0,q.jsx)(lC,{...e.data,...e.functions,host:e.host,value:e.value,setValue:e.setValue})),sC=`..`;function cC(e){let t=(0,J.c)(20),{name:n,isSelected:r,canSelect:i,Icon:a,onSelect:o}=e;if(i){let e=`Select ${n}`,i;t[0]===o?i=t[1]:(i=e=>{o(),e.stopPropagation()},t[0]=o,t[1]=i);let s=!r,c;t[2]===s?c=t[3]:(c=G({"hidden group-hover:flex group-focus:flex":s}),t[2]=s,t[3]=c);let l;t[4]!==r||t[5]!==e||t[6]!==i||t[7]!==c?(l=(0,q.jsx)(p,{checked:r,"aria-label":e,tabIndex:-1,onClick:i,className:c}),t[4]=r,t[5]=e,t[6]=i,t[7]=c,t[8]=l):l=t[8];let u=!r,d;t[9]!==r||t[10]!==u?(d=G(`mr-2`,{hidden:r,"group-hover:hidden group-focus:hidden":u}),t[9]=r,t[10]=u,t[11]=d):d=t[11];let f;t[12]!==a||t[13]!==d?(f=(0,q.jsx)(a,{size:16,className:d}),t[12]=a,t[13]=d,t[14]=f):f=t[14];let m;return t[15]!==l||t[16]!==f?(m=(0,q.jsxs)(q.Fragment,{children:[l,f]}),t[15]=l,t[16]=f,t[17]=m):m=t[17],m}let s;return t[18]===a?s=t[19]:(s=(0,q.jsx)(a,{size:16,className:`mr-2`}),t[18]=a,t[19]=s),s}var lC=({value:e,setValue:t,initialPath:n,selectionMode:r,multiple:i,label:a,restrictNavigation:o,list_directory:s,host:c})=>{let[l,u]=Kr(n),[d,f]=(0,K.useState)(!1),[p,m]=(0,K.useState)(!1),[h,g]=(0,K.useState)(0),y=(0,K.useRef)([]),b=(0,K.useRef)(null),x=(0,K.useRef)(!1),S=c.closest(`[${_}]`)?.getAttribute(_),{data:C,error:w,isPending:T}=Ko(()=>s({path:l}),[l,S,s]);(0,K.useEffect)(()=>{if(!T){m(!1);return}let e=window.setTimeout(()=>{m(!0)},200);return()=>{window.clearTimeout(e)}},[T]);let E=`${l}::${S}`,[D,O]=(0,K.useState)({listingKey:E,list_directory:s});(D.listingKey!==E||D.list_directory!==s)&&(O({listingKey:E,list_directory:s}),g(0)),(0,K.useLayoutEffect)(()=>{x.current&&(x.current=!1,y.current[0]?.focus())},[E]);let k=C?.files??[],A=new Set(e.map(e=>e.path)),j=r===`directory`||r===`all`,M=r===`file`||r===`all`,N=k.filter(e=>j&&e.is_directory||M&&!e.is_directory),P=N.length>0&&N.every(e=>A.has(e.path));if(!C&&w)return(0,q.jsx)(vs,{kind:`danger`,children:w.message});let F=qi.guessDeliminator(n).deliminator,I=e.map(e=>(0,q.jsx)(`li`,{children:e.path},e.id));function ee(e){if(d)return;if(f(!0),e===sC){if(l===F){f(!1);return}e=Ki.dirname(l),e===``&&(e=F)}let t=e.length<n.length;if(o&&t){So({title:`Access denied`,description:`Access to directories outside initial path is restricted.`,variant:`danger`}),f(!1);return}x.current=b.current?.contains(document.activeElement)??!1,u(e),f(!1)}function L({path:e,name:t,isDirectory:n}){return{id:e,name:t,path:e,is_directory:n}}function te({path:n,name:r,isDirectory:a}){let o=L({path:n,name:r,isDirectory:a});A.has(n)?t(e.filter(e=>e.path!==n)):t(i?[...e,o]:[o])}function ne(){t(e.filter(e=>Ki.dirname(e.path)!==l))}function re(){let n=[];for(let e of k){if(!j&&e.is_directory||A.has(e.path))continue;let t=L({path:e.path,name:e.name,isDirectory:e.is_directory});n.push(t)}t([...e,...n])}let ie=[{key:`parent`,name:sC,Icon:zl,isSelected:!1,canSelect:!1,onPrimary:()=>ee(sC),onToggleSelect:null},...k.map(e=>{let t=e.path;t.startsWith(`//`)&&(t=t.slice(1));let n=j&&e.is_directory||M&&!e.is_directory,r=A.has(t),i=e.is_directory?`directory`:za(e.name),a=()=>te({path:t,name:e.name,isDirectory:e.is_directory});return{key:e.id,name:e.name,Icon:Ba[i],isSelected:r,canSelect:n,onPrimary:e.is_directory?()=>ee(t):n?a:()=>{},onToggleSelect:n?a:null}})];function ae(e){g(e),y.current[e]?.focus()}function oe(e,t){let n=ie.length-1;switch(e.key){case`ArrowDown`:e.preventDefault(),ae(Math.min(t+1,n));break;case`ArrowUp`:e.preventDefault(),ae(Math.max(t-1,0));break;case`Home`:e.preventDefault(),ae(0);break;case`End`:e.preventDefault(),ae(n);break;case`Enter`:e.preventDefault(),ie[t].onPrimary();break;case` `:e.preventDefault(),ie[t].onToggleSelect?.()}}let{protocol:se,parentDirectories:ce}=js({path:l,delimiter:F,initialPath:n,restrictNavigation:o}),le=ce.toReversed().map(e=>({path:e,name:e===se?se:e.split(F).findLast(Boolean)??e})),ue=r===`all`?v.of(`file`,`folder`):r===`directory`?v.of(`folder`):v.of(`file`);return(0,q.jsxs)(`div`,{children:[w&&(0,q.jsx)(vs,{kind:`danger`,children:w.message}),(()=>{let e=a??`Select ${ue.join(` and `,2)}...`,t=(0,q.jsx)(mi,{children:Xo({html:e})});return i?(0,q.jsxs)(`div`,{className:`flex items-center justify-between border px-2`,children:[(0,q.jsx)(`div`,{className:`mb-1`,children:t}),(0,q.jsx)(`div`,{children:(0,q.jsx)(Ui,{size:`xs`,variant:`link`,onClick:P?ne:re,children:P?`Deselect all`:`Select all`})})]}):t})(),(0,q.jsx)(`nav`,{"aria-label":`Current directory`,className:`mt-2`,children:(0,q.jsx)(`ol`,{className:`flex flex-wrap items-center gap-0.5 text-sm`,children:le.map((e,t)=>{let n=t===le.length-1;return(0,q.jsxs)(`li`,{className:`flex items-center gap-0.5`,children:[t>0&&(0,q.jsx)(Pa,{size:14,className:`text-muted-foreground shrink-0`,"aria-hidden":!0}),(0,q.jsx)(`button`,{type:`button`,title:e.path,"aria-current":n?`page`:void 0,onClick:()=>{n||ee(e.path)},className:G(`rounded px-1 focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring`,n?`font-medium cursor-default`:`text-muted-foreground hover:bg-accent hover:text-foreground`),children:e.name})]},e.path)})})}),C&&typeof C.total_count==`number`&&(0,q.jsx)(`div`,{className:`text-xs text-muted-foreground mt-1 px-1`,children:C.is_truncated?`Showing ${k.length} of ${C.total_count} items`:`${C.total_count} ${C.total_count===1?`item`:`items`}`}),(0,q.jsxs)(`div`,{className:`mt-3 overflow-y-auto w-full border relative`,style:{height:`14rem`},"aria-busy":T,"aria-live":`polite`,children:[p&&(0,q.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-2 bg-background/80 text-xs text-muted-foreground pointer-events-none z-10`,role:`status`,children:[(0,q.jsx)(qa,{size:`small`}),(0,q.jsx)(`span`,{children:`Listing files...`})]}),(0,q.jsx)(Es,{ref:b,className:`cursor-pointer table-fixed`,role:`grid`,"aria-label":`File browser`,"aria-multiselectable":i,children:(0,q.jsx)(Cs,{children:ie.map((e,t)=>(0,q.jsxs)(ws,{role:`row`,ref:e=>{y.current[t]=e},tabIndex:t===h?0:-1,onFocus:()=>g(t),onKeyDown:e=>oe(e,t),className:G(`hover:bg-accent group select-none focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-inset`,{"bg-primary/25 hover:bg-primary/35":e.isSelected}),"aria-selected":e.canSelect?e.isSelected:void 0,onClick:e.onPrimary,children:[(0,q.jsx)(Ts,{role:`gridcell`,className:`w-[50px] pl-4`,children:(0,q.jsx)(cC,{name:e.name,isSelected:e.isSelected,canSelect:e.canSelect,Icon:e.Icon,onSelect:()=>e.onToggleSelect?.()})}),(0,q.jsx)(Ts,{role:`gridcell`,children:e.name})]},e.key))})})]}),(0,q.jsx)(`div`,{className:`mt-4`,children:e.length>0&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsxs)(`span`,{className:`font-bold text-xs`,children:[e.length,` `,ue.join(` or `,e.length),` `,`selected`]}),(0,q.jsx)(`button`,{className:G(`text-xs text-destructive hover:underline`),onClick:()=>t([]),type:`button`,children:`clear all`})]}),(0,q.jsx)(`div`,{className:`markdown`,children:(0,q.jsx)(`ul`,{style:{marginBlock:0},className:`m-0 text-xs text-muted-foreground`,children:I})})]})})]})},uC=class{tagName=`marimo-file`;validator=H({filetypes:U(B()),multiple:V(),kind:Ze([`button`,`area`]),label:B().nullable(),max_size:z()});render(e){return(0,q.jsx)(fC,{label:e.data.label,filetypes:e.data.filetypes,multiple:e.data.multiple,kind:e.data.kind,value:e.value,setValue:e.setValue,max_size:e.data.max_size})}};function dC(e){let t={},n=(e,n)=>{Object.hasOwn(t,e)?t[e].push(n):t[e]=[n]};return e.forEach(e=>{switch(e){case`.png`:case`.jpg`:case`.jpeg`:case`.gif`:case`.avif`:case`.bmp`:case`.ico`:case`.svg`:case`.tiff`:case`.webp`:n(`image/*`,e);break;case`.avi`:case`.mp4`:case`.mpeg`:case`.ogg`:case`.webm`:n(`video/*`,e);break;case`.pdf`:n(`application/pdf`,e);break;case`.csv`:n(`text/csv`,e);break;default:n(`text/plain`,e)}}),t}var fC=e=>{let t=(0,J.c)(78),n;t[0]===e.filetypes?n=t[1]:(n=dC(e.filetypes),t[0]=e.filetypes,t[1]=n);let r=n,{setValue:i,kind:a,multiple:o,value:s,max_size:c}=e,l;t[2]===i?l=t[3]:(l=e=>{ya(e).then(e=>{i(e)}).catch(_C)},t[2]=i,t[3]=l);let u;t[4]!==r||t[5]!==c||t[6]!==o||t[7]!==l?(u={accept:r,multiple:o,maxSize:c,onError:pC,onDropRejected:gC,onDrop:l},t[4]=r,t[5]=c,t[6]=o,t[7]=l,t[8]=u):u=t[8];let{getRootProps:d,getInputProps:f,isFocused:p,isDragAccept:m,isDragReject:h}=xo(u),g;t[9]===s?g=t[10]:(g=s.map(vC),t[9]=s,t[10]=g);let _;t[11]===g?_=t[12]:(_=(0,q.jsx)(`ul`,{children:g}),t[11]=g,t[12]=_);let v=_,y=s.length>0;if(a===`button`){let n=e.label??`Upload`,r;t[13]===d?r=t[14]:(r=d({}),t[13]=d,t[14]=r);let a;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(a=Hi({variant:`secondary`,size:`xs`}),t[15]=a):a=t[15];let o;t[16]===n?o=t[17]:(o=Xo({html:n}),t[16]=n,t[17]=o);let c;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,q.jsx)(bo,{size:14,className:`ml-2`}),t[18]=c):c=t[18];let l;t[19]!==r||t[20]!==a||t[21]!==o?(l=(0,q.jsxs)(`button`,{"data-testid":`marimo-plugin-file-upload-button`,...r,className:a,children:[o,c]}),t[19]=r,t[20]=a,t[21]=o,t[22]=l):l=t[22];let u;t[23]===f?u=t[24]:(u=f({}),t[23]=f,t[24]=u);let p;t[25]===u?p=t[26]:(p=(0,q.jsx)(`input`,{...u,type:`file`}),t[25]=u,t[26]=p);let m;t[27]!==i||t[28]!==y||t[29]!==v||t[30]!==s.length?(m=y?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Vi,{content:v,children:(0,q.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`Uploaded`,` `,(0,q.jsxs)(`span`,{className:`underline cursor-pointer`,children:[s.length,` `,s.length===1?`file`:`files`,`.`]})]})}),(0,q.jsx)(`button`,{className:G(`text-xs text-destructive hover:underline`),onClick:()=>i([]),type:`button`,children:`Click to clear files.`})]}):null,t[27]=i,t[28]=y,t[29]=v,t[30]=s.length,t[31]=m):m=t[31];let h;return t[32]!==p||t[33]!==m||t[34]!==l?(h=(0,q.jsxs)(`div`,{className:`flex flex-row items-center justify-start gap-2`,children:[l,p,m]}),t[32]=p,t[33]=m,t[34]=l,t[35]=h):h=t[35],h}let b=e.label??`Drag and drop ${o?`files`:`a file`} here, or click to open file browser`,x=!p&&`border-input/60 border-dashed`,S=p&&`border-solid`,C;t[36]!==x||t[37]!==S?(C=G(`hover:text-primary`,`mt-3 mb-2 w-full flex flex-col items-center justify-center `,`px-6 py-6 sm:px-8 sm:py-8 md:py-10 md:px-16`,`border rounded-sm`,`text-sm text-muted-foreground`,`hover:cursor-pointer`,`active:shadow-xs-solid`,`focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:border-accent`,x,S),t[36]=x,t[37]=S,t[38]=C):C=t[38];let w;t[39]===d?w=t[40]:(w=d(),t[39]=d,t[40]=w);let T;t[41]===f?T=t[42]:(T=f(),t[41]=f,t[42]=T);let E;t[43]===T?E=t[44]:(E=(0,q.jsx)(`input`,{...T}),t[43]=T,t[44]=E);let D;t[45]!==b||t[46]!==y?(D=y?(0,q.jsxs)(`span`,{children:[`To re-upload: `,Xo({html:b})]}):(0,q.jsx)(`span`,{className:`mt-0`,children:Xo({html:b})}),t[45]=b,t[46]=y,t[47]=D):D=t[47];let O=m&&`text-primary`,k=h&&`text-destructive`,A;t[48]!==O||t[49]!==k?(A=G(O,k),t[48]=O,t[49]=k,t[50]=A):A=t[50];let j;t[51]===A?j=t[52]:(j=(0,q.jsx)(bo,{strokeWidth:1.4,className:A}),t[51]=A,t[52]=j);let M=m&&`text-primary`,N=h&&`text-destructive`,P;t[53]!==M||t[54]!==N?(P=G(M,N),t[53]=M,t[54]=N,t[55]=P):P=t[55];let F;t[56]===P?F=t[57]:(F=(0,q.jsx)(Hl,{strokeWidth:1.4,className:P}),t[56]=P,t[57]=F);let I;t[58]!==j||t[59]!==F?(I=(0,q.jsxs)(`div`,{className:`flex flex-row items-center justify-center grow gap-3`,children:[j,F]}),t[58]=j,t[59]=F,t[60]=I):I=t[60];let ee;t[61]!==D||t[62]!==I?(ee=(0,q.jsxs)(`div`,{className:`flex flex-col items-center justify-center grow gap-3`,children:[D,I]}),t[61]=D,t[62]=I,t[63]=ee):ee=t[63];let L;t[64]!==E||t[65]!==ee||t[66]!==C||t[67]!==w?(L=(0,q.jsxs)(`div`,{className:C,...w,children:[E,ee]}),t[64]=E,t[65]=ee,t[66]=C,t[67]=w,t[68]=L):L=t[68];let te;t[69]!==o||t[70]!==i||t[71]!==y||t[72]!==v||t[73]!==s.length?(te=y?(0,q.jsxs)(`div`,{className:`flex flex-row gap-1`,children:[(0,q.jsxs)(`div`,{className:`text-xs text-muted-foreground`,children:[`Uploaded`,` `,(0,q.jsx)(Vi,{content:v,children:(0,q.jsxs)(`span`,{className:`underline cursor-pointer`,children:[s.length,` `,s.length===1?`file`:`files`,`.`]})})]}),(0,q.jsx)(`span`,{className:`text-xs text-destructive hover:underline hover:cursor-pointer`,children:(0,q.jsxs)(`button`,{className:G(`text-destructive`,`hover:underline`),onClick:()=>i([]),type:`button`,children:[`Click to clear `,o?`files`:`file`,`.`]})})]}):null,t[69]=o,t[70]=i,t[71]=y,t[72]=v,t[73]=s.length,t[74]=te):te=t[74];let ne;return t[75]!==L||t[76]!==te?(ne=(0,q.jsx)(`section`,{children:(0,q.jsxs)(`div`,{className:`flex flex-col items-start justify-start grow gap-3`,children:[L,te]})}),t[75]=L,t[76]=te,t[77]=ne):ne=t[77],ne};function pC(e){W.error(e),So({title:`File upload failed`,description:e.message,variant:`danger`})}function mC(e){return e.message}function hC(e){return(0,q.jsxs)(`div`,{children:[e.file.name,` (`,e.errors.map(mC).join(`, `),`)`]},e.file.name)}function gC(e){So({title:`File upload failed`,description:(0,q.jsx)(`div`,{className:`flex flex-col gap-1`,children:e.map(hC)}),variant:`danger`})}function _C(e){W.error(e),So({title:`File upload failed`,description:`Failed to convert file to base64.`,variant:`danger`})}function vC(e){let[t]=e;return(0,q.jsx)(`li`,{children:t},t)}var yC=Cv(`marimo-form`).withData(H({label:B().nullable(),elementId:B().transform(e=>e),bordered:V().default(!0),loading:V().default(!1),submitButtonLabel:B().default(`Submit`),submitButtonTooltip:B().optional(),submitButtonDisabled:V().default(!1),clearOnSubmit:V().default(!1),showClearButton:V().default(!1),clearButtonLabel:B().default(`Clear`),clearButtonTooltip:B().optional(),shouldValidate:V().optional()})).withFunctions({validate:Pv.input(H({value:Ge()})).output(B().nullish())}).renderer(({data:e,functions:t,...n})=>(0,q.jsx)(xC,{...e,...n,...t})),bC=e=>{let t=(0,J.c)(43),{children:n,currentValue:r,newValue:i,setValue:a,label:o,bordered:s,loading:c,submitButtonLabel:l,submitButtonTooltip:u,submitButtonDisabled:d,clearOnSubmit:f,showClearButton:p,clearButtonLabel:m,clearButtonTooltip:h,validate:g,shouldValidate:_}=e,v=(0,K.useRef)(null),y=i===r,b=y?`secondary`:`action`,[x,S]=(0,K.useState)(null),C;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(C=()=>{v.current&&CC(v.current)},t[0]=C):C=t[0];let w=C,T;t[1]!==f||t[2]!==i||t[3]!==a||t[4]!==_||t[5]!==g?(T=async e=>{if(e.preventDefault(),_){let e=await g({value:i}).catch(e=>{S(e.message??`Error validating`)});if(e!=null){S(e);return}}S(null),a(i),f&&w()},t[1]=f,t[2]=i,t[3]=a,t[4]=_,t[5]=g,t[6]=T):T=t[6];let E=!y&&s,D;t[7]!==s||t[8]!==E?(D=G(`flex flex-col gap-4 rounded-lg py-4 px-8`,{"bg-(--gray-1) shadow-md border border-input":s,"bg-(--amber-1) border-(--amber-7)":E}),t[7]=s,t[8]=E,t[9]=D):D=t[9];let O;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(O=e=>{e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),e.stopPropagation(),v.current?.requestSubmit())},t[10]=O):O=t[10];let k;t[11]===o?k=t[12]:(k=o===null?null:(0,q.jsx)(`div`,{className:`text-center`,children:Xo({html:o})}),t[11]=o,t[12]=k);let A;t[13]===x?A=t[14]:(A=x!=null&&(0,q.jsx)(vs,{kind:`danger`,className:`rounded`,children:x??`Invalid input`}),t[13]=x,t[14]=A);let j;t[15]===n?j=t[16]:(j=(0,q.jsx)(`div`,{children:n}),t[15]=n,t[16]=j);let M;t[17]!==m||t[18]!==h||t[19]!==p?(M=p&&SC((0,q.jsx)(Ui,{"data-testid":`marimo-plugin-form-clear-button`,variant:`text`,onClick:e=>{e.preventDefault(),w()},children:m}),h),t[17]=m,t[18]=h,t[19]=p,t[20]=M):M=t[20];let N=d||c,P;t[21]===c?P=t[22]:(P=c&&(0,q.jsx)(Ka,{className:`h-4 w-4 mr-2 animate-spin`}),t[21]=c,t[22]=P);let F;t[23]!==l||t[24]!==N||t[25]!==P||t[26]!==b?(F=(0,q.jsxs)(Ui,{"data-testid":`marimo-plugin-form-submit-button`,variant:b,disabled:N,type:`submit`,children:[P,l]}),t[23]=l,t[24]=N,t[25]=P,t[26]=b,t[27]=F):F=t[27];let I;t[28]!==u||t[29]!==F?(I=SC(F,u),t[28]=u,t[29]=F,t[30]=I):I=t[30];let ee;t[31]!==I||t[32]!==M?(ee=(0,q.jsxs)(`div`,{className:`flex justify-end gap-2 font-code`,children:[M,I]}),t[31]=I,t[32]=M,t[33]=ee):ee=t[33];let L;t[34]!==ee||t[35]!==D||t[36]!==k||t[37]!==A||t[38]!==j?(L=(0,q.jsxs)(`div`,{className:D,onKeyDown:O,children:[k,A,j,ee]}),t[34]=ee,t[35]=D,t[36]=k,t[37]=A,t[38]=j,t[39]=L):L=t[39];let te;return t[40]!==L||t[41]!==T?(te=(0,q.jsx)(`form`,{className:`contents`,ref:v,onSubmit:T,children:L}),t[40]=L,t[41]=T,t[42]=te):te=t[42],te},xC=e=>{let t=(0,J.c)(24),n,r,i,a,o,s;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4],o=t[5],s=t[6]):({elementId:i,value:s,setValue:a,children:n,validate:o,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o,t[6]=s);let c;t[7]===i?c=t[8]:(c=Dt.lookupValue(i),t[7]=i,t[8]=c);let[l,u]=(0,K.useState)(c),d,f;t[9]===i?(d=t[10],f=t[11]):(d=()=>{u(Dt.lookupValue(i))},f=[i],t[9]=i,t[10]=d,t[11]=f),(0,K.useEffect)(d,f);let p=Dt.lookupValue(i);Object.is(p,l)||u(p);let m;t[12]===i?m=t[13]:(m=()=>{let e=e=>{let t=e.detail.element;t===null||!(t instanceof Node)||yv(t)===i&&u(e.detail.value)};return document.addEventListener(fs.TYPE,e),()=>{document.removeEventListener(fs.TYPE,e)}},t[12]=i,t[13]=m);let h;t[14]!==i||t[15]!==a?(h=[i,a],t[14]=i,t[15]=a,t[16]=h):h=t[16],(0,K.useEffect)(m,h);let g;return t[17]!==n||t[18]!==r||t[19]!==l||t[20]!==a||t[21]!==o||t[22]!==s?(g=(0,q.jsx)(bC,{currentValue:s,newValue:l,setValue:a,validate:o,...r,children:n}),t[17]=n,t[18]=r,t[19]=l,t[20]=a,t[21]=o,t[22]=s,t[23]=g):g=t[23],g};function SC(e,t){return t?(0,q.jsx)(Vi,{content:t,children:e}):e}function CC(e){e instanceof HTMLElement&&(e.shadowRoot&&[...e.shadowRoot.children].forEach(CC),[...e.children].forEach(CC),bv(e)&&e.reset())}var wC=`td.bracket-l:before{border-left:2px solid var(--foreground);content:"";pointer-events:none;width:0;position:absolute;top:0;bottom:0;left:-4px}td.bracket-l.bracket-t:before{border-top:2px solid var(--foreground);width:8px;top:-1px}td.bracket-l.bracket-b:before{border-bottom:2px solid var(--foreground);width:8px;bottom:-1px}td.bracket-r:after{border-right:2px solid var(--foreground);content:"";pointer-events:none;width:0;position:absolute;top:0;bottom:0;right:-4px}td.bracket-r.bracket-t:after{border-top:2px solid var(--foreground);width:8px;top:-1px}td.bracket-r.bracket-b:after{border-bottom:2px solid var(--foreground);width:8px;bottom:-1px}`,TC=class{tagName=`marimo-matrix`;cssStyles=[wC];validator=H({initialValue:U(U(z())),label:B().nullable(),minValue:U(U(z())).nullish(),maxValue:U(U(z())).nullish(),step:U(U(z())),precision:z(),rowLabels:U(B()).nullish(),columnLabels:U(B()).nullish(),symmetric:V(),debounce:V().default(!1),scientific:V(),disabled:U(U(V()))});render(e){return(0,q.jsx)(jC,{...e.data,value:e.value,setValue:e.setValue})}},EC=10,DC=10,OC=.1,kC=e=>e.shiftKey?DC:e.altKey?OC:1,AC=(e,t)=>{let n=Number(e.toFixed(12)),r=2**-52*Math.max(Math.abs(e),Math.abs(t))*100;return Math.abs(e-n)<=r?n:e},jC=e=>{let t=(0,J.c)(99),{value:n,setValue:r,label:i,minValue:a,maxValue:o,step:s,precision:c,rowLabels:l,columnLabels:u,symmetric:d,debounce:f,scientific:p,disabled:m}=e,h=(0,K.useRef)(null),[g,_]=(0,K.useState)(null),[v,y]=(0,K.useState)(n),b,x;t[0]===n?(b=t[1],x=t[2]):(b=()=>{y(n)},x=[n],t[0]=n,t[1]=b,t[2]=x),(0,K.useEffect)(b,x);let S=g==null?n:v,[C,w]=(0,K.useState)(null),T=(0,K.useRef)(null),E=(0,K.useRef)(null),D;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(D=e=>{T.current=e,w(e)},t[3]=D):D=t[3];let O=D,k;t[4]!==c||t[5]!==p?(k=e=>p?e.toExponential(c):e.toFixed(c),t[4]=c,t[5]=p,t[6]=k):k=t[6];let A=k,j;t[7]!==o||t[8]!==a?(j=(e,t,n)=>{let r=e;return a!=null&&(r=Math.max(r,a[t][n])),o!=null&&(r=Math.min(r,o[t][n])),r},t[7]=o,t[8]=a,t[9]=j):j=t[9];let M=j,N;t[10]!==M||t[11]!==d?(N=(e,t,n,r)=>{let i=d&&t!==n,a=M(r,t,n);if(i&&(a=M(a,n,t)),a===e[t][n])return null;let o=e.map(MC);return o[t][n]=a,i&&(o[n][t]=a),o},t[10]=M,t[11]=d,t[12]=N):N=t[12];let P=N,F;t[13]!==m||t[14]!==n?(F=(e,t,r)=>{m[e][t]||(h.current=null,_(null),O({row:e,col:t,text:r??String(n[e][t]),selectAll:r==null}))},t[13]=m,t[14]=n,t[15]=F):F=t[15];let I=F,ee;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(ee=e=>{E.current=e,e&&(e.focus(),T.current?.selectAll?e.select():e.setSelectionRange(e.value.length,e.value.length))},t[16]=ee):ee=t[16];let L=ee,te;t[17]!==r||t[18]!==n||t[19]!==P?(te=e=>{let t=T.current;if(!t)return;let i=e?E.current?.closest(`td`):null;O(null);let a=t.text.trim(),o=Number(a);if(a!==``&&Number.isFinite(o)){let e=P(n,t.row,t.col,o);e&&(y(e),r(e))}i?.focus()},t[17]=r,t[18]=n,t[19]=P,t[20]=te):te=t[20];let ne=te,re;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(re=()=>{let e=E.current?.closest(`td`);O(null),e?.focus()},t[21]=re):re=t[21];let ie=re,ae;t[22]===ne?ae=t[23]:(ae=e=>{e.stopPropagation(),e.key===`Enter`?(e.preventDefault(),ne(!0)):e.key===`Escape`&&(e.preventDefault(),ie())},t[22]=ne,t[23]=ae);let oe=ae,se;t[24]!==m||t[25]!==S||t[26]!==C?(se=(e,t,n)=>{m[t][n]||C!=null||!(e.target instanceof Element)||(e.preventDefault(),e.currentTarget.focus(),e.target.setPointerCapture(e.pointerId),h.current={row:t,col:n,startX:e.clientX,startValue:S[t][n],multiplier:kC(e)},_({row:t,col:n}))},t[24]=m,t[25]=S,t[26]=C,t[27]=se):se=t[27];let ce=se,le;t[28]!==f||t[29]!==S||t[30]!==r||t[31]!==s||t[32]!==P?(le=e=>{let t=h.current;if(!t)return;let n=kC(e);n!==t.multiplier&&(t.startX=e.clientX,t.startValue=S[t.row][t.col],t.multiplier=n);let{row:i,col:a,startX:o,startValue:c}=t,l=e.clientX-o,u=s[i][a]*n,d=Math.round(l/EC),p=P(S,i,a,AC(c+d*u,u));p&&(y(p),f||r(p))},t[28]=f,t[29]=S,t[30]=r,t[31]=s,t[32]=P,t[33]=le):le=t[33];let ue=le,de;t[34]!==f||t[35]!==S||t[36]!==r?(de=()=>{f&&h.current&&r(S),h.current=null,_(null)},t[34]=f,t[35]=S,t[36]=r,t[37]=de):de=t[37];let fe=de,pe;t[38]!==m||t[39]!==S||t[40]!==r||t[41]!==I||t[42]!==s||t[43]!==P?(pe=(e,t,n)=>{if(m[t][n])return;if(e.key===`Enter`||e.key===`F2`){e.preventDefault(),I(t,n);return}if(e.key.length===1&&/[\d.+-]/.test(e.key)&&!e.ctrlKey&&!e.metaKey&&!e.altKey){e.preventDefault(),I(t,n,e.key);return}let i=s[t][n],a;bb162:switch(e.key){case`ArrowUp`:case`ArrowRight`:a=i*kC(e);break bb162;case`ArrowDown`:case`ArrowLeft`:a=-i*kC(e);break bb162;case`PageUp`:a=i*DC;break bb162;case`PageDown`:a=-i*DC;break bb162;default:return}e.preventDefault();let o=P(S,t,n,AC(S[t][n]+a,a));o&&(y(o),r(o))},t[38]=m,t[39]=S,t[40]=r,t[41]=I,t[42]=s,t[43]=P,t[44]=pe):pe=t[44];let me=pe,he=l!=null&&l.length>0,ge=u!=null&&u.length>0,_e=S.length,ve=S[0]?.length??0,ye=i||`Matrix`,be;t[45]!==u||t[46]!==ge||t[47]!==he?(be=ge&&(0,q.jsx)(`thead`,{children:(0,q.jsxs)(`tr`,{children:[he&&(0,q.jsx)(`th`,{"aria-hidden":`true`}),u.map(NC)]})}),t[45]=u,t[46]=ge,t[47]=he,t[48]=be):be=t[48];let xe;if(t[49]!==g?.col||t[50]!==g?.row||t[51]!==u||t[52]!==ne||t[53]!==m||t[54]!==S||t[55]!==C||t[56]!==A||t[57]!==oe||t[58]!==me||t[59]!==ce||t[60]!==he||t[61]!==o||t[62]!==a||t[63]!==ve||t[64]!==_e||t[65]!==l||t[66]!==I){let e;t[68]!==g?.col||t[69]!==g?.row||t[70]!==u||t[71]!==ne||t[72]!==m||t[73]!==C||t[74]!==A||t[75]!==oe||t[76]!==me||t[77]!==ce||t[78]!==he||t[79]!==o||t[80]!==a||t[81]!==ve||t[82]!==_e||t[83]!==l||t[84]!==I?(e=(e,t)=>(0,q.jsxs)(`tr`,{children:[he&&(0,q.jsx)(`th`,{className:`text-right text-sm font-medium text-foreground pr-3 h-8`,children:l[t]}),e.map((e,n)=>{let r=m[t][n],i=g?.row===t&&g?.col===n,s=C!=null&&C.row===t&&C.col===n?C:null,c=l?.[t]??`Row ${t+1}`,d=u?.[n]??`Column ${n+1}`;return(0,q.jsx)(`td`,{className:G(`relative text-center min-w-14 h-8 px-2 transition-colors touch-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-hidden`,r?`cursor-default text-muted-foreground`:s?`cursor-text`:`cursor-ew-resize text-link hover:bg-accent`,(i||s!=null)&&`bg-accent`,n===0&&`bracket-l`,n===ve-1&&`bracket-r`,t===0&&`bracket-t`,t===_e-1&&`bracket-b`),tabIndex:r?-1:0,title:String(e),"aria-label":`${c}, ${d}`,"aria-valuenow":e,"aria-valuemin":a?.[t]?.[n],"aria-valuemax":o?.[t]?.[n],"aria-disabled":r||void 0,onPointerDown:e=>ce(e,t,n),onDoubleClick:()=>I(t,n),onKeyDown:e=>me(e,t,n),"data-testid":`matrix-cell-${t}-${n}`,children:s?(0,q.jsx)(`input`,{ref:L,className:`bg-transparent text-center font-mono text-sm text-foreground outline-none select-text`,style:{width:`${Math.max(s.text.length+2,6)}ch`},value:s.text,onChange:e=>O({...s,text:e.target.value}),onKeyDown:oe,onBlur:()=>ne(!1),onPointerDown:PC,"aria-label":`Edit ${c}, ${d}`,"data-testid":`matrix-input-${t}-${n}`}):A(e)},n)})]},t),t[68]=g?.col,t[69]=g?.row,t[70]=u,t[71]=ne,t[72]=m,t[73]=C,t[74]=A,t[75]=oe,t[76]=me,t[77]=ce,t[78]=he,t[79]=o,t[80]=a,t[81]=ve,t[82]=_e,t[83]=l,t[84]=I,t[85]=e):e=t[85],xe=S.map(e),t[49]=g?.col,t[50]=g?.row,t[51]=u,t[52]=ne,t[53]=m,t[54]=S,t[55]=C,t[56]=A,t[57]=oe,t[58]=me,t[59]=ce,t[60]=he,t[61]=o,t[62]=a,t[63]=ve,t[64]=_e,t[65]=l,t[66]=I,t[67]=xe}else xe=t[67];let Se;t[86]===xe?Se=t[87]:(Se=(0,q.jsx)(`tbody`,{children:xe}),t[86]=xe,t[87]=Se);let Ce;t[88]!==ye||t[89]!==be||t[90]!==Se?(Ce=(0,q.jsxs)(`table`,{className:`font-mono text-sm tabular-nums select-none border-separate border-spacing-0`,role:`group`,"aria-label":ye,children:[be,Se]}),t[88]=ye,t[89]=be,t[90]=Se,t[91]=Ce):Ce=t[91];let we;t[92]!==ue||t[93]!==fe||t[94]!==Ce?(we=(0,q.jsx)(`div`,{className:`relative inline-block`,"data-testid":`marimo-plugin-matrix`,onPointerMove:ue,onPointerUp:fe,onPointerCancel:fe,children:Ce}),t[92]=ue,t[93]=fe,t[94]=Ce,t[95]=we):we=t[95];let Te;return t[96]!==i||t[97]!==we?(Te=(0,q.jsx)(kv,{label:i,align:`top`,className:`items-center`,children:we}),t[96]=i,t[97]=we,t[98]=Te):Te=t[98],Te};function MC(e){return[...e]}function NC(e,t){return(0,q.jsx)(`th`,{className:`text-center text-sm font-medium text-foreground px-2 pb-1`,children:e},t)}function PC(e){return e.stopPropagation()}var FC=e=>{let t=(0,J.c)(12),{onStart:n,onStop:r,status:i,time:a}=e,o;t[0]!==n||t[1]!==i?(o=i===`stopped`&&(0,q.jsx)(Ui,{"data-testid":`audio-recorder-start`,variant:`secondary`,onClick:n,className:`w-[50px]`,children:(0,q.jsx)(Qn,{className:G(`w-6 h-6 border border-input rounded-full`),strokeWidth:1.5,fill:`var(--red-9)`})}),t[0]=n,t[1]=i,t[2]=o):o=t[2];let s;t[3]!==r||t[4]!==i?(s=i===`recording`&&(0,q.jsxs)(Ui,{"data-testid":`audio-recorder-pause`,variant:`secondary`,onClick:r,className:`w-[50px]`,children:[(0,q.jsx)(_o,{className:`w-5 h-5 rounded-sm`,fill:`var(--red-9)`,strokeWidth:1.5}),(0,q.jsx)(Qn,{className:G(`w-6 h-6 absolute opacity-20 animate-ping`),fill:`var(--red-9)`,style:{animationDuration:`1.5s`},strokeWidth:0})]}),t[3]=r,t[4]=i,t[5]=s):s=t[5];let c;t[6]===a?c=t[7]:(c=a&&(0,q.jsxs)(`span`,{className:`text-sm font-bold`,children:[a,`s`]}),t[6]=a,t[7]=c);let l;return t[8]!==o||t[9]!==s||t[10]!==c?(l=(0,q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[o,s,c]}),t[8]=o,t[9]=s,t[10]=c,t[11]=l):l=t[11],l};function IC(){let e=(0,J.c)(14),[t,n]=(0,K.useState)(0),r=(0,K.useRef)(void 0),i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i={minimumFractionDigits:1,maximumFractionDigits:1},e[0]=i):i=e[0];let a=Na(i),o;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>{r.current=window.setInterval(()=>{n(LC)},100)},e[1]=o):o=e[1];let c=s(o),l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=()=>{r.current!=null&&(window.clearInterval(r.current),r.current=void 0)},e[2]=l):l=e[2];let u=s(l),d;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=()=>{n(0)},e[3]=d):d=e[3];let f=s(d),p,m;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(p=()=>()=>{window.clearInterval(r.current)},m=[],e[4]=p,e[5]=m):(p=e[4],m=e[5]),(0,K.useEffect)(p,m);let h;e[6]!==a||e[7]!==t?(h=a.format(t),e[6]=a,e[7]=t,e[8]=h):h=e[8];let g;return e[9]!==f||e[10]!==c||e[11]!==u||e[12]!==h?(g={time:h,start:c,stop:u,clear:f},e[9]=f,e[10]=c,e[11]=u,e[12]=h,e[13]=g):g=e[13],g}function LC(e){return e+.1}function RC(e){let t=(0,J.c)(18),{onDone:n,options:r}=e,[i,a]=(0,K.useState)(`stopped`),o=(0,K.useRef)(void 0),[c,l]=(0,K.useState)(!0),[u,d]=(0,K.useState)(),f=IC(),p;t[0]!==n||t[1]!==r||t[2]!==f?(p=()=>{f.clear(),navigator.mediaDevices.getUserMedia({audio:!0}).then(e=>{let t=new MediaRecorder(e,r);a(`recording`),o.current=t,t.start(),f.start(),t.addEventListener(`dataavailable`,e=>{d(e.data),n?.(e.data),t.stream.getTracks().forEach(BC),o.current=void 0})}).catch(e=>{W.log(e),l(!1)})},t[0]=n,t[1]=r,t[2]=f,t[3]=p):p=t[3];let m=s(p),h;t[4]===f?h=t[5]:(h=()=>{o.current?.stop(),f.stop(),a(`stopped`)},t[4]=f,t[5]=h);let g=s(h),_;t[6]===f?_=t[7]:(_=()=>{a(e=>e===`recording`?(o.current?.pause(),f.stop(),`paused`):e===`paused`?(o.current?.resume(),f.start(),`recording`):e)},t[6]=f,t[7]=_);let v=s(_),y;t[8]===f?y=t[9]:(y=()=>{o.current?.stream.getTracks().forEach(zC),o.current?.stop(),f.stop()},t[8]=f,t[9]=y),wa(y);let b;return t[10]!==c||t[11]!==v||t[12]!==u||t[13]!==i||t[14]!==m||t[15]!==g||t[16]!==f.time?(b={start:m,stop:g,pauseResume:v,allowed:c,recordingBlob:u,recordingStatus:i,recordingTime:f.time,mediaRecorder:o},t[10]=c,t[11]=v,t[12]=u,t[13]=i,t[14]=m,t[15]=g,t[16]=f.time,t[17]=b):b=t[17],b}function zC(e){return e.stop()}function BC(e){return e.stop()}var VC=class{tagName=`marimo-microphone`;validator=H({label:B().nullish()});render(e){return(0,q.jsx)(HC,{...e})}},HC=e=>{let t=(0,J.c)(14),{setValue:n,data:r}=e,i;t[0]===n?i=t[1]:(i={onDone:async e=>{let t=await xa(e,`base64`);n(t)}},t[0]=n,t[1]=i);let{start:a,stop:o,pauseResume:s,recordingStatus:c,recordingTime:l,allowed:u}=RC(i),d;t[2]===u?d=t[3]:(d=!u&&(0,q.jsx)(`div`,{className:`text-destructive text-sm`,children:`Microphone access is disabled. Please allow microphone access in your browser.`}),t[2]=u,t[3]=d);let f;t[4]!==s||t[5]!==c||t[6]!==l||t[7]!==a||t[8]!==o?(f=(0,q.jsx)(FC,{onStart:a,onStop:o,onPause:s,status:c,time:l}),t[4]=s,t[5]=c,t[6]=l,t[7]=a,t[8]=o,t[9]=f):f=t[9];let p;return t[10]!==r.label||t[11]!==d||t[12]!==f?(p=(0,q.jsxs)(kv,{label:r.label,align:`top`,children:[d,f]}),t[10]=r.label,t[11]=d,t[12]=f,t[13]=p):p=t[13],p},UC=7,WC={n:`ns-resize`,s:`ns-resize`,e:`ew-resize`,w:`ew-resize`,nw:`nwse-resize`,se:`nwse-resize`,ne:`nesw-resize`,sw:`nesw-resize`};function GC(e,t,n){let r=Math.min(t.x,n.x),i=Math.max(t.x,n.x),a=Math.min(t.y,n.y),o=Math.max(t.y,n.y),s=Math.abs(e.x-r)<=UC,c=Math.abs(e.x-i)<=UC,l=Math.abs(e.y-a)<=UC,u=Math.abs(e.y-o)<=UC,d=e.x>=r-UC&&e.x<=i+UC,f=e.y>=a-UC&&e.y<=o+UC;return s&&l?`nw`:c&&l?`ne`:s&&u?`sw`:c&&u?`se`:l&&d?`n`:u&&d?`s`:s&&f?`w`:c&&f?`e`:null}function KC(e,t,n){let r=Math.min(t.x,n.x),i=Math.max(t.x,n.x),a=Math.min(t.y,n.y),o=Math.max(t.y,n.y);switch(e){case`nw`:return{anchor:{x:i,y:o},lockX:null,lockY:null};case`ne`:return{anchor:{x:r,y:o},lockX:null,lockY:null};case`sw`:return{anchor:{x:i,y:a},lockX:null,lockY:null};case`se`:return{anchor:{x:r,y:a},lockX:null,lockY:null};case`n`:return{anchor:{x:r,y:o},lockX:i,lockY:null};case`s`:return{anchor:{x:r,y:a},lockX:i,lockY:null};case`w`:return{anchor:{x:i,y:a},lockX:null,lockY:o};case`e`:return{anchor:{x:r,y:a},lockX:null,lockY:o}}}function qC(e,t){let[n,r]=t;if(e===`log`){let e=Math.log10(n),t=Math.log10(r)-e;return{normalize:n=>(Math.log10(n)-e)/t,invert:n=>10**(e+n*t)}}let i=r-n;return{normalize:e=>(e-n)/i,invert:e=>n+e*i}}function JC(e,t){let n=!1;for(let r=0,i=t.length-1;r<t.length;i=r++){let a=t[r].x,o=t[r].y,s=t[i].x,c=t[i].y;o>e.y!=c>e.y&&e.x<(s-a)*(e.y-o)/(c-o)+a&&(n=!n)}return n}function YC(e,t){let[n,r,i,a]=t.axesPixelBounds,o=(e.x-n)/(i-n),s=(e.y-r)/(a-r),c=qC(t.xScale,t.xBounds),l=qC(t.yScale,t.yBounds);return{x:c.invert(o),y:l.invert(1-s)}}function XC(e,t){let[n,r,i,a]=t.axesPixelBounds,o=qC(t.xScale,t.xBounds),s=qC(t.yScale,t.yBounds);return{x:n+o.normalize(e.x)*(i-n),y:r+(1-s.normalize(e.y))*(a-r)}}function ZC(e,t){let[n,r,i,a]=t.axesPixelBounds;return{x:Math.max(n,Math.min(i,e.x)),y:Math.max(r,Math.min(a,e.y))}}function QC(e,t,n){let r=Math.min(t.x,n.x),i=Math.max(t.x,n.x),a=Math.min(t.y,n.y),o=Math.max(t.y,n.y);return e.x>=r&&e.x<=i&&e.y>=a&&e.y<=o}function $C(e,t){let[n,r,i,a]=t.axesPixelBounds;return e.x>=n&&e.x<=i&&e.y>=r&&e.y<=a}var ew=class{#e;#t;#n;#r={type:`idle`};#i=0;#a=null;#o=0;#s=``;#c=1;constructor(e,t){this.#t=e,this.#n=t.state,e.tabIndex=-1,e.role=`application`,e.className=`relative inline-block select-none outline-hidden`;let n=document.createElement(`canvas`);n.className=`block cursor-crosshair`,this.#l(n),n.style.touchAction=`none`,e.append(n),this.#e=n,n.addEventListener(`pointerdown`,this.#w,{signal:t.signal}),n.addEventListener(`pointermove`,this.#T,{signal:t.signal}),n.addEventListener(`pointerup`,this.#E,{signal:t.signal}),e.addEventListener(`keydown`,this.#D,{signal:t.signal}),this.#f(t.signal),window.addEventListener(`resize`,this.#d,{signal:t.signal}),t.signal.addEventListener(`abort`,()=>{cancelAnimationFrame(this.#i),this.#e.remove()}),this.#p(this.#n.chartBase64),this.#C(this.#n.value)}#l(e=this.#e){let t=globalThis.devicePixelRatio??1;this.#c=t;let{width:n,height:r}=this.#n;e.width=n*t,e.height=r*t,e.style.width=`${n}px`,e.style.maxWidth=`100%`,e.style.height=`auto`,e.style.aspectRatio=`${n} / ${r}`}get#u(){let{width:e,height:t}=this.#n,n=globalThis.devicePixelRatio??1;return{x:e>0?this.#e.width/e:n,y:t>0?this.#e.height/t:n}}#d=()=>{(globalThis.devicePixelRatio??1)!==this.#c&&(this.#l(),this.#h())};#f(e){e.aborted||matchMedia(`(resolution: ${globalThis.devicePixelRatio??1}dppx)`).addEventListener(`change`,()=>{this.#d(),this.#f(e)},{once:!0,signal:e})}update(e){let t=this.#n;this.#n=e;let n=!1;if((e.width!==t.width||e.height!==t.height)&&(this.#l(),n=!0),e.chartBase64!==this.#s){this.#p(e.chartBase64),this.#C(e.value);return}let r=this.#r.type!==`idle`&&this.#r.action!==null;if(e.value!==t.value&&!r){this.#C(e.value);return}(n||e.selectionColor!==t.selectionColor||e.selectionOpacity!==t.selectionOpacity||e.strokeWidth!==t.strokeWidth)&&this.#m()}#p(e){this.#s=e,this.#o++;let t=this.#o;this.#r={type:`idle`},this.#a=null;let n=this.#e.getContext(`2d`);if(n){let e=this.#u;n.setTransform(e.x,0,0,e.y,0,0),n.clearRect(0,0,this.#n.width,this.#n.height)}let r=new Image;r.onload=()=>{t===this.#o&&(this.#a=r,this.#m())},r.src=e}#m=()=>{let e=this.#a;if(!e)return;let t=this.#e.getContext(`2d`);if(!t)return;let n=this.#n,r=this.#r,i=this.#u;if(t.setTransform(i.x,0,0,i.y,0,0),t.clearRect(0,0,n.width,n.height),t.drawImage(e,0,0,n.width,n.height),r.type===`box`){let e=Math.min(r.start.x,r.end.x),i=Math.min(r.start.y,r.end.y),a=Math.abs(r.end.x-r.start.x),o=Math.abs(r.end.y-r.start.y);t.save(),t.fillStyle=n.selectionColor,t.globalAlpha=n.selectionOpacity,t.fillRect(e,i,a,o),t.restore(),t.strokeStyle=n.selectionColor,t.lineWidth=n.strokeWidth,t.strokeRect(e,i,a,o)}if(r.type===`lasso`&&r.points.length>=2){t.beginPath(),t.moveTo(r.points[0].x,r.points[0].y);for(let e=1;e<r.points.length;e++)t.lineTo(r.points[e].x,r.points[e].y);t.closePath(),t.save(),t.fillStyle=n.selectionColor,t.globalAlpha=n.selectionOpacity,t.fill(`evenodd`),t.restore(),t.strokeStyle=n.selectionColor,t.lineWidth=n.strokeWidth,t.stroke()}};#h=()=>{cancelAnimationFrame(this.#i),this.#i=requestAnimationFrame(this.#m)};#g=e=>{let t=this.#e.getBoundingClientRect(),n=this.#n.width/t.width,r=this.#n.height/t.height;return{x:(e.clientX-t.left)*n,y:(e.clientY-t.top)*r}};#_=(e,t)=>{let n=YC(e,this.#n),r=YC(t,this.#n);this.#n.setValue({type:`box`,has_selection:!0,data:{x_min:Math.min(n.x,r.x),x_max:Math.max(n.x,r.x),y_min:Math.min(n.y,r.y),y_max:Math.max(n.y,r.y)}})};#v=e=>{if(e.length>=3){let t=e.map(e=>{let t=YC(e,this.#n);return[t.x,t.y]});this.#n.setValue({type:`lasso`,has_selection:!0,data:t})}};#y=()=>{this.#r={type:`idle`},this.#n.setValue({has_selection:!1}),this.#h()};#b=()=>this.#r.type!==`idle`;#x=e=>{let t=this.#r;return t.type===`box`?QC(e,t.start,t.end):t.type===`lasso`&&JC(e,t.points)};#S=e=>{let[t,n,r,i]=this.#n.axesPixelBounds;if(!(e.x>=t&&e.x<=r&&e.y>=n&&e.y<=i)){this.#e.style.cursor=`default`;return}let a=this.#r;if(a.type===`box`&&a.action===null){let t=GC(e,a.start,a.end);if(t){this.#e.style.cursor=WC[t];return}}if(this.#b()&&this.#x(e)){this.#e.style.cursor=`move`;return}this.#e.style.cursor=`crosshair`};#C=e=>{if(!e||!(`has_selection`in e)||!e.has_selection){this.#r.type!==`idle`&&(this.#r={type:`idle`},this.#h());return}if(e.type===`box`){let t=e.data,n=XC({x:t.x_min,y:t.y_min},this.#n),r=XC({x:t.x_max,y:t.y_max},this.#n);this.#r={type:`box`,start:n,end:r,action:null}}else if(e.type===`lasso`){let t=e.data.map(([e,t])=>XC({x:e,y:t},this.#n));this.#r={type:`lasso`,points:t,action:null}}this.#h()};#w=e=>{this.#e.setPointerCapture(e.pointerId),this.#t.focus();let t=this.#g(e),n=this.#r;if(e.shiftKey){if(!$C(t,this.#n))return;this.#r={type:`lasso`,points:[ZC(t,this.#n)],action:{type:`drawing`}},this.#h();return}if(n.type===`box`&&n.action===null){let e=GC(t,n.start,n.end);if(e){let{anchor:t,lockX:r,lockY:i}=KC(e,n.start,n.end);this.#r={type:`box`,start:n.start,end:n.end,action:{type:`resizing`,anchor:t,lockX:r,lockY:i}};return}}if(this.#b()&&this.#x(t)){n.type===`box`?this.#r={type:`box`,start:n.start,end:n.end,action:{type:`dragging`,origin:t}}:n.type===`lasso`&&(this.#r={type:`lasso`,points:n.points,action:{type:`dragging`,origin:t}});return}if(this.#b()&&this.#y(),!$C(t,this.#n))return;let r=ZC(t,this.#n);this.#r={type:`box`,start:r,end:r,action:{type:`drawing`}},this.#h()};#T=e=>{let t=this.#g(e),n=this.#r,r=this.#n;if(n.type===`idle`||n.action===null){this.#S(t);return}if(n.type===`lasso`&&n.action.type===`drawing`){n.points.push(ZC(t,r)),this.#h();return}if(n.type===`box`&&n.action.type===`drawing`){let e=ZC(t,r);n.end=e,this.#h(),r.debounce||this.#_(n.start,e);return}if(n.type===`box`&&n.action.type===`resizing`){let e=ZC(t,r),{anchor:i,lockX:a,lockY:o}=n.action;n.start=i,n.end={x:a??e.x,y:o??e.y},this.#h(),r.debounce||this.#_(n.start,n.end);return}if(n.type===`box`&&n.action.type===`dragging`){let[e,i,a,o]=r.axesPixelBounds,s=t.x-n.action.origin.x,c=t.y-n.action.origin.y;n.action.origin=t;let l=Math.min(n.start.x,n.end.x),u=Math.max(n.start.x,n.end.x),d=Math.min(n.start.y,n.end.y),f=Math.max(n.start.y,n.end.y);s=Math.max(e-l,Math.min(a-u,s)),c=Math.max(i-d,Math.min(o-f,c)),n.start={x:n.start.x+s,y:n.start.y+c},n.end={x:n.end.x+s,y:n.end.y+c},this.#h(),r.debounce||this.#_(n.start,n.end);return}if(n.type===`lasso`&&n.action.type===`dragging`){let[e,i,a,o]=r.axesPixelBounds,s=t.x-n.action.origin.x,c=t.y-n.action.origin.y;n.action.origin=t;let l=1/0,u=-1/0,d=1/0,f=-1/0;for(let e of n.points)e.x<l&&(l=e.x),e.x>u&&(u=e.x),e.y<d&&(d=e.y),e.y>f&&(f=e.y);s=Math.max(e-l,Math.min(a-u,s)),c=Math.max(i-d,Math.min(o-f,c));for(let e=0;e<n.points.length;e++)n.points[e]={x:n.points[e].x+s,y:n.points[e].y+c};this.#h(),r.debounce||this.#v(n.points)}};#E=e=>{this.#e.releasePointerCapture(e.pointerId);let t=this.#r,n=this.#n;if(t.type===`lasso`&&t.action?.type===`drawing`){t.points.length>=3?(t.action=null,this.#v(t.points)):(this.#r={type:`idle`},this.#n.setValue({has_selection:!1})),this.#h();return}if(t.type===`lasso`&&t.action?.type===`dragging`){t.action=null,n.debounce&&this.#v(t.points);return}t.type===`box`&&t.action!==null&&(t.action=null,n.debounce&&this.#_(t.start,t.end))};#D=e=>{if(e.key===`Escape`){let e=this.#r;if(e.type===`idle`)return;e.action?.type===`drawing`?(this.#r={type:`idle`},this.#h()):this.#y()}}},tw=class{tagName=`marimo-matplotlib`;validator=H({chartBase64:B(),xBounds:Ue([z(),z()]),yBounds:Ue([z(),z()]),axesPixelBounds:Ue([z(),z(),z(),z()]),width:z(),height:z(),selectionColor:B().default(`#3b82f6`),selectionOpacity:z().default(.15),strokeWidth:z().default(2),debounce:V(),xScale:Ze([`linear`,`log`]).default(`linear`),yScale:Ze([`linear`,`log`]).default(`linear`)});render(e){return(0,q.jsx)(nw,{...e.data,value:e.value,setValue:e.setValue})}},nw=e=>{let t=(0,K.useRef)(null),n=(0,K.useRef)(null);return(0,K.useEffect)(()=>{let r=t.current;if(!r)return;let i=new AbortController;return n.current=new ew(r,{state:e,signal:i.signal}),()=>{i.abort(),n.current=null}},[]),(0,K.useEffect)(()=>{n.current?.update(e)}),(0,q.jsx)(`div`,{ref:t})},rw=class{readyState=WebSocket.OPEN;sendFn;onopen=null;onmessage=null;onclose=null;constructor(e){this.sendFn=e}setSendHandler(e){this.sendFn=e}send(e){this.sendFn(JSON.parse(e))}receiveJson(e){this.onmessage?.(new MessageEvent(`message`,{data:JSON.stringify(e)}))}receiveBinary(e){let t=e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength),n=new Blob([t]);this.onmessage?.(new MessageEvent(`message`,{data:n}))}close(){this.readyState=WebSocket.CLOSED,this.onclose?.()}},iw=`mpl-interactive-figure`,aw=Cv(`marimo-mpl-interactive`).withData(H({mplJsUrl:B(),cssUrl:B(),toolbarImages:qe(B(),B()),width:z(),height:z()})).withFunctions({}).renderer(e=>(0,q.jsx)(uw,{...e})),ow=null;async function sw(e){if(!window.mpl){if(!Et(e))throw Error(`Refusing to load mpl.js from untrusted URL: ${String(e)}`);return ow||(ow=new Promise((t,n)=>{let r=document.createElement(`script`);r.src=e,r.onload=()=>t(),r.onerror=()=>{ow=null,n(Error(`Failed to load mpl.js`))},document.head.append(r)}),ow)}}function cw(e,t){let n=e=>{let n=(e.getAttribute(`src`)||``).match(/_images\/(.+)\.png$/);if(n){let r=t[n[1]];r&&(e.src=r)}let r=(e.getAttribute(`srcset`)||``).match(/_images\/(.+)\.png\s+2x$/);if(r){let n=t[r[1]];n&&(e.srcset=`${n} 2x`)}};for(let t of e.querySelectorAll(`img`))n(t);let r=new MutationObserver(e=>{for(let t of e)for(let e of t.addedNodes)if(e instanceof HTMLImageElement)n(e);else if(e instanceof HTMLElement)for(let t of e.querySelectorAll(`img`))n(t)});return r.observe(e,{childList:!0,subtree:!0}),()=>r.disconnect()}function lw(e,t){if(!Et(t))return W.error(`Refusing to load mpl CSS from untrusted URL: ${String(t)}`),Pt.NOOP;let n=document.createElement(`link`);return n.rel=`stylesheet`,n.href=t,e.append(n),()=>n.remove()}var uw=e=>{let{mplJsUrl:t,cssUrl:n,toolbarImages:r,width:i,height:a}=e.data,{model_id:o}=e.value,s=(0,K.useRef)(null),c=(0,K.useRef)(null),l=(0,K.useRef)(null),u=(0,K.useRef)(Pt.NOOP),d=(0,K.useRef)(void 0),f=(0,K.useRef)(o);f.current=o;let p=(0,K.useRef)(r);p.current=r;let m=(0,K.useCallback)(async e=>{let t=l.current;if(!t)return;let n;try{n=await At.getModel(e)}catch{W.error(`Failed to get model for mpl interactive`,e);return}if(l.current!==t)return;d.current?.();let r=e=>n.send(e);t.setSendHandler(r),u.current=r;let i=(e,n)=>{if(e){if(e.type===`json`)t.receiveJson(e.data);else if(e.type===`binary`&&n&&n.length>0)t.receiveBinary(n[0]);else if(e.type===`download`&&n&&n.length>0){let t=e.format||`png`,r=n[0],i=r.buffer.slice(r.byteOffset,r.byteOffset+r.byteLength);Oi(new Blob([i],{type:`image/${t}`}),`figure.${t}`)}}};n.on(`msg:custom`,i),t.onopen?.(),d.current=()=>{n.off(`msg:custom`,i),u.current===r&&(u.current=Pt.NOOP)}},[]);(0,K.useEffect)(()=>{let e=s.current;if(!e)return;e.innerHTML=``;let r=lw(e,n),o=cw(e,p.current),h=!1;return(async()=>{if(await sw(t),!window.mpl){W.error(`mpl.js failed to load`);return}let n=new rw(e=>{u.current(e)});l.current=n;let r=new window.mpl.figure(f.current,n,(e,t)=>{u.current({type:`download`,format:t})},e);c.current=r;let o=r.root.querySelector(`div[tabindex]`);o&&(o.style.width=`${i}px`,o.style.height=`${a}px`),await m(f.current)})().catch(e=>{h||W.error(`Failed to set up MPL interactive figure`,e)}),()=>{h=!0,d.current?.(),d.current=void 0,r(),o(),l.current?.close(),l.current=null,c.current=null,e.innerHTML=``}},[t,n,i,a,m]);let h=(0,K.useRef)(!0);return(0,K.useEffect)(()=>{if(h.current){h.current=!1;return}m(o).catch(e=>{W.error(`Failed to rebind MPL interactive figure`,e)})},[o,m]),It(document,`visibilitychange`,()=>{let e=c.current;!document.hidden&&e?.ws?.readyState===WebSocket.OPEN&&e.send_message(`refresh`,{})}),(0,q.jsx)(`div`,{ref:s,className:iw})},dw=class{tagName=`marimo-number`;validator=H({initialValue:z().nullish(),label:B().nullable(),start:z().nullish(),stop:z().nullish(),step:z().optional(),debounce:V().default(!1),fullWidth:V().default(!1),disabled:V().optional()});render(e){return(0,q.jsx)(fw,{...e.data,value:e.value,setValue:e.setValue})}},fw=e=>{let t=(0,J.c)(25),n=(0,K.useId)(),r;t[0]===e.value?r=t[1]:(r=pw(e.value),t[0]=e.value,t[1]=r);let i=r,a=!e.debounce,o;t[2]!==i||t[3]!==e.setValue||t[4]!==a?(o={initialValue:i,delay:200,disabled:a,onChange:e.setValue},t[2]=i,t[3]=e.setValue,t[4]=a,t[5]=o):o=t[5];let{value:s,onChange:c}=Wo(o),l;t[6]===c?l=t[7]:(l=e=>{c(pw(e))},t[6]=c,t[7]=l);let u=l,d=e.label,f=n,p=e.fullWidth,m=e.fullWidth&&`w-full`,h;t[8]===m?h=t[9]:(h=G(`min-w-[3em]`,m),t[8]=m,t[9]=h);let g=e.start??void 0,_=e.stop??void 0,v=s??NaN,y=e.label||`Number input`,b;t[10]!==u||t[11]!==n||t[12]!==e.disabled||t[13]!==e.step||t[14]!==_||t[15]!==v||t[16]!==y||t[17]!==h||t[18]!==g?(b=(0,q.jsx)(co,{"data-testid":`marimo-plugin-number-input`,className:h,minValue:g,maxValue:_,value:v,step:e.step,onChange:u,id:n,"aria-label":y,isDisabled:e.disabled}),t[10]=u,t[11]=n,t[12]=e.disabled,t[13]=e.step,t[14]=_,t[15]=v,t[16]=y,t[17]=h,t[18]=g,t[19]=b):b=t[19];let x;return t[20]!==n||t[21]!==e.fullWidth||t[22]!==e.label||t[23]!==b?(x=(0,q.jsx)(kv,{label:d,controlId:f,fullWidth:p,children:b}),t[20]=n,t[21]=e.fullWidth,t[22]=e.label,t[23]=b,t[24]=x):x=t[24],x};function pw(e){return e==null||Number.isNaN(e)?null:e}var mw=H({content:We([H({type:He(`ACK`)}),B()]).nullable()});function hw(e,t){if(Array.isArray(e))return e.map(e=>hw(e,t));if(e instanceof Map){let n={};for(let[r,i]of e.entries())n[String(r)]=hw(i,t);return n}if(typeof e==`object`&&e&&`to_base64`in e&&typeof e.to_base64==`function`){let n=t.length;return t.push(e.to_base64()),{id:n}}if(typeof e==`object`&&e){let n={};for(let r of Object.keys(e))n[r]=hw(e[r],t);return n}return e}var gw=class{buffer=[];isBlocked=!1;timeout=null;processEvents;blockDuration;constructor(e,t=200){this.processEvents=e,this.blockDuration=t}add(e){this.buffer.push(e),this.flush()}flush(){this.isBlocked||(this.processEvents(),this.block())}block(){this.isBlocked=!0,this.timeout!==null&&clearTimeout(this.timeout),this.timeout=window.setTimeout(()=>{this.isBlocked=!1,this.buffer.length>0&&this.flush()},this.blockDuration)}size(){return this.buffer.length}clear(){this.buffer=[]}getAndClear(){let e=this.buffer;return this.buffer=[],e}},_w=Cv(`marimo-panel`).withData(H({extensionUrl:B().nullable(),docs_json:qe(B(),Ge()),render_json:H({roots:qe(B(),B())}).catchall(Ge())})).withFunctions({send_to_widget:Pv.input(H({message:Ge(),buffers:U(B())})).output(rt().optional())}).renderer(e=>(0,q.jsx)(bw,{...e}));function vw(){return window.Bokeh!=null}function yw(e){if(!e)return!1;if(!Et(e))return W.error(`Refusing to load Panel extension from untrusted URL: ${String(e)}`),!1;let t=document.createElement(`script`);return t.src=e,document.head.append(t),!0}var bw=e=>{let{data:t,functions:n,host:r}=e,{extensionUrl:i,docs_json:a,render_json:o}=t,s=(0,K.useRef)(null),c=(0,K.useRef)(null),l=(0,K.useRef)(null),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)(null),m=(0,K.useRef)(n);m.current=n;let h=(0,K.useCallback)(()=>{if(!g.current)return;let e=g.current.getAndClear();if(e.length===0)return;let t=e.at(0);if(!Cw(t))return;let n=t.document,r=e.filter(e=>Cw(e)&&e.document===n),i=n.create_json_patch(r),a=window.Bokeh.protocol.Message.create(`PATCH-DOC`,{},i),o=[];a.content=hw(a.content,o),m.current.send_to_widget({message:a,buffers:o}).catch(e=>{W.warn(`Failed to send Panel event to backend`,e)})},[]),g=(0,K.useRef)(new gw(h));return(0,K.useEffect)(()=>{if(vw()){d(!0);return}yw(i);let e=setInterval(()=>{vw()&&(d(!0),clearInterval(e))},10);return()=>clearInterval(e)},[i,d]),It(r,ps.TYPE,e=>{if(e.detail.message==null)return;let t=mw.parse(e.detail.message),n=e.detail.buffers,r=l.current;if(!r)return;let i=t.content;if(i!==null&&typeof t.content!=`string`){g.current&&g.current.size()>0&&h();return}let a=xw(c.current);if(!a)return;if(n&&n.length>0){let e=n[0];e instanceof ArrayBuffer?r.consume(e):e.buffer instanceof ArrayBuffer&&r.consume(e.buffer)}else if(i&&typeof i==`string`)r.consume(i);else return;let o=r.message;o!=null&&Object.keys(o.content).length>0&&(o.content.events!==void 0&&(o.content.events=o.content.events.filter(e=>e?.model?.id&&a._all_models.has(e.model.id))),a.apply_json_patch(o.content,o.buffers))}),(0,K.useEffect)(()=>{let e=Object.keys(a)[0];!u||f===e||(async()=>{let t={...o,roots:{}};for(let e of Object.keys(o.roots)){let n=o.roots[e];if(s.current){let r=s.current.querySelector(`#${n}`);t.roots[e]=r}}let n=Object.keys(t.roots)[0];await window.Bokeh.embed.embed_items_notebook(a,[t]),c.current=n;let r=window.Bokeh.index.get_by_id(n).model.document;l.current=new window.Bokeh.protocol.Receiver,r.on_change(e=>{Sw(e)&&e.sync&&g.current?.add(e)}),p(e)})()},[a,u,o,f]),(0,q.jsx)(`div`,{ref:s,children:Object.values(o.roots).map(e=>(0,q.jsx)(`div`,{id:e,children:(0,q.jsx)(`div`,{"data-root-id":e,style:{display:`contents`}})},e))})};function xw(e){if(!e)return null;try{return window.Bokeh.index.get_by_id(e).model.document}catch(e){return W.warn(`Failed to get Bokeh document`,e),null}}function Sw(e){return!!e&&typeof e==`object`&&`sync`in e}function Cw(e){return!!e&&typeof e==`object`&&`document`in e}var ww={removeOnUnmount:!1};function Tw(e,t){let n=(0,J.c)(6),r=t===void 0?ww:t,i;n[0]===e?i=n[1]:(i=()=>document.querySelector(`script[src="${e}"]`)?.dataset.status||`unknown`,n[0]=e,n[1]=i);let[a,o]=K.useState(i),s,c;return n[2]!==r.removeOnUnmount||n[3]!==e?(s=()=>{let t=document.querySelector(`script[src="${e}"]`),n=e=>{t&&(t.dataset.status=e,o(e))},i=()=>n(`ready`),a=()=>n(`error`),s=e=>{let t=new MutationObserver(()=>{let t=e.dataset.status;t&&o(t)});return t.observe(e,{attributes:!0,attributeFilter:[`data-status`]}),t};if(!t){t=document.createElement(`script`),t.src=e,t.async=!0,n(`loading`),document.body.append(t),t.addEventListener(`load`,i),t.addEventListener(`error`,a);let o=s(t);return()=>{o.disconnect(),t&&(t.removeEventListener(`load`,i),t.removeEventListener(`error`,a),r.removeOnUnmount&&t.remove())}}let c=t.dataset.status;if(c){if(c===`ready`||c===`error`)return;let e=s(t);return()=>e.disconnect()}o(`unknown`)},c=[e,r.removeOnUnmount],n[2]=r.removeOnUnmount,n[3]=e,n[4]=s,n[5]=c):(s=n[4],c=n[5]),K.useEffect(s,c),a}function Ew(e){let t=/([^<=>]+)=%{([^}]+)}/g,n={},r;for(;(r=t.exec(e))!==null;)n[r[1]]=r[2];return{update(t){return t===e?this:Ew(t)},parse(e){return Object.entries(n).reduce((t,[n,r])=>(t[n]=lt(e,r),t),{})}}}var Dw=[`color`,`curveNumber`,`entry`,`hovertext`,`id`,`label`,`parent`,`percentEntry`,`percentParent`,`percentRoot`,`pointNumber`,`root`,`value`],Ow=[`curveNumber`,`pointIndex`,`pointNumber`,`x`,`y`,`label`,`value`,`percentInitial`,`percentPrevious`,`percentTotal`],kw=[`curveNumber`,`pointNumber`,`label`,`value`,`percentInitial`,`percentPrevious`,`percentTotal`],Aw=new Set([`scatter`,`scattergl`]),jw=[`x`,`y`,`z`,`lat`,`lon`,`curveNumber`,`pointNumber`,`pointNumbers`,`pointIndex`];function Mw(e,t){return e??t}function Nw(e){let t=e,n=e.data??{},r=t.fullData??{};return{type:Mw(n.type,r.type),mode:Mw(n.mode,r.mode),x:Mw(n.x,r.x),y:Mw(n.y,r.y),hovertemplate:Mw(n.hovertemplate,r.hovertemplate)}}function Pw(e){return typeof e==`number`&&Number.isFinite(e)?e:void 0}function Fw(e){let t=Pw(e.pointIndex);if(t!==void 0)return t;let n=Pw(e.pointNumber);if(n!==void 0)return n;let r=e.pointNumbers;if(Array.isArray(r))return r.map(Pw).find(e=>e!==void 0)}function Iw(e){let t=Nw(e);if(!Aw.has(String(t.type)))return!1;let n=t.mode;return typeof n!=`string`||n.split(`+`).includes(`lines`)}function Lw(e){if(typeof e!=`string`)return!1;let t=e.split(`+`);return t.includes(`lines`)&&!t.includes(`markers`)}function Rw(e){return e?e.some(e=>{let t=e;return t.type===void 0||Aw.has(String(t.type))?Lw(t.mode):!1}):!1}function zw(e){return e?e.some(e=>{let t=e;return t.type!==void 0&&!Aw.has(String(t.type))?!1:typeof t.fill==`string`&&t.fill!==``&&t.fill!==`none`||t.stackgroup!=null}):!1}function Bw(e,t,n,r,i){return{name:e,title:t,icon:{svg:n},click:()=>i(r)}}function Vw(e){return[Bw(`line-box-select`,`Box select`,`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor"
17
+ `)||``,className:`h-3 w-3`}),(0,q.jsxs)(`div`,{className:`ml-auto flex items-center gap-1`,children:[(0,q.jsx)(Vi,{content:`Show all columns`,delayDuration:400,children:(0,q.jsxs)(Ui,{type:`button`,variant:`ghost`,size:`xs`,className:`gap-1`,disabled:f===0,onClick:()=>a.toggleAllColumnsVisible(!0),children:[(0,q.jsx)(De,{className:`w-3 h-3`}),`Show all`]})}),(0,q.jsx)(Vi,{content:`Hide all columns`,delayDuration:400,children:(0,q.jsxs)(Ui,{type:`button`,variant:`ghost`,size:`xs`,className:`gap-1`,disabled:p===0,onClick:()=>a.toggleAllColumnsVisible(!1),children:[(0,q.jsx)(La,{className:`w-3 h-3`}),`Hide all`]})})]})]}),(0,q.jsxs)(le,{className:`h-5/6 bg-background`,shouldFilter:!1,children:[(0,q.jsx)(ue,{placeholder:`Search columns...`,value:o,onValueChange:e=>s(e)}),(0,q.jsxs)(je,{className:`max-h-full`,children:[(0,q.jsx)(ye,{children:`No results.`}),u?.map(([t,[n,r]],o)=>{let s=a.getColumn(t);return(0,q.jsx)(Ux,{columnName:t,column:s,dataType:n,externalType:r,previewColumn:e,table:a,showOnlyColumnState:m,defaultExpanded:o===0},`${i}-${t}`)})]})]})]})}function Ux({columnName:e,column:t,dataType:n,externalType:r,previewColumn:i,table:a,showOnlyColumnState:o,defaultExpanded:s=!1}){let[c,l]=(0,K.useState)(s);return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(ie,{onSelect:()=>l(!c),className:`flex flex-row items-center gap-1.5 group w-full cursor-pointer`,children:[c?(0,q.jsx)(ja,{className:`w-3 h-3 shrink-0 text-muted-foreground`}):(0,q.jsx)(Pa,{className:`w-3 h-3 shrink-0 text-muted-foreground`}),(0,q.jsx)(Br,{columnName:(0,q.jsx)(`span`,{className:c?`font-semibold`:``,children:e}),dataType:n}),(0,q.jsxs)(`div`,{className:`ml-auto flex items-center gap-0.5`,children:[(0,q.jsx)(Co,{tooltip:`Copy column name`,value:e,className:`h-3 w-3`,buttonClassName:G(`inline-flex items-center justify-center rounded-md h-6 w-6`,`group-hover:opacity-100 opacity-0 hover:bg-muted text-muted-foreground hover:text-primary`)}),t?.getCanHide()&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Rr,{table:a,columnIds:[e],disabled:ii(o,[e]),className:G(t.getIsVisible()?`group-hover:opacity-100 opacity-0`:`opacity-100`)}),(0,q.jsx)(Vi,{content:t.getIsVisible()?`Hide column`:`Show column`,delayDuration:400,children:(0,q.jsx)(Ui,{type:`button`,variant:`text`,size:`icon`,"aria-label":t.getIsVisible()?`Hide column`:`Show column`,className:G(`hover:bg-muted text-muted-foreground hover:text-primary`,t.getIsVisible()?`group-hover:opacity-100 opacity-0`:`opacity-100`),onClick:e=>{e.preventDefault(),e.stopPropagation(),t.toggleVisibility(!t.getIsVisible())},children:t.getIsVisible()?(0,q.jsx)(De,{className:`h-3 w-3`,strokeWidth:2.5}):(0,q.jsx)(La,{className:`h-3 w-3`,strokeWidth:2.5})})})]}),(0,q.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:r})]})]},e),c&&(0,q.jsx)(_n,{children:(0,q.jsx)(Wx,{previewColumn:i,columnName:e,dataType:n})})]})}var Wx=({previewColumn:e,columnName:t,dataType:n})=>{let{theme:r}=Lo(),{locale:i}=zo(),{data:a,error:o,isPending:s,refetch:c}=Ko(async()=>await e({column:t}),[]);if(o)return(0,q.jsx)(Hr,{error:o});if(s)return(0,q.jsx)(Nr,{message:`Loading...`});if(!a)return(0,q.jsx)(Wr,{content:`No data`,className:`pl-4`});let{chart_spec:l,chart_code:u,error:d,missing_packages:f,stats:p}=a,m=d&&mo({error:d,missingPackages:f,refetchPreview:c}),h=p&&po({stats:p,dataType:n,locale:i}),g=l&&ho(l,r);return(0,q.jsxs)(Xr,{className:`px-2 py-1`,children:[m,u&&(0,q.jsx)(go,{chartCode:u}),g,h]})},Gx=({rowIdx:e,setRowIdx:t,totalRows:n,fieldTypes:r,getRow:i,isSelectable:a,isRowSelected:o,handleRowSelectionChange:s})=>{let[c,l]=(0,K.useState)(``),u=(0,K.useRef)(null),d=(0,K.useId)(),{locale:f}=zo(),m=n===Vr,{data:h,error:g}=Ko(async()=>(await i(e)).rows,[i,e,n]),_=e=>{e<0||typeof n==`number`&&e>=n||t(e)},v=()=>{s?.(t=>{if(o){let{[e]:n,...r}=t;return r}return{...t,[e]:!0}})};!m&&e>n&&_(n-1);let y=t=>{if(!(t.target instanceof HTMLInputElement))switch(t.key){case`ArrowLeft`:_(e-1);break;case`ArrowRight`:_(e+1);break;case` `:t.preventDefault(),v()}},b=`h-6 w-6 p-0.5`;return(0,q.jsxs)(`div`,{className:`flex flex-col gap-3 focus:outline-hidden`,ref:u,tabIndex:-1,onKeyDown:y,children:[(0,q.jsxs)(`div`,{className:`flex flex-row gap-2 items-center mr-2 px-2`,children:[a&&(0,q.jsxs)(`div`,{className:`flex items-center`,title:`Select/unselect the current row`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,q.jsx)(p,{id:d,checked:o,onCheckedChange:v,className:`h-3.5 w-3.5`}),(0,q.jsx)(`label`,{htmlFor:d,className:`text-xs text-muted-foreground cursor-pointer`,children:`Select`})]}),(0,q.jsx)(Ds,{shortcut:`Space`,className:`scale-75`})]}),(0,q.jsx)(Ui,{variant:`outline`,size:`xs`,className:`${b} ml-auto`,onClick:()=>_(0),disabled:e===0,"aria-label":`Go to first row`,children:(0,q.jsx)(di,{})}),(0,q.jsx)(Ui,{variant:`outline`,size:`xs`,className:b,onClick:()=>_(e-1),disabled:e===0,"aria-label":`Previous row`,children:(0,q.jsx)(ki,{})}),(0,q.jsx)(`span`,{className:`text-xs`,children:m?`Row ${e+1}`:`Row ${e+1} of ${Fr(n,f)}`}),(0,q.jsx)(Ui,{variant:`outline`,size:`xs`,className:b,onClick:()=>_(e+1),disabled:!m&&e===n-1,"aria-label":`Next row`,children:(0,q.jsx)(Pa,{})}),(0,q.jsx)(Ui,{variant:`outline`,size:`xs`,className:b,onClick:()=>{m||_(n-1)},disabled:m||e===n-1,"aria-label":`Go to last row`,children:(0,q.jsx)(Tr,{})})]}),(0,q.jsx)(le,{className:`bg-background`,shouldFilter:!1,children:(0,q.jsx)(ue,{placeholder:`Search`,value:c,onValueChange:l,"data-testid":`selection-panel-search-input`})}),(()=>{if(g)return(0,q.jsx)(_s,{error:g,className:`p-4 mx-3 mt-5`});if(n===0)return(0,q.jsx)(qx,{kind:`info`,Icon:Se,message:`No rows selected`});if(!h)return(0,q.jsx)(Mr,{milliseconds:200,children:(0,q.jsx)(qa,{size:`medium`,centered:!0})});if(h.length!==1){let e=m?`LazyFrame, no data available.`:`Expected 1 row, got ${h.length} rows. Please report the issue.`;return(0,q.jsx)(qx,{kind:`warn`,Icon:yo,message:e})}let e=h[0];if(typeof e!=`object`||!e)return(0,q.jsx)(qx,{kind:`warn`,Icon:yo,message:`Row is not an object. Please report the issue.`});let t={};for(let[n,r]of Object.entries(e))n!==`__select__`&&n!==`_marimo_row_id`&&(n.startsWith(`__m_column__`)?t[n.slice(pr.length)]=r:t[n]=r);return(0,q.jsxs)(Es,{className:`mb-4`,children:[(0,q.jsx)(xs,{children:(0,q.jsxs)(ws,{children:[(0,q.jsx)(Ss,{className:`w-1/4`,children:`Column`}),(0,q.jsx)(Ss,{className:`w-3/4`,children:`Value`})]})}),(0,q.jsx)(Cs,{children:r?.map(([e,[n,r]])=>{let i=t[e];if(!Kx({columnName:e,columnValue:i,searchQuery:c}))return null;let a=gr({column:{id:e,columnDef:{meta:{dataType:n,dtype:r}},getColumnFormatting:()=>void 0,applyColumnFormatting:e=>e},renderValue:()=>i,getValue:()=>i,selectCell:void 0,cellStyles:`text-left break-word`}),o=typeof i==`object`?JSON.stringify(i):String(i);return(0,q.jsxs)(ws,{className:`group`,children:[(0,q.jsx)(Ts,{children:(0,q.jsx)(Br,{columnName:(0,q.jsx)(`span`,{children:e}),dataType:n})}),(0,q.jsx)(Ts,{children:(0,q.jsxs)(`div`,{className:`flex flex-row items-center justify-between gap-1`,children:[a,(0,q.jsx)(Co,{value:o,className:`w-3 h-3 mr-1 text-muted-foreground cursor-pointer opacity-0 group-hover:opacity-100`})]})})]},e)})})]})})()]})};function Kx({columnName:e,columnValue:t,searchQuery:n}){let r=e.toLowerCase(),i=n.toLowerCase(),a=typeof t==`object`?JSON.stringify(t):String(t);return a=a.toLowerCase(),r.includes(i)||a.includes(i)}var qx=e=>{let t=(0,J.c)(8),{kind:n,Icon:r,message:i}=e,a;t[0]===r?a=t[1]:(a=(0,q.jsx)(r,{className:`w-5 h-5`}),t[0]=r,t[1]=a);let o;t[2]===i?o=t[3]:(o=(0,q.jsx)(`span`,{children:i}),t[2]=i,t[3]=o);let s;return t[4]!==n||t[5]!==a||t[6]!==o?(s=(0,q.jsxs)(vs,{kind:n,className:`p-4 mx-3 mt-3 flex flex-row items-center gap-2`,children:[a,o]}),t[4]=n,t[5]=a,t[6]=o,t[7]=s):s=t[7],s},Jx=`text-[13px] uppercase tracking-wide font-semibold cursor-pointer transition-colors`,Yx=`text-primary`,Xx=`hover:text-foreground`;function Zx({rowIdx:e,setRowIdx:t,totalRows:n,fieldTypes:r,getRow:i,isSelectable:a,isRowSelected:o,handleRowSelectionChange:s,previewColumn:c,totalColumns:l,tableId:u,table:d,showRowExplorer:f,showColumnExplorer:p,activeTab:m,onTabChange:h}){let g=f&&p,_=(0,q.jsx)(Gx,{rowIdx:e,setRowIdx:t,totalRows:n,fieldTypes:r,getRow:i,isSelectable:a,isRowSelected:o,handleRowSelectionChange:s}),v=c&&(0,q.jsx)(Hx,{previewColumn:c,fieldTypes:r,totalRows:n,totalColumns:l,tableId:u,table:d});if(!g)return f?_:p?v:null;let y=m??wr.ROW_VIEWER;return(0,q.jsxs)(Fi,{value:y,onValueChange:e=>h(e),className:`flex flex-col min-w-[350px]`,children:[(0,q.jsx)(Or,{name:Dr.CONTEXT_AWARE_PANEL_HEADER,children:(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(Ui,{variant:`text`,size:`xs`,onClick:()=>h(wr.ROW_VIEWER),className:G(Jx,y===wr.ROW_VIEWER?Yx:Xx),children:`Rows`}),(0,q.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:`|`}),(0,q.jsx)(Ui,{variant:`text`,size:`xs`,onClick:()=>h(wr.COLUMN_EXPLORER),className:G(Jx,y===wr.COLUMN_EXPLORER?Yx:Xx),children:`Columns`})]})}),(0,q.jsx)(Ni,{value:wr.ROW_VIEWER,className:`flex-1 overflow-auto`,children:_}),(0,q.jsx)(Ni,{value:wr.COLUMN_EXPLORER,className:`flex-1 overflow-auto`,children:v})]})}function Qx(e,t){let n=(0,J.c)(2),r=(0,K.useRef)(!1),i;n[0]===e?i=n[1]:(i=()=>{if(!r.current){r.current=!0;return}e()},n[0]=e,n[1]=i),(0,K.useEffect)(i,t)}var $x=We([z(),Je(),B()]).nullable(),eS=H({total:z().nullable(),nulls:z().nullable(),unique:z().nullable(),true:z().nullable(),false:z().nullable(),min:$x,max:$x,std:$x,mean:$x,median:$x,p5:$x,p25:$x,p75:$x,p95:$x}),tS=U(H({bin_start:We([z(),B(),nt(Date)]),bin_end:We([z(),B(),nt(Date)]),count:z()})),nS=U(H({value:B(),count:z()})),rS=qe(B(),qe(B(),B().nullable())).optional(),iS=Cv(`marimo-table`).withData(H({initialValue:We([U(z()),U(H({rowId:B(),columnName:B()}))]),label:B().nullable(),data:We([B(),U(H({}).passthrough())]),rawData:We([B(),U(Ve({}))]).nullish(),totalRows:We([z(),He(Vr)]),pagination:V().default(!1),pageSize:z().default(10),selection:Ze([`single`,`multi`,`single-cell`,`multi-cell`]).nullable().default(null),showDownload:V().default(!1),showFilters:V().default(!1),showColumnSummaries:We([V(),Ze([`stats`,`chart`])]).default(!0),showDataTypes:V().default(!0),showPageSizeSelector:V().default(!0),showColumnExplorer:V().default(!0),showRowExplorer:V().default(!0),showChartBuilder:V().default(!0),showSearch:V().default(!0),rowHeaders:cy,freezeColumnsLeft:U(B()).optional(),freezeColumnsRight:U(B()).optional(),hiddenColumns:U(B()).optional(),textJustifyColumns:qe(B(),Ze([`left`,`center`,`right`])).optional(),wrappedColumns:U(B()).optional(),columnWidths:qe(B(),z().int().positive()).optional(),headerTooltip:qe(B(),B()).optional(),fieldTypes:cy.nullish(),totalColumns:z(),maxColumns:We([z(),He(`all`)]).default(`all`),hasStableRowId:V().default(!1),maxHeight:z().optional(),cellStyles:qe(B(),qe(B(),H({}).passthrough())).optional(),hoverTemplate:B().optional(),cellHoverTexts:rS,lazy:V().default(!1),preload:V().default(!1)})).withFunctions({download_as:Rx,download_geojson:zx,get_export_metadata:Vx,get_column_summaries:Pv.input(Ve({})).output(H({data:We([B(),U(Ve({}))]).nullable(),stats:qe(B(),eS),bin_values:qe(B(),tS),value_counts:qe(B(),nS),show_charts:V(),is_disabled:V().optional()})),search:Pv.input(H({sort:U(H({by:B(),descending:V()})).optional(),query:B().optional(),filters:hy.optional(),page_number:z(),page_size:z(),max_columns:z().nullable().optional()})).output(H({data:We([B(),U(H({}).passthrough())]),total_rows:We([z(),He(Vr)]),cell_styles:qe(B(),qe(B(),H({}).passthrough())).nullable(),cell_hover_texts:rS.nullable(),raw_data:We([B(),U(Ve({}))]).nullish()})),get_row_ids:Pv.input(H({}).passthrough()).output(H({row_ids:U(z()),all_rows:V(),error:B().nullable()})),get_data_url:Pv.input(H({}).passthrough()).output(H({data_url:We([B(),U(H({}).passthrough())]),format:Ze([`csv`,`json`,`arrow`])})),calculate_top_k_rows:Pv.input(H({column:B(),k:z()})).output(H({data:U(Ue([Qe(),z()]))})),preview_column:Pv.input(H({column:B()})).output(H({chart_spec:B().nullable(),chart_code:B().nullable(),error:B().nullable(),missing_packages:U(B()).nullable(),stats:eS.nullable()})),get_size_bytes:Pv.input(H({})).output(H({size_bytes:z().nullish()}))}).renderer(e=>(0,q.jsx)(dS,{children:(0,q.jsx)(cS,{isLazy:e.data.lazy,preload:e.data.preload,host:e.host,children:(0,q.jsx)(lS,{...e.data,...e.functions,host:e.host,data:e.data.data,value:e.value,setValue:e.setValue,cellHoverTexts:e.data.cellHoverTexts})})})),aS=new Map;function oS(e,t){return e!=null&&t!=null&&aS.get(e)===t}function sS(e,t){e!=null&&t!=null&&aS.set(e,t)}var cS=e=>{let t=(0,J.c)(13),{isLazy:n,children:r,preload:i,host:a}=e,o,s,c,l;if(t[0]!==a||t[1]!==n||t[2]!==i){let e=a.closest(`[${b}]`);l=e?Me.parse(e):null,o=a.closest(`[${_}]`)?.getAttribute(_),s=K.useState,c=n&&!i&&!oS(l,o),t[0]=a,t[1]=n,t[2]=i,t[3]=o,t[4]=s,t[5]=c,t[6]=l}else o=t[3],s=t[4],c=t[5],l=t[6];let[u,d]=s(c);if(u){let e;t[7]!==o||t[8]!==l?(e=()=>{sS(l,o),d(!1)},t[7]=o,t[8]=l,t[9]=e):e=t[9];let n;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,q.jsx)(F,{className:`mr-2 h-4 w-4`}),t[10]=n):n=t[10];let r;return t[11]===e?r=t[12]:(r=(0,q.jsx)(`div`,{className:`flex h-20 items-center justify-center`,children:(0,q.jsxs)(Ui,{variant:`outline`,size:`xs`,onClick:e,children:[n,`Preview data`]})}),t[11]=e,t[12]=r),r}return r},lS=(0,K.memo)(e=>{let t=(0,J.c)(119),n;t[0]===e.host?n=t[1]:(n=M(e.host),t[0]=e.host,t[1]=n);let i=n,a=e.search,o=e.setValue,s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=[],t[2]=s):s=t[2];let[c,l]=(0,K.useState)(s),u;t[3]===e.pageSize?u=t[4]:(u={pageSize:e.pageSize,pageIndex:0},t[3]=e.pageSize,t[4]=u);let[d,f]=K.useState(u),[p,m]=(0,K.useState)(``),h;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(h=[],t[5]=h):h=t[5];let[g,_]=(0,K.useState)(h),v;t[6]!==i||t[7]!==e.showChartBuilder?(v=()=>!e.showChartBuilder||!i?!1:bx(i),t[6]=i,t[7]=e.showChartBuilder,t[8]=v):v=t[8];let[y,b]=(0,K.useState)(v),x;t[9]!==e.hasStableRowId||t[10]!==o?(x=()=>{e.hasStableRowId||o([])},t[9]=e.hasStableRowId,t[10]=o,t[11]=x):x=t[11];let S;t[12]!==g||t[13]!==e.hasStableRowId||t[14]!==p||t[15]!==o||t[16]!==c?(S=[o,g,p,c,e.hasStableRowId],t[12]=g,t[13]=e.hasStableRowId,t[14]=p,t[15]=o,t[16]=c,t[17]=S):S=t[17],Qx(x,S);let C,w;t[18]===e.pageSize?(C=t[19],w=t[20]):(C=()=>{f({pageIndex:0,pageSize:e.pageSize})},w=[e.pageSize],t[18]=e.pageSize,t[19]=C,t[20]=w),(0,K.useEffect)(C,w);let T;t[21]!==g||t[22]!==d.pageIndex||t[23]!==d.pageSize||t[24]!==e.cellHoverTexts||t[25]!==e.cellStyles||t[26]!==e.data||t[27]!==e.lazy||t[28]!==e.pageSize||t[29]!==e.rawData||t[30]!==e.totalRows||t[31]!==a||t[32]!==p||t[33]!==c?(T=async()=>{if(e.totalRows===0)return{rows:ko.EMPTY,totalRows:0,cellStyles:{}};let t=e.data,n=e.rawData,r=e.totalRows,i=e.cellStyles,o=e.cellHoverTexts,s=d.pageSize!==e.pageSize,l=p===``&&d.pageIndex===0&&g.length===0&&c.length===0&&!e.lazy&&!s,u=c.length>0?c.map(fS):void 0,f=a({sort:u,query:p,page_number:d.pageIndex,page_size:d.pageSize,filters:Ap(g)});if(l)f.catch(pS);else{let e=await f;t=e.data,n=e.raw_data,r=e.total_rows,i=e.cell_styles||{},o=e.cell_hover_texts||{}}let[m,h]=await Lr(t,n);return t=m,{rows:t,rawRows:h,totalRows:r,cellStyles:i,cellHoverTexts:o}},t[21]=g,t[22]=d.pageIndex,t[23]=d.pageSize,t[24]=e.cellHoverTexts,t[25]=e.cellStyles,t[26]=e.data,t[27]=e.lazy,t[28]=e.pageSize,t[29]=e.rawData,t[30]=e.totalRows,t[31]=a,t[32]=p,t[33]=c,t[34]=T):T=t[34];let E=As(e.fieldTypes),D;t[35]!==g||t[36]!==d.pageIndex||t[37]!==d.pageSize||t[38]!==e.cellHoverTexts||t[39]!==e.cellStyles||t[40]!==e.data||t[41]!==e.lazy||t[42]!==e.totalRows||t[43]!==a||t[44]!==p||t[45]!==c||t[46]!==E?(D=[c,a,g,p,E,e.data,e.totalRows,e.lazy,e.cellHoverTexts,e.cellStyles,d.pageSize,d.pageIndex],t[35]=g,t[36]=d.pageIndex,t[37]=d.pageSize,t[38]=e.cellHoverTexts,t[39]=e.cellStyles,t[40]=e.data,t[41]=e.lazy,t[42]=e.totalRows,t[43]=a,t[44]=p,t[45]=c,t[46]=E,t[47]=D):D=t[47];let{data:O,error:k,isPending:A,isFetching:j}=Ko(T,D),N=r(ni),P;t[48]!==N||t[49]!==e?(P=async()=>!N||!e.showDownload||e.lazy||e.totalRows===0?null:(await e.get_size_bytes({})).size_bytes??null,t[48]=N,t[49]=e,t[50]=P):P=t[50];let F=e.showDownload,I=e.get_size_bytes,ee=e.lazy,L=e.totalRows,te=As(g),ne=As(c),re;t[51]!==N||t[52]!==e.get_size_bytes||t[53]!==e.lazy||t[54]!==e.showDownload||t[55]!==e.totalRows||t[56]!==p||t[57]!==te||t[58]!==ne?(re=[N,F,I,ee,L,p,te,ne],t[51]=N,t[52]=e.get_size_bytes,t[53]=e.lazy,t[54]=e.showDownload,t[55]=e.totalRows,t[56]=p,t[57]=te,t[58]=ne,t[59]=re):re=t[59];let{data:ie,isPending:ae}=Ko(P,re),oe=ie??null,se=!!N&&e.showDownload&&ae,ce;t[60]!==g||t[61]!==a||t[62]!==p||t[63]!==c?(ce=async e=>{let t=c.length>0?c.map(mS):void 0,n=await a({page_number:e,page_size:1,sort:t,query:p,filters:Ap(g),max_columns:null});return{rows:await Jr(n.data)}},t[60]=g,t[61]=a,t[62]=p,t[63]=c,t[64]=ce):ce=t[64];let le=ce,ue;t[65]===Symbol.for(`react.memo_cache_sentinel`)?(ue=()=>{f(hS)},t[65]=ue):ue=t[65];let de=O?.totalRows,fe;t[66]===de?fe=t[67]:(fe=[de],t[66]=de,t[67]=fe),(0,K.useEffect)(ue,fe);let pe;t[68]===e?pe=t[69]:(pe=async()=>{let t=rn();return e.totalRows===0||!e.showColumnSummaries||t?{data:null,stats:{},bin_values:{},value_counts:{},show_charts:!1}:e.get_column_summaries({})},t[68]=e,t[69]=pe);let me;t[70]!==g||t[71]!==e.data||t[72]!==e.get_column_summaries||t[73]!==e.showColumnSummaries||t[74]!==e.totalRows||t[75]!==p?(me=[e.get_column_summaries,e.showColumnSummaries,g,p,e.totalRows,e.data],t[70]=g,t[71]=e.data,t[72]=e.get_column_summaries,t[73]=e.showColumnSummaries,t[74]=e.totalRows,t[75]=p,t[76]=me):me=t[76];let{data:he,error:ge}=Ko(pe,me),_e,ve;if(t[77]===ge?(_e=t[78],ve=t[79]):(_e=()=>{ge&&W.error(ge)},ve=[ge],t[77]=ge,t[78]=_e,t[79]=ve),(0,K.useEffect)(_e,ve),A){let n=e.totalRows!==`too_many`&&e.totalRows>0?Math.min(e.totalRows,e.pageSize):e.pageSize,r;return t[80]===n?r=t[81]:(r=(0,q.jsx)(Mr,{milliseconds:200,children:(0,q.jsx)(Bv,{pageSize:n})}),t[80]=n,t[81]=r),r}let ye=null;if(k){W.error(k);let e;t[82]===k?e=t[83]:(e=!rn()&&(0,q.jsxs)(gs,{variant:`destructive`,className:`mb-2`,children:[(0,q.jsx)(hs,{children:`Error`}),(0,q.jsx)(`div`,{className:`text-md`,children:k.message||`An unknown error occurred`})]}),t[82]=k,t[83]=e),ye=e}let be;t[84]===y?be=t[85]:(be=()=>{b(!y)},t[84]=y,t[85]=be);let xe=be,Se=O?.rows??ko.EMPTY,Ce=O?.rawRows,we=j&&!A,Te=O?.totalRows??e.totalRows,Ee=O?.cellStyles??e.cellStyles,De=O?.cellHoverTexts??e.cellHoverTexts,Oe;t[86]!==i||t[87]!==he||t[88]!==y||t[89]!==g||t[90]!==le||t[91]!==d||t[92]!==e||t[93]!==p||t[94]!==oe||t[95]!==se||t[96]!==c||t[97]!==Se||t[98]!==Ce||t[99]!==we||t[100]!==Te||t[101]!==Ee||t[102]!==De||t[103]!==xe?(Oe=(0,q.jsx)(uS,{...e,data:Se,rawData:Ce,columnSummaries:he,sorting:c,setSorting:l,searchQuery:p,setSearchQuery:m,filters:g,setFilters:_,reloading:we,totalRows:Te,sizeBytes:oe,sizeBytesIsLoading:se,paginationState:d,setPaginationState:f,cellStyles:Ee,cellHoverTexts:De,toggleDisplayHeader:xe,isChartBuilderOpen:y,getRow:le,cellId:i,maxHeight:e.maxHeight}),t[86]=i,t[87]=he,t[88]=y,t[89]=g,t[90]=le,t[91]=d,t[92]=e,t[93]=p,t[94]=oe,t[95]=se,t[96]=c,t[97]=Se,t[98]=Ce,t[99]=we,t[100]=Te,t[101]=Ee,t[102]=De,t[103]=xe,t[104]=Oe):Oe=t[104];let ke=Oe,Ae;t[105]!==i||t[106]!==ke||t[107]!==O?.rows||t[108]!==y||t[109]!==e.fieldTypes||t[110]!==e.get_data_url||t[111]!==e.rowHeaders||t[112]!==e.showChartBuilder||t[113]!==e.totalColumns||t[114]!==e.totalRows?(Ae=e.showChartBuilder?(0,q.jsx)(Dx,{displayHeader:y,onCloseChartBuilder:()=>b(!1),data:O?.rows||[],columns:e.totalColumns,totalRows:e.totalRows,dataTable:ke,getDataUrl:e.get_data_url,fieldTypes:e.fieldTypes,rowHeaders:e.rowHeaders,cellId:i}):ke,t[105]=i,t[106]=ke,t[107]=O?.rows,t[108]=y,t[109]=e.fieldTypes,t[110]=e.get_data_url,t[111]=e.rowHeaders,t[112]=e.showChartBuilder,t[113]=e.totalColumns,t[114]=e.totalRows,t[115]=Ae):Ae=t[115];let je;return t[116]!==ye||t[117]!==Ae?(je=(0,q.jsxs)(q.Fragment,{children:[ye,Ae]}),t[116]=ye,t[117]=Ae,t[118]=je):je=t[118],je});lS.displayName=`LoadingDataTableComponent`;var uS=e=>{let t=(0,J.c)(146),{label:n,data:r,rawData:i,totalRows:a,sizeBytes:o,sizeBytesIsLoading:c,maxColumns:l,pagination:u,selection:d,value:f,showFilters:p,showDownload:m,showPageSizeSelector:h,showColumnExplorer:g,showRowExplorer:_,showChartBuilder:v,showDataTypes:y,rowHeaders:b,fieldTypes:x,paginationState:S,setPaginationState:C,download_as:w,download_geojson:T,get_export_metadata:E,columnSummaries:D,className:O,setValue:k,sorting:A,setSorting:j,showSearch:M,searchQuery:N,setSearchQuery:P,filters:F,setFilters:I,reloading:ee,freezeColumnsLeft:L,freezeColumnsRight:te,hiddenColumns:ne,textJustifyColumns:re,wrappedColumns:ie,columnWidths:ae,headerTooltip:oe,totalColumns:se,get_row_ids:ce,cellStyles:le,hoverTemplate:ue,cellHoverTexts:de,toggleDisplayHeader:fe,isChartBuilderOpen:pe,calculate_top_k_rows:me,preview_column:he,getRow:ge,cellId:_e,maxHeight:ve}=e,ye=d,be=y,xe=(0,K.useId)(),Se;t[0]!==w||t[1]!==T?(Se=e=>{let{format:t,...n}=e;return t===`geojson`?T({format:t,...n}):w({format:t,...n})},t[0]=w,t[1]=T,t[2]=Se):Se=t[2];let Ce=Se,{locale:we}=zo(),[Te,Ee]=(0,K.useState)(0),{isPanelOpen:De,isAnyPanelOpen:Oe,togglePanel:ke,panelType:Ae,setPanelType:je}=Nx(xe,_e),R;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(R=rn(),t[3]=R):R=t[3];let Me=R,Ne;bb0:{if(!D){Ne=Ar.EMPTY;break bb0}if(!x||!D.stats){Ne=Ar.EMPTY;break bb0}let e;if(t[4]!==D.bin_values||t[5]!==D.data||t[6]!==D.show_charts||t[7]!==D.stats||t[8]!==D.value_counts||t[9]!==x){let n=Zr(x);e=new Ar(D.data||[],n,D.stats,D.bin_values,D.value_counts,{includeCharts:D.show_charts}),t[4]=D.bin_values,t[5]=D.data,t[6]=D.show_charts,t[7]=D.stats,t[8]=D.value_counts,t[9]=x,t[10]=e}else e=t[10];Ne=e}let Pe=Ne,Fe;t[11]===b?Fe=t[12]:(Fe=new Set(b.map(gS)),t[11]=b,t[12]=Fe);let Ie=Fe,Le;t[13]!==r||t[14]!==x||t[15]!==Ie?(Le=x??Qr(r).filter(e=>{let[t]=e;return!Ie.has(t)}),t[13]=r,t[14]=x,t[15]=Ie,t[16]=Le):Le=t[16];let Re=As(Le),ze;bb1:{if(l===`all`){ze=Re;break bb1}let e;t[17]!==l||t[18]!==Re?(e=Re.slice(0,l),t[17]=l,t[18]=Re,t[19]=e):e=t[19],ze=e}let z=ze,Be;if(t[20]!==r||t[21]!==z){if(Be={},r&&r.length>0){for(let[e,t]of z)if(t[0]===`number`){let t=0;for(let n of r){let r=n[e];if(typeof r==`number`&&Number.isFinite(r)){let e=String(r),n=e.indexOf(`.`);n!==-1&&(t=Math.max(t,e.length-n-1))}}Be[e]=t}}t[20]=r,t[21]=z,t[22]=Be}else Be=t[22];let Ve=Be,He=As(b),Ue=As(re),We=As(ie),Ge=As(ae),Ke=As(Pe),qe=As(Ve),Je=z.length;x||(be=!1),Me&&(ye=null);let B;t[23]!==me||t[24]!==qe||t[25]!==oe||t[26]!==Ke||t[27]!==z||t[28]!==Ge||t[29]!==He||t[30]!==Ue||t[31]!==We||t[32]!==ye||t[33]!==be?(B=_r({rowHeaders:He,selection:ye,chartSpecModel:Ke,fieldTypes:z,textJustifyColumns:Ue,wrappedColumns:We,columnWidths:Ge,headerTooltip:oe,showDataTypes:be,calculateTopKRows:me,fractionDigitsByColumn:qe}),t[23]=me,t[24]=qe,t[25]=oe,t[26]=Ke,t[27]=z,t[28]=Ge,t[29]=He,t[30]=Ue,t[31]=We,t[32]=ye,t[33]=be,t[34]=B):B=t[34];let V=B,Ye;t[35]===f?Ye=t[36]:(Ye=Object.fromEntries((f||[]).map(_S)),t[35]=f,t[36]=Ye);let Xe=Ye,Ze;t[37]!==Xe||t[38]!==ye||t[39]!==k?(Ze=e=>{if(ye===`single`){let t=Pt.asUpdater(e)({});k(Object.keys(t).slice(0,1))}if(ye===`multi`){let t=Pt.asUpdater(e)(Xe);k(Object.keys(t))}},t[37]=Xe,t[38]=ye,t[39]=k,t[40]=Ze):Ze=t[40];let Qe=s(Ze),$e;t[41]!==S||t[42]!==C||t[43]!==Ee||t[44]!==a?($e=e=>{if(Ee(e),e<0||typeof a==`number`&&e>=a||a===`too_many`)return;let t=ei(e,S.pageIndex,S.pageSize);t!==null&&C(e=>({...e,pageIndex:t}))},t[41]=S,t[42]=C,t[43]=Ee,t[44]=a,t[45]=$e):$e=t[45];let H=s($e),et;t[46]===f?et=t[47]:(et=f.filter(vS),t[46]=f,t[47]=et);let tt=et,nt;t[48]!==tt||t[49]!==ye||t[50]!==k?(nt=e=>{if(ye===`single-cell`){let t=Pt.asUpdater(e)(tt);k(t.slice(0,1))}if(ye===`multi-cell`){let t=Pt.asUpdater(e)(tt);k(t)}},t[48]=tt,t[49]=ye,t[50]=k,t[51]=nt):nt=t[51];let U=s(nt),rt=ye===`multi`||ye===`single`,it=g&&!!he,at;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(at=Dn(),t[52]=at):at=t[52];let ot=at,st;t[53]===Symbol.for(`react.memo_cache_sentinel`)?(st=Bt(),t[53]=st):st=t[53];let ct=st,lt;bb2:{if(!Oe||!(_||it)){lt=void 0;break bb2}let e;t[54]!==it||t[55]!==ge||t[56]!==Qe||t[57]!==xe||t[58]!==rt||t[59]!==Re||t[60]!==Ae||t[61]!==he||t[62]!==Xe||t[63]!==je||t[64]!==H||t[65]!==_||t[66]!==se||t[67]!==a||t[68]!==Te?(e=e=>(0,q.jsx)(vr,{children:(0,q.jsx)(Zx,{rowIdx:Te,setRowIdx:H,totalRows:a,fieldTypes:Re,getRow:ge,isSelectable:rt,isRowSelected:!!Xe[Te],handleRowSelectionChange:Qe,previewColumn:he,totalColumns:se,tableId:xe,table:e,showRowExplorer:_&&!ot,showColumnExplorer:it&&!ot,activeTab:Ae,onTabChange:je})}),t[54]=it,t[55]=ge,t[56]=Qe,t[57]=xe,t[58]=rt,t[59]=Re,t[60]=Ae,t[61]=he,t[62]=Xe,t[63]=je,t[64]=H,t[65]=_,t[66]=se,t[67]=a,t[68]=Te,t[69]=e):e=t[69],lt=e}let ut=lt,dt;t[70]!==r||t[71]!==S||t[72]!==a?(dt=a===`too_many`&&S.pageSize===r.length&&(0,q.jsxs)(vs,{className:`mb-1 rounded`,children:[`Previewing the first `,S.pageSize,` rows.`]}),t[70]=r,t[71]=S,t[72]=a,t[73]=dt):dt=t[73];let ft;t[74]!==Je||t[75]!==se?(ft=Je<se&&Je>0&&(0,q.jsxs)(vs,{className:`mb-1 rounded`,children:[`Result clipped. Showing `,Je,` of `,se,` columns.`]}),t[74]=Je,t[75]=se,t[76]=ft):ft=t[76];let pt;t[77]!==r||t[78]!==Me||t[79]!==we||t[80]!==a?(pt=Me&&typeof a==`number`&&r.length<a&&(0,q.jsxs)(vs,{className:`mb-1 rounded`,children:[`Showing the first `,(0,q.jsx)(`strong`,{children:Vo(r.length,we)}),` `,`of `,(0,q.jsx)(`strong`,{children:Vo(a,we)}),` rows. Increase the table's `,(0,q.jsx)(`code`,{children:`page_size`}),` to embed more in the static export.`]}),t[77]=r,t[78]=Me,t[79]=we,t[80]=a,t[81]=pt):pt=t[81];let mt;t[82]===D?.is_disabled?mt=t[83]:(mt=D?.is_disabled&&(0,q.jsx)(vs,{className:`mb-1 rounded`,children:`Column summaries are unavailable. Filter your data to fewer than 1,000,000 rows.`}),t[82]=D?.is_disabled,t[83]=mt);let ht=m?Ce:void 0,gt=m?E:void 0,_t=v&&!ct,vt=(_||it)&&!ot&&!ct,yt;t[84]===Ee?yt=t[85]:(yt=e=>Ee(e),t[84]=Ee,t[85]=yt);let bt;t[86]!==me||t[87]!==de||t[88]!==tt||t[89]!==le||t[90]!==O||t[91]!==V||t[92]!==r||t[93]!==F||t[94]!==L||t[95]!==te||t[96]!==ce||t[97]!==U||t[98]!==Qe||t[99]!==ne||t[100]!==ue||t[101]!==Oe||t[102]!==pe||t[103]!==De||t[104]!==ve||t[105]!==u||t[106]!==S||t[107]!==i||t[108]!==ee||t[109]!==ut||t[110]!==Xe||t[111]!==N||t[112]!==ye||t[113]!==I||t[114]!==C||t[115]!==P||t[116]!==j||t[117]!==p||t[118]!==h||t[119]!==M||t[120]!==o||t[121]!==c||t[122]!==A||t[123]!==ht||t[124]!==gt||t[125]!==_t||t[126]!==vt||t[127]!==yt||t[128]!==fe||t[129]!==ke||t[130]!==se||t[131]!==a||t[132]!==Te?(bt=(0,q.jsx)(Ir,{data:r,rawData:i,columns:V,className:O,maxHeight:ve,sorting:A,totalRows:a,sizeBytes:o,sizeBytesIsLoading:c,totalColumns:se,manualSorting:!0,setSorting:j,pagination:u,manualPagination:!0,selection:ye,paginationState:S,setPaginationState:C,rowSelection:Xe,cellSelection:tt,cellStyling:le,hoverTemplate:ue,cellHoverTexts:de,downloadAs:ht,getExportMetadata:gt,showSearch:M,searchQuery:N,onSearchQueryChange:P,showFilters:p,filters:F,onFiltersChange:I,calculateTopKRows:me,reloading:ee,onRowSelectionChange:Qe,freezeColumnsLeft:L,freezeColumnsRight:te,hiddenColumns:ne,onCellSelectionChange:U,getRowIds:ce,toggleDisplayHeader:fe,showChartBuilder:_t,isChartBuilderOpen:pe,showPageSizeSelector:h,showTableExplorer:vt,togglePanel:ke,isPanelOpen:De,isAnyPanelOpen:Oe,viewedRowIdx:Te,onViewedRowChange:yt,renderTableExplorerPanel:ut}),t[86]=me,t[87]=de,t[88]=tt,t[89]=le,t[90]=O,t[91]=V,t[92]=r,t[93]=F,t[94]=L,t[95]=te,t[96]=ce,t[97]=U,t[98]=Qe,t[99]=ne,t[100]=ue,t[101]=Oe,t[102]=pe,t[103]=De,t[104]=ve,t[105]=u,t[106]=S,t[107]=i,t[108]=ee,t[109]=ut,t[110]=Xe,t[111]=N,t[112]=ye,t[113]=I,t[114]=C,t[115]=P,t[116]=j,t[117]=p,t[118]=h,t[119]=M,t[120]=o,t[121]=c,t[122]=A,t[123]=ht,t[124]=gt,t[125]=_t,t[126]=vt,t[127]=yt,t[128]=fe,t[129]=ke,t[130]=se,t[131]=a,t[132]=Te,t[133]=bt):bt=t[133];let xt;t[134]!==n||t[135]!==bt?(xt=(0,q.jsx)(kv,{label:n,align:`top`,fullWidth:!0,children:bt}),t[134]=n,t[135]=bt,t[136]=xt):xt=t[136];let St;t[137]!==Pe||t[138]!==xt?(St=(0,q.jsx)(jr,{value:Pe,children:xt}),t[137]=Pe,t[138]=xt,t[139]=St):St=t[139];let Ct;return t[140]!==dt||t[141]!==ft||t[142]!==pt||t[143]!==mt||t[144]!==St?(Ct=(0,q.jsxs)(q.Fragment,{children:[dt,ft,pt,mt,St]}),t[140]=dt,t[141]=ft,t[142]=pt,t[143]=mt,t[144]=St,t[145]=Ct):Ct=t[145],Ct},dS=e=>{let t=(0,J.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,q.jsx)(_n,{children:(0,q.jsx)(o,{store:a,children:(0,q.jsx)(dr,{controller:ur,children:n})})}),t[0]=n,t[1]=r),r};function fS(e){return{by:e.id,descending:e.desc}}function pS(e){W.error(e)}function mS(e){return{by:e.id,descending:e.desc}}function hS(e){return e.pageIndex===0?e:{...e,pageIndex:0}}function gS(e){let[t]=e;return t}function _S(e){return[e,!0]}function vS(e){return e instanceof Object&&e.columnName!==void 0}var yS=class{tagName=`marimo-date`;validator=H({initialValue:B(),label:B().nullable(),start:B(),stop:B(),step:B().optional(),fullWidth:V().default(!1),disabled:V().optional()});render(e){return(0,q.jsx)(bS,{...e.data,value:e.value,setValue:e.setValue,disabled:e.data.disabled})}},bS=e=>{let t=(0,J.c)(21),n=(0,K.useId)(),r;t[0]===e?r=t[1]:(r=t=>{if(!t)return;let n=t.toString();e.setValue(n)},t[0]=e,t[1]=r);let i=r,a=e.label,o=e.fullWidth,s;t[2]===e.value?s=t[3]:(s=qr(e.value),t[2]=e.value,t[3]=s);let c=e.label?n:void 0,l=e.label?void 0:`date picker`,u;t[4]===e.start?u=t[5]:(u=qr(e.start),t[4]=e.start,t[5]=u);let d;t[6]===e.stop?d=t[7]:(d=qr(e.stop),t[6]=e.stop,t[7]=d);let f;t[8]!==i||t[9]!==e.disabled||t[10]!==s||t[11]!==c||t[12]!==l||t[13]!==u||t[14]!==d?(f=(0,q.jsx)(xr,{granularity:`day`,value:s,onChange:i,"aria-labelledby":c,"aria-label":l,minValue:u,maxValue:d,isDisabled:e.disabled}),t[8]=i,t[9]=e.disabled,t[10]=s,t[11]=c,t[12]=l,t[13]=u,t[14]=d,t[15]=f):f=t[15];let p;return t[16]!==n||t[17]!==e.fullWidth||t[18]!==e.label||t[19]!==f?(p=(0,q.jsx)(kv,{labelId:n,label:a,fullWidth:o,children:f}),t[16]=n,t[17]=e.fullWidth,t[18]=e.label,t[19]=f,t[20]=p):p=t[20],p},xS=class{tagName=`marimo-date-range`;validator=H({initialValue:Ue([B(),B()]),label:B().nullable(),start:B(),stop:B(),step:B().optional(),fullWidth:V().default(!1),disabled:V().optional()});render(e){return(0,q.jsx)(SS,{...e.data,value:e.value,setValue:e.setValue})}},SS=e=>{let t=(0,J.c)(26),n=(0,K.useId)(),r;t[0]===e?r=t[1]:(r=t=>{if(!t)return;let{start:n,end:r}=t,i=[n.toString(),r.toString()];e.setValue(i)},t[0]=e,t[1]=r);let i=r,a=e.label,o=e.fullWidth,s;t[2]===e.value[0]?s=t[3]:(s=qr(e.value[0]),t[2]=e.value[0],t[3]=s);let c;t[4]===e.value[1]?c=t[5]:(c=qr(e.value[1]),t[4]=e.value[1],t[5]=c);let l;t[6]!==s||t[7]!==c?(l={start:s,end:c},t[6]=s,t[7]=c,t[8]=l):l=t[8];let u=e.label?n:void 0,d=e.label?void 0:`date range picker`,f;t[9]===e.start?f=t[10]:(f=qr(e.start),t[9]=e.start,t[10]=f);let p;t[11]===e.stop?p=t[12]:(p=qr(e.stop),t[11]=e.stop,t[12]=p);let m;t[13]!==i||t[14]!==e.disabled||t[15]!==l||t[16]!==u||t[17]!==d||t[18]!==f||t[19]!==p?(m=(0,q.jsx)(fr,{granularity:`day`,value:l,onChange:i,"aria-labelledby":u,"aria-label":d,minValue:f,maxValue:p,isDisabled:e.disabled}),t[13]=i,t[14]=e.disabled,t[15]=l,t[16]=u,t[17]=d,t[18]=f,t[19]=p,t[20]=m):m=t[20];let h;return t[21]!==n||t[22]!==e.fullWidth||t[23]!==e.label||t[24]!==m?(h=(0,q.jsx)(kv,{labelId:n,label:a,fullWidth:o,children:m}),t[21]=n,t[22]=e.fullWidth,t[23]=e.label,t[24]=m,t[25]=h):h=t[25],h},CS=class{tagName=`marimo-datetime`;validator=H({initialValue:B(),label:B().nullable(),start:B(),stop:B(),step:B().optional(),precision:Ze([`hour`,`minute`,`second`]).default(`minute`),fullWidth:V().default(!1),disabled:V().optional()});render(e){return(0,q.jsx)(wS,{...e.data,value:e.value,setValue:e.setValue})}},wS=e=>{let t=(0,J.c)(22),n=(0,K.useId)(),r;t[0]===e?r=t[1]:(r=t=>{if(!t)return;let n=t.toString();e.setValue(n)},t[0]=e,t[1]=r);let i=r,a;t[2]===e.value?a=t[3]:(a=e.value?or(e.value):void 0,t[2]=e.value,t[3]=a);let o=a,s=e.label,c=e.fullWidth,l=e.precision,u=e.label?n:void 0,d=e.label?void 0:`date time picker`,f;t[4]===e.start?f=t[5]:(f=or(e.start),t[4]=e.start,t[5]=f);let p;t[6]===e.stop?p=t[7]:(p=or(e.stop),t[6]=e.stop,t[7]=p);let m;t[8]!==i||t[9]!==o||t[10]!==e.disabled||t[11]!==e.precision||t[12]!==u||t[13]!==d||t[14]!==f||t[15]!==p?(m=(0,q.jsx)(xr,{granularity:l,value:o,onChange:i,"aria-labelledby":u,"aria-label":d,minValue:f,maxValue:p,isDisabled:e.disabled}),t[8]=i,t[9]=o,t[10]=e.disabled,t[11]=e.precision,t[12]=u,t[13]=d,t[14]=f,t[15]=p,t[16]=m):m=t[16];let h;return t[17]!==n||t[18]!==e.fullWidth||t[19]!==e.label||t[20]!==m?(h=(0,q.jsx)(kv,{labelId:n,label:s,fullWidth:c,children:m}),t[17]=n,t[18]=e.fullWidth,t[19]=e.label,t[20]=m,t[21]=h):h=t[21],h},TS=class{tagName=`marimo-dict`;validator=H({label:B().nullable(),elementIds:qe(B(),B())});render(e){return(0,q.jsx)(ES,{...e.data,value:e.value,setValue:e.setValue,children:e.children})}},ES=e=>{let t=(0,J.c)(4),{elementIds:n,setValue:r,children:i}=e,a,o;return t[0]!==n||t[1]!==r?(a=()=>{let e=e=>{let t=e.detail.element;if(t===null||!(t instanceof Node))return;let i=yv(t);if(i===null)return;let a=n[i];a!==void 0&&r(t=>{let n=t?{...t}:{};return n[a]=e.detail.value,n})};return document.addEventListener(fs.TYPE,e),()=>{document.removeEventListener(fs.TYPE,e)}},o=[n,r],t[0]=n,t[1]=r,t[2]=a,t[3]=o):(a=t[2],o=t[3]),(0,K.useEffect)(a,o),i},DS=e=>{let t=(0,J.c)(20),{options:n,value:r,setValue:i,label:a,allowSelectNone:o,fullWidth:s,disabled:c}=e,l=(0,K.useId)(),u;t[0]===n?u=t[1]:(u=n.map(OS),t[0]=n,t[1]=u);let d=u,f;t[2]===i?f=t[3]:(f=e=>i(e??null),t[2]=i,t[3]=f);let p;t[4]===s?p=t[5]:(p=G({"w-full":s}),t[4]=s,t[5]=p);let m;t[6]!==o||t[7]!==c||t[8]!==s||t[9]!==l||t[10]!==d||t[11]!==f||t[12]!==p||t[13]!==r?(m=(0,q.jsx)(Q_,{id:l,options:d,value:r,onChange:f,multiple:!1,allowSelectNone:o,fullWidth:s,disabled:c,className:p,"data-testid":`marimo-plugin-searchable-dropdown`}),t[6]=o,t[7]=c,t[8]=s,t[9]=l,t[10]=d,t[11]=f,t[12]=p,t[13]=r,t[14]=m):m=t[14];let h;return t[15]!==s||t[16]!==l||t[17]!==a||t[18]!==m?(h=(0,q.jsx)(kv,{label:a,controlId:l,fullWidth:s,children:m}),t[15]=s,t[16]=l,t[17]=a,t[18]=m,t[19]=h):h=t[19],h};function OS(e){return{value:e,label:e}}var kS=class{tagName=`marimo-dropdown`;validator=H({initialValue:U(B()),label:B().nullable(),options:U(B()),allowSelectNone:V(),fullWidth:V().default(!1),searchable:V().default(!1),disabled:V().default(!1)});render(e){if(e.data.searchable){let t=e.value.length>0?e.value[0]:null,n=t=>e.setValue(t?[t]:[]);return(0,q.jsx)(DS,{...e.data,value:t,setValue:n})}return(0,q.jsx)(jS,{...e.data,value:e.value,setValue:e.setValue})}},AS=`--`,jS=e=>{let t=(0,J.c)(25),{label:n,options:r,value:i,setValue:a,allowSelectNone:o,fullWidth:s,disabled:c}=e,l=(0,K.useId)(),u=o?AS:r[0],d=i.length===0?u:i[0],f;t[0]===a?f=t[1]:(f=e=>{let t=e.target.value;a(t===AS?[]:[t])},t[0]=a,t[1]=f);let p;t[2]===s?p=t[3]:(p=G({"w-full":s}),t[2]=s,t[3]=p);let m;t[4]!==o||t[5]!==i.length?(m=o?(0,q.jsx)(`option`,{value:AS,selected:i.length===0,children:`--`}):null,t[4]=o,t[5]=i.length,t[6]=m):m=t[6];let h;if(t[7]!==r||t[8]!==i){let e;t[10]===i?e=t[11]:(e=e=>(0,q.jsx)(`option`,{value:e,selected:i.includes(e),children:e},e),t[10]=i,t[11]=e),h=r.map(e),t[7]=r,t[8]=i,t[9]=h}else h=t[9];let g;t[12]!==c||t[13]!==l||t[14]!==d||t[15]!==f||t[16]!==p||t[17]!==m||t[18]!==h?(g=(0,q.jsxs)(vi,{"data-testid":`marimo-plugin-dropdown`,onChange:f,className:p,value:d,id:l,disabled:c,children:[m,h]}),t[12]=c,t[13]=l,t[14]=d,t[15]=f,t[16]=p,t[17]=m,t[18]=h,t[19]=g):g=t[19];let _;return t[20]!==s||t[21]!==l||t[22]!==n||t[23]!==g?(_=(0,q.jsx)(kv,{label:n,controlId:l,fullWidth:s,children:g}),t[20]=s,t[21]=l,t[22]=n,t[23]=g,t[24]=_):_=t[24],_},MS=K.lazy(()=>wo(()=>import(`./ConnectedDataExplorerComponent-t8fH_TNc.js`),__vite__mapDeps([349,1,2,3,4,15,16,17,22,23,24,31,6,25,26,27,32,33,30,34,35,37,350,39,82,139,327,62,59,64,71,12,7,13,9,14,18,154,72,155,156,157,158,159,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,88,43,28,89,162]),import.meta.url)),NS=Cv(`marimo-data-explorer`).withData(H({label:B().nullish(),data:B()})).renderer(e=>(0,q.jsx)(MS,{...e.data,value:e.value,setValue:e.setValue})),PS=(0,K.createContext)(new Map),FS=(0,K.createContext)(``),IS=(0,K.createContext)(()=>Promise.resolve({values:[],too_many_values:!1})),LS=e=>{let t=(0,J.c)(4),{type:n}=e,r;t[0]===n?r=t[1]:(r=()=>n.startsWith(`int`)||n.startsWith(`float`)||n.startsWith(`uint`)||n.startsWith(`number`)||n.startsWith(`complex`)?(0,q.jsx)(Fl,{size:14}):n.startsWith(`object`)||n.startsWith(`string`)?(0,q.jsx)(Oa,{size:14}):n.startsWith(`date`)||n.startsWith(`time`)?(0,q.jsx)(Ta,{size:14}):n.startsWith(`bool`)?(0,q.jsx)(Ca,{size:14}):(0,q.jsx)(_e,{size:14}),t[0]=n,t[1]=r);let i=r,a;return t[2]===i?a=t[3]:(a=(0,q.jsx)(`div`,{className:`border p-px border-border bg-(--slate-2) flex items-center justify-center rounded`,children:i()}),t[2]=i,t[3]=a),a},RS=()=>({isMatch:e=>{let{special:t}=R.parse(e.description||``);return t===`column_id`},Component:({schema:e,form:t,path:n})=>{let r=K.use(PS),{label:i,description:a}=R.parse(e.description);return(0,q.jsx)(l,{control:t.control,name:n,render:({field:e})=>(0,q.jsxs)(ce,{children:[(0,q.jsx)(ke,{children:i}),(0,q.jsx)(re,{children:a}),(0,q.jsx)(L,{children:(0,q.jsxs)(Ti,{"data-testid":`marimo-plugin-data-frames-column-select`,value:e.value==null?e.value:JSON.stringify(e.value),onValueChange:t=>{let n=JSON.parse(t);e.onChange(n)},children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(wi,{className:`min-w-[180px]`,children:(0,q.jsx)(pi,{placeholder:`--`})}),(0,q.jsx)(US,{})]}),(0,q.jsx)(bi,{children:(0,q.jsxs)(Ci,{children:[[...r.entries()].map(([e,t])=>(0,q.jsx)(_i,{value:JSON.stringify(e),children:(0,q.jsxs)(`span`,{className:`flex items-center gap-2 flex-1`,children:[(0,q.jsx)(LS,{type:t}),(0,q.jsx)(`span`,{className:`flex-1`,children:e}),(0,q.jsxs)(`span`,{className:`text-muted-foreground text-xs font-semibold`,children:[`(`,t,`)`]})]})},e)),r.size===0&&(0,q.jsx)(_i,{disabled:!0,value:`--`,children:`No columns`})]})})]})})]})})}}),zS=()=>({isMatch:e=>{if(e instanceof et){let t=e.element,n=t instanceof $e?t.description:``,{special:r}=R.parse(n||``);return r===`column_id`}return!1},Component:({schema:e,form:t,path:n})=>{let{label:r}=R.parse(e.description);return(0,q.jsx)(BS,{schema:e,form:t,path:n,itemLabel:r})}}),BS=e=>{let t=(0,J.c)(13),{schema:n,form:r,path:i,itemLabel:a}=e,o=K.use(PS),s;t[0]===n.description?s=t[1]:(s=R.parse(n.description),t[0]=n.description,t[1]=s);let{description:c}=s,u;t[2]===a?u=t[3]:(u=a?`Select ${a.toLowerCase()}`:void 0,t[2]=a,t[3]=u);let d=u,f;t[4]!==o||t[5]!==c||t[6]!==a||t[7]!==d?(f=e=>{let{field:t}=e,n=x(t.value);return(0,q.jsxs)(ce,{children:[(0,q.jsx)(ke,{children:a}),(0,q.jsx)(re,{children:c}),(0,q.jsx)(L,{children:(0,q.jsx)(we,{className:`min-w-[180px]`,placeholder:d,displayValue:String,multiple:!0,chips:!0,keepPopoverOpenOnSelect:!0,value:n,onValueChange:e=>{t.onChange(e)},children:[...o.entries()].map(qS)})}),(0,q.jsx)(xe,{})]})},t[4]=o,t[5]=c,t[6]=a,t[7]=d,t[8]=f):f=t[8];let p;return t[9]!==r.control||t[10]!==i||t[11]!==f?(p=(0,q.jsx)(l,{control:r.control,name:i,render:f}),t[9]=r.control,t[10]=i,t[11]=f,t[12]=p):p=t[12],p},VS=()=>({isMatch:e=>{if(e instanceof et){let{special:t}=R.parse(e.description||``);return t===`column_values`}return!1},Component:({schema:e,form:t,path:n})=>{let{label:r,description:i,placeholder:a}=R.parse(e.description),o=K.use(FS),s=K.use(IS),{data:c,isPending:u}=Ko(()=>s({column:o}),[o]),d=c?.values||[];if(d.length===0&&!u)return(0,q.jsx)(l,{control:t.control,name:n,render:({field:e})=>(0,q.jsxs)(ce,{children:[(0,q.jsx)(ke,{children:r}),(0,q.jsx)(re,{children:i}),(0,q.jsx)(L,{children:(0,q.jsx)(uo,{...e,value:e.value,onValueChange:e.onChange,className:`my-0`,placeholder:a})}),(0,q.jsx)(xe,{})]})});let f=d.map(String);return(0,q.jsx)(l,{control:t.control,name:n,render:({field:e})=>(0,q.jsxs)(ce,{children:[(0,q.jsx)(ke,{className:`whitespace-pre`,children:r}),(0,q.jsx)(re,{children:i}),(0,q.jsx)(L,{children:(0,q.jsx)(we,{className:`min-w-[180px]`,placeholder:a,multiple:!1,displayValue:e=>e,value:Array.isArray(e.value)?e.value[0]:e.value,onValueChange:e.onChange,children:f.map(e=>(0,q.jsx)(Oe,{value:e,children:e},e))})}),(0,q.jsx)(xe,{})]})})}}),HS=()=>({isMatch:e=>{let{special:t}=R.parse(e.description||``);return t===`column_values`&&e instanceof et},Component:({schema:e,form:t,path:n})=>{let r=K.use(FS),i=K.use(IS),{data:a,isPending:o}=Ko(()=>i({column:r}),[r]),s=a?.values||[];if(s.length===0&&!o)return(0,q.jsx)(l,{control:t.control,name:n,render:({field:t})=>(0,q.jsxs)(ce,{children:[(0,q.jsx)(ke,{children:e.description}),(0,q.jsx)(L,{children:(0,q.jsx)(I,{...t})}),(0,q.jsx)(xe,{})]})});let c=s.map(String);return(0,q.jsx)(l,{control:t.control,name:n,render:({field:t})=>{let n=x(t.value);return(0,q.jsxs)(ce,{children:[(0,q.jsx)(ke,{children:e.description}),(0,q.jsx)(L,{children:(0,q.jsx)(N,{...t,value:n,options:c})}),(0,q.jsx)(xe,{})]})}})}}),US=e=>{let t=(0,J.c)(4),{className:n}=e,r;t[0]===n?r=t[1]:(r=G(`text-destructive text-xs w-[16px]`,n),t[0]=n,t[1]=r);let i;return t[2]===r?i=t[3]:(i=(0,q.jsx)(Ee,{className:r}),t[2]=r,t[3]=i),i},WS=()=>({isMatch:e=>{if(e instanceof tt){let{special:t}=R.parse(e.description||``);return t===`column_filter`}return!1},Component:({schema:e,form:t,path:n})=>(0,q.jsx)(GS,{schema:e,form:t,path:n})}),GS=e=>{let t=(0,J.c)(25),{path:n,form:r,schema:i}=e,a;t[0]===i.description?a=t[1]:(a=R.parse(i.description),t[0]=i.description,t[1]=a);let{description:o}=a,s=K.use(PS),c=Lt.entries(i.shape).find(JS)?.[1],u;t[2]===n?u=t[3]:(u={name:n},t[2]=n,t[3]=u);let{column_id:f,operator:p}=d(u),m=RS(),h=[S({schema:c,form:r,path:`${n}.column_id`,renderers:[m]})],g,_;if(t[4]!==f||t[5]!==s||t[6]!==r||t[7]!==n?(g=()=>{let e=iy(s.get(f)),t=r.getValues(`${n}.operator`);e.includes(t)||(r.setValue(`${n}.operator`,e[0]),r.setValue(`${n}.value`,void 0))},_=[f,s,r,n],t[4]=f,t[5]=s,t[6]=r,t[7]=n,t[8]=g,t[9]=_):(g=t[8],_=t[9]),(0,K.useEffect)(g,_),f!=null){let e;t[10]!==f||t[11]!==s?(e=iy(s.get(f)),t[10]=f,t[11]=s,t[12]=e):e=t[12];let i=e;if(i.length===0){let e;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,q.jsxs)(`div`,{className:`text-muted-foreground text-xs font-semibold`,children:[(0,q.jsx)(ke,{className:`whitespace-pre`,children:` `}),(0,q.jsx)(`p`,{children:`This column type does not support filtering.`})]},`no_operator`),t[13]=e):e=t[13],h.push(e)}else{let e=`${n}.operator`,a;t[14]!==o||t[15]!==i?(a=e=>{let{field:t}=e;return(0,q.jsxs)(ce,{children:[(0,q.jsx)(ke,{className:`whitespace-pre`,children:` `}),(0,q.jsx)(re,{children:o}),(0,q.jsx)(L,{children:(0,q.jsxs)(Ti,{"data-testid":`marimo-plugin-data-frames-filter-operator-select`,value:t.value,onValueChange:t.onChange,children:[(0,q.jsx)(wi,{className:`min-w-[140px]`,children:(0,q.jsx)(pi,{placeholder:`--`})}),(0,q.jsx)(bi,{children:(0,q.jsx)(Ci,{children:i.map(YS)})})]})}),(0,q.jsx)(xe,{})]})},t[14]=o,t[15]=i,t[16]=a):a=t[16];let s;t[17]!==r.control||t[18]!==e||t[19]!==a?(s=(0,q.jsx)(l,{control:r.control,name:e,render:a},`operator`),t[17]=r.control,t[18]=e,t[19]=a,t[20]=s):s=t[20],h.push(s)}}if(p!=null){let e=ay(s.get(f),p);e.length===1&&h.push((0,q.jsx)(K.Fragment,{children:S({schema:e[0],form:r,path:`${n}.value`,renderers:[]})},`value`))}let v=()=>(0,q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,q.jsx)(`div`,{className:G(`flex flex-row gap-2`),children:h}),(0,q.jsx)(xe,{})]}),y;return t[21]!==r.control||t[22]!==n||t[23]!==v?(y=(0,q.jsx)(l,{control:r.control,name:n,render:v}),t[21]=r.control,t[22]=n,t[23]=v,t[24]=y):y=t[24],y},KS=[RS(),zS(),VS(),HS(),WS()];function qS(e){let[t,n]=e;return(0,q.jsx)(Oe,{value:t,children:(0,q.jsxs)(`span`,{className:`flex items-center gap-2 flex-1`,children:[(0,q.jsx)(LS,{type:n}),(0,q.jsx)(`span`,{className:`flex-1`,children:t}),(0,q.jsxs)(`span`,{className:`text-muted-foreground text-xs font-semibold`,children:[`(`,n,`)`]})]})},t)}function JS(e){let[t]=e;return t===`column_id`}function YS(e){return(0,q.jsx)(_i,{value:e,children:Fo.startCase(e)},e)}function XS(e,t,n=0){if(!t||t.length===0)return e;let r=t[Math.min(n,t.length-1)];if(!r)return e;let i=new Map;for(let[e,[t]]of r)i.set(e,t);return i}var ZS=({initialValue:e,columns:t,onChange:n,onInvalidChange:r,getColumnValues:i,columnTypesPerStep:a,lazy:o,ref:c})=>{let l=D({resolver:y(Dy),defaultValues:e,mode:`onChange`,reValidateMode:`onChange`}),{handleSubmit:u,watch:d,control:f,formState:p}=l,m=s(e=>{n(e)}),h=s(e=>{r(e)}),_=s(()=>{u(e=>{m(e),o&&l.reset(e,{keepValues:!0})},()=>{h(l.getValues())})()});(0,K.useImperativeHandle)(c,()=>({submit:_}),[]),(0,K.useEffect)(()=>{if(o)return;let e=d(()=>{_()});return()=>e.unsubscribe()},[d,_,o]);let[v,b]=K.useState(e.transforms.length>0?0:void 0),x=g({control:f,name:`transforms`}),S=l.watch(`transforms`),w=v===void 0?void 0:S[v]?.type,T=Ey.options.find(e=>C(e).value===w),E=(0,K.useMemo)(()=>XS(t,a,v),[t,S,v]),O=e=>{let t=Te(e),n=x.fields.length;x.append(t),b(n)};return(0,q.jsx)(PS,{value:E,children:(0,q.jsx)(IS,{value:i,children:(0,q.jsxs)(`form`,{onSubmit:e=>e.preventDefault(),onKeyDown:o?e=>e.key===`Enter`&&e.preventDefault():void 0,className:`relative flex flex-row max-h-[400px] overflow-hidden bg-background`,children:[(0,q.jsx)(QS,{items:l.watch(`transforms`),selected:v,onSelect:e=>{b(e)},onDelete:e=>{x.remove(e);let t=e-1;b(Math.max(t,0))},onAdd:O}),(0,q.jsxs)(`div`,{className:`flex flex-col flex-1 p-4 overflow-auto min-h-[200px] border-l`,children:[v!==void 0&&T&&(0,q.jsx)(P,{form:l,schema:T,path:`transforms.${v}`,renderers:KS},`transforms.${v}`),(v===void 0||!T)&&(0,q.jsxs)(`div`,{className:`flex flex-col items-center justify-center grow gap-3`,children:[(0,q.jsx)(Hl,{className:`w-8 h-8 text-muted-foreground`}),(0,q.jsx)($S,{onAdd:O,children:(0,q.jsx)(Ui,{"data-testid":`marimo-plugin-data-frames-add-transform`,variant:`text`,size:`xs`,children:(0,q.jsx)(`div`,{className:`text-sm`,children:`Select a transform to begin`})})})]})]}),o&&(0,q.jsxs)(`div`,{className:`absolute bottom-0 right-0 border-l border-t rounded-tl-sm flex flex-row items-center gap-1 p-1.5 pr-1`,children:[(0,q.jsx)(Ui,{"data-testid":`marimo-plugin-data-frames-apply`,variant:p.isDirty?`warn`:`outline`,size:`xs`,onClick:_,className:`h-6`,children:`Apply`}),(0,q.jsx)(Vi,{delayDuration:100,content:(0,q.jsxs)(`div`,{className:`flex flex-col gap-1.5 text-xs text-muted-foreground max-w-96 text-pretty`,children:[(0,q.jsxs)(`p`,{children:[`This dataframe is marked lazy to improve performance.`,` `,(0,q.jsxs)(`span`,{children:[`Click`,` `,(0,q.jsx)(`span`,{className:`px-1 mr-1 rounded border border-border`,children:`Apply`}),`to apply the transforms.`]})]}),(0,q.jsxs)(`p`,{children:[`Pass`,` `,(0,q.jsx)(`code`,{className:`bg-muted px-1 py-0.5 rounded-sm`,children:`lazy=False`}),` `,`to`,` `,(0,q.jsx)(`code`,{className:`bg-muted px-1 py-0.5 rounded-sm`,children:`mo.ui.dataframe`}),` `,`to automatically apply transformations.`]})]}),children:(0,q.jsx)(Se,{className:`w-3 h-3 text-muted-foreground hover:text-foreground cursor-help`})})]})]})})})},QS=e=>{let t=(0,J.c)(17),{items:n,selected:r,onAdd:i,onSelect:a,onDelete:o}=e,s;if(t[0]!==n||t[1]!==o||t[2]!==a||t[3]!==r){let e;t[5]!==o||t[6]!==a||t[7]!==r?(e=(e,t)=>(0,q.jsxs)(`div`,{onClick:()=>{a(t)},className:G(`flex flex-row min-h-[40px] items-center px-2 cursor-pointer hover:bg-accent/50 text-sm overflow-hidden hover-actions-parent border border-muted border-l-2 border-l-transparent`,{"border-l-primary bg-accent text-accent-foreground":r===t}),children:[(0,q.jsx)(`div`,{className:`grow text-ellipsis`,children:Fo.startCase(e.type)}),(0,q.jsx)(vo,{className:`w-3 h-3 hover-action text-muted-foreground hover:text-destructive`,onClick:e=>{o(t),e.stopPropagation()}})]},`${JSON.stringify(e)}-${t}`),t[5]=o,t[6]=a,t[7]=r,t[8]=e):e=t[8],s=n.map(e),t[0]=n,t[1]=o,t[2]=a,t[3]=r,t[4]=s}else s=t[4];let c;t[9]===s?c=t[10]:(c=(0,q.jsx)(`div`,{className:`flex flex-col overflow-y-auto grow`,children:s}),t[9]=s,t[10]=c);let l;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,q.jsxs)(Ui,{"data-testid":`marimo-plugin-data-frames-add-transform`,variant:`text`,className:`w-full rounded-none m-0 hover:text-accent-foreground`,size:`xs`,children:[(0,q.jsx)(io,{className:`w-3 h-3 mr-1`}),`Add`]}),t[11]=l):l=t[11];let u;t[12]===i?u=t[13]:(u=(0,q.jsx)(`div`,{className:`flex flex-row shrink-0`,children:(0,q.jsx)($S,{onAdd:i,children:l})}),t[12]=i,t[13]=u);let d;return t[14]!==c||t[15]!==u?(d=(0,q.jsxs)(`div`,{className:`flex flex-col overflow-y-hidden w-[180px] shadow-xs h-full`,children:[c,u]}),t[14]=c,t[15]=u,t[16]=d):d=t[16],d},$S=e=>{let t=(0,J.c)(12),{onAdd:n,children:r}=e,i;t[0]===r?i=t[1]:(i=(0,q.jsx)(rr,{asChild:!0,children:r}),t[0]=r,t[1]=i);let a,o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,q.jsx)(nr,{children:`Add Transform`}),o=(0,q.jsx)(er,{}),t[2]=a,t[3]=o):(a=t[2],o=t[3]);let s;t[4]===n?s=t[5]:(s=Object.values(Ey.options).map(e=>{let t=C(e),r=eC[t.value];return(0,q.jsxs)($n,{onSelect:t=>{t.stopPropagation(),n(e)},children:[(0,q.jsx)(r,{className:`w-3.5 h-3.5 mr-2`}),(0,q.jsx)(`span`,{children:Fo.startCase(t.value)})]},t.value)}),t[4]=n,t[5]=s);let c;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,q.jsx)($n,{onSelect:tC,children:(0,q.jsx)(`span`,{className:`underline text-primary text-xs cursor-pointer`,children:`Request a transform`})},`_request_`),t[6]=c):c=t[6];let l;t[7]===s?l=t[8]:(l=(0,q.jsxs)(ir,{className:`w-56`,children:[a,o,(0,q.jsxs)(tr,{children:[s,c]})]}),t[7]=s,t[8]=l);let u;return t[9]!==i||t[10]!==l?(u=(0,q.jsxs)(ar,{modal:!1,children:[i,l]}),t[9]=i,t[10]=l,t[11]=u):u=t[11],u},eC={aggregate:fo,column_conversion:me,filter_rows:Sr,group_by:Bl,rename_column:no,select_columns:Ul,sort_column:Nl,shuffle_rows:Vl,sample_rows:Ll,explode_columns:Il,expand_dict:Ra,unique:Rl,pivot:F};function tC(e){e.stopPropagation(),window.open(`https://github.com/marimo-team/marimo/issues/new?title=New%20dataframe%20transform:&labels=enhancement&template=feature_request.yaml`,`_blank`)}var nC=Cv(`marimo-dataframe`).withData(H({label:B().nullish(),pageSize:z().default(5),showDownload:V().default(!0),dataframeName:B().optional(),columns:U(Ue([B().or(z()),B(),B()])).transform(e=>{let t=new Map;return e.forEach(([e,n])=>{t.set(e,n)}),t}),lazy:V().default(!1)})).withFunctions({get_dataframe:Pv.input(H({})).output(H({url:B(),total_rows:z(),row_headers:cy,field_types:cy,column_types_per_step:U(cy),python_code:B().nullish(),sql_code:B().nullish()})),get_column_values:Pv.input(H({column:B()})).output(H({values:U(Qe()),too_many_values:V()})),search:Pv.input(H({sort:U(H({by:B(),descending:V()})).optional(),query:B().optional(),filters:hy.optional(),page_number:z(),page_size:z()})).output(H({data:We([B(),U(H({}).passthrough())]),total_rows:z()})),download_as:Rx,download_geojson:zx,get_export_metadata:Vx,get_size_bytes:Pv.input(H({})).output(H({size_bytes:z().nullish()}))}).renderer(e=>(0,q.jsx)(dS,{children:(0,q.jsx)(iC,{...e.data,...e.functions,value:e.value,setValue:e.setValue,host:e.host})})),rC={transforms:[]},iC=(0,K.memo)(e=>{let t=(0,J.c)(72),{columns:n,pageSize:r,showDownload:a,lazy:o,value:s,setValue:c,get_dataframe:l,get_column_values:u,search:d,download_as:f,download_geojson:p,get_export_metadata:m,get_size_bytes:h,host:g}=e,_;t[0]===l?_=t[1]:(_=()=>l({}),t[0]=l,t[1]=_);let v=s?.transforms,y;t[2]===v?y=t[3]:(y=[v],t[2]=v,t[3]=y);let{data:b,error:x,isPending:S}=Ko(_,y),C;t[4]===b?C=t[5]:(C=b||{},t[4]=b,t[5]=C);let{url:w,total_rows:T,row_headers:E,field_types:D,column_types_per_step:O,python_code:k,sql_code:A}=C,j=D?.length,[M,N]=(0,K.useState)(s||rC),P=(0,K.useRef)(null),F;t[6]===o?F=t[7]:(F=e=>{o&&e!==`transform`&&P.current?.submit()},t[6]=o,t[7]=F);let I=F,ee=(0,K.useRef)(M),L;t[8]===M?L=t[9]:(L=()=>{ee.current=M},t[8]=M,t[9]=L),(0,K.useEffect)(L);let te;t[10]!==c||t[11]!==s?.transforms.length?(te=()=>{let e=ee.current;s?.transforms.length!==e.transforms.length&&c(e)},t[10]=c,t[11]=s?.transforms.length,t[12]=te):te=t[12];let ne=s?.transforms.length,re;t[13]!==b||t[14]!==c||t[15]!==ne?(re=[b,ne,ee,c],t[13]=b,t[14]=c,t[15]=ne,t[16]=re):re=t[16],(0,K.useEffect)(te,re);let ie;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(ie=(0,q.jsxs)(Mi,{value:`transform`,className:`text-xs py-1`,children:[(0,q.jsx)(fo,{className:`w-3 h-3 mr-2`}),`Transform`]}),t[17]=ie):ie=t[17];let ae;t[18]===k?ae=t[19]:(ae=k&&(0,q.jsxs)(Mi,{value:`python-code`,className:`text-xs py-1`,children:[(0,q.jsx)(Fa,{className:`w-3 h-3 mr-2`}),`Python Code`]}),t[18]=k,t[19]=ae);let oe;t[20]===A?oe=t[21]:(oe=A&&(0,q.jsxs)(Mi,{value:`sql-code`,className:`text-xs py-1`,children:[(0,q.jsx)(Gi,{className:`w-3 h-3 mr-2`}),`SQL Code`]}),t[20]=A,t[21]=oe);let se;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(se=(0,q.jsx)(`div`,{className:`grow`}),t[22]=se):se=t[22];let ce;t[23]!==ae||t[24]!==oe?(ce=(0,q.jsxs)(Pi,{className:`h-8`,children:[ie,ae,oe,se]}),t[23]=ae,t[24]=oe,t[25]=ce):ce=t[25];let le;t[26]===S?le=t[27]:(le=S&&(0,q.jsx)(qa,{size:`small`}),t[26]=S,t[27]=le);let ue;t[28]!==ce||t[29]!==le?(ue=(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[ce,le]}),t[28]=ce,t[29]=le,t[30]=ue):ue=t[30];let de;t[31]!==c||t[32]!==s?(de=e=>{i(e,s)||(c(e),N(e))},t[31]=c,t[32]=s,t[33]=de):de=t[33];let fe;t[34]!==O||t[35]!==n||t[36]!==u||t[37]!==M||t[38]!==o||t[39]!==de?(fe=(0,q.jsx)(Ni,{value:`transform`,className:`mt-1 border rounded-t overflow-hidden`,children:(0,q.jsx)(ZS,{ref:P,initialValue:M,columns:n,onChange:de,onInvalidChange:N,getColumnValues:u,columnTypesPerStep:O,lazy:o})}),t[34]=O,t[35]=n,t[36]=u,t[37]=M,t[38]=o,t[39]=de,t[40]=fe):fe=t[40];let pe;t[41]===k?pe=t[42]:(pe=k&&(0,q.jsx)(Ni,{value:`python-code`,className:`mt-1 border rounded-t overflow-hidden`,children:(0,q.jsx)(Qa,{minHeight:`215px`,maxHeight:`215px`,code:k,language:`python`})}),t[41]=k,t[42]=pe);let me;t[43]===A?me=t[44]:(me=A&&(0,q.jsx)(Ni,{value:`sql-code`,className:`mt-1 border rounded-t overflow-hidden`,children:(0,q.jsx)(Qa,{minHeight:`215px`,maxHeight:`215px`,code:A,language:`sql`})}),t[43]=A,t[44]=me);let he;t[45]!==I||t[46]!==ue||t[47]!==fe||t[48]!==pe||t[49]!==me?(he=(0,q.jsxs)(Fi,{defaultValue:`transform`,onValueChange:I,children:[ue,fe,pe,me]}),t[45]=I,t[46]=ue,t[47]=fe,t[48]=pe,t[49]=me,t[50]=he):he=t[50];let ge;t[51]===x?ge=t[52]:(ge=x&&(0,q.jsx)(_s,{error:x}),t[51]=x,t[52]=ge);let _e=w||``,ve=T??0,ye=j??0,be=E||ko.EMPTY,xe=T&&T>5||!1,Se;t[53]!==f||t[54]!==p||t[55]!==D||t[56]!==m||t[57]!==h||t[58]!==g||t[59]!==r||t[60]!==d||t[61]!==a||t[62]!==_e||t[63]!==ve||t[64]!==ye||t[65]!==be||t[66]!==xe?(Se=(0,q.jsx)(lS,{label:null,className:`rounded-b border-x border-b`,data:_e,hasStableRowId:!1,totalRows:ve,totalColumns:ye,maxColumns:`all`,pageSize:r,pagination:!0,fieldTypes:D,rowHeaders:be,showDownload:a,download_as:f,download_geojson:p,get_export_metadata:m,get_size_bytes:h,showSearch:!1,showFilters:!1,search:d,showColumnSummaries:!1,showDataTypes:!0,get_column_summaries:aC,showPageSizeSelector:xe,showColumnExplorer:!1,showRowExplorer:!0,showChartBuilder:!1,value:ko.EMPTY,setValue:Pt.NOOP,selection:null,lazy:!1,host:g}),t[53]=f,t[54]=p,t[55]=D,t[56]=m,t[57]=h,t[58]=g,t[59]=r,t[60]=d,t[61]=a,t[62]=_e,t[63]=ve,t[64]=ye,t[65]=be,t[66]=xe,t[67]=Se):Se=t[67];let Ce;return t[68]!==he||t[69]!==ge||t[70]!==Se?(Ce=(0,q.jsxs)(`div`,{children:[he,ge,Se]}),t[68]=he,t[69]=ge,t[70]=Se,t[71]=Ce):Ce=t[71],Ce});iC.displayName=`DataFrameComponent`;function aC(){return Promise.resolve({data:null,stats:{},bin_values:{},value_counts:{},show_charts:!1})}var oC=Cv(`marimo-file-browser`).withData(H({initialPath:B(),filetypes:U(B()),selectionMode:B(),multiple:V(),label:B().nullable(),restrictNavigation:V()})).withFunctions({list_directory:Pv.input(H({path:B()})).output(H({files:U(H({id:B(),path:B(),name:B(),is_directory:V()})),total_count:z(),is_truncated:V()}))}).renderer(e=>(0,q.jsx)(lC,{...e.data,...e.functions,host:e.host,value:e.value,setValue:e.setValue})),sC=`..`;function cC(e){let t=(0,J.c)(20),{name:n,isSelected:r,canSelect:i,Icon:a,onSelect:o}=e;if(i){let e=`Select ${n}`,i;t[0]===o?i=t[1]:(i=e=>{o(),e.stopPropagation()},t[0]=o,t[1]=i);let s=!r,c;t[2]===s?c=t[3]:(c=G({"hidden group-hover:flex group-focus:flex":s}),t[2]=s,t[3]=c);let l;t[4]!==r||t[5]!==e||t[6]!==i||t[7]!==c?(l=(0,q.jsx)(p,{checked:r,"aria-label":e,tabIndex:-1,onClick:i,className:c}),t[4]=r,t[5]=e,t[6]=i,t[7]=c,t[8]=l):l=t[8];let u=!r,d;t[9]!==r||t[10]!==u?(d=G(`mr-2`,{hidden:r,"group-hover:hidden group-focus:hidden":u}),t[9]=r,t[10]=u,t[11]=d):d=t[11];let f;t[12]!==a||t[13]!==d?(f=(0,q.jsx)(a,{size:16,className:d}),t[12]=a,t[13]=d,t[14]=f):f=t[14];let m;return t[15]!==l||t[16]!==f?(m=(0,q.jsxs)(q.Fragment,{children:[l,f]}),t[15]=l,t[16]=f,t[17]=m):m=t[17],m}let s;return t[18]===a?s=t[19]:(s=(0,q.jsx)(a,{size:16,className:`mr-2`}),t[18]=a,t[19]=s),s}var lC=({value:e,setValue:t,initialPath:n,selectionMode:r,multiple:i,label:a,restrictNavigation:o,list_directory:s,host:c})=>{let[l,u]=Kr(n),[d,f]=(0,K.useState)(!1),[p,m]=(0,K.useState)(!1),[h,g]=(0,K.useState)(0),y=(0,K.useRef)([]),b=(0,K.useRef)(null),x=(0,K.useRef)(!1),S=c.closest(`[${_}]`)?.getAttribute(_),{data:C,error:w,isPending:T}=Ko(()=>s({path:l}),[l,S,s]);(0,K.useEffect)(()=>{if(!T){m(!1);return}let e=window.setTimeout(()=>{m(!0)},200);return()=>{window.clearTimeout(e)}},[T]);let E=`${l}::${S}`,[D,O]=(0,K.useState)({listingKey:E,list_directory:s});(D.listingKey!==E||D.list_directory!==s)&&(O({listingKey:E,list_directory:s}),g(0)),(0,K.useLayoutEffect)(()=>{x.current&&(x.current=!1,y.current[0]?.focus())},[E]);let k=C?.files??[],A=new Set(e.map(e=>e.path)),j=r===`directory`||r===`all`,M=r===`file`||r===`all`,N=k.filter(e=>j&&e.is_directory||M&&!e.is_directory),P=N.length>0&&N.every(e=>A.has(e.path));if(!C&&w)return(0,q.jsx)(vs,{kind:`danger`,children:w.message});let F=qi.guessDeliminator(n).deliminator,I=e.map(e=>(0,q.jsx)(`li`,{children:e.path},e.id));function ee(e){if(d)return;if(f(!0),e===sC){if(l===F){f(!1);return}e=Ki.dirname(l),e===``&&(e=F)}let t=e.length<n.length;if(o&&t){So({title:`Access denied`,description:`Access to directories outside initial path is restricted.`,variant:`danger`}),f(!1);return}x.current=b.current?.contains(document.activeElement)??!1,u(e),f(!1)}function L({path:e,name:t,isDirectory:n}){return{id:e,name:t,path:e,is_directory:n}}function te({path:n,name:r,isDirectory:a}){let o=L({path:n,name:r,isDirectory:a});A.has(n)?t(e.filter(e=>e.path!==n)):t(i?[...e,o]:[o])}function ne(){t(e.filter(e=>Ki.dirname(e.path)!==l))}function re(){let n=[];for(let e of k){if(!j&&e.is_directory||A.has(e.path))continue;let t=L({path:e.path,name:e.name,isDirectory:e.is_directory});n.push(t)}t([...e,...n])}let ie=[{key:`parent`,name:sC,Icon:zl,isSelected:!1,canSelect:!1,onPrimary:()=>ee(sC),onToggleSelect:null},...k.map(e=>{let t=e.path;t.startsWith(`//`)&&(t=t.slice(1));let n=j&&e.is_directory||M&&!e.is_directory,r=A.has(t),i=e.is_directory?`directory`:za(e.name),a=()=>te({path:t,name:e.name,isDirectory:e.is_directory});return{key:e.id,name:e.name,Icon:Ba[i],isSelected:r,canSelect:n,onPrimary:e.is_directory?()=>ee(t):n?a:()=>{},onToggleSelect:n?a:null}})];function ae(e){g(e),y.current[e]?.focus()}function oe(e,t){let n=ie.length-1;switch(e.key){case`ArrowDown`:e.preventDefault(),ae(Math.min(t+1,n));break;case`ArrowUp`:e.preventDefault(),ae(Math.max(t-1,0));break;case`Home`:e.preventDefault(),ae(0);break;case`End`:e.preventDefault(),ae(n);break;case`Enter`:e.preventDefault(),ie[t].onPrimary();break;case` `:e.preventDefault(),ie[t].onToggleSelect?.()}}let{protocol:se,parentDirectories:ce}=js({path:l,delimiter:F,initialPath:n,restrictNavigation:o}),le=ce.toReversed().map(e=>({path:e,name:e===se?se:e.split(F).findLast(Boolean)??e})),ue=r===`all`?v.of(`file`,`folder`):r===`directory`?v.of(`folder`):v.of(`file`);return(0,q.jsxs)(`div`,{children:[w&&(0,q.jsx)(vs,{kind:`danger`,children:w.message}),(()=>{let e=a??`Select ${ue.join(` and `,2)}...`,t=(0,q.jsx)(mi,{children:Xo({html:e})});return i?(0,q.jsxs)(`div`,{className:`flex items-center justify-between border px-2`,children:[(0,q.jsx)(`div`,{className:`mb-1`,children:t}),(0,q.jsx)(`div`,{children:(0,q.jsx)(Ui,{size:`xs`,variant:`link`,onClick:P?ne:re,children:P?`Deselect all`:`Select all`})})]}):t})(),(0,q.jsx)(`nav`,{"aria-label":`Current directory`,className:`mt-2`,children:(0,q.jsx)(`ol`,{className:`flex flex-wrap items-center gap-0.5 text-sm`,children:le.map((e,t)=>{let n=t===le.length-1;return(0,q.jsxs)(`li`,{className:`flex items-center gap-0.5`,children:[t>0&&(0,q.jsx)(Pa,{size:14,className:`text-muted-foreground shrink-0`,"aria-hidden":!0}),(0,q.jsx)(`button`,{type:`button`,title:e.path,"aria-current":n?`page`:void 0,onClick:()=>{n||ee(e.path)},className:G(`rounded px-1 focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring`,n?`font-medium cursor-default`:`text-muted-foreground hover:bg-accent hover:text-foreground`),children:e.name})]},e.path)})})}),C&&typeof C.total_count==`number`&&(0,q.jsx)(`div`,{className:`text-xs text-muted-foreground mt-1 px-1`,children:C.is_truncated?`Showing ${k.length} of ${C.total_count} items`:`${C.total_count} ${C.total_count===1?`item`:`items`}`}),(0,q.jsxs)(`div`,{className:`mt-3 overflow-y-auto w-full border relative`,style:{height:`14rem`},"aria-busy":T,"aria-live":`polite`,children:[p&&(0,q.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-2 bg-background/80 text-xs text-muted-foreground pointer-events-none z-10`,role:`status`,children:[(0,q.jsx)(qa,{size:`small`}),(0,q.jsx)(`span`,{children:`Listing files...`})]}),(0,q.jsx)(Es,{ref:b,className:`cursor-pointer table-fixed`,role:`grid`,"aria-label":`File browser`,"aria-multiselectable":i,children:(0,q.jsx)(Cs,{children:ie.map((e,t)=>(0,q.jsxs)(ws,{role:`row`,ref:e=>{y.current[t]=e},tabIndex:t===h?0:-1,onFocus:()=>g(t),onKeyDown:e=>oe(e,t),className:G(`hover:bg-accent group select-none focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-inset`,{"bg-primary/25 hover:bg-primary/35":e.isSelected}),"aria-selected":e.canSelect?e.isSelected:void 0,onClick:e.onPrimary,children:[(0,q.jsx)(Ts,{role:`gridcell`,className:`w-[50px] pl-4`,children:(0,q.jsx)(cC,{name:e.name,isSelected:e.isSelected,canSelect:e.canSelect,Icon:e.Icon,onSelect:()=>e.onToggleSelect?.()})}),(0,q.jsx)(Ts,{role:`gridcell`,children:e.name})]},e.key))})})]}),(0,q.jsx)(`div`,{className:`mt-4`,children:e.length>0&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsxs)(`span`,{className:`font-bold text-xs`,children:[e.length,` `,ue.join(` or `,e.length),` `,`selected`]}),(0,q.jsx)(`button`,{className:G(`text-xs text-destructive hover:underline`),onClick:()=>t([]),type:`button`,children:`clear all`})]}),(0,q.jsx)(`div`,{className:`markdown`,children:(0,q.jsx)(`ul`,{style:{marginBlock:0},className:`m-0 text-xs text-muted-foreground`,children:I})})]})})]})},uC=class{tagName=`marimo-file`;validator=H({filetypes:U(B()),multiple:V(),kind:Ze([`button`,`area`]),label:B().nullable(),max_size:z()});render(e){return(0,q.jsx)(fC,{label:e.data.label,filetypes:e.data.filetypes,multiple:e.data.multiple,kind:e.data.kind,value:e.value,setValue:e.setValue,max_size:e.data.max_size})}};function dC(e){let t={},n=(e,n)=>{Object.hasOwn(t,e)?t[e].push(n):t[e]=[n]};return e.forEach(e=>{switch(e){case`.png`:case`.jpg`:case`.jpeg`:case`.gif`:case`.avif`:case`.bmp`:case`.ico`:case`.svg`:case`.tiff`:case`.webp`:n(`image/*`,e);break;case`.avi`:case`.mp4`:case`.mpeg`:case`.ogg`:case`.webm`:n(`video/*`,e);break;case`.pdf`:n(`application/pdf`,e);break;case`.csv`:n(`text/csv`,e);break;default:n(`text/plain`,e)}}),t}var fC=e=>{let t=(0,J.c)(78),n;t[0]===e.filetypes?n=t[1]:(n=dC(e.filetypes),t[0]=e.filetypes,t[1]=n);let r=n,{setValue:i,kind:a,multiple:o,value:s,max_size:c}=e,l;t[2]===i?l=t[3]:(l=e=>{ya(e).then(e=>{i(e)}).catch(_C)},t[2]=i,t[3]=l);let u;t[4]!==r||t[5]!==c||t[6]!==o||t[7]!==l?(u={accept:r,multiple:o,maxSize:c,onError:pC,onDropRejected:gC,onDrop:l},t[4]=r,t[5]=c,t[6]=o,t[7]=l,t[8]=u):u=t[8];let{getRootProps:d,getInputProps:f,isFocused:p,isDragAccept:m,isDragReject:h}=xo(u),g;t[9]===s?g=t[10]:(g=s.map(vC),t[9]=s,t[10]=g);let _;t[11]===g?_=t[12]:(_=(0,q.jsx)(`ul`,{children:g}),t[11]=g,t[12]=_);let v=_,y=s.length>0;if(a===`button`){let n=e.label??`Upload`,r;t[13]===d?r=t[14]:(r=d({}),t[13]=d,t[14]=r);let a;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(a=Hi({variant:`secondary`,size:`xs`}),t[15]=a):a=t[15];let o;t[16]===n?o=t[17]:(o=Xo({html:n}),t[16]=n,t[17]=o);let c;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,q.jsx)(bo,{size:14,className:`ml-2`}),t[18]=c):c=t[18];let l;t[19]!==r||t[20]!==a||t[21]!==o?(l=(0,q.jsxs)(`button`,{"data-testid":`marimo-plugin-file-upload-button`,...r,className:a,children:[o,c]}),t[19]=r,t[20]=a,t[21]=o,t[22]=l):l=t[22];let u;t[23]===f?u=t[24]:(u=f({}),t[23]=f,t[24]=u);let p;t[25]===u?p=t[26]:(p=(0,q.jsx)(`input`,{...u,type:`file`}),t[25]=u,t[26]=p);let m;t[27]!==i||t[28]!==y||t[29]!==v||t[30]!==s.length?(m=y?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Vi,{content:v,children:(0,q.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`Uploaded`,` `,(0,q.jsxs)(`span`,{className:`underline cursor-pointer`,children:[s.length,` `,s.length===1?`file`:`files`,`.`]})]})}),(0,q.jsx)(`button`,{className:G(`text-xs text-destructive hover:underline`),onClick:()=>i([]),type:`button`,children:`Click to clear files.`})]}):null,t[27]=i,t[28]=y,t[29]=v,t[30]=s.length,t[31]=m):m=t[31];let h;return t[32]!==p||t[33]!==m||t[34]!==l?(h=(0,q.jsxs)(`div`,{className:`flex flex-row items-center justify-start gap-2`,children:[l,p,m]}),t[32]=p,t[33]=m,t[34]=l,t[35]=h):h=t[35],h}let b=e.label??`Drag and drop ${o?`files`:`a file`} here, or click to open file browser`,x=!p&&`border-input/60 border-dashed`,S=p&&`border-solid`,C;t[36]!==x||t[37]!==S?(C=G(`hover:text-primary`,`mt-3 mb-2 w-full flex flex-col items-center justify-center `,`px-6 py-6 sm:px-8 sm:py-8 md:py-10 md:px-16`,`border rounded-sm`,`text-sm text-muted-foreground`,`hover:cursor-pointer`,`active:shadow-xs-solid`,`focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:border-accent`,x,S),t[36]=x,t[37]=S,t[38]=C):C=t[38];let w;t[39]===d?w=t[40]:(w=d(),t[39]=d,t[40]=w);let T;t[41]===f?T=t[42]:(T=f(),t[41]=f,t[42]=T);let E;t[43]===T?E=t[44]:(E=(0,q.jsx)(`input`,{...T}),t[43]=T,t[44]=E);let D;t[45]!==b||t[46]!==y?(D=y?(0,q.jsxs)(`span`,{children:[`To re-upload: `,Xo({html:b})]}):(0,q.jsx)(`span`,{className:`mt-0`,children:Xo({html:b})}),t[45]=b,t[46]=y,t[47]=D):D=t[47];let O=m&&`text-primary`,k=h&&`text-destructive`,A;t[48]!==O||t[49]!==k?(A=G(O,k),t[48]=O,t[49]=k,t[50]=A):A=t[50];let j;t[51]===A?j=t[52]:(j=(0,q.jsx)(bo,{strokeWidth:1.4,className:A}),t[51]=A,t[52]=j);let M=m&&`text-primary`,N=h&&`text-destructive`,P;t[53]!==M||t[54]!==N?(P=G(M,N),t[53]=M,t[54]=N,t[55]=P):P=t[55];let F;t[56]===P?F=t[57]:(F=(0,q.jsx)(Hl,{strokeWidth:1.4,className:P}),t[56]=P,t[57]=F);let I;t[58]!==j||t[59]!==F?(I=(0,q.jsxs)(`div`,{className:`flex flex-row items-center justify-center grow gap-3`,children:[j,F]}),t[58]=j,t[59]=F,t[60]=I):I=t[60];let ee;t[61]!==D||t[62]!==I?(ee=(0,q.jsxs)(`div`,{className:`flex flex-col items-center justify-center grow gap-3`,children:[D,I]}),t[61]=D,t[62]=I,t[63]=ee):ee=t[63];let L;t[64]!==E||t[65]!==ee||t[66]!==C||t[67]!==w?(L=(0,q.jsxs)(`div`,{className:C,...w,children:[E,ee]}),t[64]=E,t[65]=ee,t[66]=C,t[67]=w,t[68]=L):L=t[68];let te;t[69]!==o||t[70]!==i||t[71]!==y||t[72]!==v||t[73]!==s.length?(te=y?(0,q.jsxs)(`div`,{className:`flex flex-row gap-1`,children:[(0,q.jsxs)(`div`,{className:`text-xs text-muted-foreground`,children:[`Uploaded`,` `,(0,q.jsx)(Vi,{content:v,children:(0,q.jsxs)(`span`,{className:`underline cursor-pointer`,children:[s.length,` `,s.length===1?`file`:`files`,`.`]})})]}),(0,q.jsx)(`span`,{className:`text-xs text-destructive hover:underline hover:cursor-pointer`,children:(0,q.jsxs)(`button`,{className:G(`text-destructive`,`hover:underline`),onClick:()=>i([]),type:`button`,children:[`Click to clear `,o?`files`:`file`,`.`]})})]}):null,t[69]=o,t[70]=i,t[71]=y,t[72]=v,t[73]=s.length,t[74]=te):te=t[74];let ne;return t[75]!==L||t[76]!==te?(ne=(0,q.jsx)(`section`,{children:(0,q.jsxs)(`div`,{className:`flex flex-col items-start justify-start grow gap-3`,children:[L,te]})}),t[75]=L,t[76]=te,t[77]=ne):ne=t[77],ne};function pC(e){W.error(e),So({title:`File upload failed`,description:e.message,variant:`danger`})}function mC(e){return e.message}function hC(e){return(0,q.jsxs)(`div`,{children:[e.file.name,` (`,e.errors.map(mC).join(`, `),`)`]},e.file.name)}function gC(e){So({title:`File upload failed`,description:(0,q.jsx)(`div`,{className:`flex flex-col gap-1`,children:e.map(hC)}),variant:`danger`})}function _C(e){W.error(e),So({title:`File upload failed`,description:`Failed to convert file to base64.`,variant:`danger`})}function vC(e){let[t]=e;return(0,q.jsx)(`li`,{children:t},t)}var yC=Cv(`marimo-form`).withData(H({label:B().nullable(),elementId:B().transform(e=>e),bordered:V().default(!0),loading:V().default(!1),submitButtonLabel:B().default(`Submit`),submitButtonTooltip:B().optional(),submitButtonDisabled:V().default(!1),clearOnSubmit:V().default(!1),showClearButton:V().default(!1),clearButtonLabel:B().default(`Clear`),clearButtonTooltip:B().optional(),shouldValidate:V().optional()})).withFunctions({validate:Pv.input(H({value:Ge()})).output(B().nullish())}).renderer(({data:e,functions:t,...n})=>(0,q.jsx)(xC,{...e,...n,...t})),bC=e=>{let t=(0,J.c)(43),{children:n,currentValue:r,newValue:i,setValue:a,label:o,bordered:s,loading:c,submitButtonLabel:l,submitButtonTooltip:u,submitButtonDisabled:d,clearOnSubmit:f,showClearButton:p,clearButtonLabel:m,clearButtonTooltip:h,validate:g,shouldValidate:_}=e,v=(0,K.useRef)(null),y=i===r,b=y?`secondary`:`action`,[x,S]=(0,K.useState)(null),C;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(C=()=>{v.current&&CC(v.current)},t[0]=C):C=t[0];let w=C,T;t[1]!==f||t[2]!==i||t[3]!==a||t[4]!==_||t[5]!==g?(T=async e=>{if(e.preventDefault(),_){let e=await g({value:i}).catch(e=>{S(e.message??`Error validating`)});if(e!=null){S(e);return}}S(null),a(i),f&&w()},t[1]=f,t[2]=i,t[3]=a,t[4]=_,t[5]=g,t[6]=T):T=t[6];let E=!y&&s,D;t[7]!==s||t[8]!==E?(D=G(`flex flex-col gap-4 rounded-lg py-4 px-8`,{"bg-(--gray-1) shadow-md border border-input":s,"bg-(--amber-1) border-(--amber-7)":E}),t[7]=s,t[8]=E,t[9]=D):D=t[9];let O;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(O=e=>{e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),e.stopPropagation(),v.current?.requestSubmit())},t[10]=O):O=t[10];let k;t[11]===o?k=t[12]:(k=o===null?null:(0,q.jsx)(`div`,{className:`text-center`,children:Xo({html:o})}),t[11]=o,t[12]=k);let A;t[13]===x?A=t[14]:(A=x!=null&&(0,q.jsx)(vs,{kind:`danger`,className:`rounded`,children:x??`Invalid input`}),t[13]=x,t[14]=A);let j;t[15]===n?j=t[16]:(j=(0,q.jsx)(`div`,{children:n}),t[15]=n,t[16]=j);let M;t[17]!==m||t[18]!==h||t[19]!==p?(M=p&&SC((0,q.jsx)(Ui,{"data-testid":`marimo-plugin-form-clear-button`,variant:`text`,onClick:e=>{e.preventDefault(),w()},children:m}),h),t[17]=m,t[18]=h,t[19]=p,t[20]=M):M=t[20];let N=d||c,P;t[21]===c?P=t[22]:(P=c&&(0,q.jsx)(Ka,{className:`h-4 w-4 mr-2 animate-spin`}),t[21]=c,t[22]=P);let F;t[23]!==l||t[24]!==N||t[25]!==P||t[26]!==b?(F=(0,q.jsxs)(Ui,{"data-testid":`marimo-plugin-form-submit-button`,variant:b,disabled:N,type:`submit`,children:[P,l]}),t[23]=l,t[24]=N,t[25]=P,t[26]=b,t[27]=F):F=t[27];let I;t[28]!==u||t[29]!==F?(I=SC(F,u),t[28]=u,t[29]=F,t[30]=I):I=t[30];let ee;t[31]!==I||t[32]!==M?(ee=(0,q.jsxs)(`div`,{className:`flex justify-end gap-2 font-code`,children:[M,I]}),t[31]=I,t[32]=M,t[33]=ee):ee=t[33];let L;t[34]!==ee||t[35]!==D||t[36]!==k||t[37]!==A||t[38]!==j?(L=(0,q.jsxs)(`div`,{className:D,onKeyDown:O,children:[k,A,j,ee]}),t[34]=ee,t[35]=D,t[36]=k,t[37]=A,t[38]=j,t[39]=L):L=t[39];let te;return t[40]!==L||t[41]!==T?(te=(0,q.jsx)(`form`,{className:`contents`,ref:v,onSubmit:T,children:L}),t[40]=L,t[41]=T,t[42]=te):te=t[42],te},xC=e=>{let t=(0,J.c)(24),n,r,i,a,o,s;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4],o=t[5],s=t[6]):({elementId:i,value:s,setValue:a,children:n,validate:o,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o,t[6]=s);let c;t[7]===i?c=t[8]:(c=Dt.lookupValue(i),t[7]=i,t[8]=c);let[l,u]=(0,K.useState)(c),d,f;t[9]===i?(d=t[10],f=t[11]):(d=()=>{u(Dt.lookupValue(i))},f=[i],t[9]=i,t[10]=d,t[11]=f),(0,K.useEffect)(d,f);let p=Dt.lookupValue(i);Object.is(p,l)||u(p);let m;t[12]===i?m=t[13]:(m=()=>{let e=e=>{let t=e.detail.element;t===null||!(t instanceof Node)||yv(t)===i&&u(e.detail.value)};return document.addEventListener(fs.TYPE,e),()=>{document.removeEventListener(fs.TYPE,e)}},t[12]=i,t[13]=m);let h;t[14]!==i||t[15]!==a?(h=[i,a],t[14]=i,t[15]=a,t[16]=h):h=t[16],(0,K.useEffect)(m,h);let g;return t[17]!==n||t[18]!==r||t[19]!==l||t[20]!==a||t[21]!==o||t[22]!==s?(g=(0,q.jsx)(bC,{currentValue:s,newValue:l,setValue:a,validate:o,...r,children:n}),t[17]=n,t[18]=r,t[19]=l,t[20]=a,t[21]=o,t[22]=s,t[23]=g):g=t[23],g};function SC(e,t){return t?(0,q.jsx)(Vi,{content:t,children:e}):e}function CC(e){e instanceof HTMLElement&&(e.shadowRoot&&[...e.shadowRoot.children].forEach(CC),[...e.children].forEach(CC),bv(e)&&e.reset())}var wC=`td.bracket-l:before{border-left:2px solid var(--foreground);content:"";pointer-events:none;width:0;position:absolute;top:0;bottom:0;left:-4px}td.bracket-l.bracket-t:before{border-top:2px solid var(--foreground);width:8px;top:-1px}td.bracket-l.bracket-b:before{border-bottom:2px solid var(--foreground);width:8px;bottom:-1px}td.bracket-r:after{border-right:2px solid var(--foreground);content:"";pointer-events:none;width:0;position:absolute;top:0;bottom:0;right:-4px}td.bracket-r.bracket-t:after{border-top:2px solid var(--foreground);width:8px;top:-1px}td.bracket-r.bracket-b:after{border-bottom:2px solid var(--foreground);width:8px;bottom:-1px}`,TC=class{tagName=`marimo-matrix`;cssStyles=[wC];validator=H({initialValue:U(U(z())),label:B().nullable(),minValue:U(U(z())).nullish(),maxValue:U(U(z())).nullish(),step:U(U(z())),precision:z(),rowLabels:U(B()).nullish(),columnLabels:U(B()).nullish(),symmetric:V(),debounce:V().default(!1),scientific:V(),disabled:U(U(V()))});render(e){return(0,q.jsx)(jC,{...e.data,value:e.value,setValue:e.setValue})}},EC=10,DC=10,OC=.1,kC=e=>e.shiftKey?DC:e.altKey?OC:1,AC=(e,t)=>{let n=Number(e.toFixed(12)),r=2**-52*Math.max(Math.abs(e),Math.abs(t))*100;return Math.abs(e-n)<=r?n:e},jC=e=>{let t=(0,J.c)(99),{value:n,setValue:r,label:i,minValue:a,maxValue:o,step:s,precision:c,rowLabels:l,columnLabels:u,symmetric:d,debounce:f,scientific:p,disabled:m}=e,h=(0,K.useRef)(null),[g,_]=(0,K.useState)(null),[v,y]=(0,K.useState)(n),b,x;t[0]===n?(b=t[1],x=t[2]):(b=()=>{y(n)},x=[n],t[0]=n,t[1]=b,t[2]=x),(0,K.useEffect)(b,x);let S=g==null?n:v,[C,w]=(0,K.useState)(null),T=(0,K.useRef)(null),E=(0,K.useRef)(null),D;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(D=e=>{T.current=e,w(e)},t[3]=D):D=t[3];let O=D,k;t[4]!==c||t[5]!==p?(k=e=>p?e.toExponential(c):e.toFixed(c),t[4]=c,t[5]=p,t[6]=k):k=t[6];let A=k,j;t[7]!==o||t[8]!==a?(j=(e,t,n)=>{let r=e;return a!=null&&(r=Math.max(r,a[t][n])),o!=null&&(r=Math.min(r,o[t][n])),r},t[7]=o,t[8]=a,t[9]=j):j=t[9];let M=j,N;t[10]!==M||t[11]!==d?(N=(e,t,n,r)=>{let i=d&&t!==n,a=M(r,t,n);if(i&&(a=M(a,n,t)),a===e[t][n])return null;let o=e.map(MC);return o[t][n]=a,i&&(o[n][t]=a),o},t[10]=M,t[11]=d,t[12]=N):N=t[12];let P=N,F;t[13]!==m||t[14]!==n?(F=(e,t,r)=>{m[e][t]||(h.current=null,_(null),O({row:e,col:t,text:r??String(n[e][t]),selectAll:r==null}))},t[13]=m,t[14]=n,t[15]=F):F=t[15];let I=F,ee;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(ee=e=>{E.current=e,e&&(e.focus(),T.current?.selectAll?e.select():e.setSelectionRange(e.value.length,e.value.length))},t[16]=ee):ee=t[16];let L=ee,te;t[17]!==r||t[18]!==n||t[19]!==P?(te=e=>{let t=T.current;if(!t)return;let i=e?E.current?.closest(`td`):null;O(null);let a=t.text.trim(),o=Number(a);if(a!==``&&Number.isFinite(o)){let e=P(n,t.row,t.col,o);e&&(y(e),r(e))}i?.focus()},t[17]=r,t[18]=n,t[19]=P,t[20]=te):te=t[20];let ne=te,re;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(re=()=>{let e=E.current?.closest(`td`);O(null),e?.focus()},t[21]=re):re=t[21];let ie=re,ae;t[22]===ne?ae=t[23]:(ae=e=>{e.stopPropagation(),e.key===`Enter`?(e.preventDefault(),ne(!0)):e.key===`Escape`&&(e.preventDefault(),ie())},t[22]=ne,t[23]=ae);let oe=ae,se;t[24]!==m||t[25]!==S||t[26]!==C?(se=(e,t,n)=>{m[t][n]||C!=null||!(e.target instanceof Element)||(e.preventDefault(),e.currentTarget.focus(),e.target.setPointerCapture(e.pointerId),h.current={row:t,col:n,startX:e.clientX,startValue:S[t][n],multiplier:kC(e)},_({row:t,col:n}))},t[24]=m,t[25]=S,t[26]=C,t[27]=se):se=t[27];let ce=se,le;t[28]!==f||t[29]!==S||t[30]!==r||t[31]!==s||t[32]!==P?(le=e=>{let t=h.current;if(!t)return;let n=kC(e);n!==t.multiplier&&(t.startX=e.clientX,t.startValue=S[t.row][t.col],t.multiplier=n);let{row:i,col:a,startX:o,startValue:c}=t,l=e.clientX-o,u=s[i][a]*n,d=Math.round(l/EC),p=P(S,i,a,AC(c+d*u,u));p&&(y(p),f||r(p))},t[28]=f,t[29]=S,t[30]=r,t[31]=s,t[32]=P,t[33]=le):le=t[33];let ue=le,de;t[34]!==f||t[35]!==S||t[36]!==r?(de=()=>{f&&h.current&&r(S),h.current=null,_(null)},t[34]=f,t[35]=S,t[36]=r,t[37]=de):de=t[37];let fe=de,pe;t[38]!==m||t[39]!==S||t[40]!==r||t[41]!==I||t[42]!==s||t[43]!==P?(pe=(e,t,n)=>{if(m[t][n])return;if(e.key===`Enter`||e.key===`F2`){e.preventDefault(),I(t,n);return}if(e.key.length===1&&/[\d.+-]/.test(e.key)&&!e.ctrlKey&&!e.metaKey&&!e.altKey){e.preventDefault(),I(t,n,e.key);return}let i=s[t][n],a;bb162:switch(e.key){case`ArrowUp`:case`ArrowRight`:a=i*kC(e);break bb162;case`ArrowDown`:case`ArrowLeft`:a=-i*kC(e);break bb162;case`PageUp`:a=i*DC;break bb162;case`PageDown`:a=-i*DC;break bb162;default:return}e.preventDefault();let o=P(S,t,n,AC(S[t][n]+a,a));o&&(y(o),r(o))},t[38]=m,t[39]=S,t[40]=r,t[41]=I,t[42]=s,t[43]=P,t[44]=pe):pe=t[44];let me=pe,he=l!=null&&l.length>0,ge=u!=null&&u.length>0,_e=S.length,ve=S[0]?.length??0,ye=i||`Matrix`,be;t[45]!==u||t[46]!==ge||t[47]!==he?(be=ge&&(0,q.jsx)(`thead`,{children:(0,q.jsxs)(`tr`,{children:[he&&(0,q.jsx)(`th`,{"aria-hidden":`true`}),u.map(NC)]})}),t[45]=u,t[46]=ge,t[47]=he,t[48]=be):be=t[48];let xe;if(t[49]!==g?.col||t[50]!==g?.row||t[51]!==u||t[52]!==ne||t[53]!==m||t[54]!==S||t[55]!==C||t[56]!==A||t[57]!==oe||t[58]!==me||t[59]!==ce||t[60]!==he||t[61]!==o||t[62]!==a||t[63]!==ve||t[64]!==_e||t[65]!==l||t[66]!==I){let e;t[68]!==g?.col||t[69]!==g?.row||t[70]!==u||t[71]!==ne||t[72]!==m||t[73]!==C||t[74]!==A||t[75]!==oe||t[76]!==me||t[77]!==ce||t[78]!==he||t[79]!==o||t[80]!==a||t[81]!==ve||t[82]!==_e||t[83]!==l||t[84]!==I?(e=(e,t)=>(0,q.jsxs)(`tr`,{children:[he&&(0,q.jsx)(`th`,{className:`text-right text-sm font-medium text-foreground pr-3 h-8`,children:l[t]}),e.map((e,n)=>{let r=m[t][n],i=g?.row===t&&g?.col===n,s=C!=null&&C.row===t&&C.col===n?C:null,c=l?.[t]??`Row ${t+1}`,d=u?.[n]??`Column ${n+1}`;return(0,q.jsx)(`td`,{className:G(`relative text-center min-w-14 h-8 px-2 transition-colors touch-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-hidden`,r?`cursor-default text-muted-foreground`:s?`cursor-text`:`cursor-ew-resize text-link hover:bg-accent`,(i||s!=null)&&`bg-accent`,n===0&&`bracket-l`,n===ve-1&&`bracket-r`,t===0&&`bracket-t`,t===_e-1&&`bracket-b`),tabIndex:r?-1:0,title:String(e),"aria-label":`${c}, ${d}`,"aria-valuenow":e,"aria-valuemin":a?.[t]?.[n],"aria-valuemax":o?.[t]?.[n],"aria-disabled":r||void 0,onPointerDown:e=>ce(e,t,n),onDoubleClick:()=>I(t,n),onKeyDown:e=>me(e,t,n),"data-testid":`matrix-cell-${t}-${n}`,children:s?(0,q.jsx)(`input`,{ref:L,className:`bg-transparent text-center font-mono text-sm text-foreground outline-none select-text`,style:{width:`${Math.max(s.text.length+2,6)}ch`},value:s.text,onChange:e=>O({...s,text:e.target.value}),onKeyDown:oe,onBlur:()=>ne(!1),onPointerDown:PC,"aria-label":`Edit ${c}, ${d}`,"data-testid":`matrix-input-${t}-${n}`}):A(e)},n)})]},t),t[68]=g?.col,t[69]=g?.row,t[70]=u,t[71]=ne,t[72]=m,t[73]=C,t[74]=A,t[75]=oe,t[76]=me,t[77]=ce,t[78]=he,t[79]=o,t[80]=a,t[81]=ve,t[82]=_e,t[83]=l,t[84]=I,t[85]=e):e=t[85],xe=S.map(e),t[49]=g?.col,t[50]=g?.row,t[51]=u,t[52]=ne,t[53]=m,t[54]=S,t[55]=C,t[56]=A,t[57]=oe,t[58]=me,t[59]=ce,t[60]=he,t[61]=o,t[62]=a,t[63]=ve,t[64]=_e,t[65]=l,t[66]=I,t[67]=xe}else xe=t[67];let Se;t[86]===xe?Se=t[87]:(Se=(0,q.jsx)(`tbody`,{children:xe}),t[86]=xe,t[87]=Se);let Ce;t[88]!==ye||t[89]!==be||t[90]!==Se?(Ce=(0,q.jsxs)(`table`,{className:`font-mono text-sm tabular-nums select-none border-separate border-spacing-0`,role:`group`,"aria-label":ye,children:[be,Se]}),t[88]=ye,t[89]=be,t[90]=Se,t[91]=Ce):Ce=t[91];let we;t[92]!==ue||t[93]!==fe||t[94]!==Ce?(we=(0,q.jsx)(`div`,{className:`relative inline-block`,"data-testid":`marimo-plugin-matrix`,onPointerMove:ue,onPointerUp:fe,onPointerCancel:fe,children:Ce}),t[92]=ue,t[93]=fe,t[94]=Ce,t[95]=we):we=t[95];let Te;return t[96]!==i||t[97]!==we?(Te=(0,q.jsx)(kv,{label:i,align:`top`,className:`items-center`,children:we}),t[96]=i,t[97]=we,t[98]=Te):Te=t[98],Te};function MC(e){return[...e]}function NC(e,t){return(0,q.jsx)(`th`,{className:`text-center text-sm font-medium text-foreground px-2 pb-1`,children:e},t)}function PC(e){return e.stopPropagation()}var FC=e=>{let t=(0,J.c)(12),{onStart:n,onStop:r,status:i,time:a}=e,o;t[0]!==n||t[1]!==i?(o=i===`stopped`&&(0,q.jsx)(Ui,{"data-testid":`audio-recorder-start`,variant:`secondary`,onClick:n,className:`w-[50px]`,children:(0,q.jsx)(Qn,{className:G(`w-6 h-6 border border-input rounded-full`),strokeWidth:1.5,fill:`var(--red-9)`})}),t[0]=n,t[1]=i,t[2]=o):o=t[2];let s;t[3]!==r||t[4]!==i?(s=i===`recording`&&(0,q.jsxs)(Ui,{"data-testid":`audio-recorder-pause`,variant:`secondary`,onClick:r,className:`w-[50px]`,children:[(0,q.jsx)(_o,{className:`w-5 h-5 rounded-sm`,fill:`var(--red-9)`,strokeWidth:1.5}),(0,q.jsx)(Qn,{className:G(`w-6 h-6 absolute opacity-20 animate-ping`),fill:`var(--red-9)`,style:{animationDuration:`1.5s`},strokeWidth:0})]}),t[3]=r,t[4]=i,t[5]=s):s=t[5];let c;t[6]===a?c=t[7]:(c=a&&(0,q.jsxs)(`span`,{className:`text-sm font-bold`,children:[a,`s`]}),t[6]=a,t[7]=c);let l;return t[8]!==o||t[9]!==s||t[10]!==c?(l=(0,q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[o,s,c]}),t[8]=o,t[9]=s,t[10]=c,t[11]=l):l=t[11],l};function IC(){let e=(0,J.c)(14),[t,n]=(0,K.useState)(0),r=(0,K.useRef)(void 0),i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i={minimumFractionDigits:1,maximumFractionDigits:1},e[0]=i):i=e[0];let a=Na(i),o;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>{r.current=window.setInterval(()=>{n(LC)},100)},e[1]=o):o=e[1];let c=s(o),l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=()=>{r.current!=null&&(window.clearInterval(r.current),r.current=void 0)},e[2]=l):l=e[2];let u=s(l),d;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=()=>{n(0)},e[3]=d):d=e[3];let f=s(d),p,m;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(p=()=>()=>{window.clearInterval(r.current)},m=[],e[4]=p,e[5]=m):(p=e[4],m=e[5]),(0,K.useEffect)(p,m);let h;e[6]!==a||e[7]!==t?(h=a.format(t),e[6]=a,e[7]=t,e[8]=h):h=e[8];let g;return e[9]!==f||e[10]!==c||e[11]!==u||e[12]!==h?(g={time:h,start:c,stop:u,clear:f},e[9]=f,e[10]=c,e[11]=u,e[12]=h,e[13]=g):g=e[13],g}function LC(e){return e+.1}function RC(e){let t=(0,J.c)(18),{onDone:n,options:r}=e,[i,a]=(0,K.useState)(`stopped`),o=(0,K.useRef)(void 0),[c,l]=(0,K.useState)(!0),[u,d]=(0,K.useState)(),f=IC(),p;t[0]!==n||t[1]!==r||t[2]!==f?(p=()=>{f.clear(),navigator.mediaDevices.getUserMedia({audio:!0}).then(e=>{let t=new MediaRecorder(e,r);a(`recording`),o.current=t,t.start(),f.start(),t.addEventListener(`dataavailable`,e=>{d(e.data),n?.(e.data),t.stream.getTracks().forEach(BC),o.current=void 0})}).catch(e=>{W.log(e),l(!1)})},t[0]=n,t[1]=r,t[2]=f,t[3]=p):p=t[3];let m=s(p),h;t[4]===f?h=t[5]:(h=()=>{o.current?.stop(),f.stop(),a(`stopped`)},t[4]=f,t[5]=h);let g=s(h),_;t[6]===f?_=t[7]:(_=()=>{a(e=>e===`recording`?(o.current?.pause(),f.stop(),`paused`):e===`paused`?(o.current?.resume(),f.start(),`recording`):e)},t[6]=f,t[7]=_);let v=s(_),y;t[8]===f?y=t[9]:(y=()=>{o.current?.stream.getTracks().forEach(zC),o.current?.stop(),f.stop()},t[8]=f,t[9]=y),wa(y);let b;return t[10]!==c||t[11]!==v||t[12]!==u||t[13]!==i||t[14]!==m||t[15]!==g||t[16]!==f.time?(b={start:m,stop:g,pauseResume:v,allowed:c,recordingBlob:u,recordingStatus:i,recordingTime:f.time,mediaRecorder:o},t[10]=c,t[11]=v,t[12]=u,t[13]=i,t[14]=m,t[15]=g,t[16]=f.time,t[17]=b):b=t[17],b}function zC(e){return e.stop()}function BC(e){return e.stop()}var VC=class{tagName=`marimo-microphone`;validator=H({label:B().nullish()});render(e){return(0,q.jsx)(HC,{...e})}},HC=e=>{let t=(0,J.c)(14),{setValue:n,data:r}=e,i;t[0]===n?i=t[1]:(i={onDone:async e=>{let t=await xa(e,`base64`);n(t)}},t[0]=n,t[1]=i);let{start:a,stop:o,pauseResume:s,recordingStatus:c,recordingTime:l,allowed:u}=RC(i),d;t[2]===u?d=t[3]:(d=!u&&(0,q.jsx)(`div`,{className:`text-destructive text-sm`,children:`Microphone access is disabled. Please allow microphone access in your browser.`}),t[2]=u,t[3]=d);let f;t[4]!==s||t[5]!==c||t[6]!==l||t[7]!==a||t[8]!==o?(f=(0,q.jsx)(FC,{onStart:a,onStop:o,onPause:s,status:c,time:l}),t[4]=s,t[5]=c,t[6]=l,t[7]=a,t[8]=o,t[9]=f):f=t[9];let p;return t[10]!==r.label||t[11]!==d||t[12]!==f?(p=(0,q.jsxs)(kv,{label:r.label,align:`top`,children:[d,f]}),t[10]=r.label,t[11]=d,t[12]=f,t[13]=p):p=t[13],p},UC=7,WC={n:`ns-resize`,s:`ns-resize`,e:`ew-resize`,w:`ew-resize`,nw:`nwse-resize`,se:`nwse-resize`,ne:`nesw-resize`,sw:`nesw-resize`};function GC(e,t,n){let r=Math.min(t.x,n.x),i=Math.max(t.x,n.x),a=Math.min(t.y,n.y),o=Math.max(t.y,n.y),s=Math.abs(e.x-r)<=UC,c=Math.abs(e.x-i)<=UC,l=Math.abs(e.y-a)<=UC,u=Math.abs(e.y-o)<=UC,d=e.x>=r-UC&&e.x<=i+UC,f=e.y>=a-UC&&e.y<=o+UC;return s&&l?`nw`:c&&l?`ne`:s&&u?`sw`:c&&u?`se`:l&&d?`n`:u&&d?`s`:s&&f?`w`:c&&f?`e`:null}function KC(e,t,n){let r=Math.min(t.x,n.x),i=Math.max(t.x,n.x),a=Math.min(t.y,n.y),o=Math.max(t.y,n.y);switch(e){case`nw`:return{anchor:{x:i,y:o},lockX:null,lockY:null};case`ne`:return{anchor:{x:r,y:o},lockX:null,lockY:null};case`sw`:return{anchor:{x:i,y:a},lockX:null,lockY:null};case`se`:return{anchor:{x:r,y:a},lockX:null,lockY:null};case`n`:return{anchor:{x:r,y:o},lockX:i,lockY:null};case`s`:return{anchor:{x:r,y:a},lockX:i,lockY:null};case`w`:return{anchor:{x:i,y:a},lockX:null,lockY:o};case`e`:return{anchor:{x:r,y:a},lockX:null,lockY:o}}}function qC(e,t){let[n,r]=t;if(e===`log`){let e=Math.log10(n),t=Math.log10(r)-e;return{normalize:n=>(Math.log10(n)-e)/t,invert:n=>10**(e+n*t)}}let i=r-n;return{normalize:e=>(e-n)/i,invert:e=>n+e*i}}function JC(e,t){let n=!1;for(let r=0,i=t.length-1;r<t.length;i=r++){let a=t[r].x,o=t[r].y,s=t[i].x,c=t[i].y;o>e.y!=c>e.y&&e.x<(s-a)*(e.y-o)/(c-o)+a&&(n=!n)}return n}function YC(e,t){let[n,r,i,a]=t.axesPixelBounds,o=(e.x-n)/(i-n),s=(e.y-r)/(a-r),c=qC(t.xScale,t.xBounds),l=qC(t.yScale,t.yBounds);return{x:c.invert(o),y:l.invert(1-s)}}function XC(e,t){let[n,r,i,a]=t.axesPixelBounds,o=qC(t.xScale,t.xBounds),s=qC(t.yScale,t.yBounds);return{x:n+o.normalize(e.x)*(i-n),y:r+(1-s.normalize(e.y))*(a-r)}}function ZC(e,t){let[n,r,i,a]=t.axesPixelBounds;return{x:Math.max(n,Math.min(i,e.x)),y:Math.max(r,Math.min(a,e.y))}}function QC(e,t,n){let r=Math.min(t.x,n.x),i=Math.max(t.x,n.x),a=Math.min(t.y,n.y),o=Math.max(t.y,n.y);return e.x>=r&&e.x<=i&&e.y>=a&&e.y<=o}function $C(e,t){let[n,r,i,a]=t.axesPixelBounds;return e.x>=n&&e.x<=i&&e.y>=r&&e.y<=a}var ew=class{#e;#t;#n;#r={type:`idle`};#i=0;#a=null;#o=0;#s=``;#c=1;constructor(e,t){this.#t=e,this.#n=t.state,e.tabIndex=-1,e.role=`application`,e.className=`relative inline-block select-none outline-hidden`;let n=document.createElement(`canvas`);n.className=`block cursor-crosshair`,this.#l(n),n.style.touchAction=`none`,e.append(n),this.#e=n,n.addEventListener(`pointerdown`,this.#w,{signal:t.signal}),n.addEventListener(`pointermove`,this.#T,{signal:t.signal}),n.addEventListener(`pointerup`,this.#E,{signal:t.signal}),e.addEventListener(`keydown`,this.#D,{signal:t.signal}),this.#f(t.signal),window.addEventListener(`resize`,this.#d,{signal:t.signal}),t.signal.addEventListener(`abort`,()=>{cancelAnimationFrame(this.#i),this.#e.remove()}),this.#p(this.#n.chartBase64),this.#C(this.#n.value)}#l(e=this.#e){let t=globalThis.devicePixelRatio??1;this.#c=t;let{width:n,height:r}=this.#n;e.width=n*t,e.height=r*t,e.style.width=`${n}px`,e.style.maxWidth=`100%`,e.style.height=`auto`,e.style.aspectRatio=`${n} / ${r}`}get#u(){let{width:e,height:t}=this.#n,n=globalThis.devicePixelRatio??1;return{x:e>0?this.#e.width/e:n,y:t>0?this.#e.height/t:n}}#d=()=>{(globalThis.devicePixelRatio??1)!==this.#c&&(this.#l(),this.#h())};#f(e){e.aborted||matchMedia(`(resolution: ${globalThis.devicePixelRatio??1}dppx)`).addEventListener(`change`,()=>{this.#d(),this.#f(e)},{once:!0,signal:e})}update(e){let t=this.#n;this.#n=e;let n=!1;if((e.width!==t.width||e.height!==t.height)&&(this.#l(),n=!0),e.chartBase64!==this.#s){this.#p(e.chartBase64),this.#C(e.value);return}let r=this.#r.type!==`idle`&&this.#r.action!==null;if(e.value!==t.value&&!r){this.#C(e.value);return}(n||e.selectionColor!==t.selectionColor||e.selectionOpacity!==t.selectionOpacity||e.strokeWidth!==t.strokeWidth)&&this.#m()}#p(e){this.#s=e,this.#o++;let t=this.#o;this.#r={type:`idle`},this.#a=null;let n=this.#e.getContext(`2d`);if(n){let e=this.#u;n.setTransform(e.x,0,0,e.y,0,0),n.clearRect(0,0,this.#n.width,this.#n.height)}let r=new Image;r.onload=()=>{t===this.#o&&(this.#a=r,this.#m())},r.src=e}#m=()=>{let e=this.#a;if(!e)return;let t=this.#e.getContext(`2d`);if(!t)return;let n=this.#n,r=this.#r,i=this.#u;if(t.setTransform(i.x,0,0,i.y,0,0),t.clearRect(0,0,n.width,n.height),t.drawImage(e,0,0,n.width,n.height),r.type===`box`){let e=Math.min(r.start.x,r.end.x),i=Math.min(r.start.y,r.end.y),a=Math.abs(r.end.x-r.start.x),o=Math.abs(r.end.y-r.start.y);t.save(),t.fillStyle=n.selectionColor,t.globalAlpha=n.selectionOpacity,t.fillRect(e,i,a,o),t.restore(),t.strokeStyle=n.selectionColor,t.lineWidth=n.strokeWidth,t.strokeRect(e,i,a,o)}if(r.type===`lasso`&&r.points.length>=2){t.beginPath(),t.moveTo(r.points[0].x,r.points[0].y);for(let e=1;e<r.points.length;e++)t.lineTo(r.points[e].x,r.points[e].y);t.closePath(),t.save(),t.fillStyle=n.selectionColor,t.globalAlpha=n.selectionOpacity,t.fill(`evenodd`),t.restore(),t.strokeStyle=n.selectionColor,t.lineWidth=n.strokeWidth,t.stroke()}};#h=()=>{cancelAnimationFrame(this.#i),this.#i=requestAnimationFrame(this.#m)};#g=e=>{let t=this.#e.getBoundingClientRect(),n=this.#n.width/t.width,r=this.#n.height/t.height;return{x:(e.clientX-t.left)*n,y:(e.clientY-t.top)*r}};#_=(e,t)=>{let n=YC(e,this.#n),r=YC(t,this.#n);this.#n.setValue({type:`box`,has_selection:!0,data:{x_min:Math.min(n.x,r.x),x_max:Math.max(n.x,r.x),y_min:Math.min(n.y,r.y),y_max:Math.max(n.y,r.y)}})};#v=e=>{if(e.length>=3){let t=e.map(e=>{let t=YC(e,this.#n);return[t.x,t.y]});this.#n.setValue({type:`lasso`,has_selection:!0,data:t})}};#y=()=>{this.#r={type:`idle`},this.#n.setValue({has_selection:!1}),this.#h()};#b=()=>this.#r.type!==`idle`;#x=e=>{let t=this.#r;return t.type===`box`?QC(e,t.start,t.end):t.type===`lasso`&&JC(e,t.points)};#S=e=>{let[t,n,r,i]=this.#n.axesPixelBounds;if(!(e.x>=t&&e.x<=r&&e.y>=n&&e.y<=i)){this.#e.style.cursor=`default`;return}let a=this.#r;if(a.type===`box`&&a.action===null){let t=GC(e,a.start,a.end);if(t){this.#e.style.cursor=WC[t];return}}if(this.#b()&&this.#x(e)){this.#e.style.cursor=`move`;return}this.#e.style.cursor=`crosshair`};#C=e=>{if(!e||!(`has_selection`in e)||!e.has_selection){this.#r.type!==`idle`&&(this.#r={type:`idle`},this.#h());return}if(e.type===`box`){let t=e.data,n=XC({x:t.x_min,y:t.y_min},this.#n),r=XC({x:t.x_max,y:t.y_max},this.#n);this.#r={type:`box`,start:n,end:r,action:null}}else if(e.type===`lasso`){let t=e.data.map(([e,t])=>XC({x:e,y:t},this.#n));this.#r={type:`lasso`,points:t,action:null}}this.#h()};#w=e=>{this.#e.setPointerCapture(e.pointerId),this.#t.focus();let t=this.#g(e),n=this.#r;if(e.shiftKey){if(!$C(t,this.#n))return;this.#r={type:`lasso`,points:[ZC(t,this.#n)],action:{type:`drawing`}},this.#h();return}if(n.type===`box`&&n.action===null){let e=GC(t,n.start,n.end);if(e){let{anchor:t,lockX:r,lockY:i}=KC(e,n.start,n.end);this.#r={type:`box`,start:n.start,end:n.end,action:{type:`resizing`,anchor:t,lockX:r,lockY:i}};return}}if(this.#b()&&this.#x(t)){n.type===`box`?this.#r={type:`box`,start:n.start,end:n.end,action:{type:`dragging`,origin:t}}:n.type===`lasso`&&(this.#r={type:`lasso`,points:n.points,action:{type:`dragging`,origin:t}});return}if(this.#b()&&this.#y(),!$C(t,this.#n))return;let r=ZC(t,this.#n);this.#r={type:`box`,start:r,end:r,action:{type:`drawing`}},this.#h()};#T=e=>{let t=this.#g(e),n=this.#r,r=this.#n;if(n.type===`idle`||n.action===null){this.#S(t);return}if(n.type===`lasso`&&n.action.type===`drawing`){n.points.push(ZC(t,r)),this.#h();return}if(n.type===`box`&&n.action.type===`drawing`){let e=ZC(t,r);n.end=e,this.#h(),r.debounce||this.#_(n.start,e);return}if(n.type===`box`&&n.action.type===`resizing`){let e=ZC(t,r),{anchor:i,lockX:a,lockY:o}=n.action;n.start=i,n.end={x:a??e.x,y:o??e.y},this.#h(),r.debounce||this.#_(n.start,n.end);return}if(n.type===`box`&&n.action.type===`dragging`){let[e,i,a,o]=r.axesPixelBounds,s=t.x-n.action.origin.x,c=t.y-n.action.origin.y;n.action.origin=t;let l=Math.min(n.start.x,n.end.x),u=Math.max(n.start.x,n.end.x),d=Math.min(n.start.y,n.end.y),f=Math.max(n.start.y,n.end.y);s=Math.max(e-l,Math.min(a-u,s)),c=Math.max(i-d,Math.min(o-f,c)),n.start={x:n.start.x+s,y:n.start.y+c},n.end={x:n.end.x+s,y:n.end.y+c},this.#h(),r.debounce||this.#_(n.start,n.end);return}if(n.type===`lasso`&&n.action.type===`dragging`){let[e,i,a,o]=r.axesPixelBounds,s=t.x-n.action.origin.x,c=t.y-n.action.origin.y;n.action.origin=t;let l=1/0,u=-1/0,d=1/0,f=-1/0;for(let e of n.points)e.x<l&&(l=e.x),e.x>u&&(u=e.x),e.y<d&&(d=e.y),e.y>f&&(f=e.y);s=Math.max(e-l,Math.min(a-u,s)),c=Math.max(i-d,Math.min(o-f,c));for(let e=0;e<n.points.length;e++)n.points[e]={x:n.points[e].x+s,y:n.points[e].y+c};this.#h(),r.debounce||this.#v(n.points)}};#E=e=>{this.#e.releasePointerCapture(e.pointerId);let t=this.#r,n=this.#n;if(t.type===`lasso`&&t.action?.type===`drawing`){t.points.length>=3?(t.action=null,this.#v(t.points)):(this.#r={type:`idle`},this.#n.setValue({has_selection:!1})),this.#h();return}if(t.type===`lasso`&&t.action?.type===`dragging`){t.action=null,n.debounce&&this.#v(t.points);return}t.type===`box`&&t.action!==null&&(t.action=null,n.debounce&&this.#_(t.start,t.end))};#D=e=>{if(e.key===`Escape`){let e=this.#r;if(e.type===`idle`)return;e.action?.type===`drawing`?(this.#r={type:`idle`},this.#h()):this.#y()}}},tw=class{tagName=`marimo-matplotlib`;validator=H({chartBase64:B(),xBounds:Ue([z(),z()]),yBounds:Ue([z(),z()]),axesPixelBounds:Ue([z(),z(),z(),z()]),width:z(),height:z(),selectionColor:B().default(`#3b82f6`),selectionOpacity:z().default(.15),strokeWidth:z().default(2),debounce:V(),xScale:Ze([`linear`,`log`]).default(`linear`),yScale:Ze([`linear`,`log`]).default(`linear`)});render(e){return(0,q.jsx)(nw,{...e.data,value:e.value,setValue:e.setValue})}},nw=e=>{let t=(0,K.useRef)(null),n=(0,K.useRef)(null);return(0,K.useEffect)(()=>{let r=t.current;if(!r)return;let i=new AbortController;return n.current=new ew(r,{state:e,signal:i.signal}),()=>{i.abort(),n.current=null}},[]),(0,K.useEffect)(()=>{n.current?.update(e)}),(0,q.jsx)(`div`,{ref:t})},rw=class{readyState=WebSocket.OPEN;sendFn;onopen=null;onmessage=null;onclose=null;constructor(e){this.sendFn=e}setSendHandler(e){this.sendFn=e}send(e){this.sendFn(JSON.parse(e))}receiveJson(e){this.onmessage?.(new MessageEvent(`message`,{data:JSON.stringify(e)}))}receiveBinary(e){let t=e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength),n=new Blob([t]);this.onmessage?.(new MessageEvent(`message`,{data:n}))}close(){this.readyState=WebSocket.CLOSED,this.onclose?.()}},iw=`mpl-interactive-figure`,aw=Cv(`marimo-mpl-interactive`).withData(H({mplJsUrl:B(),cssUrl:B(),toolbarImages:qe(B(),B()),width:z(),height:z()})).withFunctions({}).renderer(e=>(0,q.jsx)(uw,{...e})),ow=null;async function sw(e){if(!window.mpl){if(!Et(e))throw Error(`Refusing to load mpl.js from untrusted URL: ${String(e)}`);return ow||(ow=new Promise((t,n)=>{let r=document.createElement(`script`);r.src=e,r.onload=()=>t(),r.onerror=()=>{ow=null,n(Error(`Failed to load mpl.js`))},document.head.append(r)}),ow)}}function cw(e,t){let n=e=>{let n=(e.getAttribute(`src`)||``).match(/_images\/(.+)\.png$/);if(n){let r=t[n[1]];r&&(e.src=r)}let r=(e.getAttribute(`srcset`)||``).match(/_images\/(.+)\.png\s+2x$/);if(r){let n=t[r[1]];n&&(e.srcset=`${n} 2x`)}};for(let t of e.querySelectorAll(`img`))n(t);let r=new MutationObserver(e=>{for(let t of e)for(let e of t.addedNodes)if(e instanceof HTMLImageElement)n(e);else if(e instanceof HTMLElement)for(let t of e.querySelectorAll(`img`))n(t)});return r.observe(e,{childList:!0,subtree:!0}),()=>r.disconnect()}function lw(e,t){if(!Et(t))return W.error(`Refusing to load mpl CSS from untrusted URL: ${String(t)}`),Pt.NOOP;let n=document.createElement(`link`);return n.rel=`stylesheet`,n.href=t,e.append(n),()=>n.remove()}var uw=e=>{let{mplJsUrl:t,cssUrl:n,toolbarImages:r,width:i,height:a}=e.data,{model_id:o}=e.value,s=(0,K.useRef)(null),c=(0,K.useRef)(null),l=(0,K.useRef)(null),u=(0,K.useRef)(Pt.NOOP),d=(0,K.useRef)(void 0),f=(0,K.useRef)(o);f.current=o;let p=(0,K.useRef)(r);p.current=r;let m=(0,K.useCallback)(async e=>{let t=l.current;if(!t)return;let n;try{n=await At.getModel(e)}catch{W.error(`Failed to get model for mpl interactive`,e);return}if(l.current!==t)return;d.current?.();let r=e=>n.send(e);t.setSendHandler(r),u.current=r;let i=(e,n)=>{if(e){if(e.type===`json`)t.receiveJson(e.data);else if(e.type===`binary`&&n&&n.length>0)t.receiveBinary(n[0]);else if(e.type===`download`&&n&&n.length>0){let t=e.format||`png`,r=n[0],i=r.buffer.slice(r.byteOffset,r.byteOffset+r.byteLength);Oi(new Blob([i],{type:`image/${t}`}),`figure.${t}`)}}};n.on(`msg:custom`,i),t.onopen?.(),d.current=()=>{n.off(`msg:custom`,i),u.current===r&&(u.current=Pt.NOOP)}},[]);(0,K.useEffect)(()=>{let e=s.current;if(!e)return;e.innerHTML=``;let r=lw(e,n),o=cw(e,p.current),h=!1;return(async()=>{if(await sw(t),!window.mpl){W.error(`mpl.js failed to load`);return}let n=new rw(e=>{u.current(e)});l.current=n;let r=new window.mpl.figure(f.current,n,(e,t)=>{u.current({type:`download`,format:t})},e);c.current=r;let o=r.root.querySelector(`div[tabindex]`);o&&(o.style.width=`${i}px`,o.style.height=`${a}px`),await m(f.current)})().catch(e=>{h||W.error(`Failed to set up MPL interactive figure`,e)}),()=>{h=!0,d.current?.(),d.current=void 0,r(),o(),l.current?.close(),l.current=null,c.current=null,e.innerHTML=``}},[t,n,i,a,m]);let h=(0,K.useRef)(!0);return(0,K.useEffect)(()=>{if(h.current){h.current=!1;return}m(o).catch(e=>{W.error(`Failed to rebind MPL interactive figure`,e)})},[o,m]),It(document,`visibilitychange`,()=>{let e=c.current;!document.hidden&&e?.ws?.readyState===WebSocket.OPEN&&e.send_message(`refresh`,{})}),(0,q.jsx)(`div`,{ref:s,className:iw})},dw=class{tagName=`marimo-number`;validator=H({initialValue:z().nullish(),label:B().nullable(),start:z().nullish(),stop:z().nullish(),step:z().optional(),debounce:V().default(!1),fullWidth:V().default(!1),disabled:V().optional()});render(e){return(0,q.jsx)(fw,{...e.data,value:e.value,setValue:e.setValue})}},fw=e=>{let t=(0,J.c)(33),n=(0,K.useId)(),r;t[0]===e.value?r=t[1]:(r=pw(e.value),t[0]=e.value,t[1]=r);let i=r,a=!e.debounce,o;t[2]!==i||t[3]!==e.setValue||t[4]!==a?(o={initialValue:i,delay:200,disabled:a,onChange:e.setValue},t[2]=i,t[3]=e.setValue,t[4]=a,t[5]=o):o=t[5];let{value:s,onChange:c}=Wo(o),l;t[6]!==e.start||t[7]!==e.stop?(l=t=>Oo(t,e.start??-1/0,e.stop??1/0),t[6]=e.start,t[7]=e.stop,t[8]=l):l=t[8];let u=l,d;t[9]!==u||t[10]!==c||t[11]!==s?(d=e=>{let t=pw(e),n=t==null?null:u(t);n!==s&&c(n)},t[9]=u,t[10]=c,t[11]=s,t[12]=d):d=t[12];let f=d,p=e.label,m=n,h=e.fullWidth,g=e.fullWidth&&`w-full`,_;t[13]===g?_=t[14]:(_=G(`min-w-[3em]`,g),t[13]=g,t[14]=_);let v=e.start??void 0,y=e.stop??void 0,b;t[15]!==u||t[16]!==s?(b=s==null?NaN:u(s),t[15]=u,t[16]=s,t[17]=b):b=t[17];let x=e.label||`Number input`,S;t[18]!==f||t[19]!==n||t[20]!==e.disabled||t[21]!==e.step||t[22]!==v||t[23]!==y||t[24]!==b||t[25]!==x||t[26]!==_?(S=(0,q.jsx)(co,{"data-testid":`marimo-plugin-number-input`,className:_,minValue:v,maxValue:y,value:b,step:e.step,commitBehavior:`validate`,validationBehavior:`aria`,isInvalid:!1,onChange:f,id:n,"aria-label":x,isDisabled:e.disabled}),t[18]=f,t[19]=n,t[20]=e.disabled,t[21]=e.step,t[22]=v,t[23]=y,t[24]=b,t[25]=x,t[26]=_,t[27]=S):S=t[27];let C;return t[28]!==n||t[29]!==e.fullWidth||t[30]!==e.label||t[31]!==S?(C=(0,q.jsx)(kv,{label:p,controlId:m,fullWidth:h,children:S}),t[28]=n,t[29]=e.fullWidth,t[30]=e.label,t[31]=S,t[32]=C):C=t[32],C};function pw(e){return e==null||Number.isNaN(e)?null:e}var mw=H({content:We([H({type:He(`ACK`)}),B()]).nullable()});function hw(e,t){if(Array.isArray(e))return e.map(e=>hw(e,t));if(e instanceof Map){let n={};for(let[r,i]of e.entries())n[String(r)]=hw(i,t);return n}if(typeof e==`object`&&e&&`to_base64`in e&&typeof e.to_base64==`function`){let n=t.length;return t.push(e.to_base64()),{id:n}}if(typeof e==`object`&&e){let n={};for(let r of Object.keys(e))n[r]=hw(e[r],t);return n}return e}var gw=class{buffer=[];isBlocked=!1;timeout=null;processEvents;blockDuration;constructor(e,t=200){this.processEvents=e,this.blockDuration=t}add(e){this.buffer.push(e),this.flush()}flush(){this.isBlocked||(this.processEvents(),this.block())}block(){this.isBlocked=!0,this.timeout!==null&&clearTimeout(this.timeout),this.timeout=window.setTimeout(()=>{this.isBlocked=!1,this.buffer.length>0&&this.flush()},this.blockDuration)}size(){return this.buffer.length}clear(){this.buffer=[]}getAndClear(){let e=this.buffer;return this.buffer=[],e}},_w=Cv(`marimo-panel`).withData(H({extensionUrl:B().nullable(),docs_json:qe(B(),Ge()),render_json:H({roots:qe(B(),B())}).catchall(Ge())})).withFunctions({send_to_widget:Pv.input(H({message:Ge(),buffers:U(B())})).output(rt().optional())}).renderer(e=>(0,q.jsx)(bw,{...e}));function vw(){return window.Bokeh!=null}function yw(e){if(!e)return!1;if(!Et(e))return W.error(`Refusing to load Panel extension from untrusted URL: ${String(e)}`),!1;let t=document.createElement(`script`);return t.src=e,document.head.append(t),!0}var bw=e=>{let{data:t,functions:n,host:r}=e,{extensionUrl:i,docs_json:a,render_json:o}=t,s=(0,K.useRef)(null),c=(0,K.useRef)(null),l=(0,K.useRef)(null),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)(null),m=(0,K.useRef)(n);m.current=n;let h=(0,K.useCallback)(()=>{if(!g.current)return;let e=g.current.getAndClear();if(e.length===0)return;let t=e.at(0);if(!Cw(t))return;let n=t.document,r=e.filter(e=>Cw(e)&&e.document===n),i=n.create_json_patch(r),a=window.Bokeh.protocol.Message.create(`PATCH-DOC`,{},i),o=[];a.content=hw(a.content,o),m.current.send_to_widget({message:a,buffers:o}).catch(e=>{W.warn(`Failed to send Panel event to backend`,e)})},[]),g=(0,K.useRef)(new gw(h));return(0,K.useEffect)(()=>{if(vw()){d(!0);return}yw(i);let e=setInterval(()=>{vw()&&(d(!0),clearInterval(e))},10);return()=>clearInterval(e)},[i,d]),It(r,ps.TYPE,e=>{if(e.detail.message==null)return;let t=mw.parse(e.detail.message),n=e.detail.buffers,r=l.current;if(!r)return;let i=t.content;if(i!==null&&typeof t.content!=`string`){g.current&&g.current.size()>0&&h();return}let a=xw(c.current);if(!a)return;if(n&&n.length>0){let e=n[0];e instanceof ArrayBuffer?r.consume(e):e.buffer instanceof ArrayBuffer&&r.consume(e.buffer)}else if(i&&typeof i==`string`)r.consume(i);else return;let o=r.message;o!=null&&Object.keys(o.content).length>0&&(o.content.events!==void 0&&(o.content.events=o.content.events.filter(e=>e?.model?.id&&a._all_models.has(e.model.id))),a.apply_json_patch(o.content,o.buffers))}),(0,K.useEffect)(()=>{let e=Object.keys(a)[0];!u||f===e||(async()=>{let t={...o,roots:{}};for(let e of Object.keys(o.roots)){let n=o.roots[e];if(s.current){let r=s.current.querySelector(`#${n}`);t.roots[e]=r}}let n=Object.keys(t.roots)[0];await window.Bokeh.embed.embed_items_notebook(a,[t]),c.current=n;let r=window.Bokeh.index.get_by_id(n).model.document;l.current=new window.Bokeh.protocol.Receiver,r.on_change(e=>{Sw(e)&&e.sync&&g.current?.add(e)}),p(e)})()},[a,u,o,f]),(0,q.jsx)(`div`,{ref:s,children:Object.values(o.roots).map(e=>(0,q.jsx)(`div`,{id:e,children:(0,q.jsx)(`div`,{"data-root-id":e,style:{display:`contents`}})},e))})};function xw(e){if(!e)return null;try{return window.Bokeh.index.get_by_id(e).model.document}catch(e){return W.warn(`Failed to get Bokeh document`,e),null}}function Sw(e){return!!e&&typeof e==`object`&&`sync`in e}function Cw(e){return!!e&&typeof e==`object`&&`document`in e}var ww={removeOnUnmount:!1};function Tw(e,t){let n=(0,J.c)(6),r=t===void 0?ww:t,i;n[0]===e?i=n[1]:(i=()=>document.querySelector(`script[src="${e}"]`)?.dataset.status||`unknown`,n[0]=e,n[1]=i);let[a,o]=K.useState(i),s,c;return n[2]!==r.removeOnUnmount||n[3]!==e?(s=()=>{let t=document.querySelector(`script[src="${e}"]`),n=e=>{t&&(t.dataset.status=e,o(e))},i=()=>n(`ready`),a=()=>n(`error`),s=e=>{let t=new MutationObserver(()=>{let t=e.dataset.status;t&&o(t)});return t.observe(e,{attributes:!0,attributeFilter:[`data-status`]}),t};if(!t){t=document.createElement(`script`),t.src=e,t.async=!0,n(`loading`),document.body.append(t),t.addEventListener(`load`,i),t.addEventListener(`error`,a);let o=s(t);return()=>{o.disconnect(),t&&(t.removeEventListener(`load`,i),t.removeEventListener(`error`,a),r.removeOnUnmount&&t.remove())}}let c=t.dataset.status;if(c){if(c===`ready`||c===`error`)return;let e=s(t);return()=>e.disconnect()}o(`unknown`)},c=[e,r.removeOnUnmount],n[2]=r.removeOnUnmount,n[3]=e,n[4]=s,n[5]=c):(s=n[4],c=n[5]),K.useEffect(s,c),a}function Ew(e){let t=/([^<=>]+)=%{([^}]+)}/g,n={},r;for(;(r=t.exec(e))!==null;)n[r[1]]=r[2];return{update(t){return t===e?this:Ew(t)},parse(e){return Object.entries(n).reduce((t,[n,r])=>(t[n]=lt(e,r),t),{})}}}var Dw=[`color`,`curveNumber`,`entry`,`hovertext`,`id`,`label`,`parent`,`percentEntry`,`percentParent`,`percentRoot`,`pointNumber`,`root`,`value`],Ow=[`curveNumber`,`pointIndex`,`pointNumber`,`x`,`y`,`label`,`value`,`percentInitial`,`percentPrevious`,`percentTotal`],kw=[`curveNumber`,`pointNumber`,`label`,`value`,`percentInitial`,`percentPrevious`,`percentTotal`],Aw=new Set([`scatter`,`scattergl`]),jw=[`x`,`y`,`z`,`lat`,`lon`,`curveNumber`,`pointNumber`,`pointNumbers`,`pointIndex`];function Mw(e,t){return e??t}function Nw(e){let t=e,n=e.data??{},r=t.fullData??{};return{type:Mw(n.type,r.type),mode:Mw(n.mode,r.mode),x:Mw(n.x,r.x),y:Mw(n.y,r.y),hovertemplate:Mw(n.hovertemplate,r.hovertemplate)}}function Pw(e){return typeof e==`number`&&Number.isFinite(e)?e:void 0}function Fw(e){let t=Pw(e.pointIndex);if(t!==void 0)return t;let n=Pw(e.pointNumber);if(n!==void 0)return n;let r=e.pointNumbers;if(Array.isArray(r))return r.map(Pw).find(e=>e!==void 0)}function Iw(e){let t=Nw(e);if(!Aw.has(String(t.type)))return!1;let n=t.mode;return typeof n!=`string`||n.split(`+`).includes(`lines`)}function Lw(e){if(typeof e!=`string`)return!1;let t=e.split(`+`);return t.includes(`lines`)&&!t.includes(`markers`)}function Rw(e){return e?e.some(e=>{let t=e;return t.type===void 0||Aw.has(String(t.type))?Lw(t.mode):!1}):!1}function zw(e){return e?e.some(e=>{let t=e;return t.type!==void 0&&!Aw.has(String(t.type))?!1:typeof t.fill==`string`&&t.fill!==``&&t.fill!==`none`||t.stackgroup!=null}):!1}function Bw(e,t,n,r,i){return{name:e,title:t,icon:{svg:n},click:()=>i(r)}}function Vw(e){return[Bw(`line-box-select`,`Box select`,`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor"
18
18
  stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
19
19
  <rect x="4" y="4" width="16" height="16" stroke-dasharray="2 2" />
20
20
  </svg>`,`select`,e),Bw(`line-lasso-select`,`Lasso select`,`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor"
package/dist/index.html CHANGED
@@ -66,7 +66,7 @@
66
66
  <marimo-server-token data-token="{{ server_token }}" hidden></marimo-server-token>
67
67
  <!-- /TODO -->
68
68
  <title>{{ title }}</title>
69
- <script type="module" crossorigin src="./assets/index-DTa3czvL.js"></script>
69
+ <script type="module" crossorigin src="./assets/index-UsP0V8n4.js"></script>
70
70
  <link rel="modulepreload" crossorigin href="./assets/rolldown-runtime-B0Z9INg1.js">
71
71
  <link rel="modulepreload" crossorigin href="./assets/react-DVplv7_D.js">
72
72
  <link rel="modulepreload" crossorigin href="./assets/compiler-runtime-BrajqUja.js">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marimo-team/frontend",
3
- "version": "0.25.2-dev121",
3
+ "version": "0.25.2-dev123",
4
4
  "main": "dist/main.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -10,6 +10,7 @@ import {
10
10
  import { Provider } from "jotai";
11
11
  import type React from "react";
12
12
  import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
13
+ import { requestId } from "@/__tests__/branded";
13
14
  import { MockRequestClient } from "@/__mocks__/requests";
14
15
  import { ModalProvider } from "@/components/modal/ImperativeModal";
15
16
  import { TooltipProvider } from "@/components/ui/tooltip";
@@ -129,7 +130,7 @@ describe("NotebookMenuDropdown", () => {
129
130
  }));
130
131
  invalidateDataSourceDiscovery();
131
132
  vi.spyOn(DiscoverDataSources, "request").mockResolvedValue({
132
- request_id: "request-id",
133
+ request_id: requestId("request-id"),
133
134
  sources: [],
134
135
  });
135
136
  });
@@ -142,7 +143,7 @@ describe("NotebookMenuDropdown", () => {
142
143
 
143
144
  it("shows detected databases in the add connection submenu", async () => {
144
145
  vi.mocked(DiscoverDataSources.request).mockResolvedValue({
145
- request_id: "request-id",
146
+ request_id: requestId("request-id"),
146
147
  sources: [POSTGRES_SOURCE],
147
148
  });
148
149
 
@@ -172,7 +173,7 @@ describe("NotebookMenuDropdown", () => {
172
173
 
173
174
  it("shows detected storage in the add remote storage submenu", async () => {
174
175
  vi.mocked(DiscoverDataSources.request).mockResolvedValue({
175
- request_id: "request-id",
176
+ request_id: requestId("request-id"),
176
177
  sources: [S3_SOURCE],
177
178
  });
178
179
 
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { render, screen } from "@testing-library/react";
4
4
  import { afterEach, describe, expect, it, vi } from "vitest";
5
+ import { requestId } from "@/__tests__/branded";
5
6
  import { TooltipProvider } from "@/components/ui/tooltip";
6
7
  import { DownloadStorage } from "@/core/storage/request-registry";
7
8
  import { StorageFileViewer } from "../storage-file-viewer";
@@ -41,7 +42,7 @@ describe("StorageFileViewer", () => {
41
42
 
42
43
  it("renders TOML from generic storage metadata as read-only TOML", async () => {
43
44
  const request = vi.spyOn(DownloadStorage, "request").mockResolvedValue({
44
- request_id: "request-id",
45
+ request_id: requestId("request-id"),
45
46
  url: "https://example.com/pyproject.toml?signature=secret",
46
47
  });
47
48
  vi.stubGlobal(
@@ -8,6 +8,7 @@ import { EditorState, type Extension } from "@codemirror/state";
8
8
  import { EditorView } from "@codemirror/view";
9
9
  import { DuckDBDialect } from "@marimo-team/codemirror-sql/dialects";
10
10
  import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
11
+ import { requestId } from "@/__tests__/branded";
11
12
  import type { CellId } from "@/core/cells/ids";
12
13
  import type {
13
14
  CompletionConfig,
@@ -1106,7 +1107,7 @@ describe("CustomSqlParser", () => {
1106
1107
  const request = vi.spyOn(ValidateSQL, "request").mockResolvedValue({
1107
1108
  error: null,
1108
1109
  parse_result: { success: false, errors: [error] },
1109
- request_id: "request-id",
1110
+ request_id: requestId("request-id"),
1110
1111
  validate_result: null,
1111
1112
  });
1112
1113
  const state = EditorState.create({
@@ -1150,7 +1151,7 @@ describe("CustomSqlParser", () => {
1150
1151
  vi.spyOn(ValidateSQL, "request").mockResolvedValue({
1151
1152
  error: null,
1152
1153
  parse_result: { success: false, errors: [error] },
1153
- request_id: "request-id",
1154
+ request_id: requestId("request-id"),
1154
1155
  validate_result: null,
1155
1156
  });
1156
1157
  const state = EditorState.create({
@@ -1194,7 +1195,7 @@ describe("CustomSqlParser", () => {
1194
1195
  const request = vi.spyOn(ValidateSQL, "request").mockResolvedValue({
1195
1196
  error: null,
1196
1197
  parse_result: { success: false, errors: [error] },
1197
- request_id: "request-id",
1198
+ request_id: requestId("request-id"),
1198
1199
  validate_result: null,
1199
1200
  });
1200
1201
  const state = createNamedConnectionState({
@@ -1,5 +1,7 @@
1
1
  /* Copyright 2026 Marimo. All rights reserved. */
2
2
  import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
3
+ import { requestId } from "@/__tests__/branded";
4
+ import type { DataSourceDiscoveryResult } from "@/core/kernel/messages";
3
5
  import { connectionAtom } from "@/core/network/connection";
4
6
  import { store } from "@/core/state/jotai";
5
7
  import { ConnectionState } from "@/core/websocket/types";
@@ -41,7 +43,7 @@ describe("fetchDataSourceDiscovery", () => {
41
43
  it("shares a single in-flight request across concurrent callers", async () => {
42
44
  const request = vi
43
45
  .spyOn(DiscoverDataSources, "request")
44
- .mockResolvedValue({ request_id: "request-id", sources: [] });
46
+ .mockResolvedValue({ request_id: requestId("request-id"), sources: [] });
45
47
 
46
48
  await Promise.all([
47
49
  fetchDataSourceDiscovery(),
@@ -55,7 +57,7 @@ describe("fetchDataSourceDiscovery", () => {
55
57
  it("re-runs discovery after the cache is invalidated", async () => {
56
58
  const request = vi
57
59
  .spyOn(DiscoverDataSources, "request")
58
- .mockResolvedValue({ request_id: "request-id", sources: [] });
60
+ .mockResolvedValue({ request_id: requestId("request-id"), sources: [] });
59
61
 
60
62
  await fetchDataSourceDiscovery();
61
63
  invalidateDataSourceDiscovery();
@@ -68,7 +70,10 @@ describe("fetchDataSourceDiscovery", () => {
68
70
  const request = vi
69
71
  .spyOn(DiscoverDataSources, "request")
70
72
  .mockRejectedValueOnce(new Error("boom"))
71
- .mockResolvedValueOnce({ request_id: "request-id", sources: [] });
73
+ .mockResolvedValueOnce({
74
+ request_id: requestId("request-id"),
75
+ sources: [],
76
+ });
72
77
 
73
78
  await expect(fetchDataSourceDiscovery()).rejects.toThrow("boom");
74
79
  await expect(fetchDataSourceDiscovery()).resolves.toEqual([]);
@@ -77,16 +82,18 @@ describe("fetchDataSourceDiscovery", () => {
77
82
 
78
83
  it("does not clear a newer cache entry when an invalidated request fails", async () => {
79
84
  let rejectFirstRequest: ((error: Error) => void) | undefined;
80
- const firstRequest = new Promise<{
81
- request_id: string;
82
- sources: DetectedDataSource[];
83
- }>((_resolve, reject) => {
84
- rejectFirstRequest = reject;
85
- });
85
+ const firstRequest = new Promise<DataSourceDiscoveryResult>(
86
+ (_resolve, reject) => {
87
+ rejectFirstRequest = reject;
88
+ },
89
+ );
86
90
  const request = vi
87
91
  .spyOn(DiscoverDataSources, "request")
88
92
  .mockReturnValueOnce(firstRequest)
89
- .mockResolvedValueOnce({ request_id: "request-id", sources: [] });
93
+ .mockResolvedValueOnce({
94
+ request_id: requestId("request-id"),
95
+ sources: [],
96
+ });
90
97
 
91
98
  const staleResult = fetchDataSourceDiscovery().catch((error) => error);
92
99
  await vi.waitFor(() => expect(request).toHaveBeenCalledTimes(1));
@@ -116,7 +123,7 @@ describe("fetchDataSourceDiscovery", () => {
116
123
  }),
117
124
  ];
118
125
  vi.spyOn(DiscoverDataSources, "request").mockResolvedValue({
119
- request_id: "request-id",
126
+ request_id: requestId("request-id"),
120
127
  sources,
121
128
  });
122
129
 
@@ -7,7 +7,7 @@ import { throwNotImplemented } from "@/utils/functions";
7
7
  import { Logger } from "@/utils/Logger";
8
8
  import { generateUUID } from "@/utils/uuid";
9
9
  import { initialNotebookState, notebookAtom } from "../cells/cells";
10
- import type { CommandMessage } from "../kernel/messages";
10
+ import type { ClientCommand } from "../kernel/messages";
11
11
  import type { EditRequests, RunRequests } from "../network/types";
12
12
  import { store as defaultStore } from "../state/jotai";
13
13
  import { getMarimoExportContext } from "../static/export-context";
@@ -392,7 +392,7 @@ export class IslandsPyodideBridge implements RunRequests, EditRequests {
392
392
  // The kernel uses msgspec to parse control requests, which requires a 'type'
393
393
  // field for discriminated union deserialization.
394
394
  private async putControlRequest(
395
- operation: CommandMessage,
395
+ operation: ClientCommand,
396
396
  session?: AppSession,
397
397
  ): Promise<void> {
398
398
  session ??= await this.getActiveSession();
@@ -55,7 +55,7 @@ export type Capabilities =
55
55
  export type CacheInfoFetched = NotificationMessageData<"cache-info">;
56
56
 
57
57
  export type NotificationMessage = schemas["KnownUnions"]["notification"];
58
- export type CommandMessage = schemas["KnownUnions"]["command"];
58
+ export type ClientCommand = schemas["KnownUnions"]["command"];
59
59
 
60
60
  export type NotificationMessageType = NotificationMessage["op"];
61
61
  export interface NotificationPayload {
@@ -11,7 +11,7 @@ import { reloadSafe } from "@/utils/reload-safe";
11
11
  import { generateUUID } from "@/utils/uuid";
12
12
  import { createModuleWorker } from "@/utils/worker";
13
13
  import { notebookIsRunningAtom } from "../cells/cells";
14
- import type { CommandMessage } from "../kernel/messages";
14
+ import type { ClientCommand } from "../kernel/messages";
15
15
  import { getInitialAppMode } from "../mode";
16
16
  import { API } from "../network/api";
17
17
  import { withDevAssetUrl } from "../network/export-asset-url";
@@ -711,7 +711,7 @@ export class PyodideBridge implements RunRequests, EditRequests {
711
711
  public listStorageEntries = throwNotImplemented;
712
712
  public downloadStorage = throwNotImplemented;
713
713
 
714
- private async putControlRequest(operation: CommandMessage) {
714
+ private async putControlRequest(operation: ClientCommand) {
715
715
  await this.rpc.proxy.request.bridge({
716
716
  functionName: "put_control_request",
717
717
  payload: operation,
@@ -3,7 +3,7 @@ import type { PyodideInterface } from "pyodide";
3
3
  import type { WasmRuntimeConfig } from "../runtime-config";
4
4
  import type { UserConfig } from "@/core/config/config-schema";
5
5
  import type {
6
- CommandMessage,
6
+ ClientCommand,
7
7
  NotificationPayload,
8
8
  } from "@/core/kernel/messages";
9
9
  import type { JsonString } from "@/utils/json/base64";
@@ -74,7 +74,7 @@ export interface WasmController {
74
74
  }
75
75
 
76
76
  export interface RawBridge {
77
- put_control_request(operation: CommandMessage): Promise<string>;
77
+ put_control_request(operation: ClientCommand): Promise<string>;
78
78
  put_input(input: string): Promise<string>;
79
79
  code_complete(request: CodeCompletionRequest): Promise<string>;
80
80
  read_code(): Promise<{ contents: string }>;
@@ -4,6 +4,7 @@ import { z } from "zod";
4
4
  import { NumberField } from "@/components/ui/number-field";
5
5
  import { useDebounceControlledState } from "@/hooks/useDebounce";
6
6
  import { cn } from "@/utils/cn";
7
+ import { clamp } from "@/utils/math";
7
8
  import type { IPlugin, IPluginProps, Setter } from "../types";
8
9
  import { Labeled } from "./common/labeled";
9
10
 
@@ -65,8 +66,16 @@ const NumberComponent = (props: NumberComponentProps): JSX.Element => {
65
66
  onChange: props.setValue,
66
67
  });
67
68
 
69
+ const clampToRange = (n: number) =>
70
+ clamp(n, props.start ?? -Infinity, props.stop ?? Infinity);
71
+
68
72
  const handleChange = (newValue: number) => {
69
- onChange(withoutNaN(newValue));
73
+ const n = withoutNaN(newValue);
74
+ const next = n == null ? null : clampToRange(n);
75
+ // e.g. typing past `stop` while already at `stop`
76
+ if (next !== value) {
77
+ onChange(next);
78
+ }
70
79
  };
71
80
 
72
81
  return (
@@ -76,11 +85,19 @@ const NumberComponent = (props: NumberComponentProps): JSX.Element => {
76
85
  className={cn("min-w-[3em]", props.fullWidth && "w-full")}
77
86
  minValue={props.start ?? undefined}
78
87
  maxValue={props.stop ?? undefined}
79
- // This needs to be `?? NaN` since `?? undefined` makes uncontrolled component
88
+ // This needs to be `NaN` since `undefined` makes uncontrolled component
80
89
  // and can lead to leaving the old value in forms (https://github.com/marimo-team/marimo/issues/7352)
81
90
  // We out NaNs later
82
- value={value ?? Number.NaN}
91
+ value={value == null ? Number.NaN : clampToRange(value)}
83
92
  step={props.step}
93
+ // By default React Aria rounds every value to `start + n * step`, but
94
+ // `step` is only the stepper increment: users can enter any value in
95
+ // range (#9106). "validate" turns off that rounding (and the clamping,
96
+ // done above instead); its step validation is turned off so off-step
97
+ // values aren't flagged invalid or block `mo.ui.form` submission.
98
+ commitBehavior="validate"
99
+ validationBehavior="aria"
100
+ isInvalid={false}
84
101
  onChange={handleChange}
85
102
  id={id}
86
103
  aria-label={props.label || "Number input"}
@@ -1,6 +1,7 @@
1
1
  /* Copyright 2026 Marimo. All rights reserved. */
2
2
 
3
- import { act, render } from "@testing-library/react";
3
+ import { act, fireEvent, render } from "@testing-library/react";
4
+ import { useState } from "react";
4
5
  import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
5
6
  import type { z } from "zod";
6
7
  import { initialModeAtom } from "@/core/mode";
@@ -474,4 +475,161 @@ describe("NumberPlugin", () => {
474
475
  );
475
476
  expect(numberField?.classList.contains("w-full")).toBe(true);
476
477
  });
478
+
479
+ describe("does not snap values to step (#9106)", () => {
480
+ // Feeds `setValue` back into `value`, as the kernel round-trip does.
481
+ const renderNumber = (
482
+ initialValue: number,
483
+ data: Pick<z.infer<NumberPlugin["validator"]>, "start" | "stop" | "step">,
484
+ { debounce = false } = {},
485
+ ) => {
486
+ const plugin = new NumberPlugin();
487
+ const setValue = vi.fn();
488
+ const Harness = () => {
489
+ const [value, setState] = useState<number | null>(initialValue);
490
+ return plugin.render({
491
+ host: document.createElement("div"),
492
+ value,
493
+ setValue: (next) => {
494
+ setValue(next);
495
+ setState(next);
496
+ },
497
+ data: {
498
+ ...data,
499
+ label: null,
500
+ debounce,
501
+ fullWidth: false,
502
+ },
503
+ functions: {},
504
+ });
505
+ };
506
+ const { getByRole } = render(<Harness />);
507
+ act(() => {
508
+ vi.advanceTimersByTime(0);
509
+ });
510
+ const input = getByRole("textbox", {
511
+ name: "Number input",
512
+ }) as HTMLInputElement;
513
+ return { input, setValue };
514
+ };
515
+
516
+ const typeAndCommit = (input: HTMLInputElement, text: string) => {
517
+ act(() => {
518
+ input.focus();
519
+ });
520
+ fireEvent.change(input, { target: { value: text } });
521
+ act(() => {
522
+ input.blur();
523
+ });
524
+ };
525
+
526
+ it.each([
527
+ { value: 2.23, start: 1.255_57, step: 0.001 },
528
+ { value: 2.233_45, start: 1, step: 0.001 },
529
+ ])(
530
+ "displays $value as-is with start=$start and step=$step",
531
+ ({ value, start, step }) => {
532
+ const { input } = renderNumber(value, { start, stop: 20, step });
533
+ expect(input.value).toBe(String(value));
534
+ },
535
+ );
536
+
537
+ it.each([
538
+ { typed: "2.3377", start: 1, step: 0.01 },
539
+ { typed: "2.23111", start: 1.222, step: 0.01 },
540
+ ])(
541
+ "keeps typed value $typed with start=$start and step=$step",
542
+ ({ typed, start, step }) => {
543
+ const { input, setValue } = renderNumber(2.233_45, {
544
+ start,
545
+ stop: 20,
546
+ step,
547
+ });
548
+ typeAndCommit(input, typed);
549
+ expect(setValue).toHaveBeenLastCalledWith(Number(typed));
550
+ expect(input.value).toBe(typed);
551
+ expect(input.getAttribute("aria-invalid")).not.toBe("true");
552
+ // React Aria sets a custom validity on this text input in native mode,
553
+ // which would block `mo.ui.form` submission.
554
+ expect(input.validity.valid).toBe(true);
555
+ },
556
+ );
557
+
558
+ it("clamps typed values to start and stop", () => {
559
+ const { input, setValue } = renderNumber(5, {
560
+ start: 2,
561
+ stop: 10,
562
+ step: 1,
563
+ });
564
+ typeAndCommit(input, "25");
565
+ expect(setValue).toHaveBeenLastCalledWith(10);
566
+ expect(input.value).toBe("10");
567
+ typeAndCommit(input, "1");
568
+ expect(setValue).toHaveBeenLastCalledWith(2);
569
+ expect(input.value).toBe("2");
570
+ });
571
+
572
+ it("shows the bound when typing past a bound it is already at", () => {
573
+ const { input, setValue } = renderNumber(10, {
574
+ start: 2,
575
+ stop: 10,
576
+ step: 1,
577
+ });
578
+ typeAndCommit(input, "50");
579
+ expect(setValue).not.toHaveBeenCalled();
580
+ expect(input.value).toBe("10");
581
+ });
582
+
583
+ it("increments and decrements by step", () => {
584
+ const { input, setValue } = renderNumber(5, {
585
+ start: 0,
586
+ stop: 10,
587
+ step: 0.5,
588
+ });
589
+ fireEvent.keyDown(input, { key: "ArrowUp" });
590
+ expect(setValue).toHaveBeenLastCalledWith(5.5);
591
+ expect(input.value).toBe("5.5");
592
+ fireEvent.keyDown(input, { key: "ArrowDown" });
593
+ expect(setValue).toHaveBeenLastCalledWith(5);
594
+ expect(input.value).toBe("5");
595
+ });
596
+
597
+ it.each([
598
+ { key: "ArrowUp", expected: 3 },
599
+ { key: "ArrowDown", expected: 2 },
600
+ ])(
601
+ "$key from an off-step value moves to the nearest step ($expected)",
602
+ ({ key, expected }) => {
603
+ const { input, setValue } = renderNumber(2.23, {
604
+ start: 0,
605
+ stop: 10,
606
+ step: 1,
607
+ });
608
+ fireEvent.keyDown(input, { key });
609
+ expect(setValue).toHaveBeenLastCalledWith(expected);
610
+ expect(input.value).toBe(String(expected));
611
+ },
612
+ );
613
+
614
+ it.each([
615
+ { typed: "2.3377", expected: 2.3377 },
616
+ { typed: "50", expected: 20 },
617
+ ])(
618
+ "commits typed $typed as $expected after the debounce delay",
619
+ ({ typed, expected }) => {
620
+ const { input, setValue } = renderNumber(
621
+ 2.233_45,
622
+ { start: 1, stop: 20, step: 0.01 },
623
+ { debounce: true },
624
+ );
625
+ typeAndCommit(input, typed);
626
+ expect(setValue).not.toHaveBeenCalled();
627
+ act(() => {
628
+ vi.advanceTimersByTime(200);
629
+ });
630
+ expect(setValue).toHaveBeenLastCalledWith(expected);
631
+ expect(input.value).toBe(String(expected));
632
+ },
633
+ );
634
+ });
477
635
  });