sage-nexus-ui 1.13.8 → 1.13.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- import{jsxs as e,Fragment as n,jsx as t}from"react/jsx-runtime";import{useTheme as i,useMediaQuery as r,AppBar as l,Toolbar as o,Box as s}from"@mui/material";import{NexusHome as d}from"./NexusHome.mjs";import{ThemeToggle as c}from"./ThemeToggle.mjs";import x from"./NexusLogo.mjs";import{ActionBarTitle as a}from"./Typography.mjs";import{useState as m,useRef as u,useEffect as h}from"react";const f=({title:f,extraLeft:p,extraRight:g,homeHref:w,showHome:y=!0})=>{const[v,b]=m(!0),C=u(0),j=i(),k=r(j.breakpoints.up("md")),E=u(null),R=u(null),I=u(null),B=u(null),L=u(null),A=u(null),[H,M]=m(null),[z,T]=m(null);return h(()=>{const e=()=>{const e=window.scrollY;e>C.current?b(!1):b(!0),C.current=e};return window.addEventListener("scroll",e,{passive:!0}),()=>window.removeEventListener("scroll",e)},[]),h(()=>{if(!k)return M(null),void T(null);function e(){const e=R.current,n=I.current,t=E.current,i=B.current,r=L.current,l=A.current;if(!e||!n||!t)return;const o=e.getBoundingClientRect(),s=n.getBoundingClientRect(),d=t.getBoundingClientRect();if(i){const e=i.getBoundingClientRect().width||0,n=(o.right+s.left)/2,t=o.right+e/2+8,r=s.left-e/2-8,l=Math.min(Math.max(n,t),r);M(l-d.left)}else M(null);if(r&&l){const e=r.getBoundingClientRect().width||0,n=l.getBoundingClientRect(),t=(s.right+n.left)/2,i=s.right+e/2+8,o=n.left-e/2-8,c=Math.min(Math.max(t,i),o);T(c-d.left)}else T(null)}e(),window.addEventListener("resize",e);let n=null;const t=window.ResizeObserver;return t&&(n=new t(e),E.current&&n.observe(E.current)),()=>{window.removeEventListener("resize",e),n&&n.disconnect()}},[k,p,g]),e(n,{children:[t(l,{position:"sticky",component:"header",color:"inherit",sx:{[j.breakpoints.up("md")]:{position:"fixed"}},children:e(o,{variant:"dense",sx:{display:"flex",flexDirection:{xs:"column",md:"row"},flexWrap:"wrap",alignItems:"center",justifyContent:{xs:"center",md:"space-between"},py:{xs:1,md:0}},children:[t(s,{sx:{width:{xs:"100%",md:"auto"},textAlign:"center",display:{xs:"block",md:"none"}},children:t(a,{children:f})}),(p||g)&&e(s,{sx:{display:{xs:"flex",md:"none"},justifyContent:"center",alignItems:"center",gap:1,width:"100%"},children:[p&&t(s,{children:p}),g&&t(s,{children:g})]}),t(s,{sx:{display:"block",width:"100%",maxHeight:{xs:k||v?"300px":"0px",md:"none"},overflow:{xs:"hidden",md:"visible"},transition:{xs:"max-height 0.2s ease-in-out",md:"none"}},children:e(s,{sx:{display:"flex",flexDirection:{xs:"column",md:"row"},alignItems:"center",width:"100%",gap:{xs:1,md:0},position:"relative"},ref:E,children:[t(s,{sx:{display:"flex",alignItems:"center",width:{xs:"100%",md:"auto"},flex:{xs:"none",md:1},justifyContent:{xs:"center",md:"flex-start"}},children:t(s,{sx:{height:"38px",pt:.5,display:{xs:"none",md:"block"}},ref:R,children:t(x,{})})}),t(s,{sx:{display:{xs:"none",md:"flex"},justifyContent:"center",alignItems:"center",position:"absolute",left:0,right:0,pointerEvents:"none"},children:t(s,{sx:{pointerEvents:"auto",textAlign:"center"},children:t(s,{ref:I,children:t(a,{children:f})})})}),t(s,{sx:{display:{xs:"none",md:p?"block":"none"},position:"absolute",left:null!=H?`${H}px`:void 0,transform:"translateX(-50%)",pointerEvents:"auto",textAlign:"center"},children:t(s,{ref:B,children:p})}),t(s,{sx:{display:{xs:"none",md:g?"block":"none"},position:"absolute",left:null!=z?`${z}px`:void 0,transform:"translateX(-50%)",pointerEvents:"auto",textAlign:"center"},children:t(s,{ref:L,children:g})}),t(s,{sx:{display:"flex",alignItems:"center",gap:1,width:{xs:"100%",md:"auto"},flex:{xs:"none",md:1},justifyContent:{xs:"center",md:"flex-end"}},children:e(s,{sx:{flex:"0 0 auto",display:"flex",alignItems:"center",gap:1},ref:A,children:[y&&t(d,{href:w}),t(c,{})]})})]})})]})}),t(s,{sx:{display:{xs:"none",md:"block"},height:"48px",flexShrink:0}})]})};export{f as ActionBar};
1
+ import{jsxs as e,Fragment as n,jsx as t}from"react/jsx-runtime";import{useTheme as i,useMediaQuery as r,AppBar as l,Toolbar as s,Box as o}from"@mui/material";import{NexusHome as c}from"./NexusHome.mjs";import{ThemeToggle as d}from"./ThemeToggle.mjs";import a from"./NexusLogo.mjs";import{ActionBarTitle as x}from"./Typography.mjs";import{useRef as f,useState as u,useEffect as h}from"react";const m=({title:m,extraLeft:p,extraRight:g,homeHref:y,showHome:w=!0})=>{const v=i(),b=r(v.breakpoints.up("md")),C=f(null),[I,j]=u(49),R=f(null),k=f(null),B=f(null),z=f(null),E=f(null),L=f(null),[M,A]=u(null),[H,T]=u(null);return h(()=>{const e=C.current;if(!e)return;const n=()=>j(e.getBoundingClientRect().height);n();const t=window.ResizeObserver;if(!t)return;const i=new t(n);return i.observe(e),()=>i.disconnect()},[]),h(()=>{if(!b)return A(null),void T(null);function e(){const e=k.current,n=B.current,t=R.current,i=z.current,r=E.current,l=L.current;if(!e||!n||!t)return;const s=e.getBoundingClientRect(),o=n.getBoundingClientRect(),c=t.getBoundingClientRect();if(i){const e=i.getBoundingClientRect().width||0,n=(s.right+o.left)/2,t=s.right+e/2+8,r=o.left-e/2-8,l=Math.min(Math.max(n,t),r);A(l-c.left)}else A(null);if(r&&l){const e=r.getBoundingClientRect().width||0,n=l.getBoundingClientRect(),t=(o.right+n.left)/2,i=o.right+e/2+8,s=n.left-e/2-8,d=Math.min(Math.max(t,i),s);T(d-c.left)}else T(null)}e(),window.addEventListener("resize",e);let n=null;const t=window.ResizeObserver;return t&&(n=new t(e),R.current&&n.observe(R.current)),()=>{window.removeEventListener("resize",e),n&&n.disconnect()}},[b,p,g]),e(n,{children:[t(l,{position:"sticky",component:"header",color:"inherit",elevation:0,ref:C,sx:{zIndex:{xs:v.zIndex.appBar,md:v.zIndex.drawer+1},[v.breakpoints.up("md")]:{position:"fixed"}},children:e(s,{variant:"dense",sx:{display:"flex",flexDirection:{xs:"column",md:"row"},flexWrap:"wrap",alignItems:"center",justifyContent:{xs:"center",md:"space-between"},py:{xs:1,md:0}},children:[e(o,{sx:{display:{xs:"flex",md:"none"},width:"100%",alignItems:"center"},children:[t(o,{sx:{flex:1}}),t(x,{children:m}),e(o,{sx:{flex:1,display:"flex",justifyContent:"flex-end",alignItems:"center",gap:.5},children:[w&&t(c,{href:y}),t(d,{})]})]}),(p||g)&&e(o,{sx:{display:{xs:"flex",md:"none"},justifyContent:"center",alignItems:"center",gap:1,width:"100%"},children:[p&&t(o,{children:p}),g&&t(o,{children:g})]}),t(o,{sx:{display:{xs:"none",md:"block"},width:"100%"},children:e(o,{sx:{display:"flex",flexDirection:"row",alignItems:"center",width:"100%",position:"relative"},ref:R,children:[t(o,{sx:{display:"flex",alignItems:"center",flex:1,justifyContent:"flex-start"},children:t(o,{sx:{height:"38px",pt:.5},ref:k,children:t(a,{})})}),t(o,{sx:{display:"flex",justifyContent:"center",alignItems:"center",position:"absolute",left:0,right:0,pointerEvents:"none"},children:t(o,{sx:{pointerEvents:"auto",textAlign:"center"},children:t(o,{ref:B,children:t(x,{children:m})})})}),t(o,{sx:{display:p?"block":"none",position:"absolute",left:null!=M?`${M}px`:void 0,transform:"translateX(-50%)",pointerEvents:"auto",textAlign:"center"},children:t(o,{ref:z,children:p})}),t(o,{sx:{display:g?"block":"none",position:"absolute",left:null!=H?`${H}px`:void 0,transform:"translateX(-50%)",pointerEvents:"auto",textAlign:"center"},children:t(o,{ref:E,children:g})}),t(o,{sx:{display:"flex",alignItems:"center",flex:1,justifyContent:"flex-end"},children:e(o,{sx:{flex:"0 0 auto",display:"flex",alignItems:"center",gap:1},ref:L,children:[w&&t(c,{href:y}),t(d,{})]})})]})})]})}),t(o,{sx:{display:{xs:"none",md:"block"},height:`${I}px`,flexShrink:0}})]})};export{m as ActionBar};
@@ -1 +1 @@
1
- import{jsxs as t,jsx as e}from"react/jsx-runtime";import{useRef as r,useEffect as o}from"react";import{Box as i}from"../../Box.mjs";import a from"./MessageBubble.mjs";import s from"./StreamingBubble.mjs";import m from"./TypingIndicator.mjs";import{latestTraceLabel as n}from"./latestTraceLabel.mjs";const l=({messages:l,isTyping:c,streamingText:h,liveTraceEvents:g,highlightQuery:p,onAbort:f,avatarIcon:u,showActivity:v=!1})=>{const x=r(null);o(()=>{x.current?.scrollIntoView({behavior:"smooth"})},[l,c,h]);const y=(h||"").trim().length>0,b=c&&y,d=c&&!b;return t(i,{sx:{flex:1,minHeight:0,overflowY:"auto",display:"flex",flexDirection:"column",gap:1.5,px:2,py:1.5},children:[l.filter(t=>"user"===t.role||t.content).map(t=>e(a,{message:t,highlightQuery:p,avatarIcon:u,showActivity:v},t.id)),b&&e(s,{text:h||"",traceEvents:g||[],highlightQuery:p,avatarIcon:u,onAbort:f,showActivity:v}),d&&e(m,{avatarIcon:u,traceLabel:g&&g.length>0?n(g):void 0}),e(i,{ref:x})]})};export{l as default};
1
+ import{jsxs as t,jsx as r}from"react/jsx-runtime";import{useRef as e,useEffect as o}from"react";import{Box as n}from"../../Box.mjs";import i from"./MessageBubble.mjs";import l from"./StreamingBubble.mjs";import c from"./TypingIndicator.mjs";import{latestTraceLabel as s}from"./latestTraceLabel.mjs";const a=({messages:a,isTyping:m,streamingText:h,liveTraceEvents:g,highlightQuery:u,onAbort:p,avatarIcon:f,showActivity:v=!1})=>{const b=e(null),x=e(null),y=e(!1),I=e(a.length);o(()=>{const t=a[a.length-1];a.length>I.current&&"user"===t?.role&&(y.current=!1,b.current?.scrollIntoView({behavior:"smooth"})),I.current=a.length},[a]),o(()=>{y.current||b.current?.scrollIntoView({behavior:"smooth"})},[m,h]);const d=(h||"").trim().length>0,j=m&&d,w=m&&!j;return t(n,{ref:x,onScroll:()=>{y.current=!(()=>{const t=x.current;return!t||t.scrollHeight-t.scrollTop-t.clientHeight<80})()},sx:{flex:1,minHeight:0,overflowY:"auto",display:"flex",flexDirection:"column",gap:1.5,px:2,py:1.5},children:[a.filter(t=>"user"===t.role||t.content).map(t=>r(i,{message:t,highlightQuery:u,avatarIcon:f,showActivity:v},t.id)),j&&r(l,{text:h||"",traceEvents:g||[],highlightQuery:u,avatarIcon:f,onAbort:p,showActivity:v}),w&&r(c,{avatarIcon:f,traceLabel:g&&g.length>0?s(g):void 0}),r(n,{ref:b})]})};export{a as default};
@@ -1 +1 @@
1
- import{jsxs as e,jsx as o}from"react/jsx-runtime";import{useState as t,useCallback as r}from"react";import{Caption as n}from"../Typography.mjs";import{Box as i}from"../Box.mjs";import{Stack as a}from"../Stack.mjs";import{ChatHistoryHeader as s}from"./ChatHistoryHeader.mjs";import{ChatHistoryButtonBase as c}from"./ChatHistoryButtonBase.mjs";const l=({conversations:l,activeConversationId:h,onSelectConversation:m,onDeleteConversation:C,onNewConversation:d,onClose:v,onSearchChange:p,title:y="Chat history",emptyText:f="No conversations yet",newChatTitle:g="New chat",deleteConversationTitle:u="Delete conversation",searchPlaceholder:x="Search chat histories",searchDebounceMs:w=300,width:b=288,sx:j,formatMessageCount:S=e=>`${e} messages`})=>{const[T,D]=t(""),A=r(e=>{D(e),p?.(e)},[p]);return e(a,{direction:"column",sx:[{width:b,borderRight:1,borderColor:"divider",minWidth:0},...Array.isArray(j)?j:j?[j]:[]],children:[o(s,{title:y,newChatTitle:g,onNewConversation:d,onClose:v,onSearchChange:A,searchPlaceholder:x,searchDebounceMs:w}),o(i,{component:"nav","aria-label":y,sx:{flex:1,overflowY:"auto",p:1},children:0===l.length?o(n,{sx:{display:"block",textAlign:"center",py:4},children:f}):l.map(e=>{const t=e.id===h;return o(c,{conversation:e,isActive:t,highlightQuery:T,onSelectConversation:m,onDeleteConversation:C,deleteConversationTitle:u,formatMessageCount:S},e.id)})})]})};export{l as ChatHistory};
1
+ import{jsx as e,jsxs as o}from"react/jsx-runtime";import{useState as t,useCallback as n}from"react";import r from"@mui/icons-material/ChevronRight";import{Caption as i}from"../Typography.mjs";import{Box as s}from"../Box.mjs";import{Stack as a}from"../Stack.mjs";import{IconButton as l}from"../IconButton.mjs";import{ChatHistoryHeader as c}from"./ChatHistoryHeader.mjs";import{ChatHistoryButtonBase as h}from"./ChatHistoryButtonBase.mjs";const m=({conversations:m,activeConversationId:d,onSelectConversation:p,onDeleteConversation:C,onNewConversation:f,onClose:x,onSearchChange:v,title:g="Chat history",emptyText:y="No conversations yet",newChatTitle:u="New chat",deleteConversationTitle:w="Delete conversation",searchPlaceholder:j="Search chat histories",searchDebounceMs:S=300,width:T=288,sx:b,formatMessageCount:D=e=>`${e} messages`,isCollapsed:k=!1,onToggleCollapse:A,collapsedWidth:B=40})=>{const[H,M]=t(""),N=n(e=>{M(e),v?.(e)},[v]);return e(s,{sx:{width:k?B:T,minWidth:k?B:0,flexShrink:0,borderRight:1,borderColor:"divider",overflow:"hidden",transition:"width 0.2s ease, min-width 0.2s ease",display:"flex",flexDirection:"column"},children:k?e(s,{sx:{display:"flex",justifyContent:"center",alignItems:"flex-start",pt:1},children:e(l,{onClick:A,title:"Expand history",ariaLabel:"expand-history",children:e(r,{sx:{fontSize:16}})})}):o(a,{direction:"column",sx:[{flex:1,minHeight:0},...Array.isArray(b)?b:b?[b]:[]],children:[e(c,{title:g,newChatTitle:u,onNewConversation:f,onClose:x,onToggleCollapse:A,onSearchChange:N,searchPlaceholder:j,searchDebounceMs:S}),e(s,{component:"nav","aria-label":g,sx:{flex:1,overflowY:"auto",p:1},children:0===m.length?e(i,{sx:{display:"block",textAlign:"center",py:4},children:y}):m.map(o=>{const t=o.id===d;return e(h,{conversation:o,isActive:t,highlightQuery:H,onSelectConversation:p,onDeleteConversation:C,deleteConversationTitle:w,formatMessageCount:D},o.id)})})]})})};export{m as ChatHistory};
@@ -1 +1 @@
1
- import{jsxs as e,jsx as r}from"react/jsx-runtime";import i from"@mui/icons-material/Add";import t from"@mui/icons-material/ChevronLeft";import o from"@mui/icons-material/Clear";import a from"@mui/icons-material/Search";import{InputAdornment as n}from"@mui/material";import{useState as l,useEffect as s}from"react";import{Box as c}from"../Box.mjs";import{H3 as m}from"../Typography.mjs";import{IconButton as d}from"../IconButton.mjs";import{Stack as h}from"../Stack.mjs";import{TextField as p}from"../TextField.mjs";const f=({title:f,newChatTitle:u,onNewConversation:x,onClose:C,onSearchChange:b,searchPlaceholder:g="Search chat histories",searchDebounceMs:w=300})=>{const[S,j]=l("");return s(()=>{if(!b)return;const e=window.setTimeout(()=>{b(S)},w);return()=>window.clearTimeout(e)},[b,w,S]),e(h,{direction:"column",spacing:1,sx:{px:2,py:2,borderBottom:1,borderColor:"divider"},children:[e(h,{direction:"row",spacing:2,sx:{alignItems:"center",justifyContent:"space-between"},children:[r(m,{children:f}),e(h,{direction:"row",sx:{alignItems:"center"},children:[r(d,{onClick:x,title:u,ariaLabel:u,disabled:!x,children:r(i,{sx:{fontSize:16}})}),C&&r(d,{onClick:C,title:"Close history",ariaLabel:"close-history",children:r(t,{sx:{fontSize:16}})})]})]}),e(c,{sx:{display:"flex",alignItems:"center",gap:.75},children:[r(p,{fullWidth:!0,size:"small",value:S,onChange:e=>j(e.target.value),placeholder:g,slotProps:{htmlInput:{"aria-label":"Search chat histories"},input:{startAdornment:r(n,{position:"start",children:r(a,{sx:{fontSize:16,color:"text.disabled"}})})}}}),r(d,{title:"Clear search",ariaLabel:"clear-search",onClick:()=>j(""),disabled:!S,children:r(o,{sx:{fontSize:14}})})]})]})};export{f as ChatHistoryHeader};
1
+ import{jsxs as e,jsx as r}from"react/jsx-runtime";import i from"@mui/icons-material/Add";import o from"@mui/icons-material/ChevronLeft";import t from"@mui/icons-material/Clear";import a from"@mui/icons-material/Search";import{InputAdornment as l}from"@mui/material";import{useState as n,useEffect as s}from"react";import{Box as c}from"../Box.mjs";import{H3 as m}from"../Typography.mjs";import{IconButton as h}from"../IconButton.mjs";import{Stack as d}from"../Stack.mjs";import{TextField as p}from"../TextField.mjs";const f=({title:f,newChatTitle:u,onNewConversation:C,onClose:x,onToggleCollapse:b,onSearchChange:g,searchPlaceholder:S="Search chat histories",searchDebounceMs:w=300})=>{const[y,j]=n("");return s(()=>{if(!g)return;const e=window.setTimeout(()=>{g(y)},w);return()=>window.clearTimeout(e)},[g,w,y]),e(d,{direction:"column",spacing:1,sx:{px:2,py:2,borderBottom:1,borderColor:"divider"},children:[e(d,{direction:"row",spacing:2,sx:{alignItems:"center",justifyContent:"space-between"},children:[r(m,{children:f}),e(d,{direction:"row",sx:{alignItems:"center"},children:[r(h,{onClick:C,title:u,ariaLabel:u,disabled:!C,children:r(i,{sx:{fontSize:16}})}),b&&r(h,{onClick:b,title:"Collapse history",ariaLabel:"collapse-history",children:r(o,{sx:{fontSize:16}})}),x&&r(h,{onClick:x,title:"Close history",ariaLabel:"close-history",children:r(o,{sx:{fontSize:16}})})]})]}),e(c,{sx:{display:"flex",alignItems:"center",gap:.75},children:[r(p,{fullWidth:!0,size:"small",value:y,onChange:e=>j(e.target.value),placeholder:S,slotProps:{htmlInput:{"aria-label":"Search chat histories"},input:{startAdornment:r(l,{position:"start",children:r(a,{sx:{fontSize:16,color:"text.disabled"}})})}}}),r(h,{title:"Clear search",ariaLabel:"clear-search",onClick:()=>j(""),disabled:!y,children:r(t,{sx:{fontSize:14}})})]})]})};export{f as ChatHistoryHeader};
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{Box as o}from"../Box.mjs";import{AiButton as e}from"../AiButton.mjs";const i=({onOpen:i,fabLabel:m,placement:r="bottom-right"})=>t(o,{sx:{position:"fixed",bottom:24,..."bottom-left"===r?{left:24}:{right:24},zIndex:50},children:t(e,{onClick:i,label:m,"aria-label":m})});export{i as FABButton};
1
+ import{jsx as t}from"react/jsx-runtime";import{Box as o}from"../Box.mjs";import{AiButton as m}from"../AiButton.mjs";const e=({onOpen:e,fabLabel:r,placement:i="bottom-right"})=>t(o,{sx:{position:"fixed",bottom:{xs:16,sm:24},..."bottom-left"===i?{left:{xs:16,sm:24}}:{right:{xs:16,sm:24}},zIndex:t=>t.zIndex.appBar+50},children:t(m,{onClick:e,label:r,"aria-label":r})});export{e as FABButton};
@@ -1 +1 @@
1
- import{jsxs as e,Fragment as t,jsx as o}from"react/jsx-runtime";import{FABButton as i}from"./FABButton.mjs";import{GlassPaper as s}from"../GlassPaper.mjs";import n from"./WidgetParts/WidgetBody.mjs";import a from"./WidgetParts/WidgetHeader.mjs";import r from"./WidgetParts/WidgetInput.mjs";const l=["Summarise my latest data","What changed this week?","Show me the key trends","Help me understand my metrics"];function m({title:m="Ask Nexus",subtitle:d="Ready to help",fabLabel:p="Ask Nexus",avatarIcon:c,placeholder:u,emptyTitle:g="Ask Nexus",emptyDescription:h="Ask me anything about your data and I'll help you find answers.",dataSources:f,suggestedPrompts:x=l,isOpen:y,isTyping:b,messages:v,streamingText:T,liveTraceEvents:w,showActivity:A=!1,onOpen:P,onClose:S,onSend:W,onAbort:j,onExpandToFullPage:k,hideFab:I=!1,placement:D="bottom-right"}){if(I)return null;return e(t,{children:[y&&e(s,{elevation:8,sx:{boxShadow:e=>e.shadows[2],borderRadius:3,position:"fixed",bottom:24,..."bottom-left"===D?{left:24}:{right:24},zIndex:50,display:"flex",flexDirection:"column",width:380,maxHeight:"min(520px, 80vh)",overflow:"hidden",p:0,"& > div":{display:"flex",flexDirection:"column",flex:1,minHeight:0}},children:[o(a,{title:m,subtitle:d,onExpandToFullPage:k,onClose:S,avatarIcon:c}),o(n,{avatarIcon:c,isTyping:b,liveTraceEvents:w,messages:v,onAbort:j,showActivity:A,streamingText:T,emptyTitle:g,emptyDescription:h,dataSources:f,suggestedPrompts:x,onSend:W}),o(r,{placeholder:u,isTyping:b,onSend:W})]}),!y&&o(i,{onOpen:P,fabLabel:p,placement:D})]})}export{m as NexusChatWidget};
1
+ import{jsxs as e,Fragment as t,jsx as s}from"react/jsx-runtime";import{FABButton as o}from"./FABButton.mjs";import{GlassPaper as i}from"../GlassPaper.mjs";import a from"./WidgetParts/WidgetBody.mjs";import n from"./WidgetParts/WidgetHeader.mjs";import r from"./WidgetParts/WidgetInput.mjs";const m=["Summarise my latest data","What changed this week?","Show me the key trends","Help me understand my metrics"];function l({title:l="Ask Nexus",subtitle:d="Ready to help",fabLabel:p="Ask Nexus",avatarIcon:c,placeholder:x,emptyTitle:u="Ask Nexus",emptyDescription:g="Ask me anything about your data and I'll help you find answers.",dataSources:h,suggestedPrompts:f=m,isOpen:y,isTyping:b,messages:v,streamingText:T,liveTraceEvents:w,showActivity:A=!1,onOpen:P,onClose:S,onSend:I,onAbort:W,onExpandToFullPage:j,hideFab:k=!1,placement:B="bottom-right"}){if(k)return null;return e(t,{children:[y&&e(i,{elevation:8,sx:{boxShadow:e=>e.shadows[2],borderRadius:3,position:"fixed",bottom:{xs:16,sm:24},..."bottom-left"===B?{left:{xs:16,sm:24}}:{right:{xs:16,sm:24}},zIndex:e=>e.zIndex.appBar+50,display:"flex",flexDirection:"column",width:{xs:"calc(100vw - 32px)",sm:380},maxHeight:{xs:"min(560px, calc(100dvh - 88px))",sm:"min(520px, calc(100dvh - 104px))"},overflow:"hidden",p:0,"& > div":{display:"flex",flexDirection:"column",flex:1,minHeight:0}},children:[s(n,{title:l,subtitle:d,onExpandToFullPage:j,onClose:S,avatarIcon:c}),s(a,{avatarIcon:c,isTyping:b,liveTraceEvents:w,messages:v,onAbort:W,showActivity:A,streamingText:T,emptyTitle:u,emptyDescription:g,dataSources:h,suggestedPrompts:f,onSend:I}),s(r,{placeholder:x,isTyping:b,onSend:I})]}),!y&&s(o,{onOpen:P,fabLabel:p,placement:B})]})}export{l as NexusChatWidget};
@@ -1 +1 @@
1
- const o="1.13.8";export{o as SAGE_NEXUS_UI_VERSION};
1
+ const o="1.13.10";export{o as SAGE_NEXUS_UI_VERSION};
package/dist/index.d.ts CHANGED
@@ -172,6 +172,9 @@ interface ChatHistoryProps {
172
172
  width?: number | string;
173
173
  sx?: BoxProps["sx"];
174
174
  formatMessageCount?: (count: number) => string;
175
+ isCollapsed?: boolean;
176
+ onToggleCollapse?: () => void;
177
+ collapsedWidth?: number;
175
178
  }
