@marimo-team/frontend 0.24.1-dev57 → 0.24.1-dev59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/assets/add-cell-with-ai-DVGZNNUv.js +76 -0
  2. package/dist/assets/{agent-panel-D7mo8YLQ.js → agent-panel-BTY3oeHD.js} +3 -3
  3. package/dist/assets/cell-editor-D3YsOG7a.js +21 -0
  4. package/dist/assets/{chat-display-Cgg0xLir.js → chat-display-NTNQQyoE.js} +1 -1
  5. package/dist/assets/chat-panel-Bow0QKrA.js +4 -0
  6. package/dist/assets/{chat-ui-DYLpA8l4.js → chat-ui-Cg69zAqt.js} +4 -4
  7. package/dist/assets/{command-palette-DiT0E_K7.js → command-palette-QFmIvDcT.js} +1 -1
  8. package/dist/assets/{edit-page-DAC4cNKe.js → edit-page-ds4edlkF.js} +6 -6
  9. package/dist/assets/{index-DTQ4RS9q.js → index-B36dhEV6.js} +3 -3
  10. package/dist/assets/index-ecw9ngZu.css +2 -0
  11. package/dist/assets/{layout-D3zwsTvR.js → layout-iNJ-1JI2.js} +2 -2
  12. package/dist/assets/{panels-ChFSBlsU.js → panels-BbkuRtEi.js} +1 -1
  13. package/dist/assets/{reveal-component-BFRmOcQr.js → reveal-component-C4pF9OE7.js} +1 -1
  14. package/dist/assets/{run-page-MZCCEXct.js → run-page-Bo57bjbp.js} +1 -1
  15. package/dist/assets/{scratchpad-panel-BqYT2vj3.js → scratchpad-panel-vBIq9BfA.js} +1 -1
  16. package/dist/assets/{skeleton-gmxAkHfa.js → skeleton-B5iAa5n_.js} +1 -1
  17. package/dist/assets/{useNotebookActions-BoFJmccb.js → useNotebookActions-DGuDG0Px.js} +1 -1
  18. package/dist/index.html +2 -2
  19. package/package.json +1 -1
  20. package/src/components/editor/ai/__tests__/completion-utils.test.ts +0 -178
  21. package/src/components/editor/ai/__tests__/staged-cell-submission.test.ts +106 -0
  22. package/src/components/editor/ai/add-cell-with-ai.tsx +83 -62
  23. package/src/components/editor/ai/ai-completion-editor.tsx +71 -37
  24. package/src/components/editor/ai/completion-handlers.tsx +4 -0
  25. package/src/components/editor/ai/completion-utils.ts +0 -92
  26. package/src/components/editor/ai/staged-cell-submission.ts +46 -0
  27. package/src/components/editor/cell/StagedAICell.tsx +4 -2
  28. package/src/components/editor/cell/__tests__/StagedAICell.test.tsx +64 -0
  29. package/src/components/editor/chrome/wrapper/__tests__/pending-ai-cells.test.tsx +77 -0
  30. package/src/components/editor/chrome/wrapper/pending-ai-cells.tsx +8 -2
  31. package/src/core/ai/__tests__/staged-cells.test.ts +442 -125
  32. package/src/core/ai/__tests__/stream-completion-text.test.ts +74 -0
  33. package/src/core/ai/completion-output.ts +56 -0
  34. package/src/core/ai/staged-cells.ts +245 -164
  35. package/src/core/ai/stream-completion-text.ts +23 -6
  36. package/src/css/globals.css +1 -0
  37. package/dist/assets/add-cell-with-ai-0dqk0f7O.js +0 -77
  38. package/dist/assets/cell-editor-e7_o4mEh.js +0 -24
  39. package/dist/assets/chat-panel-BaG-5LiN.js +0 -4
  40. package/dist/assets/index-BrmH4-pI.css +0 -2
  41. package/src/core/ai/__tests__/strip-wrapping-backticks.test.ts +0 -133
  42. package/src/core/ai/strip-wrapping-backticks.ts +0 -88
