@carto/ps-react-ui 4.3.10 → 4.4.0-chat-ui.1
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 +801 -0
- package/dist/chat.js.map +1 -0
- package/dist/components.js +260 -240
- package/dist/components.js.map +1 -1
- package/dist/types/chat/bubbles/chat-error-message.d.ts +2 -0
- package/dist/types/chat/bubbles/chat-suggestion-button.d.ts +2 -0
- package/dist/types/chat/bubbles/chat-user-message.d.ts +2 -0
- package/dist/types/chat/bubbles/index.d.ts +4 -0
- package/dist/types/chat/const.d.ts +3 -0
- package/dist/types/chat/containers/chat-content.d.ts +2 -0
- package/dist/types/chat/containers/chat-footer.d.ts +2 -0
- package/dist/types/chat/containers/chat-header.d.ts +2 -0
- package/dist/types/chat/containers/chat-starter.d.ts +2 -0
- package/dist/types/chat/containers/index.d.ts +4 -0
- package/dist/types/chat/containers/styles.d.ts +104 -0
- package/dist/types/chat/feedback/chat-loader.d.ts +2 -0
- package/dist/types/chat/feedback/chat-rating-action.d.ts +2 -0
- package/dist/types/chat/feedback/chat-thinking.d.ts +2 -0
- package/dist/types/chat/feedback/chat-tools.d.ts +2 -0
- package/dist/types/chat/feedback/index.d.ts +5 -0
- package/dist/types/chat/feedback/styles.d.ts +65 -0
- package/dist/types/chat/index.d.ts +16 -0
- package/dist/types/chat/types.d.ts +99 -0
- package/dist/types/components/copy-button/copy-button.d.ts +2 -0
- package/dist/types/components/copy-button/types.d.ts +6 -0
- package/dist/types/components/index.d.ts +2 -0
- package/dist/widgets/actions.js +22 -21
- package/dist/widgets/actions.js.map +1 -1
- package/dist/widgets/bar.js +7 -6
- package/dist/widgets/bar.js.map +1 -1
- package/dist/widgets/category.js +9 -8
- package/dist/widgets/category.js.map +1 -1
- package/dist/widgets/formula.js +11 -10
- package/dist/widgets/formula.js.map +1 -1
- package/dist/widgets/histogram.js +7 -6
- package/dist/widgets/histogram.js.map +1 -1
- package/dist/widgets/markdown.js +9 -8
- package/dist/widgets/markdown.js.map +1 -1
- package/dist/widgets/pie.js +7 -6
- package/dist/widgets/pie.js.map +1 -1
- package/dist/widgets/scatterplot.js +7 -6
- package/dist/widgets/scatterplot.js.map +1 -1
- package/dist/widgets/spread.js +57 -56
- package/dist/widgets/spread.js.map +1 -1
- package/dist/widgets/table.js +67 -66
- package/dist/widgets/table.js.map +1 -1
- package/dist/widgets/timeseries.js +23 -22
- package/dist/widgets/timeseries.js.map +1 -1
- package/dist/widgets/wrapper.js +21 -20
- package/dist/widgets/wrapper.js.map +1 -1
- package/package.json +5 -1
- package/src/chat/bubbles/chat-agent-message.test.tsx +30 -0
- package/src/chat/bubbles/chat-agent-message.tsx +11 -0
- package/src/chat/bubbles/chat-error-message.test.tsx +40 -0
- package/src/chat/bubbles/chat-error-message.tsx +47 -0
- package/src/chat/bubbles/chat-suggestion-button.test.tsx +24 -0
- package/src/chat/bubbles/chat-suggestion-button.tsx +27 -0
- package/src/chat/bubbles/chat-user-message.test.tsx +27 -0
- package/src/chat/bubbles/chat-user-message.tsx +27 -0
- package/src/chat/bubbles/index.ts +4 -0
- package/src/chat/bubbles/styles.ts +106 -0
- package/src/chat/const.ts +3 -0
- package/src/chat/containers/chat-content.test.tsx +15 -0
- package/src/chat/containers/chat-content.tsx +32 -0
- package/src/chat/containers/chat-footer.test.tsx +34 -0
- package/src/chat/containers/chat-footer.tsx +78 -0
- package/src/chat/containers/chat-header.test.tsx +28 -0
- package/src/chat/containers/chat-header.tsx +29 -0
- package/src/chat/containers/chat-starter.test.tsx +32 -0
- package/src/chat/containers/chat-starter.tsx +75 -0
- package/src/chat/containers/index.ts +4 -0
- package/src/chat/containers/styles.ts +110 -0
- package/src/chat/feedback/chat-actions-container.test.tsx +64 -0
- package/src/chat/feedback/chat-actions-container.tsx +7 -0
- package/src/chat/feedback/chat-loader.test.tsx +10 -0
- package/src/chat/feedback/chat-loader.tsx +31 -0
- package/src/chat/feedback/chat-rating-action.tsx +43 -0
- package/src/chat/feedback/chat-thinking.test.tsx +15 -0
- package/src/chat/feedback/chat-thinking.tsx +23 -0
- package/src/chat/feedback/chat-tools.test.tsx +23 -0
- package/src/chat/feedback/chat-tools.tsx +54 -0
- package/src/chat/feedback/index.ts +5 -0
- package/src/chat/feedback/styles.ts +80 -0
- package/src/chat/index.ts +45 -0
- package/src/chat/types.ts +124 -0
- package/src/components/copy-button/copy-button.test.tsx +41 -0
- package/src/components/copy-button/copy-button.tsx +31 -0
- package/src/components/copy-button/types.ts +10 -0
- package/src/components/index.ts +3 -0
package/dist/chat.js.map
ADDED
|
@@ -0,0 +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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"}
|