176
179
 
177
180
  interface NexusChatDialogProps {
@@ -252,18 +255,19 @@ interface ChatInputProps {
252
255
  }
253
256
  declare const ChatInput: ({ onSend, disabled, placeholder, maxRows, sendButtonTitle, }: ChatInputProps) => react_jsx_runtime.JSX.Element;
254
257
 
255
- declare const ChatHistory: ({ conversations, activeConversationId, onSelectConversation, onDeleteConversation, onNewConversation, onClose, onSearchChange, title, emptyText, newChatTitle, deleteConversationTitle, searchPlaceholder, searchDebounceMs, width, sx, formatMessageCount, }: ChatHistoryProps) => react_jsx_runtime.JSX.Element;
258
+ declare const ChatHistory: ({ conversations, activeConversationId, onSelectConversation, onDeleteConversation, onNewConversation, onClose, onSearchChange, title, emptyText, newChatTitle, deleteConversationTitle, searchPlaceholder, searchDebounceMs, width, sx, formatMessageCount, isCollapsed, onToggleCollapse, collapsedWidth, }: ChatHistoryProps) => react_jsx_runtime.JSX.Element;
256
259
 
257
260
  interface ChatHistoryHeaderProps {
258
261
  title: string;
259
262
  newChatTitle: string;
260
263
  onNewConversation?: () => void;
261
264
  onClose?: () => void;
265
+ onToggleCollapse?: () => void;
262
266
  onSearchChange?: (query: string) => void;
263
267
  searchPlaceholder?: string;
264
268
  searchDebounceMs?: number;
265
269
  }
266
- declare const ChatHistoryHeader: ({ title, newChatTitle, onNewConversation, onClose, onSearchChange, searchPlaceholder, searchDebounceMs, }: ChatHistoryHeaderProps) => react_jsx_runtime.JSX.Element;
270
+ declare const ChatHistoryHeader: ({ title, newChatTitle, onNewConversation, onClose, onToggleCollapse, onSearchChange, searchPlaceholder, searchDebounceMs, }: ChatHistoryHeaderProps) => react_jsx_runtime.JSX.Element;
267
271
 
268
272
  interface ChatHistoryButtonBaseProps {
269
273
  conversation: ChatHistoryConversation;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sage-nexus-ui",
3
- "version": "1.13.8",
3
+ "version": "1.13.10",
4
4
  "description": "Nexus core components",
5
5
  "license": "ISC",
6
6
  "author": "emsmart-sage",