@carto/ps-react-ui 4.4.0-chat-ui.1 → 4.4.0-chat-ui.3
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.
- package/dist/chat.js +1123 -393
- package/dist/chat.js.map +1 -1
- package/dist/components.js +141 -159
- package/dist/components.js.map +1 -1
- package/dist/copy-button-DGL1tyli.js +26 -0
- package/dist/copy-button-DGL1tyli.js.map +1 -0
- package/dist/index-BnyeR7Qx.js +6601 -0
- package/dist/index-BnyeR7Qx.js.map +1 -0
- package/dist/types/chat/const.d.ts +1 -0
- package/dist/types/chat/containers/styles.d.ts +6 -0
- package/dist/types/chat/feedback/chat-tool-code-area.d.ts +4 -0
- package/dist/types/chat/feedback/chat-tool-full-view-dialog.d.ts +2 -0
- package/dist/types/chat/feedback/chat-tool-group.d.ts +2 -0
- package/dist/types/chat/feedback/chat-tool-trace.d.ts +3 -0
- package/dist/types/chat/feedback/get-tool-label.d.ts +2 -0
- package/dist/types/chat/feedback/index.d.ts +4 -1
- package/dist/types/chat/feedback/styles.d.ts +149 -3
- package/dist/types/chat/index.d.ts +6 -3
- package/dist/types/chat/types.d.ts +58 -5
- package/dist/widgets/toolbar-actions.js +101 -6693
- package/dist/widgets/toolbar-actions.js.map +1 -1
- package/package.json +1 -1
- package/src/chat/bubbles/styles.ts +42 -0
- package/src/chat/const.ts +1 -0
- package/src/chat/containers/styles.ts +6 -0
- package/src/chat/feedback/chat-tool-code-area.test.tsx +23 -0
- package/src/chat/feedback/chat-tool-code-area.tsx +71 -0
- package/src/chat/feedback/chat-tool-full-view-dialog.test.tsx +39 -0
- package/src/chat/feedback/chat-tool-full-view-dialog.tsx +121 -0
- package/src/chat/feedback/chat-tool-group.test.tsx +84 -0
- package/src/chat/feedback/chat-tool-group.tsx +156 -0
- package/src/chat/feedback/chat-tool-trace.test.tsx +81 -0
- package/src/chat/feedback/chat-tool-trace.tsx +187 -0
- package/src/chat/feedback/get-tool-label.test.tsx +91 -0
- package/src/chat/feedback/get-tool-label.ts +13 -0
- package/src/chat/feedback/index.ts +4 -1
- package/src/chat/feedback/styles.ts +153 -4
- package/src/chat/index.ts +14 -3
- package/src/chat/types.ts +64 -5
- package/dist/types/chat/feedback/chat-tools.d.ts +0 -2
- package/src/chat/feedback/chat-tools.test.tsx +0 -23
- package/src/chat/feedback/chat-tools.tsx +0 -54
package/dist/chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sources":["../src/chat/const.ts","../src/chat/bubbles/styles.ts","../src/chat/bubbles/chat-user-message.tsx","../src/chat/bubbles/chat-agent-message.tsx","../src/chat/bubbles/chat-error-message.tsx","../src/chat/bubbles/chat-suggestion-button.tsx","../src/chat/feedback/styles.ts","../src/chat/feedback/chat-thinking.tsx","../src/chat/feedback/chat-loader.tsx","../src/chat/containers/styles.ts","../src/chat/containers/chat-content.tsx","../src/chat/containers/chat-header.tsx","../src/chat/containers/chat-footer.tsx","../src/chat/containers/chat-starter.tsx","../src/chat/feedback/chat-actions-container.tsx","../src/chat/feedback/chat-rating-action.tsx","../src/chat/feedback/chat-tools.tsx"],"sourcesContent":["export const CHAT_MAX_WIDTH = 768\nexport const CHAT_SCROLL_DELAY = 300\nexport const CHAT_DIVIDER_DELAY = 100\n","import { styled, Typography, type SxProps, type Theme } from '@mui/material'\n\nexport const ChatMessageOverflow = styled(Typography)(() => ({\n whiteSpace: 'pre-wrap',\n overflowX: 'clip',\n overflowWrap: 'break-word',\n maxWidth: '100%',\n}))\nChatMessageOverflow.displayName = 'ChatMessageOverflow'\n\nexport const styles = {\n agentMessageContainer: (theme: Theme) => ({\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n paddingRight: theme.spacing(4),\n '& + .PsChat--agent-message': {\n marginTop: theme.spacing(1),\n },\n '& + .PsChat--user-message': {\n marginTop: theme.spacing(3),\n },\n }),\n userMessageContainer: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end',\n paddingLeft: ({ spacing }) => spacing(4),\n '&:has(+ .PsChat--user-message) > .PsChat--user-message-inner': {\n borderRadius: ({ spacing }) => spacing(2),\n },\n '& + .PsChat--user-message': {\n marginTop: ({ spacing }) => spacing(0.5),\n },\n '& + .PsChat--agent-message': {\n marginTop: ({ spacing }) => spacing(3),\n },\n },\n userMessage: {\n padding: ({ spacing }) => spacing(0.75, 1.5),\n borderRadius: ({ spacing }) => spacing(2, 2, 0.25, 2),\n border: ({ palette }) => `1px solid ${palette.divider}`,\n backgroundColor: ({ palette }) => palette.background.default,\n color: ({ palette }) => palette.text.primary,\n width: 'fit-content',\n },\n muted: {\n color: ({ palette }) => palette.text.disabled,\n },\n userMessageTop: {\n textAlign: 'right',\n marginBottom: ({ spacing }) => spacing(0.5),\n },\n errorMessage: {\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n gap: ({ spacing }) => spacing(1),\n },\n errorActions: {\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(0.5),\n },\n errorAction: {\n color: ({ palette }) => palette.text.primary,\n },\n errorActionSeparator: {\n mr: 0.5,\n color: ({ palette }) => palette.black[25],\n fontWeight: 600,\n },\n suggestionButton: {\n transition: 'border-color 0.2s',\n width: '100%',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n textAlign: 'left',\n gap: ({ spacing }) => spacing(1),\n padding: ({ spacing }) => spacing(0.75, 1.5),\n borderRadius: ({ spacing }) => spacing(2),\n border: ({ palette }) => `1px solid ${palette.divider}`,\n '& .MuiSvgIcon-root': {\n transition: 'color 0.2s',\n color: 'inherit',\n fontSize: ({ spacing }) => spacing(1.5),\n width: ({ spacing }) => spacing(1.5),\n minWidth: ({ spacing }) => spacing(1.5),\n height: ({ spacing }) => spacing(2.5),\n },\n '&:not(.Mui-disabled) .MuiSvgIcon-root': {\n color: ({ palette }) => palette.text.secondary,\n },\n '&:hover': {\n borderColor: ({ palette }) => palette.text.hint,\n '& .MuiSvgIcon-root': {\n color: ({ palette }) => palette.text.primary,\n },\n },\n '&.Mui-disabled': {\n color: ({ palette }) => palette.text.disabled,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box } from '@mui/material'\nimport type { ChatUserMessageProps } from '../types'\nimport { ChatMessageOverflow, styles } from './styles'\n\nexport function ChatUserMessage({\n children,\n muted = false,\n topContext,\n sx,\n}: ChatUserMessageProps) {\n return (\n <Box className='PsChat--user-message' sx={styles.userMessageContainer}>\n {topContext && <Box sx={styles.userMessageTop}>{topContext}</Box>}\n <ChatMessageOverflow\n className='PsChat--user-message-inner'\n variant='body2'\n sx={{\n ...styles.userMessage,\n ...(muted ? styles.muted : undefined),\n ...sx,\n }}\n >\n {children}\n </ChatMessageOverflow>\n </Box>\n )\n}\n","import { Box, styled, type BoxProps } from '@mui/material'\nimport { styles } from './styles'\n\nconst InnerBox = ({ className, ...props }: BoxProps) => (\n <Box className={`PsChat--agent-message ${className ?? ''}`} {...props} />\n)\n\nexport const ChatAgentMessage = styled(InnerBox)(({ theme }) =>\n styles.agentMessageContainer(theme),\n)\nChatAgentMessage.displayName = 'ChatAgentMessage'\n","import { Box, Link, Typography } from '@mui/material'\nimport { ErrorOutline } from '@mui/icons-material'\nimport type { ChatErrorMessageProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatErrorMessage({\n errors,\n icon,\n actions,\n sx,\n}: ChatErrorMessageProps) {\n return (\n <Box sx={{ ...styles.errorMessage, ...sx }}>\n {icon ?? <ErrorOutline fontSize='medium' color='error' />}\n {errors.map((error, index) => (\n <Typography key={index} variant='subtitle2' color='error.relatedDark'>\n {error}\n </Typography>\n ))}\n {actions?.length ? (\n <Box sx={styles.errorActions}>\n {(actions ?? []).map((action, index) => (\n <span key={index}>\n {index > 0 && (\n <Typography\n component='span'\n variant='body2'\n sx={styles.errorActionSeparator}\n >\n ·\n </Typography>\n )}\n <Link\n component='button'\n variant='body2'\n onClick={action.onClick}\n sx={styles.errorAction}\n >\n {action.label}\n </Link>\n </span>\n ))}\n </Box>\n ) : null}\n </Box>\n )\n}\n","import { ButtonBase, Typography } from '@mui/material'\nimport { ArrowUpward } from '@mui/icons-material'\nimport type { ChatSuggestionButtonProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatSuggestionButton({\n label,\n color,\n sx,\n ...props\n}: ChatSuggestionButtonProps) {\n return (\n <ButtonBase\n sx={{\n ...styles.suggestionButton,\n ...(color ? { backgroundColor: color } : undefined),\n ...sx,\n }}\n {...props}\n >\n <Typography color='inherit' variant='body2'>\n {label}\n </Typography>\n <ArrowUpward />\n </ButtonBase>\n )\n}\n","import { type SxProps, type Theme } from '@mui/material'\nimport { keyframes } from '@mui/material/styles'\n\nconst shimmer = keyframes`\n 0% {\n background-position: 150% 0;\n }\n 100% {\n background-position: -50% 0;\n }\n`\n\nconst breatheOuter = keyframes`\n 0% { transform: scale(0.68); opacity: 0.7; }\n 40% { transform: scale(1); opacity: 1; }\n 80% { transform: scale(0.6); opacity: 0.65; }\n 100% { transform: scale(0.68); opacity: 0.7; }\n`\n\nconst breatheInner = keyframes`\n 0% { transform: scale(1); }\n 40% { transform: scale(0.75); }\n 80% { transform: scale(1.125); }\n 100% { transform: scale(1); }\n`\n\nexport const styles = {\n thinking: {\n display: 'flex',\n alignItems: 'center',\n minHeight: ({ spacing }) => spacing(3),\n background: ({ palette }) => `linear-gradient(\n 90deg,\n ${palette.text.disabled} 25%,\n ${palette.text.secondary} 50%,\n ${palette.text.disabled} 75%\n )`,\n backgroundSize: '200% 100%',\n backgroundClip: 'text',\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n animation: `${shimmer} 2s ease-in-out infinite`,\n animationDuration: '2s',\n },\n loader: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n p: 1,\n },\n loaderOuterCircle: {\n position: 'absolute',\n inset: 0,\n margin: 'auto',\n borderRadius: '50%',\n backgroundColor: ({ palette }) => palette.action.disabled,\n animation: `${breatheOuter} 1s ease-in-out infinite`,\n },\n loaderInnerCircle: {\n position: 'absolute',\n inset: 0,\n margin: 'auto',\n borderRadius: '50%',\n backgroundColor: ({ palette }) => palette.text.primary,\n animation: `${breatheInner} 1s ease-in-out infinite`,\n },\n tools: {\n width: '100%',\n },\n toolHeader: {\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(1),\n },\n toolStatusIcon: {\n display: 'flex',\n alignItems: 'center',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Typography } from '@mui/material'\nimport type { ChatThinkingProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatThinking({\n children = 'Thinking...',\n duration = 2000,\n sx,\n}: ChatThinkingProps) {\n const durSeconds = `${duration / 1000}s`\n return (\n <Typography\n variant='body2'\n sx={{\n ...styles.thinking,\n animationDuration: durSeconds,\n ...sx,\n }}\n >\n {children}\n </Typography>\n )\n}\n","import { Box } from '@mui/material'\nimport type { ChatLoaderProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatLoader({ size = 24, labels = {}, sx }: ChatLoaderProps) {\n return (\n <Box\n role='status'\n aria-busy={true}\n aria-label={labels.loading ?? 'Loading'}\n sx={{ ...styles.loader, width: size, height: size, ...sx }}\n >\n <Box\n component='span'\n sx={{\n ...styles.loaderOuterCircle,\n width: size * 0.75,\n height: size * 0.75,\n }}\n />\n <Box\n component='span'\n sx={{\n ...styles.loaderInnerCircle,\n width: size * 0.32,\n height: size * 0.32,\n }}\n />\n </Box>\n )\n}\n","import type { SxProps, Theme } from '@mui/material'\nimport { keyframes } from '@mui/material/styles'\nimport { CHAT_MAX_WIDTH } from '../const'\n\nconst scrollBorders = keyframes`\n 0% { border-top-color: transparent; border-bottom-color: var(--chat-border-color) }\n 0.1% { border-top-color: var(--chat-border-color); border-bottom-color: var(--chat-border-color) }\n 99.9% { border-top-color: var(--chat-border-color); border-bottom-color: var(--chat-border-color) }\n 100% { border-top-color: var(--chat-border-color); border-bottom-color: transparent }\n`\n\nconst showFab = keyframes`\n 0% { opacity: 1; pointer-events: auto }\n 95% { opacity: 1; pointer-events: auto }\n 100% { opacity: 0; pointer-events: none }\n`\n\nexport const styles = {\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: ({ spacing }) => spacing(1),\n },\n headerTitle: {\n flexGrow: 1,\n px: ({ spacing }) => spacing(0.5),\n },\n headerActions: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: ({ spacing }) => spacing(2),\n gap: ({ spacing }) => spacing(0.5),\n },\n footerWrapper: {\n padding: ({ spacing }) => spacing(1),\n position: 'relative',\n },\n footerCorner: {\n position: 'absolute',\n bottom: '38px',\n right: `max(16px, calc(50% - ${CHAT_MAX_WIDTH / 2}px + 6px))`,\n margin: '0 auto',\n },\n footer: {\n maxWidth: CHAT_MAX_WIDTH,\n margin: '0 auto',\n },\n footerCaption: {\n textAlign: 'center',\n },\n content: {\n overflowY: 'auto',\n flex: 1,\n position: 'relative',\n mx: 'auto',\n maxWidth: CHAT_MAX_WIDTH,\n width: '100%',\n maxHeight: '100%',\n pt: 1,\n pb: 2,\n px: 2,\n display: 'flex',\n flexDirection: 'column',\n '--chat-border-color': ({ palette }) => palette.divider,\n borderTop: '1px solid transparent',\n borderBottom: '1px solid transparent',\n '@supports (animation-timeline: scroll())': {\n animation: `${scrollBorders} linear both`,\n animationTimeline: 'scroll(self)',\n },\n },\n jumpToLatestWrapper: {\n position: 'sticky',\n bottom: ({ spacing }) => spacing(3),\n height: 0,\n display: 'flex',\n justifyContent: 'center',\n zIndex: 1,\n },\n jumpToLatest: {\n opacity: 0,\n pointerEvents: 'none',\n '@supports (animation-timeline: scroll())': {\n animation: `${showFab} linear both`,\n animationTimeline: 'scroll(nearest)',\n },\n '@supports not (animation-timeline: scroll())': {\n display: 'none',\n },\n },\n starter: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n padding: ({ spacing }) => spacing(3),\n textAlign: 'center',\n maxWidth: CHAT_MAX_WIDTH,\n margin: '0 auto',\n },\n starterItems: {\n display: 'grid',\n width: '100%',\n marginTop: ({ spacing }) => spacing(2),\n },\n starterItemsTwoCol: {\n gridTemplateColumns: 'repeat(2, 1fr)',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { useRef } from 'react'\nimport { Box, Fab } from '@mui/material'\nimport { KeyboardArrowDown } from '@mui/icons-material'\nimport type { ChatContentProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatContent({ children, labels = {}, sx }: ChatContentProps) {\n const scrollRef = useRef<HTMLDivElement>(null)\n\n const scrollToBottom = () => {\n scrollRef.current?.scrollTo({\n top: scrollRef.current.scrollHeight,\n behavior: 'smooth',\n })\n }\n\n return (\n <Box ref={scrollRef} sx={{ ...styles.content, ...sx }}>\n {children}\n <Box sx={styles.jumpToLatestWrapper}>\n <Fab\n size='small'\n onClick={scrollToBottom}\n aria-label={labels.jumpToLatest ?? 'Jump to latest'}\n sx={styles.jumpToLatest}\n >\n <KeyboardArrowDown />\n </Fab>\n </Box>\n </Box>\n )\n}\n","import { Box, IconButton, Typography } from '@mui/material'\nimport { Close } from '@mui/icons-material'\nimport type { ChatHeaderProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatHeader({\n leftSlot,\n title,\n rightSlot,\n onClose,\n sx,\n}: ChatHeaderProps) {\n return (\n <Box sx={{ ...styles.header, ...sx }}>\n {leftSlot}\n <Typography variant='subtitle2' sx={styles.headerTitle}>\n {title}\n </Typography>\n <Box sx={styles.headerActions}>\n {rightSlot}\n {onClose && (\n <IconButton size='medium' onClick={onClose} aria-label='Close'>\n <Close />\n </IconButton>\n )}\n </Box>\n </Box>\n )\n}\n","import {\n Box,\n FilledInput,\n FormControl,\n FormHelperText,\n IconButton,\n} from '@mui/material'\nimport { ArrowUpwardOutlined, StopCircleOutlined } from '@mui/icons-material'\nimport type { ChatFooterProps } from '../types'\nimport { styles } from './styles'\n\nconst DEFAULT_CAPTION =\n 'Responses are AI generated. Please verify key information.'\n\nexport function ChatFooter({\n value,\n onChange,\n onSend,\n onStop,\n isGenerating = false,\n disabled = false,\n placeholder = 'Type a message...',\n labels = {},\n caption = DEFAULT_CAPTION,\n sx,\n}: ChatFooterProps) {\n const canSend = value.trim() && !disabled && !isGenerating\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault()\n if (canSend) {\n onSend()\n }\n }\n }\n\n return (\n <FormControl fullWidth sx={{ ...styles.footerWrapper, ...sx }}>\n <FilledInput\n multiline\n value={value}\n onChange={(e) => onChange(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n disabled={disabled || isGenerating}\n sx={styles.footer}\n style={{ minHeight: 0 }}\n fullWidth\n size='small'\n />\n <Box sx={styles.footerCorner}>\n {isGenerating && onStop ? (\n <IconButton\n size='small'\n onClick={onStop}\n disabled={disabled}\n aria-label={labels.stop ?? 'Stop'}\n >\n <StopCircleOutlined />\n </IconButton>\n ) : (\n <IconButton\n size='small'\n variant='contained'\n onClick={onSend}\n disabled={!canSend}\n aria-label={labels.send ?? 'Send'}\n >\n <ArrowUpwardOutlined />\n </IconButton>\n )}\n </Box>\n {caption ? (\n <FormHelperText sx={styles.footerCaption}>{caption}</FormHelperText>\n ) : null}\n </FormControl>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport type { ChatStarterProps } from '../types'\nimport { ChatSuggestionButton } from '../bubbles/chat-suggestion-button'\nimport { styles } from './styles'\n\nconst DEFAULT_PALETTE = [\n '#C9DB7440', // pastel green\n '#FE88B140', // pastel red\n '#9EB9F340', // pastel blue\n '#F6CF7140', // pastel yellow\n]\n\nexport function ChatStarter({\n icon,\n title,\n description,\n items,\n size = 'small',\n onSelect,\n sx,\n}: ChatStarterProps) {\n const fullItems = items.map((item, index) => {\n if (typeof item === 'string') {\n return {\n label: item,\n color: DEFAULT_PALETTE[index],\n }\n } else {\n return {\n label: item.label,\n color: item.color ?? DEFAULT_PALETTE[index],\n }\n }\n })\n return (\n <Box\n sx={{\n ...styles.starter,\n gap: size === 'small' ? 1 : 2,\n ...sx,\n }}\n >\n {icon}\n {title && (\n <Typography variant={size === 'small' ? 'h6' : 'h5'}>\n {title}\n </Typography>\n )}\n {description && (\n <Typography\n variant={size === 'small' ? 'body2' : 'body1'}\n color='text.secondary'\n >\n {description}\n </Typography>\n )}\n <Box\n sx={{\n ...styles.starterItems,\n gap: size === 'small' ? 1 : 2,\n ...(items.length > 2 ? styles.starterItemsTwoCol : undefined),\n }}\n >\n {fullItems.map((item) => (\n <ChatSuggestionButton\n key={item.label}\n label={item.label}\n onClick={() => onSelect?.(item.label)}\n color={item.color}\n />\n ))}\n </Box>\n </Box>\n )\n}\n","import { Box, styled } from '@mui/material'\n\nexport const ChatActionsContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(0.5),\n}))\n","import { IconButton } from '@mui/material'\nimport {\n ThumbUpOutlined,\n ThumbDownOutlined,\n ThumbUp,\n ThumbDown,\n} from '@mui/icons-material'\nimport type { ChatRatingActionProps } from '../types'\n\nexport function ChatRatingAction({\n rating,\n onRatingChange,\n labels = {},\n}: ChatRatingActionProps) {\n return (\n <>\n <IconButton\n size='small'\n onClick={() => onRatingChange?.(rating === 'up' ? null : 'up')}\n aria-label={labels.thumbUp ?? 'Thumbs up'}\n color={rating === 'up' ? 'primary' : undefined}\n >\n {rating === 'up' ? (\n <ThumbUp fontSize='small' />\n ) : (\n <ThumbUpOutlined fontSize='small' />\n )}\n </IconButton>\n <IconButton\n size='small'\n onClick={() => onRatingChange?.(rating === 'down' ? null : 'down')}\n aria-label={labels.thumbDown ?? 'Thumbs down'}\n color={rating === 'down' ? 'primary' : undefined}\n >\n {rating === 'down' ? (\n <ThumbDown fontSize='small' />\n ) : (\n <ThumbDownOutlined fontSize='small' />\n )}\n </IconButton>\n </>\n )\n}\n","import {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Box,\n CircularProgress,\n Typography,\n} from '@mui/material'\nimport {\n CheckCircleOutline,\n ErrorOutline,\n ExpandMore,\n} from '@mui/icons-material'\nimport type { ChatToolsProps, ChatToolItem } from '../types'\nimport { ChatThinking } from './chat-thinking'\nimport { styles } from './styles'\n\nfunction ToolStatusIcon({ status }: { status: ChatToolItem['status'] }) {\n switch (status) {\n case 'loading':\n return <CircularProgress size={16} />\n case 'thinking':\n return <ChatThinking>...</ChatThinking>\n case 'complete':\n return <CheckCircleOutline fontSize='small' color='success' />\n case 'error':\n return <ErrorOutline fontSize='small' color='error' />\n }\n}\n\nexport function ChatTools({ tools, labels = {}, sx }: ChatToolsProps) {\n return (\n <Box sx={{ ...styles.tools, ...sx }}>\n {labels.title && (\n <Typography variant='caption' color='text.secondary' sx={{ mb: 1 }}>\n {labels.title}\n </Typography>\n )}\n {tools.map((tool) => (\n <Accordion key={tool.id} disableGutters elevation={0}>\n <AccordionSummary expandIcon={<ExpandMore />}>\n <Box sx={styles.toolHeader}>\n <Box sx={styles.toolStatusIcon}>\n <ToolStatusIcon status={tool.status} />\n </Box>\n <Typography variant='body2'>{tool.name}</Typography>\n </Box>\n </AccordionSummary>\n {tool.content && <AccordionDetails>{tool.content}</AccordionDetails>}\n </Accordion>\n ))}\n </Box>\n )\n}\n"],"names":["CHAT_MAX_WIDTH","CHAT_SCROLL_DELAY","CHAT_DIVIDER_DELAY","ChatMessageOverflow","styled","Typography","whiteSpace","overflowX","overflowWrap","maxWidth","displayName","styles","agentMessageContainer","theme","width","display","flexDirection","alignItems","paddingRight","spacing","marginTop","userMessageContainer","paddingLeft","borderRadius","userMessage","padding","border","palette","divider","backgroundColor","background","default","color","text","primary","muted","disabled","userMessageTop","textAlign","marginBottom","errorMessage","flexWrap","gap","errorActions","errorAction","errorActionSeparator","mr","black","fontWeight","suggestionButton","transition","justifyContent","fontSize","minWidth","height","secondary","borderColor","hint","ChatUserMessage","t0","$","_c","children","t1","topContext","sx","undefined","t2","jsx","Box","t3","t4","t5","t6","InnerBox","className","props","ChatAgentMessage","ChatErrorMessage","errors","icon","actions","ErrorOutline","map","_temp","length","_temp2","jsxs","action","index_0","index","Link","onClick","label","error","ChatSuggestionButton","Symbol","for","ArrowUpward","ButtonBase","shimmer","keyframes","breatheOuter","breatheInner","thinking","minHeight","backgroundSize","backgroundClip","WebkitBackgroundClip","WebkitTextFillColor","animation","animationDuration","loader","position","p","loaderOuterCircle","inset","margin","loaderInnerCircle","tools","toolHeader","toolStatusIcon","ChatThinking","duration","durSeconds","ChatLoader","size","labels","loading","t7","t8","t9","t10","t11","t12","scrollBorders","showFab","header","headerTitle","flexGrow","px","headerActions","marginLeft","footerWrapper","footerCorner","bottom","right","footer","footerCaption","content","overflowY","flex","mx","maxHeight","pt","pb","--chat-border-color","borderTop","borderBottom","animationTimeline","jumpToLatestWrapper","zIndex","jumpToLatest","opacity","pointerEvents","starter","starterItems","starterItemsTwoCol","gridTemplateColumns","ChatContent","scrollRef","useRef","current","scrollTo","top","scrollHeight","behavior","scrollToBottom","KeyboardArrowDown","Fab","ChatHeader","leftSlot","title","rightSlot","onClose","IconButton","Close","DEFAULT_CAPTION","ChatFooter","value","onChange","onSend","onStop","isGenerating","placeholder","caption","trim","canSend","e","key","shiftKey","preventDefault","handleKeyDown","e_0","target","t13","FilledInput","t14","send","stop","StopCircleOutlined","ArrowUpwardOutlined","t15","FormHelperText","t16","FormControl","DEFAULT_PALETTE","ChatStarter","description","items","onSelect","T0","T1","fullItems","item_0","item","ChatActionsContainer","ChatRatingAction","rating","onRatingChange","thumbUp","ThumbUp","ThumbUpOutlined","thumbDown","ThumbDown","ThumbDownOutlined","ToolStatusIcon","status","CircularProgress","CheckCircleOutline","ChatTools","mb","tool","Accordion","AccordionSummary","ExpandMore","name","AccordionDetails","id"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat.js","sources":["../src/chat/const.ts","../src/chat/bubbles/styles.ts","../src/chat/bubbles/chat-user-message.tsx","../src/chat/bubbles/chat-agent-message.tsx","../src/chat/bubbles/chat-error-message.tsx","../src/chat/bubbles/chat-suggestion-button.tsx","../src/chat/feedback/styles.ts","../src/chat/feedback/chat-thinking.tsx","../src/chat/feedback/chat-loader.tsx","../src/chat/containers/styles.ts","../src/chat/containers/chat-content.tsx","../src/chat/containers/chat-header.tsx","../src/chat/containers/chat-footer.tsx","../src/chat/containers/chat-starter.tsx","../src/chat/feedback/chat-actions-container.tsx","../src/chat/feedback/chat-rating-action.tsx","../src/chat/feedback/chat-tool-full-view-dialog.tsx","../../../node_modules/.pnpm/@carto+meridian-ds@2.10.1_3840a3255140acf517b4642b73b6fa21/node_modules/@carto/meridian-ds/dist/OpenDiagonallyRight-DQEM4RAg.js","../src/chat/feedback/chat-tool-code-area.tsx","../src/chat/feedback/get-tool-label.ts","../src/chat/feedback/chat-tool-trace.tsx","../src/chat/feedback/chat-tool-group.tsx"],"sourcesContent":["export const CHAT_MAX_WIDTH = 768\nexport const CHAT_SCROLL_DELAY = 300\nexport const CHAT_DIVIDER_DELAY = 100\nexport const CHAT_TOOL_CODE_AREA_MAX_HEIGHT = 126\n","import { styled, Typography, type SxProps, type Theme } from '@mui/material'\n\nexport const ChatMessageOverflow = styled(Typography)(() => ({\n whiteSpace: 'pre-wrap',\n overflowX: 'clip',\n overflowWrap: 'break-word',\n maxWidth: '100%',\n}))\nChatMessageOverflow.displayName = 'ChatMessageOverflow'\n\nexport const styles = {\n agentMessageContainer: (theme: Theme) => ({\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n paddingRight: theme.spacing(4),\n '& + .PsChat--agent-message': {\n marginTop: theme.spacing(1),\n },\n '& + .PsChat--user-message': {\n marginTop: theme.spacing(3),\n },\n '& > p:first-of-type': {\n marginTop: 0,\n },\n '& table': {\n alignSelf: 'stretch',\n display: 'block',\n overflowX: 'auto',\n maxWidth: '100%',\n borderCollapse: 'collapse',\n margin: theme.spacing(1, 0),\n fontSize: '0.875em',\n },\n '& th, & td': {\n border: `1px solid ${theme.palette.divider}`,\n padding: theme.spacing(0.5, 1),\n textAlign: 'left',\n },\n '& th': {\n backgroundColor: theme.palette.action.hover,\n fontWeight: 600,\n },\n '& tr:nth-of-type(even) td': {\n backgroundColor: theme.palette.action.hover,\n },\n '& ul.contains-task-list': {\n listStyle: 'none',\n paddingLeft: 0,\n },\n '& .task-list-item input[type=\"checkbox\"]': {\n marginRight: theme.spacing(0.5),\n },\n '& del': {\n textDecoration: 'line-through',\n opacity: 0.7,\n },\n '& > ul, & > ol': {\n margin: theme.spacing(1, 0),\n paddingLeft: theme.spacing(3),\n '& > li + li': {\n marginTop: theme.spacing(1),\n },\n },\n }),\n userMessageContainer: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end',\n paddingLeft: ({ spacing }) => spacing(4),\n '&:has(+ .PsChat--user-message) > .PsChat--user-message-inner': {\n borderRadius: ({ spacing }) => spacing(2),\n },\n '& + .PsChat--user-message': {\n marginTop: ({ spacing }) => spacing(0.5),\n },\n '& + .PsChat--agent-message': {\n marginTop: ({ spacing }) => spacing(3),\n },\n },\n userMessage: {\n padding: ({ spacing }) => spacing(0.75, 1.5),\n borderRadius: ({ spacing }) => spacing(2, 2, 0.25, 2),\n border: ({ palette }) => `1px solid ${palette.divider}`,\n backgroundColor: ({ palette }) => palette.background.default,\n color: ({ palette }) => palette.text.primary,\n width: 'fit-content',\n },\n muted: {\n color: ({ palette }) => palette.text.disabled,\n },\n userMessageTop: {\n textAlign: 'right',\n marginBottom: ({ spacing }) => spacing(0.5),\n },\n errorMessage: {\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n gap: ({ spacing }) => spacing(1),\n },\n errorActions: {\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(0.5),\n },\n errorAction: {\n color: ({ palette }) => palette.text.primary,\n },\n errorActionSeparator: {\n mr: 0.5,\n color: ({ palette }) => palette.black[25],\n fontWeight: 600,\n },\n suggestionButton: {\n transition: 'border-color 0.2s',\n width: '100%',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n textAlign: 'left',\n gap: ({ spacing }) => spacing(1),\n padding: ({ spacing }) => spacing(0.75, 1.5),\n borderRadius: ({ spacing }) => spacing(2),\n border: ({ palette }) => `1px solid ${palette.divider}`,\n '& .MuiSvgIcon-root': {\n transition: 'color 0.2s',\n color: 'inherit',\n fontSize: ({ spacing }) => spacing(1.5),\n width: ({ spacing }) => spacing(1.5),\n minWidth: ({ spacing }) => spacing(1.5),\n height: ({ spacing }) => spacing(2.5),\n },\n '&:not(.Mui-disabled) .MuiSvgIcon-root': {\n color: ({ palette }) => palette.text.secondary,\n },\n '&:hover': {\n borderColor: ({ palette }) => palette.text.hint,\n '& .MuiSvgIcon-root': {\n color: ({ palette }) => palette.text.primary,\n },\n },\n '&.Mui-disabled': {\n color: ({ palette }) => palette.text.disabled,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box } from '@mui/material'\nimport type { ChatUserMessageProps } from '../types'\nimport { ChatMessageOverflow, styles } from './styles'\n\nexport function ChatUserMessage({\n children,\n muted = false,\n topContext,\n sx,\n}: ChatUserMessageProps) {\n return (\n <Box className='PsChat--user-message' sx={styles.userMessageContainer}>\n {topContext && <Box sx={styles.userMessageTop}>{topContext}</Box>}\n <ChatMessageOverflow\n className='PsChat--user-message-inner'\n variant='body2'\n sx={{\n ...styles.userMessage,\n ...(muted ? styles.muted : undefined),\n ...sx,\n }}\n >\n {children}\n </ChatMessageOverflow>\n </Box>\n )\n}\n","import { Box, styled, type BoxProps } from '@mui/material'\nimport { styles } from './styles'\n\nconst InnerBox = ({ className, ...props }: BoxProps) => (\n <Box className={`PsChat--agent-message ${className ?? ''}`} {...props} />\n)\n\nexport const ChatAgentMessage = styled(InnerBox)(({ theme }) =>\n styles.agentMessageContainer(theme),\n)\nChatAgentMessage.displayName = 'ChatAgentMessage'\n","import { Box, Link, Typography } from '@mui/material'\nimport { ErrorOutline } from '@mui/icons-material'\nimport type { ChatErrorMessageProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatErrorMessage({\n errors,\n icon,\n actions,\n sx,\n}: ChatErrorMessageProps) {\n return (\n <Box sx={{ ...styles.errorMessage, ...sx }}>\n {icon ?? <ErrorOutline fontSize='medium' color='error' />}\n {errors.map((error, index) => (\n <Typography key={index} variant='subtitle2' color='error.relatedDark'>\n {error}\n </Typography>\n ))}\n {actions?.length ? (\n <Box sx={styles.errorActions}>\n {(actions ?? []).map((action, index) => (\n <span key={index}>\n {index > 0 && (\n <Typography\n component='span'\n variant='body2'\n sx={styles.errorActionSeparator}\n >\n ·\n </Typography>\n )}\n <Link\n component='button'\n variant='body2'\n onClick={action.onClick}\n sx={styles.errorAction}\n >\n {action.label}\n </Link>\n </span>\n ))}\n </Box>\n ) : null}\n </Box>\n )\n}\n","import { ButtonBase, Typography } from '@mui/material'\nimport { ArrowUpward } from '@mui/icons-material'\nimport type { ChatSuggestionButtonProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatSuggestionButton({\n label,\n color,\n sx,\n ...props\n}: ChatSuggestionButtonProps) {\n return (\n <ButtonBase\n sx={{\n ...styles.suggestionButton,\n ...(color ? { backgroundColor: color } : undefined),\n ...sx,\n }}\n {...props}\n >\n <Typography color='inherit' variant='body2'>\n {label}\n </Typography>\n <ArrowUpward />\n </ButtonBase>\n )\n}\n","import { type SxProps, type Theme } from '@mui/material'\nimport { keyframes } from '@mui/material/styles'\n\nconst shimmer = keyframes`\n 0% {\n background-position: 150% 0;\n }\n 100% {\n background-position: -50% 0;\n }\n`\n\nconst breatheOuter = keyframes`\n 0% { transform: scale(0.68); opacity: 0.7; }\n 40% { transform: scale(1); opacity: 1; }\n 80% { transform: scale(0.6); opacity: 0.65; }\n 100% { transform: scale(0.68); opacity: 0.7; }\n`\n\nconst breatheInner = keyframes`\n 0% { transform: scale(1); }\n 40% { transform: scale(0.75); }\n 80% { transform: scale(1.125); }\n 100% { transform: scale(1); }\n`\n\nexport const styles = {\n thinking: {\n display: 'flex',\n alignItems: 'center',\n minHeight: ({ spacing }) => spacing(3),\n background: ({ palette }) => `linear-gradient(\n 90deg,\n ${palette.text.disabled} 25%,\n ${palette.text.secondary} 50%,\n ${palette.text.disabled} 75%\n )`,\n backgroundSize: '200% 100%',\n backgroundClip: 'text',\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n animation: `${shimmer} 2s ease-in-out infinite`,\n animationDuration: '2s',\n },\n loader: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n p: 1,\n },\n loaderOuterCircle: {\n position: 'absolute',\n inset: 0,\n margin: 'auto',\n borderRadius: '50%',\n backgroundColor: ({ palette }) => palette.action.disabled,\n animation: `${breatheOuter} 1s ease-in-out infinite`,\n },\n loaderInnerCircle: {\n position: 'absolute',\n inset: 0,\n margin: 'auto',\n borderRadius: '50%',\n backgroundColor: ({ palette }) => palette.text.primary,\n animation: `${breatheInner} 1s ease-in-out infinite`,\n },\n // --- Tool Trace styles ---\n traceHeader: {\n display: 'flex',\n alignItems: 'center',\n padding: 0,\n paddingLeft: ({ spacing }) => spacing(0.5),\n borderRadius: ({ spacing }) => spacing(0.5),\n width: 'fit-content',\n color: ({ palette }) => palette.text.secondary,\n '&:hover': {\n backgroundColor: ({ palette }) => palette.action.hover,\n },\n },\n traceChevron: {\n color: ({ palette }) => palette.text.secondary,\n transition: 'transform 0.2s',\n },\n traceDetailsWrapper: {\n marginTop: ({ spacing }) => spacing(0.5),\n padding: ({ spacing }) => spacing(1.5),\n border: '1px solid',\n borderColor: 'divider',\n borderRadius: ({ spacing }) => spacing(1),\n },\n traceField: {\n display: 'flex',\n alignItems: 'flex-start',\n gap: ({ spacing }) => spacing(1),\n },\n traceFieldLabel: {\n flexShrink: 0,\n },\n traceReference: {\n display: 'flex',\n borderRadius: ({ spacing }) => spacing(0.25),\n padding: ({ spacing }) => spacing(0, 0.5),\n gap: ({ spacing }) => spacing(0.5),\n backgroundColor: ({ palette }) => palette.success.relatedLight,\n color: ({ palette }) => palette.success.dark,\n },\n traceStatusSuccess: {\n color: ({ palette }) => palette.success.main,\n },\n traceStatusError: {\n color: ({ palette }) => palette.error.main,\n },\n // --- Code Area styles ---\n codeArea: {\n position: 'relative',\n width: '100%',\n },\n codeAreaPre: {\n margin: 0,\n padding: ({ spacing }) => spacing(1),\n borderRadius: ({ spacing }) => spacing(0.5),\n backgroundColor: ({ palette }) => palette.background.default,\n fontSize: '0.75rem',\n fontFamily: 'monospace',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n overflowY: 'auto',\n },\n codeAreaPreError: {\n borderLeft: ({ palette }) => `3px solid ${palette.error.main}`,\n backgroundColor: ({ palette }) => `${palette.error.main}08`,\n },\n codeAreaFullViewButton: {\n position: 'absolute',\n top: ({ spacing }) => spacing(0.5),\n right: ({ spacing }) => spacing(0.5),\n },\n // --- Full View Dialog styles ---\n fullViewDialog: {\n margin: ({ spacing }) => spacing(5),\n },\n fullViewPaper: {\n borderRadius: 1,\n },\n fullViewTitle: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: ({ spacing }) => spacing(2),\n borderBottom: '1px solid',\n borderBottomColor: 'divider',\n },\n fullViewDialogContent: {\n padding: 0,\n '&:first-of-type': { paddingTop: 0 },\n },\n fullViewPre: {\n margin: 0,\n padding: ({ spacing }) => spacing(1),\n background: ({ palette, spacing }) =>\n `linear-gradient(to right, ${palette.action.hover} calc(${spacing(1)} + 3em), ${palette.background.default} calc(${spacing(1)} + 3em))`,\n fontFamily: 'monospace',\n fontSize: '0.8125rem',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n lineHeight: 1.6,\n counterReset: 'line',\n },\n fullViewLine: {\n display: 'block',\n '&::before': {\n counterIncrement: 'line',\n content: 'counter(line)',\n display: 'inline-block',\n width: '2em',\n marginRight: '2em',\n textAlign: 'right',\n color: ({ palette }) => palette.text.secondary,\n userSelect: 'none',\n },\n },\n groupHeader: {\n textAlign: 'left',\n display: 'flex',\n alignItems: 'center',\n borderRadius: 0,\n gap: ({ spacing }) => spacing(0.5),\n },\n errorBadge: {\n color: ({ palette }) => palette.error.main,\n fontWeight: 600,\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(0.25),\n },\n // --- Syntax highlighting token styles ---\n syntaxToken_key: {\n color: '#881280',\n },\n syntaxToken_string: {\n color: '#c41a16',\n },\n syntaxToken_number: {\n color: '#1c00cf',\n },\n syntaxToken_boolean: {\n color: '#1c00cf',\n },\n syntaxToken_null: {\n color: '#808080',\n },\n syntaxToken_punctuation: {\n color: ({ palette }) => palette.text.primary,\n },\n groupListItem: {\n borderBottom: '1px solid',\n borderColor: 'divider',\n '&:first-of-type .MuiButton-root': {\n borderRadius: ({ spacing }) => spacing(1, 1, 0, 0),\n },\n '&:last-of-type:not([aria-expanded=true]) .MuiButton-root': {\n borderRadius: ({ spacing }) => spacing(0, 0, 1, 1),\n },\n '&:last-of-type': {\n borderBottomWidth: 0,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Typography } from '@mui/material'\nimport type { ChatThinkingProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatThinking({\n children = 'Thinking...',\n duration = 2000,\n sx,\n}: ChatThinkingProps) {\n const durSeconds = `${duration / 1000}s`\n return (\n <Typography\n variant='body2'\n sx={{\n ...styles.thinking,\n animationDuration: durSeconds,\n ...sx,\n }}\n >\n {children}\n </Typography>\n )\n}\n","import { Box } from '@mui/material'\nimport type { ChatLoaderProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatLoader({ size = 24, labels = {}, sx }: ChatLoaderProps) {\n return (\n <Box\n role='status'\n aria-busy={true}\n aria-label={labels.loading ?? 'Loading'}\n sx={{ ...styles.loader, width: size, height: size, ...sx }}\n >\n <Box\n component='span'\n sx={{\n ...styles.loaderOuterCircle,\n width: size * 0.75,\n height: size * 0.75,\n }}\n />\n <Box\n component='span'\n sx={{\n ...styles.loaderInnerCircle,\n width: size * 0.32,\n height: size * 0.32,\n }}\n />\n </Box>\n )\n}\n","import type { SxProps, Theme } from '@mui/material'\nimport { keyframes } from '@mui/material/styles'\nimport { CHAT_MAX_WIDTH } from '../const'\n\nconst scrollBorders = keyframes`\n 0% { border-top-color: transparent; border-bottom-color: var(--chat-border-color) }\n 0.1% { border-top-color: var(--chat-border-color); border-bottom-color: var(--chat-border-color) }\n 99.9% { border-top-color: var(--chat-border-color); border-bottom-color: var(--chat-border-color) }\n 100% { border-top-color: var(--chat-border-color); border-bottom-color: transparent }\n`\n\nconst showFab = keyframes`\n 0% { opacity: 1; pointer-events: auto }\n 95% { opacity: 1; pointer-events: auto }\n 100% { opacity: 0; pointer-events: none }\n`\n\nexport const styles = {\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: ({ spacing }) => spacing(1),\n },\n headerTitle: {\n flexGrow: 1,\n px: ({ spacing }) => spacing(0.5),\n },\n headerActions: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: ({ spacing }) => spacing(2),\n gap: ({ spacing }) => spacing(0.5),\n },\n footerWrapper: {\n padding: ({ spacing }) => spacing(1),\n position: 'relative',\n },\n footerCorner: {\n position: 'absolute',\n bottom: '38px',\n right: `max(16px, calc(50% - ${CHAT_MAX_WIDTH / 2}px + 6px))`,\n margin: '0 auto',\n },\n footer: {\n maxWidth: CHAT_MAX_WIDTH,\n margin: '0 auto',\n '& textarea': {\n resize: 'none',\n maxHeight: '10em',\n overflowY: 'auto !important',\n paddingRight: ({ spacing }) => spacing(5),\n },\n },\n footerCaption: {\n textAlign: 'center',\n },\n content: {\n overflowY: 'auto',\n flex: 1,\n position: 'relative',\n mx: 'auto',\n maxWidth: CHAT_MAX_WIDTH,\n width: '100%',\n maxHeight: '100%',\n pt: 1,\n pb: 2,\n px: 2,\n display: 'flex',\n flexDirection: 'column',\n '--chat-border-color': ({ palette }) => palette.divider,\n borderTop: '1px solid transparent',\n borderBottom: '1px solid transparent',\n '@supports (animation-timeline: scroll())': {\n animation: `${scrollBorders} linear both`,\n animationTimeline: 'scroll(self)',\n },\n },\n jumpToLatestWrapper: {\n position: 'sticky',\n bottom: ({ spacing }) => spacing(3),\n height: 0,\n display: 'flex',\n justifyContent: 'center',\n zIndex: 1,\n },\n jumpToLatest: {\n opacity: 0,\n pointerEvents: 'none',\n '@supports (animation-timeline: scroll())': {\n animation: `${showFab} linear both`,\n animationTimeline: 'scroll(nearest)',\n },\n '@supports not (animation-timeline: scroll())': {\n display: 'none',\n },\n },\n starter: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n padding: ({ spacing }) => spacing(3),\n textAlign: 'center',\n maxWidth: CHAT_MAX_WIDTH,\n margin: '0 auto',\n },\n starterItems: {\n display: 'grid',\n width: '100%',\n marginTop: ({ spacing }) => spacing(2),\n },\n starterItemsTwoCol: {\n gridTemplateColumns: 'repeat(2, 1fr)',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { useRef } from 'react'\nimport { Box, Fab } from '@mui/material'\nimport { KeyboardArrowDown } from '@mui/icons-material'\nimport type { ChatContentProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatContent({ children, labels = {}, sx }: ChatContentProps) {\n const scrollRef = useRef<HTMLDivElement>(null)\n\n const scrollToBottom = () => {\n scrollRef.current?.scrollTo({\n top: scrollRef.current.scrollHeight,\n behavior: 'smooth',\n })\n }\n\n return (\n <Box ref={scrollRef} sx={{ ...styles.content, ...sx }}>\n {children}\n <Box sx={styles.jumpToLatestWrapper}>\n <Fab\n size='small'\n onClick={scrollToBottom}\n aria-label={labels.jumpToLatest ?? 'Jump to latest'}\n sx={styles.jumpToLatest}\n >\n <KeyboardArrowDown />\n </Fab>\n </Box>\n </Box>\n )\n}\n","import { Box, IconButton, Typography } from '@mui/material'\nimport { Close } from '@mui/icons-material'\nimport type { ChatHeaderProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatHeader({\n leftSlot,\n title,\n rightSlot,\n onClose,\n sx,\n}: ChatHeaderProps) {\n return (\n <Box sx={{ ...styles.header, ...sx }}>\n {leftSlot}\n <Typography variant='subtitle2' sx={styles.headerTitle}>\n {title}\n </Typography>\n <Box sx={styles.headerActions}>\n {rightSlot}\n {onClose && (\n <IconButton size='medium' onClick={onClose} aria-label='Close'>\n <Close />\n </IconButton>\n )}\n </Box>\n </Box>\n )\n}\n","import {\n Box,\n FilledInput,\n FormControl,\n FormHelperText,\n IconButton,\n} from '@mui/material'\nimport { ArrowUpwardOutlined, StopCircleOutlined } from '@mui/icons-material'\nimport type { ChatFooterProps } from '../types'\nimport { styles } from './styles'\n\nconst DEFAULT_CAPTION =\n 'Responses are AI generated. Please verify key information.'\n\nexport function ChatFooter({\n value,\n onChange,\n onSend,\n onStop,\n isGenerating = false,\n disabled = false,\n placeholder = 'Type a message...',\n labels = {},\n caption = DEFAULT_CAPTION,\n sx,\n}: ChatFooterProps) {\n const canSend = value.trim() && !disabled && !isGenerating\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault()\n if (canSend) {\n onSend()\n }\n }\n }\n\n return (\n <FormControl fullWidth sx={{ ...styles.footerWrapper, ...sx }}>\n <FilledInput\n multiline\n value={value}\n onChange={(e) => onChange(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n disabled={disabled || isGenerating}\n sx={styles.footer}\n style={{ minHeight: 0 }}\n fullWidth\n size='small'\n />\n <Box sx={styles.footerCorner}>\n {isGenerating && onStop ? (\n <IconButton\n size='small'\n onClick={onStop}\n disabled={disabled}\n aria-label={labels.stop ?? 'Stop'}\n >\n <StopCircleOutlined />\n </IconButton>\n ) : (\n <IconButton\n size='small'\n variant='contained'\n onClick={onSend}\n disabled={!canSend}\n aria-label={labels.send ?? 'Send'}\n >\n <ArrowUpwardOutlined />\n </IconButton>\n )}\n </Box>\n {caption ? (\n <FormHelperText sx={styles.footerCaption}>{caption}</FormHelperText>\n ) : null}\n </FormControl>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport type { ChatStarterProps } from '../types'\nimport { ChatSuggestionButton } from '../bubbles/chat-suggestion-button'\nimport { styles } from './styles'\n\nconst DEFAULT_PALETTE = [\n '#C9DB7440', // pastel green\n '#FE88B140', // pastel red\n '#9EB9F340', // pastel blue\n '#F6CF7140', // pastel yellow\n]\n\nexport function ChatStarter({\n icon,\n title,\n description,\n items,\n size = 'small',\n onSelect,\n sx,\n}: ChatStarterProps) {\n const fullItems = items.map((item, index) => {\n if (typeof item === 'string') {\n return {\n label: item,\n color: DEFAULT_PALETTE[index],\n }\n } else {\n return {\n label: item.label,\n color: item.color ?? DEFAULT_PALETTE[index],\n }\n }\n })\n return (\n <Box\n sx={{\n ...styles.starter,\n gap: size === 'small' ? 1 : 2,\n ...sx,\n }}\n >\n {icon}\n {title && (\n <Typography variant={size === 'small' ? 'h6' : 'h5'}>\n {title}\n </Typography>\n )}\n {description && (\n <Typography\n variant={size === 'small' ? 'body2' : 'body1'}\n color='text.secondary'\n >\n {description}\n </Typography>\n )}\n <Box\n sx={{\n ...styles.starterItems,\n gap: size === 'small' ? 1 : 2,\n ...(items.length > 2 ? styles.starterItemsTwoCol : undefined),\n }}\n >\n {fullItems.map((item) => (\n <ChatSuggestionButton\n key={item.label}\n label={item.label}\n onClick={() => onSelect?.(item.label)}\n color={item.color}\n />\n ))}\n </Box>\n </Box>\n )\n}\n","import { Box, styled } from '@mui/material'\n\nexport const ChatActionsContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(0.5),\n}))\n","import { IconButton } from '@mui/material'\nimport {\n ThumbUpOutlined,\n ThumbDownOutlined,\n ThumbUp,\n ThumbDown,\n} from '@mui/icons-material'\nimport type { ChatRatingActionProps } from '../types'\n\nexport function ChatRatingAction({\n rating,\n onRatingChange,\n labels = {},\n}: ChatRatingActionProps) {\n return (\n <>\n <IconButton\n size='small'\n onClick={() => onRatingChange?.(rating === 'up' ? null : 'up')}\n aria-label={labels.thumbUp ?? 'Thumbs up'}\n color={rating === 'up' ? 'primary' : undefined}\n >\n {rating === 'up' ? (\n <ThumbUp fontSize='small' />\n ) : (\n <ThumbUpOutlined fontSize='small' />\n )}\n </IconButton>\n <IconButton\n size='small'\n onClick={() => onRatingChange?.(rating === 'down' ? null : 'down')}\n aria-label={labels.thumbDown ?? 'Thumbs down'}\n color={rating === 'down' ? 'primary' : undefined}\n >\n {rating === 'down' ? (\n <ThumbDown fontSize='small' />\n ) : (\n <ThumbDownOutlined fontSize='small' />\n )}\n </IconButton>\n </>\n )\n}\n","import { useMemo } from 'react'\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n IconButton,\n Box,\n} from '@mui/material'\nimport { Close } from '@mui/icons-material'\nimport { CopyButton } from '../../components/copy-button/copy-button'\nimport type { ChatToolFullViewDialogProps } from '../types'\nimport { styles } from './styles'\n\ninterface Token {\n type: 'key' | 'string' | 'number' | 'boolean' | 'null' | 'punctuation'\n value: string\n}\n\nconst NUMBER_START_REGEX = /^-?\\d/\n\nfunction tokenizeLine(line: string): (Token | string)[] {\n const tokens: (Token | string)[] = []\n let lastIndex = 0\n let match: RegExpExecArray | null\n\n // First, find all key positions by looking for \"...\": patterns\n const keyPositions = new Set<number>()\n const keyRegex = /(\"(?:[^\"\\\\]|\\\\.)*\")\\s*:/g\n let keyMatch: RegExpExecArray | null\n while ((keyMatch = keyRegex.exec(line)) !== null) {\n keyPositions.add(keyMatch.index)\n }\n\n const tokenRegex = // eslint-disable-next-line no-useless-escape\n /\"(?:[^\"\\\\]|\\\\.)*\"|\\b(?:true|false)\\b|\\bnull\\b|-?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?|[{}\\[\\]:,]/g\n\n while ((match = tokenRegex.exec(line)) !== null) {\n if (match.index > lastIndex) {\n tokens.push(line.slice(lastIndex, match.index))\n }\n const value = match[0]\n if (value.startsWith('\"')) {\n if (keyPositions.has(match.index)) {\n tokens.push({ type: 'key', value })\n } else {\n tokens.push({ type: 'string', value })\n }\n } else if (NUMBER_START_REGEX.test(value)) {\n tokens.push({ type: 'number', value })\n } else if (value === 'true' || value === 'false') {\n tokens.push({ type: 'boolean', value })\n } else if (value === 'null') {\n tokens.push({ type: 'null', value })\n } else {\n tokens.push({ type: 'punctuation', value })\n }\n lastIndex = match.index + value.length\n }\n\n if (lastIndex < line.length) {\n tokens.push(line.slice(lastIndex))\n }\n\n return tokens\n}\n\nexport function ChatToolFullViewDialog({\n open,\n onClose,\n title,\n content,\n}: ChatToolFullViewDialogProps) {\n const tokenizedLines = useMemo(\n () => content.split('\\n').map((line) => tokenizeLine(line)),\n [content],\n )\n\n return (\n <Dialog\n open={open}\n onClose={onClose}\n sx={styles.fullViewDialog}\n PaperProps={{ sx: styles.fullViewPaper }}\n fullScreen\n >\n <DialogTitle sx={styles.fullViewTitle}>\n {title}\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n <CopyButton copyText={content} aria-label='Copy content' />\n <IconButton onClick={onClose} aria-label='close'>\n <Close />\n </IconButton>\n </Box>\n </DialogTitle>\n <DialogContent sx={styles.fullViewDialogContent}>\n <Box component='pre' sx={styles.fullViewPre}>\n {tokenizedLines.map((tokens, i) => (\n <Box component='span' key={i} sx={styles.fullViewLine}>\n {tokens.map((token, j) =>\n typeof token === 'string' ? (\n token\n ) : (\n <Box\n component='span'\n key={j}\n sx={\n styles[`syntaxToken_${token.type}` as keyof typeof styles]\n }\n >\n {token.value}\n </Box>\n ),\n )}\n {'\\n'}\n </Box>\n ))}\n </Box>\n </DialogContent>\n </Dialog>\n )\n}\n","import { jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from \"react\";\nimport { createSvgIcon } from \"@mui/material\";\nconst Icon$2 = () => /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", fill: \"none\", children: /* @__PURE__ */ jsx(\n \"path\",\n {\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n d: \"M12.01 11.83 15.18 15l1.41-1.41L12.01 9l-4.59 4.59L8.84 15z\",\n clipRule: \"evenodd\"\n }\n) });\nconst BaseSvgIcon$2 = createSvgIcon(Icon$2(), \"ArrowUp\");\nfunction ArrowUp({ width, height, sx, ...props }, ref) {\n return /* @__PURE__ */ jsx(\n BaseSvgIcon$2,\n {\n ref,\n viewBox: \"0 0 24 24\",\n sx: {\n width,\n height: height || width,\n ...sx\n },\n ...props\n }\n );\n}\nconst ForwardedComponent$2 = forwardRef(ArrowUp);\nForwardedComponent$2.displayName = \"ArrowUp\";\nconst Icon$1 = () => /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", fill: \"none\", children: /* @__PURE__ */ jsx(\n \"path\",\n {\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n d: \"m6.121 19.293 2.877-2.877V19H11v-6l-6 .007v1.994l2.584.001-2.877 2.877zM13 11l6-.007V8.999h-2.585l2.878-2.878-1.414-1.414L15 7.585V5H13z\",\n clipRule: \"evenodd\"\n }\n) });\nconst BaseSvgIcon$1 = createSvgIcon(Icon$1(), \"CloseDiagonallyRight\");\nfunction CloseDiagonallyRight({ width, height, sx, ...props }, ref) {\n return /* @__PURE__ */ jsx(\n BaseSvgIcon$1,\n {\n ref,\n viewBox: \"0 0 24 24\",\n sx: {\n width,\n height: height || width,\n ...sx\n },\n ...props\n }\n );\n}\nconst ForwardedComponent$1 = forwardRef(CloseDiagonallyRight);\nForwardedComponent$1.displayName = \"CloseDiagonallyRight\";\nconst Icon = () => /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", fill: \"none\", children: /* @__PURE__ */ jsx(\n \"path\",\n {\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n d: \"m14.121 11.293 2.877-2.877V11H19V5l-6 .007v1.994l2.584.001-2.877 2.877zM5 19l6-.007v-1.994H8.415l2.878-2.878-1.414-1.414L7 15.585V13H5z\",\n clipRule: \"evenodd\"\n }\n) });\nconst BaseSvgIcon = createSvgIcon(Icon(), \"OpenDiagonallyRight\");\nfunction OpenDiagonallyRight({ width, height, sx, ...props }, ref) {\n return /* @__PURE__ */ jsx(\n BaseSvgIcon,\n {\n ref,\n viewBox: \"0 0 24 24\",\n sx: {\n width,\n height: height || width,\n ...sx\n },\n ...props\n }\n );\n}\nconst ForwardedComponent = forwardRef(OpenDiagonallyRight);\nForwardedComponent.displayName = \"OpenDiagonallyRight\";\nexport {\n ForwardedComponent$2 as F,\n ForwardedComponent$1 as a,\n ForwardedComponent as b\n};\n","import { useRef, useState, useEffect, useCallback } from 'react'\nimport { Box, IconButton, Tooltip } from '@mui/material'\nimport type { ChatToolCodeAreaProps } from '../types'\nimport { CHAT_TOOL_CODE_AREA_MAX_HEIGHT } from '../const'\nimport { ChatToolFullViewDialog } from './chat-tool-full-view-dialog'\nimport { styles } from './styles'\nimport { OpenDiagonallyRight } from '@carto/meridian-ds/custom-icons'\n\nexport function ChatToolCodeArea({\n content,\n title = '',\n isError = false,\n labels = {},\n sx,\n}: ChatToolCodeAreaProps & { isError?: boolean }) {\n const preRef = useRef<HTMLPreElement>(null)\n const [isOverflowing, setIsOverflowing] = useState(false)\n const [dialogOpen, setDialogOpen] = useState(false)\n\n const checkOverflow = useCallback(() => {\n const el = preRef.current\n if (el) {\n setIsOverflowing(el.scrollHeight > el.clientHeight)\n }\n }, [])\n\n useEffect(() => {\n checkOverflow()\n const el = preRef.current\n if (!el) return\n\n const observer = new ResizeObserver(checkOverflow)\n observer.observe(el)\n return () => observer.disconnect()\n }, [checkOverflow, content])\n\n const fullViewLabel = labels.fullView ?? 'Full view'\n\n return (\n <Box sx={{ ...styles.codeArea, ...sx }}>\n <Box\n component='pre'\n ref={preRef}\n sx={{\n ...styles.codeAreaPre,\n maxHeight: CHAT_TOOL_CODE_AREA_MAX_HEIGHT,\n ...(isError ? styles.codeAreaPreError : {}),\n }}\n >\n {content}\n </Box>\n {isOverflowing && (\n <Tooltip title={fullViewLabel}>\n <IconButton\n size='small'\n onClick={() => setDialogOpen(true)}\n sx={styles.codeAreaFullViewButton}\n >\n <OpenDiagonallyRight />\n </IconButton>\n </Tooltip>\n )}\n <ChatToolFullViewDialog\n open={dialogOpen}\n onClose={() => setDialogOpen(false)}\n title={title}\n content={content}\n />\n </Box>\n )\n}\n","import type { ChatToolItem } from '../types'\n\nfunction capitalize(str: string): string {\n const spaced = str.replace(/_/g, ' ')\n return spaced.charAt(0).toUpperCase() + spaced.slice(1)\n}\n\nexport function getToolLabel(tool: ChatToolItem): string {\n if (tool.status === 'running') {\n return tool.runningLabel ?? capitalize(tool.name)\n }\n return tool.label ?? capitalize(tool.name)\n}\n","import {\n Box,\n CircularProgress,\n Typography,\n Collapse,\n Button,\n} from '@mui/material'\nimport { ArrowRight, CheckCircle, Error } from '@mui/icons-material'\nimport type { ChatToolTraceProps } from '../types'\nimport { ChatToolCodeArea } from './chat-tool-code-area'\nimport { styles } from './styles'\nimport { ChatThinking } from './chat-thinking'\nimport { getToolLabel } from './get-tool-label'\nimport { McpTool } from '@carto/meridian-ds/custom-icons'\n\nfunction TraceStatusIndicator({\n status,\n labels,\n}: {\n status: string\n labels: ChatToolTraceProps['labels']\n}) {\n switch (status) {\n case 'complete':\n return (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n <CheckCircle sx={{ fontSize: 12 }} color='success' />\n <Typography variant='caption'>\n {labels?.success ?? 'Success'}\n </Typography>\n </Box>\n )\n case 'error':\n return (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n <Error sx={{ fontSize: 12 }} color='error' />\n <Typography variant='code3'>{labels?.error ?? 'Error'}</Typography>\n </Box>\n )\n case 'running':\n return <CircularProgress size={14} />\n default:\n return null\n }\n}\n\nexport function ChatToolTraceDetails({\n tool,\n labels = {},\n}: Pick<ChatToolTraceProps, 'tool' | 'labels'>) {\n const isError = tool.status === 'error'\n const toolExecutedLabel = labels.toolExecuted ?? 'Tool executed'\n const referenceLabel = labels.reference ?? 'Reference:'\n const durationLabel = labels.duration ?? 'Duration:'\n const statusLabel = labels.status ?? 'Status:'\n const inputArgumentsLabel = labels.inputArguments ?? 'Input arguments:'\n const outputLabel = labels.output ?? 'Output:'\n\n return (\n <Box>\n {tool.reference && (\n <Box sx={styles.traceField}>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceFieldLabel}\n >\n {referenceLabel}\n </Typography>\n <Box sx={styles.traceReference}>\n <McpTool color='success' />\n <Typography variant='code3' fontWeight={600}>\n {tool.reference}\n </Typography>\n </Box>\n </Box>\n )}\n\n {tool.duration != null && (\n <Box sx={styles.traceField}>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceFieldLabel}\n >\n {durationLabel}\n </Typography>\n <Typography variant='code3'>{tool.duration}s</Typography>\n </Box>\n )}\n\n <Box sx={styles.traceField}>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceFieldLabel}\n >\n {statusLabel}\n </Typography>\n <TraceStatusIndicator status={tool.status} labels={labels} />\n </Box>\n\n {tool.inputArguments && (\n <Box>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceField}\n >\n {inputArgumentsLabel}\n </Typography>\n <ChatToolCodeArea\n sx={{ mt: 0.5, mb: tool.output ? 1.5 : 0 }}\n content={tool.inputArguments}\n title={`${toolExecutedLabel}: ${inputArgumentsLabel}`}\n isError={isError}\n />\n </Box>\n )}\n\n {tool.output && (\n <Box>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceField}\n >\n {outputLabel}\n </Typography>\n <ChatToolCodeArea\n sx={{ mt: 0.5 }}\n content={tool.output}\n title={`${toolExecutedLabel}: ${outputLabel}`}\n isError={isError}\n />\n </Box>\n )}\n </Box>\n )\n}\n\nexport function ChatToolTrace({\n tool,\n expanded,\n onExpandedChange,\n labels = {},\n sx,\n}: ChatToolTraceProps) {\n const isRunning = tool.status === 'running'\n const toolExecutedLabel = labels.toolExecuted ?? 'Tool executed'\n\n if (isRunning) {\n return <ChatThinking>{getToolLabel(tool)}</ChatThinking>\n }\n\n return (\n <Box width='100%' sx={sx} className={`PsChat--tool-trace ${tool.name}`}>\n <Button\n size='small'\n variant='text'\n onClick={() => onExpandedChange?.(!expanded)}\n aria-expanded={expanded}\n sx={styles.traceHeader}\n >\n <Typography variant='caption' fontWeight={600} color='text.secondary'>\n {toolExecutedLabel}\n </Typography>\n <ArrowRight\n sx={{\n ...styles.traceChevron,\n transform: expanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n </Button>\n <Collapse in={expanded} unmountOnExit>\n <Box sx={styles.traceDetailsWrapper}>\n <ChatToolTraceDetails tool={tool} labels={labels} />\n </Box>\n </Collapse>\n </Box>\n )\n}\n","import { Box, Button, Collapse, Typography } from '@mui/material'\nimport { ArrowRight, ChevronRight, ErrorOutline } from '@mui/icons-material'\nimport type { ChatToolGroupProps } from '../types'\nimport { ChatToolTrace, ChatToolTraceDetails } from './chat-tool-trace'\nimport { styles } from './styles'\nimport { getToolLabel } from './get-tool-label'\nimport { useState } from 'react'\n\nfunction useController<T>(value: T, setter?: (value: T) => void) {\n const [_value, _setter] = useState<T>(value)\n if (setter) {\n return [value, setter] as const\n } else {\n return [_value, _setter] as const\n }\n}\n\nexport function ChatToolGroup({\n tools,\n expanded: _expanded = false,\n onExpandedChange: _setExpanded,\n expandedTools: _expandedTools = {},\n onToolExpandedChange: _setExpandedTools,\n labels = {},\n sx,\n}: ChatToolGroupProps) {\n const [expanded, setExpanded] = useController(_expanded, _setExpanded)\n const [expandedTools, setExpandedTools] = useController(\n _expandedTools,\n _setExpandedTools,\n )\n\n const numErrors = tools.filter((t) => t.status === 'error').length\n const runningTools = tools.filter((t) => t.status === 'running')\n const nonRunningTools = tools.filter((t) => t.status !== 'running')\n const toolsUsedLabel = labels.toolsUsed ?? 'tools used'\n const errorLabel = labels.error ?? 'Error'\n\n if (tools.length === 1) {\n return (\n <ChatToolTrace\n tool={tools[0]!}\n expanded={expanded}\n onExpandedChange={setExpanded}\n labels={labels}\n sx={sx}\n />\n )\n }\n\n return (\n <Box width='100%' sx={sx} className='PsChat--tool-group'>\n <Button\n size='small'\n variant='text'\n onClick={() => setExpanded(!expanded)}\n aria-expanded={expanded}\n sx={{\n ...styles.traceHeader,\n pr: numErrors > 0 ? 0.5 : 0,\n }}\n >\n <Typography variant='caption' fontWeight={600} color='text.secondary'>\n {tools.length} {toolsUsedLabel}\n </Typography>\n <ArrowRight\n sx={{\n ...styles.traceChevron,\n transform: expanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n {numErrors > 0 && (\n <Typography variant='code3' sx={styles.errorBadge}>\n {numErrors}\n <ErrorOutline sx={{ fontSize: 12 }} color='error' />\n </Typography>\n )}\n </Button>\n <Collapse in={expanded} unmountOnExit>\n <Box\n component='ul'\n sx={{\n ...styles.traceDetailsWrapper,\n p: 0,\n listStyle: 'none',\n }}\n >\n {nonRunningTools.map((tool) => {\n const isExpanded = expandedTools[tool.id] ?? false\n return (\n <Box\n key={tool.id}\n component='li'\n sx={styles.groupListItem}\n aria-expanded={isExpanded}\n >\n <Button\n variant='text'\n color='inherit'\n fullWidth\n onClick={() =>\n setExpandedTools({\n ...expandedTools,\n [tool.id]: !isExpanded,\n })\n }\n aria-expanded={isExpanded}\n sx={styles.groupHeader}\n >\n <Typography\n flexGrow={1}\n flexShrink={0}\n variant='caption'\n color='text.secondary'\n >\n {getToolLabel(tool)}\n </Typography>\n {tool.status === 'error' && (\n <Typography variant='code3' color='error.main'>\n {errorLabel}\n </Typography>\n )}\n <ChevronRight\n sx={{\n ...styles.traceChevron,\n transform: expanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n </Button>\n <Collapse in={isExpanded} unmountOnExit>\n <Box px={1.5} py={1}>\n <ChatToolTraceDetails tool={tool} labels={labels} />\n </Box>\n </Collapse>\n </Box>\n )\n })}\n </Box>\n </Collapse>\n {runningTools.map((tool) => (\n <ChatToolTrace\n key={tool.id}\n tool={tool}\n labels={labels}\n expanded={expandedTools[tool.id]}\n onExpandedChange={() =>\n setExpandedTools({\n ...expandedTools,\n [tool.id]: !expandedTools[tool.id],\n })\n }\n />\n ))}\n </Box>\n )\n}\n"],"names":["CHAT_MAX_WIDTH","CHAT_SCROLL_DELAY","CHAT_DIVIDER_DELAY","CHAT_TOOL_CODE_AREA_MAX_HEIGHT","ChatMessageOverflow","styled","Typography","whiteSpace","overflowX","overflowWrap","maxWidth","displayName","styles","agentMessageContainer","theme","width","display","flexDirection","alignItems","paddingRight","spacing","marginTop","alignSelf","borderCollapse","margin","fontSize","border","palette","divider","padding","textAlign","backgroundColor","action","hover","fontWeight","listStyle","paddingLeft","marginRight","textDecoration","opacity","userMessageContainer","borderRadius","userMessage","background","default","color","text","primary","muted","disabled","userMessageTop","marginBottom","errorMessage","flexWrap","gap","errorActions","errorAction","errorActionSeparator","mr","black","suggestionButton","transition","justifyContent","minWidth","height","secondary","borderColor","hint","ChatUserMessage","t0","$","_c","children","t1","topContext","sx","undefined","t2","jsx","Box","t3","t4","t5","t6","InnerBox","className","props","ChatAgentMessage","ChatErrorMessage","errors","icon","actions","ErrorOutline","map","_temp","length","_temp2","jsxs","index_0","index","Link","onClick","label","error","ChatSuggestionButton","Symbol","for","ArrowUpward","ButtonBase","shimmer","keyframes","breatheOuter","breatheInner","thinking","minHeight","backgroundSize","backgroundClip","WebkitBackgroundClip","WebkitTextFillColor","animation","animationDuration","loader","position","p","loaderOuterCircle","inset","loaderInnerCircle","traceHeader","traceChevron","traceDetailsWrapper","traceField","traceFieldLabel","flexShrink","traceReference","success","relatedLight","dark","traceStatusSuccess","main","traceStatusError","codeArea","codeAreaPre","fontFamily","wordBreak","overflowY","codeAreaPreError","borderLeft","codeAreaFullViewButton","top","right","fullViewDialog","fullViewPaper","fullViewTitle","borderBottom","borderBottomColor","fullViewDialogContent","paddingTop","fullViewPre","lineHeight","counterReset","fullViewLine","counterIncrement","content","userSelect","groupHeader","errorBadge","syntaxToken_key","syntaxToken_string","syntaxToken_number","syntaxToken_boolean","syntaxToken_null","syntaxToken_punctuation","groupListItem","borderBottomWidth","ChatThinking","duration","durSeconds","ChatLoader","size","labels","loading","t7","t8","t9","t10","t11","t12","scrollBorders","showFab","header","headerTitle","flexGrow","px","headerActions","marginLeft","footerWrapper","footerCorner","bottom","footer","resize","maxHeight","footerCaption","flex","mx","pt","pb","--chat-border-color","borderTop","animationTimeline","jumpToLatestWrapper","zIndex","jumpToLatest","pointerEvents","starter","starterItems","starterItemsTwoCol","gridTemplateColumns","ChatContent","scrollRef","useRef","current","scrollTo","scrollHeight","behavior","scrollToBottom","KeyboardArrowDown","Fab","ChatHeader","leftSlot","title","rightSlot","onClose","IconButton","Close","DEFAULT_CAPTION","ChatFooter","value","onChange","onSend","onStop","isGenerating","placeholder","caption","trim","canSend","e","key","shiftKey","preventDefault","handleKeyDown","e_0","target","t13","FilledInput","t14","send","stop","StopCircleOutlined","ArrowUpwardOutlined","t15","FormHelperText","t16","FormControl","DEFAULT_PALETTE","ChatStarter","description","items","onSelect","T0","T1","fullItems","item_0","item","ChatActionsContainer","ChatRatingAction","rating","onRatingChange","thumbUp","ThumbUp","ThumbUpOutlined","thumbDown","ThumbDown","ThumbDownOutlined","NUMBER_START_REGEX","tokenizeLine","line","tokens","lastIndex","match","keyPositions","Set","keyRegex","keyMatch","exec","add","tokenRegex","push","slice","startsWith","has","type","test","ChatToolFullViewDialog","open","split","tokenizedLines","CopyButton","DialogTitle","_temp3","DialogContent","Dialog","i","token","j","Icon$2","BaseSvgIcon$2","createSvgIcon","ArrowUp","ref","ForwardedComponent$2","forwardRef","Icon$1","BaseSvgIcon$1","CloseDiagonallyRight","ForwardedComponent$1","Icon","BaseSvgIcon","OpenDiagonallyRight","ForwardedComponent","ChatToolCodeArea","isError","preRef","isOverflowing","setIsOverflowing","useState","dialogOpen","setDialogOpen","el","clientHeight","checkOverflow","el_0","observer","ResizeObserver","observe","disconnect","useEffect","fullViewLabel","fullView","Tooltip","capitalize","str","spaced","replace","charAt","toUpperCase","getToolLabel","tool","status","runningLabel","name","TraceStatusIndicator","CheckCircle","Error","CircularProgress","ChatToolTraceDetails","toolExecutedLabel","toolExecuted","referenceLabel","reference","durationLabel","statusLabel","inputArgumentsLabel","inputArguments","outputLabel","output","McpTool","mt","mb","ChatToolTrace","expanded","onExpandedChange","isRunning","ArrowRight","transform","Button","Collapse","useController","setter","_value","_setter","ChatToolGroup","tools","_setExpanded","expandedTools","onToolExpandedChange","_setExpandedTools","_expanded","_expandedTools","setExpanded","setExpandedTools","filter","numErrors","bb0","runningTools","nonRunningTools","toolsUsedLabel","toolsUsed","errorLabel","pr","t18","t19","t20","t21","isExpanded","id","ChevronRight","t22","t23","t24","t17","t25","tool_0","t_1","t","t_0"],"mappings":"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","x_google_ignoreList":[17]}
|