it-data-nexus-ui-library 2.0.2 → 2.1.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.
@@ -0,0 +1 @@
1
+ import{jsx as r}from"react/jsx-runtime";import{ButtonBase as i}from"@mui/material";const t=({sx:t,...o})=>r(i,{sx:[{font:"inherit",textAlign:"inherit",color:"inherit"},...Array.isArray(t)?t:t?[t]:[]],...o});export{t as GhostButton};
@@ -1 +1 @@
1
- import{jsx as t,jsxs as e}from"react/jsx-runtime";import{useState as r}from"react";import i from"./SourceLink.mjs";import{Body1 as o,Body2 as s,Caption as n}from"../../Typography.mjs";import{ButtonBase as m}from"../../Buttons/ButtonBase.mjs";import{Chip as l}from"../../_Primitives/Chip.mjs";import{Code as a}from"../../Code.mjs";import{Stack as c}from"../../_Primitives/Stack.mjs";const p=({activity:p})=>{const[u,d]=r(!1),h=p.sources||[],f=u?h:h.slice(0,3),x=Math.max(0,h.length-3);return t(c,{direction:"row",spacing:1,children:e(c,{sx:{flex:1,minWidth:0},children:[e(c,{direction:"row",spacing:.75,sx:{alignItems:"center",flexWrap:"wrap"},children:[t(o,{children:p.title}),p.status&&t(l,{label:p.status,size:"small"})]}),p.text&&t(s,{children:p.text}),"kb"===p.type&&h.length>0&&e(c,{direction:"row",spacing:.5,sx:{flexWrap:"wrap",mt:.25},children:[f.map((e,r)=>t(i,{source:e.source},r)),x>0&&t(m,{onClick:()=>d(t=>!t),sx:{color:"primary.main"},children:u?"Show less":`+${x} more`})]}),"tool"===p.type&&p.toolName&&t(a,{sx:{display:"inline-flex",alignSelf:"flex-start"},children:p.toolName}),"model"===p.type&&(p.inputTokens||p.outputTokens)&&e(n,{children:[p.inputTokens," in / ",p.outputTokens," out"]})]})})};export{p as default};
1
+ import{jsx as t,jsxs as e}from"react/jsx-runtime";import{useState as i}from"react";import r from"./SourceLink.mjs";import{Body1 as o,Body2 as s,Caption as n}from"../../Typography.mjs";import{GhostButton as m}from"../../Buttons/GhostButton.mjs";import{Chip as l}from"../../_Primitives/Chip.mjs";import{Code as a}from"../../Code.mjs";import{Stack as c}from"../../_Primitives/Stack.mjs";const p=({activity:p})=>{const[h,u]=i(!1),d=p.sources||[],f=h?d:d.slice(0,3),x=Math.max(0,d.length-3);return t(c,{direction:"row",spacing:1,children:e(c,{sx:{flex:1,minWidth:0},children:[e(c,{direction:"row",spacing:.75,sx:{alignItems:"center",flexWrap:"wrap"},children:[t(o,{children:p.title}),p.status&&t(l,{label:p.status,size:"small"})]}),p.text&&t(s,{children:p.text}),"kb"===p.type&&d.length>0&&e(c,{direction:"row",spacing:.5,sx:{flexWrap:"wrap",mt:.25},children:[f.map((e,i)=>t(r,{source:e.source},i)),x>0&&t(m,{onClick:()=>u(t=>!t),sx:{color:"primary.main",fontSize:"inherit"},children:h?"Show less":`+${x} more`})]}),"tool"===p.type&&p.toolName&&t(a,{sx:{display:"inline-flex",alignSelf:"flex-start"},children:p.toolName}),"model"===p.type&&(p.inputTokens||p.outputTokens)&&e(n,{children:[p.inputTokens," in / ",p.outputTokens," out"]})]})})};export{p as default};
@@ -1 +1 @@
1
- import{jsxs as t,jsx as i}from"react/jsx-runtime";import{useState as e,useMemo as r}from"react";import o from"./AgentActivityHeader.mjs";import m from"./ActivityCards.mjs";import a from"./TokenSummary.mjs";import{parseTraceEvents as s,calculateActivitySummary as n}from"./activityModel.mjs";import{Paper as p}from"../../_Primitives/Paper.mjs";import{Stack as c}from"../../_Primitives/Stack.mjs";const l=({isStreaming:l,traceEvents:d,defaultExpanded:u=!1,latency:f,activitySummary:v,compact:k=!1})=>{const[S,g]=e(u),y=r(()=>s(d),[d]),h=r(()=>n(y),[y]),x=v||h;return 0!==d.length||l?t(p,{variant:"outlined",children:[i(o,{isStreaming:l,thinkingSteps:h.thinkingSteps,kbSearches:h.kbSearches,toolCalls:h.toolCalls,isExpanded:S,setIsExpanded:g}),S&&t(c,{spacing:1.5,sx:{borderTop:1,borderColor:"divider",px:1.5,py:1.25,mt:1,maxHeight:256,overflowY:"auto"},children:[i(m,{activities:y,compact:k}),i(a,{isStreaming:l,inputTokens:x.inputTokens,outputTokens:x.outputTokens,latency:f})]})]}):null};export{l as default};
1
+ import{jsxs as t,jsx as e}from"react/jsx-runtime";import{useState as i,useMemo as n}from"react";import o from"./AgentActivityHeader.mjs";import s from"./ActivityCards.mjs";import r from"./TokenSummary.mjs";import{parseTraceEvents as a,calculateActivitySummary as m}from"./activityModel.mjs";import{Stack as p}from"../../_Primitives/Stack.mjs";const c=({isStreaming:c,traceEvents:l,defaultExpanded:d=!1,latency:g,activitySummary:u,compact:h=!1})=>{const[f,S]=i(d),k=n(()=>a(l),[l]),y=n(()=>m(k),[k]),v=u||y;return 0!==l.length||c?t(p,{spacing:0,children:[e("span",{role:"status",style:{position:"absolute",width:1,height:1,overflow:"hidden",clip:"rect(0,0,0,0)",whiteSpace:"nowrap"},children:c?"Agent is generating a response":k.length>0?"Response generated":""}),e(o,{isStreaming:c,thinkingSteps:y.thinkingSteps,kbSearches:y.kbSearches,toolCalls:y.toolCalls,isExpanded:f,setIsExpanded:S}),f&&t(p,{spacing:1.5,sx:{px:1.5,py:1.25,mt:.5,maxHeight:256,overflowY:"auto"},children:[e(s,{activities:k,compact:h}),e(r,{isStreaming:c,inputTokens:v.inputTokens,outputTokens:v.outputTokens,latency:g})]})]}):null};export{c as default};
@@ -1 +1 @@
1
- import{jsx as i,jsxs as e}from"react/jsx-runtime";import{Body1 as r}from"../../Typography.mjs";import{Box as o}from"../../_Primitives/Box.mjs";import{ButtonBase as t}from"../../Buttons/ButtonBase.mjs";import{Chip as s}from"../../_Primitives/Chip.mjs";import{LoadingSpinnerNexus as n}from"../../LoadingSpinnerNexus.mjs";import{Stack as m}from"../../_Primitives/Stack.mjs";import{colours as l}from"../../../theme/tokens.mjs";import a from"@mui/icons-material/CheckCircle";import c from"@mui/icons-material/ExpandMore";import d from"@mui/icons-material/ExpandLess";const p=({isStreaming:p,thinkingSteps:x,kbSearches:f,toolCalls:h,isExpanded:g,setIsExpanded:u})=>{const j=l.jadeLight;return i(t,{onClick:()=>u(i=>!i),sx:{width:"100%"},children:e(m,{direction:"column",spacing:1,sx:{width:"100%"},children:[e(m,{direction:"row",sx:{justifyContent:"space-between"},children:[e(m,{direction:"row",spacing:1,sx:{alignItems:"center"},children:[p?i(n,{variant:"small"}):i(a,{sx:{color:j,fontSize:16}}),i(r,{children:p?"Agent is working...":"Response generated"})]}),i(o,g?{sx:{display:"inline-flex",color:"text.secondary"},children:i(d,{sx:{fontSize:14}})}:{sx:{display:"inline-flex",color:"text.secondary"},children:i(c,{sx:{fontSize:14}})})]}),e(m,{direction:"row",spacing:1,children:[x>0&&i(s,{size:"small",label:`${x} thinking`}),f>0&&i(s,{size:"small",label:`${f} KB`}),h>0&&i(s,{size:"small",label:`${h} tools`})]})]})})};export{p as default};
1
+ import{jsxs as i,jsx as e}from"react/jsx-runtime";import{Body1 as r}from"../../Typography.mjs";import{GhostButton as t}from"../../Buttons/GhostButton.mjs";import{Chip as o}from"../../_Primitives/Chip.mjs";import{CircularProgress as a}from"../../_Primitives/CircularProgress.mjs";import{Stack as s}from"../../_Primitives/Stack.mjs";import{colours as n}from"../../../theme/tokens.mjs";import m from"@mui/icons-material/CheckCircle";import l from"@mui/icons-material/ExpandMore";import c from"@mui/icons-material/ExpandLess";const d=({isStreaming:d,thinkingSteps:p,kbSearches:h,toolCalls:x,isExpanded:g,setIsExpanded:f})=>{const u=n.jadeLight;return i(t,{onClick:()=>f(i=>!i),"aria-expanded":g,"aria-label":g?"Collapse agent activity":"Expand agent activity",sx:{display:"flex",alignItems:"center",gap:1,width:"100%",minHeight:32,px:0,borderRadius:1,color:"text.secondary","&:hover":{color:"text.primary"}},children:[i(s,{direction:"row",spacing:1,sx:{alignItems:"center",flex:1,minWidth:0},children:[e(s,{direction:"row",spacing:1,sx:{alignItems:"center",color:d?"primary.main":"text.secondary"},children:d?e(a,{size:14,"aria-hidden":"true"}):e(m,{sx:{color:u,fontSize:16},"aria-hidden":"true"})}),e(r,{children:d?"Agent is working...":"Response generated"}),i(s,{direction:"row",spacing:.5,sx:{ml:"auto",pr:.5},children:[p>0&&e(o,{size:"small",label:`${p} thinking`}),h>0&&e(o,{size:"small",label:`${h} KB`}),x>0&&e(o,{size:"small",label:`${x} tools`})]})]}),e(g?c:l,{sx:{fontSize:14,color:"text.secondary"},"aria-hidden":"true"})]})};export{d as default};
@@ -1 +1 @@
1
- import{jsx as i,jsxs as e,Fragment as t}from"react/jsx-runtime";import{Box as r}from"../_Primitives/Box.mjs";import{Stack as o}from"../_Primitives/Stack.mjs";import{Caption as m}from"../Typography.mjs";import{Paper as n}from"../_Primitives/Paper.mjs";import{ChatInput as s}from"./ChatInput.mjs";import"react";import"@mui/icons-material/Check";import"@mui/icons-material/ContentCopy";import"@mui/icons-material/Download";import"@mui/material";import"@mui/material/styles";import"../../theme/tokens.mjs";import"./ChatComponents/ChatAvatar.mjs";import"react-markdown";import"remark-gfm";import"../Code.mjs";import"@mui/icons-material/ExpandMore";import"@mui/icons-material/ExpandLess";import"@mui/icons-material/CheckCircle";import"@mui/icons-material/OpenInNew";import"@mui/icons-material/ThumbUp";import"@mui/icons-material/ThumbDown";import"@mui/icons-material/StopCircle";import l from"./ChatComponents/SuggestedPrompts.mjs";import{AgentChatWindowHeader as a}from"./AgentChatWindowHeader.mjs";const p=({title:p="Nexus AI Chat",subtitle:c="Your intelligent assistant",showAiChip:d=!0,headerActions:u,body:h,followUpLabel:x="Suggested follow-ups:",followUpPrompts:f,onSelectFollowUp:y,onSend:C,inputDisabled:b=!1,inputPlaceholder:g="Ask me anything...",isStreaming:w=!1,onStop:A,inputActions:S,inputRef:j,isEmpty:k=!1,inputSx:P,sx:D})=>{const v=Boolean(f&&f.length>0&&y),I=i(s,{onSend:C,disabled:b,placeholder:g,isStreaming:w,onStop:A,actions:S,inputRef:j});return e(r,{sx:[{display:"flex",flex:1,flexDirection:"column",minWidth:0,minHeight:0,height:"100%"},...Array.isArray(D)?D:D?[D]:[]],children:[i(a,{title:p,subtitle:c,showAiChip:d,actions:u}),k?e(n,{sx:{borderRadius:0,border:"none",flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",px:2,pb:4},children:[h,i(r,{sx:[{mt:3,width:"100%"},...Array.isArray(P)?P:P?[P]:[]],children:I})]}):e(t,{children:[i(n,{sx:{borderRadius:0,border:"none",flex:1,display:"flex",flexDirection:"column",overflowY:"scroll"},children:h}),v&&e(o,{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:x}),i(l,{prompts:f??[],onSelect:y})]}),i(n,{sx:{borderRadius:0,border:"none"},children:i(r,{sx:[{p:2,flexShrink:0},...Array.isArray(P)?P:P?[P]:[]],children:I})})]})]})};export{p as AgentChatWindow};
1
+ import{jsx as i,jsxs as e,Fragment as t}from"react/jsx-runtime";import{Box as r}from"../_Primitives/Box.mjs";import{Stack as o}from"../_Primitives/Stack.mjs";import{Caption as m}from"../Typography.mjs";import{Paper as n}from"../_Primitives/Paper.mjs";import{ChatInput as s}from"./ChatInput.mjs";import"react";import"@mui/icons-material/Check";import"@mui/icons-material/ContentCopy";import"@mui/icons-material/Download";import"@mui/material";import"@mui/material/styles";import"../../theme/tokens.mjs";import"./ChatComponents/ChatAvatar.mjs";import"react-markdown";import"remark-gfm";import"../Code.mjs";import"@mui/icons-material/ExpandMore";import"@mui/icons-material/ExpandLess";import"@mui/icons-material/CheckCircle";import"@mui/icons-material/OpenInNew";import"@mui/icons-material/ThumbUp";import"@mui/icons-material/ThumbDown";import l from"./ChatComponents/SuggestedPrompts.mjs";import{AgentChatWindowHeader as a}from"./AgentChatWindowHeader.mjs";const p=({title:p="Nexus AI Chat",subtitle:c="Your intelligent assistant",showAiChip:d=!0,headerActions:u,body:h,followUpLabel:x="Suggested follow-ups:",followUpPrompts:f,onSelectFollowUp:y,onSend:C,inputDisabled:b=!1,inputPlaceholder:g="Ask me anything...",isStreaming:w=!1,onStop:A,inputActions:j,inputRef:S,isEmpty:k=!1,inputSx:P,sx:D})=>{const v=Boolean(f&&f.length>0&&y),I=i(s,{onSend:C,disabled:b,placeholder:g,isStreaming:w,onStop:A,actions:j,inputRef:S});return e(r,{sx:[{display:"flex",flex:1,flexDirection:"column",minWidth:0,minHeight:0,height:"100%"},...Array.isArray(D)?D:D?[D]:[]],children:[i(a,{title:p,subtitle:c,showAiChip:d,actions:u}),k?e(n,{sx:{borderRadius:0,border:"none",flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",px:2,pb:4},children:[h,i(r,{sx:[{mt:3,width:"100%"},...Array.isArray(P)?P:P?[P]:[]],children:I})]}):e(t,{children:[i(n,{sx:{borderRadius:0,border:"none",flex:1,display:"flex",flexDirection:"column",overflowY:"scroll"},children:h}),v&&e(o,{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:x}),i(l,{prompts:f??[],onSelect:y})]}),i(n,{sx:{borderRadius:0,border:"none"},children:i(r,{sx:[{p:2,flexShrink:0},...Array.isArray(P)?P:P?[P]:[]],children:I})})]})]})};export{p as AgentChatWindow};
@@ -1 +1 @@
1
- import{jsx as r}from"react/jsx-runtime";import{isValidElement as e,cloneElement as o}from"react";import i from"react-markdown";import n from"remark-gfm";import{Box as t}from"../../_Primitives/Box.mjs";import{Paper as l}from"../../_Primitives/Paper.mjs";import{ChatWindowBody as c,H4 as d,H3 as m}from"../../Typography.mjs";import{Code as h}from"../../Code.mjs";const p=(e,o)=>{const i=o?.trim();if(!i)return e;const n=new RegExp(`(${(r=>r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))(i)})`,"ig");return e.split(n).map((e,o)=>{if(!e)return null;return e.toLowerCase()===i.toLowerCase()?r(t,{component:"mark",sx:{backgroundColor:r=>"dark"===r.palette.mode?"rgba(255, 214, 10, 0.35)":"rgba(255, 214, 10, 0.45)",color:"inherit",borderRadius:.5,px:.25,py:0},children:e},`${e}-${o}`):e})},s=(r,i)=>{if("string"==typeof r)return p(r,i);if("number"==typeof r)return p(r.toString(),i);if(Array.isArray(r))return r.map(r=>s(r,i));if(e(r)){const e=r.props.children;return void 0===e?r:o(r,void 0,s(e,i))}return r},a={p:({children:e})=>r(c,{sx:{mb:1,"&:last-child":{mb:0}},children:e}),li:({children:e})=>r(c,{component:"li",children:e}),strong:({children:e})=>r(t,{component:"strong",sx:{fontWeight:700,fontSize:"inherit",lineHeight:"inherit"},children:e}),em:({children:e})=>r(t,{component:"em",sx:{fontStyle:"italic",fontSize:"inherit",lineHeight:"inherit"},children:e})},g=({content:e,highlightQuery:o,components:p})=>{const a=r=>s(r,o),g={p:({children:e})=>r(c,{sx:{mb:1,"&:last-child":{mb:0}},children:a(e)}),strong:({children:e})=>r(t,{component:"strong",sx:{fontWeight:700},children:a(e)}),em:({children:e})=>r(t,{component:"em",sx:{fontStyle:"italic"},children:a(e)}),ul:({children:e})=>r(t,{component:"ul",sx:{pl:2.5,my:2,display:"grid",gap:.5,listStyleType:"disc"},children:a(e)}),ol:({children:e})=>r(t,{component:"ol",sx:{pl:2.5,my:2,display:"grid",gap:.5,listStyleType:"decimal"},children:a(e)}),li:({children:e})=>r(c,{component:"li",children:a(e)}),h1:({children:e})=>r(m,{sx:{mb:1,mt:.5},children:a(e)}),h2:({children:e})=>r(d,{sx:{mb:.5,mt:.5},children:a(e)}),h3:({children:e})=>r(d,{sx:{mb:.5,mt:.5},children:a(e)}),code:({children:e})=>r(h,{children:a(e)}),pre:({children:e})=>r(l,{component:"pre",variant:"outlined",sx:{my:2,p:1.5,overflowX:"auto",fontFamily:'"SFMono-Regular", "Consolas", "Liberation Mono", "Menlo", monospace',fontSize:"0.75rem",lineHeight:1.5,bgcolor:"action.hover"},children:a(e)}),hr:()=>r(t,{component:"hr",sx:{my:3,border:0,borderTop:1,borderColor:"divider"}}),table:({children:e})=>r(t,{component:"table",sx:{width:"100%",borderCollapse:"collapse",my:1},children:e}),th:({children:e})=>r(t,{component:"th",sx:{border:"1px solid",borderColor:"divider",px:1.25,py:.75,textAlign:"left",bgcolor:"action.hover",fontWeight:600},children:e}),td:({children:e})=>r(t,{component:"td",sx:{border:"1px solid",borderColor:"divider",px:1.25,py:.75,textAlign:"left"},children:e})};return r(i,{remarkPlugins:[n],components:{...g,...p},children:e})};export{a as chatWindowMarkdownComponents,g as default};
1
+ import{jsx as r}from"react/jsx-runtime";import{isValidElement as e,cloneElement as o}from"react";import i from"react-markdown";import n from"remark-gfm";import{Box as t}from"../../_Primitives/Box.mjs";import{Paper as l}from"../../_Primitives/Paper.mjs";import{ChatWindowBody as c,H4 as d,H3 as m}from"../../Typography.mjs";import{Code as h}from"../../Code.mjs";const p=(e,o)=>{const i=o?.trim();if(!i)return e;const n=new RegExp(`(${(r=>r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))(i)})`,"ig");return e.split(n).map((e,o)=>{if(!e)return null;return e.toLowerCase()===i.toLowerCase()?r(t,{component:"mark",sx:{backgroundColor:r=>"dark"===r.palette.mode?"rgba(255, 214, 10, 0.35)":"rgba(255, 214, 10, 0.45)",color:"inherit",borderRadius:.5,px:.25,py:0},children:e},`${e}-${o}`):e})},s=(r,i)=>{if("string"==typeof r)return p(r,i);if("number"==typeof r)return p(r.toString(),i);if(Array.isArray(r))return r.map(r=>s(r,i));if(e(r)){const e=r.props.children;return void 0===e?r:o(r,void 0,s(e,i))}return r},a={p:({children:e})=>r(c,{sx:{mb:1,"&:last-child":{mb:0}},children:e}),li:({children:e})=>r(c,{component:"li",children:e}),strong:({children:e})=>r(t,{component:"strong",sx:{fontWeight:700,fontSize:"inherit",lineHeight:"inherit"},children:e}),em:({children:e})=>r(t,{component:"em",sx:{fontStyle:"italic",fontSize:"inherit",lineHeight:"inherit"},children:e})},f=({content:e,highlightQuery:o,compact:p=!1,components:a})=>{const f=r=>s(r,o),g=p?"0.875rem":void 0,x={p:({children:e})=>r(c,{sx:{mb:1,"&:last-child":{mb:0},fontSize:g},children:f(e)}),strong:({children:e})=>r(t,{component:"strong",sx:{fontWeight:700},children:f(e)}),em:({children:e})=>r(t,{component:"em",sx:{fontStyle:"italic"},children:f(e)}),ul:({children:e})=>r(t,{component:"ul",sx:{pl:2.5,my:2,display:"grid",gap:.5,listStyleType:"disc"},children:f(e)}),ol:({children:e})=>r(t,{component:"ol",sx:{pl:2.5,my:2,display:"grid",gap:.5,listStyleType:"decimal"},children:f(e)}),li:({children:e})=>r(c,{component:"li",sx:{fontSize:g},children:f(e)}),h1:({children:e})=>r(m,{sx:{mb:1,mt:.5},children:f(e)}),h2:({children:e})=>r(d,{sx:{mb:.5,mt:.5},children:f(e)}),h3:({children:e})=>r(d,{sx:{mb:.5,mt:.5},children:f(e)}),code:({children:e})=>r(h,{children:f(e)}),pre:({children:e})=>r(l,{component:"pre",variant:"outlined",sx:{my:2,p:1.5,overflowX:"auto",fontFamily:'"SFMono-Regular", "Consolas", "Liberation Mono", "Menlo", monospace',fontSize:"0.75rem",lineHeight:1.5,bgcolor:"action.hover"},children:f(e)}),hr:()=>r(t,{component:"hr",sx:{my:3,border:0,borderTop:1,borderColor:"divider"}}),table:({children:e})=>r(t,{component:"table",sx:{width:"100%",borderCollapse:"collapse",my:1},children:e}),th:({children:e})=>r(t,{component:"th",sx:{border:"1px solid",borderColor:"divider",px:1.25,py:.75,textAlign:"left",bgcolor:"action.hover",fontWeight:600},children:e}),td:({children:e})=>r(t,{component:"td",sx:{border:"1px solid",borderColor:"divider",px:1.25,py:.75,textAlign:"left"},children:e})};return r(i,{remarkPlugins:[n],components:{...x,...a},children:e})};export{a as chatWindowMarkdownComponents,f as default};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as o}from"react/jsx-runtime";import{useState as r}from"react";import t from"@mui/icons-material/ExpandMore";import n from"@mui/icons-material/ExpandLess";import i from"@mui/icons-material/Download";import a from"../AgentActivity/AgentActivity.mjs";import{Box as l}from"../../_Primitives/Box.mjs";import{Stack as s}from"../../_Primitives/Stack.mjs";import{IconButton as c}from"../../Buttons/IconButton.mjs";import{SecondaryButton as m}from"../../Buttons/SecondaryButton.mjs";import d from"./MarkdownContent.mjs";import p from"./MessageFeedbackBar.mjs";import{ChatWindowBody as f}from"../../Typography.mjs";import{colours as u}from"../../../theme/tokens.mjs";const g=({block:i})=>{const[a,s]=r(!1),m=i.language?.trim()||"text",d=i.content||"";if(!d.trim())return null;const p=Boolean(i.title);return o(l,{sx:{border:"1px solid",borderColor:"divider",borderRadius:1.5,overflow:"hidden",mb:1,"&:last-child":{mb:0}},children:[p&&o(l,{onClick:()=>s(e=>!e),sx:{display:"flex",justifyContent:"space-between",alignItems:"center",px:1.5,py:.75,bgcolor:"action.hover",borderBottom:a?"1px solid":"none",borderColor:"divider",cursor:"pointer",userSelect:"none"},children:[e(l,{component:"span",sx:{fontSize:"0.8rem",fontWeight:600,color:"text.secondary"},children:i.title}),e(c,{size:"small",ariaLabel:a?"Collapse":"Expand",children:e(a?n:t,{sx:{fontSize:16}})})]}),(!p||a)&&e(l,{component:"pre",sx:{m:0,p:1.5,overflowX:"auto",whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:"0.8125rem",fontFamily:'"SFMono-Regular", "Consolas", "Liberation Mono", "Menlo", monospace',lineHeight:1.5,bgcolor:"action.hover"},children:e(l,{component:"code",className:`language-${m}`,children:d})})]})},h=({file:o,onDownloadFile:t})=>{const[n,a]=r(!1);return e(m,{size:"small",startIcon:e(i,{}),onClick:async()=>{if(t){a(!0);try{await t(o)}finally{a(!1)}}},disabled:n||!t,children:n?"Preparing…":o.downloadLabel||o.displayName||"Download file"})},x=(o,r)=>{const t=r?.trim();if(!t)return o;const n=new RegExp(`(${(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))(t)})`,"ig");return o.split(n).map((o,r)=>{if(!o)return null;return o.toLowerCase()===t.toLowerCase()?e(l,{component:"mark",sx:{backgroundColor:e=>"dark"===e.palette.mode?"rgba(255, 214, 10, 0.35)":"rgba(255, 214, 10, 0.45)",color:"inherit",borderRadius:.5,px:.25,py:0},children:o},`${o}-${r}`):o})},b=({message:r,highlightQuery:t,showActivity:n=!1,onFeedback:i,onDownloadFile:c,contentRenderer:m,markdownComponents:b})=>{const y="user"===r.role,w=!y&&r.codeBlocks&&r.codeBlocks.length>0,k=!y&&r.files&&r.files.length>0;return e(l,{sx:{display:"flex",justifyContent:y?"flex-end":"flex-start"},children:o(l,{sx:{display:"flex",flexDirection:"column",gap:1,minWidth:0,...y?{}:{flex:1}},children:[o(l,{sx:{borderRadius:y?"1rem 0.25rem 1rem 1rem":"0.25rem 1rem 1rem 1rem",px:1.75,py:1.25,bgcolor:y?u.jadeLight:"background.default",color:y?u.black:"text.primary",border:"none"},children:[w&&e(s,{spacing:0,sx:{mb:1.5},children:r.codeBlocks.map((o,r)=>e(g,{block:o},r))}),y?e(f,{sx:{whiteSpace:"pre-wrap"},children:x(r.content,t)}):e("div",{className:"message-content",children:m?m(r.content):e(d,{content:r.content,highlightQuery:t,components:b})}),k&&e(s,{direction:"row",spacing:1,sx:{mt:1.5,flexWrap:"wrap"},children:r.files.map((o,r)=>e(h,{file:o,onDownloadFile:c},`${o.bucket}-${o.key}-${r}`))})]}),!y&&n&&r.traceEvents&&r.traceEvents.length>0&&e(a,{isStreaming:!1,traceEvents:r.traceEvents,latency:r.latency,activitySummary:r.activitySummary,compact:!0}),!y&&i&&e(p,{message:r,onFeedback:i})]})})};export{b as default};
1
+ import{jsx as e,jsxs as o}from"react/jsx-runtime";import{useState as r}from"react";import t from"@mui/icons-material/ExpandMore";import n from"@mui/icons-material/ExpandLess";import i from"@mui/icons-material/Download";import a from"../AgentActivity/AgentActivity.mjs";import{Box as l}from"../../_Primitives/Box.mjs";import{Stack as c}from"../../_Primitives/Stack.mjs";import{GhostButton as s}from"../../Buttons/GhostButton.mjs";import{SecondaryButton as m}from"../../Buttons/SecondaryButton.mjs";import d from"./MarkdownContent.mjs";import p from"./MessageFeedbackBar.mjs";import{ChatWindowBody as f}from"../../Typography.mjs";import{colours as h}from"../../../theme/tokens.mjs";const g=({block:i})=>{const[a,c]=r(!1),m=i.language?.trim()||"text",d=i.content||"";if(!d.trim())return null;const p=Boolean(i.title);return o(l,{sx:{border:"1px solid",borderColor:"divider",borderRadius:1.5,overflow:"hidden",mb:1,"&:last-child":{mb:0}},children:[p&&o(s,{onClick:()=>c(e=>!e),"aria-expanded":a,sx:{display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%",px:1.5,py:.75,bgcolor:"action.hover",borderBottom:a?"1px solid":"none",borderColor:"divider"},children:[e(l,{component:"span",sx:{fontSize:"0.8rem",fontWeight:600,color:"text.secondary"},children:i.title}),e(l,{component:"span","aria-hidden":"true",sx:{display:"inline-flex",alignItems:"center",color:"text.secondary"},children:e(a?n:t,{sx:{fontSize:16}})})]}),(!p||a)&&e(l,{component:"pre",sx:{m:0,p:1.5,overflowX:"auto",whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:"0.8125rem",fontFamily:'"SFMono-Regular", "Consolas", "Liberation Mono", "Menlo", monospace',lineHeight:1.5,bgcolor:"action.hover"},children:e(l,{component:"code",className:`language-${m}`,children:d})})]})},u=({file:o,onDownloadFile:t})=>{const[n,a]=r(!1);return e(m,{size:"small",startIcon:e(i,{}),onClick:async()=>{if(t){a(!0);try{await t(o)}finally{a(!1)}}},disabled:n||!t,children:n?"Preparing…":o.downloadLabel||o.displayName||"Download file"})},x=(o,r)=>{const t=r?.trim();if(!t)return o;const n=new RegExp(`(${(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))(t)})`,"ig");return o.split(n).map((o,r)=>{if(!o)return null;return o.toLowerCase()===t.toLowerCase()?e(l,{component:"mark",sx:{backgroundColor:e=>"dark"===e.palette.mode?"rgba(255, 214, 10, 0.35)":"rgba(255, 214, 10, 0.45)",color:"inherit",borderRadius:.5,px:.25,py:0},children:o},`${o}-${r}`):o})},y=({message:r,highlightQuery:t,showActivity:n=!1,onFeedback:i,onDownloadFile:s,contentRenderer:m,markdownComponents:y,compact:b=!1})=>{const w="user"===r.role,k=!w&&r.codeBlocks&&r.codeBlocks.length>0,v=!w&&r.files&&r.files.length>0;return e(l,{sx:{display:"flex",justifyContent:w?"flex-end":"flex-start"},children:o(l,{sx:{display:"flex",flexDirection:"column",gap:1,minWidth:0,...w?{}:{flex:1}},children:[!w&&n&&r.traceEvents&&r.traceEvents.length>0&&e(a,{isStreaming:!1,traceEvents:r.traceEvents,latency:r.latency,activitySummary:r.activitySummary,compact:!0}),o(l,{sx:{borderRadius:w?"1rem 0.25rem 1rem 1rem":"0.25rem 1rem 1rem 1rem",px:1.75,py:1.25,bgcolor:w?h.jadeLight:"background.default",color:w?h.black:"text.primary",border:"none"},children:[k&&e(c,{spacing:0,sx:{mb:1.5},children:r.codeBlocks.map((o,r)=>e(g,{block:o},r))}),w?e(f,{sx:{whiteSpace:"pre-wrap",fontSize:b?"0.875rem":void 0},children:x(r.content,t)}):e("div",{className:"message-content",children:m?m(r.content):e(d,{content:r.content,highlightQuery:t,compact:b,components:y})}),v&&e(c,{direction:"row",spacing:1,sx:{mt:1.5,flexWrap:"wrap"},children:r.files.map((o,r)=>e(u,{file:o,onDownloadFile:s},`${o.bucket}-${o.key}-${r}`))})]}),!w&&i&&e(p,{message:r,onFeedback:i})]})})};export{y as default};
@@ -1 +1 @@
1
- import{jsxs as r,jsx as t}from"react/jsx-runtime";import{useRef as e,useEffect as o}from"react";import{Box as n}from"../../_Primitives/Box.mjs";import i from"./MessageBubble.mjs";import l from"./StreamingBubble.mjs";import s from"./TypingIndicator.mjs";import{latestTraceLabel as c}from"./latestTraceLabel.mjs";const m=({messages:m,isTyping:u,streamingText:a,liveTraceEvents:g,highlightQuery:h,onAbort:p,showActivity:f=!1,markdownComponents:x})=>{const y=e(null),v=e(null),b=e(!1),d=e(m.length),T=e(!1),j=()=>{const r=v.current;r&&(T.current=!0,r.scrollTop=r.scrollHeight,requestAnimationFrame(()=>{T.current=!1}))};o(()=>{const r=m[m.length-1];m.length>d.current&&"user"===r?.role&&(b.current=!1,j()),d.current=m.length},[m]),o(()=>{b.current||j()},[u,a]);const w=(a||"").trim().length>0,A=u&&w,H=u&&!A;return r(n,{ref:v,onScroll:()=>{T.current||(b.current=!(()=>{const r=v.current;return!r||r.scrollHeight-r.scrollTop-r.clientHeight<80})())},sx:{flex:1,minHeight:0,overflowY:"auto",display:"flex",flexDirection:"column",gap:1.5,px:2,py:1.5},children:[m.filter(r=>"user"===r.role||r.content).map(r=>t(i,{message:r,highlightQuery:h,showActivity:f,markdownComponents:x},r.id)),A&&t(l,{text:a||"",traceEvents:g||[],highlightQuery:h,onAbort:p,showActivity:f}),H&&t(s,{traceLabel:g&&g.length>0?c(g):void 0}),t(n,{ref:y})]})};export{m 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"../../_Primitives/Box.mjs";import i from"./MessageBubble.mjs";import c from"./StreamingBubble.mjs";import l from"./TypingIndicator.mjs";import{latestTraceLabel as s}from"./latestTraceLabel.mjs";const m=({messages:m,isTyping:a,streamingText:u,liveTraceEvents:g,highlightQuery:h,onAbort:p,showActivity:f=!1,compact:x=!1,markdownComponents:y})=>{const v=e(null),b=e(null),d=e(!1),T=e(m.length),j=e(!1),w=()=>{const t=b.current;t&&(j.current=!0,t.scrollTop=t.scrollHeight,requestAnimationFrame(()=>{j.current=!1}))};o(()=>{const t=m[m.length-1];m.length>T.current&&"user"===t?.role&&(d.current=!1,w()),T.current=m.length},[m]),o(()=>{d.current||w()},[a,u]);const A=(u||"").trim().length>0,H=a&&(A||f),B=a&&!H;return t(n,{ref:b,onScroll:()=>{j.current||(d.current=!(()=>{const t=b.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:[m.filter(t=>"user"===t.role||t.content).map(t=>r(i,{message:t,highlightQuery:h,showActivity:f,compact:x,markdownComponents:y},t.id)),H&&r(c,{text:u||"",traceEvents:g||[],highlightQuery:h,onAbort:p,showActivity:f,compact:x}),B&&r(l,{traceLabel:g&&g.length>0?s(g):void 0}),r(n,{ref:v})]})};export{m as default};
@@ -1 +1 @@
1
- import{jsxs as i,jsx as t}from"react/jsx-runtime";import e from"@mui/icons-material/StopCircle";import r from"../AgentActivity/AgentActivity.mjs";import{Box as o}from"../../_Primitives/Box.mjs";import{Stack as n}from"../../_Primitives/Stack.mjs";import{ButtonBase as a}from"../../Buttons/ButtonBase.mjs";import{Caption as s}from"../../Typography.mjs";import{NexusLogoNodeSvg as m}from"../../NexusLogoNode.mjs";import c from"./MarkdownContent.mjs";import{latestTraceLabel as l}from"./latestTraceLabel.mjs";const p=({text:p,traceEvents:g,highlightQuery:d,avatarIcon:f,onAbort:x,showActivity:h=!1})=>i(n,{direction:"row",spacing:1,sx:{justifyContent:"flex-start"},children:[t(o,{sx:{mt:.25,flexShrink:0},children:f??t(m,{size:28})}),i(n,{spacing:1,children:[p?i(o,{sx:{bgcolor:"background.default",color:"text.primary",px:1.75,py:1.25,lineHeight:1.6},children:[t(c,{content:p,highlightQuery:d}),t(o,{sx:{display:"inline-block",height:16,bgcolor:"primary.main",verticalAlign:"text-bottom",animation:"pulse 1.2s ease-in-out infinite","@keyframes pulse":{"0%, 100%":{opacity:.35},"50%":{opacity:1}}}})]}):t(o,{sx:{bgcolor:"background.default",px:1.75,py:1.25},children:t(n,{direction:"row",spacing:1,sx:{alignItems:"center"},children:i(n,{direction:"row",spacing:.5,children:[" ",t(s,{children:g.length>0?`Agent is working... ${l(g)}`:"Agent is working..."}),[0,150,300].map(i=>t(o,{component:"span",sx:{bgcolor:"primary.main",animation:"bounce 1s ease-in-out infinite",animationDelay:`${i}ms`,"@keyframes bounce":{"0%, 80%, 100%":{opacity:.35,transform:"translateY(0)"},"40%":{opacity:1,transform:"translateY(-1px)"}}}},i))]})})}),h&&t(r,{isStreaming:!0,traceEvents:g,defaultExpanded:!0}),x&&i(a,{onClick:x,sx:{display:"inline-flex",alignItems:"center",gap:.5,fontSize:"0.625rem",color:"text.secondary","&:hover":{color:"error.main"},borderRadius:.5,px:.5},children:[t(e,{sx:{fontSize:11}}),"Stop generating"]})]})]});export{p as default};
1
+ import{jsxs as i,jsx as t,Fragment as r}from"react/jsx-runtime";import e from"../AgentActivity/AgentActivity.mjs";import{Box as n}from"../../_Primitives/Box.mjs";import{Stack as o}from"../../_Primitives/Stack.mjs";import{Caption as a}from"../../Typography.mjs";import c from"./MarkdownContent.mjs";import{latestTraceLabel as m}from"./latestTraceLabel.mjs";const s=()=>t(n,{sx:{display:"inline-block",width:"2px",height:16,bgcolor:"primary.main",verticalAlign:"text-bottom",animation:"pulse 1.2s ease-in-out infinite","@keyframes pulse":{"0%, 100%":{opacity:.35},"50%":{opacity:1}}}}),l=({text:l,traceEvents:p,highlightQuery:g,avatarIcon:h,compact:d=!1,showActivity:x=!1})=>i(o,{direction:"row",spacing:1,sx:{justifyContent:"flex-start"},children:[h&&t(n,{sx:{mt:.25,flexShrink:0},children:h}),t(o,{spacing:1,sx:{flex:1,minWidth:0},children:x?i(r,{children:[t(e,{isStreaming:!0,traceEvents:p}),l&&i(n,{sx:{borderRadius:"0.25rem 1rem 1rem 1rem",bgcolor:"background.default",color:"text.primary",px:1.75,py:1.25,lineHeight:1.6},children:[t(c,{content:l,highlightQuery:g,compact:d}),t(s,{})]})]}):t(r,{children:l?i(n,{sx:{borderRadius:"0.25rem 1rem 1rem 1rem",bgcolor:"background.default",color:"text.primary",px:1.75,py:1.25,lineHeight:1.6},children:[t(c,{content:l,highlightQuery:g,compact:d}),t(s,{})]}):t(n,{sx:{bgcolor:"background.default",px:1.75,py:1.25},children:t(o,{direction:"row",spacing:1,sx:{alignItems:"center"},children:i(o,{direction:"row",spacing:.5,children:[t(a,{children:p.length>0?`Agent is working... ${m(p)}`:"Agent is working..."}),[0,150,300].map(i=>t(n,{component:"span",sx:{bgcolor:"primary.main",animation:"bounce 1s ease-in-out infinite",animationDelay:`${i}ms`,"@keyframes bounce":{"0%, 80%, 100%":{opacity:.35,transform:"translateY(0)"},"40%":{opacity:1,transform:"translateY(-1px)"}}}},i))]})})})})})]});export{l as default};
@@ -1 +1 @@
1
- import{jsxs as r,jsx as e}from"react/jsx-runtime";import{Box as i}from"../../_Primitives/Box.mjs";import{Stack as o}from"../../_Primitives/Stack.mjs";import{Body2 as t}from"../../Typography.mjs";import{useTheme as a}from"@mui/material/styles";import{colours as n}from"../../../theme/tokens.mjs";import{NexusLogoNodeSvg as m}from"../../NexusLogoNode.mjs";const s=({traceLabel:s,avatarIcon:c})=>{const d="dark"===a().palette.mode?n.jadeLight:n.jadeDark;return r(o,{direction:"row",spacing:1,sx:{alignItems:"flex-start"},children:[e(i,{sx:{mt:.25,flexShrink:0},children:c??e(m,{size:28})}),e(i,{sx:{borderRadius:"1rem 1rem 1rem 0.25rem",border:"1px solid",borderColor:"divider",bgcolor:"background.default",px:1.75,py:1.25},children:r(o,{direction:"row",spacing:1,sx:{alignItems:"center"},children:[e(t,{sx:{color:"text.primary",fontWeight:600,opacity:1},children:s?`Agent is working... ${s}`:"Agent is working..."}),e(o,{direction:"row",spacing:.5,children:[0,150,300].map(r=>e(i,{component:"span",sx:{width:6,height:6,borderRadius:"50%",bgcolor:d,animation:"bounce 1s ease-in-out infinite",animationDelay:`${r}ms`,"@keyframes bounce":{"0%, 80%, 100%":{opacity:.35,transform:"translateY(0)"},"40%":{opacity:1,transform:"translateY(-1px)"}}}},r))})]})})]})};export{s as default};
1
+ import{jsxs as r,jsx as e}from"react/jsx-runtime";import{Box as i}from"../../_Primitives/Box.mjs";import{Stack as t}from"../../_Primitives/Stack.mjs";import{Body2 as o}from"../../Typography.mjs";import{useTheme as a}from"@mui/material/styles";import{colours as n}from"../../../theme/tokens.mjs";const m=({traceLabel:m,avatarIcon:s})=>{const c="dark"===a().palette.mode?n.jadeLight:n.jadeDark;return r(t,{direction:"row",spacing:1,sx:{alignItems:"flex-start"},children:[s&&e(i,{sx:{mt:.25,flexShrink:0},children:s}),e(i,{sx:{borderRadius:"1rem 1rem 1rem 0.25rem",border:"1px solid",borderColor:"divider",bgcolor:"background.default",px:1.75,py:1.25},children:r(t,{direction:"row",spacing:1,sx:{alignItems:"center"},children:[e(o,{sx:{color:"text.primary",fontWeight:600,opacity:1},children:m?`Agent is working... ${m}`:"Agent is working..."}),e(t,{direction:"row",spacing:.5,children:[0,150,300].map(r=>e(i,{component:"span",sx:{width:6,height:6,borderRadius:"50%",bgcolor:c,animation:"bounce 1s ease-in-out infinite",animationDelay:`${r}ms`,"@keyframes bounce":{"0%, 80%, 100%":{opacity:.35,transform:"translateY(0)"},"40%":{opacity:1,transform:"translateY(-1px)"}}}},r))})]})})]})};export{m as default};
@@ -1 +1 @@
1
- import{jsxs as e,jsx as o}from"react/jsx-runtime";import r from"@mui/icons-material/ChatBubbleOutlined";import t from"@mui/icons-material/DeleteForeverOutlined";import{Body1 as i,Caption as n}from"../Typography.mjs";import{Box as a}from"../_Primitives/Box.mjs";import{IconButton as s}from"../Buttons/IconButton.mjs";import{colours as l}from"../../theme/tokens.mjs";const m=(e,r)=>{const t=r?.trim();if(!t)return e;const i=new RegExp(`(${(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))(t)})`,"ig");return e.split(i).map((e,r)=>{if(!e)return null;return e.toLowerCase()===t.toLowerCase()?o(a,{component:"mark",sx:{backgroundColor:e=>"dark"===e.palette.mode?"rgba(255, 214, 10, 0.35)":"rgba(255, 214, 10, 0.45)",color:"inherit",borderRadius:.5,px:.25,py:0},children:e},`${e}-${r}`):e})},d=({conversation:d,isActive:p,highlightQuery:c,onSelectConversation:u,onDeleteConversation:b,deleteConversationTitle:x,formatMessageCount:g,showMessageCount:h=!1,sx:y})=>{const f=(e=>"number"==typeof e.messageCount?e.messageCount:Array.isArray(e.messages)?e.messages.length:0)(d);return e(a,{component:"div",role:"button",tabIndex:0,onClick:()=>u(d.id),onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),u(d.id))},sx:[{width:"100%",display:"flex",alignItems:"center",gap:1.25,borderRadius:1,px:1.5,py:1.25,textAlign:"left",backgroundColor:p?e=>"dark"===e.palette.mode?l.black:l.white:"transparent",backgroundImage:"none",opacity:1,position:"relative",zIndex:1,border:"1px solid",borderColor:p?l.primaryGreenActive:"transparent",cursor:"pointer",outline:"none","&:hover":{backgroundColor:p?e=>"dark"===e.palette.mode?l.black:l.white:"action.hover",backgroundImage:"none","& .delete-button":{visibility:"visible"}},"&:focus-visible":{boxShadow:e=>`0 0 0 2px ${e.palette.primary.main}`},mb:.25},...Array.isArray(y)?y:y?[y]:[]],children:[o(r,{sx:{fontSize:14,color:p?l.primaryGreenActive:"text.disabled"}}),e(a,{sx:{flex:1,minWidth:0},children:[o(i,{component:"span",sx:{display:"block",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:p?"text.primary":"text.secondary"},children:m(d.title,c)}),h&&o(n,{noWrap:!0,sx:{display:"block"},children:g(f)})]}),o(s,{className:"delete-button",title:x,ariaLabel:x,onClick:e=>{e.stopPropagation(),b&&Promise.resolve(b(d.id))},disabled:!b,sx:{visibility:"hidden"},children:o(t,{sx:{fontSize:14,color:p?"error.main":"text.disabled"}})})]})};export{d as ChatHistoryButtonBase};
1
+ import{jsxs as e,jsx as o}from"react/jsx-runtime";import r from"@mui/icons-material/ChatBubbleOutlined";import t from"@mui/icons-material/DeleteForeverOutlined";import{Body1 as i,Caption as n}from"../Typography.mjs";import{GhostButton as a}from"../Buttons/GhostButton.mjs";import{Box as s}from"../_Primitives/Box.mjs";import{IconButton as l}from"../Buttons/IconButton.mjs";import{colours as m}from"../../theme/tokens.mjs";const d=(e,r)=>{const t=r?.trim();if(!t)return e;const i=new RegExp(`(${(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))(t)})`,"ig");return e.split(i).map((e,r)=>{if(!e)return null;return e.toLowerCase()===t.toLowerCase()?o(s,{component:"mark",sx:{backgroundColor:e=>"dark"===e.palette.mode?"rgba(255, 214, 10, 0.35)":"rgba(255, 214, 10, 0.45)",color:"inherit",borderRadius:.5,px:.25,py:0},children:e},`${e}-${r}`):e})},p=({conversation:p,isActive:c,highlightQuery:u,onSelectConversation:b,onDeleteConversation:h,deleteConversationTitle:g,formatMessageCount:x,showMessageCount:y=!1,sx:f})=>{const v=(e=>"number"==typeof e.messageCount?e.messageCount:Array.isArray(e.messages)?e.messages.length:0)(p);return e(a,{onClick:()=>b(p.id),sx:[{width:"100%",display:"flex",alignItems:"center",gap:1.25,borderRadius:1,px:1.5,py:1.25,backgroundColor:c?e=>"dark"===e.palette.mode?m.black:m.white:"transparent",backgroundImage:"none",opacity:1,position:"relative",zIndex:1,border:"1px solid",borderColor:c?m.primaryGreenActive:"transparent","&:hover":{backgroundColor:c?e=>"dark"===e.palette.mode?m.black:m.white:"action.hover",backgroundImage:"none","& .delete-button":{visibility:"visible"}},"&:focus-visible":{boxShadow:e=>`0 0 0 2px ${e.palette.primary.main}`},mb:.25},...Array.isArray(f)?f:f?[f]:[]],children:[o(r,{sx:{fontSize:14,color:c?m.primaryGreenActive:"text.disabled"}}),e(s,{sx:{flex:1,minWidth:0},children:[o(i,{component:"span",sx:{display:"block",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:c?"text.primary":"text.secondary"},children:d(p.title,u)}),y&&o(n,{noWrap:!0,sx:{display:"block"},children:x(v)})]}),o(l,{className:"delete-button",title:g,ariaLabel:g,onClick:e=>{e.stopPropagation(),h&&Promise.resolve(h(p.id))},disabled:!h,sx:{visibility:"hidden"},children:o(t,{sx:{fontSize:14,color:c?"error.main":"text.disabled"}})})]})};export{p as ChatHistoryButtonBase};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as o,Fragment as i}from"react/jsx-runtime";import{useState as n}from"react";import{useTheme as t,useMediaQuery as r,Popover as l}from"@mui/material";import s from"@mui/icons-material/CloseFullscreen";import m from"@mui/icons-material/ExpandLess";import a from"@mui/icons-material/ExpandMore";import c from"@mui/icons-material/GridView";import p from"@mui/icons-material/History";import{ChatHistory as d}from"./ChatHistory.mjs";import{ChatInput as h}from"./ChatInput.mjs";import{Dialog as f}from"../Dialog.mjs";import{Box as x}from"../_Primitives/Box.mjs";import{Stack as u}from"../_Primitives/Stack.mjs";import{Paper as C}from"../_Primitives/Paper.mjs";import{IconButton as g}from"../Buttons/IconButton.mjs";import{AiChip as v}from"../AiChip.mjs";import{Caption as b,H1 as w,H2 as y}from"../Typography.mjs";import{AgentChatWindowHeader as S}from"./AgentChatWindowHeader.mjs";import"@mui/icons-material/Check";import"@mui/icons-material/ContentCopy";import"@mui/icons-material/Download";import"@mui/material/styles";import"../../theme/tokens.mjs";import"./ChatComponents/ChatAvatar.mjs";import{chatWindowMarkdownComponents as j}from"./ChatComponents/MarkdownContent.mjs";import"@mui/icons-material/CheckCircle";import"@mui/icons-material/OpenInNew";import"../Code.mjs";import"@mui/icons-material/ThumbUp";import"@mui/icons-material/ThumbDown";import"@mui/icons-material/StopCircle";import k from"./ChatComponents/SuggestedPrompts.mjs";import z from"./ChatComponents/MessageList.mjs";import I from"./WidgetParts/WidgetInput.mjs";function D({open:D,onClose:T,title:A="Ask Nexus",subtitle:H="Ready to help",placeholder:P,suggestedPrompts:E=[],showAiChip:O=!0,isTyping:N,messages:W,streamingText:B,liveTraceEvents:L,showActivity:R=!1,onSend:M,onAbort:U,background:_,followUpPrompts:X,followUpLabel:$="Suggested follow-ups:",topOffset:F,conversations:G,activeConversationId:V,onSelectConversation:Y,onDeleteConversation:q,onNewConversation:J}){const K=t(),Q=r(K.breakpoints.down("md")),[Z,ee]=n(!0),[oe,ie]=n(!1),[ne,te]=n(!1),[re,le]=n(null),se=W.length>0||N,me=se&&X&&X.length>0,ae=!Q||Z,ce=void 0!==G;return e(f,{open:D,fullScreen:!0,onClose:T,sx:F?{top:`${F}px`}:void 0,children:o(x,{sx:{display:"flex",flexDirection:"column",height:F?`calc(100vh - ${F}px)`:"100vh",overflow:"hidden"},children:[o(x,{sx:{display:"flex",flex:1,minHeight:0,overflow:"hidden"},children:[ce&&e(x,{sx:{display:{xs:"none",md:"flex"},flexDirection:"column",minHeight:0,flexShrink:0},children:e(d,{conversations:G,activeConversationId:V??null,onSelectConversation:Y??(()=>{}),onDeleteConversation:q,onNewConversation:J,isCollapsed:ne,onToggleCollapse:()=>te(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(S,{title:A,subtitle:H,showAiChip:!1,actions:Q?e(u,{}):o(u,{direction:"row",spacing:1,sx:{alignItems:"center"},children:[O&&e(v,{}),e(g,{title:"Close full view",size:"small",onClick:T,children:e(s,{sx:{fontSize:16}})})]})}),Q&&o(u,{direction:"row",sx:{position:"absolute",top:6,right:4,alignItems:"center"},children:[ce&&e(g,{title:"Chat history",size:"small",onClick:()=>ie(e=>!e),children:e(p,{sx:{fontSize:18}})}),e(g,{title:"Close full view",size:"small",onClick:T,children:e(s,{sx:{fontSize:16}})})]})]}),o(x,{sx:{flex:1,minHeight:0,position:"relative",display:"flex",flexDirection:"column",overflow:"hidden"},children:[_&&e(x,{sx:{position:"absolute",inset:0,zIndex:0,overflow:"hidden",pointerEvents:"none"},children:_}),se?o(x,{sx:{position:"relative",zIndex:1,flex:1,minHeight:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:[e(C,{sx:{borderRadius:0,border:"none",flex:1,minHeight:0,display:"flex",flexDirection:"column",overflowY:"auto"},children:e(z,{messages:W,isTyping:N,streamingText:B,liveTraceEvents:L,onAbort:U,showActivity:R,markdownComponents:j})}),me&&o(x,{sx:{bgcolor:"background.paper",borderTop:"1px solid",borderColor:"divider",px:2,pt:1,pb:ae?.5:1,flexShrink:0},children:[o(u,{direction:"row",sx:{alignItems:"center",justifyContent:"space-between",mb:ae?.75:0},children:[e(b,{children:$}),Q&&e(g,{size:"small",onClick:()=>ee(e=>!e),title:Z?"Collapse suggestions":"Expand suggestions",children:e(Z?a:m,{sx:{fontSize:16}})})]}),ae&&e(k,{prompts:X,onSelect:M})]}),e(C,{sx:{borderRadius:0,border:"none"},children:e(I,{placeholder:P,isTyping:N,onSend:M})})]}):o(C,{sx:{borderRadius:0,border:"none",flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",px:2,pb:4},children:[o(u,{direction:"column",sx:{gap:4,alignItems:"center"},children:[e(w,{children:A}),e(y,{sx:{color:"text.secondary"},children:H})]}),e(x,{sx:{mt:10,width:"70%",minWidth:"min(40vw, 100%)"},children:e(h,{onSend:M,disabled:N,placeholder:P,actions:E.length>0?o(i,{children:[e(g,{title:"Open prompt gallery",ariaLabel:"Open prompt gallery",size:"small",sx:{color:"text.jades"},onClick:e=>le(e.currentTarget),children:e(c,{sx:{fontSize:18}})}),e(l,{open:Boolean(re),anchorEl:re,onClose:()=>le(null),anchorOrigin:{vertical:"top",horizontal:"left"},transformOrigin:{vertical:"bottom",horizontal:"left"},children:e(x,{sx:{p:2,maxWidth:360},children:e(k,{prompts:E,onSelect:e=>{le(null),M(e)}})})})]}):void 0})})]})]})]})]}),ce&&Q&&o(i,{children:[oe&&e(x,{onClick:()=>ie(!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:oe?"translateX(0)":"translateX(-100%)",transition:"transform 0.25s ease"},children:e(d,{conversations:G,activeConversationId:V??null,onSelectConversation:e=>{Y?.(e),ie(!1)},onDeleteConversation:q,onNewConversation:J?()=>{J(),ie(!1)}:void 0,onClose:()=>ie(!1)})})]})]})})}export{D as NexusChatDialog};
1
+ import{jsx as e,jsxs as o,Fragment as i}from"react/jsx-runtime";import{useState as n}from"react";import{useTheme as t,useMediaQuery as r,Popover as l}from"@mui/material";import s from"@mui/icons-material/CloseFullscreen";import m from"@mui/icons-material/ExpandLess";import a from"@mui/icons-material/ExpandMore";import c from"@mui/icons-material/GridView";import p from"@mui/icons-material/History";import{ChatHistory as d}from"./ChatHistory.mjs";import{ChatInput as h}from"./ChatInput.mjs";import{Dialog as f}from"../Dialog.mjs";import{Box as x}from"../_Primitives/Box.mjs";import{Stack as u}from"../_Primitives/Stack.mjs";import{Paper as g}from"../_Primitives/Paper.mjs";import{IconButton as C}from"../Buttons/IconButton.mjs";import{AiChip as v}from"../AiChip.mjs";import{Caption as w,H1 as b,H2 as y}from"../Typography.mjs";import{AgentChatWindowHeader as S}from"./AgentChatWindowHeader.mjs";import"@mui/icons-material/Check";import"@mui/icons-material/ContentCopy";import"@mui/icons-material/Download";import"@mui/material/styles";import"../../theme/tokens.mjs";import"./ChatComponents/ChatAvatar.mjs";import{chatWindowMarkdownComponents as j}from"./ChatComponents/MarkdownContent.mjs";import"@mui/icons-material/CheckCircle";import"@mui/icons-material/OpenInNew";import"../Code.mjs";import"@mui/icons-material/ThumbUp";import"@mui/icons-material/ThumbDown";import k from"./ChatComponents/SuggestedPrompts.mjs";import z from"./ChatComponents/MessageList.mjs";import I from"./WidgetParts/WidgetInput.mjs";function D({open:D,onClose:T,title:H="Ask Nexus",subtitle:A="Ready to help",placeholder:P,suggestedPrompts:E=[],showAiChip:O=!0,isTyping:N,messages:W,streamingText:B,liveTraceEvents:L,showActivity:R=!1,onSend:M,onStop:U,background:_,followUpPrompts:X,followUpLabel:$="Suggested follow-ups:",topOffset:F,conversations:G,activeConversationId:V,onSelectConversation:Y,onDeleteConversation:q,onNewConversation:J}){const K=t(),Q=r(K.breakpoints.down("md")),[Z,ee]=n(!0),[oe,ie]=n(!1),[ne,te]=n(!1),[re,le]=n(null),se=W.length>0||N,me=se&&X&&X.length>0,ae=!Q||Z,ce=void 0!==G;return e(f,{open:D,fullScreen:!0,onClose:T,sx:F?{top:`${F}px`}:void 0,children:o(x,{sx:{display:"flex",flexDirection:"column",height:F?`calc(100vh - ${F}px)`:"100vh",overflow:"hidden"},children:[o(x,{sx:{display:"flex",flex:1,minHeight:0,overflow:"hidden"},children:[ce&&e(x,{sx:{display:{xs:"none",md:"flex"},flexDirection:"column",minHeight:0,flexShrink:0},children:e(d,{conversations:G,activeConversationId:V??null,onSelectConversation:Y??(()=>{}),onDeleteConversation:q,onNewConversation:J,isCollapsed:ne,onToggleCollapse:()=>te(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(S,{title:H,subtitle:A,showAiChip:!1,actions:Q?e(u,{}):o(u,{direction:"row",spacing:1,sx:{alignItems:"center"},children:[O&&e(v,{}),e(C,{title:"Close full view",size:"small",onClick:T,children:e(s,{sx:{fontSize:16}})})]})}),Q&&o(u,{direction:"row",sx:{position:"absolute",top:6,right:4,alignItems:"center"},children:[ce&&e(C,{title:"Chat history",size:"small",onClick:()=>ie(e=>!e),children:e(p,{sx:{fontSize:18}})}),e(C,{title:"Close full view",size:"small",onClick:T,children:e(s,{sx:{fontSize:16}})})]})]}),o(x,{sx:{flex:1,minHeight:0,position:"relative",display:"flex",flexDirection:"column",overflow:"hidden"},children:[_&&e(x,{sx:{position:"absolute",inset:0,zIndex:0,overflow:"hidden",pointerEvents:"none"},children:_}),se?o(x,{sx:{position:"relative",zIndex:1,flex:1,minHeight:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:[e(g,{sx:{borderRadius:0,border:"none",flex:1,minHeight:0,display:"flex",flexDirection:"column",overflowY:"auto"},children:e(z,{messages:W,isTyping:N,streamingText:B,liveTraceEvents:L,showActivity:R,markdownComponents:j})}),me&&o(x,{sx:{bgcolor:"background.paper",borderTop:"1px solid",borderColor:"divider",px:2,pt:1,pb:ae?.5:1,flexShrink:0},children:[o(u,{direction:"row",sx:{alignItems:"center",justifyContent:"space-between",mb:ae?.75:0},children:[e(w,{children:$}),Q&&e(C,{size:"small",onClick:()=>ee(e=>!e),title:Z?"Collapse suggestions":"Expand suggestions",children:e(Z?a:m,{sx:{fontSize:16}})})]}),ae&&e(k,{prompts:X,onSelect:M})]}),e(g,{sx:{borderRadius:0,border:"none"},children:e(I,{placeholder:P,isStreaming:N,onStop:U,onSend:M})})]}):o(g,{sx:{borderRadius:0,border:"none",flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",px:2,pb:4},children:[o(u,{direction:"column",sx:{gap:4,alignItems:"center"},children:[e(b,{children:H}),e(y,{sx:{color:"text.secondary"},children:A})]}),e(x,{sx:{mt:10,width:"70%",minWidth:"min(40vw, 100%)"},children:e(h,{onSend:M,isStreaming:N,onStop:U,placeholder:P,actions:E.length>0?o(i,{children:[e(C,{title:"Open prompt gallery",ariaLabel:"Open prompt gallery",size:"small",sx:{color:"text.jades"},onClick:e=>le(e.currentTarget),children:e(c,{sx:{fontSize:18}})}),e(l,{open:Boolean(re),anchorEl:re,onClose:()=>le(null),anchorOrigin:{vertical:"top",horizontal:"left"},transformOrigin:{vertical:"bottom",horizontal:"left"},children:e(x,{sx:{p:2,maxWidth:360},children:e(k,{prompts:E,onSelect:e=>{le(null),M(e)}})})})]}):void 0})})]})]})]})]}),ce&&Q&&o(i,{children:[oe&&e(x,{onClick:()=>ie(!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:oe?"translateX(0)":"translateX(-100%)",transition:"transform 0.25s ease"},children:e(d,{conversations:G,activeConversationId:V??null,onSelectConversation:e=>{Y?.(e),ie(!1)},onDeleteConversation:q,onNewConversation:J?()=>{J(),ie(!1)}:void 0,onClose:()=>ie(!1)})})]})]})})}export{D as NexusChatDialog};
@@ -1 +1 @@
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
+ 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:v,messages:b,streamingText:S,liveTraceEvents:w,showActivity:T=!1,onOpen:P,onClose:A,onSend:I,onStop: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:A,avatarIcon:c}),s(a,{avatarIcon:c,isTyping:v,liveTraceEvents:w,messages:b,showActivity:T,streamingText:S,emptyTitle:u,emptyDescription:g,dataSources:h,suggestedPrompts:f,onSend:I}),s(r,{placeholder:x,isStreaming:v,onStop:W,onSend:I})]}),!y&&s(o,{onOpen:P,fabLabel:p,placement:B})]})}export{l as NexusChatWidget};
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{Box as i}from"../../_Primitives/Box.mjs";import"react";import"@mui/icons-material/Check";import"@mui/icons-material/ContentCopy";import"@mui/icons-material/Download";import"@mui/material";import"@mui/material/styles";import"../../../theme/tokens.mjs";import"../ChatComponents/ChatAvatar.mjs";import"react-markdown";import"remark-gfm";import"../../Typography.mjs";import"../../Code.mjs";import"@mui/icons-material/ExpandMore";import"@mui/icons-material/ExpandLess";import"@mui/icons-material/CheckCircle";import"@mui/icons-material/OpenInNew";import"@mui/icons-material/ThumbUp";import"@mui/icons-material/ThumbDown";import"@mui/icons-material/StopCircle";import m from"../ChatComponents/MessageList.mjs";import o from"../ChatComponents/EmptyState.mjs";const e=({avatarIcon:e,isTyping:r,liveTraceEvents:a,messages:s,onAbort:n,showActivity:p,streamingText:c,emptyTitle:l,emptyDescription:u,dataSources:h,suggestedPrompts:C,onSend:d})=>{const g=s.length>0||r;return t(i,{sx:{flex:1,minHeight:0,display:"flex",flexDirection:"column",overflowY:"auto"},children:g?t(m,{messages:s,isTyping:r,streamingText:c,liveTraceEvents:a,onAbort:n,avatarIcon:e,showActivity:p}):t(o,{title:l,description:u,dataSources:h,prompts:C.slice(0,4),avatarIcon:e,onSelect:d})})};export{e as default};
1
+ import{jsx as t}from"react/jsx-runtime";import{Box as i}from"../../_Primitives/Box.mjs";import"react";import"@mui/icons-material/Check";import"@mui/icons-material/ContentCopy";import"@mui/icons-material/Download";import"@mui/material";import"@mui/material/styles";import"../../../theme/tokens.mjs";import"../ChatComponents/ChatAvatar.mjs";import"react-markdown";import"remark-gfm";import"../../Typography.mjs";import"../../Code.mjs";import"@mui/icons-material/ExpandMore";import"@mui/icons-material/ExpandLess";import"@mui/icons-material/CheckCircle";import"@mui/icons-material/OpenInNew";import"@mui/icons-material/ThumbUp";import"@mui/icons-material/ThumbDown";import m from"../ChatComponents/MessageList.mjs";import e from"../ChatComponents/EmptyState.mjs";const o=({avatarIcon:o,isTyping:r,liveTraceEvents:a,messages:s,showActivity:n,streamingText:p,emptyTitle:c,emptyDescription:l,dataSources:u,suggestedPrompts:h,onSend:d})=>{const g=s.length>0||r;return t(i,{sx:{flex:1,minHeight:0,display:"flex",flexDirection:"column",overflowY:"auto"},children:g?t(m,{messages:s,isTyping:r,streamingText:p,liveTraceEvents:a,avatarIcon:o,showActivity:n,compact:!0}):t(e,{title:c,description:l,dataSources:u,prompts:h.slice(0,4),avatarIcon:o,onSelect:d})})};export{o as default};
@@ -1 +1 @@
1
- import{jsx as r}from"react/jsx-runtime";import{Box as o}from"../../_Primitives/Box.mjs";import{ChatInput as e}from"../ChatInput.mjs";const d=({placeholder:d,isTyping:i,onSend:p})=>r(o,{sx:{backgroundColor:"background.paper",borderTop:"1px solid",borderColor:"divider",p:1.5,flexShrink:0},children:r(e,{onSend:p,disabled:i,placeholder:d})});export{d as default};
1
+ import{jsx as o}from"react/jsx-runtime";import{Box as r}from"../../_Primitives/Box.mjs";import{ChatInput as e}from"../ChatInput.mjs";const i=({placeholder:i,isStreaming:n,onStop:t,onSend:p})=>o(r,{sx:{backgroundColor:"background.paper",borderTop:"1px solid",borderColor:"divider",p:1.5,flexShrink:0},children:o(e,{onSend:p,isStreaming:n,onStop:t,placeholder:i})});export{i as default};
@@ -1 +1 @@
1
- import{jsxs as r,Fragment as e,jsx as t}from"react/jsx-runtime";import{colours as i}from"../theme/tokens.mjs";const o=[0,60,120,180,240,300],l=({strokeColor:l=i.brilliantGreen,fillColor:n=i.brilliantGreen,strokeWidth:s=4.5,centerRadius:c=12})=>r(e,{children:[t("g",{stroke:l,strokeWidth:s,strokeLinecap:"round",children:o.map(e=>r("g",{transform:`rotate(${e})`,children:[t("line",{x1:"10",y1:"0",x2:"36",y2:"0"}),t("circle",{cx:"44",cy:"0",r:"10",fill:n,stroke:"none"})]},e))}),t("circle",{cx:"0",cy:"0",r:c,fill:n})]}),n=({size:r=200})=>t("svg",{width:r,height:r,viewBox:"0 0 200 200",xmlns:"http://www.w3.org/2000/svg",children:t("g",{transform:"translate(100, 100)",children:t(l,{})})});export{l as NexusLogoNode,n as NexusLogoNodeSvg};
1
+ import{jsxs as r,Fragment as e,jsx as t}from"react/jsx-runtime";import{colours as o}from"../theme/tokens.mjs";const i=[0,60,120,180,240,300],l=({strokeColor:l=o.brilliantGreen,fillColor:n=o.brilliantGreen,strokeWidth:c=4.5,centerRadius:s=12})=>r(e,{children:[t("g",{stroke:l,strokeWidth:c,strokeLinecap:"round",children:i.map(e=>r("g",{transform:`rotate(${e})`,children:[t("line",{x1:"10",y1:"0",x2:"36",y2:"0"}),t("circle",{cx:"44",cy:"0",r:"10",fill:n,stroke:"none"})]},e))}),t("circle",{cx:"0",cy:"0",r:s,fill:n})]});export{l as NexusLogoNode};
@@ -0,0 +1 @@
1
+ import{jsx as r}from"react/jsx-runtime";import{CircularProgress as m}from"@mui/material";const o=o=>r(m,{...o});export{o as CircularProgress};
@@ -1 +1 @@
1
- const o="2.0.2";export{o as SAGE_NEXUS_UI_VERSION};
1
+ const o="2.1.0";export{o as SAGE_NEXUS_UI_VERSION};
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as react from 'react';
2
2
  import react__default, { ReactNode, ReactElement, ComponentType, CSSProperties, PropsWithChildren } from 'react';
3
- import { AlertProps, BoxProps, SxProps as SxProps$1, Theme as Theme$1, TypographyProps, ContainerProps, GridProps, LinkProps as LinkProps$1, SelectProps as SelectProps$1, SwitchProps, AccordionSummaryProps, ButtonProps, ChipProps, CardProps as CardProps$1, PaperProps, CollapseProps, ButtonBaseProps, CheckboxProps, FormControlLabelProps, FormGroupProps, DialogProps, DialogActionsProps, DialogContentProps, DialogContentTextProps, DialogTitleProps, DividerProps, IconButtonProps as IconButtonProps$1, SkeletonProps as SkeletonProps$1, StackProps, TabProps, TabsProps, TextFieldProps, TooltipProps as TooltipProps$1 } from '@mui/material';
4
- export { AlertProps, AlertTitle, BoxProps, ButtonBaseProps, CheckboxProps, ChipProps, CollapseProps, ContainerProps, DialogActionsProps, DialogContentProps, DialogContentTextProps, DialogProps, DialogTitleProps, DividerProps, FormControlLabelProps, FormGroupProps, GridProps, MenuItem, PaperProps, StackProps, SwitchProps, TabProps, TabsProps, TextFieldProps, Theme, alpha, useMediaQuery, useTheme } from '@mui/material';
3
+ import { AlertProps, BoxProps, SxProps as SxProps$1, Theme as Theme$1, TypographyProps, ContainerProps, GridProps, LinkProps as LinkProps$1, SelectProps as SelectProps$1, SwitchProps, AccordionSummaryProps, ButtonProps, ChipProps, CardProps as CardProps$1, PaperProps, CircularProgressProps, CollapseProps, ButtonBaseProps, CheckboxProps, FormControlLabelProps, FormGroupProps, DialogProps, DialogActionsProps, DialogContentProps, DialogContentTextProps, DialogTitleProps, DividerProps, IconButtonProps as IconButtonProps$1, SkeletonProps as SkeletonProps$1, StackProps, TabProps, TabsProps, TextFieldProps, TooltipProps as TooltipProps$1 } from '@mui/material';
4
+ export { AlertProps, AlertTitle, BoxProps, ButtonBaseProps, CheckboxProps, ChipProps, CircularProgressProps, CollapseProps, ContainerProps, DialogActionsProps, DialogContentProps, DialogContentTextProps, DialogProps, DialogTitleProps, DividerProps, FormControlLabelProps, FormGroupProps, GridProps, MenuItem, PaperProps, StackProps, SwitchProps, TabProps, TabsProps, TextFieldProps, Theme, alpha, useMediaQuery, useTheme } from '@mui/material';
5
5
  import { SxProps, Theme } from '@mui/material/styles';
6
6
  import { Components } from 'react-markdown';
7
7
  import { DataGridProps } from '@mui/x-data-grid';
@@ -146,7 +146,7 @@ interface NexusChatWidgetProps {
146
146
  onOpen: () => void;
147
147
  onClose: () => void;
148
148
  onSend: (message: string) => void;
149
- onAbort?: () => void;
149
+ onStop?: () => void;
150
150
  onExpandToFullPage?: () => void;
151
151
  /** hideFab - Pass true to hide the FAB (e.g. when on the full-page chat route).
152
152
  * Consumer computes this: hideFab={pathname === ROUTES.AGENT} */
@@ -154,7 +154,7 @@ interface NexusChatWidgetProps {
154
154
  /** Anchor corner for the floating widget and FAB. Defaults to 'bottom-right'. */
155
155
  placement?: "bottom-right" | "bottom-left";
156
156
  }
157
- declare function NexusChatWidget({ title, subtitle, fabLabel, avatarIcon, placeholder, emptyTitle, emptyDescription, dataSources, suggestedPrompts, isOpen, isTyping, messages, streamingText, liveTraceEvents, showActivity, onOpen, onClose, onSend, onAbort, onExpandToFullPage, hideFab, placement, }: NexusChatWidgetProps): react.JSX.Element | null;
157
+ declare function NexusChatWidget({ title, subtitle, fabLabel, avatarIcon, placeholder, emptyTitle, emptyDescription, dataSources, suggestedPrompts, isOpen, isTyping, messages, streamingText, liveTraceEvents, showActivity, onOpen, onClose, onSend, onStop, onExpandToFullPage, hideFab, placement, }: NexusChatWidgetProps): react.JSX.Element | null;
158
158
 
159
159
  declare const Box: ({ children, ...rest }: BoxProps) => react.JSX.Element;
160
160
 
@@ -200,7 +200,7 @@ interface NexusChatDialogProps {
200
200
  liveTraceEvents?: TraceEvent[];
201
201
  showActivity?: boolean;
202
202
  onSend: (message: string) => void;
203
- onAbort?: () => void;
203
+ onStop?: () => void;
204
204
  /** Rendered as an absolute-fill layer behind the glass body, e.g. <GreenWaveBackground /> */
205
205
  background?: React.ReactNode;
206
206
  /** Prompt chips shown in a paper strip directly above the input during an active conversation */
@@ -217,7 +217,7 @@ interface NexusChatDialogProps {
217
217
  onDeleteConversation?: (id: string) => void | Promise<boolean>;
218
218
  onNewConversation?: () => void;
219
219
  }
220
- declare function NexusChatDialog({ open, onClose, title, subtitle, placeholder, suggestedPrompts, showAiChip, isTyping, messages, streamingText, liveTraceEvents, showActivity, onSend, onAbort, background, followUpPrompts, followUpLabel, topOffset, conversations, activeConversationId, onSelectConversation, onDeleteConversation, onNewConversation, }: NexusChatDialogProps): react.JSX.Element;
220
+ declare function NexusChatDialog({ open, onClose, title, subtitle, placeholder, suggestedPrompts, showAiChip, isTyping, messages, streamingText, liveTraceEvents, showActivity, onSend, onStop, background, followUpPrompts, followUpLabel, topOffset, conversations, activeConversationId, onSelectConversation, onDeleteConversation, onNewConversation, }: NexusChatDialogProps): react.JSX.Element;
221
221
 
222
222
  interface FABButtonProps {
223
223
  onOpen: () => void;
@@ -318,11 +318,12 @@ declare const ChatAvatar: ({ size, icon, sx }: ChatAvatarProps) => react.JSX.Ele
318
318
  interface MarkdownContentProps {
319
319
  content: string;
320
320
  highlightQuery?: string;
321
+ compact?: boolean;
321
322
  /** Override or extend the default markdown component renderers */
322
323
  components?: Partial<Components>;
323
324
  }
324
325
  declare const chatWindowMarkdownComponents: Partial<Components>;
325
- declare const MarkdownContent: ({ content, highlightQuery, components: extraComponents, }: MarkdownContentProps) => react.JSX.Element;
326
+ declare const MarkdownContent: ({ content, highlightQuery, compact, components: extraComponents, }: MarkdownContentProps) => react.JSX.Element;
326
327
 
327
328
  interface MessageBubbleProps {
328
329
  message: ChatMessage;
@@ -336,8 +337,9 @@ interface MessageBubbleProps {
336
337
  contentRenderer?: (content: string) => React.ReactNode;
337
338
  /** Override or extend individual markdown element renderers */
338
339
  markdownComponents?: Partial<Components>;
340
+ compact?: boolean;
339
341
  }
340
- declare const MessageBubble: ({ message, highlightQuery, showActivity, onFeedback, onDownloadFile, contentRenderer, markdownComponents, }: MessageBubbleProps) => react.JSX.Element;
342
+ declare const MessageBubble: ({ message, highlightQuery, showActivity, onFeedback, onDownloadFile, contentRenderer, markdownComponents, compact, }: MessageBubbleProps) => react.JSX.Element;
341
343
 
342
344
  interface MessageFeedbackBarProps {
343
345
  message: ChatMessage;
@@ -350,10 +352,12 @@ interface StreamingBubbleProps {
350
352
  traceEvents: TraceEvent[];
351
353
  highlightQuery?: string;
352
354
  avatarIcon?: React.ReactNode;
355
+ /** @deprecated Stop is now handled by ChatInput — this prop is ignored */
353
356
  onAbort?: () => void;
354
357
  showActivity?: boolean;
358
+ compact?: boolean;
355
359
  }
356
- declare const StreamingBubble: ({ text, traceEvents, highlightQuery, avatarIcon, onAbort, showActivity, }: StreamingBubbleProps) => react.JSX.Element;
360
+ declare const StreamingBubble: ({ text, traceEvents, highlightQuery, avatarIcon, compact, showActivity, }: StreamingBubbleProps) => react.JSX.Element;
357
361
 
358
362
  interface TypingIndicatorProps {
359
363
  traceLabel?: string;
@@ -376,9 +380,10 @@ interface MessageListProps {
376
380
  onAbort?: () => void;
377
381
  avatarIcon?: React.ReactNode;
378
382
  showActivity?: boolean;
383
+ compact?: boolean;
379
384
  markdownComponents?: Partial<Components>;
380
385
  }
381
- declare const MessageList: ({ messages, isTyping, streamingText, liveTraceEvents, highlightQuery, onAbort, showActivity, markdownComponents, }: MessageListProps) => react.JSX.Element;
386
+ declare const MessageList: ({ messages, isTyping, streamingText, liveTraceEvents, highlightQuery, onAbort, showActivity, compact, markdownComponents, }: MessageListProps) => react.JSX.Element;
382
387
 
383
388
  interface EmptyStateProps {
384
389
  title: string;
@@ -591,12 +596,38 @@ declare const GlassPaper: ({ sx, children, ...rest }: GlassPaperProps) => react.
591
596
  type AiGlassPaperProps = GlassPaperProps;
592
597
  declare const AiGlassPaper: ({ sx, children, ...rest }: AiGlassPaperProps) => react.JSX.Element;
593
598
 
599
+ declare const CircularProgress: (props: CircularProgressProps) => react.JSX.Element;
600
+
594
601
  declare const Collapse: ({ children, ...rest }: CollapseProps) => react.JSX.Element;
595
602
 
596
603
  declare const NexusDataGrid: ({ sx, ...rest }: DataGridProps) => react.JSX.Element;
597
604
 
598
605
  declare const ButtonBase: (props: ButtonBaseProps) => react.JSX.Element;
599
606
 
607
+ type GhostButtonProps = ButtonBaseProps;
608
+ /**
609
+ * Invisible interactive button — no background, border, or padding.
610
+ * Use for interactive regions where sighted users rely on layout or iconography
611
+ * to understand clickability (collapsible headers, clickable cards, row expanders).
612
+ * Inherits font and text alignment from context; all other button chrome is stripped.
613
+ *
614
+ * Always supply `aria-label` or visible text content so the action is announced
615
+ * to screen reader users. Add `aria-expanded` for toggle controls.
616
+ *
617
+ * ```tsx
618
+ * <GhostButton
619
+ * onClick={handleToggle}
620
+ * aria-expanded={isOpen}
621
+ * aria-label="Toggle section"
622
+ * sx={{ display: "flex", width: "100%", alignItems: "center", gap: 1 }}
623
+ * >
624
+ * <span>{label}</span>
625
+ * <ChevronDownIcon aria-hidden="true" />
626
+ * </GhostButton>
627
+ * ```
628
+ */
629
+ declare const GhostButton: React.FC<GhostButtonProps>;
630
+
600
631
  declare const Checkbox: (props: CheckboxProps) => react.JSX.Element;
601
632
 
602
633
  declare const FormControlLabel: (props: FormControlLabelProps) => react.JSX.Element;
@@ -1077,5 +1108,5 @@ declare const getGradientBorderStyles: (theme: Theme, options?: GradientBorderOp
1077
1108
  declare const leftPipe: SxProps<Theme>;
1078
1109
  declare const expandableText: (isExpanded: boolean) => SxProps<Theme>;
1079
1110
 
1080
- export { AccordionGroup, AccordionGroupItem, AccordionSingle, ActionBar, ActionBarTitle, AgentChatWindow, AgentChatWindowHeader, AiButton, AiCard, AiChip, AiGlassCard, AiGlassPaper, AiPaper, Alert, Avatar, Body1, Body2, Box, ButtonBase, Caption, Card, ChatAvatar, ChatHistory, ChatHistoryButtonBase, ChatHistoryHeader, ChatInput, ChatWindowBody, Checkbox, CheckboxGroup, Chip, Code, Collapse, Container, CopyableTableContainer, DateRangeFilter, DateRangePicker, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Divider, EmptyState, FABButton, FaviconLinks, FormControlLabel, FormGroup, GlassCard, GlassPaper, GlassPaperAsync, GreenWaveBackground, Grid, H1, H2, H3, H4, IconButton, Link, LoadingSpinnerNexus, LocationMultiSelect, LogoOptions, MarkdownContent, MessageBubble, MessageFeedbackBar, MessageList, MuiAppThemeProvider, NexusBarChart, NexusChatDialog, NexusChatWidget, NexusDataGrid, NexusHome, NexusLineChart, NexusLogo, NexusPieChart, Paper, PaperAsync, PrimaryButton, PrimaryButtonLink, RagChip, RagDot, SearchInput, SecondaryButton, SecondaryButtonLink, Select, SideBlade, SideBladeNavList, SideBladeNavListItem, Skeleton, SkillChip, SkipLink, SourceCitations, Span, Stack, StatusBadge, StatusChip, StreamingBubble, SuggestedPrompts, Switch, Tab, Tabs, TextField, ThemeModeContext, ThemeModeProvider, ThemeToggle, Tooltip, TypingIndicator, chatHistoryMatchesQuery, chatWindowMarkdownComponents, colours, createSageTheme, expandableText, filterChatHistoryConversations, fontSageHeadline, fontSageText, fontSageUI, formatDate, formatSurnameFirstname, getFaviconUrls, getFiscalPeriod, getGradientBorderStyles, getModeTokens, gradients, latestTraceLabel, leftPipe, useThemeMode, useTokens };
1081
- export type { AccordionGroupItemProps, AccordionGroupProps, AccordionSingleProps, ActivitySummary, AgentChatWindowHeaderProps, AgentChatWindowProps, AiButtonProps, AiCardProps, AiChipProps, AiGlassCardProps, AiGlassPaperProps, AiPaperProps, AvatarProps, AvatarSize, AvatarVariant, CardProps, CardTrend, ChatAvatarProps, ChatHistoryButtonBaseProps, ChatHistoryConversation, ChatHistoryHeaderProps, ChatHistoryProps, ChatInputProps, ChatMessage, CodeBlock, CopyableTableContainerProps, DateRangeFilterProps, DateRangePickerProps, DateRangePreset, DateRangeValue, EmptyStateProps, FABButtonProps, FileArtifact, GlassCardProps, GlassPaperAsyncProps, GlassPaperProps, GradientBorderOptions, GreenWaveBackgroundProps, IconButtonProps, IconButtonVariant, LatencyMetrics, LinkProps, LoadingSpinnerNexusProps, MarkdownContentProps, MessageBubbleProps, MessageFeedbackBarProps, MessageListProps, ModeTokens, NexusBarChartProps, NexusChatDialogProps, NexusChatWidgetProps, NexusLineChartProps, NexusPieChartProps, PaperAsyncProps, ParsedActivity, PrimaryButtonLinkProps, PrimaryButtonProps, SecondaryButtonLinkProps, SecondaryButtonProps, SelectOption, SelectProps, SideBladeNavItem, SideBladeNavListItemProps, SideBladeNavListProps, SideBladeProps, SkeletonProps, SkipLinkProps, SourceCitationsProps, StatusBadgeProps, StatusBadgeVariant, StreamingBubbleProps, SuggestedPromptsProps, ThemeMode, TooltipProps, TraceEvent, TypingIndicatorProps };
1111
+ export { AccordionGroup, AccordionGroupItem, AccordionSingle, ActionBar, ActionBarTitle, AgentChatWindow, AgentChatWindowHeader, AiButton, AiCard, AiChip, AiGlassCard, AiGlassPaper, AiPaper, Alert, Avatar, Body1, Body2, Box, ButtonBase, Caption, Card, ChatAvatar, ChatHistory, ChatHistoryButtonBase, ChatHistoryHeader, ChatInput, ChatWindowBody, Checkbox, CheckboxGroup, Chip, CircularProgress, Code, Collapse, Container, CopyableTableContainer, DateRangeFilter, DateRangePicker, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Divider, EmptyState, FABButton, FaviconLinks, FormControlLabel, FormGroup, GhostButton, GlassCard, GlassPaper, GlassPaperAsync, GreenWaveBackground, Grid, H1, H2, H3, H4, IconButton, Link, LoadingSpinnerNexus, LocationMultiSelect, LogoOptions, MarkdownContent, MessageBubble, MessageFeedbackBar, MessageList, MuiAppThemeProvider, NexusBarChart, NexusChatDialog, NexusChatWidget, NexusDataGrid, NexusHome, NexusLineChart, NexusLogo, NexusPieChart, Paper, PaperAsync, PrimaryButton, PrimaryButtonLink, RagChip, RagDot, SearchInput, SecondaryButton, SecondaryButtonLink, Select, SideBlade, SideBladeNavList, SideBladeNavListItem, Skeleton, SkillChip, SkipLink, SourceCitations, Span, Stack, StatusBadge, StatusChip, StreamingBubble, SuggestedPrompts, Switch, Tab, Tabs, TextField, ThemeModeContext, ThemeModeProvider, ThemeToggle, Tooltip, TypingIndicator, chatHistoryMatchesQuery, chatWindowMarkdownComponents, colours, createSageTheme, expandableText, filterChatHistoryConversations, fontSageHeadline, fontSageText, fontSageUI, formatDate, formatSurnameFirstname, getFaviconUrls, getFiscalPeriod, getGradientBorderStyles, getModeTokens, gradients, latestTraceLabel, leftPipe, useThemeMode, useTokens };
1112
+ export type { AccordionGroupItemProps, AccordionGroupProps, AccordionSingleProps, ActivitySummary, AgentChatWindowHeaderProps, AgentChatWindowProps, AiButtonProps, AiCardProps, AiChipProps, AiGlassCardProps, AiGlassPaperProps, AiPaperProps, AvatarProps, AvatarSize, AvatarVariant, CardProps, CardTrend, ChatAvatarProps, ChatHistoryButtonBaseProps, ChatHistoryConversation, ChatHistoryHeaderProps, ChatHistoryProps, ChatInputProps, ChatMessage, CodeBlock, CopyableTableContainerProps, DateRangeFilterProps, DateRangePickerProps, DateRangePreset, DateRangeValue, EmptyStateProps, FABButtonProps, FileArtifact, GhostButtonProps, GlassCardProps, GlassPaperAsyncProps, GlassPaperProps, GradientBorderOptions, GreenWaveBackgroundProps, IconButtonProps, IconButtonVariant, LatencyMetrics, LinkProps, LoadingSpinnerNexusProps, MarkdownContentProps, MessageBubbleProps, MessageFeedbackBarProps, MessageListProps, ModeTokens, NexusBarChartProps, NexusChatDialogProps, NexusChatWidgetProps, NexusLineChartProps, NexusPieChartProps, PaperAsyncProps, ParsedActivity, PrimaryButtonLinkProps, PrimaryButtonProps, SecondaryButtonLinkProps, SecondaryButtonProps, SelectOption, SelectProps, SideBladeNavItem, SideBladeNavListItemProps, SideBladeNavListProps, SideBladeProps, SkeletonProps, SkipLinkProps, SourceCitationsProps, StatusBadgeProps, StatusBadgeVariant, StreamingBubbleProps, SuggestedPromptsProps, ThemeMode, TooltipProps, TraceEvent, TypingIndicatorProps };
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- export{DateRangeFilter}from"./components/DateRangeFilter.mjs";export{DateRangePicker}from"./components/DateRangePicker.mjs";export{Alert}from"./components/_Primitives/Alert.mjs";export{NexusChatWidget}from"./components/NexusChat/NexusChatWidget.mjs";export{NexusChatDialog}from"./components/NexusChat/NexusChatDialog.mjs";export{FABButton}from"./components/NexusChat/FABButton.mjs";export{AgentChatWindow}from"./components/NexusChat/AgentChatWindow.mjs";export{AgentChatWindowHeader}from"./components/NexusChat/AgentChatWindowHeader.mjs";export{ChatInput}from"./components/NexusChat/ChatInput.mjs";export{ChatHistory}from"./components/NexusChat/ChatHistory.mjs";export{ChatHistoryHeader}from"./components/NexusChat/ChatHistoryHeader.mjs";export{ChatHistoryButtonBase}from"./components/NexusChat/ChatHistoryButtonBase.mjs";export{chatHistoryMatchesQuery,filterChatHistoryConversations}from"./components/NexusChat/ChatHistorySearch.mjs";export{CopyableTableContainer}from"./components/NexusChat/ChatComponents/CopyableTableContainer.mjs";export{default as ChatAvatar}from"./components/NexusChat/ChatComponents/ChatAvatar.mjs";export{default as MarkdownContent,chatWindowMarkdownComponents}from"./components/NexusChat/ChatComponents/MarkdownContent.mjs";export{default as MessageBubble}from"./components/NexusChat/ChatComponents/MessageBubble.mjs";export{default as MessageFeedbackBar}from"./components/NexusChat/ChatComponents/MessageFeedbackBar.mjs";export{default as StreamingBubble}from"./components/NexusChat/ChatComponents/StreamingBubble.mjs";export{default as TypingIndicator}from"./components/NexusChat/ChatComponents/TypingIndicator.mjs";export{default as SuggestedPrompts}from"./components/NexusChat/ChatComponents/SuggestedPrompts.mjs";export{default as MessageList}from"./components/NexusChat/ChatComponents/MessageList.mjs";export{default as EmptyState}from"./components/NexusChat/ChatComponents/EmptyState.mjs";export{default as SourceCitations}from"./components/NexusChat/ChatComponents/SourceCitations.mjs";export{latestTraceLabel}from"./components/NexusChat/ChatComponents/latestTraceLabel.mjs";export{Code}from"./components/Code.mjs";export{Container}from"./components/_Primitives/Container.mjs";export{Grid}from"./components/_Primitives/Grid.mjs";export{Link}from"./components/_Primitives/Link.mjs";export{Select}from"./components/Select.mjs";export{SkipLink}from"./components/SkipLink.mjs";export{StatusBadge}from"./components/StatusBadge.mjs";export{Switch}from"./components/_Primitives/Switch.mjs";export{ActionBarTitle,Body1,Body2,Caption,ChatWindowBody,H1,H2,H3,H4,Span}from"./components/Typography.mjs";export{ActionBar}from"./components/ActionBar.mjs";export{AccordionGroup,AccordionGroupItem}from"./components/AccordionGroup.mjs";export{AccordionSingle}from"./components/AccordionSingle.mjs";export{AiButton}from"./components/Buttons/AiButton.mjs";export{AiChip}from"./components/AiChip.mjs";export{AiCard}from"./components/AiCard.mjs";export{AiGlassCard}from"./components/AiGlassCard.mjs";export{AiPaper}from"./components/AiPaper.mjs";export{AiGlassPaper}from"./components/AiGlassPaper.mjs";export{Box}from"./components/_Primitives/Box.mjs";export{Collapse}from"./components/_Primitives/Collapse.mjs";export{NexusDataGrid}from"./components/NexusDataGrid.mjs";export{ButtonBase}from"./components/Buttons/ButtonBase.mjs";export{Card}from"./components/Card.mjs";export{Checkbox}from"./components/FormControls/Checkbox.mjs";export{FormControlLabel}from"./components/FormControls/FormControlLabel.mjs";export{FormGroup}from"./components/FormControls/FormGroup.mjs";export{CheckboxGroup}from"./components/FormControls/CheckboxGroup.mjs";export{Chip}from"./components/_Primitives/Chip.mjs";export{Dialog,DialogActions,DialogContent,DialogContentText,DialogTitle}from"./components/Dialog.mjs";export{Divider}from"./components/_Primitives/Divider.mjs";export{GlassCard}from"./components/GlassCard.mjs";export{GlassPaper}from"./components/GlassPaper.mjs";export{GlassPaperAsync}from"./components/GlassPaperAsync.mjs";export{PaperAsync}from"./components/PaperAsync.mjs";export{GreenWaveBackground}from"./components/GreenWaveBackground.mjs";export{IconButton}from"./components/Buttons/IconButton.mjs";export{Avatar}from"./components/Avatar.mjs";export{LoadingSpinnerNexus}from"./components/LoadingSpinnerNexus.mjs";export{LocationMultiSelect}from"./components/LocationMultiSelect.mjs";export{LogoOptions}from"./components/LogoOptions/index.mjs";export{NexusHome}from"./components/NexusHome.mjs";export{default as NexusLogo}from"./components/NexusLogo.mjs";export{Paper}from"./components/_Primitives/Paper.mjs";export{PrimaryButton}from"./components/Buttons/PrimaryButton.mjs";export{PrimaryButtonLink}from"./components/Buttons/PrimaryButtonLink.mjs";export{SecondaryButton}from"./components/Buttons/SecondaryButton.mjs";export{RagDot}from"./components/RagDot.mjs";export{RagChip}from"./components/RagChip.mjs";export{SecondaryButtonLink}from"./components/Buttons/SecondaryButtonLink.mjs";export{SearchInput}from"./components/SearchInput.mjs";export{SideBlade}from"./components/SideBlade/SideBlade.mjs";export{SideBladeNavList}from"./components/SideBlade/SideBladeNavList.mjs";export{SideBladeNavListItem}from"./components/SideBlade/SideBladeNavListItem.mjs";export{Skeleton}from"./components/_Primitives/Skeleton.mjs";export{SkillChip}from"./components/SkillChip.mjs";export{Stack}from"./components/_Primitives/Stack.mjs";export{StatusChip}from"./components/StatusChip.mjs";export{Tab}from"./components/_Primitives/Tab.mjs";export{Tabs}from"./components/_Primitives/Tabs.mjs";export{TextField}from"./components/_Primitives/TextField.mjs";export{ThemeToggle}from"./components/ThemeToggle.mjs";export{Tooltip}from"./components/Tooltip.mjs";export{NexusLineChart}from"./components/Charts/NexusLineChart.mjs";export{NexusBarChart}from"./components/Charts/NexusBarChart.mjs";export{NexusPieChart}from"./components/Charts/NexusPieChart.mjs";export{default as nexusLogoNode}from"./assets/images/nexus-logo-node.svg.mjs";export{default as nexusLogoFavicon}from"./assets/images/nexus-logo-favicon.svg.mjs";export{default as nexusLogoIco}from"./assets/images/favicon.ico.mjs";export{getFaviconUrls}from"./assets/images/urls.mjs";export{FaviconLinks}from"./components/FaviconLinks.mjs";export{createSageTheme}from"./theme/sageTheme.mjs";export{colours,fontSageHeadline,fontSageText,fontSageUI,getModeTokens,gradients}from"./theme/tokens.mjs";export{useTokens}from"./theme/useTokens.mjs";export{default as MuiAppThemeProvider}from"./theme/MuiAppThemeProvider.mjs";export{ThemeModeContext,ThemeModeProvider,useThemeMode}from"./theme/ThemeContext.mjs";export{AlertTitle,MenuItem,alpha,useMediaQuery,useTheme}from"@mui/material";export{formatSurnameFirstname}from"./utils/nameFormats.mjs";export{formatDate,getFiscalPeriod}from"./utils/dateFormats.mjs";export{expandableText,getGradientBorderStyles,leftPipe}from"./theme/sxHelpers.mjs";
1
+ export{DateRangeFilter}from"./components/DateRangeFilter.mjs";export{DateRangePicker}from"./components/DateRangePicker.mjs";export{Alert}from"./components/_Primitives/Alert.mjs";export{NexusChatWidget}from"./components/NexusChat/NexusChatWidget.mjs";export{NexusChatDialog}from"./components/NexusChat/NexusChatDialog.mjs";export{FABButton}from"./components/NexusChat/FABButton.mjs";export{AgentChatWindow}from"./components/NexusChat/AgentChatWindow.mjs";export{AgentChatWindowHeader}from"./components/NexusChat/AgentChatWindowHeader.mjs";export{ChatInput}from"./components/NexusChat/ChatInput.mjs";export{ChatHistory}from"./components/NexusChat/ChatHistory.mjs";export{ChatHistoryHeader}from"./components/NexusChat/ChatHistoryHeader.mjs";export{ChatHistoryButtonBase}from"./components/NexusChat/ChatHistoryButtonBase.mjs";export{chatHistoryMatchesQuery,filterChatHistoryConversations}from"./components/NexusChat/ChatHistorySearch.mjs";export{CopyableTableContainer}from"./components/NexusChat/ChatComponents/CopyableTableContainer.mjs";export{default as ChatAvatar}from"./components/NexusChat/ChatComponents/ChatAvatar.mjs";export{default as MarkdownContent,chatWindowMarkdownComponents}from"./components/NexusChat/ChatComponents/MarkdownContent.mjs";export{default as MessageBubble}from"./components/NexusChat/ChatComponents/MessageBubble.mjs";export{default as MessageFeedbackBar}from"./components/NexusChat/ChatComponents/MessageFeedbackBar.mjs";export{default as StreamingBubble}from"./components/NexusChat/ChatComponents/StreamingBubble.mjs";export{default as TypingIndicator}from"./components/NexusChat/ChatComponents/TypingIndicator.mjs";export{default as SuggestedPrompts}from"./components/NexusChat/ChatComponents/SuggestedPrompts.mjs";export{default as MessageList}from"./components/NexusChat/ChatComponents/MessageList.mjs";export{default as EmptyState}from"./components/NexusChat/ChatComponents/EmptyState.mjs";export{default as SourceCitations}from"./components/NexusChat/ChatComponents/SourceCitations.mjs";export{latestTraceLabel}from"./components/NexusChat/ChatComponents/latestTraceLabel.mjs";export{Code}from"./components/Code.mjs";export{Container}from"./components/_Primitives/Container.mjs";export{Grid}from"./components/_Primitives/Grid.mjs";export{Link}from"./components/_Primitives/Link.mjs";export{Select}from"./components/Select.mjs";export{SkipLink}from"./components/SkipLink.mjs";export{StatusBadge}from"./components/StatusBadge.mjs";export{Switch}from"./components/_Primitives/Switch.mjs";export{ActionBarTitle,Body1,Body2,Caption,ChatWindowBody,H1,H2,H3,H4,Span}from"./components/Typography.mjs";export{ActionBar}from"./components/ActionBar.mjs";export{AccordionGroup,AccordionGroupItem}from"./components/AccordionGroup.mjs";export{AccordionSingle}from"./components/AccordionSingle.mjs";export{AiButton}from"./components/Buttons/AiButton.mjs";export{AiChip}from"./components/AiChip.mjs";export{AiCard}from"./components/AiCard.mjs";export{AiGlassCard}from"./components/AiGlassCard.mjs";export{AiPaper}from"./components/AiPaper.mjs";export{AiGlassPaper}from"./components/AiGlassPaper.mjs";export{Box}from"./components/_Primitives/Box.mjs";export{CircularProgress}from"./components/_Primitives/CircularProgress.mjs";export{Collapse}from"./components/_Primitives/Collapse.mjs";export{NexusDataGrid}from"./components/NexusDataGrid.mjs";export{ButtonBase}from"./components/Buttons/ButtonBase.mjs";export{GhostButton}from"./components/Buttons/GhostButton.mjs";export{Card}from"./components/Card.mjs";export{Checkbox}from"./components/FormControls/Checkbox.mjs";export{FormControlLabel}from"./components/FormControls/FormControlLabel.mjs";export{FormGroup}from"./components/FormControls/FormGroup.mjs";export{CheckboxGroup}from"./components/FormControls/CheckboxGroup.mjs";export{Chip}from"./components/_Primitives/Chip.mjs";export{Dialog,DialogActions,DialogContent,DialogContentText,DialogTitle}from"./components/Dialog.mjs";export{Divider}from"./components/_Primitives/Divider.mjs";export{GlassCard}from"./components/GlassCard.mjs";export{GlassPaper}from"./components/GlassPaper.mjs";export{GlassPaperAsync}from"./components/GlassPaperAsync.mjs";export{PaperAsync}from"./components/PaperAsync.mjs";export{GreenWaveBackground}from"./components/GreenWaveBackground.mjs";export{IconButton}from"./components/Buttons/IconButton.mjs";export{Avatar}from"./components/Avatar.mjs";export{LoadingSpinnerNexus}from"./components/LoadingSpinnerNexus.mjs";export{LocationMultiSelect}from"./components/LocationMultiSelect.mjs";export{LogoOptions}from"./components/LogoOptions/index.mjs";export{NexusHome}from"./components/NexusHome.mjs";export{default as NexusLogo}from"./components/NexusLogo.mjs";export{Paper}from"./components/_Primitives/Paper.mjs";export{PrimaryButton}from"./components/Buttons/PrimaryButton.mjs";export{PrimaryButtonLink}from"./components/Buttons/PrimaryButtonLink.mjs";export{SecondaryButton}from"./components/Buttons/SecondaryButton.mjs";export{RagDot}from"./components/RagDot.mjs";export{RagChip}from"./components/RagChip.mjs";export{SecondaryButtonLink}from"./components/Buttons/SecondaryButtonLink.mjs";export{SearchInput}from"./components/SearchInput.mjs";export{SideBlade}from"./components/SideBlade/SideBlade.mjs";export{SideBladeNavList}from"./components/SideBlade/SideBladeNavList.mjs";export{SideBladeNavListItem}from"./components/SideBlade/SideBladeNavListItem.mjs";export{Skeleton}from"./components/_Primitives/Skeleton.mjs";export{SkillChip}from"./components/SkillChip.mjs";export{Stack}from"./components/_Primitives/Stack.mjs";export{StatusChip}from"./components/StatusChip.mjs";export{Tab}from"./components/_Primitives/Tab.mjs";export{Tabs}from"./components/_Primitives/Tabs.mjs";export{TextField}from"./components/_Primitives/TextField.mjs";export{ThemeToggle}from"./components/ThemeToggle.mjs";export{Tooltip}from"./components/Tooltip.mjs";export{NexusLineChart}from"./components/Charts/NexusLineChart.mjs";export{NexusBarChart}from"./components/Charts/NexusBarChart.mjs";export{NexusPieChart}from"./components/Charts/NexusPieChart.mjs";export{default as nexusLogoNode}from"./assets/images/nexus-logo-node.svg.mjs";export{default as nexusLogoFavicon}from"./assets/images/nexus-logo-favicon.svg.mjs";export{default as nexusLogoIco}from"./assets/images/favicon.ico.mjs";export{getFaviconUrls}from"./assets/images/urls.mjs";export{FaviconLinks}from"./components/FaviconLinks.mjs";export{createSageTheme}from"./theme/sageTheme.mjs";export{colours,fontSageHeadline,fontSageText,fontSageUI,getModeTokens,gradients}from"./theme/tokens.mjs";export{useTokens}from"./theme/useTokens.mjs";export{default as MuiAppThemeProvider}from"./theme/MuiAppThemeProvider.mjs";export{ThemeModeContext,ThemeModeProvider,useThemeMode}from"./theme/ThemeContext.mjs";export{AlertTitle,MenuItem,alpha,useMediaQuery,useTheme}from"@mui/material";export{formatSurnameFirstname}from"./utils/nameFormats.mjs";export{formatDate,getFiscalPeriod}from"./utils/dateFormats.mjs";export{expandableText,getGradientBorderStyles,leftPipe}from"./theme/sxHelpers.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "it-data-nexus-ui-library",
3
- "version": "2.0.2",
3
+ "version": "2.1.0",
4
4
  "description": "Nexus core components",
5
5
  "license": "ISC",
6
6
  "author": "emsmart-sage",