@marimo-team/frontend 0.24.1-dev125 → 0.24.1-dev127
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.
|
@@ -3,7 +3,7 @@ import{a as e,t}from"./rolldown-runtime-B0Z9INg1.js";import{c as n,l as r,o as i
|
|
|
3
3
|
`))}catch{}mv.set(t,n)}}if(t.adoptedStyleSheets=[...mv.values()],e.cssStyles){let n=new CSSStyleSheet;n.replaceSync(e.cssStyles.join(`
|
|
4
4
|
`)),t.adoptedStyleSheets=[...t.adoptedStyleSheets,n]}}copyStylesFallback(){let t=this.shadowRoot;Qt(t,`Shadow root should exist`),U.warn(`adoptedStyleSheets not supported, copying stylesheets in a less performance way. Please consider upgrading your browser.`);let n=Array.from(document.styleSheets).flatMap(e=>{if(!_v(e))return[];let t=document.createElement(`style`);try{t.textContent=Array.from(e.cssRules).map(e=>e.cssText).join(`
|
|
5
5
|
`)}catch{return[]}return[t]});if(t.append(...n),e.cssStyles){let n=document.createElement(`style`);n.textContent=e.cssStyles.join(`
|
|
6
|
-
`),t.append(n)}}isAdoptedStyleSheetsSupported(){return`adoptedStyleSheets`in Document.prototype&&`replace`in CSSStyleSheet.prototype}};zp(e.tagName,t)}function _v(e){return e.title?.startsWith(`marimo`)?!0:!e.href||!e.href.endsWith(`.css`)?!1:(e.href.includes(`127.0.0.1`),e.href.includes(`/@marimo-team/`)?!0:e.href.startsWith(window.location.origin))}function vv(e){return!e||!(e instanceof HTMLElement)?!1:`__type__`in e&&e.__type__===hv}function yv(e,t){let n=e.safeParse(t);if(!n.success)throw U.log(`Failed to parse data`,t,n.error),Error(ft(n.error));return n.data}var bv=`MARIMO-UI-ELEMENT`;function xv(){class e extends HTMLElement{initialized=!1;inputListener=qt.NOOP;init(){if(this.initialized)return;let e=k.parseOrThrow(this);this.inputListener=n=>{e!==null&&n.detail.element===this.firstElementChild&&(Bt.has(e)||Bt.registerInstance(e,t),Bt.broadcastValueUpdate(t,e,n.detail.value))};let t=this.firstElementChild;if(e===null){U.error(`[marimo-ui-element] missing object-id attribute`);return}if(t===null){U.error(`[marimo-ui-element] has no child`);return}if(!(t instanceof HTMLElement)){U.error(`[marimo-ui-element] first child must be instance of HTMLElement`);return}this.initialized=!0}connectedCallback(){if(this.init(),this.initialized){let e=k.parseOrThrow(this),t=this.firstElementChild;Bt.registerInstance(e,t),document.addEventListener(Ss.TYPE,this.inputListener)}}disconnectedCallback(){if(this.initialized){document.removeEventListener(Ss.TYPE,this.inputListener);let e=k.parseOrThrow(this);Bt.removeInstance(e,this.firstElementChild)}}reset(){let e=this.firstElementChild;vv(e)?e.reset():U.error(`[marimo-ui-element] first child must have a reset method`)}static get observedAttributes(){return[h]}attributeChangedCallback(e,t,n){if(this.initialized&&e===`random-id`&&t!==n){this.disconnectedCallback();let e=this.firstElementChild;vv(e)?e.rerender():U.error(`[marimo-ui-element] first child must have a rerender method`),this.initialized=!1,this.connectedCallback()}}}zp(bv.toLowerCase(),e)}function Sv(e){if(!e)return null;if(e.nodeName===bv)return k.parseOrThrow(e);let t=e.parentElement;return t?.nodeName===bv?k.parseOrThrow(t):null}function Cv(e){return e.tagName===bv}var wv=(0,qo().init)({length:6});function Tv(){zp(`marimo-sidebar`,class extends HTMLElement{observer;uniqueId=Symbol(wv());connectedCallback(){this.mountReactComponent(),this.observer=new MutationObserver(()=>{this.updateReactComponent()}),this.style.display=`none`,this.observer.observe(this,{attributes:!0,childList:!0,subtree:!0,characterData:!0})}disconnectedCallback(){this.observer&&(this.observer.disconnect(),this.unmountReactComponent())}mountReactComponent(){this.syncWidth(),Ri.mount({name:Vr.SIDEBAR,ref:this.uniqueId,children:this.getContents()})}unmountReactComponent(){Ri.unmount({name:Vr.SIDEBAR,ref:this.uniqueId})}updateReactComponent(){this.syncWidth(),Ri.update({name:Vr.SIDEBAR,ref:this.uniqueId,children:this.getContents()})}syncWidth(){try{let e=this.dataset.width;e?a.set(Ht,{type:`setWidth`,width:JSON.parse(e)}):a.set(Ht,{type:`setWidth`,width:void 0})}catch(e){U.error(e)}}getContents(){return us({html:this.innerHTML})}})}function Ev(e,t={}){return{withData(n){return{withFunctions(r){return{renderer(i){return{...t,tagName:e,validator:n,functions:r,render:i}}}},renderer(r){return{...t,tagName:e,validator:n,render:r}}}}}}var Dv=Ev(`marimo-anywidget`).withData(R({modelId:tt(Wt,{message:`Expected a non-empty widget model id`})})).withFunctions({}).renderer(e=>(0,K.jsx)(Ov,{...e})),Ov=e=>{let t=(0,q.c)(9),{modelId:n}=e.data,i=(0,G.useRef)(null),[a,o]=(0,G.useState)(),s=r(Dn),c,l;t[0]!==s||t[1]!==n?(c=()=>{if(!s)return;let e=i.current;if(!e)return;let t=new AbortController;return o(void 0),Ut.createView({modelId:n,el:e,signal:t.signal}).catch(e=>{t.signal.aborted||o(e instanceof Error?e:Error(String(e)))}),()=>t.abort()},l=[s,n],t[0]=s,t[1]=n,t[2]=c,t[3]=l):(c=t[2],l=t[3]),(0,G.useEffect)(c,l);let u;t[4]===a?u=t[5]:(u=a?(0,K.jsx)(Ds,{error:a}):null,t[4]=a,t[5]=u);let d;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,K.jsx)(`div`,{ref:i}),t[6]=d):d=t[6];let f;return t[7]===u?f=t[8]:(f=(0,K.jsxs)(K.Fragment,{children:[u,d]}),t[7]=u,t[8]=f),f},kv=gt([`neutral`,`success`,`warn`,`danger`,`info`,`alert`]).default(`neutral`),Av=class{tagName=`marimo-button`;validator=R({label:z(),kind:kv,disabled:H().default(!1),fullWidth:H().default(!1),tooltip:z().optional(),keyboardShortcut:z().optional()});render(e){let{data:{disabled:t,kind:n,label:r,fullWidth:i,tooltip:a,keyboardShortcut:o}}=e,s=(0,K.jsx)(ra,{"data-testid":`marimo-plugin-button`,variant:jv(n),disabled:t,size:`xs`,keyboardShortcut:o,className:W({"w-full":i,"w-fit":!i}),onClick:n=>{t||(n.stopPropagation(),e.setValue(e=>e+1))},type:`submit`,children:us({html:r})}),c=o&&!a?(0,K.jsx)(Ls,{shortcut:o}):a;return c?(0,K.jsx)(ta,{content:c,delayDuration:200,children:s}):s}};function jv(e){switch(e){case`neutral`:return`secondary`;case`danger`:return`destructive`;case`warn`:return`warn`;case`success`:return`success`}}var Mv=e=>{let t=(0,q.c)(27),{label:n,children:r,align:i,className:a,labelClassName:o,fullWidth:s,id:c}=e,l=i===void 0?`left`:i;if(s&&(l=`top`),!n){if(l===`top`){let e;return t[0]!==r||t[1]!==a?(e=(0,K.jsx)(`div`,{className:a,children:r}),t[0]=r,t[1]=a,t[2]=e):e=t[2],e}let e;t[3]===a?e=t[4]:(e=W(`inline-flex`,a),t[3]=a,t[4]=e);let n;return t[5]!==r||t[6]!==e?(n=(0,K.jsx)(`div`,{className:e,children:r}),t[5]=r,t[6]=e,t[7]=n):n=t[7],n}let u;t[8]===o?u=t[9]:(u=W(`font-prose`,o),t[8]=o,t[9]=u);let d;t[10]===n?d=t[11]:(d=us({html:n}),t[10]=n,t[11]=d);let f;t[12]!==c||t[13]!==u||t[14]!==d?(f=(0,K.jsx)(`div`,{part:`label`,className:`inline-flex items-center m-0 p-0`,children:(0,K.jsx)(vr,{htmlFor:c,className:u,children:d})}),t[12]=c,t[13]=u,t[14]=d,t[15]=f):f=t[15];let p=f,m=l===`top`&&`flex-col items-start gap-y-2`,h=l===`left`&&`flex-row items-center gap-x-1.5 pr-2`,g=l===`right`&&`flex-row-reverse items-center gap-x-1.5 pr-2`,_=s&&`block space-y-2`,v=!s&&`w-fit`,y;t[16]!==a||t[17]!==m||t[18]!==h||t[19]!==g||t[20]!==_||t[21]!==v?(y=W(`mo-label inline-flex`,`pt-0 pb-0 pl-0`,m,h,g,_,v,a),t[16]=a,t[17]=m,t[18]=h,t[19]=g,t[20]=_,t[21]=v,t[22]=y):y=t[22];let b;return t[23]!==r||t[24]!==p||t[25]!==y?(b=(0,K.jsxs)(`div`,{className:y,children:[p,r]}),t[23]=r,t[24]=p,t[25]=y,t[26]=b):b=t[26],b},Nv=class{tagName=`marimo-checkbox`;validator=R({initialValue:H(),label:z().nullable(),disabled:H().optional()});render(e){return(0,K.jsx)(Pv,{...e})}},Pv=e=>{let t=(0,q.c)(11),{value:n,setValue:r,data:i}=e,a;t[0]===r?a=t[1]:(a=e=>{e!==`indeterminate`&&r(e)},t[0]=r,t[1]=a);let o=a,s=(0,G.useId)(),c;t[2]!==i.disabled||t[3]!==s||t[4]!==o||t[5]!==n?(c=(0,K.jsx)(D,{"data-testid":`marimo-plugin-checkbox`,checked:n,onCheckedChange:o,id:s,disabled:i.disabled}),t[2]=i.disabled,t[3]=s,t[4]=o,t[5]=n,t[6]=c):c=t[6];let l;return t[7]!==i.label||t[8]!==s||t[9]!==c?(l=(0,K.jsx)(Mv,{label:i.label,align:`right`,id:s,children:c}),t[7]=i.label,t[8]=s,t[9]=c,t[10]=l):l=t[10],l},Fv=class{tagName=`marimo-code-editor`;validator=R({initialValue:z(),language:z().default(`python`),placeholder:z(),theme:gt([`light`,`dark`]).optional(),label:z().nullable(),disabled:H().optional(),minHeight:B().optional(),maxHeight:B().optional(),showCopyButton:H().optional(),debounce:nt([H(),B()]).default(!1)});render(e){return(0,K.jsx)(Iv,{...e.data,value:e.value,setValue:e.setValue})}},Iv=e=>{let t=(0,q.c)(36),{theme:n}=Xo(),r=e.theme||n,i=e.minHeight?`${e.minHeight}px`:`70px`,a=e.maxHeight?`${e.maxHeight}px`:void 0,[o,c]=(0,G.useState)(e.value),l=e.value,u=Number.isFinite(e.debounce)?e.debounce:0,d=e.setValue,f;t[0]===e.debounce?f=t[1]:(f=Number.isFinite(e.debounce),t[0]=e.debounce,t[1]=f);let p=!f,m;t[2]!==e.setValue||t[3]!==e.value||t[4]!==u||t[5]!==p?(m={initialValue:l,delay:u,onChange:d,disabled:p},t[2]=e.setValue,t[3]=e.value,t[4]=u,t[5]=p,t[6]=m):m=t[6];let{onChange:h}=rs(m),g;t[7]!==e||t[8]!==h?(g=t=>{c(e=>t),typeof e.debounce==`number`?h(t):e.debounce||e.setValue(t)},t[7]=e,t[8]=h,t[9]=g):g=t[9];let _=s(g),v,y;t[10]===e.value?(v=t[11],y=t[12]):(v=()=>{c(e.value)},y=[e.value],t[10]=e.value,t[11]=v,t[12]=y),(0,G.useEffect)(v,y);let b;t[13]!==o||t[14]!==e?(b=()=>{e.setValue(o)},t[13]=o,t[14]=e,t[15]=b):b=t[15];let x=s(b),S;bb0:{if(e.debounce===!0){let e;t[16]===x?e=t[17]:(e=ia.domEventHandlers({blur:x}),t[16]=x,t[17]=e);let n;t[18]===e?n=t[19]:(n=[e],t[18]=e,t[19]=n),S=n;break bb0}let n;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(n=[],t[20]=n):n=t[20],S=n}let C=S,w=`cm *:outline-hidden border rounded overflow-hidden ${r}`,T=r===`dark`?`dark`:`light`,E=!e.disabled,D;t[21]!==C||t[22]!==_||t[23]!==o||t[24]!==a||t[25]!==i||t[26]!==e.language||t[27]!==e.placeholder||t[28]!==e.showCopyButton||t[29]!==w||t[30]!==T||t[31]!==E?(D=(0,K.jsx)(Ga,{className:w,theme:T,minHeight:i,maxHeight:a,placeholder:e.placeholder,editable:E,value:o,language:e.language,onChange:_,showCopyButton:e.showCopyButton,extensions:C}),t[21]=C,t[22]=_,t[23]=o,t[24]=a,t[25]=i,t[26]=e.language,t[27]=e.placeholder,t[28]=e.showCopyButton,t[29]=w,t[30]=T,t[31]=E,t[32]=D):D=t[32];let O;return t[33]!==e.label||t[34]!==D?(O=(0,K.jsx)(Mv,{label:e.label,align:`top`,fullWidth:!0,children:D}),t[33]=e.label,t[34]=D,t[35]=O):O=t[35],O},Lv={input(e){return{output(t){return{input:e,output:t}}}}},Rv=G.lazy(()=>Ho(()=>import(`./chat-ui-DGiVDzNh.js`).then(e=>({default:e.Chatbot})),__vite__mapDeps([325,1,3,5,2,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,75,76,326,327,328,99,100,101,102,103,94,104,92,93,89,80,105,106,107,108,109,110,111,112,113,114,115,317,137,135,138,139,140,303,304,97,85,86,167,145,148,278,130,95,151,134,123,171,299,82,146,147,116,298,122,280]),import.meta.url)),zv=V(R({id:z(),role:gt([`system`,`user`,`assistant`]),content:z().nullable(),parts:V(vt()),metadata:vt().nullable()})),Bv=R({max_tokens:B().nullable(),temperature:B().nullable(),top_p:B().nullable(),top_k:B().nullable(),frequency_penalty:B().nullable(),presence_penalty:B().nullable()}),Vv=Ev(`marimo-chatbot`).withData(R({prompts:V(z()).default(ca.EMPTY),showConfigurationControls:H(),maxHeight:B().optional(),config:Bv,allowAttachments:nt([H(),z().array()]),disabled:H().default(!1)})).withFunctions({get_chat_history:Lv.input(R({})).output(R({messages:zv})),delete_chat_history:Lv.input(R({})).output(yt()),delete_chat_message:Lv.input(R({index:B()})).output(yt()),send_prompt:Lv.input(R({request_id:z(),messages:zv,config:Bv})).output(at()),cancel_prompt:Lv.input(R({request_id:z()})).output(yt())}).renderer(e=>(0,K.jsx)(G.Suspense,{children:(0,K.jsx)(Rv,{prompts:e.data.prompts,showConfigurationControls:e.data.showConfigurationControls,maxHeight:e.data.maxHeight,allowAttachments:e.data.allowAttachments,disabled:e.data.disabled,config:e.data.config,get_chat_history:e.functions.get_chat_history,delete_chat_history:e.functions.delete_chat_history,delete_chat_message:e.functions.delete_chat_message,send_prompt:e.functions.send_prompt,cancel_prompt:e.functions.cancel_prompt,value:e.value?.messages||ca.EMPTY,setValue:t=>e.setValue({messages:t}),host:e.host})})),Hv=`.gdg-r17m35ur{background-color:var(--gdg-bg-header-has-focus);box-shadow:0 0 0 1px var(--gdg-border-color);color:var(--gdg-text-group-header);font:var(--gdg-header-font-style) var(--gdg-font-family);min-height:var(--r17m35ur-0);border:none;border-radius:9px;outline:none;flex-grow:1;padding:0 8px}.gdg-c1tqibwd{background-color:var(--gdg-bg-header);align-items:center;padding:0 8px;display:flex}.gdg-s1dgczr6 .dvn-scroller{overflow:var(--s1dgczr6-0);transform:translateZ(0)}.gdg-s1dgczr6 .dvn-hidden{visibility:hidden}.gdg-s1dgczr6 .dvn-scroll-inner{pointer-events:none;display:flex}.gdg-s1dgczr6 .dvn-scroll-inner>*{flex-shrink:0}.gdg-s1dgczr6 .dvn-scroll-inner .dvn-spacer{flex-grow:1}.gdg-s1dgczr6 .dvn-scroll-inner .dvn-stack{flex-direction:column;display:flex}.gdg-s1dgczr6 .dvn-underlay>*{position:absolute;top:0;left:0}.gdg-s1dgczr6 canvas{outline:none}.gdg-s1dgczr6 canvas *{height:0}.gdg-wmyidgi{height:var(--wmyidgi-1);min-width:10px;max-width:100%;min-height:10px;max-height:100%;width:var(--wmyidgi-0);direction:ltr;position:relative;overflow:clip}.gdg-wmyidgi>:first-child{width:100%;height:100%;position:absolute;top:0;left:0}.gdg-b1ygi5by{flex-wrap:wrap;margin-top:auto;margin-bottom:auto;display:flex;overflow:auto}.gdg-b1ygi5by .boe-bubble{background-color:var(--gdg-bg-bubble);border-radius:var(--gdg-rounding-radius,calc(var(--gdg-bubble-height)/2));color:var(--gdg-text-dark);height:var(--gdg-bubble-height);margin:var(--gdg-bubble-margin);padding:0 var(--gdg-bubble-padding);white-space:nowrap;justify-content:center;align-items:center;display:flex}.gdg-b1ygi5by textarea{opacity:0;width:0;height:0;position:absolute;top:0;left:0}.gdg-u1rrojo{flex-grow:1;align-items:center;min-height:21px;display:flex}.gdg-u1rrojo .gdg-link-area{color:var(--gdg-link-color);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;flex-grow:1;flex-shrink:1;margin-right:8px;overflow:hidden;text-decoration:underline!important}.gdg-u1rrojo .gdg-edit-icon{color:var(--gdg-accent-color);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;width:32px;display:flex}.gdg-u1rrojo .gdg-edit-icon>*{width:24px;height:24px}.gdg-u1rrojo textarea{opacity:0;width:0;height:0;position:absolute;top:0;left:0}.gdg-m1pnx84e{color:var(--gdg-text-dark);min-width:var(--m1pnx84e-0);justify-content:space-between;align-items:flex-start;width:100%;display:flex;position:relative}.gdg-m1pnx84e .gdg-g1y0xocz{flex-shrink:1;min-width:0}.gdg-m1pnx84e .gdg-spacer{flex:1}.gdg-m1pnx84e .gdg-edit-icon{color:var(--gdg-accent-color);cursor:pointer;height:24px;transition:all "0.125s ease";border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:24px;padding:0;display:flex;position:relative}.gdg-m1pnx84e .gdg-edit-icon>*{width:16px;height:16px}.gdg-m1pnx84e .gdg-edit-hover :hover{background-color:var(--gdg-accent-light);transition:background-color .15s}.gdg-m1pnx84e .gdg-checkmark-hover :hover{background-color:var(--gdg-accent-color);color:#fff}.gdg-m1pnx84e .gdg-md-edit-textarea{opacity:0;width:0;height:0;margin-top:25px;padding:0;position:relative;top:0;left:0}.gdg-m1pnx84e .gdg-ml-6{margin-left:6px}.gdg-d4zsq0x{flex-wrap:wrap;display:flex}.gdg-d4zsq0x .doe-bubble{background-color:var(--gdg-bg-cell);border-radius:var(--gdg-rounding-radius,6px);color:var(--gdg-text-dark);justify-content:center;align-items:center;height:24px;margin:2px;padding:0 8px;display:flex;box-shadow:0 0 1px #3e415666,0 1px 3px #3e415666}.gdg-d4zsq0x .doe-bubble img{object-fit:contain;height:16px;margin-right:4px}.gdg-d4zsq0x textarea{opacity:0;width:0;height:0;position:absolute;top:0;left:0}.gdg-i2iowwq{height:100%;display:flex}.gdg-i2iowwq .gdg-centering-container{justify-content:center;align-items:center;height:100%;display:flex}.gdg-i2iowwq .gdg-centering-container canvas,.gdg-i2iowwq .gdg-centering-container img{max-height:calc(100vh - var(--overlay-top) - 20px);object-fit:contain;-webkit-user-select:none;user-select:none}.gdg-i2iowwq .gdg-centering-container canvas{max-width:380px}.gdg-i2iowwq .gdg-edit-icon{color:var(--gdg-accent-color);cursor:pointer;justify-content:center;align-items:center;width:48px;height:48px;display:flex;position:absolute;top:12px;right:0}.gdg-i2iowwq .gdg-edit-icon>*{width:24px;height:24px}.gdg-i2iowwq textarea{opacity:0;width:0;height:0;position:absolute;top:0;left:0}.gdg-n15fjm3e{color:var(--gdg-text-dark);margin:6px 0 3px;display:flex}.gdg-n15fjm3e>input{background-color:var(--gdg-bg-cell);color:var(--gdg-text-dark);padding:0}.gdg-d19meir1,.gdg-n15fjm3e>input{font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size)}.gdg-d19meir1{box-sizing:border-box;--overlay-top:var(--d19meir1-0);left:var(--d19meir1-1);max-height:calc(100vh - var(--d19meir1-4));max-width:400px;min-height:var(--d19meir1-3);min-width:var(--d19meir1-2);text-align:start;top:var(--d19meir1-0);flex-direction:column;width:max-content;display:flex;position:absolute;overflow:hidden}@keyframes glide_fade_in-gdg-d19meir1{0%{opacity:0}to{opacity:1}}.gdg-d19meir1.gdg-style{background-color:var(--gdg-bg-cell);box-shadow:0 0 0 1px var(--gdg-accent-color),0 0 1px #3e415666,0 6px 12px #3e415626;border-radius:2px;animation:60ms glide_fade_in-gdg-d19meir1}.gdg-d19meir1.gdg-pad{padding:var(--d19meir1-5) 8.5px 3px}.gdg-d19meir1 .gdg-clip-region{border-radius:2px;flex-direction:column;flex-grow:1;display:flex;overflow:hidden auto}.gdg-d19meir1 .gdg-clip-region .gdg-growing-entry{height:100%}.gdg-d19meir1 .gdg-clip-region input.gdg-input{border:0;outline:none;width:100%}.gdg-d19meir1 .gdg-clip-region textarea.gdg-input{border:0;outline:none}.gdg-seveqep{background-color:var(--gdg-bg-cell);border:1px solid var(--gdg-border-color);color:var(--gdg-text-dark);font-size:var(--gdg-editor-font-size);border-radius:6px;padding:8px;animation:.15s forwards gdg-search-fadein-gdg-seveqep;position:absolute;top:4px;right:20px}.gdg-seveqep.out{animation:.15s forwards gdg-search-fadeout-gdg-seveqep}.gdg-seveqep .gdg-search-bar-inner{display:flex}.gdg-seveqep .gdg-search-status{padding-top:4px;font-size:11px}.gdg-seveqep .gdg-search-progress{background-color:var(--gdg-text-light);height:4px;position:absolute;bottom:0;left:0}.gdg-seveqep input{background-color:var(--gdg-bg-cell);color:var(--gdg-text-dark);border:0;outline:none;width:220px}.gdg-seveqep button{color:var(--gdg-text-medium);cursor:pointer;background:0 0;border:none;outline:none;justify-content:center;align-items:center;width:24px;height:24px;padding:0;display:flex}.gdg-seveqep button:hover{color:var(--gdg-text-dark)}.gdg-seveqep button .button-icon{width:16px;height:16px}.gdg-seveqep button:disabled{opacity:.4;pointer-events:none}@keyframes gdg-search-fadeout-gdg-seveqep{0%{transform:translate(0)}to{transform:translate(400px)}}@keyframes gdg-search-fadein-gdg-seveqep{0%{transform:translate(400px)}to{transform:translate(0)}}.gdg-mnuv029{word-break:break-word;-webkit-touch-callout:default;padding-top:6px}.gdg-mnuv029>*{margin:0}.gdg-mnuv029 :last-child{margin-bottom:0}.gdg-mnuv029 p img{width:100%}.gdg-izpuzkl{font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);resize:none;white-space:pre-wrap;-webkit-text-fill-color:var(--gdg-text-dark);width:100%;min-width:100%;height:100%;color:var(--gdg-text-dark);background-color:#0000;border:0;border-radius:0;margin:0;padding:0;line-height:16px;position:absolute;inset:0;overflow:hidden}.gdg-invalid .gdg-izpuzkl{-webkit-text-decoration:underline #d60606;text-decoration:underline #d60606}.gdg-izpuzkl ::-webkit-input-placeholder{color:var(--gdg-text-light)}.gdg-izpuzkl ::placeholder{color:var(--gdg-text-light)}.gdg-izpuzkl :-ms-placeholder-shown{color:var(--gdg-text-light)}.gdg-izpuzkl ::placeholder{color:var(--gdg-text-light)}.gdg-s69h75o{visibility:hidden;white-space:pre-wrap;word-wrap:break-word;color:var(--gdg-text-dark);font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);width:max-content;min-width:100%;max-width:100%;margin:0;padding:0 0 2px;line-height:16px}.gdg-g1y0xocz{margin-top:6px;position:relative}`,Uv=e=>{let t=(0,q.c)(14),{wrapperClassName:n,className:r,pageSize:i}=e,a=i===void 0?10:i,o;t[0]===n?o=t[1]:(o=W(n,`flex flex-col space-y-2`),t[0]=n,t[1]=o);let s=r||`rounded-md border`,c;t[2]===s?c=t[3]:(c=W(s),t[2]=s,t[3]=c);let l;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,K.jsx)(js,{children:Array.from({length:1}).map(Gv)}),t[4]=l):l=t[4];let u;t[5]===a?u=t[6]:(u=(0,K.jsxs)(Is,{children:[l,(0,K.jsx)(Ns,{children:Array.from({length:a}).map(qv)})]}),t[5]=a,t[6]=u);let d;t[7]!==c||t[8]!==u?(d=(0,K.jsx)(`div`,{part:`table-wrapper`,className:c,children:u}),t[7]=c,t[8]=u,t[9]=d):d=t[9];let f;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,K.jsx)(`div`,{className:`flex align-items justify-between shrink-0 h-8`}),t[10]=f):f=t[10];let p;return t[11]!==o||t[12]!==d?(p=(0,K.jsxs)(`div`,{className:o,children:[d,f]}),t[11]=o,t[12]=d,t[13]=p):p=t[13],p};function Wv(e,t){return(0,K.jsx)(Ms,{children:(0,K.jsx)(`div`,{className:`h-4 bg-(--slate-5) animate-pulse rounded-md w-[70%]`})},t)}function Gv(e,t){return(0,K.jsx)(Ps,{children:Array.from({length:8}).map(Wv)},t)}function Kv(e,t){return(0,K.jsx)(Fs,{children:(0,K.jsx)(`div`,{className:`h-4 bg-(--slate-5) animate-pulse rounded-md w-[90%]`})},t)}function qv(e,t){return(0,K.jsx)(Ps,{children:Array.from({length:8}).map(Kv)},t)}var Jv=[`string`,`boolean`,`integer`,`number`,`date`,`datetime`,`time`,`geometry`,`unknown`],Yv=[`int8`,`int16`,`int32`,`int64`,`uint8`,`uint16`,`uint32`,`uint64`,`float16`,`float32`,`float64`,`complex64`,`complex128`,`bool`,`object`,`str`,`unicode`,`datetime64`,`timedelta64`],Xv=[`count`,`sum`,`mean`,`median`,`min`,`max`],Zv={number:O().describe(f.of({label:`Value`})),string:z().min(1).describe(f.of({label:`Value`})),stringColumnValues:z().min(1).describe(f.of({label:`Value`,special:`column_values`})),stringMultiColumnValues:V(z()).min(1).describe(f.of({label:`Value`,special:`column_values`})),date:S().describe(f.of({label:`Value`,special:`date`})),datetime:S().describe(f.of({label:`Value`,special:`datetime`})),time:z().regex(/^\d{2}:\d{2}(:\d{2})?$/).describe(f.of({label:`Value`,special:`time`}))},Qv={is_true:[],is_false:[]},$v=e=>({"==":[e],"!=":[e],">":[e],">=":[e],"<":[e],"<=":[e],between:[R({min:e,max:e})],is_null:[],is_not_null:[]}),ey=$v(Zv.number),ty=$v(Zv.date),ny=$v(Zv.time),ry=$v(Zv.datetime),iy={equals:[Zv.stringColumnValues],does_not_equal:[Zv.stringColumnValues],contains:[Zv.string],regex:[Zv.string],starts_with:[Zv.string],ends_with:[Zv.string],in:[Zv.stringMultiColumnValues],not_in:[Zv.stringMultiColumnValues],is_empty:[],is_null:[],is_not_null:[]},ay={...Qv,...ey,...ty,...ny,...ry,...iy};function oy(e){return e?e.startsWith(`int`)?`integer`:e.startsWith(`float`)||e.startsWith(`uint`)||e.startsWith(`number`)||e.startsWith(`complex`)?`number`:e.startsWith(`string`)||e.startsWith(`object`)||e.startsWith(`utf8`)?`string`:e.startsWith(`datetime`)?`datetime`:e.startsWith(`time`)?`time`:e.startsWith(`date`)?`date`:e.startsWith(`bool`)?`boolean`:`unknown`:`unknown`}function sy(e){if(!e)return[];switch(oy(e)){case`integer`:return Object.keys(ey);case`number`:return Object.keys(ey);case`string`:return Object.keys(iy);case`date`:return Object.keys(ty);case`datetime`:return Object.keys(ry);case`time`:return Object.keys(ny);case`boolean`:return Object.keys(Qv);case`unknown`:return[]}}function cy(e,t){if(!e||!t)return[];switch(oy(e)){case`integer`:return uy(ey,t);case`number`:return uy(ey,t);case`string`:return uy(iy,t);case`date`:return uy(ty,t);case`datetime`:return uy(ry,t);case`time`:return uy(ny,t);case`boolean`:return uy(Qv,t);case`unknown`:return[]}}function ly(e,t){let n=[uy(Qv,e),uy(ty,e),uy(ny,e),uy(ry,e),uy(ey,e),uy(iy,e)].flat();return n.length===0||n.some(e=>e.safeParse(t).success)}var uy=(e,t)=>e[t]?e[t]:[],dy=V(it([Le(),it([gt(Jv).catch(`unknown`),z()])])),fy=z().min(1,`Required`).or(B()).transform(e=>e).describe(f.of({label:`Column`,special:`column_id`})),py=V(fy.describe(f.of({special:`column_id`}))).min(1,`At least one column is required`).default([]).describe(f.of({label:`Columns`,minLength:1})),my=R({type:pt(`column_conversion`),column_id:fy,data_type:gt(Yv).describe(f.of({label:`Data type (numpy)`})).default(`bool`),errors:gt([`ignore`,`raise`]).default(`ignore`).describe(f.of({label:`Handle errors`,special:`radio_group`}))}).describe(f.of({})),hy=R({type:pt(`rename_column`),column_id:fy,new_column_id:z().min(1,`Required`).transform(e=>e).describe(f.of({label:`New column name`,minLength:1}))}),gy=R({type:pt(`sort_column`),column_id:fy,ascending:H().describe(f.of({label:`Ascending`})).default(!0),na_position:gt([`first`,`last`]).describe(f.of({label:`N/A position`,special:`radio_group`})).default(`last`)}),_y=R({column_id:fy,operator:gt(Object.keys(ay)).describe(f.of({label:` `})),type:pt(`condition`).default(`condition`),value:vt().optional().describe(f.of({label:`Value`})),negate:H().default(!1)}).describe(f.of({direction:`row`,special:`column_filter`})),vy=ct(()=>R({type:pt(`group`).default(`group`),operator:gt([`and`,`or`]).default(`and`),children:V(nt([_y,vy])).default([]),negate:H().default(!1)})),yy=R({type:pt(`filter_rows`),operation:gt([`keep_rows`,`remove_rows`]).default(`keep_rows`).describe(f.of({special:`radio_group`})),where:V(_y).min(1).describe(f.of({label:`Value`,minLength:1})).default(()=>[{column_id:``,operator:`==`,value:``,type:`condition`,negate:!1}]).transform(e=>({type:`group`,operator:`and`,children:e.filter(e=>ly(e.operator,e.value)),negate:!1}))}),by=R({type:pt(`group_by`),column_ids:V(fy.describe(f.of({special:`column_id`}))).default([]).describe(f.of({label:`Group by columns`,minLength:1})),aggregation_column_ids:V(fy.describe(f.of({special:`column_id`}))).default([]).describe(f.of({label:`Aggregate on columns`})),aggregation:gt(Xv).default(`count`).describe(f.of({label:`Aggregation`})),drop_na:H().default(!1).describe(f.of({label:`Drop N/A`}))}).describe(f.of({})),xy=R({type:pt(`aggregate`),column_ids:py,aggregations:V(gt(Xv)).min(1,`At least one aggregation is required`).default([`count`]).describe(f.of({label:`Aggregations`,minLength:1}))}).describe(f.of({direction:`row`})),Sy=R({type:pt(`select_columns`),column_ids:py}),Cy=R({type:pt(`sample_rows`),n:B().positive().describe(f.of({label:`Number of rows`})),seed:B().default(()=>ke()).describe(f.of({label:`Re-sample`,special:`random_number_button`})),replace:H().default(!1).describe(f.of({label:`Sample with replacement`}))}),wy=R({type:pt(`shuffle_rows`),seed:B().default(()=>ke()).describe(f.of({label:`Re-shuffle`,special:`random_number_button`}))}),Ty=R({type:pt(`explode_columns`),column_ids:py}),Ey=R({type:pt(`expand_dict`),column_id:fy}),Dy=R({type:pt(`unique`),column_ids:py,keep:gt([`first`,`last`,`none`,`any`]).default(`first`).describe(f.of({label:`Keep`}))}).describe(f.of({direction:`row`})),Oy=R({type:pt(`pivot`),column_ids:py,index_column_ids:V(fy.describe(f.of({special:`column_id`}))).default([]).describe(f.of({label:`Rows`})),value_column_ids:V(fy.describe(f.of({special:`column_id`}))).default([]).describe(f.of({label:`Values`,minLength:1})),aggregation:gt(Xv).default(`sum`).describe(f.of({label:`Aggregation`}))}).describe(f.of({})),ky=nt([yy,Sy,hy,my,gy,by,xy,Cy,wy,Ty,Ey,Dy,Oy]),Ay=R({transforms:V(ky)});function jy(e,t){let n=new Map;for(let r of t)n.set(r,e.get(r)??`unknown`);for(let[t,r]of e)n.has(t)||n.set(t,r);return n}function My(e,t){return e.map(e=>{let{[t]:n,...r}=e;return r})}function Ny(e,t,n){return t?e.map(e=>{let r=Object.entries(e),i=Math.max(0,Math.min(n??r.length,r.length));return r.splice(i,0,[t,``]),Object.fromEntries(r)}):e}function Py(e,t,n){return!t||!n||t===n||e.some(e=>Object.hasOwn(e,n))?e:e.map(e=>Object.fromEntries(Object.entries(e).map(([e,r])=>[e===t?n:e,r])))}function Fy(e){let{columnFields:t,columnIdx:n}=e;switch(e.type){case xo.Insert:{if(!e.newColumnName)return U.error(`newName is required for insert`),t;let r=[...t.entries()],i=[...r.slice(0,n),[e.newColumnName,e.dataType??`string`],...r.slice(n)];return new Map(i)}case xo.Remove:{if(n<0||n>=t.size)return t;let e=[...t.entries()][n]?.[0];if(e){let n=new Map(t);return n.delete(e),n}return t}case xo.Rename:{if(!e.newColumnName)return U.error(`newName is required for rename`),t;if(n<0||n>=t.size)return t;let r=[...t.entries()],i=[...r.slice(0,n),[e.newColumnName,e.dataType??`string`],...r.slice(n+1)];return new Map(i)}default:return da(e),t}}function Iy(e,t){let n=[...e.data],r=new Map(e.columnFields);for(let e of t){if(So(e)){if(e.rowIdx<0)continue;for(;n.length<=e.rowIdx;)n.push({});n[e.rowIdx]={...n[e.rowIdx],[e.columnId]:e.value},r.has(e.columnId)||r.set(e.columnId,`unknown`);continue}if(bo(e)){e.type===xo.Remove&&e.rowIdx>=0&&e.rowIdx<n.length&&n.splice(e.rowIdx,1);continue}if(!wo(e))continue;let t=[...r.keys()][e.columnIdx];switch(e.type){case xo.Remove:if(t===void 0)break;n=My(n,t),r=Fy({columnFields:r,columnIdx:e.columnIdx,type:`remove`});break;case xo.Insert:if(!e.newName||e.columnIdx<0||e.columnIdx>r.size||r.has(e.newName))break;n=Ny(n,e.newName,e.columnIdx),r=Fy({columnFields:r,columnIdx:e.columnIdx,type:`insert`,dataType:e.dataType,newColumnName:e.newName});break;case xo.Rename:if(t===void 0||!e.newName||r.has(e.newName))break;n=Py(n,t,e.newName),r=Fy({columnFields:r,columnIdx:e.columnIdx,type:`rename`,dataType:r.get(t),newColumnName:e.newName});break;default:da(e)}}return{data:n,columnFields:r}}var Ly=G.lazy(()=>Ho(()=>import(`./glide-data-editor-sICUMEhk.js`),__vite__mapDeps([329,1,2,3,4,6,74,21,18,30,16,17,24,25,31,26,27,28,32,33,34,35,75,36,76,46,47,19,93,330,331,59,54,55,41,40,56,8,9,10,11,168,62,58,70,12,7,13,14,15,108,169,332,158,333,334]),import.meta.url)),Ry=Ev(`marimo-data-editor`,{cssStyles:[Hv]}).withData(R({initialValue:R({edits:V(R({rowIdx:B(),columnId:z(),value:at()}))}),label:z().nullable(),data:nt([z(),V(R({}).passthrough())]),fieldTypes:dy.nullish(),columnNames:V(z()).default([]),editableColumns:nt([V(z()),pt(`all`)]),columnSizingMode:gt([`auto`,`fit`]).default(`auto`)})).withFunctions({}).renderer(e=>(0,K.jsx)(zy,{data:e.data.data,fieldTypes:e.data.fieldTypes,columnNames:e.data.columnNames,edits:e.value,onEdits:e.setValue,editableColumns:e.data.editableColumns})),zy=e=>{let t=(0,q.c)(20),[n,r]=(0,G.useState)(null),i,a;t[0]!==e.columnNames||t[1]!==e.data||t[2]!==e.fieldTypes?(i=async()=>{let t=Ai(e.fieldTypes??[]),n=Array.isArray(e.data)?e.data:await _s(e.data,{type:`csv`,parse:ks(Object.fromEntries(t))},{handleBigIntAndNumberLike:!0});return{data:n,columnFields:jy(Ai(e.fieldTypes??ji(n)),e.columnNames)}},a=[e.fieldTypes,e.columnNames,e.data],t[0]=e.columnNames,t[1]=e.data,t[2]=e.fieldTypes,t[3]=i,t[4]=a):(i=t[3],a=t[4]);let{data:o,error:s}=as(i,a),c,l;if(t[5]!==o||t[6]!==e.edits.edits?(c=()=>{o!==void 0&&r(Iy(o,e.edits.edits))},l=[o,e.edits.edits],t[5]=o,t[6]=e.edits.edits,t[7]=c,t[8]=l):(c=t[7],l=t[8]),(0,G.useEffect)(c,l),s){let e;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,K.jsx)(Ts,{children:`Error`}),t[9]=e):e=t[9];let n=s.message||`An unknown error occurred`,r;return t[10]===n?r=t[11]:(r=(0,K.jsxs)(Es,{variant:`destructive`,className:`mb-2`,children:[e,(0,K.jsx)(`div`,{className:`text-md`,children:n})]}),t[10]=n,t[11]=r),r}if(n===null){let e;return t[12]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,K.jsx)(di,{milliseconds:200,children:(0,K.jsx)(Uv,{pageSize:10})}),t[12]=e):e=t[12],e}let u;t[13]===e?u=t[14]:(u=t=>{r(e=>e===null?null:Iy(e,t)),e.onEdits(e=>({...e,edits:[...e.edits,...t]}))},t[13]=e,t[14]=u);let d;return t[15]!==n.columnFields||t[16]!==n.data||t[17]!==e.editableColumns||t[18]!==u?(d=(0,K.jsx)(Ly,{data:n.data,columnFields:n.columnFields,editableColumns:e.editableColumns,onAddEdits:u}),t[15]=n.columnFields,t[16]=n.data,t[17]=e.editableColumns,t[18]=u,t[19]=d):d=t[19],d},By=` `;function Vy(e){return e.split(`
|
|
6
|
+
`),t.append(n)}}isAdoptedStyleSheetsSupported(){return`adoptedStyleSheets`in Document.prototype&&`replace`in CSSStyleSheet.prototype}};zp(e.tagName,t)}function _v(e){return e.title?.startsWith(`marimo`)?!0:!e.href||!e.href.endsWith(`.css`)?!1:(e.href.includes(`127.0.0.1`),e.href.includes(`/@marimo-team/`)?!0:e.href.startsWith(window.location.origin))}function vv(e){return!e||!(e instanceof HTMLElement)?!1:`__type__`in e&&e.__type__===hv}function yv(e,t){let n=e.safeParse(t);if(!n.success)throw U.log(`Failed to parse data`,t,n.error),Error(ft(n.error));return n.data}var bv=`MARIMO-UI-ELEMENT`;function xv(){class e extends HTMLElement{initialized=!1;inputListener=qt.NOOP;init(){if(this.initialized)return;let e=k.parseOrThrow(this);this.inputListener=n=>{e!==null&&n.detail.element===this.firstElementChild&&(Bt.has(e)||Bt.registerInstance(e,t),Bt.broadcastValueUpdate(t,e,n.detail.value))};let t=this.firstElementChild;if(e===null){U.error(`[marimo-ui-element] missing object-id attribute`);return}if(t===null){U.error(`[marimo-ui-element] has no child`);return}if(!(t instanceof HTMLElement)){U.error(`[marimo-ui-element] first child must be instance of HTMLElement`);return}this.initialized=!0}connectedCallback(){if(this.init(),this.initialized){let e=k.parseOrThrow(this),t=this.firstElementChild;Bt.registerInstance(e,t),document.addEventListener(Ss.TYPE,this.inputListener)}}disconnectedCallback(){if(this.initialized){document.removeEventListener(Ss.TYPE,this.inputListener);let e=k.parseOrThrow(this);Bt.removeInstance(e,this.firstElementChild)}}reset(){let e=this.firstElementChild;vv(e)?e.reset():U.error(`[marimo-ui-element] first child must have a reset method`)}static get observedAttributes(){return[h]}attributeChangedCallback(e,t,n){if(this.initialized&&e===`random-id`&&t!==n){this.disconnectedCallback();let e=this.firstElementChild;vv(e)?e.rerender():U.error(`[marimo-ui-element] first child must have a rerender method`),this.initialized=!1,this.connectedCallback()}}}zp(bv.toLowerCase(),e)}function Sv(e){if(!e)return null;if(e.nodeName===bv)return k.parseOrThrow(e);let t=e.parentElement;return t?.nodeName===bv?k.parseOrThrow(t):null}function Cv(e){return e.tagName===bv}var wv=(0,qo().init)({length:6});function Tv(){zp(`marimo-sidebar`,class extends HTMLElement{observer;uniqueId=Symbol(wv());connectedCallback(){this.mountReactComponent(),this.observer=new MutationObserver(()=>{this.updateReactComponent()}),this.style.display=`none`,this.observer.observe(this,{attributes:!0,childList:!0,subtree:!0,characterData:!0})}disconnectedCallback(){this.observer&&(this.observer.disconnect(),this.unmountReactComponent())}mountReactComponent(){this.syncWidth(),Ri.mount({name:Vr.SIDEBAR,ref:this.uniqueId,children:this.getContents()})}unmountReactComponent(){Ri.unmount({name:Vr.SIDEBAR,ref:this.uniqueId})}updateReactComponent(){this.syncWidth(),Ri.update({name:Vr.SIDEBAR,ref:this.uniqueId,children:this.getContents()})}syncWidth(){try{let e=this.dataset.width;e?a.set(Ht,{type:`setWidth`,width:JSON.parse(e)}):a.set(Ht,{type:`setWidth`,width:void 0})}catch(e){U.error(e)}}getContents(){return us({html:this.innerHTML})}})}function Ev(e,t={}){return{withData(n){return{withFunctions(r){return{renderer(i){return{...t,tagName:e,validator:n,functions:r,render:i}}}},renderer(r){return{...t,tagName:e,validator:n,render:r}}}}}}var Dv=Ev(`marimo-anywidget`).withData(R({modelId:tt(Wt,{message:`Expected a non-empty widget model id`})})).withFunctions({}).renderer(e=>(0,K.jsx)(Ov,{...e})),Ov=e=>{let t=(0,q.c)(9),{modelId:n}=e.data,i=(0,G.useRef)(null),[a,o]=(0,G.useState)(),s=r(Dn),c,l;t[0]!==s||t[1]!==n?(c=()=>{if(!s)return;let e=i.current;if(!e)return;let t=new AbortController;return o(void 0),Ut.createView({modelId:n,el:e,signal:t.signal}).catch(e=>{t.signal.aborted||o(e instanceof Error?e:Error(String(e)))}),()=>t.abort()},l=[s,n],t[0]=s,t[1]=n,t[2]=c,t[3]=l):(c=t[2],l=t[3]),(0,G.useEffect)(c,l);let u;t[4]===a?u=t[5]:(u=a?(0,K.jsx)(Ds,{error:a}):null,t[4]=a,t[5]=u);let d;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,K.jsx)(`div`,{ref:i}),t[6]=d):d=t[6];let f;return t[7]===u?f=t[8]:(f=(0,K.jsxs)(K.Fragment,{children:[u,d]}),t[7]=u,t[8]=f),f},kv=gt([`neutral`,`success`,`warn`,`danger`,`info`,`alert`]).default(`neutral`),Av=class{tagName=`marimo-button`;validator=R({label:z(),kind:kv,disabled:H().default(!1),fullWidth:H().default(!1),tooltip:z().optional(),keyboardShortcut:z().optional()});render(e){let{data:{disabled:t,kind:n,label:r,fullWidth:i,tooltip:a,keyboardShortcut:o}}=e,s=(0,K.jsx)(ra,{"data-testid":`marimo-plugin-button`,variant:jv(n),disabled:t,size:`xs`,keyboardShortcut:o,className:W({"w-full":i,"w-fit":!i}),onClick:n=>{t||(n.stopPropagation(),e.setValue(e=>e+1))},type:`submit`,children:us({html:r})}),c=o&&!a?(0,K.jsx)(Ls,{shortcut:o}):a;return c?(0,K.jsx)(ta,{content:c,delayDuration:200,children:s}):s}};function jv(e){switch(e){case`neutral`:return`secondary`;case`danger`:return`destructive`;case`warn`:return`warn`;case`success`:return`success`}}var Mv=e=>{let t=(0,q.c)(27),{label:n,children:r,align:i,className:a,labelClassName:o,fullWidth:s,id:c}=e,l=i===void 0?`left`:i;if(s&&(l=`top`),!n){if(l===`top`){let e;return t[0]!==r||t[1]!==a?(e=(0,K.jsx)(`div`,{className:a,children:r}),t[0]=r,t[1]=a,t[2]=e):e=t[2],e}let e;t[3]===a?e=t[4]:(e=W(`inline-flex`,a),t[3]=a,t[4]=e);let n;return t[5]!==r||t[6]!==e?(n=(0,K.jsx)(`div`,{className:e,children:r}),t[5]=r,t[6]=e,t[7]=n):n=t[7],n}let u;t[8]===o?u=t[9]:(u=W(`font-prose`,o),t[8]=o,t[9]=u);let d;t[10]===n?d=t[11]:(d=us({html:n}),t[10]=n,t[11]=d);let f;t[12]!==c||t[13]!==u||t[14]!==d?(f=(0,K.jsx)(`div`,{part:`label`,className:`inline-flex items-center m-0 p-0`,children:(0,K.jsx)(vr,{htmlFor:c,className:u,children:d})}),t[12]=c,t[13]=u,t[14]=d,t[15]=f):f=t[15];let p=f,m=l===`top`&&`flex-col items-start gap-y-2`,h=l===`left`&&`flex-row items-center gap-x-1.5 pr-2`,g=l===`right`&&`flex-row-reverse items-center gap-x-1.5 pr-2`,_=s&&`block space-y-2`,v=!s&&`w-fit`,y;t[16]!==a||t[17]!==m||t[18]!==h||t[19]!==g||t[20]!==_||t[21]!==v?(y=W(`mo-label inline-flex`,`pt-0 pb-0 pl-0`,m,h,g,_,v,a),t[16]=a,t[17]=m,t[18]=h,t[19]=g,t[20]=_,t[21]=v,t[22]=y):y=t[22];let b;return t[23]!==r||t[24]!==p||t[25]!==y?(b=(0,K.jsxs)(`div`,{className:y,children:[p,r]}),t[23]=r,t[24]=p,t[25]=y,t[26]=b):b=t[26],b},Nv=class{tagName=`marimo-checkbox`;validator=R({initialValue:H(),label:z().nullable(),disabled:H().optional()});render(e){return(0,K.jsx)(Pv,{...e})}},Pv=e=>{let t=(0,q.c)(11),{value:n,setValue:r,data:i}=e,a;t[0]===r?a=t[1]:(a=e=>{e!==`indeterminate`&&r(e)},t[0]=r,t[1]=a);let o=a,s=(0,G.useId)(),c;t[2]!==i.disabled||t[3]!==s||t[4]!==o||t[5]!==n?(c=(0,K.jsx)(D,{"data-testid":`marimo-plugin-checkbox`,checked:n,onCheckedChange:o,id:s,disabled:i.disabled}),t[2]=i.disabled,t[3]=s,t[4]=o,t[5]=n,t[6]=c):c=t[6];let l;return t[7]!==i.label||t[8]!==s||t[9]!==c?(l=(0,K.jsx)(Mv,{label:i.label,align:`right`,id:s,children:c}),t[7]=i.label,t[8]=s,t[9]=c,t[10]=l):l=t[10],l},Fv=class{tagName=`marimo-code-editor`;validator=R({initialValue:z(),language:z().default(`python`),placeholder:z(),theme:gt([`light`,`dark`]).optional(),label:z().nullable(),disabled:H().optional(),minHeight:B().optional(),maxHeight:B().optional(),showCopyButton:H().optional(),debounce:nt([H(),B()]).default(!1)});render(e){return(0,K.jsx)(Iv,{...e.data,value:e.value,setValue:e.setValue})}},Iv=e=>{let t=(0,q.c)(36),{theme:n}=Xo(),r=e.theme||n,i=e.minHeight?`${e.minHeight}px`:`70px`,a=e.maxHeight?`${e.maxHeight}px`:void 0,[o,c]=(0,G.useState)(e.value),l=e.value,u=Number.isFinite(e.debounce)?e.debounce:0,d=e.setValue,f;t[0]===e.debounce?f=t[1]:(f=Number.isFinite(e.debounce),t[0]=e.debounce,t[1]=f);let p=!f,m;t[2]!==e.setValue||t[3]!==e.value||t[4]!==u||t[5]!==p?(m={initialValue:l,delay:u,onChange:d,disabled:p},t[2]=e.setValue,t[3]=e.value,t[4]=u,t[5]=p,t[6]=m):m=t[6];let{onChange:h}=rs(m),g;t[7]!==e||t[8]!==h?(g=t=>{c(e=>t),typeof e.debounce==`number`?h(t):e.debounce||e.setValue(t)},t[7]=e,t[8]=h,t[9]=g):g=t[9];let _=s(g),v,y;t[10]===e.value?(v=t[11],y=t[12]):(v=()=>{c(e.value)},y=[e.value],t[10]=e.value,t[11]=v,t[12]=y),(0,G.useEffect)(v,y);let b;t[13]!==o||t[14]!==e?(b=()=>{e.setValue(o)},t[13]=o,t[14]=e,t[15]=b):b=t[15];let x=s(b),S;bb0:{if(e.debounce===!0){let e;t[16]===x?e=t[17]:(e=ia.domEventHandlers({blur:x}),t[16]=x,t[17]=e);let n;t[18]===e?n=t[19]:(n=[e],t[18]=e,t[19]=n),S=n;break bb0}let n;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(n=[],t[20]=n):n=t[20],S=n}let C=S,w=`cm *:outline-hidden border rounded overflow-hidden ${r}`,T=r===`dark`?`dark`:`light`,E=!e.disabled,D;t[21]!==C||t[22]!==_||t[23]!==o||t[24]!==a||t[25]!==i||t[26]!==e.language||t[27]!==e.placeholder||t[28]!==e.showCopyButton||t[29]!==w||t[30]!==T||t[31]!==E?(D=(0,K.jsx)(Ga,{className:w,theme:T,minHeight:i,maxHeight:a,placeholder:e.placeholder,editable:E,value:o,language:e.language,onChange:_,showCopyButton:e.showCopyButton,extensions:C}),t[21]=C,t[22]=_,t[23]=o,t[24]=a,t[25]=i,t[26]=e.language,t[27]=e.placeholder,t[28]=e.showCopyButton,t[29]=w,t[30]=T,t[31]=E,t[32]=D):D=t[32];let O;return t[33]!==e.label||t[34]!==D?(O=(0,K.jsx)(Mv,{label:e.label,align:`top`,fullWidth:!0,children:D}),t[33]=e.label,t[34]=D,t[35]=O):O=t[35],O},Lv={input(e){return{output(t){return{input:e,output:t}}}}},Rv=G.lazy(()=>Ho(()=>import(`./chat-ui-DGiVDzNh.js`).then(e=>({default:e.Chatbot})),__vite__mapDeps([325,1,3,5,2,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,75,76,326,327,328,99,100,101,102,103,94,104,92,93,89,80,105,106,107,108,109,110,111,112,113,114,115,317,137,135,138,139,140,303,304,97,85,86,167,145,148,278,130,95,151,134,123,171,299,82,146,147,116,298,122,280]),import.meta.url)),zv=V(R({id:z(),role:gt([`system`,`user`,`assistant`]),content:z().nullable(),parts:V(vt()),metadata:vt().nullable()})),Bv=R({max_tokens:B().nullable(),temperature:B().nullable(),top_p:B().nullable(),top_k:B().nullable(),frequency_penalty:B().nullable(),presence_penalty:B().nullable()}),Vv=Ev(`marimo-chatbot`).withData(R({prompts:V(z()).default(ca.EMPTY),showConfigurationControls:H(),maxHeight:B().optional(),config:Bv,allowAttachments:nt([H(),z().array()]),disabled:H().default(!1)})).withFunctions({get_chat_history:Lv.input(R({})).output(R({messages:zv})),delete_chat_history:Lv.input(R({})).output(yt()),delete_chat_message:Lv.input(R({index:B()})).output(yt()),send_prompt:Lv.input(R({request_id:z(),messages:zv,config:Bv})).output(at()),cancel_prompt:Lv.input(R({request_id:z()})).output(yt())}).renderer(e=>(0,K.jsx)(G.Suspense,{children:(0,K.jsx)(Rv,{prompts:e.data.prompts,showConfigurationControls:e.data.showConfigurationControls,maxHeight:e.data.maxHeight,allowAttachments:e.data.allowAttachments,disabled:e.data.disabled,config:e.data.config,get_chat_history:e.functions.get_chat_history,delete_chat_history:e.functions.delete_chat_history,delete_chat_message:e.functions.delete_chat_message,send_prompt:e.functions.send_prompt,cancel_prompt:e.functions.cancel_prompt,value:e.value?.messages||ca.EMPTY,setValue:t=>e.setValue({messages:t}),host:e.host})})),Hv=`.gdg-r17m35ur{background-color:var(--gdg-bg-header-has-focus);box-shadow:0 0 0 1px var(--gdg-border-color);color:var(--gdg-text-group-header);font:var(--gdg-header-font-style) var(--gdg-font-family);min-height:var(--r17m35ur-0);border:none;border-radius:9px;outline:none;flex-grow:1;padding:0 8px}.gdg-c1tqibwd{background-color:var(--gdg-bg-header);align-items:center;padding:0 8px;display:flex}.gdg-s1dgczr6 .dvn-scroller{overflow:var(--s1dgczr6-0);transform:translateZ(0)}.gdg-s1dgczr6 .dvn-hidden{visibility:hidden}.gdg-s1dgczr6 .dvn-scroll-inner{pointer-events:none;display:flex}.gdg-s1dgczr6 .dvn-scroll-inner>*{flex-shrink:0}.gdg-s1dgczr6 .dvn-scroll-inner .dvn-spacer{flex-grow:1}.gdg-s1dgczr6 .dvn-scroll-inner .dvn-stack{flex-direction:column;display:flex}.gdg-s1dgczr6 .dvn-underlay>*{position:absolute;top:0;left:0}.gdg-s1dgczr6 canvas{outline:none}.gdg-s1dgczr6 canvas *{height:0}.gdg-wmyidgi{height:var(--wmyidgi-1);min-width:10px;max-width:100%;min-height:10px;max-height:100%;width:var(--wmyidgi-0);direction:ltr;position:relative;overflow:clip}.gdg-wmyidgi>:first-child{width:100%;height:100%;position:absolute;top:0;left:0}.gdg-b1ygi5by{flex-wrap:wrap;margin-top:auto;margin-bottom:auto;display:flex;overflow:auto}.gdg-b1ygi5by .boe-bubble{background-color:var(--gdg-bg-bubble);border-radius:var(--gdg-rounding-radius,calc(var(--gdg-bubble-height)/2));color:var(--gdg-text-dark);height:var(--gdg-bubble-height);margin:var(--gdg-bubble-margin);padding:0 var(--gdg-bubble-padding);white-space:nowrap;justify-content:center;align-items:center;display:flex}.gdg-b1ygi5by textarea{opacity:0;width:0;height:0;position:absolute;top:0;left:0}.gdg-u1rrojo{flex-grow:1;align-items:center;min-height:21px;display:flex}.gdg-u1rrojo .gdg-link-area{color:var(--gdg-link-color);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;flex-grow:1;flex-shrink:1;margin-right:8px;overflow:hidden;text-decoration:underline!important}.gdg-u1rrojo .gdg-edit-icon{color:var(--gdg-accent-color);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;width:32px;display:flex}.gdg-u1rrojo .gdg-edit-icon>*{width:24px;height:24px}.gdg-u1rrojo textarea{opacity:0;width:0;height:0;position:absolute;top:0;left:0}.gdg-m1pnx84e{color:var(--gdg-text-dark);min-width:var(--m1pnx84e-0);justify-content:space-between;align-items:flex-start;width:100%;display:flex;position:relative}.gdg-m1pnx84e .gdg-g1y0xocz{flex-shrink:1;min-width:0}.gdg-m1pnx84e .gdg-spacer{flex:1}.gdg-m1pnx84e .gdg-edit-icon{color:var(--gdg-accent-color);cursor:pointer;height:24px;transition:all "0.125s ease";border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:24px;padding:0;display:flex;position:relative}.gdg-m1pnx84e .gdg-edit-icon>*{width:16px;height:16px}.gdg-m1pnx84e .gdg-edit-hover :hover{background-color:var(--gdg-accent-light);transition:background-color .15s}.gdg-m1pnx84e .gdg-checkmark-hover :hover{background-color:var(--gdg-accent-color);color:#fff}.gdg-m1pnx84e .gdg-md-edit-textarea{opacity:0;width:0;height:0;margin-top:25px;padding:0;position:relative;top:0;left:0}.gdg-m1pnx84e .gdg-ml-6{margin-left:6px}.gdg-d4zsq0x{flex-wrap:wrap;display:flex}.gdg-d4zsq0x .doe-bubble{background-color:var(--gdg-bg-cell);border-radius:var(--gdg-rounding-radius,6px);color:var(--gdg-text-dark);justify-content:center;align-items:center;height:24px;margin:2px;padding:0 8px;display:flex;box-shadow:0 0 1px #3e415666,0 1px 3px #3e415666}.gdg-d4zsq0x .doe-bubble img{object-fit:contain;height:16px;margin-right:4px}.gdg-d4zsq0x textarea{opacity:0;width:0;height:0;position:absolute;top:0;left:0}.gdg-i2iowwq{height:100%;display:flex}.gdg-i2iowwq .gdg-centering-container{justify-content:center;align-items:center;height:100%;display:flex}.gdg-i2iowwq .gdg-centering-container canvas,.gdg-i2iowwq .gdg-centering-container img{max-height:calc(100vh - var(--overlay-top) - 20px);object-fit:contain;-webkit-user-select:none;user-select:none}.gdg-i2iowwq .gdg-centering-container canvas{max-width:380px}.gdg-i2iowwq .gdg-edit-icon{color:var(--gdg-accent-color);cursor:pointer;justify-content:center;align-items:center;width:48px;height:48px;display:flex;position:absolute;top:12px;right:0}.gdg-i2iowwq .gdg-edit-icon>*{width:24px;height:24px}.gdg-i2iowwq textarea{opacity:0;width:0;height:0;position:absolute;top:0;left:0}.gdg-n15fjm3e{color:var(--gdg-text-dark);margin:6px 0 3px;display:flex}.gdg-n15fjm3e>input{background-color:var(--gdg-bg-cell);color:var(--gdg-text-dark);padding:0}.gdg-d19meir1,.gdg-n15fjm3e>input{font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size)}.gdg-d19meir1{box-sizing:border-box;--overlay-top:var(--d19meir1-0);left:var(--d19meir1-1);max-height:calc(100vh - var(--d19meir1-4));max-width:400px;min-height:var(--d19meir1-3);min-width:var(--d19meir1-2);text-align:start;top:var(--d19meir1-0);flex-direction:column;width:max-content;display:flex;position:absolute;overflow:hidden}@keyframes glide_fade_in-gdg-d19meir1{0%{opacity:0}to{opacity:1}}.gdg-d19meir1.gdg-style{background-color:var(--gdg-bg-cell);box-shadow:0 0 0 1px var(--gdg-accent-color),0 0 1px #3e415666,0 6px 12px #3e415626;border-radius:2px;animation:60ms glide_fade_in-gdg-d19meir1}.gdg-d19meir1.gdg-pad{padding:var(--d19meir1-5) 8.5px 3px}.gdg-d19meir1 .gdg-clip-region{border-radius:2px;flex-direction:column;flex-grow:1;display:flex;overflow:hidden auto}.gdg-d19meir1 .gdg-clip-region .gdg-growing-entry{height:100%}.gdg-d19meir1 .gdg-clip-region input.gdg-input{border:0;outline:none;width:100%}.gdg-d19meir1 .gdg-clip-region textarea.gdg-input{border:0;outline:none}.gdg-seveqep{background-color:var(--gdg-bg-cell);border:1px solid var(--gdg-border-color);color:var(--gdg-text-dark);font-size:var(--gdg-editor-font-size);border-radius:6px;padding:8px;animation:.15s forwards gdg-search-fadein-gdg-seveqep;position:absolute;top:4px;right:20px}.gdg-seveqep.out{animation:.15s forwards gdg-search-fadeout-gdg-seveqep}.gdg-seveqep .gdg-search-bar-inner{display:flex}.gdg-seveqep .gdg-search-status{padding-top:4px;font-size:11px}.gdg-seveqep .gdg-search-progress{background-color:var(--gdg-text-light);height:4px;position:absolute;bottom:0;left:0}.gdg-seveqep input{background-color:var(--gdg-bg-cell);color:var(--gdg-text-dark);border:0;outline:none;width:220px}.gdg-seveqep button{color:var(--gdg-text-medium);cursor:pointer;background:0 0;border:none;outline:none;justify-content:center;align-items:center;width:24px;height:24px;padding:0;display:flex}.gdg-seveqep button:hover{color:var(--gdg-text-dark)}.gdg-seveqep button .button-icon{width:16px;height:16px}.gdg-seveqep button:disabled{opacity:.4;pointer-events:none}@keyframes gdg-search-fadeout-gdg-seveqep{0%{transform:translate(0)}to{transform:translate(400px)}}@keyframes gdg-search-fadein-gdg-seveqep{0%{transform:translate(400px)}to{transform:translate(0)}}.gdg-mnuv029{word-break:break-word;-webkit-touch-callout:default;padding-top:6px}.gdg-mnuv029>*{margin:0}.gdg-mnuv029 :last-child{margin-bottom:0}.gdg-mnuv029 p img{width:100%}.gdg-izpuzkl{font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);resize:none;white-space:pre-wrap;-webkit-text-fill-color:var(--gdg-text-dark);width:100%;min-width:100%;height:100%;color:var(--gdg-text-dark);background-color:#0000;border:0;border-radius:0;margin:0;padding:0;line-height:16px;position:absolute;inset:0;overflow:hidden}.gdg-invalid .gdg-izpuzkl{-webkit-text-decoration:underline #d60606;text-decoration:underline #d60606}.gdg-izpuzkl ::-webkit-input-placeholder{color:var(--gdg-text-light)}.gdg-izpuzkl ::placeholder{color:var(--gdg-text-light)}.gdg-izpuzkl :-ms-placeholder-shown{color:var(--gdg-text-light)}.gdg-izpuzkl ::placeholder{color:var(--gdg-text-light)}.gdg-s69h75o{visibility:hidden;white-space:pre-wrap;word-wrap:break-word;color:var(--gdg-text-dark);font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);width:max-content;min-width:100%;max-width:100%;margin:0;padding:0 0 2px;line-height:16px}.gdg-g1y0xocz{margin-top:6px;position:relative}`,Uv=e=>{let t=(0,q.c)(14),{wrapperClassName:n,className:r,pageSize:i}=e,a=i===void 0?10:i,o;t[0]===n?o=t[1]:(o=W(n,`flex flex-col space-y-2`),t[0]=n,t[1]=o);let s=r||`rounded-md border`,c;t[2]===s?c=t[3]:(c=W(s),t[2]=s,t[3]=c);let l;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,K.jsx)(js,{children:Array.from({length:1}).map(Gv)}),t[4]=l):l=t[4];let u;t[5]===a?u=t[6]:(u=(0,K.jsxs)(Is,{children:[l,(0,K.jsx)(Ns,{children:Array.from({length:a}).map(qv)})]}),t[5]=a,t[6]=u);let d;t[7]!==c||t[8]!==u?(d=(0,K.jsx)(`div`,{part:`table-wrapper`,className:c,children:u}),t[7]=c,t[8]=u,t[9]=d):d=t[9];let f;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,K.jsx)(`div`,{className:`flex align-items justify-between shrink-0 h-8`}),t[10]=f):f=t[10];let p;return t[11]!==o||t[12]!==d?(p=(0,K.jsxs)(`div`,{className:o,children:[d,f]}),t[11]=o,t[12]=d,t[13]=p):p=t[13],p};function Wv(e,t){return(0,K.jsx)(Ms,{children:(0,K.jsx)(`div`,{className:`h-4 bg-(--slate-5) animate-pulse rounded-md w-[70%]`})},t)}function Gv(e,t){return(0,K.jsx)(Ps,{children:Array.from({length:8}).map(Wv)},t)}function Kv(e,t){return(0,K.jsx)(Fs,{children:(0,K.jsx)(`div`,{className:`h-4 bg-(--slate-5) animate-pulse rounded-md w-[90%]`})},t)}function qv(e,t){return(0,K.jsx)(Ps,{children:Array.from({length:8}).map(Kv)},t)}var Jv=[`string`,`boolean`,`integer`,`number`,`date`,`datetime`,`time`,`geometry`,`unknown`],Yv=[`int8`,`int16`,`int32`,`int64`,`uint8`,`uint16`,`uint32`,`uint64`,`float16`,`float32`,`float64`,`complex64`,`complex128`,`bool`,`object`,`str`,`unicode`,`datetime64`,`timedelta64`],Xv=[`count`,`sum`,`mean`,`median`,`min`,`max`],Zv={number:O().describe(f.of({label:`Value`})),string:z().min(1).describe(f.of({label:`Value`})),stringColumnValues:z().min(1).describe(f.of({label:`Value`,special:`column_values`})),stringMultiColumnValues:V(z()).min(1).describe(f.of({label:`Value`,special:`column_values`})),date:S().describe(f.of({label:`Value`,special:`date`})),datetime:S().describe(f.of({label:`Value`,special:`datetime`})),time:z().regex(/^\d{2}:\d{2}(:\d{2})?$/).describe(f.of({label:`Value`,special:`time`}))},Qv={is_true:[],is_false:[]},$v=e=>({"==":[e],"!=":[e],">":[e],">=":[e],"<":[e],"<=":[e],between:[R({min:e,max:e})],is_null:[],is_not_null:[]}),ey=$v(Zv.number),ty=$v(Zv.date),ny=$v(Zv.time),ry=$v(Zv.datetime),iy={equals:[Zv.stringColumnValues],does_not_equal:[Zv.stringColumnValues],contains:[Zv.string],regex:[Zv.string],starts_with:[Zv.string],ends_with:[Zv.string],in:[Zv.stringMultiColumnValues],not_in:[Zv.stringMultiColumnValues],is_empty:[],is_null:[],is_not_null:[]},ay={...Qv,...ey,...ty,...ny,...ry,...iy};function oy(e){return e?e.startsWith(`int`)?`integer`:e.startsWith(`float`)||e.startsWith(`uint`)||e.startsWith(`number`)||e.startsWith(`complex`)?`number`:e.startsWith(`string`)||e.startsWith(`object`)||e.startsWith(`utf8`)?`string`:e.startsWith(`datetime`)?`datetime`:e.startsWith(`time`)?`time`:e.startsWith(`date`)?`date`:e.startsWith(`bool`)?`boolean`:`unknown`:`unknown`}function sy(e){if(!e)return[];switch(oy(e)){case`integer`:return Object.keys(ey);case`number`:return Object.keys(ey);case`string`:return Object.keys(iy);case`date`:return Object.keys(ty);case`datetime`:return Object.keys(ry);case`time`:return Object.keys(ny);case`boolean`:return Object.keys(Qv);case`unknown`:return[]}}function cy(e,t){if(!e||!t)return[];switch(oy(e)){case`integer`:return uy(ey,t);case`number`:return uy(ey,t);case`string`:return uy(iy,t);case`date`:return uy(ty,t);case`datetime`:return uy(ry,t);case`time`:return uy(ny,t);case`boolean`:return uy(Qv,t);case`unknown`:return[]}}function ly(e,t){let n=[uy(Qv,e),uy(ty,e),uy(ny,e),uy(ry,e),uy(ey,e),uy(iy,e)].flat();return n.length===0||n.some(e=>e.safeParse(t).success)}var uy=(e,t)=>e[t]?e[t]:[],dy=V(it([Le(),it([gt(Jv).catch(`unknown`),z()])])),fy=z().min(1,`Required`).or(B()).transform(e=>e).describe(f.of({label:`Column`,special:`column_id`})),py=V(fy.describe(f.of({special:`column_id`}))).min(1,`At least one column is required`).default([]).describe(f.of({label:`Columns`,minLength:1})),my=R({type:pt(`column_conversion`),column_id:fy,data_type:gt(Yv).describe(f.of({label:`Data type (numpy)`})).default(`bool`),errors:gt([`ignore`,`raise`]).default(`ignore`).describe(f.of({label:`Handle errors`,special:`radio_group`}))}).describe(f.of({})),hy=R({type:pt(`rename_column`),column_id:fy,new_column_id:z().min(1,`Required`).transform(e=>e).describe(f.of({label:`New column name`,minLength:1}))}),gy=R({type:pt(`sort_column`),column_id:fy,ascending:H().describe(f.of({label:`Ascending`})).default(!0),na_position:gt([`first`,`last`]).describe(f.of({label:`N/A position`,special:`radio_group`})).default(`last`)}),_y=R({column_id:fy,operator:gt(Object.keys(ay)).describe(f.of({label:` `})),type:pt(`condition`).default(`condition`),value:vt().optional().describe(f.of({label:`Value`})),negate:H().default(!1)}).describe(f.of({direction:`row`,special:`column_filter`})),vy=ct(()=>R({type:pt(`group`).default(`group`),operator:gt([`and`,`or`]).default(`and`),children:V(nt([_y,vy])).default([]),negate:H().default(!1)})),yy=R({type:pt(`filter_rows`),operation:gt([`keep_rows`,`remove_rows`]).default(`keep_rows`).describe(f.of({special:`radio_group`})),where:V(_y).min(1).describe(f.of({label:`Value`,minLength:1})).default(()=>[{column_id:``,operator:`==`,value:``,type:`condition`,negate:!1}]).transform(e=>e.filter(e=>ly(e.operator,e.value)))}),by=R({type:pt(`group_by`),column_ids:V(fy.describe(f.of({special:`column_id`}))).default([]).describe(f.of({label:`Group by columns`,minLength:1})),aggregation_column_ids:V(fy.describe(f.of({special:`column_id`}))).default([]).describe(f.of({label:`Aggregate on columns`})),aggregation:gt(Xv).default(`count`).describe(f.of({label:`Aggregation`})),drop_na:H().default(!1).describe(f.of({label:`Drop N/A`}))}).describe(f.of({})),xy=R({type:pt(`aggregate`),column_ids:py,aggregations:V(gt(Xv)).min(1,`At least one aggregation is required`).default([`count`]).describe(f.of({label:`Aggregations`,minLength:1}))}).describe(f.of({direction:`row`})),Sy=R({type:pt(`select_columns`),column_ids:py}),Cy=R({type:pt(`sample_rows`),n:B().positive().describe(f.of({label:`Number of rows`})),seed:B().default(()=>ke()).describe(f.of({label:`Re-sample`,special:`random_number_button`})),replace:H().default(!1).describe(f.of({label:`Sample with replacement`}))}),wy=R({type:pt(`shuffle_rows`),seed:B().default(()=>ke()).describe(f.of({label:`Re-shuffle`,special:`random_number_button`}))}),Ty=R({type:pt(`explode_columns`),column_ids:py}),Ey=R({type:pt(`expand_dict`),column_id:fy}),Dy=R({type:pt(`unique`),column_ids:py,keep:gt([`first`,`last`,`none`,`any`]).default(`first`).describe(f.of({label:`Keep`}))}).describe(f.of({direction:`row`})),Oy=R({type:pt(`pivot`),column_ids:py,index_column_ids:V(fy.describe(f.of({special:`column_id`}))).default([]).describe(f.of({label:`Rows`})),value_column_ids:V(fy.describe(f.of({special:`column_id`}))).default([]).describe(f.of({label:`Values`,minLength:1})),aggregation:gt(Xv).default(`sum`).describe(f.of({label:`Aggregation`}))}).describe(f.of({})),ky=nt([yy,Sy,hy,my,gy,by,xy,Cy,wy,Ty,Ey,Dy,Oy]),Ay=R({transforms:V(ky)});function jy(e,t){let n=new Map;for(let r of t)n.set(r,e.get(r)??`unknown`);for(let[t,r]of e)n.has(t)||n.set(t,r);return n}function My(e,t){return e.map(e=>{let{[t]:n,...r}=e;return r})}function Ny(e,t,n){return t?e.map(e=>{let r=Object.entries(e),i=Math.max(0,Math.min(n??r.length,r.length));return r.splice(i,0,[t,``]),Object.fromEntries(r)}):e}function Py(e,t,n){return!t||!n||t===n||e.some(e=>Object.hasOwn(e,n))?e:e.map(e=>Object.fromEntries(Object.entries(e).map(([e,r])=>[e===t?n:e,r])))}function Fy(e){let{columnFields:t,columnIdx:n}=e;switch(e.type){case xo.Insert:{if(!e.newColumnName)return U.error(`newName is required for insert`),t;let r=[...t.entries()],i=[...r.slice(0,n),[e.newColumnName,e.dataType??`string`],...r.slice(n)];return new Map(i)}case xo.Remove:{if(n<0||n>=t.size)return t;let e=[...t.entries()][n]?.[0];if(e){let n=new Map(t);return n.delete(e),n}return t}case xo.Rename:{if(!e.newColumnName)return U.error(`newName is required for rename`),t;if(n<0||n>=t.size)return t;let r=[...t.entries()],i=[...r.slice(0,n),[e.newColumnName,e.dataType??`string`],...r.slice(n+1)];return new Map(i)}default:return da(e),t}}function Iy(e,t){let n=[...e.data],r=new Map(e.columnFields);for(let e of t){if(So(e)){if(e.rowIdx<0)continue;for(;n.length<=e.rowIdx;)n.push({});n[e.rowIdx]={...n[e.rowIdx],[e.columnId]:e.value},r.has(e.columnId)||r.set(e.columnId,`unknown`);continue}if(bo(e)){e.type===xo.Remove&&e.rowIdx>=0&&e.rowIdx<n.length&&n.splice(e.rowIdx,1);continue}if(!wo(e))continue;let t=[...r.keys()][e.columnIdx];switch(e.type){case xo.Remove:if(t===void 0)break;n=My(n,t),r=Fy({columnFields:r,columnIdx:e.columnIdx,type:`remove`});break;case xo.Insert:if(!e.newName||e.columnIdx<0||e.columnIdx>r.size||r.has(e.newName))break;n=Ny(n,e.newName,e.columnIdx),r=Fy({columnFields:r,columnIdx:e.columnIdx,type:`insert`,dataType:e.dataType,newColumnName:e.newName});break;case xo.Rename:if(t===void 0||!e.newName||r.has(e.newName))break;n=Py(n,t,e.newName),r=Fy({columnFields:r,columnIdx:e.columnIdx,type:`rename`,dataType:r.get(t),newColumnName:e.newName});break;default:da(e)}}return{data:n,columnFields:r}}var Ly=G.lazy(()=>Ho(()=>import(`./glide-data-editor-sICUMEhk.js`),__vite__mapDeps([329,1,2,3,4,6,74,21,18,30,16,17,24,25,31,26,27,28,32,33,34,35,75,36,76,46,47,19,93,330,331,59,54,55,41,40,56,8,9,10,11,168,62,58,70,12,7,13,14,15,108,169,332,158,333,334]),import.meta.url)),Ry=Ev(`marimo-data-editor`,{cssStyles:[Hv]}).withData(R({initialValue:R({edits:V(R({rowIdx:B(),columnId:z(),value:at()}))}),label:z().nullable(),data:nt([z(),V(R({}).passthrough())]),fieldTypes:dy.nullish(),columnNames:V(z()).default([]),editableColumns:nt([V(z()),pt(`all`)]),columnSizingMode:gt([`auto`,`fit`]).default(`auto`)})).withFunctions({}).renderer(e=>(0,K.jsx)(zy,{data:e.data.data,fieldTypes:e.data.fieldTypes,columnNames:e.data.columnNames,edits:e.value,onEdits:e.setValue,editableColumns:e.data.editableColumns})),zy=e=>{let t=(0,q.c)(20),[n,r]=(0,G.useState)(null),i,a;t[0]!==e.columnNames||t[1]!==e.data||t[2]!==e.fieldTypes?(i=async()=>{let t=Ai(e.fieldTypes??[]),n=Array.isArray(e.data)?e.data:await _s(e.data,{type:`csv`,parse:ks(Object.fromEntries(t))},{handleBigIntAndNumberLike:!0});return{data:n,columnFields:jy(Ai(e.fieldTypes??ji(n)),e.columnNames)}},a=[e.fieldTypes,e.columnNames,e.data],t[0]=e.columnNames,t[1]=e.data,t[2]=e.fieldTypes,t[3]=i,t[4]=a):(i=t[3],a=t[4]);let{data:o,error:s}=as(i,a),c,l;if(t[5]!==o||t[6]!==e.edits.edits?(c=()=>{o!==void 0&&r(Iy(o,e.edits.edits))},l=[o,e.edits.edits],t[5]=o,t[6]=e.edits.edits,t[7]=c,t[8]=l):(c=t[7],l=t[8]),(0,G.useEffect)(c,l),s){let e;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,K.jsx)(Ts,{children:`Error`}),t[9]=e):e=t[9];let n=s.message||`An unknown error occurred`,r;return t[10]===n?r=t[11]:(r=(0,K.jsxs)(Es,{variant:`destructive`,className:`mb-2`,children:[e,(0,K.jsx)(`div`,{className:`text-md`,children:n})]}),t[10]=n,t[11]=r),r}if(n===null){let e;return t[12]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,K.jsx)(di,{milliseconds:200,children:(0,K.jsx)(Uv,{pageSize:10})}),t[12]=e):e=t[12],e}let u;t[13]===e?u=t[14]:(u=t=>{r(e=>e===null?null:Iy(e,t)),e.onEdits(e=>({...e,edits:[...e.edits,...t]}))},t[13]=e,t[14]=u);let d;return t[15]!==n.columnFields||t[16]!==n.data||t[17]!==e.editableColumns||t[18]!==u?(d=(0,K.jsx)(Ly,{data:n.data,columnFields:n.columnFields,editableColumns:e.editableColumns,onAddEdits:u}),t[15]=n.columnFields,t[16]=n.data,t[17]=e.editableColumns,t[18]=u,t[19]=d):d=t[19],d},By=` `;function Vy(e){return e.split(`
|
|
7
7
|
`).map(e=>By+e).join(`
|
|
8
8
|
`)}function Hy(e){return`\n${Vy(e.map(Uy).join(`,
|
|
9
9
|
`))}\n`}function Uy(e){return typeof e==`string`?e:e.toCode()}var Wy=class{name;constructor(e){this.name=e}toCode(){return this.name}},Gy=class e{value;opts;constructor(e,t={}){this.value=e,this.opts=t}static from(t,n={}){return new e(t,n)}toCode(){let{removeNull:t=!1,removeUndefined:n=!0}=this.opts;if(this.value===void 0)return n?``:`None`;if(this.value===null)return t?``:`None`;if(typeof this.value==`string`)return`'${this.value}'`;if(typeof this.value==`boolean`)return this.value?`True`:`False`;if(typeof this.value==`object`&&`toCode`in this.value)return this.value.toCode();if(Array.isArray(this.value))return this.value.length===0?`[]`:`[\n${Vy(this.value.map(t=>new e(t,this.opts).toCode()).filter(e=>e!==``).join(`,
|
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-
|
|
69
|
+
<script type="module" crossorigin src="./assets/index-ipFYAeCF.js"></script>
|
|
70
70
|
<link rel="modulepreload" crossorigin href="./assets/rolldown-runtime-B0Z9INg1.js">
|
|
71
71
|
<link rel="modulepreload" crossorigin href="./assets/react-CBDbhulC.js">
|
|
72
72
|
<link rel="modulepreload" crossorigin href="./assets/compiler-runtime-CYIjoINj.js">
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
2
|
|
|
3
3
|
import { describe, expect, it } from "vitest";
|
|
4
|
-
import { columnToFieldTypesSchema } from "../schema";
|
|
4
|
+
import { columnToFieldTypesSchema, TransformationsSchema } from "../schema";
|
|
5
|
+
import type { ColumnId } from "../types";
|
|
5
6
|
|
|
6
7
|
describe("columnToFieldTypesSchema", () => {
|
|
7
8
|
it("keeps known field types", () => {
|
|
@@ -36,3 +37,35 @@ describe("columnToFieldTypesSchema", () => {
|
|
|
36
37
|
expect(result).toEqual([["geom", ["geometry", "geometry"]]]);
|
|
37
38
|
});
|
|
38
39
|
});
|
|
40
|
+
|
|
41
|
+
describe("FilterRowsTransformSchema", () => {
|
|
42
|
+
const condition = {
|
|
43
|
+
column_id: "col" as ColumnId,
|
|
44
|
+
operator: "in" as const,
|
|
45
|
+
value: ["a"],
|
|
46
|
+
type: "condition" as const,
|
|
47
|
+
negate: false,
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
it("does not wrap where in a FilterGroup", () => {
|
|
51
|
+
const result = TransformationsSchema.parse({
|
|
52
|
+
transforms: [
|
|
53
|
+
{
|
|
54
|
+
type: "filter_rows",
|
|
55
|
+
operation: "keep_rows",
|
|
56
|
+
where: [condition],
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
expect(result).toEqual({
|
|
62
|
+
transforms: [
|
|
63
|
+
{
|
|
64
|
+
type: "filter_rows",
|
|
65
|
+
operation: "keep_rows",
|
|
66
|
+
where: [condition],
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
});
|
|
@@ -129,17 +129,11 @@ const FilterRowsTransformSchema = z.object({
|
|
|
129
129
|
negate: false,
|
|
130
130
|
},
|
|
131
131
|
])
|
|
132
|
-
.transform((value)
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
type: "group",
|
|
138
|
-
operator: "and",
|
|
139
|
-
children: validConditions,
|
|
140
|
-
negate: false,
|
|
141
|
-
};
|
|
142
|
-
}),
|
|
132
|
+
.transform((value) =>
|
|
133
|
+
value.filter((condition) =>
|
|
134
|
+
isConditionValueValid(condition.operator, condition.value),
|
|
135
|
+
),
|
|
136
|
+
),
|
|
143
137
|
});
|
|
144
138
|
|
|
145
139
|
const GroupByTransformSchema = z
|