@marimo-team/frontend 0.19.10-dev13 → 0.19.10-dev15
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.
|
@@ -9,8 +9,8 @@ var oN=Object.defineProperty;var lN=(Za,sa,pr)=>sa in Za?oN(Za,sa,{enumerable:!0
|
|
|
9
9
|
`)}catch{return[]}return[o]});if(r.append(...n),t.cssStyles){let i=document.createElement("style");i.textContent=t.cssStyles.join(`
|
|
10
10
|
`),r.append(i)}}isAdoptedStyleSheetsSupported(){return"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype}};Ps(t.tagName,e)}function r0(t){var e;return(e=t.title)!=null&&e.startsWith("marimo")?!0:!t.href||!t.href.endsWith(".css")?!1:(t.href.includes("127.0.0.1"),t.href.includes("/@marimo-team/")?!0:t.href.startsWith(window.location.origin))}function n0(t){return!t||!(t instanceof HTMLElement)?!1:"__type__"in t&&t.__type__===t0}function i0(t,e){let a=t.safeParse(e);if(!a.success)throw ue.log("Failed to parse data",e,a.error),Error(_N(a.error));return a.data}var Ui="MARIMO-UI-ELEMENT";function nD(){class t extends HTMLElement{constructor(){super(...arguments);K(this,"initialized",!1);K(this,"inputListener",Va.NOOP)}init(){if(this.initialized)return;let r=$n.parseOrThrow(this);this.inputListener=i=>{r!==null&&i.detail.element===this.firstElementChild&&(Fa.has(r)||Fa.registerInstance(r,n),Fa.broadcastValueUpdate(n,r,i.detail.value))};let n=this.firstElementChild;if(r===null){ue.error("[marimo-ui-element] missing object-id attribute");return}if(n===null){ue.error("[marimo-ui-element] has no child");return}if(!(n instanceof HTMLElement)){ue.error("[marimo-ui-element] first child must be instance of HTMLElement");return}this.initialized=!0}connectedCallback(){if(this.init(),this.initialized){let r=$n.parseOrThrow(this),n=this.firstElementChild;Fa.registerInstance(r,n),document.addEventListener(Lr.TYPE,this.inputListener)}}disconnectedCallback(){if(this.initialized){document.removeEventListener(Lr.TYPE,this.inputListener);let r=$n.parseOrThrow(this);Fa.removeInstance(r,this.firstElementChild)}}reset(){let r=this.firstElementChild;n0(r)?r.reset():ue.error("[marimo-ui-element] first child must have a reset method")}static get observedAttributes(){return["random-id"]}attributeChangedCallback(r,n,i){if(this.initialized&&r==="random-id"&&n!==i){this.disconnectedCallback();let o=this.firstElementChild;n0(o)?o.rerender():ue.error("[marimo-ui-element] first child must have a rerender method"),this.initialized=!1,this.connectedCallback()}}}Ps(Ui.toLowerCase(),t)}function Fs(t){if(!t)return null;if(t.nodeName===Ui)return $n.parseOrThrow(t);let e=t.parentElement;return(e==null?void 0:e.nodeName)===Ui?$n.parseOrThrow(e):null}function iD(t){return t.tagName===Ui}var oD=(0,L_().init)({length:6});function lD(){Ps("marimo-sidebar",class extends HTMLElement{constructor(){super(...arguments);K(this,"uniqueId",Symbol(oD()))}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(),Wn.mount({name:xu.SIDEBAR,ref:this.uniqueId,children:this.getContents()})}unmountReactComponent(){Wn.unmount({name:xu.SIDEBAR,ref:this.uniqueId})}updateReactComponent(){this.syncWidth(),Wn.update({name:xu.SIDEBAR,ref:this.uniqueId,children:this.getContents()})}syncWidth(){try{let e=this.dataset.width;e?Oe.set(T1,{type:"setWidth",width:JSON.parse(e)}):Oe.set(T1,{type:"setWidth",width:void 0})}catch(e){ue.error(e)}}getContents(){return Me({html:this.innerHTML})}})}function zt(t,e={}){return{withData(a){return{withFunctions(r){return{renderer(n){return{...e,tagName:t,validator:a,functions:r,render:n}}}},renderer(r){return{...e,tagName:t,validator:a,render:r}}}}}}var zs=Q();function sD(t){let e=(0,zs.c)(16),{jsUrl:a,jsHash:r}=t,n;e[0]!==r||e[1]!==a?(n=async()=>await A1.getModule(a,r),e[0]=r,e[1]=a,e[2]=n):n=e[2];let i;e[3]===r?i=e[4]:(i=[r],e[3]=r,e[4]=i);let{data:o,error:l,refetch:d}=Nt(n,i),u=!!l,c;e[5]!==u||e[6]!==r||e[7]!==a||e[8]!==d?(c=()=>{u&&a&&(A1.invalidate(r),d())},e[5]=u,e[6]=r,e[7]=a,e[8]=d,e[9]=c):c=e[9];let m;e[10]!==u||e[11]!==a?(m=[u,a],e[10]=u,e[11]=a,e[12]=m):m=e[12],(0,v.useEffect)(c,m);let p;return e[13]!==l||e[14]!==o?(p={jsModule:o,error:l},e[13]=l,e[14]=o,e[15]=p):p=e[15],p}function dD(t,e){(0,v.useEffect)(()=>{let a=e.shadowRoot;if(!t||!a)return;if("adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype){let n=new CSSStyleSheet;try{return n.replaceSync(t),a&&(a.adoptedStyleSheets=[...a.adoptedStyleSheets,n]),()=>{a&&(a.adoptedStyleSheets=a.adoptedStyleSheets.filter(i=>i!==n))}}catch{}}let r=document.createElement("style");return r.innerHTML=t,a.append(r),()=>{r.remove()}},[t,e])}const uD=zt("marimo-anywidget").withData(B({jsUrl:F(),jsHash:F(),css:F().nullish()})).withFunctions({}).renderer(t=>(0,s.jsx)(cD,{...t}));var cD=t=>{var h;let e=(0,zs.c)(15),{css:a,jsUrl:r,jsHash:n}=t.data,{model_id:i}=t.value,o=t.host,l;e[0]!==n||e[1]!==r?(l={jsUrl:r,jsHash:n},e[0]=n,e[1]=r,e[2]=l):l=e[2];let{jsModule:d,error:u}=sD(l);if(dD(a,o),u){let x;return e[3]===u?x=e[4]:(x=(0,s.jsx)(Qr,{error:u}),e[3]=u,e[4]=x),x}if(!d)return null;if(!pD(d)){let x=`Module at ${r} does not appear to be a valid anywidget`,f;e[5]===x?f=e[6]:(f=Error(x),e[5]=x,e[6]=f);let g=f,y;return e[7]===g?y=e[8]:(y=(0,s.jsx)(Qr,{error:g}),e[7]=g,e[8]=y),y}let c;e[9]===t.host?c=e[10]:(c=(h=t.host.closest("[random-id]"))==null?void 0:h.getAttribute("random-id"),e[9]=t.host,e[10]=c);let m=c??r,p;return e[11]!==d.default||e[12]!==m||e[13]!==i?(p=(0,s.jsx)(hD,{widget:d.default,modelId:i},m),e[11]=d.default,e[12]=m,e[13]=i,e[14]=p):p=e[14],p};async function mD(t,e,a,r,n){r.innerHTML="";try{await(await qN.getOrCreate(a).bind(t,e))(r,n)}catch(i){ue.error("Error rendering anywidget",i),r.classList.add("text-error"),r.innerHTML=`Error rendering anywidget: ${Pv(i)}`}}function pD(t){var e,a;return t.default?typeof t.default=="function"||typeof((e=t.default)==null?void 0:e.render)=="function"||typeof((a=t.default)==null?void 0:a.initialize)=="function":!1}var hD=t=>{let e=(0,zs.c)(8),{widget:a,modelId:r}=t,n=(0,v.useRef)(null),i;e[0]===r?i=e[1]:(i=YN.getSync(r),e[0]=r,e[1]=i);let o=i;o||ue.error("Model not found for modelId",r);let l,d;e[2]!==o||e[3]!==r||e[4]!==a?(l=()=>{if(!n.current||!o)return;let c=new AbortController;return mD(a,o,r,n.current,c.signal),()=>c.abort()},d=[a,r,o],e[2]=o,e[3]=r,e[4]=a,e[5]=l,e[6]=d):(l=e[5],d=e[6]),(0,v.useEffect)(l,d);let u;return e[7]===Symbol.for("react.memo_cache_sentinel")?(u=(0,s.jsx)("div",{ref:n}),e[7]=u):u=e[7],u};const o0=be(["neutral","success","warn","danger","info","alert"]).default("neutral");var fD=class{constructor(){K(this,"tagName","marimo-button");K(this,"validator",B({label:F(),kind:o0,disabled:W().default(!1),fullWidth:W().default(!1),tooltip:F().optional(),keyboardShortcut:F().optional()}))}render(t){let{data:{disabled:e,kind:a,label:r,fullWidth:n,tooltip:i,keyboardShortcut:o}}=t,l=(0,s.jsx)(Ce,{"data-testid":"marimo-plugin-button",variant:gD(a),disabled:e,size:"xs",keyboardShortcut:o,className:U({"w-full":n,"w-fit":!n}),onClick:u=>{e||(u.stopPropagation(),t.setValue(c=>c+1))},type:"submit",children:Me({html:r})}),d=o&&!i?(0,s.jsx)(Ov,{shortcut:o}):i;return d?(0,s.jsx)(At,{children:(0,s.jsx)(Ft,{content:d,delayDuration:200,children:l})}):l}};function gD(t){switch(t){case"neutral":return"secondary";case"danger":return"destructive";case"warn":return"warn";case"success":return"success"}}var xD=Q();const $e=t=>{let e=(0,xD.c)(27),{label:a,children:r,align:n,className:i,labelClassName:o,fullWidth:l,id:d}=t,u=n===void 0?"left":n;if(l&&(u="top"),!a){if(u==="top"){let S;return e[0]!==r||e[1]!==i?(S=(0,s.jsx)("div",{className:i,children:r}),e[0]=r,e[1]=i,e[2]=S):S=e[2],S}let k;e[3]===i?k=e[4]:(k=U("inline-flex",i),e[3]=i,e[4]=k);let A;return e[5]!==r||e[6]!==k?(A=(0,s.jsx)("div",{className:k,children:r}),e[5]=r,e[6]=k,e[7]=A):A=e[7],A}let c;e[8]===o?c=e[9]:(c=U("font-prose",o),e[8]=o,e[9]=c);let m;e[10]===a?m=e[11]:(m=Me({html:a}),e[10]=a,e[11]=m);let p;e[12]!==d||e[13]!==c||e[14]!==m?(p=(0,s.jsx)(ei,{htmlFor:d,className:c,children:m}),e[12]=d,e[13]=c,e[14]=m,e[15]=p):p=e[15];let h=p,x=u==="top"&&"flex-col items-start gap-y-2",f=u==="left"&&"flex-row items-center gap-x-1.5 pr-2",g=u==="right"&&"flex-row-reverse items-center gap-x-1.5 pr-2",y=l&&"block space-y-2",w=!l&&"w-fit",D;e[16]!==i||e[17]!==x||e[18]!==f||e[19]!==g||e[20]!==y||e[21]!==w?(D=U("mo-label inline-flex","pt-0 pb-0 pl-0",x,f,g,y,w,i),e[16]=i,e[17]=x,e[18]=f,e[19]=g,e[20]=y,e[21]=w,e[22]=D):D=e[22];let j;return e[23]!==r||e[24]!==h||e[25]!==D?(j=(0,s.jsxs)("div",{className:D,children:[h,r]}),e[23]=r,e[24]=h,e[25]=D,e[26]=j):j=e[26],j};var vD=Q(),bD=class{constructor(){K(this,"tagName","marimo-checkbox");K(this,"validator",B({initialValue:W(),label:F().nullable(),disabled:W().optional()}))}render(t){return(0,s.jsx)(yD,{...t})}},yD=t=>{let e=(0,vD.c)(11),{value:a,setValue:r,data:n}=t,i;e[0]===r?i=e[1]:(i=c=>{c!=="indeterminate"&&r(c)},e[0]=r,e[1]=i);let o=i,l=(0,v.useId)(),d;e[2]!==n.disabled||e[3]!==l||e[4]!==o||e[5]!==a?(d=(0,s.jsx)(cu,{"data-testid":"marimo-plugin-checkbox",checked:a,onCheckedChange:o,id:l,disabled:n.disabled}),e[2]=n.disabled,e[3]=l,e[4]=o,e[5]=a,e[6]=d):d=e[6];let u;return e[7]!==n.label||e[8]!==l||e[9]!==d?(u=(0,s.jsx)($e,{label:n.label,align:"right",id:l,children:d}),e[7]=n.label,e[8]=l,e[9]=d,e[10]=u):u=e[10],u},wD=Q(),DD=class{constructor(){K(this,"tagName","marimo-code-editor");K(this,"validator",B({initialValue:F(),language:F().default("python"),placeholder:F(),theme:be(["light","dark"]).optional(),label:F().nullable(),disabled:W().optional(),minHeight:q().optional(),maxHeight:q().optional(),showCopyButton:W().optional(),debounce:Se([W(),q()]).default(!1)}))}render(t){return(0,s.jsx)(jD,{...t.data,value:t.value,setValue:t.setValue})}},jD=t=>{let e=(0,wD.c)(34),{theme:a}=Yr(),r=t.theme||a,n=t.minHeight?`${t.minHeight}px`:"70px",i=t.maxHeight?`${t.maxHeight}px`:void 0,[o,l]=(0,v.useState)(t.value),d=Number.isFinite(t.debounce)?t.debounce:0,u=!Number.isFinite(t.debounce),c;e[0]!==t.setValue||e[1]!==t.value||e[2]!==d||e[3]!==u?(c={initialValue:t.value,delay:d,onChange:t.setValue,disabled:u},e[0]=t.setValue,e[1]=t.value,e[2]=d,e[3]=u,e[4]=c):c=e[4];let{onChange:m}=Rv(c),p;e[5]!==t||e[6]!==m?(p=C=>{l(N=>C),typeof t.debounce=="number"?m(C):t.debounce||t.setValue(C)},e[5]=t,e[6]=m,e[7]=p):p=e[7];let h=Be(p),x,f;e[8]===t.value?(x=e[9],f=e[10]):(x=()=>{l(t.value)},f=[t.value],e[8]=t.value,e[9]=x,e[10]=f),(0,v.useEffect)(x,f);let g;e[11]!==o||e[12]!==t?(g=()=>{t.setValue(o)},e[11]=o,e[12]=t,e[13]=g):g=e[13];let y=Be(g),w;e:{if(t.debounce===!0){let N;e[14]===y?N=e[15]:(N=IE.domEventHandlers({blur:y}),e[14]=y,e[15]=N);let E;e[16]===N?E=e[17]:(E=[N],e[16]=N,e[17]=E),w=E;break e}let C;e[18]===Symbol.for("react.memo_cache_sentinel")?(C=[],e[18]=C):C=e[18],w=C}let D=w,j=`cm *:outline-hidden border rounded overflow-hidden ${r}`,k=r==="dark"?"dark":"light",A=!t.disabled,S;e[19]!==D||e[20]!==h||e[21]!==o||e[22]!==i||e[23]!==n||e[24]!==t.language||e[25]!==t.placeholder||e[26]!==t.showCopyButton||e[27]!==A||e[28]!==j||e[29]!==k?(S=(0,s.jsx)(RT,{className:j,theme:k,minHeight:n,maxHeight:i,placeholder:t.placeholder,editable:A,value:o,language:t.language,onChange:h,showCopyButton:t.showCopyButton,extensions:D}),e[19]=D,e[20]=h,e[21]=o,e[22]=i,e[23]=n,e[24]=t.language,e[25]=t.placeholder,e[26]=t.showCopyButton,e[27]=A,e[28]=j,e[29]=k,e[30]=S):S=e[30];let b;return e[31]!==t.label||e[32]!==S?(b=(0,s.jsx)(At,{children:(0,s.jsx)($e,{label:t.label,align:"top",fullWidth:!0,children:S})}),e[31]=t.label,e[32]=S,e[33]=b):b=e[33],b};const Xe={input(t){return{output(e){return{input:t,output:e}}}}};var Vs=Q(),CD=B({type:Le("stream_chunk"),message_id:F(),content:Pt().nullable().transform(t=>t),is_final:W().optional()});const kD=t=>{var z;let[e,a]=(0,v.useState)(""),[r,n]=(0,v.useState)(t.config),[i,o]=(0,v.useState)(t.config),[l,d]=(0,v.useState)(void 0),u=(0,v.useRef)(null),c=(0,v.useRef)(null),m=(0,v.useRef)(null),p=(0,v.useRef)(null);Object.keys(t.config).some(R=>t.config[R]!==i[R])&&(n(t.config),o(t.config));let h=(0,v.useRef)(r);h.current=r;let x=(0,v.useRef)({backendMessageId:null,frontendMessageIndex:null}),f=(0,v.useRef)(null),{data:g}=Nt(async()=>(await t.get_chat_history({})).messages,[]),y=t.value.length>0?t.value:g,{messages:w,sendMessage:D,setMessages:j,status:k,stop:A,error:S,regenerate:b,clearError:C}=ET({transport:new CT({fetch:async(R,O)=>{var J;if(O===void 0)return fetch(R);let V=JSON.parse(O.body),L=O.signal,G={max_tokens:h.current.max_tokens,temperature:h.current.temperature,top_p:h.current.top_p,top_k:h.current.top_k,frequency_penalty:h.current.frequency_penalty,presence_penalty:h.current.presence_penalty};try{let ae=V.messages.map(oe=>{var Y;return{...oe,content:(Y=oe.parts)==null?void 0:Y.map($=>"text"in $?$.text:"").join(`
|
|
11
11
|
`)}}),ce=new ReadableStream({start(oe){f.current=oe;let Y=()=>{try{oe.close()}catch($){ue.debug("Controller may already be closed",{error:$})}f.current=null};return L==null||L.addEventListener("abort",Y),()=>{L==null||L.removeEventListener("abort",Y)}},cancel(){f.current=null}});return t.send_prompt({messages:ae,config:G}).catch(oe=>{var Y;(Y=f.current)==null||Y.error(oe),f.current=null}),kT({stream:ce})}catch(ae){if(x.current={backendMessageId:null,frontendMessageIndex:null},ae instanceof Error&&ae.name==="AbortError")return new Response("Aborted",{status:499});let ce=(J=ae.message)==null?void 0:J.split("failed with exception ").pop();return new Response(ce,{status:400})}}}),messages:y,onFinish:R=>{d(void 0),u.current&&(u.current.value=""),ue.debug("Finished streaming message:",R),x.current={backendMessageId:null,frontendMessageIndex:null},t.setValue(R.messages)},onError:R=>{ue.error("An error occurred:",R),x.current={backendMessageId:null,frontendMessageIndex:null}}});wu(t.host,N1.TYPE,R=>{let O=CD.safeParse(R.detail.message);if(!O.success)return;let V=O.data,L=f.current;L&&(V.content&&L.enqueue(V.content),V.is_final&&(L.close(),f.current=null))});let N=k==="submitted"||k==="streaming",E=R=>{let O=w.findIndex(V=>V.id===R);if(O!==-1){let V=w.filter(L=>L.id!==R);t.delete_chat_message({index:O}),j(V),t.setValue(V)}},_=Array.isArray(t.allowAttachments)&&t.allowAttachments.length>0||t.allowAttachments===!0,P={triggerCompletionRegex:/^\/(\w+)?/,completions:t.prompts.map(R=>({label:`/${R}`,displayLabel:R,apply:R}))},T=t.prompts.length>0?"Type your message here, / for prompts":"Type your message here...";(0,v.useEffect)(()=>{var R;(R=p.current)==null||R.scrollTo({top:p.current.scrollHeight,behavior:"smooth"})},[w.length,p]);let M=(z=m.current)==null?void 0:z.view,I=()=>{if(M){let R=M.state.doc.length;M.dispatch({changes:{from:0,to:R,insert:""}})}a("")};return(0,s.jsxs)("div",{className:"flex flex-col h-full bg-(--slate-1) rounded-lg shadow border border-(--slate-6) overflow-hidden relative",style:{maxHeight:t.maxHeight},children:[(0,s.jsx)("div",{className:"absolute top-0 right-0 flex justify-end z-10 border border-(--slate-6) bg-inherit rounded-bl-lg",children:(0,s.jsx)(Ce,{variant:"text",size:"icon",disabled:w.length===0,onClick:()=>{j([]),t.setValue([]),t.delete_chat_history({}),C()},children:(0,s.jsx)(Xv,{className:"h-3 w-3"})})}),(0,s.jsxs)("div",{className:"grow overflow-y-auto gap-4 pt-8 pb-4 px-2 flex flex-col",ref:p,children:[w.length===0&&(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center h-full text-muted-foreground text-center p-4",children:[(0,s.jsx)(PT,{className:"h-12 w-12 mb-4"}),(0,s.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"No messages yet"}),(0,s.jsx)("p",{className:"text-sm",children:"Start a conversation by typing a message below."})]}),w.map((R,O)=>{var G;let V=(G=R.parts)==null?void 0:G.filter(J=>J.type==="text").map(J=>J.text).join(`
|
|
12
|
-
`),L=O===w.length-1;return(0,s.jsxs)("div",{className:U("flex flex-col group gap-2",R.role==="user"?"items-end":"items-start"),children:[(0,s.jsx)("div",{className:`max-w-[80%] p-3 rounded-lg ${R.role==="user"?"bg-(--sky-11) text-(--slate-1) whitespace-pre-wrap":"bg-(--slate-4) text-(--slate-12)"}`,children:BR({message:R,isStreamingReasoning:k==="streaming",isLast:L})}),(0,s.jsxs)("div",{className:"flex justify-end text-xs gap-2 invisible group-hover:visible",children:[(0,s.jsx)(ll,{value:V,className:"h-3 w-3",buttonClassName:"text-xs text-(--slate-9) hover:text-(--slate-11)"}),(0,s.jsx)("button",{type:"button",onClick:()=>E(R.id),className:"text-xs text-(--slate-9) hover:text-(--slate-11)",children:(0,s.jsx)(gv,{className:"h-3 w-3 text-(--red-9)"})})]})]},`${R.id}-${O}`)}),N&&(0,s.jsxs)("div",{className:"flex items-center justify-center space-x-2 mb-4",children:[(0,s.jsx)(Kn,{size:"small"}),(0,s.jsx)(Ce,{variant:"link",size:"sm",onClick:()=>A(),className:"text-(--red-9) hover:text-(--red-11)",children:"Stop"})]}),S&&(0,s.jsxs)("div",{className:"flex items-center justify-center space-x-2 mb-4",children:[(0,s.jsx)(Qr,{error:S}),(0,s.jsx)(Ce,{variant:"outline",size:"sm",onClick:()=>b(),children:"Retry"})]})]}),(0,s.jsxs)("form",{onSubmit:async R=>{R.preventDefault();let O=l?await NT(l):void 0;D({role:"user",parts:[{type:"text",text:e},...O??[]]}),I()},ref:c,className:"flex w-full border-t border-(--slate-6) px-2 py-1 items-center",children:[t.showConfigurationControls&&(0,s.jsx)(SD,{config:r,onChange:n}),t.prompts.length>0&&(0,s.jsx)(AD,{prompts:t.prompts,onSelect:R=>{a(R),requestAnimationFrame(()=>{M==null||M.focus(),gN(M)})}}),(0,s.jsx)(TT,{className:"rounded-sm mr-2",placeholder:T,value:e,inputRef:m,maxHeight:t.maxHeight?`${t.maxHeight/2}px`:void 0,onChange:a,onSubmit:(R,O)=>{var V;O.trim()&&((V=c.current)==null||V.requestSubmit())},onClose:()=>{},additionalCompletions:P}),l&&l.length===1&&(0,s.jsx)("span",{title:l[0].name,className:"text-sm text-(--slate-11) truncate shrink-0 w-fit max-w-24",children:l[0].name}),l&&l.length>1&&(0,s.jsxs)("span",{title:[...l].map(R=>R.name).join(`
|
|
13
|
-
`),className:"text-sm text-(--slate-11) truncate shrink-0",children:[l.length," files"]}),l&&l.length>0&&(0,s.jsx)(Ce,{type:"button",variant:"text",size:"sm",onClick:()=>{d(void 0),u.current&&(u.current.value="")},children:(0,s.jsx)(Hr,{className:"size-3"})}),_&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(Ce,{type:"button",variant:"text",size:"sm",onClick:()=>{var R;return(R=u.current)==null?void 0:R.click()},children:(0,s.jsx)(jT,{className:"h-4"})}),(0,s.jsx)("input",{type:"file",ref:u,className:"hidden",multiple:!0,accept:Array.isArray(t.allowAttachments)?t.allowAttachments.join(","):void 0,onChange:R=>{R.target.files&&d([...R.target.files])}})]}),(0,s.jsx)(Ce,{type:"submit",disabled:N||!e,variant:"outline",size:"xs",className:"text-(--slate-11)",children:(0,s.jsx)(DT,{className:"h-4 w-4"})})]})]})};var wn={max_tokens:{min:1,max:4096,description:"Maximum number of tokens to generate"},temperature:{min:0,max:2,step:.1,description:"Controls randomness (0: deterministic, 2: very random)"},top_p:{min:0,max:1,step:.1,description:"Nucleus sampling: probability mass to consider"},top_k:{min:1,max:100,description:"Top-k sampling: number of highest probability tokens to consider"},frequency_penalty:{min:-2,max:2,description:"Penalizes frequent tokens (-2: favor, 2: avoid)"},presence_penalty:{min:-2,max:2,description:"Penalizes new tokens (-2: favor, 2: avoid)"}},SD=t=>{let e=(0,Vs.c)(16),{config:a,onChange:r}=t,[n,i]=(0,v.useState)(!1),o;e[0]!==a||e[1]!==r?(o=(f,g)=>{let y=g===null||Number.isNaN(g)?null:g;if(y!==null){let{min:w,max:D}=wn[f];y=Math.max(w,Math.min(D,y))}r({...a,[f]:y})},e[0]=a,e[1]=r,e[2]=o):o=e[2];let l=o,d;e[3]===Symbol.for("react.memo_cache_sentinel")?(d=f=>{f.key==="Enter"&&(f.preventDefault(),i(!1))},e[3]=d):d=e[3];let u=d,c;e[4]===Symbol.for("react.memo_cache_sentinel")?(c=(0,s.jsx)(Ft,{content:"Configuration",children:(0,s.jsx)(wR,{asChild:!0,children:(0,s.jsx)(Ce,{variant:"outline",size:"sm",className:"border-none shadow-none hover:bg-transparent",children:(0,s.jsx)(D_,{className:"h-3 w-3"})})})}),e[4]=c):c=e[4];let m;e[5]===Symbol.for("react.memo_cache_sentinel")?(m=(0,s.jsx)("h4",{className:"font-bold leading-none",children:"Configuration"}),e[5]=m):m=e[5];let p;if(e[6]!==a||e[7]!==l){let f;e[9]===l?f=e[10]:(f=g=>{let[y,w]=g;return(0,s.jsxs)("div",{className:"grid grid-cols-3 items-center gap-1",children:[(0,s.jsxs)(ei,{htmlFor:y,className:"flex w-full justify-between col-span-3 align-end",children:[BN(y),(0,s.jsx)(Ft,{delayDuration:200,side:"top",content:(0,s.jsx)("div",{className:"text-xs flex flex-col",children:wn[y].description}),children:(0,s.jsx)(WT,{className:"h-3 w-3 cursor-help text-muted-foreground hover:text-foreground"})})]}),(0,s.jsx)(Pu,{id:y,"aria-label":y,value:w??NaN,placeholder:"null",minValue:wn[y].min,maxValue:wn[y].max,step:wn[y].step??1,onChange:D=>l(y,D),onKeyDown:u,className:"col-span-3"})]},y)},e[9]=l,e[10]=f),p=za.entries(a).map(f),e[6]=a,e[7]=l,e[8]=p}else p=e[8];let h;e[11]===p?h=e[12]:(h=(0,s.jsx)(Tv,{className:"w-70 border",children:(0,s.jsxs)("div",{className:"grid gap-3",children:[m,p]})}),e[11]=p,e[12]=h);let x;return e[13]!==n||e[14]!==h?(x=(0,s.jsxs)(_v,{open:n,onOpenChange:i,children:[c,h]}),e[13]=n,e[14]=h,e[15]=x):x=e[15],x},AD=t=>{let e=(0,Vs.c)(18),{prompts:a,onSelect:r}=t,[n,i]=(0,v.useState)(!1),[o,l]=(0,v.useState)(""),d;e[0]===r?d=e[1]:(d=g=>{[...g.matchAll(/{{(\w+)}}/g)].length>0?(l(g),i(!0)):r(g)},e[0]=r,e[1]=d);let u=d,c;e[2]===Symbol.for("react.memo_cache_sentinel")?(c=(0,s.jsx)(Ft,{content:"Select a prompt",children:(0,s.jsx)(ev,{asChild:!0,children:(0,s.jsx)(Ce,{variant:"outline",size:"sm",className:"border-none shadow-none hover:bg-transparent",children:(0,s.jsx)($T,{className:"h-3 w-3"})})})}),e[2]=c):c=e[2];let m;if(e[3]!==u||e[4]!==a){let g;e[6]===u?g=e[7]:(g=(y,w)=>(0,s.jsx)(Au,{onSelect:()=>u(y),className:"whitespace-normal text-left",children:y},w),e[6]=u,e[7]=g),m=a.map(g),e[3]=u,e[4]=a,e[5]=m}else m=e[5];let p;e[8]===m?p=e[9]:(p=(0,s.jsx)(yR,{children:(0,s.jsxs)(av,{children:[c,(0,s.jsx)(tv,{side:"right",align:"end",onCloseAutoFocus:ED,className:"w-64 max-h-96 overflow-y-auto",children:m})]})}),e[8]=m,e[9]=p);let h;e[10]===Symbol.for("react.memo_cache_sentinel")?(h=()=>i(!1),e[10]=h):h=e[10];let x;e[11]!==r||e[12]!==o?(x=(0,s.jsx)(Tv,{side:"right",align:"end",className:"min-w-80 px-2",children:(0,s.jsx)(ND,{prompt:o,onClose:h,onSelect:r})}),e[11]=r,e[12]=o,e[13]=x):x=e[13];let f;return e[14]!==n||e[15]!==p||e[16]!==x?(f=(0,s.jsxs)(_v,{open:n,onOpenChange:i,children:[p,x]}),e[14]=n,e[15]=p,e[16]=x,e[17]=f):f=e[17],f},ND=t=>{let e=(0,Vs.c)(32),{prompt:a,onClose:r,onSelect:n}=t,i;e[0]===Symbol.for("react.memo_cache_sentinel")?(i={},e[0]=i):i=e[0];let[o,l]=(0,v.useState)(i),d,u;e[1]===a?(d=e[2],u=e[3]):(d=()=>{l([...a.matchAll(/{{(\w+)}}/g)].reduce(TD,{}))},u=[a],e[1]=a,e[2]=d,e[3]=u),(0,v.useEffect)(d,u);let c;e[4]===Symbol.for("react.memo_cache_sentinel")?(c=(S,b)=>{l(C=>({...C,[S]:b}))},e[4]=c):c=e[4];let m=c,p;if(e[5]!==a||e[6]!==o){let S;e[8]===Symbol.for("react.memo_cache_sentinel")?(S=/{{(\w+)}}/g,e[8]=S):S=e[8];let b;e[9]===o?b=e[10]:(b=(C,N)=>o[N]||`{{${N}}}`,e[9]=o,e[10]=b),p=a.replaceAll(S,b),e[5]=a,e[6]=o,e[7]=p}else p=e[7];let h=p,x;e[11]===o?x=e[12]:(x=Object.values(o).some(_D),e[11]=o,e[12]=x);let f=x,g;e[13]!==r||e[14]!==n||e[15]!==h?(g=()=>{n(h),r()},e[13]=r,e[14]=n,e[15]=h,e[16]=g):g=e[16];let y=g,w;e[17]===o?w=e[18]:(w=Object.entries(o),e[17]=o,e[18]=w);let D;e[19]!==y||e[20]!==f||e[21]!==w?(D=w.map((S,b)=>{let[C,N]=S;return(0,s.jsxs)("div",{className:"grid grid-cols-4 items-center gap-2",children:[(0,s.jsx)(ei,{htmlFor:C,className:"font-semibold text-base",children:C}),(0,s.jsx)(Mu,{id:C,value:N,onChange:E=>m(C,E.target.value),rootClassName:"col-span-3 w-full",className:"m-0",placeholder:`Enter value for ${C}`,autoFocus:b===0,onKeyDown:E=>{E.key==="Enter"&&!f&&y()}})]},C)}),e[19]=y,e[20]=f,e[21]=w,e[22]=D):D=e[22];let j;e[23]===h?j=e[24]:(j=(0,s.jsx)("div",{className:"grid gap-2 prose dark:prose-invert",children:(0,s.jsx)("blockquote",{className:"text-sm",children:h})}),e[23]=h,e[24]=j);let k;e[25]!==y||e[26]!==f?(k=(0,s.jsx)(Ce,{onClick:y,size:"xs",disabled:f,children:"Submit"}),e[25]=y,e[26]=f,e[27]=k):k=e[27];let A;return e[28]!==j||e[29]!==k||e[30]!==D?(A=(0,s.jsxs)("div",{className:"grid gap-4",children:[D,j,k]}),e[28]=j,e[29]=k,e[30]=D,e[31]=A):A=e[31],A};function ED(t){return t.preventDefault()}function TD(t,e){return t[e[1]]="",t}function _D(t){return t==null||t.trim()===""}var l0=ee(B({id:F(),role:be(["system","user","assistant"]),content:F().nullable(),parts:ee(Pt()),metadata:Pt().nullable()})),s0=B({max_tokens:q().nullable(),temperature:q().nullable(),top_p:q().nullable(),top_k:q().nullable(),frequency_penalty:q().nullable(),presence_penalty:q().nullable()});const RD=zt("marimo-chatbot").withData(B({prompts:ee(F()).default(va.EMPTY),showConfigurationControls:W(),maxHeight:q().optional(),config:s0,allowAttachments:Se([W(),F().array()])})).withFunctions({get_chat_history:Xe.input(B({})).output(B({messages:l0})),delete_chat_history:Xe.input(B({})).output(Br()),delete_chat_message:Xe.input(B({index:q()})).output(Br()),send_prompt:Xe.input(B({messages:l0,config:s0})).output(Ia())}).renderer(t=>{var e;return(0,s.jsx)(At,{children:(0,s.jsx)(v.Suspense,{children:(0,s.jsx)(kD,{prompts:t.data.prompts,showConfigurationControls:t.data.showConfigurationControls,maxHeight:t.data.maxHeight,allowAttachments:t.data.allowAttachments,config:t.data.config,get_chat_history:t.functions.get_chat_history,delete_chat_history:t.functions.delete_chat_history,delete_chat_message:t.functions.delete_chat_message,send_prompt:t.functions.send_prompt,value:((e=t.value)==null?void 0:e.messages)||va.EMPTY,setValue:a=>t.setValue({messages:a}),host:t.host})})})});var ID='.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}.gdg-c1tqibwd,.gdg-d19meir1{display:flex}.gdg-d19meir1{box-sizing:border-box;--overlay-top:var(--d19meir1-0);font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);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;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-b1ygi5by{flex-wrap:wrap;margin-top:auto;margin-bottom:auto}.gdg-b1ygi5by,.gdg-b1ygi5by .boe-bubble{display:flex}.gdg-b1ygi5by .boe-bubble{background-color:var(--gdg-bg-bubble);border-radius:var(--gdg-rounding-radius,10px);color:var(--gdg-text-dark);justify-content:center;align-items:center;height:20px;margin:2px;padding:0 8px}.gdg-b1ygi5by textarea{opacity:0;width:0;height:0;position:absolute;top:0;left:0}.gdg-u1rrojo{align-items:center;min-height:21px;display:flex}.gdg-u1rrojo,.gdg-u1rrojo .gdg-link-area{flex-grow:1}.gdg-u1rrojo .gdg-link-area{color:var(--gdg-link-color);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;margin-right:8px;overflow:hidden;-webkit-text-decoration:underline!important;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-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);font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);padding:0}.gdg-i2iowwq,.gdg-i2iowwq .gdg-centering-container{height:100%;display:flex}.gdg-i2iowwq .gdg-centering-container{justify-content:center;align-items:center}.gdg-i2iowwq .gdg-centering-container canvas,.gdg-i2iowwq .gdg-centering-container img{max-height:calc(100vh - var(--overlay-top) - 20px);object-fit:contain;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-m1pnx84e{min-width:var(--m1pnx84e-0);-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;width:100%;color:var(--gdg-text-dark);justify-content:space-between;align-items:flex-start;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{cursor:pointer;color:var(--gdg-accent-color);width:24px;height:24px;-webkit-transition:all "0.125s ease";transition:all "0.125s ease";border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;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}.gdg-d4zsq0x,.gdg-d4zsq0x .doe-bubble{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;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-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-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-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-invalid .gdg-izpuzkl{text-decoration:underline #d60606}.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}.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-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-textDark);border:0;outline:none;width:220px}.gdg-seveqep button{width:24px;height:24px;color:var(--gdg-text-medium);cursor:pointer;background:0 0;border:none;outline:none;justify-content:center;align-items:center;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%}',PD=Q();const d0=t=>{let e=(0,PD.c)(14),{wrapperClassName:a,className:r,pageSize:n}=t,i=n===void 0?10:n,o;e[0]===a?o=e[1]:(o=U(a,"flex flex-col space-y-2"),e[0]=a,e[1]=o);let l=r||"rounded-md border",d;e[2]===l?d=e[3]:(d=U(l),e[2]=l,e[3]=d);let u;e[4]===Symbol.for("react.memo_cache_sentinel")?(u=(0,s.jsx)(Vv,{children:Array.from({length:1}).map(FD)}),e[4]=u):u=e[4];let c;e[5]===i?c=e[6]:(c=(0,s.jsxs)(qu,{children:[u,(0,s.jsx)(Ku,{children:Array.from({length:i}).map(VD)})]}),e[5]=i,e[6]=c);let m;e[7]!==d||e[8]!==c?(m=(0,s.jsx)("div",{className:d,children:c}),e[7]=d,e[8]=c,e[9]=m):m=e[9];let p;e[10]===Symbol.for("react.memo_cache_sentinel")?(p=(0,s.jsx)("div",{className:"flex align-items justify-between shrink-0 h-8"}),e[10]=p):p=e[10];let h;return e[11]!==o||e[12]!==m?(h=(0,s.jsxs)("div",{className:o,children:[m,p]}),e[11]=o,e[12]=m,e[13]=h):h=e[13],h};function MD(t,e){return(0,s.jsx)(Yu,{children:(0,s.jsx)("div",{className:"h-4 bg-(--slate-5) animate-pulse rounded-md w-[70%]"})},e)}function FD(t,e){return(0,s.jsx)(Jr,{children:Array.from({length:8}).map(MD)},e)}function zD(t,e){return(0,s.jsx)(cr,{children:(0,s.jsx)("div",{className:"h-4 bg-(--slate-5) animate-pulse rounded-md w-[90%]"})},e)}function VD(t,e){return(0,s.jsx)(Jr,{children:Array.from({length:8}).map(zD)},e)}const Zi=["string","boolean","integer","number","date","datetime","time","unknown"];function OD(t){return!t||Object.keys(t).length===0?"auto":za.mapValues(t,e=>e==="date"||e==="time"?"string":e==="datetime"?"date":e)}var BD=Q(),LD=v.lazy(()=>bt(()=>import("./glide-data-editor-DXeMF5KH.js").then(async t=>(await t.__tla,t)),__vite__mapDeps([329,4,112,12,13,14,8,9,10,6,7,11,37,73,15,16,18,19,21,20,74,85,84,26,27,28,65,66,43,86,48,29,87,88,89,90,22,82,83,17,24,46,330,47,25,30,31,32,41,42,44,99,331,332,158,102,103,104,274,275,333]),import.meta.url));const $D=zt("marimo-data-editor",{cssStyles:[ID]}).withData(B({initialValue:B({edits:ee(B({rowIdx:q(),columnId:F(),value:Ia()}))}),label:F().nullable(),data:Se([F(),ee(B({}).passthrough())]),fieldTypes:ee(Pa([j1(),Pa([be(Zi),F()])])).nullish(),editableColumns:Se([ee(F()),Le("all")]),columnSizingMode:be(["auto","fit"]).default("auto")})).withFunctions({}).renderer(t=>(0,s.jsx)(jv,{children:(0,s.jsx)(HD,{data:t.data.data,fieldTypes:t.data.fieldTypes,edits:t.value,onEdits:t.setValue,host:t.host,editableColumns:t.data.editableColumns})}));var HD=t=>{let e=(0,BD.c)(31),a;e[0]===Symbol.for("react.memo_cache_sentinel")?(a=[],e[0]=a):a=e[0];let[r,n]=(0,v.useState)(a),i;e[1]===Symbol.for("react.memo_cache_sentinel")?(i={},e[1]=i):i=e[1];let[o,l]=(0,v.useState)(i),d,u;e[2]!==t.data||e[3]!==t.fieldTypes?(d=async()=>{let w=ju(t.fieldTypes??[]),D=Array.isArray(t.data)?t.data:await S1(t.data,{type:"csv",parse:OD(w)},{handleBigIntAndNumberLike:!0});n(D),l(ju(t.fieldTypes??ku(D)))},u=[t.fieldTypes,t.data],e[2]=t.data,e[3]=t.fieldTypes,e[4]=d,e[5]=u):(d=e[4],u=e[5]);let{error:c}=Nt(d,u);if(c){let w;e[6]===Symbol.for("react.memo_cache_sentinel")?(w=(0,s.jsx)(Zu,{children:"Error"}),e[6]=w):w=e[6];let D=c.message||"An unknown error occurred",j;return e[7]===D?j=e[8]:(j=(0,s.jsxs)(sl,{variant:"destructive",className:"mb-2",children:[w,(0,s.jsx)("div",{className:"text-md",children:D})]}),e[7]=D,e[8]=j),j}if(!r){let w;return e[9]===Symbol.for("react.memo_cache_sentinel")?(w=(0,s.jsx)(Du,{milliseconds:200,children:(0,s.jsx)(d0,{pageSize:10})}),e[9]=w):w=e[9],w}let m;e[10]===t?m=e[11]:(m=w=>{t.onEdits(D=>({...D,edits:[...D.edits,...w]}))},e[10]=t,e[11]=m);let p;e[12]!==r||e[13]!==t?(p=w=>{let D=w.flatMap((j,k)=>Object.entries(j).map(A=>{let[S,b]=A;return{rowIdx:r.length+k,columnId:S,value:b}}));t.onEdits(j=>({...j,edits:[...j.edits,...D]}))},e[12]=r,e[13]=t,e[14]=p):p=e[14];let h,x,f,g;e[15]===t?(h=e[16],x=e[17],f=e[18],g=e[19]):(h=w=>{t.onEdits(D=>{let j=w.map(WD);return{...D,edits:[...D.edits,...j]}})},x=(w,D)=>{t.onEdits(j=>({...j,edits:[...j.edits,{columnIdx:w,newName:D,type:Wo.Rename}]}))},f=w=>{t.onEdits(D=>({...D,edits:[...D.edits,{columnIdx:w,type:Wo.Remove}]}))},g=(w,D)=>{t.onEdits(j=>({...j,edits:[...j.edits,{columnIdx:w,newName:D,type:Wo.Insert}]}))},e[15]=t,e[16]=h,e[17]=x,e[18]=f,e[19]=g);let y;return e[20]!==o||e[21]!==r||e[22]!==t.editableColumns||e[23]!==t.edits.edits||e[24]!==m||e[25]!==p||e[26]!==h||e[27]!==x||e[28]!==f||e[29]!==g?(y=(0,s.jsx)(LD,{data:r,setData:n,columnFields:o,setColumnFields:l,editableColumns:t.editableColumns,edits:t.edits.edits,onAddEdits:m,onAddRows:p,onDeleteRows:h,onRenameColumn:x,onDeleteColumn:f,onAddColumn:g}),e[20]=o,e[21]=r,e[22]=t.editableColumns,e[23]=t.edits.edits,e[24]=m,e[25]=p,e[26]=h,e[27]=x,e[28]=f,e[29]=g,e[30]=y):y=e[30],y};function WD(t,e){return{rowIdx:t-e,type:Wo.Remove}}var UD=" ";function Yi(t){return t.split(`
|
|
12
|
+
`),L=O===w.length-1;return(0,s.jsxs)("div",{className:U("flex flex-col group gap-2",R.role==="user"?"items-end":"items-start"),children:[(0,s.jsx)("div",{className:`max-w-[80%] p-3 rounded-lg ${R.role==="user"?"bg-(--sky-11) text-(--slate-1) whitespace-pre-wrap":"bg-(--slate-4) text-(--slate-12)"}`,children:BR({message:R,isStreamingReasoning:k==="streaming",isLast:L})}),(0,s.jsxs)("div",{className:"flex justify-end text-xs gap-2 invisible group-hover:visible",children:[(0,s.jsx)(ll,{value:V,className:"h-3 w-3",buttonClassName:"text-xs text-(--slate-9) hover:text-(--slate-11)"}),(0,s.jsx)("button",{type:"button",onClick:()=>E(R.id),className:"text-xs text-(--slate-9) hover:text-(--slate-11)",children:(0,s.jsx)(gv,{className:"h-3 w-3 text-(--red-9)"})})]})]},`${R.id}-${O}`)}),N&&(0,s.jsxs)("div",{className:"flex items-center justify-center space-x-2 mb-4",children:[(0,s.jsx)(Kn,{size:"small"}),(0,s.jsx)(Ce,{variant:"link",size:"sm",onClick:()=>A(),className:"text-(--red-9) hover:text-(--red-11)",children:"Stop"})]}),S&&(0,s.jsxs)("div",{className:"flex items-center justify-center space-x-2 mb-4",children:[(0,s.jsx)(Qr,{error:S}),(0,s.jsx)(Ce,{variant:"outline",size:"sm",onClick:()=>b(),children:"Retry"})]})]}),(0,s.jsxs)("form",{onSubmit:async R=>{if(R.preventDefault(),t.disabled)return;let O=l?await NT(l):void 0;D({role:"user",parts:[{type:"text",text:e},...O??[]]}),I()},ref:c,inert:t.disabled||void 0,className:U("flex w-full border-t border-(--slate-6) px-2 py-1 items-center",t.disabled&&"opacity-50 cursor-not-allowed"),children:[t.showConfigurationControls&&(0,s.jsx)(SD,{config:r,onChange:n}),t.prompts.length>0&&(0,s.jsx)(AD,{prompts:t.prompts,onSelect:R=>{a(R),requestAnimationFrame(()=>{M==null||M.focus(),gN(M)})}}),(0,s.jsx)(TT,{className:"rounded-sm mr-2",placeholder:T,value:e,inputRef:m,maxHeight:t.maxHeight?`${t.maxHeight/2}px`:void 0,onChange:a,onSubmit:(R,O)=>{var V;O.trim()&&((V=c.current)==null||V.requestSubmit())},onClose:()=>{},additionalCompletions:P}),l&&l.length===1&&(0,s.jsx)("span",{title:l[0].name,className:"text-sm text-(--slate-11) truncate shrink-0 w-fit max-w-24",children:l[0].name}),l&&l.length>1&&(0,s.jsxs)("span",{title:[...l].map(R=>R.name).join(`
|
|
13
|
+
`),className:"text-sm text-(--slate-11) truncate shrink-0",children:[l.length," files"]}),l&&l.length>0&&(0,s.jsx)(Ce,{type:"button",variant:"text",size:"sm",onClick:()=>{d(void 0),u.current&&(u.current.value="")},children:(0,s.jsx)(Hr,{className:"size-3"})}),_&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(Ce,{type:"button",variant:"text",size:"sm",onClick:()=>{var R;return(R=u.current)==null?void 0:R.click()},children:(0,s.jsx)(jT,{className:"h-4"})}),(0,s.jsx)("input",{type:"file",ref:u,className:"hidden",multiple:!0,accept:Array.isArray(t.allowAttachments)?t.allowAttachments.join(","):void 0,onChange:R=>{R.target.files&&d([...R.target.files])}})]}),(0,s.jsx)(Ce,{type:"submit",disabled:N||!e,variant:"outline",size:"xs",className:"text-(--slate-11)",children:(0,s.jsx)(DT,{className:"h-4 w-4"})})]})]})};var wn={max_tokens:{min:1,max:4096,description:"Maximum number of tokens to generate"},temperature:{min:0,max:2,step:.1,description:"Controls randomness (0: deterministic, 2: very random)"},top_p:{min:0,max:1,step:.1,description:"Nucleus sampling: probability mass to consider"},top_k:{min:1,max:100,description:"Top-k sampling: number of highest probability tokens to consider"},frequency_penalty:{min:-2,max:2,description:"Penalizes frequent tokens (-2: favor, 2: avoid)"},presence_penalty:{min:-2,max:2,description:"Penalizes new tokens (-2: favor, 2: avoid)"}},SD=t=>{let e=(0,Vs.c)(16),{config:a,onChange:r}=t,[n,i]=(0,v.useState)(!1),o;e[0]!==a||e[1]!==r?(o=(f,g)=>{let y=g===null||Number.isNaN(g)?null:g;if(y!==null){let{min:w,max:D}=wn[f];y=Math.max(w,Math.min(D,y))}r({...a,[f]:y})},e[0]=a,e[1]=r,e[2]=o):o=e[2];let l=o,d;e[3]===Symbol.for("react.memo_cache_sentinel")?(d=f=>{f.key==="Enter"&&(f.preventDefault(),i(!1))},e[3]=d):d=e[3];let u=d,c;e[4]===Symbol.for("react.memo_cache_sentinel")?(c=(0,s.jsx)(Ft,{content:"Configuration",children:(0,s.jsx)(wR,{asChild:!0,children:(0,s.jsx)(Ce,{variant:"outline",size:"sm",className:"border-none shadow-none hover:bg-transparent",children:(0,s.jsx)(D_,{className:"h-3 w-3"})})})}),e[4]=c):c=e[4];let m;e[5]===Symbol.for("react.memo_cache_sentinel")?(m=(0,s.jsx)("h4",{className:"font-bold leading-none",children:"Configuration"}),e[5]=m):m=e[5];let p;if(e[6]!==a||e[7]!==l){let f;e[9]===l?f=e[10]:(f=g=>{let[y,w]=g;return(0,s.jsxs)("div",{className:"grid grid-cols-3 items-center gap-1",children:[(0,s.jsxs)(ei,{htmlFor:y,className:"flex w-full justify-between col-span-3 align-end",children:[BN(y),(0,s.jsx)(Ft,{delayDuration:200,side:"top",content:(0,s.jsx)("div",{className:"text-xs flex flex-col",children:wn[y].description}),children:(0,s.jsx)(WT,{className:"h-3 w-3 cursor-help text-muted-foreground hover:text-foreground"})})]}),(0,s.jsx)(Pu,{id:y,"aria-label":y,value:w??NaN,placeholder:"null",minValue:wn[y].min,maxValue:wn[y].max,step:wn[y].step??1,onChange:D=>l(y,D),onKeyDown:u,className:"col-span-3"})]},y)},e[9]=l,e[10]=f),p=za.entries(a).map(f),e[6]=a,e[7]=l,e[8]=p}else p=e[8];let h;e[11]===p?h=e[12]:(h=(0,s.jsx)(Tv,{className:"w-70 border",children:(0,s.jsxs)("div",{className:"grid gap-3",children:[m,p]})}),e[11]=p,e[12]=h);let x;return e[13]!==n||e[14]!==h?(x=(0,s.jsxs)(_v,{open:n,onOpenChange:i,children:[c,h]}),e[13]=n,e[14]=h,e[15]=x):x=e[15],x},AD=t=>{let e=(0,Vs.c)(18),{prompts:a,onSelect:r}=t,[n,i]=(0,v.useState)(!1),[o,l]=(0,v.useState)(""),d;e[0]===r?d=e[1]:(d=g=>{[...g.matchAll(/{{(\w+)}}/g)].length>0?(l(g),i(!0)):r(g)},e[0]=r,e[1]=d);let u=d,c;e[2]===Symbol.for("react.memo_cache_sentinel")?(c=(0,s.jsx)(Ft,{content:"Select a prompt",children:(0,s.jsx)(ev,{asChild:!0,children:(0,s.jsx)(Ce,{variant:"outline",size:"sm",className:"border-none shadow-none hover:bg-transparent",children:(0,s.jsx)($T,{className:"h-3 w-3"})})})}),e[2]=c):c=e[2];let m;if(e[3]!==u||e[4]!==a){let g;e[6]===u?g=e[7]:(g=(y,w)=>(0,s.jsx)(Au,{onSelect:()=>u(y),className:"whitespace-normal text-left",children:y},w),e[6]=u,e[7]=g),m=a.map(g),e[3]=u,e[4]=a,e[5]=m}else m=e[5];let p;e[8]===m?p=e[9]:(p=(0,s.jsx)(yR,{children:(0,s.jsxs)(av,{children:[c,(0,s.jsx)(tv,{side:"right",align:"end",onCloseAutoFocus:ED,className:"w-64 max-h-96 overflow-y-auto",children:m})]})}),e[8]=m,e[9]=p);let h;e[10]===Symbol.for("react.memo_cache_sentinel")?(h=()=>i(!1),e[10]=h):h=e[10];let x;e[11]!==r||e[12]!==o?(x=(0,s.jsx)(Tv,{side:"right",align:"end",className:"min-w-80 px-2",children:(0,s.jsx)(ND,{prompt:o,onClose:h,onSelect:r})}),e[11]=r,e[12]=o,e[13]=x):x=e[13];let f;return e[14]!==n||e[15]!==p||e[16]!==x?(f=(0,s.jsxs)(_v,{open:n,onOpenChange:i,children:[p,x]}),e[14]=n,e[15]=p,e[16]=x,e[17]=f):f=e[17],f},ND=t=>{let e=(0,Vs.c)(32),{prompt:a,onClose:r,onSelect:n}=t,i;e[0]===Symbol.for("react.memo_cache_sentinel")?(i={},e[0]=i):i=e[0];let[o,l]=(0,v.useState)(i),d,u;e[1]===a?(d=e[2],u=e[3]):(d=()=>{l([...a.matchAll(/{{(\w+)}}/g)].reduce(TD,{}))},u=[a],e[1]=a,e[2]=d,e[3]=u),(0,v.useEffect)(d,u);let c;e[4]===Symbol.for("react.memo_cache_sentinel")?(c=(S,b)=>{l(C=>({...C,[S]:b}))},e[4]=c):c=e[4];let m=c,p;if(e[5]!==a||e[6]!==o){let S;e[8]===Symbol.for("react.memo_cache_sentinel")?(S=/{{(\w+)}}/g,e[8]=S):S=e[8];let b;e[9]===o?b=e[10]:(b=(C,N)=>o[N]||`{{${N}}}`,e[9]=o,e[10]=b),p=a.replaceAll(S,b),e[5]=a,e[6]=o,e[7]=p}else p=e[7];let h=p,x;e[11]===o?x=e[12]:(x=Object.values(o).some(_D),e[11]=o,e[12]=x);let f=x,g;e[13]!==r||e[14]!==n||e[15]!==h?(g=()=>{n(h),r()},e[13]=r,e[14]=n,e[15]=h,e[16]=g):g=e[16];let y=g,w;e[17]===o?w=e[18]:(w=Object.entries(o),e[17]=o,e[18]=w);let D;e[19]!==y||e[20]!==f||e[21]!==w?(D=w.map((S,b)=>{let[C,N]=S;return(0,s.jsxs)("div",{className:"grid grid-cols-4 items-center gap-2",children:[(0,s.jsx)(ei,{htmlFor:C,className:"font-semibold text-base",children:C}),(0,s.jsx)(Mu,{id:C,value:N,onChange:E=>m(C,E.target.value),rootClassName:"col-span-3 w-full",className:"m-0",placeholder:`Enter value for ${C}`,autoFocus:b===0,onKeyDown:E=>{E.key==="Enter"&&!f&&y()}})]},C)}),e[19]=y,e[20]=f,e[21]=w,e[22]=D):D=e[22];let j;e[23]===h?j=e[24]:(j=(0,s.jsx)("div",{className:"grid gap-2 prose dark:prose-invert",children:(0,s.jsx)("blockquote",{className:"text-sm",children:h})}),e[23]=h,e[24]=j);let k;e[25]!==y||e[26]!==f?(k=(0,s.jsx)(Ce,{onClick:y,size:"xs",disabled:f,children:"Submit"}),e[25]=y,e[26]=f,e[27]=k):k=e[27];let A;return e[28]!==j||e[29]!==k||e[30]!==D?(A=(0,s.jsxs)("div",{className:"grid gap-4",children:[D,j,k]}),e[28]=j,e[29]=k,e[30]=D,e[31]=A):A=e[31],A};function ED(t){return t.preventDefault()}function TD(t,e){return t[e[1]]="",t}function _D(t){return t==null||t.trim()===""}var l0=ee(B({id:F(),role:be(["system","user","assistant"]),content:F().nullable(),parts:ee(Pt()),metadata:Pt().nullable()})),s0=B({max_tokens:q().nullable(),temperature:q().nullable(),top_p:q().nullable(),top_k:q().nullable(),frequency_penalty:q().nullable(),presence_penalty:q().nullable()});const RD=zt("marimo-chatbot").withData(B({prompts:ee(F()).default(va.EMPTY),showConfigurationControls:W(),maxHeight:q().optional(),config:s0,allowAttachments:Se([W(),F().array()]),disabled:W().default(!1)})).withFunctions({get_chat_history:Xe.input(B({})).output(B({messages:l0})),delete_chat_history:Xe.input(B({})).output(Br()),delete_chat_message:Xe.input(B({index:q()})).output(Br()),send_prompt:Xe.input(B({messages:l0,config:s0})).output(Ia())}).renderer(t=>{var e;return(0,s.jsx)(At,{children:(0,s.jsx)(v.Suspense,{children:(0,s.jsx)(kD,{prompts:t.data.prompts,showConfigurationControls:t.data.showConfigurationControls,maxHeight:t.data.maxHeight,allowAttachments:t.data.allowAttachments,disabled:t.data.disabled,config:t.data.config,get_chat_history:t.functions.get_chat_history,delete_chat_history:t.functions.delete_chat_history,delete_chat_message:t.functions.delete_chat_message,send_prompt:t.functions.send_prompt,value:((e=t.value)==null?void 0:e.messages)||va.EMPTY,setValue:a=>t.setValue({messages:a}),host:t.host})})})});var ID='.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}.gdg-c1tqibwd,.gdg-d19meir1{display:flex}.gdg-d19meir1{box-sizing:border-box;--overlay-top:var(--d19meir1-0);font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);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;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-b1ygi5by{flex-wrap:wrap;margin-top:auto;margin-bottom:auto}.gdg-b1ygi5by,.gdg-b1ygi5by .boe-bubble{display:flex}.gdg-b1ygi5by .boe-bubble{background-color:var(--gdg-bg-bubble);border-radius:var(--gdg-rounding-radius,10px);color:var(--gdg-text-dark);justify-content:center;align-items:center;height:20px;margin:2px;padding:0 8px}.gdg-b1ygi5by textarea{opacity:0;width:0;height:0;position:absolute;top:0;left:0}.gdg-u1rrojo{align-items:center;min-height:21px;display:flex}.gdg-u1rrojo,.gdg-u1rrojo .gdg-link-area{flex-grow:1}.gdg-u1rrojo .gdg-link-area{color:var(--gdg-link-color);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;margin-right:8px;overflow:hidden;-webkit-text-decoration:underline!important;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-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);font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);padding:0}.gdg-i2iowwq,.gdg-i2iowwq .gdg-centering-container{height:100%;display:flex}.gdg-i2iowwq .gdg-centering-container{justify-content:center;align-items:center}.gdg-i2iowwq .gdg-centering-container canvas,.gdg-i2iowwq .gdg-centering-container img{max-height:calc(100vh - var(--overlay-top) - 20px);object-fit:contain;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-m1pnx84e{min-width:var(--m1pnx84e-0);-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;width:100%;color:var(--gdg-text-dark);justify-content:space-between;align-items:flex-start;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{cursor:pointer;color:var(--gdg-accent-color);width:24px;height:24px;-webkit-transition:all "0.125s ease";transition:all "0.125s ease";border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;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}.gdg-d4zsq0x,.gdg-d4zsq0x .doe-bubble{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;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-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-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-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-invalid .gdg-izpuzkl{text-decoration:underline #d60606}.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}.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-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-textDark);border:0;outline:none;width:220px}.gdg-seveqep button{width:24px;height:24px;color:var(--gdg-text-medium);cursor:pointer;background:0 0;border:none;outline:none;justify-content:center;align-items:center;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%}',PD=Q();const d0=t=>{let e=(0,PD.c)(14),{wrapperClassName:a,className:r,pageSize:n}=t,i=n===void 0?10:n,o;e[0]===a?o=e[1]:(o=U(a,"flex flex-col space-y-2"),e[0]=a,e[1]=o);let l=r||"rounded-md border",d;e[2]===l?d=e[3]:(d=U(l),e[2]=l,e[3]=d);let u;e[4]===Symbol.for("react.memo_cache_sentinel")?(u=(0,s.jsx)(Vv,{children:Array.from({length:1}).map(FD)}),e[4]=u):u=e[4];let c;e[5]===i?c=e[6]:(c=(0,s.jsxs)(qu,{children:[u,(0,s.jsx)(Ku,{children:Array.from({length:i}).map(VD)})]}),e[5]=i,e[6]=c);let m;e[7]!==d||e[8]!==c?(m=(0,s.jsx)("div",{className:d,children:c}),e[7]=d,e[8]=c,e[9]=m):m=e[9];let p;e[10]===Symbol.for("react.memo_cache_sentinel")?(p=(0,s.jsx)("div",{className:"flex align-items justify-between shrink-0 h-8"}),e[10]=p):p=e[10];let h;return e[11]!==o||e[12]!==m?(h=(0,s.jsxs)("div",{className:o,children:[m,p]}),e[11]=o,e[12]=m,e[13]=h):h=e[13],h};function MD(t,e){return(0,s.jsx)(Yu,{children:(0,s.jsx)("div",{className:"h-4 bg-(--slate-5) animate-pulse rounded-md w-[70%]"})},e)}function FD(t,e){return(0,s.jsx)(Jr,{children:Array.from({length:8}).map(MD)},e)}function zD(t,e){return(0,s.jsx)(cr,{children:(0,s.jsx)("div",{className:"h-4 bg-(--slate-5) animate-pulse rounded-md w-[90%]"})},e)}function VD(t,e){return(0,s.jsx)(Jr,{children:Array.from({length:8}).map(zD)},e)}const Zi=["string","boolean","integer","number","date","datetime","time","unknown"];function OD(t){return!t||Object.keys(t).length===0?"auto":za.mapValues(t,e=>e==="date"||e==="time"?"string":e==="datetime"?"date":e)}var BD=Q(),LD=v.lazy(()=>bt(()=>import("./glide-data-editor-DXeMF5KH.js").then(async t=>(await t.__tla,t)),__vite__mapDeps([329,4,112,12,13,14,8,9,10,6,7,11,37,73,15,16,18,19,21,20,74,85,84,26,27,28,65,66,43,86,48,29,87,88,89,90,22,82,83,17,24,46,330,47,25,30,31,32,41,42,44,99,331,332,158,102,103,104,274,275,333]),import.meta.url));const $D=zt("marimo-data-editor",{cssStyles:[ID]}).withData(B({initialValue:B({edits:ee(B({rowIdx:q(),columnId:F(),value:Ia()}))}),label:F().nullable(),data:Se([F(),ee(B({}).passthrough())]),fieldTypes:ee(Pa([j1(),Pa([be(Zi),F()])])).nullish(),editableColumns:Se([ee(F()),Le("all")]),columnSizingMode:be(["auto","fit"]).default("auto")})).withFunctions({}).renderer(t=>(0,s.jsx)(jv,{children:(0,s.jsx)(HD,{data:t.data.data,fieldTypes:t.data.fieldTypes,edits:t.value,onEdits:t.setValue,host:t.host,editableColumns:t.data.editableColumns})}));var HD=t=>{let e=(0,BD.c)(31),a;e[0]===Symbol.for("react.memo_cache_sentinel")?(a=[],e[0]=a):a=e[0];let[r,n]=(0,v.useState)(a),i;e[1]===Symbol.for("react.memo_cache_sentinel")?(i={},e[1]=i):i=e[1];let[o,l]=(0,v.useState)(i),d,u;e[2]!==t.data||e[3]!==t.fieldTypes?(d=async()=>{let w=ju(t.fieldTypes??[]),D=Array.isArray(t.data)?t.data:await S1(t.data,{type:"csv",parse:OD(w)},{handleBigIntAndNumberLike:!0});n(D),l(ju(t.fieldTypes??ku(D)))},u=[t.fieldTypes,t.data],e[2]=t.data,e[3]=t.fieldTypes,e[4]=d,e[5]=u):(d=e[4],u=e[5]);let{error:c}=Nt(d,u);if(c){let w;e[6]===Symbol.for("react.memo_cache_sentinel")?(w=(0,s.jsx)(Zu,{children:"Error"}),e[6]=w):w=e[6];let D=c.message||"An unknown error occurred",j;return e[7]===D?j=e[8]:(j=(0,s.jsxs)(sl,{variant:"destructive",className:"mb-2",children:[w,(0,s.jsx)("div",{className:"text-md",children:D})]}),e[7]=D,e[8]=j),j}if(!r){let w;return e[9]===Symbol.for("react.memo_cache_sentinel")?(w=(0,s.jsx)(Du,{milliseconds:200,children:(0,s.jsx)(d0,{pageSize:10})}),e[9]=w):w=e[9],w}let m;e[10]===t?m=e[11]:(m=w=>{t.onEdits(D=>({...D,edits:[...D.edits,...w]}))},e[10]=t,e[11]=m);let p;e[12]!==r||e[13]!==t?(p=w=>{let D=w.flatMap((j,k)=>Object.entries(j).map(A=>{let[S,b]=A;return{rowIdx:r.length+k,columnId:S,value:b}}));t.onEdits(j=>({...j,edits:[...j.edits,...D]}))},e[12]=r,e[13]=t,e[14]=p):p=e[14];let h,x,f,g;e[15]===t?(h=e[16],x=e[17],f=e[18],g=e[19]):(h=w=>{t.onEdits(D=>{let j=w.map(WD);return{...D,edits:[...D.edits,...j]}})},x=(w,D)=>{t.onEdits(j=>({...j,edits:[...j.edits,{columnIdx:w,newName:D,type:Wo.Rename}]}))},f=w=>{t.onEdits(D=>({...D,edits:[...D.edits,{columnIdx:w,type:Wo.Remove}]}))},g=(w,D)=>{t.onEdits(j=>({...j,edits:[...j.edits,{columnIdx:w,newName:D,type:Wo.Insert}]}))},e[15]=t,e[16]=h,e[17]=x,e[18]=f,e[19]=g);let y;return e[20]!==o||e[21]!==r||e[22]!==t.editableColumns||e[23]!==t.edits.edits||e[24]!==m||e[25]!==p||e[26]!==h||e[27]!==x||e[28]!==f||e[29]!==g?(y=(0,s.jsx)(LD,{data:r,setData:n,columnFields:o,setColumnFields:l,editableColumns:t.editableColumns,edits:t.edits.edits,onAddEdits:m,onAddRows:p,onDeleteRows:h,onRenameColumn:x,onDeleteColumn:f,onAddColumn:g}),e[20]=o,e[21]=r,e[22]=t.editableColumns,e[23]=t.edits.edits,e[24]=m,e[25]=p,e[26]=h,e[27]=x,e[28]=f,e[29]=g,e[30]=y):y=e[30],y};function WD(t,e){return{rowIdx:t-e,type:Wo.Remove}}var UD=" ";function Yi(t){return t.split(`
|
|
14
14
|
`).map(e=>UD+e).join(`
|
|
15
15
|
`)}function ZD(t){return`
|
|
16
16
|
${Yi(t.map(Ki).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-6ARMqXZ0.js"></script>
|
|
70
70
|
<link rel="modulepreload" crossorigin href="./assets/preload-helper-D2MJg03u.js">
|
|
71
71
|
<link rel="modulepreload" crossorigin href="./assets/clsx-D8GwTfvk.js">
|
|
72
72
|
<link rel="modulepreload" crossorigin href="./assets/cn-BKtXLv3a.js">
|
package/package.json
CHANGED
|
@@ -47,6 +47,7 @@ export const ChatPlugin = createPlugin<{ messages: UIMessage[] }>(
|
|
|
47
47
|
maxHeight: z.number().optional(),
|
|
48
48
|
config: configSchema,
|
|
49
49
|
allowAttachments: z.union([z.boolean(), z.string().array()]),
|
|
50
|
+
disabled: z.boolean().default(false),
|
|
50
51
|
}),
|
|
51
52
|
)
|
|
52
53
|
.withFunctions<PluginFunctions>({
|
|
@@ -76,6 +77,7 @@ export const ChatPlugin = createPlugin<{ messages: UIMessage[] }>(
|
|
|
76
77
|
showConfigurationControls={props.data.showConfigurationControls}
|
|
77
78
|
maxHeight={props.data.maxHeight}
|
|
78
79
|
allowAttachments={props.data.allowAttachments}
|
|
80
|
+
disabled={props.data.disabled}
|
|
79
81
|
config={props.data.config}
|
|
80
82
|
get_chat_history={props.functions.get_chat_history}
|
|
81
83
|
delete_chat_history={props.functions.delete_chat_history}
|
|
@@ -67,6 +67,7 @@ interface Props extends PluginFunctions {
|
|
|
67
67
|
showConfigurationControls: boolean;
|
|
68
68
|
maxHeight: number | undefined;
|
|
69
69
|
allowAttachments: boolean | string[];
|
|
70
|
+
disabled: boolean;
|
|
70
71
|
value: UIMessage[];
|
|
71
72
|
setValue: (messages: UIMessage[]) => void;
|
|
72
73
|
host: HTMLElement;
|
|
@@ -450,6 +451,9 @@ export const Chatbot: React.FC<Props> = (props) => {
|
|
|
450
451
|
<form
|
|
451
452
|
onSubmit={async (evt) => {
|
|
452
453
|
evt.preventDefault();
|
|
454
|
+
if (props.disabled) {
|
|
455
|
+
return;
|
|
456
|
+
}
|
|
453
457
|
|
|
454
458
|
const fileParts = files
|
|
455
459
|
? await convertToFileUIPart(files)
|
|
@@ -462,7 +466,12 @@ export const Chatbot: React.FC<Props> = (props) => {
|
|
|
462
466
|
resetInput();
|
|
463
467
|
}}
|
|
464
468
|
ref={formRef}
|
|
465
|
-
|
|
469
|
+
// biome-ignore lint/a11y/useSemanticElements: inert is used to disable the entire form
|
|
470
|
+
inert={props.disabled || undefined}
|
|
471
|
+
className={cn(
|
|
472
|
+
"flex w-full border-t border-(--slate-6) px-2 py-1 items-center",
|
|
473
|
+
props.disabled && "opacity-50 cursor-not-allowed",
|
|
474
|
+
)}
|
|
466
475
|
>
|
|
467
476
|
{props.showConfigurationControls && (
|
|
468
477
|
<ConfigPopup config={config} onChange={setConfig} />
|