sage-nexus-ui 1.13.22 → 1.14.0
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{
|
|
1
|
+
import{jsx as i,jsxs as e,Fragment as t}from"react/jsx-runtime";import{Box as o}from"../Box.mjs";import{Stack as r}from"../Stack.mjs";import{Caption as m}from"../Typography.mjs";import{GlassPaper as n}from"../GlassPaper.mjs";import{Paper as s}from"../Paper.mjs";import{ChatInput as l}from"./ChatInput.mjs";import"./ChatComponents/ChatAvatar.mjs";import"react";import"../Code.mjs";import"@mui/icons-material/ExpandMore";import"@mui/icons-material/ExpandLess";import"@mui/icons-material/Download";import"@mui/material";import"../../theme/tokens.mjs";import"@mui/icons-material/CheckCircle";import"@mui/icons-material/OpenInNew";import"@mui/material/styles";import"@mui/icons-material/ThumbUp";import"@mui/icons-material/ThumbDown";import"@mui/icons-material/ContentCopy";import"@mui/icons-material/Check";import"@mui/icons-material/StopCircle";import a from"./ChatComponents/SuggestedPrompts.mjs";import{AgentChatWindowHeader as p}from"./AgentChatWindowHeader.mjs";const c=({title:c="Nexus AI Chat",subtitle:d="Your intelligent assistant",showAiChip:h=!0,headerActions:u,body:x,followUpLabel:f="Suggested follow-ups:",followUpPrompts:C,onSelectFollowUp:b,onSend:g,inputDisabled:y=!1,inputPlaceholder:j="Ask me anything...",isStreaming:w=!1,onStop:S,inputActions:A,inputRef:k,isEmpty:D=!1,sx:I})=>{const P=Boolean(C&&C.length>0&&b),R=i(l,{onSend:g,disabled:y,placeholder:j,isStreaming:w,onStop:S,actions:A,inputRef:k});return e(o,{sx:[{display:"flex",flex:1,flexDirection:"column",minWidth:0,minHeight:0,height:"100%"},...Array.isArray(I)?I:I?[I]:[]],children:[i(p,{title:c,subtitle:d,showAiChip:h,actions:u}),D?e(n,{sx:{borderRadius:0,border:"none",flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",px:2,pb:4},children:[x,i(o,{sx:{mt:3,width:"100%",maxWidth:700,minWidth:"min(40vw, 100%)"},children:R})]}):e(t,{children:[i(n,{sx:{borderRadius:0,border:"none",flex:1,display:"flex",flexDirection:"column",overflowY:"scroll"},children:x}),P&&e(r,{direction:{xs:"column",md:"row"},spacing:1,sx:{px:2,py:1,justifyContent:{xs:"center",sm:"flex-end"},alignItems:"center"},children:[i(m,{sx:{display:"block",mb:1},children:f}),i(a,{prompts:C??[],onSelect:b})]}),i(s,{sx:{borderRadius:0,border:"none"},children:i(o,{sx:{p:2,flexShrink:0},children:R})})]})]})};export{c as AgentChatWindow};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as
|
|
1
|
+
import{jsx as e,jsxs as o}from"react/jsx-runtime";import{useState as t}from"react";import r from"@mui/icons-material/Send";import i from"@mui/icons-material/Stop";import{Box as n}from"../Box.mjs";import{IconButton as l}from"../IconButton.mjs";import{Paper as a}from"../Paper.mjs";import{TextField as s}from"../TextField.mjs";import{colours as m}from"../../theme/tokens.mjs";const p=({onSend:p,disabled:d=!1,placeholder:c="Ask about campaigns, competitors, performance…",maxRows:u=5,sendButtonTitle:f="Send message",isStreaming:x=!1,onStop:b,stopButtonTitle:g="Stop generating",actions:h,value:S,onChange:v,inputRef:y})=>{const[j,k]=t(""),z=void 0!==S,R=z?S:j,B=e=>{z?v?.(e):k(e)},I=m.jadeLight,w=m.black,C=()=>{const e=R.trim();e&&!d&&(p(e),B(""))};return e(n,{component:"form",onSubmit:e=>{e.preventDefault(),x||C()},sx:{display:"flex",alignItems:"center",gap:1},children:o(a,{variant:"outlined",sx:{display:"flex",flex:1,alignItems:"center",gap:1,px:1.5,py:.75,borderRadius:2,borderColor:"text.jades"},children:[e(s,{variant:"standard",fullWidth:!0,multiline:!0,minRows:1,maxRows:u,value:R,onChange:e=>B(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),x||C())},placeholder:c,disabled:d,inputRef:y,slotProps:{htmlInput:{"aria-label":c},input:{disableUnderline:!0}},sx:{"& .MuiInputBase-input":{p:.5,fontSize:"0.875rem",color:"text.primary",resize:"none","&::placeholder":{color:"text.disabled",opacity:1}}}}),h,e(l,x&&b?{type:"button",title:g,onClick:b,variant:"filled",size:"small",sx:{flexShrink:0,bgcolor:"error.main",color:"error.contrastText","&:hover":{bgcolor:"error.dark"}},children:e(i,{sx:{fontSize:13}})}:{type:"submit",title:f,disabled:!R.trim()||d,variant:"filled",size:"small",sx:{flexShrink:0,bgcolor:I,color:w,"&:hover":{bgcolor:m.jade},"&.Mui-disabled":{bgcolor:I,color:w,opacity:.4}},children:e(r,{sx:{fontSize:13}})})]})})};export{p as ChatInput};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as o,Fragment as i}from"react/jsx-runtime";import{useState as t}from"react";import{useTheme as n,useMediaQuery as r}from"@mui/material";import
|
|
1
|
+
import{jsx as e,jsxs as o,Fragment as i}from"react/jsx-runtime";import{useState as t}from"react";import{useTheme as n,useMediaQuery as r}from"@mui/material";import l from"@mui/icons-material/CloseFullscreen";import s from"@mui/icons-material/ExpandLess";import a from"@mui/icons-material/ExpandMore";import m from"@mui/icons-material/GridView";import c from"@mui/icons-material/History";import{ChatHistory as p}from"./ChatHistory.mjs";import{ChatInput as d}from"./ChatInput.mjs";import{Dialog as h}from"../Dialog.mjs";import{Box as x}from"../Box.mjs";import{Stack as f}from"../Stack.mjs";import{IconButton as u}from"../IconButton.mjs";import{AiChip as g}from"../AiChip.mjs";import{Caption as v,H1 as C,H2 as b}from"../Typography.mjs";import{AgentChatWindowHeader as w}from"./AgentChatWindowHeader.mjs";import"./ChatComponents/ChatAvatar.mjs";import"../Code.mjs";import"@mui/icons-material/Download";import"../../theme/tokens.mjs";import"@mui/icons-material/CheckCircle";import"@mui/icons-material/OpenInNew";import"@mui/material/styles";import"@mui/icons-material/ThumbUp";import"@mui/icons-material/ThumbDown";import"@mui/icons-material/ContentCopy";import"@mui/icons-material/Check";import"@mui/icons-material/StopCircle";import y from"./ChatComponents/SuggestedPrompts.mjs";import k from"./ChatComponents/MessageList.mjs";import S from"./WidgetParts/WidgetInput.mjs";function j({open:j,onClose:I,title:z="Ask Nexus",subtitle:D="Ready to help",avatarIcon:T,placeholder:A,suggestedPrompts:H=[],showAiChip:W=!0,isTyping:E,messages:F,streamingText:N,liveTraceEvents:B,showActivity:L=!1,onSend:O,onAbort:P,background:U,followUpPrompts:M,followUpLabel:X="Suggested follow-ups:",topOffset:$,conversations:G,activeConversationId:R,onSelectConversation:V,onDeleteConversation:Y,onNewConversation:q}){const J=n(),K=r(J.breakpoints.down("md")),[Q,Z]=t(!0),[_,ee]=t(!1),[oe,ie]=t(!1),te=F.length>0||E,ne=te&&M&&M.length>0,re=!K||Q,le=void 0!==G;return e(h,{open:j,fullScreen:!0,onClose:I,sx:$?{top:`${$}px`}:void 0,children:o(x,{sx:{display:"flex",flexDirection:"column",height:$?`calc(100vh - ${$}px)`:"100vh",overflow:"hidden"},children:[o(x,{sx:{display:"flex",flex:1,minHeight:0,overflow:"hidden"},children:[le&&e(x,{sx:{display:{xs:"none",md:"flex"},flexDirection:"column",minHeight:0,flexShrink:0},children:e(p,{conversations:G,activeConversationId:R??null,onSelectConversation:V??(()=>{}),onDeleteConversation:Y,onNewConversation:q,isCollapsed:oe,onToggleCollapse:()=>ie(e=>!e)})}),o(x,{sx:{display:"flex",flexDirection:"column",flex:1,minHeight:0,overflow:"hidden"},children:[o(x,{sx:{position:"relative",flexShrink:0},children:[e(w,{title:z,subtitle:D,showAiChip:!1,actions:K?e(f,{}):o(f,{direction:"row",spacing:1,sx:{alignItems:"center"},children:[W&&e(g,{}),e(u,{title:"Close full view",size:"small",onClick:I,children:e(l,{sx:{fontSize:16}})})]})}),K&&o(f,{direction:"row",sx:{position:"absolute",top:6,right:4,alignItems:"center"},children:[le&&e(u,{title:"Chat history",size:"small",onClick:()=>ee(e=>!e),children:e(c,{sx:{fontSize:18}})}),e(u,{title:"Close full view",size:"small",onClick:I,children:e(l,{sx:{fontSize:16}})})]})]}),o(x,{sx:{flex:1,minHeight:0,position:"relative",display:"flex",flexDirection:"column",overflow:"hidden"},children:[U&&e(x,{sx:{position:"absolute",inset:0,zIndex:0,overflow:"hidden",pointerEvents:"none"},children:U}),o(x,te?{sx:{position:"relative",zIndex:1,flex:1,minHeight:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:[e(x,{sx:{flex:1,minHeight:0,overflowY:"auto",background:"rgba(211, 211, 211, 0.2)",backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)"},children:e(k,{messages:F,isTyping:E,streamingText:N,liveTraceEvents:B,onAbort:P,avatarIcon:T,showActivity:L})}),ne&&o(x,{sx:{bgcolor:"background.paper",borderTop:"1px solid",borderColor:"divider",px:2,pt:1,pb:re?.5:1,flexShrink:0},children:[o(f,{direction:"row",sx:{alignItems:"center",justifyContent:"space-between",mb:re?.75:0},children:[e(v,{children:X}),K&&e(u,{size:"small",onClick:()=>Z(e=>!e),title:Q?"Collapse suggestions":"Expand suggestions",children:e(Q?a:s,{sx:{fontSize:16}})})]}),re&&e(y,{prompts:M,onSelect:O})]}),e(S,{placeholder:A,isTyping:E,onSend:O})]}:{sx:{position:"relative",zIndex:1,flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",px:2,pb:4,background:"rgba(211, 211, 211, 0.2)",backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)"},children:[o(f,{direction:"column",sx:{gap:2,alignItems:"center",mb:3},children:[e(C,{children:z}),e(b,{sx:{color:"text.secondary"},children:D})]}),e(x,{sx:{width:"100%",maxWidth:700,minWidth:"min(40vw, 100%)"},children:e(d,{onSend:O,disabled:E,placeholder:A,actions:H.length>0?e(u,{title:"Open prompt gallery",ariaLabel:"Open prompt gallery",size:"small",sx:{color:"text.jades"},children:e(m,{sx:{fontSize:18}})}):void 0})})]})]})]})]}),le&&K&&o(i,{children:[_&&e(x,{onClick:()=>ee(!1),sx:{position:"absolute",inset:0,zIndex:9,bgcolor:"rgba(0,0,0,0.45)"}}),e(x,{sx:{position:"absolute",top:0,left:0,bottom:0,width:288,zIndex:10,bgcolor:"background.paper",boxShadow:4,display:"flex",flexDirection:"column",overflow:"hidden",transform:_?"translateX(0)":"translateX(-100%)",transition:"transform 0.25s ease"},children:e(p,{conversations:G,activeConversationId:R??null,onSelectConversation:e=>{V?.(e),ee(!1)},onDeleteConversation:Y,onNewConversation:q?()=>{q(),ee(!1)}:void 0,onClose:()=>ee(!1)})})]})]})})}export{j as NexusChatDialog};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const o="1.
|
|
1
|
+
const o="1.14.0";export{o as SAGE_NEXUS_UI_VERSION};
|
package/dist/index.d.ts
CHANGED
|
@@ -193,9 +193,6 @@ interface NexusChatDialogProps {
|
|
|
193
193
|
subtitle?: string;
|
|
194
194
|
avatarIcon?: React.ReactNode;
|
|
195
195
|
placeholder?: string;
|
|
196
|
-
emptyTitle?: string;
|
|
197
|
-
emptyDescription?: string;
|
|
198
|
-
dataSources?: string[];
|
|
199
196
|
suggestedPrompts?: string[];
|
|
200
197
|
showAiChip?: boolean;
|
|
201
198
|
isTyping: boolean;
|
|
@@ -221,7 +218,7 @@ interface NexusChatDialogProps {
|
|
|
221
218
|
onDeleteConversation?: (id: string) => void | Promise<boolean>;
|
|
222
219
|
onNewConversation?: () => void;
|
|
223
220
|
}
|
|
224
|
-
declare function NexusChatDialog({ open, onClose, title, subtitle, avatarIcon, placeholder,
|
|
221
|
+
declare function NexusChatDialog({ open, onClose, title, subtitle, avatarIcon, placeholder, suggestedPrompts, showAiChip, isTyping, messages, streamingText, liveTraceEvents, showActivity, onSend, onAbort, background, followUpPrompts, followUpLabel, topOffset, conversations, activeConversationId, onSelectConversation, onDeleteConversation, onNewConversation, }: NexusChatDialogProps): react_jsx_runtime.JSX.Element;
|
|
225
222
|
|
|
226
223
|
interface FABButtonProps {
|
|
227
224
|
onOpen: () => void;
|
|
@@ -246,9 +243,10 @@ interface AgentChatWindowProps {
|
|
|
246
243
|
onStop?: () => void;
|
|
247
244
|
inputActions?: React.ReactNode;
|
|
248
245
|
inputRef?: React.Ref<HTMLTextAreaElement>;
|
|
246
|
+
isEmpty?: boolean;
|
|
249
247
|
sx?: SxProps<Theme>;
|
|
250
248
|
}
|
|
251
|
-
declare const AgentChatWindow: ({ title, subtitle, showAiChip, headerActions, body, followUpLabel, followUpPrompts, onSelectFollowUp, onSend, inputDisabled, inputPlaceholder, isStreaming, onStop, inputActions, inputRef, sx, }: AgentChatWindowProps) => react_jsx_runtime.JSX.Element;
|
|
249
|
+
declare const AgentChatWindow: ({ title, subtitle, showAiChip, headerActions, body, followUpLabel, followUpPrompts, onSelectFollowUp, onSend, inputDisabled, inputPlaceholder, isStreaming, onStop, inputActions, inputRef, isEmpty, sx, }: AgentChatWindowProps) => react_jsx_runtime.JSX.Element;
|
|
252
250
|
|
|
253
251
|
interface AgentChatWindowHeaderProps {
|
|
254
252
|
title?: string;
|