@@ -0,0 +1,4 @@
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t,d as n,l as r,t as i,u as a}from"./useEvent-xfs0Sn4r.js";import{t as o}from"./react-CBDbhulC.js";import{Bi as s,E as c,ea as l,fn as u,hn as d,mn as f,tr as p,wr as m}from"./cells-DfJw5iuV.js";import{t as h}from"./compiler-runtime-CYIjoINj.js";import{c as g,k as _,r as v,t as y}from"./ai-model-dropdown-D2q0Cm0R.js";import{g as b,o as x}from"./useEventListener-D27Dii_l.js";import{a as S,n as C}from"./utils-R_pHe-RB.js";import{N as w,o as T}from"./config-CUBl5qBg.js";import{t as E}from"./switch-CBR-ykv3.js";import{t as D}from"./cn-ldLVeaqm.js";import{t as O}from"./jsx-runtime-B74pBk57.js";import{C as k,b as A,g as j,v as M,w as N,x as P}from"./fullscreen-0EEPR7uc.js";import{u as F}from"./menu-items-BSVrMleU.js";import{t as ee}from"./config-DcB2swfZ.js";import{a as te,i as I,m as L,n as ne,r as re,s as ie,t as ae}from"./select-BUEX2Vfl.js";import{i as oe,t as R}from"./tooltip-D7dq6bnc.js";import{t as z}from"./button-BMBznEru.js";import{r as se}from"./requests-C6_IaFh7.js";import{t as ce}from"./createLucideIcon-B7HeEoG2.js";import{t as le}from"./scroll-to-bottom-button-D5uTen4e.js";import{t as ue}from"./arrow-right-CMihiUEa.js";import{t as B}from"./bot-message-square-CGhPjWFf.js";import{i as de,n as fe,r as pe,t as me}from"./chat-display-NTNQQyoE.js";import{B as he,C as ge,D as V,E as _e,N as ve,R as ye,S as be,U as xe,_ as Se,b as Ce,c as we,d as Te,f as Ee,g as De,h as Oe,k as ke,l as H,m as Ae,n as U,u as je,v as Me,w as Ne,x as Pe,y as Fe,z as Ie}from"./add-cell-with-ai-DVGZNNUv.js";import{t as Le}from"./code-CF0HKE9K.js";import{t as Re}from"./hat-glasses-C8LSY3HT.js";import{b as ze,p as Be}from"./write-secret-modal-BG_B6y1P.js";import{n as Ve}from"./spinner-Ck-Hgfvj.js";import{t as He}from"./message-circle-BQB1AIAg.js";import{t as Ue}from"./plus-C4J9gIE1.js";import{Wt as W,r as G}from"./input-DeyycFtq.js";import{t as We}from"./settings-C-cYas75.js";import{t as Ge}from"./uuid-k9DpjH68.js";import{t as Ke}from"./context-Do8M9TDF.js";import{s as qe}from"./dates-DK5JikJo.js";import{t as Je}from"./copy-icon-LPQzn7_f.js";import{i as Ye,o as Xe,r as Ze,t as Qe}from"./state-CZxxcsV7.js";import{n as $e}from"./error-banner-B3KYUlCX.js";import{t as K}from"./empty-state-kWyb5dCS.js";import{t as et}from"./pair-with-agent-modal-CBIL9_6g.js";var q=e(o(),1),J=O();function tt(e,t){return q.useReducer((e,n)=>t[e][n]??e,e)}var nt=`ScrollArea`,[rt,it]=k(nt),[at,Y]=rt(nt),ot=q.forwardRef((e,t)=>{let{__scopeScrollArea:n,type:r=`hover`,dir:i,scrollHideDelay:a=600,...o}=e,[s,c]=q.useState(null),[l,u]=q.useState(null),[d,f]=q.useState(null),[p,m]=q.useState(null),[h,g]=q.useState(null),[_,v]=q.useState(0),[y,b]=q.useState(0),[S,C]=q.useState(!1),[w,T]=q.useState(!1),E=x(t,e=>c(e)),D=F(i);return(0,J.jsx)(at,{scope:n,type:r,dir:D,scrollHideDelay:a,scrollArea:s,viewport:l,onViewportChange:u,content:d,onContentChange:f,scrollbarX:p,onScrollbarXChange:m,scrollbarXEnabled:S,onScrollbarXEnabledChange:C,scrollbarY:h,onScrollbarYChange:g,scrollbarYEnabled:w,onScrollbarYEnabledChange:T,onCornerWidthChange:v,onCornerHeightChange:b,children:(0,J.jsx)(N.div,{dir:D,...o,ref:E,style:{position:`relative`,"--radix-scroll-area-corner-width":_+`px`,"--radix-scroll-area-corner-height":y+`px`,...e.style}})})});ot.displayName=nt;var st=`ScrollAreaViewport`,ct=q.forwardRef((e,t)=>{let{__scopeScrollArea:n,children:r,nonce:i,...a}=e,o=Y(st,n),s=q.useRef(null),c=x(t,s,o.onViewportChange);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`},nonce:i}),(0,J.jsx)(N.div,{"data-radix-scroll-area-viewport":``,...a,ref:c,style:{overflowX:o.scrollbarXEnabled?`scroll`:`hidden`,overflowY:o.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,J.jsx)(`div`,{ref:o.onContentChange,style:{minWidth:`100%`,display:`table`},children:r})})]})});ct.displayName=st;var X=`ScrollAreaScrollbar`,Z=q.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=Y(X,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:o}=i,s=e.orientation===`horizontal`;return q.useEffect(()=>(s?a(!0):o(!0),()=>{s?a(!1):o(!1)}),[s,a,o]),i.type===`hover`?(0,J.jsx)(lt,{...r,ref:t,forceMount:n}):i.type===`scroll`?(0,J.jsx)(ut,{...r,ref:t,forceMount:n}):i.type===`auto`?(0,J.jsx)(dt,{...r,ref:t,forceMount:n}):i.type===`always`?(0,J.jsx)(ft,{...r,ref:t}):null});Z.displayName=X;var lt=q.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=Y(X,e.__scopeScrollArea),[a,o]=q.useState(!1);return q.useEffect(()=>{let e=i.scrollArea,t=0;if(e){let n=()=>{window.clearTimeout(t),o(!0)},r=()=>{t=window.setTimeout(()=>o(!1),i.scrollHideDelay)};return e.addEventListener(`pointerenter`,n),e.addEventListener(`pointerleave`,r),()=>{window.clearTimeout(t),e.removeEventListener(`pointerenter`,n),e.removeEventListener(`pointerleave`,r)}}},[i.scrollArea,i.scrollHideDelay]),(0,J.jsx)(M,{present:n||a,children:(0,J.jsx)(dt,{"data-state":a?`visible`:`hidden`,...r,ref:t})})}),ut=q.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=Y(X,e.__scopeScrollArea),a=e.orientation===`horizontal`,o=Mt(()=>c(`SCROLL_END`),100),[s,c]=tt(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}});return q.useEffect(()=>{if(s===`idle`){let e=window.setTimeout(()=>c(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[s,i.scrollHideDelay,c]),q.useEffect(()=>{let e=i.viewport,t=a?`scrollLeft`:`scrollTop`;if(e){let n=e[t],r=()=>{let r=e[t];n!==r&&(c(`SCROLL`),o()),n=r};return e.addEventListener(`scroll`,r),()=>e.removeEventListener(`scroll`,r)}},[i.viewport,a,c,o]),(0,J.jsx)(M,{present:n||s!==`hidden`,children:(0,J.jsx)(ft,{"data-state":s===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:P(e.onPointerEnter,()=>c(`POINTER_ENTER`)),onPointerLeave:P(e.onPointerLeave,()=>c(`POINTER_LEAVE`))})})}),dt=q.forwardRef((e,t)=>{let n=Y(X,e.__scopeScrollArea),{forceMount:r,...i}=e,[a,o]=q.useState(!1),s=e.orientation===`horizontal`,c=Mt(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;o(s?e:t)}},10);return Q(n.viewport,c),Q(n.content,c),(0,J.jsx)(M,{present:r||a,children:(0,J.jsx)(ft,{"data-state":a?`visible`:`hidden`,...i,ref:t})})}),ft=q.forwardRef((e,t)=>{let{orientation:n=`vertical`,...r}=e,i=Y(X,e.__scopeScrollArea),a=q.useRef(null),o=q.useRef(0),[s,c]=q.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=Tt(s.viewport,s.content),u={...r,sizes:s,onSizesChange:c,hasThumb:l>0&&l<1,onThumbChange:e=>a.current=e,onThumbPointerUp:()=>o.current=0,onThumbPointerDown:e=>o.current=e};function d(e,t){return Dt(e,o.current,s,t)}return n===`horizontal`?(0,J.jsx)(pt,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollLeft,t=Ot(e,s,i.dir);a.current.style.transform=`translate3d(${t}px, 0, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollLeft=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollLeft=d(e,i.dir))}}):n===`vertical`?(0,J.jsx)(mt,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollTop,t=Ot(e,s);a.current.style.transform=`translate3d(0, ${t}px, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollTop=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollTop=d(e))}}):null}),pt=q.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=Y(X,e.__scopeScrollArea),[o,s]=q.useState(),c=q.useRef(null),l=x(t,c,a.onScrollbarXChange);return q.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,J.jsx)(_t,{"data-orientation":`horizontal`,...i,ref:l,sizes:n,style:{bottom:0,left:a.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:a.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":Et(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),At(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollWidth,viewport:a.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:wt(o.paddingLeft),paddingEnd:wt(o.paddingRight)}})}})}),mt=q.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=Y(X,e.__scopeScrollArea),[o,s]=q.useState(),c=q.useRef(null),l=x(t,c,a.onScrollbarYChange);return q.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,J.jsx)(_t,{"data-orientation":`vertical`,...i,ref:l,sizes:n,style:{top:0,right:a.dir===`ltr`?0:void 0,left:a.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":Et(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),At(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollHeight,viewport:a.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:wt(o.paddingTop),paddingEnd:wt(o.paddingBottom)}})}})}),[ht,gt]=rt(X),_t=q.forwardRef((e,t)=>{let{__scopeScrollArea:n,sizes:r,hasThumb:i,onThumbChange:a,onThumbPointerUp:o,onThumbPointerDown:s,onThumbPositionChange:c,onDragScroll:l,onWheelScroll:u,onResize:d,...f}=e,p=Y(X,n),[m,h]=q.useState(null),g=x(t,e=>h(e)),_=q.useRef(null),v=q.useRef(``),y=p.viewport,b=r.content-r.viewport,S=j(u),C=j(c),w=Mt(d,10);function T(e){if(_.current){let t=e.clientX-_.current.left,n=e.clientY-_.current.top;l({x:t,y:n})}}return q.useEffect(()=>{let e=e=>{let t=e.target;m?.contains(t)&&S(e,b)};return document.addEventListener(`wheel`,e,{passive:!1}),()=>document.removeEventListener(`wheel`,e,{passive:!1})},[y,m,b,S]),q.useEffect(C,[r,C]),Q(m,w),Q(p.content,w),(0,J.jsx)(ht,{scope:n,scrollbar:m,hasThumb:i,onThumbChange:j(a),onThumbPointerUp:j(o),onThumbPositionChange:C,onThumbPointerDown:j(s),children:(0,J.jsx)(N.div,{...f,ref:g,style:{position:`absolute`,...f.style},onPointerDown:P(e.onPointerDown,e=>{e.button===0&&(e.target.setPointerCapture(e.pointerId),_.current=m.getBoundingClientRect(),v.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,p.viewport&&(p.viewport.style.scrollBehavior=`auto`),T(e))}),onPointerMove:P(e.onPointerMove,T),onPointerUp:P(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=v.current,p.viewport&&(p.viewport.style.scrollBehavior=``),_.current=null})})})}),vt=`ScrollAreaThumb`,yt=q.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=gt(vt,e.__scopeScrollArea);return(0,J.jsx)(M,{present:n||i.hasThumb,children:(0,J.jsx)(bt,{ref:t,...r})})}),bt=q.forwardRef((e,t)=>{let{__scopeScrollArea:n,style:r,...i}=e,a=Y(vt,n),o=gt(vt,n),{onThumbPositionChange:s}=o,c=x(t,e=>o.onThumbChange(e)),l=q.useRef(void 0),u=Mt(()=>{l.current&&=(l.current(),void 0)},100);return q.useEffect(()=>{let e=a.viewport;if(e){let t=()=>{if(u(),!l.current){let t=jt(e,s);l.current=t,s()}};return s(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[a.viewport,u,s]),(0,J.jsx)(N.div,{"data-state":o.hasThumb?`visible`:`hidden`,...i,ref:c,style:{width:`var(--radix-scroll-area-thumb-width)`,height:`var(--radix-scroll-area-thumb-height)`,...r},onPointerDownCapture:P(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;o.onThumbPointerDown({x:n,y:r})}),onPointerUp:P(e.onPointerUp,o.onThumbPointerUp)})});yt.displayName=vt;var xt=`ScrollAreaCorner`,St=q.forwardRef((e,t)=>{let n=Y(xt,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!==`scroll`&&r?(0,J.jsx)(Ct,{...e,ref:t}):null});St.displayName=xt;var Ct=q.forwardRef((e,t)=>{let{__scopeScrollArea:n,...r}=e,i=Y(xt,n),[a,o]=q.useState(0),[s,c]=q.useState(0),l=!!(a&&s);return Q(i.scrollbarX,()=>{let e=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(e),c(e)}),Q(i.scrollbarY,()=>{let e=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(e),o(e)}),l?(0,J.jsx)(N.div,{...r,ref:t,style:{width:a,height:s,position:`absolute`,right:i.dir===`ltr`?0:void 0,left:i.dir===`rtl`?0:void 0,bottom:0,...e.style}}):null});function wt(e){return e?parseInt(e,10):0}function Tt(e,t){let n=e/t;return isNaN(n)?0:n}function Et(e){let t=Tt(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function Dt(e,t,n,r=`ltr`){let i=Et(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return kt([c,l],d)(e)}function Ot(e,t,n=`ltr`){let r=Et(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=n===`ltr`?[0,o]:[o*-1,0],l=L(e,c);return kt([0,o],[0,s])(l)}function kt(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function At(e,t){return e>0&&e<t}var jt=(e,t=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function i(){let a={left:e.scrollLeft,top:e.scrollTop},o=n.left!==a.left,s=n.top!==a.top;(o||s)&&t(),n=a,r=window.requestAnimationFrame(i)})(),()=>window.cancelAnimationFrame(r)};function Mt(e,t){let n=j(e),r=q.useRef(0);return q.useEffect(()=>()=>window.clearTimeout(r.current),[]),q.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function Q(e,t){let n=j(t);A(()=>{let t=0;if(e){let r=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)});return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}},[e,n])}var Nt=ot,Pt=ct,Ft=St,It=ce(`notebook-text`,[[`path`,{d:`M2 6h4`,key:`aawbzj`}],[`path`,{d:`M2 10h4`,key:`l0bgd4`}],[`path`,{d:`M2 14h4`,key:`1gsvsf`}],[`path`,{d:`M2 18h4`,key:`1bu2t1`}],[`rect`,{width:`16`,height:`20`,x:`4`,y:`2`,rx:`2`,key:`1nb95v`}],[`path`,{d:`M9.5 8h5`,key:`11mslq`}],[`path`,{d:`M9.5 12H16`,key:`ktog6x`}],[`path`,{d:`M9.5 16H14`,key:`p1seyn`}]]),Lt=ce(`sliders-horizontal`,[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]),$=h(),Rt=({chatState:e,chatId:t,messages:n})=>{if(!t)return b.warn(`No active chat`),e;let r=e.chats.get(t);if(!r)return b.warn(`No active chat`),e;let i=new Map(e.chats),a=Date.now();return i.set(r.id,{...r,messages:n,updatedAt:a}),{...e,chats:i}},zt=class extends he{onChunkReceived;constructor(e,t){super(e),this.onChunkReceived=t}processResponseStream(e){let t=this.onChunkReceived;return super.processResponseStream(e).pipeThrough(new TransformStream({async transform(e,n){t(e),n.enqueue(e)}}))}},Bt=q.forwardRef((e,t)=>{let n=(0,$.c)(15),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:i,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o;n[4]===i?o=n[5]:(o=D(`relative overflow-hidden`,i),n[4]=i,n[5]=o);let s;n[6]===r?s=n[7]:(s=(0,J.jsx)(Pt,{className:`h-full w-full rounded-[inherit]`,children:r}),n[6]=r,n[7]=s);let c,l;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,J.jsx)(Vt,{}),l=(0,J.jsx)(Ft,{}),n[8]=c,n[9]=l):(c=n[8],l=n[9]);let u;return n[10]!==a||n[11]!==t||n[12]!==o||n[13]!==s?(u=(0,J.jsxs)(Nt,{ref:t,className:o,...a,children:[s,c,l]}),n[10]=a,n[11]=t,n[12]=o,n[13]=s,n[14]=u):u=n[14],u});Bt.displayName=Nt.displayName;var Vt=q.forwardRef((e,t)=>{let n=(0,$.c)(14),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,orientation:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o=a===void 0?`vertical`:a,s=o===`vertical`&&`h-full w-2.5 border-l border-l-transparent p-px`,c=o===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent p-px`,l;n[4]!==r||n[5]!==s||n[6]!==c?(l=D(`flex touch-none select-none transition-colors`,s,c,r),n[4]=r,n[5]=s,n[6]=c,n[7]=l):l=n[7];let u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,J.jsx)(yt,{className:`relative flex-1 rounded-full bg-border`}),n[8]=u):u=n[8];let d;return n[9]!==o||n[10]!==i||n[11]!==t||n[12]!==l?(d=(0,J.jsx)(Z,{ref:t,orientation:o,className:l,...i,children:u}),n[9]=o,n[10]=i,n[11]=t,n[12]=l,n[13]=d):d=n[13],d});Vt.displayName=Z.displayName;var Ht=[{label:`Today`,days:0},{label:`Yesterday`,days:1},{label:`2d ago`,days:2},{label:`3d ago`,days:3},{label:`This week`,days:7},{label:`This month`,days:30}],Ut=e=>{let t=Date.now(),n=Ht.map(e=>({...e,chats:[]})),r={label:`Older`,days:1/0,chats:[]},i=e=>{switch(e){case 0:return n[0];case 1:return n[1];case 2:return n[2];case 3:return n[3];default:return e>=4&&e<=7?n[4]:e>=8&&e<=30?n[5]:r}};for(let n of e)i(Math.floor((t-n.updatedAt)/864e5)).chats.push(n);return[...n,r].filter(e=>e.chats.length>0)},Wt=e=>{let t=(0,$.c)(36),{activeChatId:n,setActiveChat:i}=e,a=r(Ye),{locale:o}=Ke(),[s,c]=(0,q.useState)(``),p;t[0]===a.chats?p=t[1]:(p=[...a.chats.values()].toSorted(Gt),t[0]=a.chats,t[1]=p);let m=p,h;bb0:{if(!s.trim()){h=m;break bb0}let e;if(t[2]!==m||t[3]!==s){let n;t[5]===s?n=t[6]:(n=e=>e.title.toLowerCase().includes(s.toLowerCase()),t[5]=s,t[6]=n),e=m.filter(n),t[2]=m,t[3]=s,t[4]=e}else e=t[4];h=e}let g=h,_;t[7]===g?_=t[8]:(_=Ut(g),t[7]=g,t[8]=_);let v=_,y;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,J.jsx)(R,{content:`Previous chats`,children:(0,J.jsx)(d,{asChild:!0,children:(0,J.jsx)(z,{variant:`text`,size:`icon`,children:(0,J.jsx)(l,{className:`h-4 w-4`})})})}),t[9]=y):y=t[9];let b;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(b=e=>c(e.target.value),t[10]=b):b=t[10];let x;t[11]===s?x=t[12]:(x=(0,J.jsx)(`div`,{className:`pt-3 px-3 w-full`,children:(0,J.jsx)(G,{placeholder:`Search chat history...`,value:s,onChange:b,className:`text-xs`})}),t[11]=s,t[12]=x);let S;t[13]===m.length?S=t[14]:(S=m.length===0&&(0,J.jsx)(K,{title:`No chats yet`,description:`Start a new chat to get started`,icon:(0,J.jsx)(B,{})}),t[13]=m.length,t[14]=S);let C;t[15]!==m.length||t[16]!==g.length||t[17]!==s?(C=g.length===0&&s&&m.length>0&&(0,J.jsx)(K,{title:`No chats found`,description:`No chats match "${s}"`,icon:(0,J.jsx)(W,{})}),t[15]=m.length,t[16]=g.length,t[17]=s,t[18]=C):C=t[18];let w;if(t[19]!==n||t[20]!==v||t[21]!==o||t[22]!==i){let e;t[24]!==n||t[25]!==v.length||t[26]!==o||t[27]!==i?(e=(e,t)=>(0,J.jsxs)(`div`,{className:`space-y-2`,children:[(0,J.jsx)(`div`,{className:`text-xs px-1 text-muted-foreground/60`,children:e.label}),(0,J.jsx)(`div`,{children:e.chats.map(e=>(0,J.jsxs)(`button`,{className:D(`w-full p-1 rounded-md cursor-pointer text-left flex items-center justify-between`,e.id===n&&`bg-accent`,e.id!==n&&`hover:bg-muted/20`),onClick:()=>{i(e.id)},type:`button`,children:[(0,J.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,J.jsx)(`div`,{className:`text-sm truncate`,children:e.title})}),(0,J.jsx)(`div`,{className:`text-xs text-muted-foreground/60 ml-2 shrink-0`,children:qe(e.updatedAt,o)})]},e.id))}),t!==v.length-1&&(0,J.jsx)(`hr`,{})]},e.label),t[24]=n,t[25]=v.length,t[26]=o,t[27]=i,t[28]=e):e=t[28],w=v.map(e),t[19]=n,t[20]=v,t[21]=o,t[22]=i,t[23]=w}else w=t[23];let T;t[29]!==S||t[30]!==C||t[31]!==w?(T=(0,J.jsx)(Bt,{className:`h-[450px] p-2`,children:(0,J.jsxs)(`div`,{className:`space-y-3`,children:[S,C,w]})}),t[29]=S,t[30]=C,t[31]=w,t[32]=T):T=t[32];let E;return t[33]!==T||t[34]!==x?(E=(0,J.jsxs)(u,{children:[y,(0,J.jsxs)(f,{className:`w-[480px] p-0`,align:`start`,side:`right`,children:[x,T]})]}),t[33]=T,t[34]=x,t[35]=E):E=t[35],E};function Gt(e,t){return t.updatedAt-e.updatedAt}var Kt=()=>{let e=(0,$.c)(17),[n,r]=t(Ze),i=n.webSearch,a=i?`Capabilities (web search enabled)`:`Capabilities`,o=i||void 0,s=i&&`bg-primary/15 text-primary ring-1 ring-primary/30 opacity-100 hover:bg-primary/20`,c;e[0]===s?c=e[1]:(c=D(`h-6 w-6 shrink-0 bg-muted hover:bg-muted/30`,s),e[0]=s,e[1]=c);let l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,J.jsx)(Lt,{className:`h-3.5 w-3.5`}),e[2]=l):l=e[2];let p;e[3]!==a||e[4]!==o||e[5]!==c?(p=(0,J.jsx)(d,{asChild:!0,children:(0,J.jsx)(z,{"aria-label":`Capabilities`,title:a,"data-active":o,variant:`text`,size:`icon`,className:c,children:l})}),e[3]=a,e[4]=o,e[5]=c,e[6]=p):p=e[6];let m;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,J.jsx)(`span`,{className:`text-sm font-semibold`,children:`Web search`}),e[7]=m):m=e[7];let h;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,J.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[m,(0,J.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`Search the web when the model supports it.`,` `,(0,J.jsx)(Be,{href:`https://docs.marimo.io/guides/editor_features/tools#web-search-and-fetch`,children:`Learn more`})]})]}),e[8]=h):h=e[8];let g;e[9]===r?g=e[10]:(g=e=>r(t=>({...t,webSearch:e})),e[9]=r,e[10]=g);let _;e[11]!==g||e[12]!==i?(_=(0,J.jsx)(f,{className:`w-76 p-3`,align:`start`,side:`top`,children:(0,J.jsxs)(`label`,{htmlFor:`web-search-toggle`,className:`flex items-start justify-between gap-3 cursor-pointer`,children:[h,(0,J.jsx)(E,{id:`web-search-toggle`,"aria-label":`Web search`,size:`sm`,checked:i,onCheckedChange:g})]})}),e[11]=g,e[12]=i,e[13]=_):_=e[13];let v;return e[14]!==p||e[15]!==_?(v=(0,J.jsxs)(u,{children:[p,_]}),e[14]=p,e[15]=_,e[16]=v):v=e[16],v};function qt(){return Ge()}function Jt(e){let t=(0,$.c)(4),[n,r]=(0,q.useState)(qt),a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=()=>r(qt()),t[0]=a):a=t[0];let o=i(a),s=e??n,c;return t[1]!==o||t[2]!==s?(c={chatControllerId:s,renewDraftChatId:o},t[1]=o,t[2]=s,t[3]=c):c=t[3],c}var Yt=`manual`,Xt=(0,q.memo)(e=>{let t=(0,$.c)(18),{message:n}=e,r;t[0]===n.parts?r=t[1]:(r=n.parts.filter(an).map(on).join(`
2
+ `),t[0]=n.parts,t[1]=r);let i=r,a,o,s;if(t[2]!==n.parts){let e=n.parts.filter(sn);s=`flex justify-end`,a=`w-[95%] bg-background border border-dashed p-2 rounded-sm opacity-70`,o=e.map(cn),t[2]=n.parts,t[3]=a,t[4]=o,t[5]=s}else a=t[3],o=t[4],s=t[5];let c;t[6]===i?c=t[7]:(c=(0,J.jsx)(`span`,{className:`wrap-break-word`,children:i}),t[6]=i,t[7]=c);let l;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,J.jsx)(Ve,{className:`h-3.5 w-3.5 shrink-0 animate-spin`}),t[8]=l):l=t[8];let u;t[9]===c?u=t[10]:(u=(0,J.jsxs)(`div`,{className:`flex items-center justify-end gap-2 text-sm text-muted-foreground`,children:[c,l]}),t[9]=c,t[10]=u);let d;t[11]!==a||t[12]!==o||t[13]!==u?(d=(0,J.jsxs)(`div`,{className:a,children:[o,u]}),t[11]=a,t[12]=o,t[13]=u,t[14]=d):d=t[14];let f;return t[15]!==s||t[16]!==d?(f=(0,J.jsx)(`div`,{className:s,children:d}),t[15]=s,t[16]=d,t[17]=f):f=t[17],f});Xt.displayName=`QueuedMessageDisplay`;var Zt=e=>{let t=(0,$.c)(18),{onNewChat:n,activeChatId:r,setActiveChat:i}=e,{handleClick:a}=v(),o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,J.jsx)(Ue,{className:`h-4 w-4`}),t[0]=o):o=t[0];let s;t[1]===n?s=t[2]:(s=(0,J.jsx)(R,{content:`New chat`,children:(0,J.jsx)(z,{variant:`text`,size:`icon`,onClick:n,children:o})}),t[1]=n,t[2]=s);let c;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,J.jsx)(g,{}),t[3]=c):c=t[3];let l;t[4]===a?l=t[5]:(l=()=>a(`ai`),t[4]=a,t[5]=l);let u;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,J.jsx)(We,{className:`h-4 w-4`}),t[6]=u):u=t[6];let d;t[7]===l?d=t[8]:(d=(0,J.jsx)(R,{content:`AI Settings`,children:(0,J.jsx)(z,{variant:`text`,size:`xs`,className:`hover:bg-foreground/10 py-2`,onClick:l,children:u})}),t[7]=l,t[8]=d);let f;t[9]!==r||t[10]!==i?(f=(0,J.jsx)(Wt,{activeChatId:r,setActiveChat:i}),t[9]=r,t[10]=i,t[11]=f):f=t[11];let p;t[12]!==d||t[13]!==f?(p=(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[c,d,f]}),t[12]=d,t[13]=f,t[14]=p):p=t[14];let m;return t[15]!==s||t[16]!==p?(m=(0,J.jsxs)(`div`,{className:`flex border-b px-2 py-1 justify-between shrink-0 items-center`,children:[s,p]}),t[15]=s,t[16]=p,t[17]=m):m=t[17],m},Qt=(0,q.memo)(e=>{let t=(0,$.c)(17),{message:n,index:r,onEdit:i,isStreamingReasoning:a,isLast:o,isActive:s,addToolApprovalResponse:c}=e,l;t[0]!==r||t[1]!==i?(l=e=>{let t=(e.parts?.filter(ln))?.map(un).join(`
3
+ `),n=e.parts?.filter(dn);return(0,J.jsxs)(`div`,{className:`w-[95%] bg-background border p-1 rounded-sm`,children:[n?.map(fn),(0,J.jsx)(U,{value:t,placeholder:`Type your message...`,onChange:pn,onSubmit:(e,t)=>{t.trim()&&i(r,t)},onClose:mn},e.id)]})},t[0]=r,t[1]=i,t[2]=l):l=t[2];let u=l,d;t[3]!==c||t[4]!==s||t[5]!==o||t[6]!==a?(d=e=>{let t=e.parts.filter(hn).map(gn).join(`
4
+ `);return(0,J.jsxs)(`div`,{className:`w-[95%] wrap-break-word`,children:[(0,J.jsx)(`div`,{className:`absolute right-1 top-1 opacity-0 group-hover:opacity-100 transition-opacity`,children:(0,J.jsx)(Je,{className:`h-3 w-3`,value:t||``})}),me({message:e,isStreamingReasoning:a,isLast:o,isActive:s,addToolApprovalResponse:c})]})},t[3]=c,t[4]=s,t[5]=o,t[6]=a,t[7]=d):d=t[7];let f=d,p=n.role===`user`?`justify-end`:`justify-start`,m;t[8]===p?m=t[9]:(m=D(`flex group relative`,p),t[8]=p,t[9]=m);let h;t[10]!==n||t[11]!==f||t[12]!==u?(h=n.role===`user`?u(n):f(n),t[10]=n,t[11]=f,t[12]=u,t[13]=h):h=t[13];let g;return t[14]!==m||t[15]!==h?(g=(0,J.jsx)(`div`,{className:m,children:h}),t[14]=m,t[15]=h,t[16]=g):g=t[16],g});Qt.displayName=`ChatMessage`;var $t=(0,q.memo)(e=>{let t=(0,$.c)(43),{isEmpty:n,onSendClick:i,isLoading:a,onStop:o,fileInputRef:s,onAddFiles:c,onAddContext:l}=e,u=r(C),d=u?.mode||Yt,f=u?.models?.chat_model||`openai/gpt-4o`,p=_.parse(f).providerId,{saveModeChange:m}=ee(),h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=[{value:`manual`,label:`Manual`,subtitle:`Pure chat, no tool usage`,Icon:He},{value:`ask`,label:`Ask`,subtitle:`AI with access to read-only tools like documentation search`,Icon:It},{value:`agent`,label:`Agent`,subtitle:`AI with access to read and write tools`,Icon:Re},{value:`code_mode`,label:`Code Mode (beta)`,subtitle:`AI with access to the notebook's kernel. Potentially destructive.`,Icon:Le}],t[0]=h):h=t[0];let g=h,v=Ae.has(p),b;t[1]!==d||t[2]!==g?(b=g.find(e=>e.value===d),t[1]=d,t[2]=g,t[3]=b):b=t[3];let x=b,S=x?.Icon,w=x?.label,T;t[4]===S?T=t[5]:(T=S&&(0,J.jsx)(S,{className:`h-3 w-3`}),t[4]=S,t[5]=T);let E;t[6]===w?E=t[7]:(E=(0,J.jsx)(`span`,{className:`text-nowrap`,children:w}),t[6]=w,t[7]=E);let D;t[8]!==T||t[9]!==E?(D=(0,J.jsxs)(ie,{className:`h-6 text-xs border-border shadow-none! ring-0! bg-muted hover:bg-muted/30 py-0 px-2 gap-1.5 shrink-0`,children:[T,E]}),t[8]=T,t[9]=E,t[10]=D):D=t[10];let O;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,J.jsx)(te,{className:`text-xs uppercase tracking-wider text-muted-foreground/70 font-medium`,children:`AI Mode`}),t[11]=O):O=t[11];let k;t[12]===g?k=t[13]:(k=(0,J.jsx)(ne,{children:(0,J.jsxs)(re,{children:[O,g.map(_n)]})}),t[12]=g,t[13]=k);let A;t[14]!==d||t[15]!==m||t[16]!==D||t[17]!==k?(A=(0,J.jsxs)(ae,{value:d,onValueChange:m,children:[D,k]}),t[14]=d,t[15]=m,t[16]=D,t[17]=k,t[18]=A):A=t[18];let j,M;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,J.jsx)(y,{placeholder:`Model`,triggerClassName:`h-6 text-xs shadow-none! ring-0! bg-muted hover:bg-muted/30 rounded-sm max-w-[200px]`,iconSize:`small`,showAddCustomModelDocs:!0,forRole:`chat`}),j=(0,J.jsx)(Kt,{}),t[19]=j,t[20]=M):(j=t[19],M=t[20]);let N;t[21]===A?N=t[22]:(N=(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1`,children:[A,M,j]}),t[21]=A,t[22]=N);let P;t[23]!==a||t[24]!==l?(P=(0,J.jsx)(we,{handleAddContext:l,isLoading:a}),t[23]=a,t[24]=l,t[25]=P):P=t[25];let F;t[26]!==s||t[27]!==v||t[28]!==a||t[29]!==c?(F=v&&(0,J.jsx)(H,{fileInputRef:s,isLoading:a,onAddFiles:c}),t[26]=s,t[27]=v,t[28]=a,t[29]=c,t[30]=F):F=t[30];let I;t[31]!==n||t[32]!==a||t[33]!==i||t[34]!==o?(I=(0,J.jsx)(Ee,{isLoading:a,onStop:o,onSendClick:i,isEmpty:n}),t[31]=n,t[32]=a,t[33]=i,t[34]=o,t[35]=I):I=t[35];let L;t[36]!==P||t[37]!==F||t[38]!==I?(L=(0,J.jsxs)(`div`,{className:`flex flex-row ml-auto`,children:[P,F,I]}),t[36]=P,t[37]=F,t[38]=I,t[39]=L):L=t[39];let R;return t[40]!==N||t[41]!==L?(R=(0,J.jsx)(oe,{children:(0,J.jsxs)(`div`,{className:`px-3 py-2 border-t border-border/20 flex flex-wrap items-center gap-1`,children:[N,L]})}),t[40]=N,t[41]=L,t[42]=R):R=t[42],R});$t.displayName=`ChatInputFooter`;var en=(0,q.memo)(e=>{let t=(0,$.c)(31),{placeholder:n,input:r,inputClassName:a,setInput:o,onSubmit:s,inputRef:c,isLoading:l,onStop:u,fileInputRef:d,onAddFiles:f,onClose:p}=e,m;t[0]!==r||t[1]!==s?(m=()=>{r.trim()&&s(void 0,r)},t[0]=r,t[1]=s,t[2]=m):m=t[2];let h=i(m),g;t[3]===a?g=t[4]:(g=D(`px-2 py-1.5`,a),t[3]=a,t[4]=g);let _=n||`Type your message...`,v;t[5]!==r||t[6]!==c||t[7]!==f||t[8]!==p||t[9]!==s||t[10]!==o||t[11]!==_?(v=(0,J.jsx)(U,{className:`max-h-[400px]`,inputRef:c,value:r,onChange:o,onSubmit:s,onClose:p,onAddFiles:f,placeholder:_}),t[5]=r,t[6]=c,t[7]=f,t[8]=p,t[9]=s,t[10]=o,t[11]=_,t[12]=v):v=t[12];let y;t[13]!==g||t[14]!==v?(y=(0,J.jsx)(`div`,{className:g,children:v}),t[13]=g,t[14]=v,t[15]=y):y=t[15];let b;t[16]===r?b=t[17]:(b=r.trim(),t[16]=r,t[17]=b);let x=!b,S;t[18]===c?S=t[19]:(S=()=>Ne(c),t[18]=c,t[19]=S);let C;t[20]!==d||t[21]!==h||t[22]!==l||t[23]!==f||t[24]!==u||t[25]!==x||t[26]!==S?(C=(0,J.jsx)($t,{isEmpty:x,onAddContext:S,onSendClick:h,isLoading:l,onStop:u,fileInputRef:d,onAddFiles:f}),t[20]=d,t[21]=h,t[22]=l,t[23]=f,t[24]=u,t[25]=x,t[26]=S,t[27]=C):C=t[27];let w;return t[28]!==y||t[29]!==C?(w=(0,J.jsxs)(`div`,{className:`relative shrink-0 flex flex-col border-t`,children:[y,C]}),t[28]=y,t[29]=C,t[30]=w):w=t[30],w});en.displayName=`ChatInput`;var tn=e=>{let t=(0,$.c)(5),{onPairWithAgent:n}=e;if(w())return null;let r,i,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,J.jsx)(s,{className:`h-3.5 w-3.5 shrink-0`}),i=(0,J.jsx)(`span`,{children:`Work on this notebook with your own agent`}),a=(0,J.jsx)(ue,{className:`h-3 w-3 shrink-0`}),t[0]=r,t[1]=i,t[2]=a):(r=t[0],i=t[1],a=t[2]);let o;return t[3]===n?o=t[4]:(o=(0,J.jsxs)(z,{variant:`text`,className:`gap-1.5 text-sm text-link hover:underline`,onClick:n,children:[r,i,a]}),t[3]=n,t[4]=o),o},nn=()=>{let e=(0,$.c)(6),t=r(S),{handleClick:n}=v();if(!t){let t;e[0]===n?t=e[1]:(t=(0,J.jsx)(z,{variant:`outline`,size:`sm`,onClick:()=>n(`ai`,`ai-providers`),children:`Edit AI settings`}),e[0]=n,e[1]=t);let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,J.jsx)(B,{}),e[2]=r):r=e[2];let i;return e[3]===t?i=e[4]:(i=(0,J.jsx)(K,{title:`Chat with AI`,description:`No AI provider configured or Chat model not selected`,action:t,icon:r}),e[3]=t,e[4]=i),i}let i;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,J.jsx)(rn,{}),e[5]=i):i=e[5],i},rn=()=>{let e=a(Ye),[r,o]=t(Qe),[s,l]=t(Xe),[u,d]=(0,q.useState)(``),[f,h]=(0,q.useState)(``),[g,_]=(0,q.useState)(!0),{files:v,addFiles:y,clearFiles:x,removeFile:S}=be(),{messages:w,enqueue:E,flushNext:O,clear:k,hasQueuedRef:A}=ge(),j=(0,q.useRef)(null),M=(0,q.useRef)(null),N=(0,q.useRef)(null),P=(0,q.useRef)(null),F=(0,q.useRef)(null),[ee,te]=(0,q.useState)(null),I=i(()=>{F.current=null,te(null)}),L=T(),{invokeAiTool:ne,sendRun:re}=se(),{openModal:ie,closeModal:ae}=ze(),R=r?.id,{chatControllerId:ce,renewDraftChatId:ue}=Jt(R),B=n(),{addStagedCell:me}=ve(),{createNewCell:he,prepareForRun:we}=c(),Ee={addStagedCell:me,createNewCell:he,prepareForRun:we,sendRun:re,store:B},{messages:H,sendMessage:Ae,error:U,status:je,regenerate:Ne,stop:Le,addToolOutput:Re,addToolApprovalResponse:Be,id:He}=Ie({id:ce,throttle:100,sendAutomaticallyWhen:({messages:e})=>Me(e),messages:r?.messages||[],transport:new zt({api:L.getAiURL(`chat`).toString(),headers:()=>L.headers(),prepareSendMessagesRequest:async e=>{let t=await xe({messages:e.messages});t.success||b.debug(`Outgoing chat messages failed AI SDK schema validation`,t.error);let n={uiMessages:e.messages,includeOtherCode:p(``),options:B.get(Ze)},r=B.get(C)?.mode||Yt,i=ke.getToolSchemas(r);return{api:L.getAiURL(`chat`).toString(),body:{tools:i,...e,...n}}}},e=>{let t=pe(e);t!==void 0&&(F.current=t)}),onFinish:({messages:t,isError:n,isAbort:r,finishReason:i})=>{if(e(e=>Rt({chatState:e,chatId:e.activeChatId,messages:t})),r){let e=de({isAbort:!0,streamReason:F.current});if(I(),e!=null){let t=fe(e);b.debug(`Chat stream aborted`,{reason:e,finishReason:i}),te(t)}}else I();W(t,{isError:n,isAbort:r})},onToolCall:async({toolCall:e})=>{await Se({invokeAiTool:ne,addToolOutput:Re,toolCall:{toolName:e.toolName,toolCallId:e.toolCallId,input:e.input},toolContext:Ee})},onError:e=>{b.error(`An error occurred:`,e)}}),Ue=i(e=>{I(),Ae({role:`user`,parts:e})}),W=i((e,t)=>{A.current&&Pe({isError:t.isError,isAbort:t.isAbort,hasPendingToolCalls:Me(e),hasUnresolvedToolCalls:Fe(e)})&&O(Ue)}),G=je===`submitted`||je===`streaming`,We=(0,q.useRef)(G);We.current=G;let Ge=i(e=>{We.current||A.current?E(e):Ue(e)}),Ke=i(()=>{let e=N.current;if(!e)return;let{scrollTop:t,scrollHeight:n,clientHeight:r}=e,i=n>r?Math.abs(n-r-t)<5:!0;_(i)}),qe=i((e=!1)=>{let t=N.current;t&&t.scrollTo({top:t.scrollHeight,behavior:e?`smooth`:`auto`})}),Je=G&&H.length>0&&Ce(H);(0,q.useEffect)(()=>{_(!0),k(),I()},[R,k,I]),(0,q.useEffect)(()=>{if(!g)return;let e=requestAnimationFrame(()=>{qe()});return()=>cancelAnimationFrame(e)},[H,w,G,g,qe]),(0,q.useEffect)(()=>{G||W(H,{isError:U!=null,isAbort:!1})},[H,G,U,W]);let K=i(t=>{let n=Date.now(),r={id:He,title:De(t),messages:[],createdAt:n,updatedAt:n};e(e=>{let t=new Map(e.chats);return t.set(r.id,r),{...e,chats:t,activeChatId:r.id}})}),tt=i(async(e,t)=>{K(e);let n=t&&t.length>0?await Oe(t):void 0,{contextPart:r,attachments:i}=await V(e);Ae({role:`user`,parts:[{type:`text`,text:e},...r?[r]:[],...n??[],...i]}),x(),d(``)}),nt=i(()=>{ue(),o(null),d(``),h(``),k(),x()}),rt=i(()=>{ie((0,J.jsx)(et,{onClose:ae}))}),it=i(async(e,t)=>{let n=H[e],r=n.parts?.filter(e=>e.type===`file`&&!_e(e))??[],{contextPart:i,attachments:a}=await V(t),o=n.id;Ae({messageId:o,role:`user`,parts:[{type:`text`,text:t},...i?[i]:[],...r,...a]})}),at=i(async(e,t)=>{if(!t.trim())return;M.current?.view&&ye(M.current.view);let n=v?await Oe(v):void 0,{contextPart:r,attachments:i}=await V(t);e?.preventDefault(),Ge([{type:`text`,text:t},...r?[r]:[],...n??[],...i]),d(``),x()}),Y=()=>{I(),Ne()},ot=i(()=>{f.trim()&&(j.current?.view&&ye(j.current.view),tt(f.trim(),v))}),st=()=>j.current?.editor?.blur(),ct=i(async e=>{R??(K(e),d(f));let{contextPart:t,attachments:n}=await V(e);Ge([{type:`text`,text:e},...t?[t]:[],...n])}),X=H.length===0;(0,q.useEffect)(()=>{if(!s)return;l(null);let{prompt:e,submit:t}=s;t?ct(e):X?(h(e),m(j)):(d(e),m(M))},[s,l,X,ct]);let Z=X?(0,J.jsx)(en,{placeholder:`Ask anything, @ to include context about tables or dataframes`,input:f,inputRef:j,inputClassName:`px-1 py-0`,setInput:h,onSubmit:ot,isLoading:G,onStop:Le,fileInputRef:P,onAddFiles:y,onClose:st},`new-thread-input`):(0,J.jsx)(en,{input:u,setInput:d,onSubmit:at,inputRef:M,isLoading:G,onStop:Le,onClose:()=>M.current?.editor?.blur(),fileInputRef:P,onAddFiles:y}),lt=v&&v.length>0&&(0,J.jsx)(`div`,{className:D(`flex flex-row gap-1 flex-wrap p-1`,X&&`py-2 px-1`),children:v?.map(e=>(0,J.jsx)(Te,{file:e,onRemove:()=>S(e)},e.name))});return(0,J.jsxs)(`div`,{className:`flex flex-col h-[calc(100%-53px)]`,children:[(0,J.jsx)(oe,{children:(0,J.jsx)(Zt,{onNewChat:nt,activeChatId:r?.id,setActiveChat:o})}),(0,J.jsxs)(`div`,{className:`flex-1 flex flex-col overflow-hidden relative min-h-0`,children:[(0,J.jsxs)(`div`,{className:`flex-1 px-3 bg-(--slate-1) gap-4 py-3 flex flex-col overflow-y-auto`,ref:N,onScroll:Ke,children:[X&&(0,J.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,J.jsxs)(`div`,{className:`rounded-md border bg-background`,children:[lt,Z]}),(0,J.jsx)(tn,{onPairWithAgent:rt})]}),H.map((e,t)=>(0,J.jsx)(Qt,{message:e,index:t,onEdit:it,isStreamingReasoning:Je,isLast:t===H.length-1,isActive:G,addToolApprovalResponse:Be},e.id)),w.map(e=>(0,J.jsx)(Xt,{message:e},e.id)),G&&(0,J.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,J.jsx)(Ve,{className:`h-4 w-4 animate-spin`})}),U&&(0,J.jsxs)(`div`,{className:`flex items-center justify-center space-x-2 mb-4`,children:[(0,J.jsx)($e,{error:U||Error(`Unknown error`)}),(0,J.jsx)(z,{variant:`outline`,size:`sm`,onClick:Y,children:`Retry`})]}),ee&&!G&&!U&&(0,J.jsx)(`div`,{className:`flex justify-center py-2`,children:(0,J.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:ee})})]}),(0,J.jsx)(le,{isVisible:!g&&(H.length>0||w.length>0),onScrollToBottom:()=>qe(!0)})]}),G&&(0,J.jsx)(`div`,{className:`w-full flex justify-center items-center z-20 border-t`,children:(0,J.jsx)(z,{variant:`linkDestructive`,size:`sm`,onClick:Le,children:`Stop`})}),!X&&(0,J.jsxs)(J.Fragment,{children:[lt,Z]})]})};function an(e){return e.type===`text`}function on(e){return e.text}function sn(e){return e.type===`file`}function cn(e,t){return(0,J.jsx)(je,{attachment:e},t)}function ln(e){return e.type===`text`}function un(e){return e.text}function dn(e){return e.type===`file`}function fn(e,t){return(0,J.jsx)(je,{attachment:e},t)}function pn(){}function mn(){}function hn(e){return e.type===`text`}function gn(e){return e.text}function _n(e){return(0,J.jsx)(I,{value:e.value,className:`text-xs py-1`,children:(0,J.jsxs)(`div`,{className:`flex items-start gap-2.5`,children:[(0,J.jsx)(`span`,{className:`mt-1 text-muted-foreground`,children:(0,J.jsx)(e.Icon,{className:`h-3 w-3`})}),(0,J.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,J.jsx)(`span`,{className:`font-semibold`,children:e.label}),(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:e.subtitle})]})]})},e.value)}export{nn as default};
@@ -1,4 +1,4 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-CBDbhulC.js";import{So as n,fn as r,hn as i,kr as a,mn as o}from"./cells-DfJw5iuV.js";import{Cn as s,In as c,kt as l,ln as u,wt as d}from"./schemas-aTUejmFi.js";import{t as f}from"./compiler-runtime-CYIjoINj.js";import{g as p,t as m}from"./useEventListener-D27Dii_l.js";import{t as h}from"./objects-snlMn4yk.js";import{t as g}from"./cn-ldLVeaqm.js";import{t as _}from"./jsx-runtime-B74pBk57.js";import{d as v}from"./select-BUEX2Vfl.js";import{a as y,p as b,r as x,t as S}from"./dropdown-menu-CqNabM1f.js";import{t as C}from"./tooltip-D7dq6bnc.js";import{t as w}from"./button-BMBznEru.js";import{t as T}from"./strings-CpYReX2Q.js";import{t as E}from"./createLucideIcon-B7HeEoG2.js";import{t as D}from"./bot-message-square-CGhPjWFf.js";import{r as ee}from"./useNumberFormatter-DHJ9s6Vk.js";import{u as O}from"./toDate-hGYJX0Ha.js";import{i as k,n as A,r as te,t as ne}from"./chat-display-Cgg0xLir.js";import{B as re,G as ie,I as ae,R as oe,W as se,g as ce,n as le,y as ue}from"./add-cell-with-ai-0dqk0f7O.js";import{t as de}from"./spinner-Ck-Hgfvj.js";import{o as j,r as M}from"./input-DeyycFtq.js";import{t as N}from"./settings-C-cYas75.js";import{t as P}from"./square-B58Ib8Ir.js";import{t as F}from"./trash-2-D_HX-0qx.js";import{t as I}from"./uuid-k9DpjH68.js";import{n as L}from"./useAsyncData-Buhk-UgR.js";import{t as R}from"./copy-icon-LPQzn7_f.js";import{r as z}from"./react-icons.esm-hr79-MCS.js";import{t as B}from"./events-CbeVJ6OD.js";import{n as V}from"./error-banner-B3KYUlCX.js";var fe=E(`rotate-cw`,[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`,key:`1p45f6`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}]]),H=f(),U=_(),W=e(t(),1),G=n,pe=s({type:u(`stream_chunk`),message_id:c(),content:d().nullable().transform(e=>e),is_final:l().optional()});function me(e,t){let{controllerRef:n,activeRequestIdRef:r}=t,i=n.current;if(i===null)return`dropped-no-controller`;let a=r.current;return a!==null&&e.message_id!==a?(p.debug(`Dropping stale chat chunk`,{chunkRequestId:e.message_id,activeRequestId:a}),`dropped-stale`):(e.content&&i.enqueue(e.content),e.is_final?(i.close(),n.current=null,r.current=null,`closed`):`enqueued`)}var K=e=>{let[t,n]=(0,W.useState)(``),[r,i]=(0,W.useState)(e.config),[o,s]=(0,W.useState)(e.config),[c,l]=(0,W.useState)(void 0),u=(0,W.useRef)(null),d=(0,W.useRef)(null),f=(0,W.useRef)(null),h=(0,W.useRef)(null);Object.keys(e.config).some(t=>e.config[t]!==o[t])&&(i(e.config),s(e.config));let _=(0,W.useRef)(r);_.current=r;let v=(0,W.useRef)(null),y=(0,W.useRef)(null),b=(0,W.useRef)(null),[x,S]=(0,W.useState)(null),T=()=>{b.current=null,S(null)},{data:E}=L(async()=>(await e.get_chat_history({})).messages,[]),O=e.value.length>0?e.value:E,{messages:j,sendMessage:M,setMessages:N,status:z,stop:H,error:G,regenerate:K,clearError:q,addToolApprovalResponse:J}=ae({sendAutomaticallyWhen:({messages:e})=>ue(e),transport:new oe({fetch:async(t,n)=>{if(n===void 0)return fetch(t);let r=JSON.parse(n.body),i=n.signal,a={max_tokens:_.current.max_tokens,temperature:_.current.temperature,top_p:_.current.top_p,top_k:_.current.top_k,frequency_penalty:_.current.frequency_penalty,presence_penalty:_.current.presence_penalty};try{let t=r.messages.map(e=>({...e,content:e.parts?.map(e=>`text`in e?e.text:``).join(`
2
- `)})),n=I();T();let o=new ReadableStream({start(t){v.current=t,y.current=n;let r=()=>{try{t.close()}catch(e){p.debug(`Controller may already be closed`,{error:e})}v.current=null,y.current=null,e.cancel_prompt({request_id:n}).catch(e=>{p.debug(`cancel_prompt failed`,{error:e})})};return i?.addEventListener(`abort`,r),()=>{i?.removeEventListener(`abort`,r)}},cancel(){v.current=null,y.current=null}});return e.send_prompt({request_id:n,messages:t,config:a}).catch(e=>{v.current?.error(e),v.current=null,y.current=null}),re({stream:o})}catch(e){if(e instanceof Error&&e.name===`AbortError`)return new Response(`Aborted`,{status:499});let t=e.message?.split(`failed with exception `).pop();return new Response(t,{status:400})}}}),messages:O,onFinish:({messages:t,isAbort:n,finishReason:r})=>{if(l(void 0),u.current&&(u.current.value=``),p.debug(`Finished streaming message:`,{finishReason:r,isAbort:n}),n){let e=k({isAbort:!0,streamReason:b.current});if(T(),e!=null){let t=A(e);p.debug(`Chat stream aborted`,{reason:e,finishReason:r}),S(t)}}else T();e.setValue(t)},onError:e=>{p.error(`An error occurred:`,e)}});m(e.host,B.TYPE,e=>{let t=pe.safeParse(e.detail.message);if(t.success){if(t.data.content&&t.data.message_id===y.current){let e=te(t.data.content);e!==void 0&&(b.current=e)}me(t.data,{controllerRef:v,activeRequestIdRef:y})}});let Y=z===`submitted`||z===`streaming`,X=t=>{let n=j.findIndex(e=>e.id===t);if(n!==-1){let r=j.filter(e=>e.id!==t);e.delete_chat_message({index:n}),N(r),e.setValue(r),r.length===0&&T()}},Z=Array.isArray(e.allowAttachments)&&e.allowAttachments.length>0||e.allowAttachments===!0,_e={triggerCompletionRegex:/^\/(\w+)?/,completions:e.prompts.map(e=>({label:`/${e}`,displayLabel:e,apply:e}))},Q=e.prompts.length>0?`Type your message here, / for prompts`:`Type your message here...`;(0,W.useEffect)(()=>{h.current?.scrollTo({top:h.current.scrollHeight,behavior:`smooth`})},[j.length,h]);let $=f.current?.view,ve=()=>{if($){let e=$.state.doc.length;$.dispatch({changes:{from:0,to:e,insert:``}})}n(``)};return(0,U.jsxs)(`div`,{className:`flex flex-col h-full bg-(--slate-1) rounded-lg shadow border border-(--slate-6) overflow-hidden relative`,style:{maxHeight:e.maxHeight},children:[(0,U.jsx)(`div`,{className:`absolute top-0 right-0 flex justify-end z-10 border border-(--slate-6) bg-inherit rounded-bl-lg`,children:(0,U.jsx)(w,{variant:`text`,size:`icon`,disabled:j.length===0,onClick:()=>{N([]),e.setValue([]),e.delete_chat_history({}),q(),T()},children:(0,U.jsx)(fe,{className:`h-3 w-3`})})}),(0,U.jsxs)(`div`,{className:`grow overflow-y-auto gap-4 pt-8 pb-4 px-2 flex flex-col`,ref:h,children:[j.length===0&&(0,U.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full text-muted-foreground text-center p-4`,children:[(0,U.jsx)(D,{className:`h-12 w-12 mb-4`}),(0,U.jsx)(`h3`,{className:`text-lg font-semibold mb-2`,children:`No messages yet`}),(0,U.jsx)(`p`,{className:`text-sm`,children:`Start a conversation by typing a message below.`})]}),j.map((e,t)=>{let n=e.parts?.filter(e=>e.type===`text`).map(e=>e.text).join(`
3
- `),r=t===j.length-1;return(0,U.jsxs)(`div`,{className:g(`flex flex-col group gap-2`,e.role===`user`?`items-end`:`items-start`),children:[(0,U.jsx)(`div`,{className:`max-w-[80%] p-3 rounded-lg ${e.role===`user`?`bg-(--sky-11) text-(--slate-1) whitespace-pre-wrap`:`bg-(--slate-4) text-(--slate-12)`}`,children:ne({message:e,isStreamingReasoning:z===`streaming`,isLast:r,isActive:Y,addToolApprovalResponse:r?J:void 0})}),(0,U.jsxs)(`div`,{className:`flex justify-end text-xs gap-2 invisible group-hover:visible`,children:[(0,U.jsx)(R,{value:n,className:`h-3 w-3`,buttonClassName:`text-xs text-(--slate-9) hover:text-(--slate-11)`}),(0,U.jsx)(`button`,{type:`button`,onClick:()=>X(e.id),className:`text-xs text-(--slate-9) hover:text-(--slate-11)`,children:(0,U.jsx)(F,{className:`h-3 w-3 text-(--red-9)`})})]})]},`${e.id}-${t}`)}),Y&&(0,U.jsx)(`div`,{className:`flex items-center justify-center mb-4`,children:(0,U.jsx)(de,{size:`small`})}),G&&(0,U.jsxs)(`div`,{className:`flex items-center justify-center space-x-2 mb-4`,children:[(0,U.jsx)(V,{error:G}),(0,U.jsx)(w,{variant:`outline`,size:`sm`,onClick:()=>K(),children:`Retry`})]}),x&&!Y&&!G&&(0,U.jsx)(`div`,{className:`flex justify-center py-2`,children:(0,U.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:x})})]}),(0,U.jsxs)(`form`,{onSubmit:async n=>{if(n.preventDefault(),e.disabled)return;let r=c?await ce(c):void 0;M({role:`user`,parts:[{type:`text`,text:t},...r??[]]}),ve()},ref:d,inert:e.disabled||void 0,className:g(`flex w-full border-t border-(--slate-6) px-2 py-1 items-center`,e.disabled&&`opacity-50 cursor-not-allowed`),children:[e.showConfigurationControls&&(0,U.jsx)(he,{config:r,onChange:i}),e.prompts.length>0&&(0,U.jsx)(ge,{prompts:e.prompts,onSelect:e=>{n(e),requestAnimationFrame(()=>{$?.focus(),a($)})}}),(0,U.jsx)(le,{className:`rounded-sm mr-2`,placeholder:Q,value:t,inputRef:f,maxHeight:e.maxHeight?`${e.maxHeight/2}px`:void 0,onChange:n,onSubmit:(e,t)=>{t.trim()&&d.current?.requestSubmit()},onClose:()=>{},additionalCompletions:_e}),c&&c.length===1&&(0,U.jsx)(`span`,{title:c[0].name,className:`text-sm text-(--slate-11) truncate shrink-0 w-fit max-w-24`,children:c[0].name}),c&&c.length>1&&(0,U.jsxs)(`span`,{title:[...c].map(e=>e.name).join(`
4
- `),className:`text-sm text-(--slate-11) truncate shrink-0`,children:[c.length,` files`]}),c&&c.length>0&&(0,U.jsx)(w,{type:`button`,variant:`text`,size:`sm`,onClick:()=>{l(void 0),u.current&&(u.current.value=``)},children:(0,U.jsx)(ee,{className:`size-3`})}),Z&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(w,{type:`button`,variant:`text`,size:`sm`,onClick:()=>u.current?.click(),children:(0,U.jsx)(ie,{className:`h-4`})}),(0,U.jsx)(`input`,{type:`file`,ref:u,className:`hidden`,multiple:!0,accept:Array.isArray(e.allowAttachments)?e.allowAttachments.join(`,`):void 0,onChange:e=>{e.target.files&&l([...e.target.files])}})]}),Y?(0,U.jsx)(C,{content:`Stop generating`,children:(0,U.jsx)(w,{type:`button`,variant:`link`,size:`xs`,onClick:()=>H(),className:`text-(--red-9) hover:text-(--red-11)`,children:(0,U.jsx)(P,{className:`h-4 w-4 fill-current`})})}):(0,U.jsx)(w,{type:`submit`,disabled:!t,variant:`outline`,size:`xs`,className:`text-(--slate-11)`,"aria-label":`Send message`,children:(0,U.jsx)(se,{className:`h-4 w-4`})})]})]})},q={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)`}},he=e=>{let t=(0,H.c)(16),{config:n,onChange:a}=e,[s,c]=(0,W.useState)(!1),l;t[0]!==n||t[1]!==a?(l=(e,t)=>{let r=t===null||Number.isNaN(t)?null:t;if(r!==null){let{min:t,max:n}=q[e];r=Math.max(t,Math.min(n,r))}let i={...n,[e]:r};a(i)},t[0]=n,t[1]=a,t[2]=l):l=t[2];let u=l,d;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=e=>{e.key===`Enter`&&(e.preventDefault(),c(!1))},t[3]=d):d=t[3];let f=d,p;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,U.jsx)(C,{content:`Configuration`,children:(0,U.jsx)(i,{asChild:!0,children:(0,U.jsx)(w,{variant:`outline`,size:`sm`,className:`border-none shadow-none hover:bg-transparent`,children:(0,U.jsx)(N,{className:`h-3 w-3`})})})}),t[4]=p):p=t[4];let m;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,U.jsx)(`h4`,{className:`font-bold leading-none`,children:`Configuration`}),t[5]=m):m=t[5];let g;if(t[6]!==n||t[7]!==u){let e;t[9]===u?e=t[10]:(e=e=>{let[t,n]=e;return(0,U.jsxs)(`div`,{className:`grid grid-cols-3 items-center gap-1`,children:[(0,U.jsxs)(v,{htmlFor:t,className:`flex w-full justify-between col-span-3 align-end`,children:[T.startCase(t),(0,U.jsx)(C,{delayDuration:200,side:`top`,content:(0,U.jsx)(`div`,{className:`text-xs flex flex-col`,children:q[t].description}),children:(0,U.jsx)(O,{className:`h-3 w-3 cursor-help text-muted-foreground hover:text-foreground`})})]}),(0,U.jsx)(j,{id:t,"aria-label":t,value:n??NaN,placeholder:`null`,minValue:q[t].min,maxValue:q[t].max,step:q[t].step??1,onChange:e=>u(t,e),onKeyDown:f,className:`col-span-3`})]},t)},t[9]=u,t[10]=e),g=h.entries(n).map(e),t[6]=n,t[7]=u,t[8]=g}else g=t[8];let _;t[11]===g?_=t[12]:(_=(0,U.jsx)(o,{className:`w-70 border`,children:(0,U.jsxs)(`div`,{className:`grid gap-3`,children:[m,g]})}),t[11]=g,t[12]=_);let y;return t[13]!==s||t[14]!==_?(y=(0,U.jsxs)(r,{open:s,onOpenChange:c,children:[p,_]}),t[13]=s,t[14]=_,t[15]=y):y=t[15],y},ge=e=>{let t=(0,H.c)(18),{prompts:n,onSelect:i}=e,[a,s]=(0,W.useState)(!1),[c,l]=(0,W.useState)(``),u;t[0]===i?u=t[1]:(u=e=>{[...e.matchAll(/{{(\w+)}}/g)].length>0?(l(e),s(!0)):i(e)},t[0]=i,t[1]=u);let d=u,f;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,U.jsx)(C,{content:`Select a prompt`,children:(0,U.jsx)(b,{asChild:!0,children:(0,U.jsx)(w,{variant:`outline`,size:`sm`,className:`border-none shadow-none hover:bg-transparent`,children:(0,U.jsx)(z,{className:`h-3 w-3`})})})}),t[2]=f):f=t[2];let p;if(t[3]!==d||t[4]!==n){let e;t[6]===d?e=t[7]:(e=(e,t)=>(0,U.jsx)(y,{onSelect:()=>d(e),className:`whitespace-normal text-left`,children:e},t),t[6]=d,t[7]=e),p=n.map(e),t[3]=d,t[4]=n,t[5]=p}else p=t[5];let m;t[8]===p?m=t[9]:(m=(0,U.jsx)(G,{children:(0,U.jsxs)(S,{children:[f,(0,U.jsx)(x,{side:`right`,align:`end`,onCloseAutoFocus:Y,className:`w-64 max-h-96 overflow-y-auto`,children:p})]})}),t[8]=p,t[9]=m);let h;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>s(!1),t[10]=h):h=t[10];let g;t[11]!==i||t[12]!==c?(g=(0,U.jsx)(o,{side:`right`,align:`end`,className:`min-w-80 px-2`,children:(0,U.jsx)(J,{prompt:c,onClose:h,onSelect:i})}),t[11]=i,t[12]=c,t[13]=g):g=t[13];let _;return t[14]!==a||t[15]!==m||t[16]!==g?(_=(0,U.jsxs)(r,{open:a,onOpenChange:s,children:[m,g]}),t[14]=a,t[15]=m,t[16]=g,t[17]=_):_=t[17],_},J=e=>{let t=(0,H.c)(32),{prompt:n,onClose:r,onSelect:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a={},t[0]=a):a=t[0];let[o,s]=(0,W.useState)(a),c,l;t[1]===n?(c=t[2],l=t[3]):(c=()=>{let e=[...n.matchAll(/{{(\w+)}}/g)].reduce(X,{});s(e)},l=[n],t[1]=n,t[2]=c,t[3]=l),(0,W.useEffect)(c,l);let u;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(u=(e,t)=>{s(n=>({...n,[e]:t}))},t[4]=u):u=t[4];let d=u,f;if(t[5]!==n||t[6]!==o){let e;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(e=/{{(\w+)}}/g,t[8]=e):e=t[8];let r;t[9]===o?r=t[10]:(r=(e,t)=>o[t]||`{{${t}}}`,t[9]=o,t[10]=r),f=n.replaceAll(e,r),t[5]=n,t[6]=o,t[7]=f}else f=t[7];let p=f,m;t[11]===o?m=t[12]:(m=Object.values(o).some(Z),t[11]=o,t[12]=m);let h=m,g;t[13]!==r||t[14]!==i||t[15]!==p?(g=()=>{i(p),r()},t[13]=r,t[14]=i,t[15]=p,t[16]=g):g=t[16];let _=g,y;t[17]===o?y=t[18]:(y=Object.entries(o),t[17]=o,t[18]=y);let b;t[19]!==_||t[20]!==h||t[21]!==y?(b=y.map((e,t)=>{let[n,r]=e;return(0,U.jsxs)(`div`,{className:`grid grid-cols-4 items-center gap-2`,children:[(0,U.jsx)(v,{htmlFor:n,className:`font-semibold text-base`,children:n}),(0,U.jsx)(M,{id:n,value:r,onChange:e=>d(n,e.target.value),rootClassName:`col-span-3 w-full`,className:`m-0`,placeholder:`Enter value for ${n}`,autoFocus:t===0,onKeyDown:e=>{e.key===`Enter`&&!h&&_()}})]},n)}),t[19]=_,t[20]=h,t[21]=y,t[22]=b):b=t[22];let x;t[23]===p?x=t[24]:(x=(0,U.jsx)(`div`,{className:`grid gap-2 prose dark:prose-invert`,children:(0,U.jsx)(`blockquote`,{className:`text-sm`,children:p})}),t[23]=p,t[24]=x);let S;t[25]!==_||t[26]!==h?(S=(0,U.jsx)(w,{onClick:_,size:`xs`,disabled:h,children:`Submit`}),t[25]=_,t[26]=h,t[27]=S):S=t[27];let C;return t[28]!==x||t[29]!==S||t[30]!==b?(C=(0,U.jsxs)(`div`,{className:`grid gap-4`,children:[b,x,S]}),t[28]=x,t[29]=S,t[30]=b,t[31]=C):C=t[31],C};function Y(e){return e.preventDefault()}function X(e,t){return e[t[1]]=``,e}function Z(e){return e==null||e.trim()===``}export{K as Chatbot};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-CBDbhulC.js";import{So as n,fn as r,hn as i,kr as a,mn as o}from"./cells-DfJw5iuV.js";import{Cn as s,In as c,kt as l,ln as u,wt as d}from"./schemas-aTUejmFi.js";import{t as f}from"./compiler-runtime-CYIjoINj.js";import{g as p,t as m}from"./useEventListener-D27Dii_l.js";import{t as h}from"./objects-snlMn4yk.js";import{t as g}from"./cn-ldLVeaqm.js";import{t as _}from"./jsx-runtime-B74pBk57.js";import{d as v}from"./select-BUEX2Vfl.js";import{a as y,p as b,r as x,t as S}from"./dropdown-menu-CqNabM1f.js";import{t as C}from"./tooltip-D7dq6bnc.js";import{t as w}from"./button-BMBznEru.js";import{t as T}from"./strings-CpYReX2Q.js";import{t as E}from"./createLucideIcon-B7HeEoG2.js";import{t as D}from"./bot-message-square-CGhPjWFf.js";import{r as ee}from"./useNumberFormatter-DHJ9s6Vk.js";import{u as O}from"./toDate-hGYJX0Ha.js";import{i as k,n as A,r as te,t as ne}from"./chat-display-NTNQQyoE.js";import{B as re,H as ie,K as ae,h as oe,n as se,q as ce,v as le,z as ue}from"./add-cell-with-ai-DVGZNNUv.js";import{t as de}from"./spinner-Ck-Hgfvj.js";import{o as j,r as M}from"./input-DeyycFtq.js";import{t as N}from"./settings-C-cYas75.js";import{t as P}from"./square-B58Ib8Ir.js";import{t as F}from"./trash-2-D_HX-0qx.js";import{t as I}from"./uuid-k9DpjH68.js";import{n as L}from"./useAsyncData-Buhk-UgR.js";import{t as R}from"./copy-icon-LPQzn7_f.js";import{r as z}from"./react-icons.esm-hr79-MCS.js";import{t as B}from"./events-CbeVJ6OD.js";import{n as V}from"./error-banner-B3KYUlCX.js";var fe=E(`rotate-cw`,[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`,key:`1p45f6`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}]]),H=f(),U=_(),W=e(t(),1),G=n,pe=s({type:u(`stream_chunk`),message_id:c(),content:d().nullable().transform(e=>e),is_final:l().optional()});function me(e,t){let{controllerRef:n,activeRequestIdRef:r}=t,i=n.current;if(i===null)return`dropped-no-controller`;let a=r.current;return a!==null&&e.message_id!==a?(p.debug(`Dropping stale chat chunk`,{chunkRequestId:e.message_id,activeRequestId:a}),`dropped-stale`):(e.content&&i.enqueue(e.content),e.is_final?(i.close(),n.current=null,r.current=null,`closed`):`enqueued`)}var K=e=>{let[t,n]=(0,W.useState)(``),[r,i]=(0,W.useState)(e.config),[o,s]=(0,W.useState)(e.config),[c,l]=(0,W.useState)(void 0),u=(0,W.useRef)(null),d=(0,W.useRef)(null),f=(0,W.useRef)(null),h=(0,W.useRef)(null);Object.keys(e.config).some(t=>e.config[t]!==o[t])&&(i(e.config),s(e.config));let _=(0,W.useRef)(r);_.current=r;let v=(0,W.useRef)(null),y=(0,W.useRef)(null),b=(0,W.useRef)(null),[x,S]=(0,W.useState)(null),T=()=>{b.current=null,S(null)},{data:E}=L(async()=>(await e.get_chat_history({})).messages,[]),O=e.value.length>0?e.value:E,{messages:j,sendMessage:M,setMessages:N,status:z,stop:H,error:G,regenerate:K,clearError:q,addToolApprovalResponse:J}=ue({sendAutomaticallyWhen:({messages:e})=>le(e),transport:new re({fetch:async(t,n)=>{if(n===void 0)return fetch(t);let r=JSON.parse(n.body),i=n.signal,a={max_tokens:_.current.max_tokens,temperature:_.current.temperature,top_p:_.current.top_p,top_k:_.current.top_k,frequency_penalty:_.current.frequency_penalty,presence_penalty:_.current.presence_penalty};try{let t=r.messages.map(e=>({...e,content:e.parts?.map(e=>`text`in e?e.text:``).join(`
2
+ `)})),n=I();T();let o=new ReadableStream({start(t){v.current=t,y.current=n;let r=()=>{try{t.close()}catch(e){p.debug(`Controller may already be closed`,{error:e})}v.current=null,y.current=null,e.cancel_prompt({request_id:n}).catch(e=>{p.debug(`cancel_prompt failed`,{error:e})})};return i?.addEventListener(`abort`,r),()=>{i?.removeEventListener(`abort`,r)}},cancel(){v.current=null,y.current=null}});return e.send_prompt({request_id:n,messages:t,config:a}).catch(e=>{v.current?.error(e),v.current=null,y.current=null}),ie({stream:o})}catch(e){if(e instanceof Error&&e.name===`AbortError`)return new Response(`Aborted`,{status:499});let t=e.message?.split(`failed with exception `).pop();return new Response(t,{status:400})}}}),messages:O,onFinish:({messages:t,isAbort:n,finishReason:r})=>{if(l(void 0),u.current&&(u.current.value=``),p.debug(`Finished streaming message:`,{finishReason:r,isAbort:n}),n){let e=k({isAbort:!0,streamReason:b.current});if(T(),e!=null){let t=A(e);p.debug(`Chat stream aborted`,{reason:e,finishReason:r}),S(t)}}else T();e.setValue(t)},onError:e=>{p.error(`An error occurred:`,e)}});m(e.host,B.TYPE,e=>{let t=pe.safeParse(e.detail.message);if(t.success){if(t.data.content&&t.data.message_id===y.current){let e=te(t.data.content);e!==void 0&&(b.current=e)}me(t.data,{controllerRef:v,activeRequestIdRef:y})}});let Y=z===`submitted`||z===`streaming`,X=t=>{let n=j.findIndex(e=>e.id===t);if(n!==-1){let r=j.filter(e=>e.id!==t);e.delete_chat_message({index:n}),N(r),e.setValue(r),r.length===0&&T()}},Z=Array.isArray(e.allowAttachments)&&e.allowAttachments.length>0||e.allowAttachments===!0,_e={triggerCompletionRegex:/^\/(\w+)?/,completions:e.prompts.map(e=>({label:`/${e}`,displayLabel:e,apply:e}))},Q=e.prompts.length>0?`Type your message here, / for prompts`:`Type your message here...`;(0,W.useEffect)(()=>{h.current?.scrollTo({top:h.current.scrollHeight,behavior:`smooth`})},[j.length,h]);let $=f.current?.view,ve=()=>{if($){let e=$.state.doc.length;$.dispatch({changes:{from:0,to:e,insert:``}})}n(``)};return(0,U.jsxs)(`div`,{className:`flex flex-col h-full bg-(--slate-1) rounded-lg shadow border border-(--slate-6) overflow-hidden relative`,style:{maxHeight:e.maxHeight},children:[(0,U.jsx)(`div`,{className:`absolute top-0 right-0 flex justify-end z-10 border border-(--slate-6) bg-inherit rounded-bl-lg`,children:(0,U.jsx)(w,{variant:`text`,size:`icon`,disabled:j.length===0,onClick:()=>{N([]),e.setValue([]),e.delete_chat_history({}),q(),T()},children:(0,U.jsx)(fe,{className:`h-3 w-3`})})}),(0,U.jsxs)(`div`,{className:`grow overflow-y-auto gap-4 pt-8 pb-4 px-2 flex flex-col`,ref:h,children:[j.length===0&&(0,U.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full text-muted-foreground text-center p-4`,children:[(0,U.jsx)(D,{className:`h-12 w-12 mb-4`}),(0,U.jsx)(`h3`,{className:`text-lg font-semibold mb-2`,children:`No messages yet`}),(0,U.jsx)(`p`,{className:`text-sm`,children:`Start a conversation by typing a message below.`})]}),j.map((e,t)=>{let n=e.parts?.filter(e=>e.type===`text`).map(e=>e.text).join(`
3
+ `),r=t===j.length-1;return(0,U.jsxs)(`div`,{className:g(`flex flex-col group gap-2`,e.role===`user`?`items-end`:`items-start`),children:[(0,U.jsx)(`div`,{className:`max-w-[80%] p-3 rounded-lg ${e.role===`user`?`bg-(--sky-11) text-(--slate-1) whitespace-pre-wrap`:`bg-(--slate-4) text-(--slate-12)`}`,children:ne({message:e,isStreamingReasoning:z===`streaming`,isLast:r,isActive:Y,addToolApprovalResponse:r?J:void 0})}),(0,U.jsxs)(`div`,{className:`flex justify-end text-xs gap-2 invisible group-hover:visible`,children:[(0,U.jsx)(R,{value:n,className:`h-3 w-3`,buttonClassName:`text-xs text-(--slate-9) hover:text-(--slate-11)`}),(0,U.jsx)(`button`,{type:`button`,onClick:()=>X(e.id),className:`text-xs text-(--slate-9) hover:text-(--slate-11)`,children:(0,U.jsx)(F,{className:`h-3 w-3 text-(--red-9)`})})]})]},`${e.id}-${t}`)}),Y&&(0,U.jsx)(`div`,{className:`flex items-center justify-center mb-4`,children:(0,U.jsx)(de,{size:`small`})}),G&&(0,U.jsxs)(`div`,{className:`flex items-center justify-center space-x-2 mb-4`,children:[(0,U.jsx)(V,{error:G}),(0,U.jsx)(w,{variant:`outline`,size:`sm`,onClick:()=>K(),children:`Retry`})]}),x&&!Y&&!G&&(0,U.jsx)(`div`,{className:`flex justify-center py-2`,children:(0,U.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:x})})]}),(0,U.jsxs)(`form`,{onSubmit:async n=>{if(n.preventDefault(),e.disabled)return;let r=c?await oe(c):void 0;M({role:`user`,parts:[{type:`text`,text:t},...r??[]]}),ve()},ref:d,inert:e.disabled||void 0,className:g(`flex w-full border-t border-(--slate-6) px-2 py-1 items-center`,e.disabled&&`opacity-50 cursor-not-allowed`),children:[e.showConfigurationControls&&(0,U.jsx)(he,{config:r,onChange:i}),e.prompts.length>0&&(0,U.jsx)(ge,{prompts:e.prompts,onSelect:e=>{n(e),requestAnimationFrame(()=>{$?.focus(),a($)})}}),(0,U.jsx)(se,{className:`rounded-sm mr-2`,placeholder:Q,value:t,inputRef:f,maxHeight:e.maxHeight?`${e.maxHeight/2}px`:void 0,onChange:n,onSubmit:(e,t)=>{t.trim()&&d.current?.requestSubmit()},onClose:()=>{},additionalCompletions:_e}),c&&c.length===1&&(0,U.jsx)(`span`,{title:c[0].name,className:`text-sm text-(--slate-11) truncate shrink-0 w-fit max-w-24`,children:c[0].name}),c&&c.length>1&&(0,U.jsxs)(`span`,{title:[...c].map(e=>e.name).join(`
4
+ `),className:`text-sm text-(--slate-11) truncate shrink-0`,children:[c.length,` files`]}),c&&c.length>0&&(0,U.jsx)(w,{type:`button`,variant:`text`,size:`sm`,onClick:()=>{l(void 0),u.current&&(u.current.value=``)},children:(0,U.jsx)(ee,{className:`size-3`})}),Z&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(w,{type:`button`,variant:`text`,size:`sm`,onClick:()=>u.current?.click(),children:(0,U.jsx)(ce,{className:`h-4`})}),(0,U.jsx)(`input`,{type:`file`,ref:u,className:`hidden`,multiple:!0,accept:Array.isArray(e.allowAttachments)?e.allowAttachments.join(`,`):void 0,onChange:e=>{e.target.files&&l([...e.target.files])}})]}),Y?(0,U.jsx)(C,{content:`Stop generating`,children:(0,U.jsx)(w,{type:`button`,variant:`link`,size:`xs`,onClick:()=>H(),className:`text-(--red-9) hover:text-(--red-11)`,children:(0,U.jsx)(P,{className:`h-4 w-4 fill-current`})})}):(0,U.jsx)(w,{type:`submit`,disabled:!t,variant:`outline`,size:`xs`,className:`text-(--slate-11)`,"aria-label":`Send message`,children:(0,U.jsx)(ae,{className:`h-4 w-4`})})]})]})},q={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)`}},he=e=>{let t=(0,H.c)(16),{config:n,onChange:a}=e,[s,c]=(0,W.useState)(!1),l;t[0]!==n||t[1]!==a?(l=(e,t)=>{let r=t===null||Number.isNaN(t)?null:t;if(r!==null){let{min:t,max:n}=q[e];r=Math.max(t,Math.min(n,r))}let i={...n,[e]:r};a(i)},t[0]=n,t[1]=a,t[2]=l):l=t[2];let u=l,d;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=e=>{e.key===`Enter`&&(e.preventDefault(),c(!1))},t[3]=d):d=t[3];let f=d,p;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,U.jsx)(C,{content:`Configuration`,children:(0,U.jsx)(i,{asChild:!0,children:(0,U.jsx)(w,{variant:`outline`,size:`sm`,className:`border-none shadow-none hover:bg-transparent`,children:(0,U.jsx)(N,{className:`h-3 w-3`})})})}),t[4]=p):p=t[4];let m;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,U.jsx)(`h4`,{className:`font-bold leading-none`,children:`Configuration`}),t[5]=m):m=t[5];let g;if(t[6]!==n||t[7]!==u){let e;t[9]===u?e=t[10]:(e=e=>{let[t,n]=e;return(0,U.jsxs)(`div`,{className:`grid grid-cols-3 items-center gap-1`,children:[(0,U.jsxs)(v,{htmlFor:t,className:`flex w-full justify-between col-span-3 align-end`,children:[T.startCase(t),(0,U.jsx)(C,{delayDuration:200,side:`top`,content:(0,U.jsx)(`div`,{className:`text-xs flex flex-col`,children:q[t].description}),children:(0,U.jsx)(O,{className:`h-3 w-3 cursor-help text-muted-foreground hover:text-foreground`})})]}),(0,U.jsx)(j,{id:t,"aria-label":t,value:n??NaN,placeholder:`null`,minValue:q[t].min,maxValue:q[t].max,step:q[t].step??1,onChange:e=>u(t,e),onKeyDown:f,className:`col-span-3`})]},t)},t[9]=u,t[10]=e),g=h.entries(n).map(e),t[6]=n,t[7]=u,t[8]=g}else g=t[8];let _;t[11]===g?_=t[12]:(_=(0,U.jsx)(o,{className:`w-70 border`,children:(0,U.jsxs)(`div`,{className:`grid gap-3`,children:[m,g]})}),t[11]=g,t[12]=_);let y;return t[13]!==s||t[14]!==_?(y=(0,U.jsxs)(r,{open:s,onOpenChange:c,children:[p,_]}),t[13]=s,t[14]=_,t[15]=y):y=t[15],y},ge=e=>{let t=(0,H.c)(18),{prompts:n,onSelect:i}=e,[a,s]=(0,W.useState)(!1),[c,l]=(0,W.useState)(``),u;t[0]===i?u=t[1]:(u=e=>{[...e.matchAll(/{{(\w+)}}/g)].length>0?(l(e),s(!0)):i(e)},t[0]=i,t[1]=u);let d=u,f;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,U.jsx)(C,{content:`Select a prompt`,children:(0,U.jsx)(b,{asChild:!0,children:(0,U.jsx)(w,{variant:`outline`,size:`sm`,className:`border-none shadow-none hover:bg-transparent`,children:(0,U.jsx)(z,{className:`h-3 w-3`})})})}),t[2]=f):f=t[2];let p;if(t[3]!==d||t[4]!==n){let e;t[6]===d?e=t[7]:(e=(e,t)=>(0,U.jsx)(y,{onSelect:()=>d(e),className:`whitespace-normal text-left`,children:e},t),t[6]=d,t[7]=e),p=n.map(e),t[3]=d,t[4]=n,t[5]=p}else p=t[5];let m;t[8]===p?m=t[9]:(m=(0,U.jsx)(G,{children:(0,U.jsxs)(S,{children:[f,(0,U.jsx)(x,{side:`right`,align:`end`,onCloseAutoFocus:Y,className:`w-64 max-h-96 overflow-y-auto`,children:p})]})}),t[8]=p,t[9]=m);let h;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>s(!1),t[10]=h):h=t[10];let g;t[11]!==i||t[12]!==c?(g=(0,U.jsx)(o,{side:`right`,align:`end`,className:`min-w-80 px-2`,children:(0,U.jsx)(J,{prompt:c,onClose:h,onSelect:i})}),t[11]=i,t[12]=c,t[13]=g):g=t[13];let _;return t[14]!==a||t[15]!==m||t[16]!==g?(_=(0,U.jsxs)(r,{open:a,onOpenChange:s,children:[m,g]}),t[14]=a,t[15]=m,t[16]=g,t[17]=_):_=t[17],_},J=e=>{let t=(0,H.c)(32),{prompt:n,onClose:r,onSelect:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a={},t[0]=a):a=t[0];let[o,s]=(0,W.useState)(a),c,l;t[1]===n?(c=t[2],l=t[3]):(c=()=>{let e=[...n.matchAll(/{{(\w+)}}/g)].reduce(X,{});s(e)},l=[n],t[1]=n,t[2]=c,t[3]=l),(0,W.useEffect)(c,l);let u;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(u=(e,t)=>{s(n=>({...n,[e]:t}))},t[4]=u):u=t[4];let d=u,f;if(t[5]!==n||t[6]!==o){let e;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(e=/{{(\w+)}}/g,t[8]=e):e=t[8];let r;t[9]===o?r=t[10]:(r=(e,t)=>o[t]||`{{${t}}}`,t[9]=o,t[10]=r),f=n.replaceAll(e,r),t[5]=n,t[6]=o,t[7]=f}else f=t[7];let p=f,m;t[11]===o?m=t[12]:(m=Object.values(o).some(Z),t[11]=o,t[12]=m);let h=m,g;t[13]!==r||t[14]!==i||t[15]!==p?(g=()=>{i(p),r()},t[13]=r,t[14]=i,t[15]=p,t[16]=g):g=t[16];let _=g,y;t[17]===o?y=t[18]:(y=Object.entries(o),t[17]=o,t[18]=y);let b;t[19]!==_||t[20]!==h||t[21]!==y?(b=y.map((e,t)=>{let[n,r]=e;return(0,U.jsxs)(`div`,{className:`grid grid-cols-4 items-center gap-2`,children:[(0,U.jsx)(v,{htmlFor:n,className:`font-semibold text-base`,children:n}),(0,U.jsx)(M,{id:n,value:r,onChange:e=>d(n,e.target.value),rootClassName:`col-span-3 w-full`,className:`m-0`,placeholder:`Enter value for ${n}`,autoFocus:t===0,onKeyDown:e=>{e.key===`Enter`&&!h&&_()}})]},n)}),t[19]=_,t[20]=h,t[21]=y,t[22]=b):b=t[22];let x;t[23]===p?x=t[24]:(x=(0,U.jsx)(`div`,{className:`grid gap-2 prose dark:prose-invert`,children:(0,U.jsx)(`blockquote`,{className:`text-sm`,children:p})}),t[23]=p,t[24]=x);let S;t[25]!==_||t[26]!==h?(S=(0,U.jsx)(w,{onClick:_,size:`xs`,disabled:h,children:`Submit`}),t[25]=_,t[26]=h,t[27]=S):S=t[27];let C;return t[28]!==x||t[29]!==S||t[30]!==b?(C=(0,U.jsxs)(`div`,{className:`grid gap-4`,children:[b,x,S]}),t[28]=x,t[29]=S,t[30]=b,t[31]=C):C=t[31],C};function Y(e){return e.preventDefault()}function X(e,t){return e[t[1]]=``,e}function Z(e){return e==null||e.trim()===``}export{K as Chatbot};
@@ -1 +1 @@
1
- import{c as e,l as t}from"./useEvent-xfs0Sn4r.js";import{Cn as n,Sn as r,_n as i,bn as a,vn as o,wn as s,xn as c,yn as l,zt as u}from"./cells-DfJw5iuV.js";import{t as d}from"./compiler-runtime-CYIjoINj.js";import{E as f,T as p}from"./ai-model-dropdown-D2q0Cm0R.js";import{m,t as h,u as g}from"./useEventListener-D27Dii_l.js";import{t as _}from"./objects-snlMn4yk.js";import{C as v,S as y,g as b}from"./utils-R_pHe-RB.js";import{t as x}from"./jsx-runtime-B74pBk57.js";import{r as S}from"./requests-C6_IaFh7.js";import{t as C}from"./useCellActionButton-DgA6C9_m.js";import{a as w,c as T,t as E}from"./useNotebookActions-BoFJmccb.js";import{t as D}from"./renderShortcut-D9XYVNe3.js";var O=d(),k=3;function A(){let e=(0,O.c)(7),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0];let[n,r]=T(`marimo:commands`,t),i;e[1]!==n||e[2]!==r?(i=e=>{let t=j([e,...n]);r(t.slice(0,k))},e[1]=n,e[2]=r,e[3]=i):i=e[3];let a;return e[4]!==n||e[5]!==i?(a={recentCommands:n,addRecentCommand:i},e[4]=n,e[5]=i,e[6]=a):a=e[6],a}function j(e){return[...new Set(e)]}function M(e){return e.dropdown!==void 0}function N(e,t=``){return e.flatMap(e=>!e.label||e.hidden?[]:M(e)?N(e.dropdown,`${t+e.label} > `):{...e,label:t+e.label,additionalKeywords:e.additionalKeywords})}function P(){let e=(0,O.c)(87),[t,n]=v(),[r,i]=y(),{saveAppConfig:a,saveUserConfig:o}=S(),s;e[0]!==o||e[1]!==n?(s=async e=>{await o({config:e}).then(()=>{n(t=>({...t,...e}))})},e[0]=o,e[1]=n,e[2]=s):s=e[2];let c=s,l;e[3]!==a||e[4]!==i?(l=async e=>{await a({config:e}).then(()=>{i(e)})},e[3]=a,e[4]=i,e[5]=l):l=e[5];let u=l,d;if(e[6]!==r||e[7]!==t.completion||e[8]!==t.display||e[9]!==t.keymap||e[10]!==u||e[11]!==c){let n;e[13]===r?n=e[14]:(n=e=>e!==r.width,e[13]=r,e[14]=n);let i;e[15]!==r||e[16]!==u?(i=e=>({label:`App config > Set width=${e}`,handle:()=>{u({...r,width:e})}}),e[15]=r,e[16]=u,e[17]=i):i=e[17];let a;e[18]!==t.display||e[19]!==c?(a={label:`Config > Set theme: dark`,handle:()=>{c({display:{...t.display,theme:`dark`}})}},e[18]=t.display,e[19]=c,e[20]=a):a=e[20];let o;e[21]!==t.display||e[22]!==c?(o={label:`Config > Set theme: light`,handle:()=>{c({display:{...t.display,theme:`light`}})}},e[21]=t.display,e[22]=c,e[23]=o):o=e[23];let s;e[24]!==t.display||e[25]!==c?(s={label:`Config > Set theme: system`,handle:()=>{c({display:{...t.display,theme:`system`}})}},e[24]=t.display,e[25]=c,e[26]=s):s=e[26];let l=t.keymap.preset===`vim`,p;e[27]!==t.keymap||e[28]!==c?(p=()=>{c({keymap:{...t.keymap,preset:`vim`}})},e[27]=t.keymap,e[28]=c,e[29]=p):p=e[29];let m;e[30]!==l||e[31]!==p?(m={label:`Config > Switch keymap to VIM`,hidden:l,handle:p},e[30]=l,e[31]=p,e[32]=m):m=e[32];let h=t.keymap.preset==="default",g;e[33]!==t.keymap||e[34]!==c?(g=()=>{c({keymap:{...t.keymap,preset:`default`}})},e[33]=t.keymap,e[34]=c,e[35]=g):g=e[35];let _;e[36]!==h||e[37]!==g?(_={label:`Config > Switch keymap to default (current: VIM)`,hidden:h,handle:g},e[36]=h,e[37]=g,e[38]=_):_=e[38];let v;e[39]!==t.completion||e[40]!==c?(v=()=>{c({completion:{...t.completion,copilot:!1}})},e[39]=t.completion,e[40]=c,e[41]=v):v=e[41];let y=t.completion.copilot!==`github`,b;e[42]!==v||e[43]!==y?(b={label:`Config > Disable GitHub Copilot`,handle:v,hidden:y},e[42]=v,e[43]=y,e[44]=b):b=e[44];let x;e[45]!==t.completion||e[46]!==c?(x=()=>{c({completion:{...t.completion,copilot:`github`}})},e[45]=t.completion,e[46]=c,e[47]=x):x=e[47];let S=t.completion.copilot===`github`,C;e[48]!==x||e[49]!==S?(C={label:`Config > Enable GitHub Copilot`,handle:x,hidden:S},e[48]=x,e[49]=S,e[50]=C):C=e[50];let w=!t.display.reference_highlighting,T;e[51]!==t.display||e[52]!==c?(T=()=>{c({display:{...t.display,reference_highlighting:!1}})},e[51]=t.display,e[52]=c,e[53]=T):T=e[53];let E;e[54]!==w||e[55]!==T?(E={label:`Config > Disable reference highlighting`,hidden:w,handle:T},e[54]=w,e[55]=T,e[56]=E):E=e[56];let D;e[57]!==t.display||e[58]!==c?(D=()=>{c({display:{...t.display,reference_highlighting:!0}})},e[57]=t.display,e[58]=c,e[59]=D):D=e[59];let O;e[60]!==t.display.reference_highlighting||e[61]!==D?(O={label:`Config > Enable reference highlighting`,hidden:t.display.reference_highlighting,handle:D},e[60]=t.display.reference_highlighting,e[61]=D,e[62]=O):O=e[62];let k=!(t.display.code_lens??!0),A;e[63]!==t.display||e[64]!==c?(A=()=>{c({display:{...t.display,code_lens:!1}})},e[63]=t.display,e[64]=c,e[65]=A):A=e[65];let j;e[66]!==k||e[67]!==A?(j={label:`Config > Disable code lens`,hidden:k,handle:A},e[66]=k,e[67]=A,e[68]=j):j=e[68];let M=t.display.code_lens??!0,N;e[69]!==t.display||e[70]!==c?(N=()=>{c({display:{...t.display,code_lens:!0}})},e[69]=t.display,e[70]=c,e[71]=N):N=e[71];let P;e[72]!==M||e[73]!==N?(P={label:`Config > Enable code lens`,hidden:M,handle:N},e[72]=M,e[73]=N,e[74]=P):P=e[74];let I=t.display.cell_output===`above`,L;e[75]!==t.display||e[76]!==c?(L=()=>{c({display:{...t.display,cell_output:`above`}})},e[75]=t.display,e[76]=c,e[77]=L):L=e[77];let R;e[78]!==I||e[79]!==L?(R={label:`Config > Set cell output area: above`,hidden:I,handle:L},e[78]=I,e[79]=L,e[80]=R):R=e[80];let z=t.display.cell_output===`below`,B;e[81]!==t.display||e[82]!==c?(B=()=>{c({display:{...t.display,cell_output:`below`}})},e[81]=t.display,e[82]=c,e[83]=B):B=e[83];let V;e[84]!==z||e[85]!==B?(V={label:`Config > Set cell output area: below`,hidden:z,handle:B},e[84]=z,e[85]=B,e[86]=V):V=e[86],d=[...f().filter(n).map(i),a,o,s,m,_,b,C,E,O,j,P,R,V].filter(F),e[6]=r,e[7]=t.completion,e[8]=t.display,e[9]=t.keymap,e[10]=u,e[11]=c,e[12]=d}else d=e[12];return d}function F(e){return!e.hidden}var I=x(),L=()=>{let d=(0,O.c)(37),[f,v]=e(w),y=p(),x=t(u),S=t(b),T;d[0]===x?T=d[1]:(T={cell:x},d[0]=x,d[1]=T);let k=C(T).flat();k=N(k);let j=P(),F=E();F=[...N(F),...N(j)];let L=F.filter(R),V=_.keyBy(L,z),{recentCommands:H,addRecentCommand:U}=A(),W;d[2]===H?W=d[3]:(W=new Set(H),d[2]=H,d[3]=W);let G=W,K;d[4]!==S||d[5]!==v?(K=e=>{m(S.getHotkey(`global.commandPalette`).key)(e)&&(e.preventDefault(),v(B))},d[4]=S,d[5]=v,d[6]=K):K=d[6],h(document,`keydown`,K);let q;d[7]!==U||d[8]!==S||d[9]!==y||d[10]!==v?(q=(e,t)=>{let n=y[e];if(!n)return null;let r=S.getHotkey(e);return(0,I.jsxs)(c,{disabled:t.disabled,keywords:r.additionalKeywords,onSelect:()=>{U(e),v(!1),requestAnimationFrame(()=>{n()})},value:r.name,children:[(0,I.jsxs)(`span`,{children:[r.name,t.tooltip&&(0,I.jsx)(`span`,{className:`ml-2`,children:t.tooltip})]}),(0,I.jsx)(s,{children:(0,I.jsx)(D,{shortcut:r.key})})]},e)},d[7]=U,d[8]=S,d[9]=y,d[10]=v,d[11]=q):q=d[11];let ee=q,J;d[12]!==U||d[13]!==S||d[14]!==v?(J=e=>{let{label:t,handle:n,props:r,hotkey:i,additionalKeywords:a}=e,o=r===void 0?{}:r;return(0,I.jsxs)(c,{disabled:o.disabled,keywords:a,onSelect:()=>{U(t),v(!1),requestAnimationFrame(()=>{n()})},value:t,children:[(0,I.jsxs)(`span`,{children:[t,o.tooltip&&(0,I.jsxs)(`span`,{className:`ml-2`,children:[`(`,o.tooltip,`)`]})]}),i&&(0,I.jsx)(s,{children:(0,I.jsx)(D,{shortcut:S.getHotkey(i).key})})]},t)},d[12]=U,d[13]=S,d[14]=v,d[15]=J):J=d[15];let Y=J,te=i,X;d[16]===Symbol.for(`react.memo_cache_sentinel`)?(X=(0,I.jsx)(a,{placeholder:`Type to search...`}),d[16]=X):X=d[16];let ne=r,Z;d[17]===Symbol.for(`react.memo_cache_sentinel`)?(Z=(0,I.jsx)(o,{children:`No results found.`}),d[17]=Z):Z=d[17];let re=H.length>0&&(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(l,{heading:`Recently Used`,children:H.map(e=>{let t=V[e];return g(e)?ee(e,{disabled:t?.disabled,tooltip:t?.tooltip}):t&&!M(t)?Y({label:t.label,handle:t.handleHeadless||t.handle,props:{disabled:t.disabled,tooltip:t.tooltip},additionalKeywords:t.additionalKeywords}):null})}),(0,I.jsx)(n,{})]}),ie=l,ae=S.iterate().map(e=>{if(G.has(e))return null;let t=V[e];return ee(e,{disabled:t?.disabled,tooltip:t?.tooltip})}),oe=L.map(e=>G.has(e.label)?null:Y({label:e.label,handle:e.handleHeadless||e.handle,props:{disabled:e.disabled,tooltip:e.tooltip},additionalKeywords:e.additionalKeywords})),se;d[18]!==G||d[19]!==Y?(se=e=>G.has(e.label)?null:Y({label:`Cell > ${e.label}`,handle:e.handleHeadless||e.handle,props:{disabled:e.disabled,tooltip:e.tooltip},additionalKeywords:e.additionalKeywords}),d[18]=G,d[19]=Y,d[20]=se):se=d[20];let ce=k.map(se),Q;d[21]!==ie||d[22]!==oe||d[23]!==ce||d[24]!==ae?(Q=(0,I.jsxs)(ie,{heading:`Commands`,children:[ae,oe,ce]}),d[21]=ie,d[22]=oe,d[23]=ce,d[24]=ae,d[25]=Q):Q=d[25];let $;d[26]!==ne||d[27]!==Q||d[28]!==Z||d[29]!==re?($=(0,I.jsxs)(ne,{children:[Z,re,Q]}),d[26]=ne,d[27]=Q,d[28]=Z,d[29]=re,d[30]=$):$=d[30];let le;return d[31]!==te||d[32]!==f||d[33]!==v||d[34]!==$||d[35]!==X?(le=(0,I.jsxs)(te,{open:f,onOpenChange:v,children:[X,$]}),d[31]=te,d[32]=f,d[33]=v,d[34]=$,d[35]=X,d[36]=le):le=d[36],le};function R(e){return!e.hotkey}function z(e){return e.label}function B(e){return!e}export{L as default};
1
+ import{c as e,l as t}from"./useEvent-xfs0Sn4r.js";import{Cn as n,Sn as r,_n as i,bn as a,vn as o,wn as s,xn as c,yn as l,zt as u}from"./cells-DfJw5iuV.js";import{t as d}from"./compiler-runtime-CYIjoINj.js";import{E as f,T as p}from"./ai-model-dropdown-D2q0Cm0R.js";import{m,t as h,u as g}from"./useEventListener-D27Dii_l.js";import{t as _}from"./objects-snlMn4yk.js";import{C as v,S as y,g as b}from"./utils-R_pHe-RB.js";import{t as x}from"./jsx-runtime-B74pBk57.js";import{r as S}from"./requests-C6_IaFh7.js";import{t as C}from"./useCellActionButton-DgA6C9_m.js";import{a as w,c as T,t as E}from"./useNotebookActions-DGuDG0Px.js";import{t as D}from"./renderShortcut-D9XYVNe3.js";var O=d(),k=3;function A(){let e=(0,O.c)(7),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0];let[n,r]=T(`marimo:commands`,t),i;e[1]!==n||e[2]!==r?(i=e=>{let t=j([e,...n]);r(t.slice(0,k))},e[1]=n,e[2]=r,e[3]=i):i=e[3];let a;return e[4]!==n||e[5]!==i?(a={recentCommands:n,addRecentCommand:i},e[4]=n,e[5]=i,e[6]=a):a=e[6],a}function j(e){return[...new Set(e)]}function M(e){return e.dropdown!==void 0}function N(e,t=``){return e.flatMap(e=>!e.label||e.hidden?[]:M(e)?N(e.dropdown,`${t+e.label} > `):{...e,label:t+e.label,additionalKeywords:e.additionalKeywords})}function P(){let e=(0,O.c)(87),[t,n]=v(),[r,i]=y(),{saveAppConfig:a,saveUserConfig:o}=S(),s;e[0]!==o||e[1]!==n?(s=async e=>{await o({config:e}).then(()=>{n(t=>({...t,...e}))})},e[0]=o,e[1]=n,e[2]=s):s=e[2];let c=s,l;e[3]!==a||e[4]!==i?(l=async e=>{await a({config:e}).then(()=>{i(e)})},e[3]=a,e[4]=i,e[5]=l):l=e[5];let u=l,d;if(e[6]!==r||e[7]!==t.completion||e[8]!==t.display||e[9]!==t.keymap||e[10]!==u||e[11]!==c){let n;e[13]===r?n=e[14]:(n=e=>e!==r.width,e[13]=r,e[14]=n);let i;e[15]!==r||e[16]!==u?(i=e=>({label:`App config > Set width=${e}`,handle:()=>{u({...r,width:e})}}),e[15]=r,e[16]=u,e[17]=i):i=e[17];let a;e[18]!==t.display||e[19]!==c?(a={label:`Config > Set theme: dark`,handle:()=>{c({display:{...t.display,theme:`dark`}})}},e[18]=t.display,e[19]=c,e[20]=a):a=e[20];let o;e[21]!==t.display||e[22]!==c?(o={label:`Config > Set theme: light`,handle:()=>{c({display:{...t.display,theme:`light`}})}},e[21]=t.display,e[22]=c,e[23]=o):o=e[23];let s;e[24]!==t.display||e[25]!==c?(s={label:`Config > Set theme: system`,handle:()=>{c({display:{...t.display,theme:`system`}})}},e[24]=t.display,e[25]=c,e[26]=s):s=e[26];let l=t.keymap.preset===`vim`,p;e[27]!==t.keymap||e[28]!==c?(p=()=>{c({keymap:{...t.keymap,preset:`vim`}})},e[27]=t.keymap,e[28]=c,e[29]=p):p=e[29];let m;e[30]!==l||e[31]!==p?(m={label:`Config > Switch keymap to VIM`,hidden:l,handle:p},e[30]=l,e[31]=p,e[32]=m):m=e[32];let h=t.keymap.preset==="default",g;e[33]!==t.keymap||e[34]!==c?(g=()=>{c({keymap:{...t.keymap,preset:`default`}})},e[33]=t.keymap,e[34]=c,e[35]=g):g=e[35];let _;e[36]!==h||e[37]!==g?(_={label:`Config > Switch keymap to default (current: VIM)`,hidden:h,handle:g},e[36]=h,e[37]=g,e[38]=_):_=e[38];let v;e[39]!==t.completion||e[40]!==c?(v=()=>{c({completion:{...t.completion,copilot:!1}})},e[39]=t.completion,e[40]=c,e[41]=v):v=e[41];let y=t.completion.copilot!==`github`,b;e[42]!==v||e[43]!==y?(b={label:`Config > Disable GitHub Copilot`,handle:v,hidden:y},e[42]=v,e[43]=y,e[44]=b):b=e[44];let x;e[45]!==t.completion||e[46]!==c?(x=()=>{c({completion:{...t.completion,copilot:`github`}})},e[45]=t.completion,e[46]=c,e[47]=x):x=e[47];let S=t.completion.copilot===`github`,C;e[48]!==x||e[49]!==S?(C={label:`Config > Enable GitHub Copilot`,handle:x,hidden:S},e[48]=x,e[49]=S,e[50]=C):C=e[50];let w=!t.display.reference_highlighting,T;e[51]!==t.display||e[52]!==c?(T=()=>{c({display:{...t.display,reference_highlighting:!1}})},e[51]=t.display,e[52]=c,e[53]=T):T=e[53];let E;e[54]!==w||e[55]!==T?(E={label:`Config > Disable reference highlighting`,hidden:w,handle:T},e[54]=w,e[55]=T,e[56]=E):E=e[56];let D;e[57]!==t.display||e[58]!==c?(D=()=>{c({display:{...t.display,reference_highlighting:!0}})},e[57]=t.display,e[58]=c,e[59]=D):D=e[59];let O;e[60]!==t.display.reference_highlighting||e[61]!==D?(O={label:`Config > Enable reference highlighting`,hidden:t.display.reference_highlighting,handle:D},e[60]=t.display.reference_highlighting,e[61]=D,e[62]=O):O=e[62];let k=!(t.display.code_lens??!0),A;e[63]!==t.display||e[64]!==c?(A=()=>{c({display:{...t.display,code_lens:!1}})},e[63]=t.display,e[64]=c,e[65]=A):A=e[65];let j;e[66]!==k||e[67]!==A?(j={label:`Config > Disable code lens`,hidden:k,handle:A},e[66]=k,e[67]=A,e[68]=j):j=e[68];let M=t.display.code_lens??!0,N;e[69]!==t.display||e[70]!==c?(N=()=>{c({display:{...t.display,code_lens:!0}})},e[69]=t.display,e[70]=c,e[71]=N):N=e[71];let P;e[72]!==M||e[73]!==N?(P={label:`Config > Enable code lens`,hidden:M,handle:N},e[72]=M,e[73]=N,e[74]=P):P=e[74];let I=t.display.cell_output===`above`,L;e[75]!==t.display||e[76]!==c?(L=()=>{c({display:{...t.display,cell_output:`above`}})},e[75]=t.display,e[76]=c,e[77]=L):L=e[77];let R;e[78]!==I||e[79]!==L?(R={label:`Config > Set cell output area: above`,hidden:I,handle:L},e[78]=I,e[79]=L,e[80]=R):R=e[80];let z=t.display.cell_output===`below`,B;e[81]!==t.display||e[82]!==c?(B=()=>{c({display:{...t.display,cell_output:`below`}})},e[81]=t.display,e[82]=c,e[83]=B):B=e[83];let V;e[84]!==z||e[85]!==B?(V={label:`Config > Set cell output area: below`,hidden:z,handle:B},e[84]=z,e[85]=B,e[86]=V):V=e[86],d=[...f().filter(n).map(i),a,o,s,m,_,b,C,E,O,j,P,R,V].filter(F),e[6]=r,e[7]=t.completion,e[8]=t.display,e[9]=t.keymap,e[10]=u,e[11]=c,e[12]=d}else d=e[12];return d}function F(e){return!e.hidden}var I=x(),L=()=>{let d=(0,O.c)(37),[f,v]=e(w),y=p(),x=t(u),S=t(b),T;d[0]===x?T=d[1]:(T={cell:x},d[0]=x,d[1]=T);let k=C(T).flat();k=N(k);let j=P(),F=E();F=[...N(F),...N(j)];let L=F.filter(R),V=_.keyBy(L,z),{recentCommands:H,addRecentCommand:U}=A(),W;d[2]===H?W=d[3]:(W=new Set(H),d[2]=H,d[3]=W);let G=W,K;d[4]!==S||d[5]!==v?(K=e=>{m(S.getHotkey(`global.commandPalette`).key)(e)&&(e.preventDefault(),v(B))},d[4]=S,d[5]=v,d[6]=K):K=d[6],h(document,`keydown`,K);let q;d[7]!==U||d[8]!==S||d[9]!==y||d[10]!==v?(q=(e,t)=>{let n=y[e];if(!n)return null;let r=S.getHotkey(e);return(0,I.jsxs)(c,{disabled:t.disabled,keywords:r.additionalKeywords,onSelect:()=>{U(e),v(!1),requestAnimationFrame(()=>{n()})},value:r.name,children:[(0,I.jsxs)(`span`,{children:[r.name,t.tooltip&&(0,I.jsx)(`span`,{className:`ml-2`,children:t.tooltip})]}),(0,I.jsx)(s,{children:(0,I.jsx)(D,{shortcut:r.key})})]},e)},d[7]=U,d[8]=S,d[9]=y,d[10]=v,d[11]=q):q=d[11];let ee=q,J;d[12]!==U||d[13]!==S||d[14]!==v?(J=e=>{let{label:t,handle:n,props:r,hotkey:i,additionalKeywords:a}=e,o=r===void 0?{}:r;return(0,I.jsxs)(c,{disabled:o.disabled,keywords:a,onSelect:()=>{U(t),v(!1),requestAnimationFrame(()=>{n()})},value:t,children:[(0,I.jsxs)(`span`,{children:[t,o.tooltip&&(0,I.jsxs)(`span`,{className:`ml-2`,children:[`(`,o.tooltip,`)`]})]}),i&&(0,I.jsx)(s,{children:(0,I.jsx)(D,{shortcut:S.getHotkey(i).key})})]},t)},d[12]=U,d[13]=S,d[14]=v,d[15]=J):J=d[15];let Y=J,te=i,X;d[16]===Symbol.for(`react.memo_cache_sentinel`)?(X=(0,I.jsx)(a,{placeholder:`Type to search...`}),d[16]=X):X=d[16];let ne=r,Z;d[17]===Symbol.for(`react.memo_cache_sentinel`)?(Z=(0,I.jsx)(o,{children:`No results found.`}),d[17]=Z):Z=d[17];let re=H.length>0&&(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(l,{heading:`Recently Used`,children:H.map(e=>{let t=V[e];return g(e)?ee(e,{disabled:t?.disabled,tooltip:t?.tooltip}):t&&!M(t)?Y({label:t.label,handle:t.handleHeadless||t.handle,props:{disabled:t.disabled,tooltip:t.tooltip},additionalKeywords:t.additionalKeywords}):null})}),(0,I.jsx)(n,{})]}),ie=l,ae=S.iterate().map(e=>{if(G.has(e))return null;let t=V[e];return ee(e,{disabled:t?.disabled,tooltip:t?.tooltip})}),oe=L.map(e=>G.has(e.label)?null:Y({label:e.label,handle:e.handleHeadless||e.handle,props:{disabled:e.disabled,tooltip:e.tooltip},additionalKeywords:e.additionalKeywords})),se;d[18]!==G||d[19]!==Y?(se=e=>G.has(e.label)?null:Y({label:`Cell > ${e.label}`,handle:e.handleHeadless||e.handle,props:{disabled:e.disabled,tooltip:e.tooltip},additionalKeywords:e.additionalKeywords}),d[18]=G,d[19]=Y,d[20]=se):se=d[20];let ce=k.map(se),Q;d[21]!==ie||d[22]!==oe||d[23]!==ce||d[24]!==ae?(Q=(0,I.jsxs)(ie,{heading:`Commands`,children:[ae,oe,ce]}),d[21]=ie,d[22]=oe,d[23]=ce,d[24]=ae,d[25]=Q):Q=d[25];let $;d[26]!==ne||d[27]!==Q||d[28]!==Z||d[29]!==re?($=(0,I.jsxs)(ne,{children:[Z,re,Q]}),d[26]=ne,d[27]=Q,d[28]=Z,d[29]=re,d[30]=$):$=d[30];let le;return d[31]!==te||d[32]!==f||d[33]!==v||d[34]!==$||d[35]!==X?(le=(0,I.jsxs)(te,{open:f,onOpenChange:v,children:[X,$]}),d[31]=te,d[32]=f,d[33]=v,d[34]=$,d[35]=X,d[36]=le):le=d[36],le};function R(e){return!e.hotkey}function z(e){return e.label}function B(e){return!e}export{L as default};