@pega/cosmos-react-work 9.0.0-build.29.20 → 9.0.0-build.29.21
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/lib/components/GenAICoach/GenAICoach.d.ts.map +1 -1
- package/lib/components/GenAICoach/GenAICoach.js +51 -2
- package/lib/components/GenAICoach/GenAICoach.js.map +1 -1
- package/lib/components/GenAICoach/GenAICoach.styles.d.ts.map +1 -1
- package/lib/components/GenAICoach/GenAICoach.styles.js +1 -1
- package/lib/components/GenAICoach/GenAICoach.styles.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenAICoach.d.ts","sourceRoot":"","sources":["../../../src/components/GenAICoach/GenAICoach.tsx"],"names":[],"mappings":"AAuGA,OAAO,EAAyC,KAAK,eAAe,EAAE,MAAM,GAAG,CAAC;AAmBhF,eAAO,MAAM,SAAS,+CA2GrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,+CAQ5B,CAAC;
|
|
1
|
+
{"version":3,"file":"GenAICoach.d.ts","sourceRoot":"","sources":["../../../src/components/GenAICoach/GenAICoach.tsx"],"names":[],"mappings":"AAuGA,OAAO,EAAyC,KAAK,eAAe,EAAE,MAAM,GAAG,CAAC;AAmBhF,eAAO,MAAM,SAAS,+CA2GrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,+CAQ5B,CAAC;iCAipDyB,eAAe;;;AAQ1C,wBAA6D"}
|
|
@@ -113,7 +113,9 @@ const GenAICoachContent = ({ testId, coachOptions: coachOptionsProps, onCoachCha
|
|
|
113
113
|
const observersRef = useRef({
|
|
114
114
|
inputContainer: null,
|
|
115
115
|
messageContainer: null,
|
|
116
|
-
streamingMessage: null
|
|
116
|
+
streamingMessage: null,
|
|
117
|
+
tileSync: null,
|
|
118
|
+
tileMutation: null
|
|
117
119
|
});
|
|
118
120
|
const isSmallOrAbove = useBreakpoint('sm', {
|
|
119
121
|
breakpointRef: genAICoachRef
|
|
@@ -311,6 +313,53 @@ const GenAICoachContent = ({ testId, coachOptions: coachOptionsProps, onCoachCha
|
|
|
311
313
|
lastMessage.focus();
|
|
312
314
|
}
|
|
313
315
|
}, [scrollToLatest]);
|
|
316
|
+
const suggestionCardsViewElRef = useRef(null);
|
|
317
|
+
const setSuggestionCardsViewRef = useCallback((el) => {
|
|
318
|
+
if (suggestionCardsViewElRef.current === el)
|
|
319
|
+
return;
|
|
320
|
+
observersRef.current.tileSync?.disconnect();
|
|
321
|
+
observersRef.current.tileSync = null;
|
|
322
|
+
observersRef.current.tileMutation?.disconnect();
|
|
323
|
+
observersRef.current.tileMutation = null;
|
|
324
|
+
suggestionCardsViewElRef.current = el;
|
|
325
|
+
if (!el)
|
|
326
|
+
return;
|
|
327
|
+
const tileSelector = '[data-tile-content]';
|
|
328
|
+
let scheduled = false;
|
|
329
|
+
const measure = () => {
|
|
330
|
+
const tileContents = Array.from(el.querySelectorAll(tileSelector));
|
|
331
|
+
if (tileContents.length === 0) {
|
|
332
|
+
el.style.removeProperty('--tile-col-track');
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
tileContents.forEach(tileEl => {
|
|
336
|
+
tileEl.style.width = 'auto';
|
|
337
|
+
});
|
|
338
|
+
const maxWidth = Math.max(...tileContents.map(tileEl => Math.round(tileEl.getBoundingClientRect().width)));
|
|
339
|
+
tileContents.forEach(tileEl => {
|
|
340
|
+
tileEl.style.width = '';
|
|
341
|
+
});
|
|
342
|
+
const newTrack = `${maxWidth}px`;
|
|
343
|
+
if (el.style.getPropertyValue('--tile-col-track') !== newTrack) {
|
|
344
|
+
el.style.setProperty('--tile-col-track', newTrack);
|
|
345
|
+
}
|
|
346
|
+
};
|
|
347
|
+
const schedule = () => {
|
|
348
|
+
if (scheduled)
|
|
349
|
+
return;
|
|
350
|
+
scheduled = true;
|
|
351
|
+
requestAnimationFrame(() => {
|
|
352
|
+
scheduled = false;
|
|
353
|
+
measure();
|
|
354
|
+
});
|
|
355
|
+
};
|
|
356
|
+
const ro = new ResizeObserver(() => schedule());
|
|
357
|
+
ro.observe(el);
|
|
358
|
+
observersRef.current.tileSync = ro;
|
|
359
|
+
const mo = new MutationObserver(() => schedule());
|
|
360
|
+
mo.observe(el, { childList: true, subtree: true });
|
|
361
|
+
observersRef.current.tileMutation = mo;
|
|
362
|
+
}, []);
|
|
314
363
|
const setInputContainerRef = useCallback((el) => {
|
|
315
364
|
if (inputContainerRef.current === el)
|
|
316
365
|
return;
|
|
@@ -878,7 +927,7 @@ const GenAICoachContent = ({ testId, coachOptions: coachOptionsProps, onCoachCha
|
|
|
878
927
|
}, ...(prevFullScreen !== fullScreen ? { animationInitialCursorPos } : {}) }));
|
|
879
928
|
}) })) })) }), showScrollToBottom && (_jsx(StyledScrollButton, { ref: scrollButtonRef, icon: true, onClick: handleScrollToBottomClick, ariaLabel: t('scroll_to_latest_message'), onKeyDown: focusLastMessageLi, children: _jsx(Icon, { name: 'caret-down' }) })), !loading && messages.length === 0 && suggestionCardsView ? (_jsxs(_Fragment, { children: [((isInUtilities(variant) && variant.state !== 'minimized') ||
|
|
880
929
|
!isInUtilities(variant)) &&
|
|
881
|
-
!guidedMode && (_jsx(StyledStickyComposer, { children: _jsx(Flex, { container: { direction: 'column' }, as: StyledInputContainer, ref: setInputContainerRef, children: _jsx(StyledComposerSection, { children: genAIFooter }) }) })), _jsx(Flex, { container: { direction: 'column' }, as: StyledSuggestionCardsBottomHalf, children: _jsx(StyledSuggestionCardsView, { children: suggestionCardsView }) })] })) : (((isInUtilities(variant) && variant.state !== 'minimized') ||
|
|
930
|
+
!guidedMode && (_jsx(StyledStickyComposer, { children: _jsx(Flex, { container: { direction: 'column' }, as: StyledInputContainer, ref: setInputContainerRef, children: _jsx(StyledComposerSection, { children: genAIFooter }) }) })), _jsx(Flex, { container: { direction: 'column' }, as: StyledSuggestionCardsBottomHalf, children: _jsx(StyledSuggestionCardsView, { ref: setSuggestionCardsViewRef, children: suggestionCardsView }) })] })) : (((isInUtilities(variant) && variant.state !== 'minimized') ||
|
|
882
931
|
!isInUtilities(variant)) &&
|
|
883
932
|
!loading && (_jsx(Flex, { container: { direction: 'column' }, as: StyledInputContainer, ref: setInputContainerRef, children: _jsxs(StyledComposerSection, { children: [guidedMode &&
|
|
884
933
|
questionnaireData &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenAICoach.js","sourceRoot":"","sources":["../../../src/components/GenAICoach/GenAICoach.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { ChangeEvent, KeyboardEvent, MouseEvent } from 'react';\nimport { getLuminance } from 'polished';\n\nimport {\n Button,\n Flex,\n Icon,\n MenuButton,\n Progress,\n Text,\n createUID,\n menuHelpers,\n useI18n,\n useSpeechRecognition,\n useTestIds,\n useTheme,\n withTestIds,\n registerIcon,\n usePrevious,\n getFocusables,\n isMenuGroupProps,\n ErrorState,\n useArrows,\n useFocusTrap,\n useLiveLog,\n useOuterEvent,\n ThemeOverride,\n hasProp,\n getActiveElement,\n useElement,\n Actions,\n useFullscreenContext,\n useBreakpoint,\n Grid,\n useRefMap,\n VisuallyHiddenText,\n FileList,\n Lightbox,\n FormField,\n useUID,\n SpeechToTextButton,\n Toaster,\n useToaster,\n throttle\n} from '@pega/cosmos-react-core';\nimport type { Action, ActionsProps, MenuItemProps, MenuProps } from '@pega/cosmos-react-core';\nimport * as caretUpIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-up.icon';\nimport * as timesIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/times.icon';\nimport * as caretDownIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-down.icon';\nimport * as minusIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/minus.icon';\nimport * as polarisSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/polaris-solid.icon';\nimport * as paperClipIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/paper-clip.icon';\nimport * as warnSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/warn-solid.icon';\nimport * as sendSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/send-solid.icon';\nimport * as squareSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/square-solid.icon';\nimport * as plusIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/plus.icon';\nimport * as dockIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/dock.icon';\nimport * as undockIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/undock.icon';\nimport * as caretLeftIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-left.icon';\nimport * as caretRightIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-right.icon';\nimport type { UseSpeechRecognitionProps } from '@pega/cosmos-react-core/lib/hooks/useSpeechRecognition';\n\nimport { getGenAICoachTestIds } from './GenAICoach.test-ids';\nimport { isCoachMessage, isInUtilities, isUserMessage } from './GenAICoach.utils';\nimport {\n StyledMessagesContainer,\n StyledDisclaimerText,\n StyledGenAICoachContainer,\n StyledGenAIOptionsMenu,\n StyledInitialMessageContainer,\n StyledInputContainer,\n StyledMenuSuggestions,\n StyledMessagesList,\n StyledGridContainer,\n StyledFlexWrapper,\n StyledErrorContainer,\n StyledInput,\n StyledGuidedSuggestions,\n StyledComposerSection,\n StyledSendButton,\n StyledStopGeneratingButton,\n StyledGenAIFormControl,\n StyledGenAITextArea,\n StyledInitialMessageGrid,\n StyledGenAIFooter,\n StyledAgentIcon,\n StyledActionsContainer,\n StyledFullscreenWrapper,\n StyledScrollButton,\n StyledSuggestionCardsView,\n StyledSuggestionCardsBottomHalf,\n StyledStickyComposer,\n StyledAISuggestedBadge,\n StyledSalutation,\n StyledComposerWrapper\n} from './GenAICoach.styles';\nimport ActiveCases from './ActiveCases';\nimport CaseWorkflow from './CaseWorkflow';\nimport ConversationHistory from './ConversationHistory';\nimport type { FormAnswer, GenAICoachScrollState, Tool } from './GenAICoach.types';\nimport Questionnaire from './Questionnaire';\n\nimport { GenAIMessage, InitialSuggestedMessage, type GenAICoachProps } from '.';\n\nregisterIcon(\n caretUpIcon,\n timesIcon,\n caretDownIcon,\n minusIcon,\n polarisSolidIcon,\n paperClipIcon,\n warnSolidIcon,\n squareSolidIcon,\n sendSolidIcon,\n plusIcon,\n dockIcon,\n undockIcon,\n caretLeftIcon,\n caretRightIcon\n);\n\nexport const AgentIcon = () => {\n const theme = useTheme();\n const uid = useUID();\n\n const idA = `agent-gradient-a-${uid}`;\n const idB = `agent-gradient-b-${uid}`;\n const idC = `agent-clip-${uid}`;\n\n const isLightTheme = getLuminance(theme.base.palette['foreground-color']) < 0.5;\n\n return isLightTheme ? (\n <StyledAgentIcon\n xmlns='http://www.w3.org/2000/svg'\n filter='drop-shadow(0 .125rem .125rem rgba(0,0,0,.03)) drop-shadow(.125rem .5rem .5rem rgba(0,0,0,.05)) drop-shadow(.125rem 1rem 1rem rgba(0,0,0,.08))'\n viewBox='0 0 60 60'\n >\n <linearGradient\n id={idA}\n x1='30.586'\n x2='3.059'\n y1='58.111'\n y2='30.584'\n gradientUnits='userSpaceOnUse'\n >\n <stop offset='.115' stopColor='#681fc3' />\n <stop offset='.418' stopColor='#9795f3' />\n <stop offset='.591' stopColor='#b3d2ff' />\n <stop offset='.966' stopColor='#a467f0' />\n </linearGradient>\n <linearGradient\n id={idB}\n x1='7.137'\n x2='29.565'\n y1='0'\n y2='60.151'\n gradientUnits='userSpaceOnUse'\n >\n <stop offset='.457' stopColor='#8165d2' stopOpacity='0' />\n <stop offset='.524' stopColor='#280096' stopOpacity='.4' />\n </linearGradient>\n <clipPath id={idC}>\n <path d='M0 0h60v60H0z' />\n </clipPath>\n <g fillRule='evenodd' clipPath={`url(#${idC})`} clipRule='evenodd'>\n <path\n fill={`url(#${idA})`}\n d='M60 30.002c-9.023.937-16.054 3.632-20.86 8.203C33.633 43.242 30.586 50.508 30 60c-1.173-9.61-4.453-16.875-9.727-21.914C15.35 33.516 8.555 30.82 0 30c9.023-.703 16.054-3.515 21.093-8.438C26.132 16.523 29.063 9.376 29.999 0c.704 10.43 4.102 18.164 10.313 23.202C45.352 27.186 51.914 29.413 60 30zm-3.75-18.75c-2.228.235-3.984.936-5.391 2.226-1.289 1.289-1.992 3.047-2.109 5.274-.235-2.227-.937-3.983-2.108-5.155-1.289-1.288-3.048-2.109-5.391-2.344 2.227-.116 3.867-.82 5.156-1.991 1.288-1.289 2.108-3.164 2.343-5.508.117 2.46.937 4.336 2.344 5.508 1.288 1.171 2.93 1.875 5.156 1.991zM18.75 48.75c-2.345.236-4.103.937-5.392 2.227-1.288 1.172-1.992 2.93-2.108 5.274-.235-2.46-1.055-4.218-2.46-5.507-1.056-1.055-2.812-1.758-5.04-1.992 1.993-.116 3.633-.703 4.804-1.758 1.524-1.172 2.46-3.047 2.696-5.743.116 1.992.703 3.751 1.875 5.156 1.172 1.288 3.047 2.108 5.626 2.344z'\n />\n <path\n fill={`url(#${idB})`}\n d='M60 30.002c-9.023.937-16.054 3.632-20.86 8.203C33.633 43.242 30.586 50.508 30 60c-1.173-9.61-4.453-16.875-9.727-21.914C15.35 33.516 8.555 30.82 0 30c9.023-.703 16.054-3.515 21.093-8.438C26.132 16.523 29.063 9.376 29.999 0c.704 10.43 4.102 18.164 10.313 23.202C45.352 27.186 51.914 29.413 60 30zm-3.75-18.75c-2.228.235-3.984.936-5.391 2.226-1.289 1.289-1.992 3.047-2.109 5.274-.235-2.227-.937-3.983-2.108-5.155-1.289-1.288-3.048-2.109-5.391-2.344 2.227-.116 3.867-.82 5.156-1.991 1.288-1.289 2.108-3.164 2.343-5.508.117 2.46.937 4.336 2.344 5.508 1.288 1.171 2.93 1.875 5.156 1.991zM18.75 48.75c-2.345.236-4.103.937-5.392 2.227-1.288 1.172-1.992 2.93-2.108 5.274-.235-2.46-1.055-4.218-2.46-5.507-1.056-1.055-2.812-1.758-5.04-1.992 1.993-.116 3.633-.703 4.804-1.758 1.524-1.172 2.46-3.047 2.696-5.743.116 1.992.703 3.751 1.875 5.156 1.172 1.288 3.047 2.108 5.626 2.344z'\n />\n </g>\n </StyledAgentIcon>\n ) : (\n <StyledAgentIcon\n width='26'\n height='26'\n viewBox='0 0 26 26'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <g clipPath={`url(#${idC})`}>\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M26 13C22.0904 13.4036 19.0422 14.5723 16.9639 16.5542C14.5783 18.7349 13.259 21.8855 13 26C12.494 21.8374 11.0723 18.6867 8.78313 16.506C6.6506 14.5241 3.70482 13.3554 0 13C3.90964 12.6928 6.95783 11.4759 9.13855 9.34337C11.3193 7.16265 12.5904 4.06024 13 0C13.3072 4.51807 14.7771 7.87349 17.4699 10.0542C19.6506 11.7831 22.494 12.747 26 13ZM24.3735 4.87349C23.4096 4.9759 22.6446 5.27711 22.0361 5.83735C21.4759 6.39759 21.1747 7.15663 21.1205 8.12048C21.0181 7.15663 20.7169 6.39157 20.2048 5.88554C19.6446 5.3253 18.8855 4.96988 17.8675 4.86747C18.8313 4.81928 19.5422 4.51205 20.1024 4.00602C20.6627 3.44578 21.0181 2.63253 21.1205 1.62048C21.1687 2.68675 21.5241 3.5 22.1386 4.00602C22.6988 4.51205 23.4096 4.81928 24.3735 4.86747V4.87349ZM8.12651 21.1265C7.10843 21.2289 6.3494 21.5301 5.78916 22.0904C5.22892 22.5964 4.92771 23.3614 4.87349 24.3735C4.77108 23.3072 4.41566 22.5482 3.80723 21.988C3.3494 21.5301 2.59036 21.2289 1.62651 21.1265C2.48795 21.0783 3.1988 20.8193 3.71084 20.3675C4.37349 19.8614 4.77711 19.0482 4.87952 17.8795C4.92771 18.741 5.18675 19.506 5.69277 20.1145C6.1988 20.6747 7.01205 21.0301 8.13253 21.1325L8.12651 21.1265Z'\n fill={`url(#${idA})`}\n />\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M26 13C22.0904 13.4036 19.0422 14.5723 16.9639 16.5542C14.5783 18.7349 13.259 21.8855 13 26C12.494 21.8373 11.0723 18.6867 8.78313 16.506C6.6506 14.5241 3.70482 13.3554 0 13C3.90964 12.6928 6.95783 11.4759 9.13855 9.34337C11.3193 7.16265 12.5904 4.06024 13 0C13.3072 4.51807 14.7771 7.87349 17.4699 10.0542C19.6506 11.7831 22.494 12.747 26 13ZM24.3735 4.87349C23.4096 4.9759 22.6446 5.27711 22.0361 5.83735C21.4759 6.39759 21.1747 7.15663 21.1205 8.12048C21.0181 7.15663 20.7169 6.39157 20.2048 5.88554C19.6446 5.3253 18.8855 4.96988 17.8675 4.86747C18.8313 4.81928 19.5422 4.51205 20.1024 4.00602C20.6627 3.44578 21.0181 2.63253 21.1205 1.62048C21.1687 2.68675 21.5241 3.5 22.1386 4.00602C22.6988 4.51205 23.4096 4.81928 24.3735 4.86747V4.87349ZM8.12651 21.1265C7.10843 21.2289 6.3494 21.5301 5.78916 22.0904C5.22892 22.5964 4.92771 23.3614 4.87349 24.3735C4.77108 23.3072 4.41566 22.5482 3.80723 21.988C3.3494 21.5301 2.59036 21.2289 1.62651 21.1265C2.48795 21.0783 3.1988 20.8193 3.71084 20.3675C4.37349 19.8614 4.77711 19.0482 4.87952 17.8795C4.92771 18.741 5.18675 19.506 5.69277 20.1145C6.1988 20.6747 7.01205 21.0301 8.13253 21.1325L8.12651 21.1265Z'\n fill={`url(#${idB})`}\n />\n </g>\n <defs>\n <linearGradient\n id={idA}\n x1='19.2169'\n y1='19.2169'\n x2='7.28916'\n y2='7.28916'\n gradientUnits='userSpaceOnUse'\n >\n <stop offset='0.12' stopColor='#D4B1FF' />\n <stop offset='0.42' stopColor='#AE9AFE' />\n <stop offset='0.59' stopColor='#AEB7FC' />\n <stop offset='0.97' stopColor='#E4CAFF' />\n </linearGradient>\n <linearGradient\n id={idB}\n x1='7.53614'\n y1='-1.65663'\n x2='17.253'\n y2='24.4096'\n gradientUnits='userSpaceOnUse'\n >\n <stop offset='0.46' stopColor='#8165D2' stopOpacity='0' />\n <stop offset='0.52' stopColor='#5B39B9' stopOpacity='0.4' />\n </linearGradient>\n <clipPath id={idC}>\n <rect width='26' height='26' fill='white' />\n </clipPath>\n </defs>\n </StyledAgentIcon>\n );\n};\n\nexport const AISuggestedBadge = () => {\n const t = useI18n();\n return (\n <StyledAISuggestedBadge container={{ alignItems: 'center', gap: 0.5 }}>\n <Icon name='polaris-solid' aria-hidden size='font-size' />\n <Text>{t('ai_suggestion')}</Text>\n </StyledAISuggestedBadge>\n );\n};\n\ninterface HeaderActionsProps {\n actions?: ActionsProps;\n allowFullScreen: boolean;\n variant: GenAICoachProps['variant'];\n isUserTriggeredRef: { current: boolean };\n isFullscreen: boolean;\n onFullscreenToggle?: () => void;\n selectedCoach?: string;\n actionsTestId?: string;\n}\n\nconst HeaderActions = ({\n actions,\n allowFullScreen,\n variant,\n isUserTriggeredRef,\n onFullscreenToggle,\n isFullscreen,\n selectedCoach,\n actionsTestId\n}: HeaderActionsProps) => {\n const t = useI18n();\n const fullscreenIcon = isFullscreen ? 'dock' : 'undock';\n\n const extraItems: Action[] = [\n ...(allowFullScreen\n ? [\n {\n id: 'fullscreen',\n text: isFullscreen ? t('exit_fullscreen') : t('fullscreen'),\n visual: <Icon name={fullscreenIcon} />,\n onClick: onFullscreenToggle\n }\n ]\n : []),\n ...(isInUtilities(variant) && !isFullscreen\n ? [\n {\n id: 'minimize',\n text: t('minimize'),\n visual: <Icon name='minus' />,\n onClick: () => {\n variant.onStateChange('minimized');\n isUserTriggeredRef.current = true;\n }\n }\n ]\n : [])\n ];\n\n const mergedItems = [...(actions?.items ?? []), ...extraItems];\n if (mergedItems.length === 0) return null;\n\n return (\n <Actions\n {...(actions ?? {})}\n menuAt={1}\n data-testid={actionsTestId}\n contextualLabel={selectedCoach}\n items={mergedItems}\n />\n );\n};\n\nconst GenAICoachContent = ({\n testId,\n coachOptions: coachOptionsProps,\n onCoachChange: onCoachChangeProp,\n messages = [],\n onSend,\n initialSuggestedMessages,\n suggestions,\n loading,\n error,\n variant,\n onOpen,\n guidedMode = false,\n actions,\n onNewChat,\n conversationHistory,\n onLayoutChange,\n onAddAttachment,\n attachments,\n attachmentsError,\n lightboxPreviewProps,\n allowFullScreen = true,\n isInLandingPageUtilities,\n stopProcess,\n voiceToTextProps,\n salutation,\n showSalutation = true,\n isPortalAgent = false,\n pagePanel,\n suggestionCardsView,\n draftMessage,\n caseWorkflow,\n activeCases,\n onStop,\n isCreatingConversation,\n conversationError,\n questionnaireData,\n onQuestionnaireDismiss,\n ...restProps\n}: GenAICoachProps) => {\n const scrollTolerancePx = 2;\n const scrollThresholdPx = 50;\n const streamBufferLh = 5;\n const bufferExtensionLh = 2;\n const scrollThrottleMs = 50;\n const resizeThrottleMs = 33;\n\n const theme = useTheme();\n const t = useI18n();\n const testIds = useTestIds(testId, getGenAICoachTestIds);\n const { announcePolite } = useLiveLog();\n\n const elementRef = useRef<HTMLElement | null>(null);\n const conversationRef = useRef<HTMLUListElement>(null);\n const genAICoachRef = useRef<HTMLDivElement>(null);\n const [messageEls, getMessageCbRef] = useRefMap<HTMLLIElement>();\n\n const focusInMessageListRef = useRef(false);\n const mouseTriggeredFocusRef = useRef(false);\n const isUserTriggered = useRef(false);\n const lastFocusedMessageRef = useRef<HTMLElement | null>(null);\n const initialFocusedElementRef = useRef<HTMLElement | null>(null);\n const inputContainerRef = useRef<HTMLDivElement | null>(null);\n const messageContainerRef = useRef<HTMLDivElement | null>(null);\n const textAreaRef = useRef<HTMLTextAreaElement>(null);\n const [suggestionMenuButton, setSuggestionMenuButton] = useElement<HTMLButtonElement>(null);\n const isGeneratingResponse = useRef(false);\n const focusTextArea = useRef(false);\n const historyViewRef = useRef<HTMLUListElement>(null);\n const fileUploadInputRef = useRef<HTMLInputElement>(null);\n const attachmentsAdded = useRef(false);\n const pendingResult = useRef(false);\n\n const scrollStateRef = useRef<GenAICoachScrollState>({\n userAtBottom: false,\n isStreamingActive: false,\n initialBufferApplied: false,\n smoothScrollOnEnd: false,\n ignoreNextScrollEvent: false,\n lastScrollTop: null,\n bufferMinHeight: null\n });\n\n const observersRef = useRef<{\n inputContainer: ResizeObserver | null;\n messageContainer: ResizeObserver | null;\n streamingMessage: ResizeObserver | null;\n }>({\n inputContainer: null,\n messageContainer: null,\n streamingMessage: null\n });\n\n const isSmallOrAbove = useBreakpoint('sm', {\n breakpointRef: genAICoachRef\n });\n\n const [message, setMessage] = useState('');\n\n const [interimMessage, setInterimMessage] = useState('');\n const [coachOptions, setCoachOptions] = useState<MenuProps['items']>(coachOptionsProps);\n\n const [focusedInMessage, setFocusedInMessage] = useState(false);\n const scrollButtonRef = useRef<HTMLButtonElement>(null);\n const trapRef = useRef<HTMLElement | null>(null);\n\n const [animationInitialCursorPos, setAnimationInitialCursorPos] = useState(0);\n const [focused, setFocused] = useState(false);\n const [formAnswers, setFormAnswers] = useState<Record<string, FormAnswer> | undefined>();\n const [questionnaireDismissed, setQuestionnaireDismissed] = useState(false);\n\n const [ctxFullscreen, toggleFullscreen] = useFullscreenContext() ?? [];\n const fullScreen = !!ctxFullscreen;\n\n const questionnaireKey = questionnaireData?.questions?.map(q => q.field).join(',') ?? '';\n\n const [showScrollToBottom, setShowScrollToBottom] = useState(false);\n\n const prevFullScreen = usePrevious(fullScreen);\n const prevIsSmallOrAbove = usePrevious(isSmallOrAbove);\n const previousMessages = usePrevious(messages);\n\n const composerId = useUID();\n\n const handleFormChange = useCallback((answers: Record<string, FormAnswer>) => {\n setFormAnswers(answers);\n }, []);\n\n const handleFormCancel = () => {\n setFormAnswers(undefined);\n setQuestionnaireDismissed(true);\n textAreaRef.current?.focus();\n onQuestionnaireDismiss?.();\n };\n\n const latestMessage = messages.at(-1);\n const isLatestAgentMessageStreaming =\n !!latestMessage && isCoachMessage(latestMessage) && !!latestMessage.loading;\n\n const shouldKeepSplitLayoutDuringFullscreenToggle =\n !!conversationHistory &&\n variant.placement === 'fullpage' &&\n prevFullScreen !== undefined &&\n prevFullScreen !== fullScreen &&\n !!prevIsSmallOrAbove;\n\n const shouldRenderSideBySideHistory =\n !!conversationHistory &&\n (fullScreen ||\n (variant.placement === 'fullpage' &&\n (isSmallOrAbove || shouldKeepSplitLayoutDuringFullscreenToggle)));\n\n const condition =\n !shouldRenderSideBySideHistory &&\n (variant.placement === 'dialog' ||\n variant.placement === 'utilities' ||\n (variant.placement === 'fullpage' && !isSmallOrAbove) ||\n !conversationHistory);\n\n const applyBuffer = useCallback(() => {\n const container = messageContainerRef.current;\n const conversationEl = conversationRef.current;\n\n const scrollState = scrollStateRef.current;\n\n if (!container || !conversationEl) return;\n\n const contentHeight = Array.from(conversationEl.children).reduce((sum, child) => {\n if (child instanceof HTMLElement) return sum + child.offsetHeight;\n return sum;\n }, 0);\n\n const computedStyle = window.getComputedStyle(conversationEl);\n const lineHeightPx = parseFloat(computedStyle.lineHeight) || 20;\n const bufferSizePx = streamBufferLh * lineHeightPx;\n\n const currentBuffer = scrollState.bufferMinHeight ?? 0;\n\n const distanceToBufferEnd = currentBuffer - contentHeight;\n const extensionThreshold = bufferExtensionLh * lineHeightPx;\n\n if (currentBuffer === 0 || distanceToBufferEnd < extensionThreshold) {\n const newBuffer = contentHeight + bufferSizePx;\n scrollState.bufferMinHeight = newBuffer;\n\n conversationEl.style.setProperty('--stream-buffer', `${newBuffer}px`);\n }\n }, []);\n\n const manageBuffer = useCallback(\n (action: 'extend' | 'clear' | 'init') => {\n const container = messageContainerRef.current;\n const conversationEl = conversationRef.current;\n\n const scrollState = scrollStateRef.current;\n\n if (!container || !conversationEl) return;\n\n if (action === 'clear') {\n conversationEl.style.removeProperty('--stream-buffer');\n scrollState.bufferMinHeight = null;\n return;\n }\n\n if (action === 'init') {\n applyBuffer();\n return;\n }\n\n if (!scrollState.isStreamingActive || !scrollState.userAtBottom) return;\n\n applyBuffer();\n },\n [applyBuffer]\n );\n\n const followStreamingMessage = useCallback(() => {\n const container = messageContainerRef.current;\n const scrollState = scrollStateRef.current;\n\n if (\n !container ||\n !scrollState.isStreamingActive ||\n !scrollState.userAtBottom ||\n (scrollState.lastScrollTop !== null &&\n container.scrollTop < scrollState.lastScrollTop - scrollTolerancePx)\n )\n return;\n\n manageBuffer('extend');\n\n const targetScroll = container.scrollHeight - container.clientHeight;\n const currentScroll = container.scrollTop;\n\n if (Math.abs(currentScroll - targetScroll) > scrollTolerancePx) {\n scrollState.ignoreNextScrollEvent = true;\n container.scrollTo({ top: targetScroll, behavior: 'auto' });\n }\n }, [manageBuffer]);\n\n const scrollToLatest = useCallback(\n (behavior: ScrollBehavior = 'auto', preferLast: boolean = true) => {\n const container = messageContainerRef.current;\n const conversationEl = conversationRef.current;\n const lastMessage = conversationEl?.lastElementChild;\n\n if (!container) return;\n\n const scrollState = scrollStateRef.current;\n\n if (preferLast && lastMessage && lastMessage instanceof HTMLElement) {\n const scrollHeight = container.scrollHeight;\n const clientHeight = container.clientHeight;\n\n const targetScrollTop = scrollHeight - clientHeight - scrollThresholdPx / 2;\n\n if (targetScrollTop > container.scrollTop) {\n scrollState.ignoreNextScrollEvent = true;\n container.scrollTo({ top: targetScrollTop, behavior: 'auto' });\n }\n\n return;\n }\n\n scrollState.ignoreNextScrollEvent = true;\n container.scrollTo({ top: container.scrollHeight, behavior });\n },\n []\n );\n\n const updateScrollState = useCallback(\n (isScrollEvent: boolean = false) => {\n const container = messageContainerRef.current;\n const conversationEl = conversationRef.current;\n\n if (!container || !conversationEl) {\n setShowScrollToBottom(false);\n return;\n }\n\n const state = scrollStateRef.current;\n\n if (state.initialBufferApplied) {\n scrollToLatest('auto', true);\n setShowScrollToBottom(false);\n state.initialBufferApplied = false;\n return;\n }\n\n if (state.smoothScrollOnEnd) {\n scrollToLatest('smooth', false);\n setShowScrollToBottom(false);\n state.smoothScrollOnEnd = false;\n return;\n }\n\n if (isScrollEvent && state.ignoreNextScrollEvent) {\n state.ignoreNextScrollEvent = false;\n return;\n }\n\n const isUserScroll = isScrollEvent;\n const { clientHeight, scrollHeight, scrollTop } = container;\n\n const trueContentHeight = Array.from(conversationEl.children).reduce(\n (sum, child) => (child instanceof HTMLElement ? sum + child.offsetHeight : sum),\n 0\n );\n\n const hasOverflow = trueContentHeight > clientHeight + scrollTolerancePx;\n const distanceFromBufferedBottom = scrollHeight - scrollTop - clientHeight;\n const isAtBufferedBottom = distanceFromBufferedBottom <= scrollThresholdPx;\n\n if (!state.isStreamingActive) {\n const distanceFromBottom = trueContentHeight - scrollTop - clientHeight;\n const isAtBottom = distanceFromBottom <= scrollThresholdPx;\n setShowScrollToBottom(hasOverflow && !isAtBottom);\n\n return;\n }\n\n if (isUserScroll) {\n const previousScrollTop = state.lastScrollTop;\n state.lastScrollTop = scrollTop;\n\n if (previousScrollTop !== null && scrollTop < previousScrollTop - scrollTolerancePx) {\n state.userAtBottom = false;\n } else if (isAtBufferedBottom) {\n state.userAtBottom = true;\n }\n }\n\n if (state.userAtBottom && isAtBufferedBottom) {\n followStreamingMessage();\n setShowScrollToBottom(false);\n } else {\n setShowScrollToBottom(hasOverflow && !isAtBufferedBottom);\n }\n },\n [followStreamingMessage, scrollToLatest]\n );\n\n const updateScrollStateOnResize = useMemo(\n () => throttle(() => updateScrollState(false), resizeThrottleMs),\n [updateScrollState]\n );\n\n const updateScrollStateOnScrollEvent = useMemo(\n () => throttle(() => updateScrollState(true), scrollThrottleMs),\n [updateScrollState]\n );\n\n const handleScrollToBottomClick = useCallback(() => {\n const scrollState = scrollStateRef.current;\n const isStreaming = scrollState.isStreamingActive;\n\n scrollToLatest(isStreaming ? 'auto' : 'smooth', false);\n\n if (isStreaming) {\n scrollState.userAtBottom = true;\n }\n\n setShowScrollToBottom(false);\n\n const lastMessage = conversationRef.current?.lastElementChild;\n if (lastMessage instanceof HTMLElement) {\n lastFocusedMessageRef.current = lastMessage;\n focusInMessageListRef.current = true;\n lastMessage.focus();\n }\n }, [scrollToLatest]);\n\n const setInputContainerRef = useCallback((el: HTMLDivElement | null) => {\n if (inputContainerRef.current === el) return;\n\n observersRef.current.inputContainer?.disconnect();\n observersRef.current.inputContainer = null;\n\n inputContainerRef.current = el;\n if (!el) return;\n\n const ro = new ResizeObserver(entries => {\n const entry = entries[0];\n if (entry && genAICoachRef.current) {\n const height = Math.round(entry.contentRect.height);\n genAICoachRef.current.style.setProperty('--composer-height', `${height}px`);\n }\n });\n\n ro.observe(el);\n observersRef.current.inputContainer = ro;\n }, []);\n\n const setMessageContainerRef = useCallback((el: HTMLDivElement | null) => {\n messageContainerRef.current = el;\n }, []);\n\n const onCoachChange = (id: MenuItemProps['id']) => {\n setCoachOptions(cur => {\n return cur.map(coach => {\n return {\n ...coach,\n selected: coach.id === id\n };\n });\n });\n onCoachChangeProp?.(id);\n };\n\n const selectedCoach = useMemo(() => {\n const selected = menuHelpers.getSelected(coachOptions)[0];\n if (selected) return selected.primary;\n\n if (coachOptions[0]) {\n if (isMenuGroupProps(coachOptions[0])) {\n return coachOptions[0].items[0].primary;\n }\n return coachOptions[0].primary;\n }\n }, [coachOptions]);\n\n const onResult: UseSpeechRecognitionProps['onResult'] = useCallback(value => {\n pendingResult.current = false;\n setMessage(prevMessage => {\n return prevMessage ? `${prevMessage} ${value}` : value;\n });\n setInterimMessage('');\n }, []);\n\n const onInterimResult: NonNullable<UseSpeechRecognitionProps['onInterimResult']> = useCallback(\n value => {\n if (value) {\n pendingResult.current = true;\n setInterimMessage(message ? ` ${value}` : value);\n }\n },\n [message]\n );\n\n const {\n supported,\n active,\n start,\n stop,\n error: voiceToTextError\n } = useSpeechRecognition({\n onResult,\n onInterimResult,\n langCode: voiceToTextProps?.langCode\n });\n\n const handleSendMessage = useCallback(() => {\n const hasFormAnswers =\n !!questionnaireData &&\n formAnswers &&\n Object.values(formAnswers).some(v => v.value.length > 0);\n const isMessageAndAttachmentsEmpty = !message && (!attachments || attachments.length === 0);\n const hasAttachmentsError =\n attachments &&\n attachments.length > 0 &&\n (attachmentsError || attachments.some(attachment => attachment.error));\n const isCoachMessageLoading =\n latestMessage && isCoachMessage(latestMessage) && latestMessage.loading;\n if (\n (isMessageAndAttachmentsEmpty && !hasFormAnswers) ||\n hasAttachmentsError ||\n isCoachMessageLoading ||\n (latestMessage && isCoachMessage(latestMessage) && latestMessage.isToolConfirmation)\n )\n return;\n\n onSend({\n id: createUID(),\n message,\n fromComposer: true,\n attachmentIds: attachments?.map(({ id }) => id),\n formAnswers: hasFormAnswers ? formAnswers : undefined\n });\n setFormAnswers(undefined);\n setMessage('');\n if (active) {\n stop();\n }\n }, [message, latestMessage, attachments, attachmentsError, formAnswers, questionnaireData]);\n\n const handleEnterKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n e.stopPropagation();\n handleSendMessage();\n }\n };\n\n const handleTextAreaChange = useCallback(\n (e: ChangeEvent<HTMLTextAreaElement>) => {\n setMessage(e.currentTarget.value);\n },\n [setMessage]\n );\n\n const renderCoachOptions = useMemo(() => {\n if (coachOptions.length === 0 || !selectedCoach) {\n return null;\n }\n if (coachOptions.length === 1) {\n return (\n <Text variant={isPortalAgent && !pagePanel?.visible ? 'h1' : 'h2'}>{selectedCoach}</Text>\n );\n }\n return (\n <MenuButton\n text={selectedCoach}\n aria-label={t('agent_switcher', [selectedCoach])}\n variant='text'\n as={StyledGenAIOptionsMenu}\n menu={{\n mode: 'single-select',\n items: coachOptions,\n onItemClick: onCoachChange\n }}\n />\n );\n }, [coachOptions, selectedCoach, isPortalAgent, pagePanel?.visible]);\n\n const headerContent = useMemo(() => {\n return isInUtilities(variant) && variant.state === 'minimized' ? (\n <>\n <Text variant='h2'>{selectedCoach}</Text>\n <Flex container={{ alignItems: 'center' }}>\n <Button\n icon\n label={t('maximize')}\n aria-label={t('agent_noun', [t('maximize')])}\n variant='simple'\n onClick={() => {\n variant.onStateChange('maximized');\n isUserTriggered.current = true;\n }}\n >\n <Icon name='caret-up' />\n </Button>\n </Flex>\n </>\n ) : (\n <>\n {renderCoachOptions}\n\n <Flex container={{ gap: 0.5 }} as={StyledActionsContainer}>\n {activeCases && <ActiveCases activeCases={activeCases} />}\n\n {onNewChat && (\n <Button\n icon\n variant='simple'\n label={t('new_chat')}\n aria-label={t('new_chat')}\n onClick={onNewChat}\n >\n <Icon name='plus' />\n </Button>\n )}\n\n <HeaderActions\n actions={actions}\n allowFullScreen={allowFullScreen}\n variant={variant}\n isUserTriggeredRef={isUserTriggered}\n onFullscreenToggle={toggleFullscreen}\n isFullscreen={fullScreen}\n selectedCoach={selectedCoach}\n actionsTestId={testIds.actions}\n />\n\n {variant.placement === 'dialog' && !fullScreen && (\n <Button\n icon\n label={t('close')}\n aria-label={t('close_chat_with_ai')}\n variant='simple'\n onClick={variant.onClose}\n >\n <Icon name='times' />\n </Button>\n )}\n </Flex>\n </>\n );\n }, [variant, coachOptions, activeCases, actions, allowFullScreen, onNewChat]);\n\n const getMessageContainingElement = (element: Element | null) => {\n if (element) return Array.from(messageEls.values()).find(el => el && el.contains(element));\n return null;\n };\n\n const setLastFocusableElement = () => {\n focusInMessageListRef.current = false;\n lastFocusedMessageRef.current = elementRef.current ?? null;\n if (\n lastFocusedMessageRef.current &&\n lastFocusedMessageRef.current?.tagName.toLowerCase() !== 'li'\n ) {\n lastFocusedMessageRef.current =\n getMessageContainingElement(lastFocusedMessageRef.current) ?? null;\n }\n };\n\n const focusLastMessageLi = useCallback((e: KeyboardEvent) => {\n if (e.key !== 'Tab' || !e.shiftKey) return;\n const target = lastFocusedMessageRef.current ?? conversationRef.current?.lastElementChild;\n if (!(target instanceof HTMLElement)) return;\n e.preventDefault();\n focusInMessageListRef.current = true;\n target.focus();\n }, []);\n\n const variantState = useMemo(() => {\n if (variant.placement === 'utilities') {\n return variant.state;\n }\n }, [variant]);\n\n useEffect(() => {\n if (questionnaireData) {\n setQuestionnaireDismissed(false);\n setFormAnswers(undefined);\n }\n }, [questionnaireData]);\n\n useEffect(() => {\n if (draftMessage !== undefined) {\n setMessage(draftMessage);\n if (suggestionCardsView || draftMessage) textAreaRef.current?.focus();\n }\n }, [draftMessage, suggestionCardsView]);\n\n useEffect(() => {\n setFormAnswers(undefined);\n }, [questionnaireKey]);\n\n useEffect(() => {\n if (isUserTriggered.current) {\n if (\n isInUtilities(variant) &&\n (variant.state === 'minimized' || (guidedMode && variant.state === 'maximized')) &&\n getFocusables(genAICoachRef).length > 0\n ) {\n getFocusables(genAICoachRef)[0].focus();\n isUserTriggered.current = false;\n } else if (variant.placement !== 'fullpage') {\n textAreaRef.current?.focus();\n elementRef.current = null;\n isUserTriggered.current = false;\n }\n }\n }, [variantState, variant.placement]);\n\n useEffect(() => {\n onLayoutChange?.(!condition);\n }, [condition]);\n\n useEffect(() => {\n onOpen?.();\n\n return () => {\n Object.values(observersRef.current).forEach(observer => {\n observer?.disconnect();\n });\n };\n }, []);\n\n useEffect(() => {\n const prevFilteredMsgs = previousMessages?.filter(item => !hasProp(item, 'loading')) ?? [];\n const currentFilteredMsgs = messages?.filter(item => !hasProp(item, 'loading')) ?? [];\n\n if (\n prevFilteredMsgs.length < currentFilteredMsgs.length ||\n (latestMessage && hasProp(latestMessage, 'loading'))\n ) {\n if (latestMessage && isUserMessage(latestMessage)) {\n textAreaRef.current?.focus();\n setLastFocusableElement();\n elementRef.current = null;\n } else if (latestMessage?.loading) {\n isGeneratingResponse.current = true;\n } else {\n announcePolite({ message: t('agent_noun', [`${t('new_message')} ${t('from')}`]) });\n }\n }\n }, [messages]);\n\n useEffect(() => {\n if (!isLatestAgentMessageStreaming) return;\n\n announcePolite({ type: 'status', message: t('generating_response') });\n }, [isLatestAgentMessageStreaming]);\n\n useEffect(() => {\n const scrollState = scrollStateRef.current;\n const wasStreaming = scrollState.isStreamingActive;\n\n if (isLatestAgentMessageStreaming && !wasStreaming) {\n scrollStateRef.current = {\n ...scrollStateRef.current,\n isStreamingActive: true,\n initialBufferApplied: true,\n userAtBottom: false,\n smoothScrollOnEnd: false,\n lastScrollTop: null\n };\n\n requestAnimationFrame(() => {\n manageBuffer('init');\n });\n\n return;\n }\n\n if (!isLatestAgentMessageStreaming && wasStreaming) {\n scrollStateRef.current = {\n ...scrollStateRef.current,\n isStreamingActive: false,\n initialBufferApplied: false,\n userAtBottom: false,\n smoothScrollOnEnd: true\n };\n\n manageBuffer('clear');\n }\n }, [isLatestAgentMessageStreaming, manageBuffer]);\n\n useEffect(() => {\n const container = messageContainerRef.current;\n const content = conversationRef.current;\n\n if (!container || !content) return;\n\n const containerRO = new ResizeObserver(updateScrollStateOnResize);\n containerRO.observe(container);\n containerRO.observe(content);\n\n observersRef.current.messageContainer = containerRO;\n\n let streamingMessageRO: ResizeObserver | null = null;\n const lastMessageEl = content.lastElementChild;\n\n if (isLatestAgentMessageStreaming && lastMessageEl) {\n const handleStreamingUpdate = throttle(() => {\n followStreamingMessage();\n updateScrollState(false);\n }, resizeThrottleMs);\n\n streamingMessageRO = new ResizeObserver(handleStreamingUpdate);\n streamingMessageRO.observe(lastMessageEl);\n\n observersRef.current.streamingMessage = streamingMessageRO;\n }\n\n return () => {\n containerRO.disconnect();\n observersRef.current.messageContainer = null;\n\n streamingMessageRO?.disconnect();\n observersRef.current.streamingMessage = null;\n };\n }, [\n messages.length,\n isLatestAgentMessageStreaming,\n followStreamingMessage,\n updateScrollState,\n updateScrollStateOnResize\n ]);\n\n useEffect(() => {\n if (suggestionMenuButton && isGeneratingResponse.current) {\n announcePolite({ message: t('response_generated') });\n isGeneratingResponse.current = false;\n\n const activeElement = getActiveElement();\n if (activeElement && activeElement === document.body) suggestionMenuButton.focus();\n }\n }, [suggestionMenuButton]);\n\n useEffect(() => {\n if (messages.length === 0 || loading || error) {\n setShowScrollToBottom(false);\n }\n }, [messages.length, loading, error]);\n\n /** Supports Enter key to enter a message and focus first focusable element inside it */\n useEffect(() => {\n if (!focusedInMessage) return;\n const focusables = getFocusables(elementRef);\n focusables[0]?.focus();\n }, [focusedInMessage, elementRef.current]);\n\n /**\n * While inside a message, stop ArrowUp/Down from bubbling to conversationRef\n * so useArrows does not navigate between message rows.\n */\n useEffect(() => {\n const el = elementRef.current;\n if (!focusedInMessage || !el) return;\n const blockArrows = (e: globalThis.KeyboardEvent) => {\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n e.stopPropagation();\n }\n };\n el.addEventListener('keydown', blockArrows);\n return () => el.removeEventListener('keydown', blockArrows);\n }, [focusedInMessage]);\n\n useArrows(\n conversationRef,\n {\n cycle: true,\n selector: ':scope > li',\n dir: 'up-down',\n allowTabFocus: true,\n initialFocusElement: initialFocusedElementRef.current\n },\n [messages, initialFocusedElementRef.current]\n );\n\n useFocusTrap(trapRef, true, [focusedInMessage]);\n\n useOuterEvent(\n 'mousedown',\n [focusedInMessage ? elementRef.current : conversationRef.current],\n () => {\n setFocusedInMessage(false);\n trapRef.current = null;\n focusInMessageListRef.current = false;\n }\n );\n\n const { push } = useToaster();\n\n const onSpeechToTextButtonClick = useCallback(() => {\n if (active) {\n stop();\n } else {\n start();\n }\n }, [active, stop, start]);\n\n const onFileChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (e.target.files) {\n const newFiles = Array.from(e.target.files);\n onAddAttachment?.(newFiles);\n }\n };\n\n const getGridColumns = () => {\n const multiCol = 'repeat(auto-fit, minmax(calc(100% / 4 - 1rem), 1fr))';\n const singleCol = '1fr';\n\n return !isSmallOrAbove ? singleCol : multiCol;\n };\n\n useEffect(() => {\n if (voiceToTextError) {\n push({ content: voiceToTextError });\n }\n }, [voiceToTextError]);\n\n const genAIFooter = (\n <Flex container={{ direction: 'column' }} as={StyledGenAIFooter}>\n <StyledComposerWrapper\n focused={focused}\n hasQuestionnaire={!!questionnaireData && !questionnaireDismissed}\n onFocus={() => setFocused(true)}\n onBlur={e => {\n if (!(e.relatedTarget instanceof Node) || !e.currentTarget.contains(e.relatedTarget)) {\n setFocused(false);\n }\n }}\n >\n {questionnaireData && !questionnaireDismissed && !questionnaireData.inline && (\n <Questionnaire\n key={questionnaireKey}\n data={questionnaireData}\n onChange={handleFormChange}\n onCancel={handleFormCancel}\n />\n )}\n <FormField\n label={t('message_pega_gen_ai_coach')}\n labelHidden\n labelFor={composerId}\n info={conversationError || undefined}\n status={conversationError ? 'error' : undefined}\n >\n <StyledGenAIFormControl\n focused={(!questionnaireData || questionnaireDismissed) && focused}\n status={conversationError ? 'error' : undefined}\n >\n <Flex container={{ direction: 'column', gap: 0.25 }}>\n <StyledGenAITextArea\n id={composerId}\n ref={textAreaRef}\n value={interimMessage ? `${message}${interimMessage}` : message}\n placeholder={t('write_message')}\n onKeyDown={handleEnterKeyDown}\n onChange={handleTextAreaChange}\n onFocus={() => {\n if (active) stop();\n }}\n autoResize\n />\n\n <Flex\n container={{\n direction: 'row',\n justify: 'between',\n gap: 1,\n pad: [undefined, 1, 1, 1]\n }}\n >\n <Flex container={{ alignItems: 'center' }}>\n {!(messages.length === 0 && suggestionCardsView) && suggestions && (\n <MenuButton\n text={t('suggestions')}\n variant='simple'\n icon='chat-typing'\n iconOnly\n as={StyledMenuSuggestions}\n menu={{\n items: suggestions,\n onItemClick: id => {\n const selected = menuHelpers.getItem(suggestions, id);\n if (selected && !selected.onClick) {\n setMessage(selected.primary);\n textAreaRef.current?.focus();\n }\n }\n }}\n showArrow={false}\n />\n )}\n {voiceToTextProps?.enableDictation && supported && (\n <SpeechToTextButton active={active} onClick={onSpeechToTextButtonClick} />\n )}\n\n {onAddAttachment && (\n <>\n <Button\n icon\n onClick={() => {\n if (fileUploadInputRef.current) {\n fileUploadInputRef.current.value = '';\n }\n fileUploadInputRef.current?.click();\n }}\n variant='simple'\n label={t('add_attachment')}\n >\n <Icon name='paper-clip' />\n </Button>\n <StyledInput\n type='file'\n ref={fileUploadInputRef}\n onChange={onFileChange}\n multiple={false}\n data-testid={testIds.attachments}\n />\n </>\n )}\n </Flex>\n\n {(() => {\n if (active && pendingResult.current) {\n return (\n <Flex\n container={{\n gap: 1,\n justify: 'end',\n alignItems: 'center',\n pad: 1\n }}\n >\n {t('processing_speech')}\n <Progress placement='inline' />\n </Flex>\n );\n }\n\n const isToolConfirmation =\n latestMessage &&\n isCoachMessage(latestMessage) &&\n latestMessage.isToolConfirmation;\n\n let onStopFn: (() => void) | undefined;\n if (onStop) {\n onStopFn = onStop;\n } else if (isToolConfirmation) {\n onStopFn = stopProcess;\n }\n\n if (onStopFn) {\n return (\n <StyledStopGeneratingButton\n variant='primary'\n icon\n label={t('stop')}\n aria-label={t('stop')}\n onClick={() => {\n textAreaRef.current?.focus();\n onStopFn?.();\n }}\n >\n <Icon name='square-solid' />\n </StyledStopGeneratingButton>\n );\n }\n\n const isLoading =\n latestMessage &&\n isCoachMessage(latestMessage) &&\n latestMessage.loading &&\n !latestMessage.error;\n\n const sendButton = (\n <StyledSendButton\n variant='primary'\n onClick={isCreatingConversation ? undefined : handleSendMessage}\n icon\n label={t('send')}\n aria-label={t('send_message')}\n >\n <Icon name='send-solid' />\n </StyledSendButton>\n );\n\n if (isLoading) {\n if (isCreatingConversation) {\n return sendButton;\n }\n return (\n <Flex\n container={{\n gap: 1,\n justify: 'end',\n alignItems: 'center',\n pad: 1\n }}\n >\n {t('generating_response')}\n <Progress placement='inline' />\n </Flex>\n );\n }\n\n return sendButton;\n })()}\n </Flex>\n </Flex>\n </StyledGenAIFormControl>\n </FormField>\n </StyledComposerWrapper>\n\n {attachments && attachments.length > 0 && (\n <>\n <Flex\n as={FileList}\n type='item'\n aria-label={`${t('attachments')}`}\n items={attachments}\n container={{ pad: [1, 0] }}\n />\n\n {attachmentsError && (\n <Flex container={{ gap: 1, alignItems: 'center' }} as={StyledErrorContainer}>\n <Icon name='warn-solid' />\n <VisuallyHiddenText>{`${t('error')} `}</VisuallyHiddenText>\n\n {attachmentsError}\n </Flex>\n )}\n </>\n )}\n\n <Flex container={{ justify: 'center' }}>\n <StyledDisclaimerText inFullPage={!condition}>{t('ai_disclaimer')}</StyledDisclaimerText>\n </Flex>\n </Flex>\n );\n\n const isCompact =\n variant.placement === 'fullpage' &&\n !fullScreen &&\n !isInLandingPageUtilities &&\n messages.length === 0;\n\n const fullPageAndInitialScreen =\n (fullScreen || (variant.placement === 'fullpage' && !isInLandingPageUtilities)) &&\n messages.length === 0;\n\n const renderTextArea = fullPageAndInitialScreen ? null : genAIFooter;\n\n const GenAICoachElement = (\n <>\n {((isInUtilities(variant) && variant.state !== 'minimized') || !isInUtilities(variant)) && (\n <Flex container={{ direction: 'column' }} as={StyledFlexWrapper}>\n {caseWorkflow && <CaseWorkflow {...caseWorkflow} />}\n\n <Flex\n as={StyledMessagesContainer}\n ref={setMessageContainerRef}\n withSuggestionCards={\n !loading && !error && messages.length === 0 && !!suggestionCardsView\n }\n container={\n loading || error\n ? { direction: 'column', pad: [0, 2], justify: 'center' }\n : { direction: 'column', pad: [0, 2] }\n }\n {...(!loading && !error && messages.length === 0 && suggestionCardsView\n ? {}\n : { item: { grow: 1 } })}\n onScroll={updateScrollStateOnScrollEvent}\n >\n {loading || error ? (\n <Flex container={{ justify: 'center', alignItems: 'center' }}>\n {loading ? (\n <Progress\n variant='ring'\n placement='block'\n message={typeof loading === 'string' ? loading : t('loading')}\n />\n ) : (\n <ErrorState message={error} />\n )}\n </Flex>\n ) : (\n <>\n {messages.length === 0 ? (\n <Flex\n as={StyledInitialMessageContainer}\n container={{\n justify: suggestionCardsView ? undefined : 'center',\n direction: 'column',\n alignItems: 'center',\n gap: 4,\n pad: [6, 0, 2, 0]\n }}\n {...(suggestionCardsView ? {} : { item: { grow: 1 } })}\n >\n {((isInUtilities(variant) && variant.state === 'maximized') ||\n !isInUtilities(variant)) &&\n showSalutation && (\n <Flex\n container={{\n direction: 'column',\n alignItems: 'center',\n gap: 2,\n pad: [0, 2]\n }}\n >\n <AgentIcon />\n <Text variant='h3' as={StyledSalutation}>\n {salutation ?? t('welcome_text')}\n </Text>\n </Flex>\n )}\n\n {initialSuggestedMessages && initialSuggestedMessages.length > 0 && (\n <Grid\n as={StyledInitialMessageGrid}\n container={{ cols: getGridColumns(), gap: 1.5 }}\n >\n {initialSuggestedMessages.map(initialSuggestedMessage => (\n <InitialSuggestedMessage\n {...initialSuggestedMessage}\n onSend={initialMessage => {\n if (guidedMode) {\n onSend({\n id: initialMessage.id,\n message: initialMessage.message\n });\n } else {\n setMessage(initialMessage.message ?? '');\n }\n isUserTriggered.current = true;\n textAreaRef.current?.focus();\n }}\n testId={initialSuggestedMessage.id}\n />\n ))}\n </Grid>\n )}\n\n {fullPageAndInitialScreen && !guidedMode && !suggestionCardsView && genAIFooter}\n </Flex>\n ) : (\n <Flex\n as={StyledMessagesList}\n ref={conversationRef}\n aria-label={`${t('conversation')} ${t('view')}`}\n container={{ direction: 'column' }}\n onMouseDown={(e: MouseEvent) => {\n mouseTriggeredFocusRef.current = true;\n const target = e.target instanceof Element ? e.target : null;\n const clickedMessage = getMessageContainingElement(target);\n\n if (clickedMessage) {\n lastFocusedMessageRef.current = clickedMessage;\n }\n }}\n onMouseUp={() => {\n mouseTriggeredFocusRef.current = false;\n }}\n onFocus={() => {\n if (mouseTriggeredFocusRef.current) {\n mouseTriggeredFocusRef.current = false;\n focusInMessageListRef.current = true;\n return;\n }\n\n if (!focusInMessageListRef.current) {\n focusInMessageListRef.current = true;\n const target =\n lastFocusedMessageRef.current ??\n (conversationRef.current?.lastElementChild instanceof HTMLElement\n ? conversationRef.current.lastElementChild\n : null);\n target?.focus();\n }\n focusInMessageListRef.current = true;\n }}\n onKeyDown={(e: KeyboardEvent) => {\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n if (focusedInMessage) return;\n elementRef.current =\n getMessageContainingElement(document.activeElement) ?? null;\n lastFocusedMessageRef.current = elementRef.current;\n } else if (e.key === 'Enter' && !focusedInMessage) {\n const activeMessageElement = Array.from(messageEls.values()).find(\n el => el === document.activeElement\n );\n elementRef.current =\n getMessageContainingElement(document.activeElement) ?? null;\n initialFocusedElementRef.current = elementRef.current;\n if (\n activeMessageElement &&\n getFocusables(activeMessageElement).length > 0\n ) {\n e.preventDefault();\n trapRef.current = elementRef.current;\n setFocusedInMessage(true);\n }\n } else if (e.key === 'Escape' && focusedInMessage) {\n e.preventDefault();\n trapRef.current = null;\n setFocusedInMessage(false);\n elementRef.current?.focus();\n } else if (e.key === 'Tab') {\n if (focusedInMessage) return;\n e.preventDefault();\n setLastFocusableElement();\n if (e.shiftKey) {\n if (\n !condition &&\n conversationHistory &&\n conversationHistory.selectedItemId\n ) {\n const selectedId = historyViewRef.current?.querySelector<HTMLLIElement>(\n `li[id=\"${conversationHistory.selectedItemId}\"]`\n );\n\n if (selectedId) {\n selectedId.focus();\n e.preventDefault();\n }\n } else {\n const prevElement =\n conversationRef.current?.parentElement?.parentElement\n ?.previousElementSibling;\n if (prevElement) {\n const focusables = getFocusables(prevElement);\n if (focusables.length) {\n e.preventDefault();\n focusables[focusables.length - 1].focus();\n }\n }\n }\n } else {\n if (scrollButtonRef.current) {\n scrollButtonRef.current.focus();\n return;\n }\n const nextElement =\n conversationRef.current?.parentElement?.nextElementSibling;\n if (nextElement) {\n const focusables = getFocusables(nextElement);\n if (focusables.length) {\n focusables[0].focus();\n }\n }\n }\n }\n }}\n >\n {messages.map(item => {\n const messageProps = isCoachMessage(item)\n ? {\n ...item,\n suggestions:\n latestMessage?.id === item.id ? item.suggestions : undefined,\n onSend,\n onSubmit: item.isToolConfirmation\n ? (tools: Tool[]) => {\n onSend({\n ...item,\n message: typeof item.message === 'string' ? item.message : '',\n tools\n });\n }\n : undefined\n }\n : item;\n\n return (\n <GenAIMessage\n {...messageProps}\n ref={getMessageCbRef(item.id)}\n testId={item.id}\n announceInteraction={!focusInMessageListRef.current}\n onAnimationCursorUpdate={animatedTillCursor => {\n if (isCoachMessage(item)) {\n setAnimationInitialCursorPos(animatedTillCursor);\n }\n }}\n {...(prevFullScreen !== fullScreen ? { animationInitialCursorPos } : {})}\n />\n );\n })}\n </Flex>\n )}\n </>\n )}\n </Flex>\n\n {showScrollToBottom && (\n <StyledScrollButton\n ref={scrollButtonRef}\n icon\n onClick={handleScrollToBottomClick}\n ariaLabel={t('scroll_to_latest_message')}\n onKeyDown={focusLastMessageLi}\n >\n <Icon name='caret-down' />\n </StyledScrollButton>\n )}\n\n {!loading && messages.length === 0 && suggestionCardsView ? (\n <>\n {((isInUtilities(variant) && variant.state !== 'minimized') ||\n !isInUtilities(variant)) &&\n !guidedMode && (\n <StyledStickyComposer>\n <Flex\n container={{ direction: 'column' }}\n as={StyledInputContainer}\n ref={setInputContainerRef}\n >\n <StyledComposerSection>{genAIFooter}</StyledComposerSection>\n </Flex>\n </StyledStickyComposer>\n )}\n <Flex container={{ direction: 'column' }} as={StyledSuggestionCardsBottomHalf}>\n <StyledSuggestionCardsView>{suggestionCardsView}</StyledSuggestionCardsView>\n </Flex>\n </>\n ) : (\n ((isInUtilities(variant) && variant.state !== 'minimized') ||\n !isInUtilities(variant)) &&\n !loading && (\n <Flex\n container={{ direction: 'column' }}\n as={StyledInputContainer}\n ref={setInputContainerRef}\n >\n <StyledComposerSection>\n {guidedMode &&\n questionnaireData &&\n !questionnaireDismissed &&\n !questionnaireData.inline && (\n <Questionnaire\n key={questionnaireKey}\n data={questionnaireData}\n onChange={handleFormChange}\n onCancel={handleFormCancel}\n />\n )}\n {guidedMode ? (\n <>\n {suggestions && messages.length > 0 && (\n <>\n {latestMessage &&\n isCoachMessage(latestMessage) &&\n latestMessage.loading ? (\n <Flex\n container={{\n gap: 1,\n justify: 'center',\n alignItems: 'center',\n pad: 1\n }}\n >\n {t('generating_response')}\n <Progress\n placement='inline'\n focusOnVisible\n message={t('generating_response')}\n />\n </Flex>\n ) : (\n <ThemeOverride\n theme={{\n components: {\n button: {\n color: theme.base.palette.ai,\n 'secondary-color': theme.base.palette.ai,\n 'secondary-fill-style': 'outline'\n }\n }\n }}\n >\n <MenuButton\n as={StyledGuidedSuggestions}\n text={t('ask_coach', [selectedCoach ?? ''])}\n variant='primary'\n icon='polaris-solid'\n ref={setSuggestionMenuButton}\n menu={{\n items: suggestions,\n onItemClick: id => {\n const selected = menuHelpers.getItem(suggestions, id);\n if (selected && !selected.onClick) {\n onSend({\n id: selected.id,\n message: selected.primary\n });\n }\n }\n }}\n />\n </ThemeOverride>\n )}\n\n <Flex container={{ justify: 'center' }}>\n <StyledDisclaimerText inFullPage={!condition}>\n {t('ai_disclaimer')}\n </StyledDisclaimerText>\n </Flex>\n </>\n )}\n </>\n ) : (\n renderTextArea\n )}\n </StyledComposerSection>\n </Flex>\n )\n )}\n </Flex>\n )}\n </>\n );\n\n useEffect(() => {\n if (focusTextArea.current && !conversationHistory && textAreaRef.current) {\n textAreaRef.current.focus();\n focusTextArea.current = false;\n }\n }, [conversationHistory, focusTextArea.current]);\n\n useEffect(() => {\n if (attachmentsError) {\n announcePolite({\n message: attachmentsError\n });\n } else if (attachments && attachments.length > 0) {\n announcePolite({\n message: t('attachment_added')\n });\n attachmentsAdded.current = true;\n } else if (attachmentsAdded.current && attachments && attachments.length === 0) {\n textAreaRef.current?.focus();\n attachmentsAdded.current = false;\n }\n }, [attachments, attachmentsError]);\n\n const historyView = conversationHistory && (\n <ConversationHistory\n testId={testIds.root}\n {...conversationHistory}\n onItemClick={conversationId => {\n if (condition) {\n focusTextArea.current = true;\n } else {\n textAreaRef.current?.focus();\n }\n\n conversationHistory.onItemClick?.(conversationId);\n }}\n onDismiss={() => {\n focusTextArea.current = true;\n conversationHistory.onDismiss();\n }}\n inFullPage={!condition}\n ref={historyViewRef}\n />\n );\n\n return (\n <Flex\n {...restProps}\n container={{ direction: 'column' }}\n as={StyledGenAICoachContainer}\n data-testid={testIds.root}\n variant={variant}\n fullScreen={fullScreen}\n isCompact={isCompact}\n isPortalAgent={isPortalAgent}\n ref={genAICoachRef}\n >\n <Flex container={{ justify: 'between', alignItems: 'center', pad: [1.5, 2, 0.5] }}>\n {headerContent}\n </Flex>\n\n {condition ? (\n <>{conversationHistory ? historyView : GenAICoachElement}</>\n ) : (\n <Grid\n container={{ gap: 0.5, cols: '2fr 3fr' }}\n as={StyledGridContainer}\n conversationHistory={!!conversationHistory}\n >\n {historyView}\n {GenAICoachElement}\n </Grid>\n )}\n\n {lightboxPreviewProps && <Lightbox {...lightboxPreviewProps} />}\n </Flex>\n );\n};\n\nconst GenAICoach = (props: GenAICoachProps) => (\n <Toaster>\n <StyledFullscreenWrapper>\n <GenAICoachContent {...props} />\n </StyledFullscreenWrapper>\n </Toaster>\n);\n\nexport default withTestIds(GenAICoach, getGenAICoachTestIds);\n"]}
|
|
1
|
+
{"version":3,"file":"GenAICoach.js","sourceRoot":"","sources":["../../../src/components/GenAICoach/GenAICoach.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { ChangeEvent, KeyboardEvent, MouseEvent } from 'react';\nimport { getLuminance } from 'polished';\n\nimport {\n Button,\n Flex,\n Icon,\n MenuButton,\n Progress,\n Text,\n createUID,\n menuHelpers,\n useI18n,\n useSpeechRecognition,\n useTestIds,\n useTheme,\n withTestIds,\n registerIcon,\n usePrevious,\n getFocusables,\n isMenuGroupProps,\n ErrorState,\n useArrows,\n useFocusTrap,\n useLiveLog,\n useOuterEvent,\n ThemeOverride,\n hasProp,\n getActiveElement,\n useElement,\n Actions,\n useFullscreenContext,\n useBreakpoint,\n Grid,\n useRefMap,\n VisuallyHiddenText,\n FileList,\n Lightbox,\n FormField,\n useUID,\n SpeechToTextButton,\n Toaster,\n useToaster,\n throttle\n} from '@pega/cosmos-react-core';\nimport type { Action, ActionsProps, MenuItemProps, MenuProps } from '@pega/cosmos-react-core';\nimport * as caretUpIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-up.icon';\nimport * as timesIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/times.icon';\nimport * as caretDownIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-down.icon';\nimport * as minusIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/minus.icon';\nimport * as polarisSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/polaris-solid.icon';\nimport * as paperClipIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/paper-clip.icon';\nimport * as warnSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/warn-solid.icon';\nimport * as sendSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/send-solid.icon';\nimport * as squareSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/square-solid.icon';\nimport * as plusIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/plus.icon';\nimport * as dockIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/dock.icon';\nimport * as undockIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/undock.icon';\nimport * as caretLeftIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-left.icon';\nimport * as caretRightIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-right.icon';\nimport type { UseSpeechRecognitionProps } from '@pega/cosmos-react-core/lib/hooks/useSpeechRecognition';\n\nimport { getGenAICoachTestIds } from './GenAICoach.test-ids';\nimport { isCoachMessage, isInUtilities, isUserMessage } from './GenAICoach.utils';\nimport {\n StyledMessagesContainer,\n StyledDisclaimerText,\n StyledGenAICoachContainer,\n StyledGenAIOptionsMenu,\n StyledInitialMessageContainer,\n StyledInputContainer,\n StyledMenuSuggestions,\n StyledMessagesList,\n StyledGridContainer,\n StyledFlexWrapper,\n StyledErrorContainer,\n StyledInput,\n StyledGuidedSuggestions,\n StyledComposerSection,\n StyledSendButton,\n StyledStopGeneratingButton,\n StyledGenAIFormControl,\n StyledGenAITextArea,\n StyledInitialMessageGrid,\n StyledGenAIFooter,\n StyledAgentIcon,\n StyledActionsContainer,\n StyledFullscreenWrapper,\n StyledScrollButton,\n StyledSuggestionCardsView,\n StyledSuggestionCardsBottomHalf,\n StyledStickyComposer,\n StyledAISuggestedBadge,\n StyledSalutation,\n StyledComposerWrapper\n} from './GenAICoach.styles';\nimport ActiveCases from './ActiveCases';\nimport CaseWorkflow from './CaseWorkflow';\nimport ConversationHistory from './ConversationHistory';\nimport type { FormAnswer, GenAICoachScrollState, Tool } from './GenAICoach.types';\nimport Questionnaire from './Questionnaire';\n\nimport { GenAIMessage, InitialSuggestedMessage, type GenAICoachProps } from '.';\n\nregisterIcon(\n caretUpIcon,\n timesIcon,\n caretDownIcon,\n minusIcon,\n polarisSolidIcon,\n paperClipIcon,\n warnSolidIcon,\n squareSolidIcon,\n sendSolidIcon,\n plusIcon,\n dockIcon,\n undockIcon,\n caretLeftIcon,\n caretRightIcon\n);\n\nexport const AgentIcon = () => {\n const theme = useTheme();\n const uid = useUID();\n\n const idA = `agent-gradient-a-${uid}`;\n const idB = `agent-gradient-b-${uid}`;\n const idC = `agent-clip-${uid}`;\n\n const isLightTheme = getLuminance(theme.base.palette['foreground-color']) < 0.5;\n\n return isLightTheme ? (\n <StyledAgentIcon\n xmlns='http://www.w3.org/2000/svg'\n filter='drop-shadow(0 .125rem .125rem rgba(0,0,0,.03)) drop-shadow(.125rem .5rem .5rem rgba(0,0,0,.05)) drop-shadow(.125rem 1rem 1rem rgba(0,0,0,.08))'\n viewBox='0 0 60 60'\n >\n <linearGradient\n id={idA}\n x1='30.586'\n x2='3.059'\n y1='58.111'\n y2='30.584'\n gradientUnits='userSpaceOnUse'\n >\n <stop offset='.115' stopColor='#681fc3' />\n <stop offset='.418' stopColor='#9795f3' />\n <stop offset='.591' stopColor='#b3d2ff' />\n <stop offset='.966' stopColor='#a467f0' />\n </linearGradient>\n <linearGradient\n id={idB}\n x1='7.137'\n x2='29.565'\n y1='0'\n y2='60.151'\n gradientUnits='userSpaceOnUse'\n >\n <stop offset='.457' stopColor='#8165d2' stopOpacity='0' />\n <stop offset='.524' stopColor='#280096' stopOpacity='.4' />\n </linearGradient>\n <clipPath id={idC}>\n <path d='M0 0h60v60H0z' />\n </clipPath>\n <g fillRule='evenodd' clipPath={`url(#${idC})`} clipRule='evenodd'>\n <path\n fill={`url(#${idA})`}\n d='M60 30.002c-9.023.937-16.054 3.632-20.86 8.203C33.633 43.242 30.586 50.508 30 60c-1.173-9.61-4.453-16.875-9.727-21.914C15.35 33.516 8.555 30.82 0 30c9.023-.703 16.054-3.515 21.093-8.438C26.132 16.523 29.063 9.376 29.999 0c.704 10.43 4.102 18.164 10.313 23.202C45.352 27.186 51.914 29.413 60 30zm-3.75-18.75c-2.228.235-3.984.936-5.391 2.226-1.289 1.289-1.992 3.047-2.109 5.274-.235-2.227-.937-3.983-2.108-5.155-1.289-1.288-3.048-2.109-5.391-2.344 2.227-.116 3.867-.82 5.156-1.991 1.288-1.289 2.108-3.164 2.343-5.508.117 2.46.937 4.336 2.344 5.508 1.288 1.171 2.93 1.875 5.156 1.991zM18.75 48.75c-2.345.236-4.103.937-5.392 2.227-1.288 1.172-1.992 2.93-2.108 5.274-.235-2.46-1.055-4.218-2.46-5.507-1.056-1.055-2.812-1.758-5.04-1.992 1.993-.116 3.633-.703 4.804-1.758 1.524-1.172 2.46-3.047 2.696-5.743.116 1.992.703 3.751 1.875 5.156 1.172 1.288 3.047 2.108 5.626 2.344z'\n />\n <path\n fill={`url(#${idB})`}\n d='M60 30.002c-9.023.937-16.054 3.632-20.86 8.203C33.633 43.242 30.586 50.508 30 60c-1.173-9.61-4.453-16.875-9.727-21.914C15.35 33.516 8.555 30.82 0 30c9.023-.703 16.054-3.515 21.093-8.438C26.132 16.523 29.063 9.376 29.999 0c.704 10.43 4.102 18.164 10.313 23.202C45.352 27.186 51.914 29.413 60 30zm-3.75-18.75c-2.228.235-3.984.936-5.391 2.226-1.289 1.289-1.992 3.047-2.109 5.274-.235-2.227-.937-3.983-2.108-5.155-1.289-1.288-3.048-2.109-5.391-2.344 2.227-.116 3.867-.82 5.156-1.991 1.288-1.289 2.108-3.164 2.343-5.508.117 2.46.937 4.336 2.344 5.508 1.288 1.171 2.93 1.875 5.156 1.991zM18.75 48.75c-2.345.236-4.103.937-5.392 2.227-1.288 1.172-1.992 2.93-2.108 5.274-.235-2.46-1.055-4.218-2.46-5.507-1.056-1.055-2.812-1.758-5.04-1.992 1.993-.116 3.633-.703 4.804-1.758 1.524-1.172 2.46-3.047 2.696-5.743.116 1.992.703 3.751 1.875 5.156 1.172 1.288 3.047 2.108 5.626 2.344z'\n />\n </g>\n </StyledAgentIcon>\n ) : (\n <StyledAgentIcon\n width='26'\n height='26'\n viewBox='0 0 26 26'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <g clipPath={`url(#${idC})`}>\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M26 13C22.0904 13.4036 19.0422 14.5723 16.9639 16.5542C14.5783 18.7349 13.259 21.8855 13 26C12.494 21.8374 11.0723 18.6867 8.78313 16.506C6.6506 14.5241 3.70482 13.3554 0 13C3.90964 12.6928 6.95783 11.4759 9.13855 9.34337C11.3193 7.16265 12.5904 4.06024 13 0C13.3072 4.51807 14.7771 7.87349 17.4699 10.0542C19.6506 11.7831 22.494 12.747 26 13ZM24.3735 4.87349C23.4096 4.9759 22.6446 5.27711 22.0361 5.83735C21.4759 6.39759 21.1747 7.15663 21.1205 8.12048C21.0181 7.15663 20.7169 6.39157 20.2048 5.88554C19.6446 5.3253 18.8855 4.96988 17.8675 4.86747C18.8313 4.81928 19.5422 4.51205 20.1024 4.00602C20.6627 3.44578 21.0181 2.63253 21.1205 1.62048C21.1687 2.68675 21.5241 3.5 22.1386 4.00602C22.6988 4.51205 23.4096 4.81928 24.3735 4.86747V4.87349ZM8.12651 21.1265C7.10843 21.2289 6.3494 21.5301 5.78916 22.0904C5.22892 22.5964 4.92771 23.3614 4.87349 24.3735C4.77108 23.3072 4.41566 22.5482 3.80723 21.988C3.3494 21.5301 2.59036 21.2289 1.62651 21.1265C2.48795 21.0783 3.1988 20.8193 3.71084 20.3675C4.37349 19.8614 4.77711 19.0482 4.87952 17.8795C4.92771 18.741 5.18675 19.506 5.69277 20.1145C6.1988 20.6747 7.01205 21.0301 8.13253 21.1325L8.12651 21.1265Z'\n fill={`url(#${idA})`}\n />\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M26 13C22.0904 13.4036 19.0422 14.5723 16.9639 16.5542C14.5783 18.7349 13.259 21.8855 13 26C12.494 21.8373 11.0723 18.6867 8.78313 16.506C6.6506 14.5241 3.70482 13.3554 0 13C3.90964 12.6928 6.95783 11.4759 9.13855 9.34337C11.3193 7.16265 12.5904 4.06024 13 0C13.3072 4.51807 14.7771 7.87349 17.4699 10.0542C19.6506 11.7831 22.494 12.747 26 13ZM24.3735 4.87349C23.4096 4.9759 22.6446 5.27711 22.0361 5.83735C21.4759 6.39759 21.1747 7.15663 21.1205 8.12048C21.0181 7.15663 20.7169 6.39157 20.2048 5.88554C19.6446 5.3253 18.8855 4.96988 17.8675 4.86747C18.8313 4.81928 19.5422 4.51205 20.1024 4.00602C20.6627 3.44578 21.0181 2.63253 21.1205 1.62048C21.1687 2.68675 21.5241 3.5 22.1386 4.00602C22.6988 4.51205 23.4096 4.81928 24.3735 4.86747V4.87349ZM8.12651 21.1265C7.10843 21.2289 6.3494 21.5301 5.78916 22.0904C5.22892 22.5964 4.92771 23.3614 4.87349 24.3735C4.77108 23.3072 4.41566 22.5482 3.80723 21.988C3.3494 21.5301 2.59036 21.2289 1.62651 21.1265C2.48795 21.0783 3.1988 20.8193 3.71084 20.3675C4.37349 19.8614 4.77711 19.0482 4.87952 17.8795C4.92771 18.741 5.18675 19.506 5.69277 20.1145C6.1988 20.6747 7.01205 21.0301 8.13253 21.1325L8.12651 21.1265Z'\n fill={`url(#${idB})`}\n />\n </g>\n <defs>\n <linearGradient\n id={idA}\n x1='19.2169'\n y1='19.2169'\n x2='7.28916'\n y2='7.28916'\n gradientUnits='userSpaceOnUse'\n >\n <stop offset='0.12' stopColor='#D4B1FF' />\n <stop offset='0.42' stopColor='#AE9AFE' />\n <stop offset='0.59' stopColor='#AEB7FC' />\n <stop offset='0.97' stopColor='#E4CAFF' />\n </linearGradient>\n <linearGradient\n id={idB}\n x1='7.53614'\n y1='-1.65663'\n x2='17.253'\n y2='24.4096'\n gradientUnits='userSpaceOnUse'\n >\n <stop offset='0.46' stopColor='#8165D2' stopOpacity='0' />\n <stop offset='0.52' stopColor='#5B39B9' stopOpacity='0.4' />\n </linearGradient>\n <clipPath id={idC}>\n <rect width='26' height='26' fill='white' />\n </clipPath>\n </defs>\n </StyledAgentIcon>\n );\n};\n\nexport const AISuggestedBadge = () => {\n const t = useI18n();\n return (\n <StyledAISuggestedBadge container={{ alignItems: 'center', gap: 0.5 }}>\n <Icon name='polaris-solid' aria-hidden size='font-size' />\n <Text>{t('ai_suggestion')}</Text>\n </StyledAISuggestedBadge>\n );\n};\n\ninterface HeaderActionsProps {\n actions?: ActionsProps;\n allowFullScreen: boolean;\n variant: GenAICoachProps['variant'];\n isUserTriggeredRef: { current: boolean };\n isFullscreen: boolean;\n onFullscreenToggle?: () => void;\n selectedCoach?: string;\n actionsTestId?: string;\n}\n\nconst HeaderActions = ({\n actions,\n allowFullScreen,\n variant,\n isUserTriggeredRef,\n onFullscreenToggle,\n isFullscreen,\n selectedCoach,\n actionsTestId\n}: HeaderActionsProps) => {\n const t = useI18n();\n const fullscreenIcon = isFullscreen ? 'dock' : 'undock';\n\n const extraItems: Action[] = [\n ...(allowFullScreen\n ? [\n {\n id: 'fullscreen',\n text: isFullscreen ? t('exit_fullscreen') : t('fullscreen'),\n visual: <Icon name={fullscreenIcon} />,\n onClick: onFullscreenToggle\n }\n ]\n : []),\n ...(isInUtilities(variant) && !isFullscreen\n ? [\n {\n id: 'minimize',\n text: t('minimize'),\n visual: <Icon name='minus' />,\n onClick: () => {\n variant.onStateChange('minimized');\n isUserTriggeredRef.current = true;\n }\n }\n ]\n : [])\n ];\n\n const mergedItems = [...(actions?.items ?? []), ...extraItems];\n if (mergedItems.length === 0) return null;\n\n return (\n <Actions\n {...(actions ?? {})}\n menuAt={1}\n data-testid={actionsTestId}\n contextualLabel={selectedCoach}\n items={mergedItems}\n />\n );\n};\n\nconst GenAICoachContent = ({\n testId,\n coachOptions: coachOptionsProps,\n onCoachChange: onCoachChangeProp,\n messages = [],\n onSend,\n initialSuggestedMessages,\n suggestions,\n loading,\n error,\n variant,\n onOpen,\n guidedMode = false,\n actions,\n onNewChat,\n conversationHistory,\n onLayoutChange,\n onAddAttachment,\n attachments,\n attachmentsError,\n lightboxPreviewProps,\n allowFullScreen = true,\n isInLandingPageUtilities,\n stopProcess,\n voiceToTextProps,\n salutation,\n showSalutation = true,\n isPortalAgent = false,\n pagePanel,\n suggestionCardsView,\n draftMessage,\n caseWorkflow,\n activeCases,\n onStop,\n isCreatingConversation,\n conversationError,\n questionnaireData,\n onQuestionnaireDismiss,\n ...restProps\n}: GenAICoachProps) => {\n const scrollTolerancePx = 2;\n const scrollThresholdPx = 50;\n const streamBufferLh = 5;\n const bufferExtensionLh = 2;\n const scrollThrottleMs = 50;\n const resizeThrottleMs = 33;\n\n const theme = useTheme();\n const t = useI18n();\n const testIds = useTestIds(testId, getGenAICoachTestIds);\n const { announcePolite } = useLiveLog();\n\n const elementRef = useRef<HTMLElement | null>(null);\n const conversationRef = useRef<HTMLUListElement>(null);\n const genAICoachRef = useRef<HTMLDivElement>(null);\n const [messageEls, getMessageCbRef] = useRefMap<HTMLLIElement>();\n\n const focusInMessageListRef = useRef(false);\n const mouseTriggeredFocusRef = useRef(false);\n const isUserTriggered = useRef(false);\n const lastFocusedMessageRef = useRef<HTMLElement | null>(null);\n const initialFocusedElementRef = useRef<HTMLElement | null>(null);\n const inputContainerRef = useRef<HTMLDivElement | null>(null);\n const messageContainerRef = useRef<HTMLDivElement | null>(null);\n const textAreaRef = useRef<HTMLTextAreaElement>(null);\n const [suggestionMenuButton, setSuggestionMenuButton] = useElement<HTMLButtonElement>(null);\n const isGeneratingResponse = useRef(false);\n const focusTextArea = useRef(false);\n const historyViewRef = useRef<HTMLUListElement>(null);\n const fileUploadInputRef = useRef<HTMLInputElement>(null);\n const attachmentsAdded = useRef(false);\n const pendingResult = useRef(false);\n\n const scrollStateRef = useRef<GenAICoachScrollState>({\n userAtBottom: false,\n isStreamingActive: false,\n initialBufferApplied: false,\n smoothScrollOnEnd: false,\n ignoreNextScrollEvent: false,\n lastScrollTop: null,\n bufferMinHeight: null\n });\n\n const observersRef = useRef<{\n inputContainer: ResizeObserver | null;\n messageContainer: ResizeObserver | null;\n streamingMessage: ResizeObserver | null;\n tileSync: ResizeObserver | null;\n tileMutation: MutationObserver | null;\n }>({\n inputContainer: null,\n messageContainer: null,\n streamingMessage: null,\n tileSync: null,\n tileMutation: null\n });\n\n const isSmallOrAbove = useBreakpoint('sm', {\n breakpointRef: genAICoachRef\n });\n\n const [message, setMessage] = useState('');\n\n const [interimMessage, setInterimMessage] = useState('');\n const [coachOptions, setCoachOptions] = useState<MenuProps['items']>(coachOptionsProps);\n\n const [focusedInMessage, setFocusedInMessage] = useState(false);\n const scrollButtonRef = useRef<HTMLButtonElement>(null);\n const trapRef = useRef<HTMLElement | null>(null);\n\n const [animationInitialCursorPos, setAnimationInitialCursorPos] = useState(0);\n const [focused, setFocused] = useState(false);\n const [formAnswers, setFormAnswers] = useState<Record<string, FormAnswer> | undefined>();\n const [questionnaireDismissed, setQuestionnaireDismissed] = useState(false);\n\n const [ctxFullscreen, toggleFullscreen] = useFullscreenContext() ?? [];\n const fullScreen = !!ctxFullscreen;\n\n const questionnaireKey = questionnaireData?.questions?.map(q => q.field).join(',') ?? '';\n\n const [showScrollToBottom, setShowScrollToBottom] = useState(false);\n\n const prevFullScreen = usePrevious(fullScreen);\n const prevIsSmallOrAbove = usePrevious(isSmallOrAbove);\n const previousMessages = usePrevious(messages);\n\n const composerId = useUID();\n\n const handleFormChange = useCallback((answers: Record<string, FormAnswer>) => {\n setFormAnswers(answers);\n }, []);\n\n const handleFormCancel = () => {\n setFormAnswers(undefined);\n setQuestionnaireDismissed(true);\n textAreaRef.current?.focus();\n onQuestionnaireDismiss?.();\n };\n\n const latestMessage = messages.at(-1);\n const isLatestAgentMessageStreaming =\n !!latestMessage && isCoachMessage(latestMessage) && !!latestMessage.loading;\n\n const shouldKeepSplitLayoutDuringFullscreenToggle =\n !!conversationHistory &&\n variant.placement === 'fullpage' &&\n prevFullScreen !== undefined &&\n prevFullScreen !== fullScreen &&\n !!prevIsSmallOrAbove;\n\n const shouldRenderSideBySideHistory =\n !!conversationHistory &&\n (fullScreen ||\n (variant.placement === 'fullpage' &&\n (isSmallOrAbove || shouldKeepSplitLayoutDuringFullscreenToggle)));\n\n const condition =\n !shouldRenderSideBySideHistory &&\n (variant.placement === 'dialog' ||\n variant.placement === 'utilities' ||\n (variant.placement === 'fullpage' && !isSmallOrAbove) ||\n !conversationHistory);\n\n const applyBuffer = useCallback(() => {\n const container = messageContainerRef.current;\n const conversationEl = conversationRef.current;\n\n const scrollState = scrollStateRef.current;\n\n if (!container || !conversationEl) return;\n\n const contentHeight = Array.from(conversationEl.children).reduce((sum, child) => {\n if (child instanceof HTMLElement) return sum + child.offsetHeight;\n return sum;\n }, 0);\n\n const computedStyle = window.getComputedStyle(conversationEl);\n const lineHeightPx = parseFloat(computedStyle.lineHeight) || 20;\n const bufferSizePx = streamBufferLh * lineHeightPx;\n\n const currentBuffer = scrollState.bufferMinHeight ?? 0;\n\n const distanceToBufferEnd = currentBuffer - contentHeight;\n const extensionThreshold = bufferExtensionLh * lineHeightPx;\n\n if (currentBuffer === 0 || distanceToBufferEnd < extensionThreshold) {\n const newBuffer = contentHeight + bufferSizePx;\n scrollState.bufferMinHeight = newBuffer;\n\n conversationEl.style.setProperty('--stream-buffer', `${newBuffer}px`);\n }\n }, []);\n\n const manageBuffer = useCallback(\n (action: 'extend' | 'clear' | 'init') => {\n const container = messageContainerRef.current;\n const conversationEl = conversationRef.current;\n\n const scrollState = scrollStateRef.current;\n\n if (!container || !conversationEl) return;\n\n if (action === 'clear') {\n conversationEl.style.removeProperty('--stream-buffer');\n scrollState.bufferMinHeight = null;\n return;\n }\n\n if (action === 'init') {\n applyBuffer();\n return;\n }\n\n if (!scrollState.isStreamingActive || !scrollState.userAtBottom) return;\n\n applyBuffer();\n },\n [applyBuffer]\n );\n\n const followStreamingMessage = useCallback(() => {\n const container = messageContainerRef.current;\n const scrollState = scrollStateRef.current;\n\n if (\n !container ||\n !scrollState.isStreamingActive ||\n !scrollState.userAtBottom ||\n (scrollState.lastScrollTop !== null &&\n container.scrollTop < scrollState.lastScrollTop - scrollTolerancePx)\n )\n return;\n\n manageBuffer('extend');\n\n const targetScroll = container.scrollHeight - container.clientHeight;\n const currentScroll = container.scrollTop;\n\n if (Math.abs(currentScroll - targetScroll) > scrollTolerancePx) {\n scrollState.ignoreNextScrollEvent = true;\n container.scrollTo({ top: targetScroll, behavior: 'auto' });\n }\n }, [manageBuffer]);\n\n const scrollToLatest = useCallback(\n (behavior: ScrollBehavior = 'auto', preferLast: boolean = true) => {\n const container = messageContainerRef.current;\n const conversationEl = conversationRef.current;\n const lastMessage = conversationEl?.lastElementChild;\n\n if (!container) return;\n\n const scrollState = scrollStateRef.current;\n\n if (preferLast && lastMessage && lastMessage instanceof HTMLElement) {\n const scrollHeight = container.scrollHeight;\n const clientHeight = container.clientHeight;\n\n const targetScrollTop = scrollHeight - clientHeight - scrollThresholdPx / 2;\n\n if (targetScrollTop > container.scrollTop) {\n scrollState.ignoreNextScrollEvent = true;\n container.scrollTo({ top: targetScrollTop, behavior: 'auto' });\n }\n\n return;\n }\n\n scrollState.ignoreNextScrollEvent = true;\n container.scrollTo({ top: container.scrollHeight, behavior });\n },\n []\n );\n\n const updateScrollState = useCallback(\n (isScrollEvent: boolean = false) => {\n const container = messageContainerRef.current;\n const conversationEl = conversationRef.current;\n\n if (!container || !conversationEl) {\n setShowScrollToBottom(false);\n return;\n }\n\n const state = scrollStateRef.current;\n\n if (state.initialBufferApplied) {\n scrollToLatest('auto', true);\n setShowScrollToBottom(false);\n state.initialBufferApplied = false;\n return;\n }\n\n if (state.smoothScrollOnEnd) {\n scrollToLatest('smooth', false);\n setShowScrollToBottom(false);\n state.smoothScrollOnEnd = false;\n return;\n }\n\n if (isScrollEvent && state.ignoreNextScrollEvent) {\n state.ignoreNextScrollEvent = false;\n return;\n }\n\n const isUserScroll = isScrollEvent;\n const { clientHeight, scrollHeight, scrollTop } = container;\n\n const trueContentHeight = Array.from(conversationEl.children).reduce(\n (sum, child) => (child instanceof HTMLElement ? sum + child.offsetHeight : sum),\n 0\n );\n\n const hasOverflow = trueContentHeight > clientHeight + scrollTolerancePx;\n const distanceFromBufferedBottom = scrollHeight - scrollTop - clientHeight;\n const isAtBufferedBottom = distanceFromBufferedBottom <= scrollThresholdPx;\n\n if (!state.isStreamingActive) {\n const distanceFromBottom = trueContentHeight - scrollTop - clientHeight;\n const isAtBottom = distanceFromBottom <= scrollThresholdPx;\n setShowScrollToBottom(hasOverflow && !isAtBottom);\n\n return;\n }\n\n if (isUserScroll) {\n const previousScrollTop = state.lastScrollTop;\n state.lastScrollTop = scrollTop;\n\n if (previousScrollTop !== null && scrollTop < previousScrollTop - scrollTolerancePx) {\n state.userAtBottom = false;\n } else if (isAtBufferedBottom) {\n state.userAtBottom = true;\n }\n }\n\n if (state.userAtBottom && isAtBufferedBottom) {\n followStreamingMessage();\n setShowScrollToBottom(false);\n } else {\n setShowScrollToBottom(hasOverflow && !isAtBufferedBottom);\n }\n },\n [followStreamingMessage, scrollToLatest]\n );\n\n const updateScrollStateOnResize = useMemo(\n () => throttle(() => updateScrollState(false), resizeThrottleMs),\n [updateScrollState]\n );\n\n const updateScrollStateOnScrollEvent = useMemo(\n () => throttle(() => updateScrollState(true), scrollThrottleMs),\n [updateScrollState]\n );\n\n const handleScrollToBottomClick = useCallback(() => {\n const scrollState = scrollStateRef.current;\n const isStreaming = scrollState.isStreamingActive;\n\n scrollToLatest(isStreaming ? 'auto' : 'smooth', false);\n\n if (isStreaming) {\n scrollState.userAtBottom = true;\n }\n\n setShowScrollToBottom(false);\n\n const lastMessage = conversationRef.current?.lastElementChild;\n if (lastMessage instanceof HTMLElement) {\n lastFocusedMessageRef.current = lastMessage;\n focusInMessageListRef.current = true;\n lastMessage.focus();\n }\n }, [scrollToLatest]);\n\n const suggestionCardsViewElRef = useRef<HTMLDivElement | null>(null);\n\n const setSuggestionCardsViewRef = useCallback((el: HTMLDivElement | null) => {\n if (suggestionCardsViewElRef.current === el) return;\n\n observersRef.current.tileSync?.disconnect();\n observersRef.current.tileSync = null;\n observersRef.current.tileMutation?.disconnect();\n observersRef.current.tileMutation = null;\n\n suggestionCardsViewElRef.current = el;\n if (!el) return;\n\n const tileSelector = '[data-tile-content]';\n let scheduled = false;\n\n const measure = () => {\n const tileContents = Array.from(el.querySelectorAll<HTMLElement>(tileSelector));\n\n if (tileContents.length === 0) {\n el.style.removeProperty('--tile-col-track');\n return;\n }\n\n tileContents.forEach(tileEl => {\n tileEl.style.width = 'auto';\n });\n\n const maxWidth = Math.max(\n ...tileContents.map(tileEl => Math.round(tileEl.getBoundingClientRect().width))\n );\n\n tileContents.forEach(tileEl => {\n tileEl.style.width = '';\n });\n\n const newTrack = `${maxWidth}px`;\n if (el.style.getPropertyValue('--tile-col-track') !== newTrack) {\n el.style.setProperty('--tile-col-track', newTrack);\n }\n };\n\n const schedule = () => {\n if (scheduled) return;\n scheduled = true;\n requestAnimationFrame(() => {\n scheduled = false;\n measure();\n });\n };\n\n const ro = new ResizeObserver(() => schedule());\n ro.observe(el);\n observersRef.current.tileSync = ro;\n\n const mo = new MutationObserver(() => schedule());\n mo.observe(el, { childList: true, subtree: true });\n observersRef.current.tileMutation = mo;\n }, []);\n\n const setInputContainerRef = useCallback((el: HTMLDivElement | null) => {\n if (inputContainerRef.current === el) return;\n\n observersRef.current.inputContainer?.disconnect();\n observersRef.current.inputContainer = null;\n\n inputContainerRef.current = el;\n if (!el) return;\n\n const ro = new ResizeObserver(entries => {\n const entry = entries[0];\n if (entry && genAICoachRef.current) {\n const height = Math.round(entry.contentRect.height);\n genAICoachRef.current.style.setProperty('--composer-height', `${height}px`);\n }\n });\n\n ro.observe(el);\n observersRef.current.inputContainer = ro;\n }, []);\n\n const setMessageContainerRef = useCallback((el: HTMLDivElement | null) => {\n messageContainerRef.current = el;\n }, []);\n\n const onCoachChange = (id: MenuItemProps['id']) => {\n setCoachOptions(cur => {\n return cur.map(coach => {\n return {\n ...coach,\n selected: coach.id === id\n };\n });\n });\n onCoachChangeProp?.(id);\n };\n\n const selectedCoach = useMemo(() => {\n const selected = menuHelpers.getSelected(coachOptions)[0];\n if (selected) return selected.primary;\n\n if (coachOptions[0]) {\n if (isMenuGroupProps(coachOptions[0])) {\n return coachOptions[0].items[0].primary;\n }\n return coachOptions[0].primary;\n }\n }, [coachOptions]);\n\n const onResult: UseSpeechRecognitionProps['onResult'] = useCallback(value => {\n pendingResult.current = false;\n setMessage(prevMessage => {\n return prevMessage ? `${prevMessage} ${value}` : value;\n });\n setInterimMessage('');\n }, []);\n\n const onInterimResult: NonNullable<UseSpeechRecognitionProps['onInterimResult']> = useCallback(\n value => {\n if (value) {\n pendingResult.current = true;\n setInterimMessage(message ? ` ${value}` : value);\n }\n },\n [message]\n );\n\n const {\n supported,\n active,\n start,\n stop,\n error: voiceToTextError\n } = useSpeechRecognition({\n onResult,\n onInterimResult,\n langCode: voiceToTextProps?.langCode\n });\n\n const handleSendMessage = useCallback(() => {\n const hasFormAnswers =\n !!questionnaireData &&\n formAnswers &&\n Object.values(formAnswers).some(v => v.value.length > 0);\n const isMessageAndAttachmentsEmpty = !message && (!attachments || attachments.length === 0);\n const hasAttachmentsError =\n attachments &&\n attachments.length > 0 &&\n (attachmentsError || attachments.some(attachment => attachment.error));\n const isCoachMessageLoading =\n latestMessage && isCoachMessage(latestMessage) && latestMessage.loading;\n if (\n (isMessageAndAttachmentsEmpty && !hasFormAnswers) ||\n hasAttachmentsError ||\n isCoachMessageLoading ||\n (latestMessage && isCoachMessage(latestMessage) && latestMessage.isToolConfirmation)\n )\n return;\n\n onSend({\n id: createUID(),\n message,\n fromComposer: true,\n attachmentIds: attachments?.map(({ id }) => id),\n formAnswers: hasFormAnswers ? formAnswers : undefined\n });\n setFormAnswers(undefined);\n setMessage('');\n if (active) {\n stop();\n }\n }, [message, latestMessage, attachments, attachmentsError, formAnswers, questionnaireData]);\n\n const handleEnterKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n e.stopPropagation();\n handleSendMessage();\n }\n };\n\n const handleTextAreaChange = useCallback(\n (e: ChangeEvent<HTMLTextAreaElement>) => {\n setMessage(e.currentTarget.value);\n },\n [setMessage]\n );\n\n const renderCoachOptions = useMemo(() => {\n if (coachOptions.length === 0 || !selectedCoach) {\n return null;\n }\n if (coachOptions.length === 1) {\n return (\n <Text variant={isPortalAgent && !pagePanel?.visible ? 'h1' : 'h2'}>{selectedCoach}</Text>\n );\n }\n return (\n <MenuButton\n text={selectedCoach}\n aria-label={t('agent_switcher', [selectedCoach])}\n variant='text'\n as={StyledGenAIOptionsMenu}\n menu={{\n mode: 'single-select',\n items: coachOptions,\n onItemClick: onCoachChange\n }}\n />\n );\n }, [coachOptions, selectedCoach, isPortalAgent, pagePanel?.visible]);\n\n const headerContent = useMemo(() => {\n return isInUtilities(variant) && variant.state === 'minimized' ? (\n <>\n <Text variant='h2'>{selectedCoach}</Text>\n <Flex container={{ alignItems: 'center' }}>\n <Button\n icon\n label={t('maximize')}\n aria-label={t('agent_noun', [t('maximize')])}\n variant='simple'\n onClick={() => {\n variant.onStateChange('maximized');\n isUserTriggered.current = true;\n }}\n >\n <Icon name='caret-up' />\n </Button>\n </Flex>\n </>\n ) : (\n <>\n {renderCoachOptions}\n\n <Flex container={{ gap: 0.5 }} as={StyledActionsContainer}>\n {activeCases && <ActiveCases activeCases={activeCases} />}\n\n {onNewChat && (\n <Button\n icon\n variant='simple'\n label={t('new_chat')}\n aria-label={t('new_chat')}\n onClick={onNewChat}\n >\n <Icon name='plus' />\n </Button>\n )}\n\n <HeaderActions\n actions={actions}\n allowFullScreen={allowFullScreen}\n variant={variant}\n isUserTriggeredRef={isUserTriggered}\n onFullscreenToggle={toggleFullscreen}\n isFullscreen={fullScreen}\n selectedCoach={selectedCoach}\n actionsTestId={testIds.actions}\n />\n\n {variant.placement === 'dialog' && !fullScreen && (\n <Button\n icon\n label={t('close')}\n aria-label={t('close_chat_with_ai')}\n variant='simple'\n onClick={variant.onClose}\n >\n <Icon name='times' />\n </Button>\n )}\n </Flex>\n </>\n );\n }, [variant, coachOptions, activeCases, actions, allowFullScreen, onNewChat]);\n\n const getMessageContainingElement = (element: Element | null) => {\n if (element) return Array.from(messageEls.values()).find(el => el && el.contains(element));\n return null;\n };\n\n const setLastFocusableElement = () => {\n focusInMessageListRef.current = false;\n lastFocusedMessageRef.current = elementRef.current ?? null;\n if (\n lastFocusedMessageRef.current &&\n lastFocusedMessageRef.current?.tagName.toLowerCase() !== 'li'\n ) {\n lastFocusedMessageRef.current =\n getMessageContainingElement(lastFocusedMessageRef.current) ?? null;\n }\n };\n\n const focusLastMessageLi = useCallback((e: KeyboardEvent) => {\n if (e.key !== 'Tab' || !e.shiftKey) return;\n const target = lastFocusedMessageRef.current ?? conversationRef.current?.lastElementChild;\n if (!(target instanceof HTMLElement)) return;\n e.preventDefault();\n focusInMessageListRef.current = true;\n target.focus();\n }, []);\n\n const variantState = useMemo(() => {\n if (variant.placement === 'utilities') {\n return variant.state;\n }\n }, [variant]);\n\n useEffect(() => {\n if (questionnaireData) {\n setQuestionnaireDismissed(false);\n setFormAnswers(undefined);\n }\n }, [questionnaireData]);\n\n useEffect(() => {\n if (draftMessage !== undefined) {\n setMessage(draftMessage);\n if (suggestionCardsView || draftMessage) textAreaRef.current?.focus();\n }\n }, [draftMessage, suggestionCardsView]);\n\n useEffect(() => {\n setFormAnswers(undefined);\n }, [questionnaireKey]);\n\n useEffect(() => {\n if (isUserTriggered.current) {\n if (\n isInUtilities(variant) &&\n (variant.state === 'minimized' || (guidedMode && variant.state === 'maximized')) &&\n getFocusables(genAICoachRef).length > 0\n ) {\n getFocusables(genAICoachRef)[0].focus();\n isUserTriggered.current = false;\n } else if (variant.placement !== 'fullpage') {\n textAreaRef.current?.focus();\n elementRef.current = null;\n isUserTriggered.current = false;\n }\n }\n }, [variantState, variant.placement]);\n\n useEffect(() => {\n onLayoutChange?.(!condition);\n }, [condition]);\n\n useEffect(() => {\n onOpen?.();\n\n return () => {\n Object.values(observersRef.current).forEach(observer => {\n observer?.disconnect();\n });\n };\n }, []);\n\n useEffect(() => {\n const prevFilteredMsgs = previousMessages?.filter(item => !hasProp(item, 'loading')) ?? [];\n const currentFilteredMsgs = messages?.filter(item => !hasProp(item, 'loading')) ?? [];\n\n if (\n prevFilteredMsgs.length < currentFilteredMsgs.length ||\n (latestMessage && hasProp(latestMessage, 'loading'))\n ) {\n if (latestMessage && isUserMessage(latestMessage)) {\n textAreaRef.current?.focus();\n setLastFocusableElement();\n elementRef.current = null;\n } else if (latestMessage?.loading) {\n isGeneratingResponse.current = true;\n } else {\n announcePolite({ message: t('agent_noun', [`${t('new_message')} ${t('from')}`]) });\n }\n }\n }, [messages]);\n\n useEffect(() => {\n if (!isLatestAgentMessageStreaming) return;\n\n announcePolite({ type: 'status', message: t('generating_response') });\n }, [isLatestAgentMessageStreaming]);\n\n useEffect(() => {\n const scrollState = scrollStateRef.current;\n const wasStreaming = scrollState.isStreamingActive;\n\n if (isLatestAgentMessageStreaming && !wasStreaming) {\n scrollStateRef.current = {\n ...scrollStateRef.current,\n isStreamingActive: true,\n initialBufferApplied: true,\n userAtBottom: false,\n smoothScrollOnEnd: false,\n lastScrollTop: null\n };\n\n requestAnimationFrame(() => {\n manageBuffer('init');\n });\n\n return;\n }\n\n if (!isLatestAgentMessageStreaming && wasStreaming) {\n scrollStateRef.current = {\n ...scrollStateRef.current,\n isStreamingActive: false,\n initialBufferApplied: false,\n userAtBottom: false,\n smoothScrollOnEnd: true\n };\n\n manageBuffer('clear');\n }\n }, [isLatestAgentMessageStreaming, manageBuffer]);\n\n useEffect(() => {\n const container = messageContainerRef.current;\n const content = conversationRef.current;\n\n if (!container || !content) return;\n\n const containerRO = new ResizeObserver(updateScrollStateOnResize);\n containerRO.observe(container);\n containerRO.observe(content);\n\n observersRef.current.messageContainer = containerRO;\n\n let streamingMessageRO: ResizeObserver | null = null;\n const lastMessageEl = content.lastElementChild;\n\n if (isLatestAgentMessageStreaming && lastMessageEl) {\n const handleStreamingUpdate = throttle(() => {\n followStreamingMessage();\n updateScrollState(false);\n }, resizeThrottleMs);\n\n streamingMessageRO = new ResizeObserver(handleStreamingUpdate);\n streamingMessageRO.observe(lastMessageEl);\n\n observersRef.current.streamingMessage = streamingMessageRO;\n }\n\n return () => {\n containerRO.disconnect();\n observersRef.current.messageContainer = null;\n\n streamingMessageRO?.disconnect();\n observersRef.current.streamingMessage = null;\n };\n }, [\n messages.length,\n isLatestAgentMessageStreaming,\n followStreamingMessage,\n updateScrollState,\n updateScrollStateOnResize\n ]);\n\n useEffect(() => {\n if (suggestionMenuButton && isGeneratingResponse.current) {\n announcePolite({ message: t('response_generated') });\n isGeneratingResponse.current = false;\n\n const activeElement = getActiveElement();\n if (activeElement && activeElement === document.body) suggestionMenuButton.focus();\n }\n }, [suggestionMenuButton]);\n\n useEffect(() => {\n if (messages.length === 0 || loading || error) {\n setShowScrollToBottom(false);\n }\n }, [messages.length, loading, error]);\n\n /** Supports Enter key to enter a message and focus first focusable element inside it */\n useEffect(() => {\n if (!focusedInMessage) return;\n const focusables = getFocusables(elementRef);\n focusables[0]?.focus();\n }, [focusedInMessage, elementRef.current]);\n\n /**\n * While inside a message, stop ArrowUp/Down from bubbling to conversationRef\n * so useArrows does not navigate between message rows.\n */\n useEffect(() => {\n const el = elementRef.current;\n if (!focusedInMessage || !el) return;\n const blockArrows = (e: globalThis.KeyboardEvent) => {\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n e.stopPropagation();\n }\n };\n el.addEventListener('keydown', blockArrows);\n return () => el.removeEventListener('keydown', blockArrows);\n }, [focusedInMessage]);\n\n useArrows(\n conversationRef,\n {\n cycle: true,\n selector: ':scope > li',\n dir: 'up-down',\n allowTabFocus: true,\n initialFocusElement: initialFocusedElementRef.current\n },\n [messages, initialFocusedElementRef.current]\n );\n\n useFocusTrap(trapRef, true, [focusedInMessage]);\n\n useOuterEvent(\n 'mousedown',\n [focusedInMessage ? elementRef.current : conversationRef.current],\n () => {\n setFocusedInMessage(false);\n trapRef.current = null;\n focusInMessageListRef.current = false;\n }\n );\n\n const { push } = useToaster();\n\n const onSpeechToTextButtonClick = useCallback(() => {\n if (active) {\n stop();\n } else {\n start();\n }\n }, [active, stop, start]);\n\n const onFileChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (e.target.files) {\n const newFiles = Array.from(e.target.files);\n onAddAttachment?.(newFiles);\n }\n };\n\n const getGridColumns = () => {\n const multiCol = 'repeat(auto-fit, minmax(calc(100% / 4 - 1rem), 1fr))';\n const singleCol = '1fr';\n\n return !isSmallOrAbove ? singleCol : multiCol;\n };\n\n useEffect(() => {\n if (voiceToTextError) {\n push({ content: voiceToTextError });\n }\n }, [voiceToTextError]);\n\n const genAIFooter = (\n <Flex container={{ direction: 'column' }} as={StyledGenAIFooter}>\n <StyledComposerWrapper\n focused={focused}\n hasQuestionnaire={!!questionnaireData && !questionnaireDismissed}\n onFocus={() => setFocused(true)}\n onBlur={e => {\n if (!(e.relatedTarget instanceof Node) || !e.currentTarget.contains(e.relatedTarget)) {\n setFocused(false);\n }\n }}\n >\n {questionnaireData && !questionnaireDismissed && !questionnaireData.inline && (\n <Questionnaire\n key={questionnaireKey}\n data={questionnaireData}\n onChange={handleFormChange}\n onCancel={handleFormCancel}\n />\n )}\n <FormField\n label={t('message_pega_gen_ai_coach')}\n labelHidden\n labelFor={composerId}\n info={conversationError || undefined}\n status={conversationError ? 'error' : undefined}\n >\n <StyledGenAIFormControl\n focused={(!questionnaireData || questionnaireDismissed) && focused}\n status={conversationError ? 'error' : undefined}\n >\n <Flex container={{ direction: 'column', gap: 0.25 }}>\n <StyledGenAITextArea\n id={composerId}\n ref={textAreaRef}\n value={interimMessage ? `${message}${interimMessage}` : message}\n placeholder={t('write_message')}\n onKeyDown={handleEnterKeyDown}\n onChange={handleTextAreaChange}\n onFocus={() => {\n if (active) stop();\n }}\n autoResize\n />\n\n <Flex\n container={{\n direction: 'row',\n justify: 'between',\n gap: 1,\n pad: [undefined, 1, 1, 1]\n }}\n >\n <Flex container={{ alignItems: 'center' }}>\n {!(messages.length === 0 && suggestionCardsView) && suggestions && (\n <MenuButton\n text={t('suggestions')}\n variant='simple'\n icon='chat-typing'\n iconOnly\n as={StyledMenuSuggestions}\n menu={{\n items: suggestions,\n onItemClick: id => {\n const selected = menuHelpers.getItem(suggestions, id);\n if (selected && !selected.onClick) {\n setMessage(selected.primary);\n textAreaRef.current?.focus();\n }\n }\n }}\n showArrow={false}\n />\n )}\n {voiceToTextProps?.enableDictation && supported && (\n <SpeechToTextButton active={active} onClick={onSpeechToTextButtonClick} />\n )}\n\n {onAddAttachment && (\n <>\n <Button\n icon\n onClick={() => {\n if (fileUploadInputRef.current) {\n fileUploadInputRef.current.value = '';\n }\n fileUploadInputRef.current?.click();\n }}\n variant='simple'\n label={t('add_attachment')}\n >\n <Icon name='paper-clip' />\n </Button>\n <StyledInput\n type='file'\n ref={fileUploadInputRef}\n onChange={onFileChange}\n multiple={false}\n data-testid={testIds.attachments}\n />\n </>\n )}\n </Flex>\n\n {(() => {\n if (active && pendingResult.current) {\n return (\n <Flex\n container={{\n gap: 1,\n justify: 'end',\n alignItems: 'center',\n pad: 1\n }}\n >\n {t('processing_speech')}\n <Progress placement='inline' />\n </Flex>\n );\n }\n\n const isToolConfirmation =\n latestMessage &&\n isCoachMessage(latestMessage) &&\n latestMessage.isToolConfirmation;\n\n let onStopFn: (() => void) | undefined;\n if (onStop) {\n onStopFn = onStop;\n } else if (isToolConfirmation) {\n onStopFn = stopProcess;\n }\n\n if (onStopFn) {\n return (\n <StyledStopGeneratingButton\n variant='primary'\n icon\n label={t('stop')}\n aria-label={t('stop')}\n onClick={() => {\n textAreaRef.current?.focus();\n onStopFn?.();\n }}\n >\n <Icon name='square-solid' />\n </StyledStopGeneratingButton>\n );\n }\n\n const isLoading =\n latestMessage &&\n isCoachMessage(latestMessage) &&\n latestMessage.loading &&\n !latestMessage.error;\n\n const sendButton = (\n <StyledSendButton\n variant='primary'\n onClick={isCreatingConversation ? undefined : handleSendMessage}\n icon\n label={t('send')}\n aria-label={t('send_message')}\n >\n <Icon name='send-solid' />\n </StyledSendButton>\n );\n\n if (isLoading) {\n if (isCreatingConversation) {\n return sendButton;\n }\n return (\n <Flex\n container={{\n gap: 1,\n justify: 'end',\n alignItems: 'center',\n pad: 1\n }}\n >\n {t('generating_response')}\n <Progress placement='inline' />\n </Flex>\n );\n }\n\n return sendButton;\n })()}\n </Flex>\n </Flex>\n </StyledGenAIFormControl>\n </FormField>\n </StyledComposerWrapper>\n\n {attachments && attachments.length > 0 && (\n <>\n <Flex\n as={FileList}\n type='item'\n aria-label={`${t('attachments')}`}\n items={attachments}\n container={{ pad: [1, 0] }}\n />\n\n {attachmentsError && (\n <Flex container={{ gap: 1, alignItems: 'center' }} as={StyledErrorContainer}>\n <Icon name='warn-solid' />\n <VisuallyHiddenText>{`${t('error')} `}</VisuallyHiddenText>\n\n {attachmentsError}\n </Flex>\n )}\n </>\n )}\n\n <Flex container={{ justify: 'center' }}>\n <StyledDisclaimerText inFullPage={!condition}>{t('ai_disclaimer')}</StyledDisclaimerText>\n </Flex>\n </Flex>\n );\n\n const isCompact =\n variant.placement === 'fullpage' &&\n !fullScreen &&\n !isInLandingPageUtilities &&\n messages.length === 0;\n\n const fullPageAndInitialScreen =\n (fullScreen || (variant.placement === 'fullpage' && !isInLandingPageUtilities)) &&\n messages.length === 0;\n\n const renderTextArea = fullPageAndInitialScreen ? null : genAIFooter;\n\n const GenAICoachElement = (\n <>\n {((isInUtilities(variant) && variant.state !== 'minimized') || !isInUtilities(variant)) && (\n <Flex container={{ direction: 'column' }} as={StyledFlexWrapper}>\n {caseWorkflow && <CaseWorkflow {...caseWorkflow} />}\n\n <Flex\n as={StyledMessagesContainer}\n ref={setMessageContainerRef}\n withSuggestionCards={\n !loading && !error && messages.length === 0 && !!suggestionCardsView\n }\n container={\n loading || error\n ? { direction: 'column', pad: [0, 2], justify: 'center' }\n : { direction: 'column', pad: [0, 2] }\n }\n {...(!loading && !error && messages.length === 0 && suggestionCardsView\n ? {}\n : { item: { grow: 1 } })}\n onScroll={updateScrollStateOnScrollEvent}\n >\n {loading || error ? (\n <Flex container={{ justify: 'center', alignItems: 'center' }}>\n {loading ? (\n <Progress\n variant='ring'\n placement='block'\n message={typeof loading === 'string' ? loading : t('loading')}\n />\n ) : (\n <ErrorState message={error} />\n )}\n </Flex>\n ) : (\n <>\n {messages.length === 0 ? (\n <Flex\n as={StyledInitialMessageContainer}\n container={{\n justify: suggestionCardsView ? undefined : 'center',\n direction: 'column',\n alignItems: 'center',\n gap: 4,\n pad: [6, 0, 2, 0]\n }}\n {...(suggestionCardsView ? {} : { item: { grow: 1 } })}\n >\n {((isInUtilities(variant) && variant.state === 'maximized') ||\n !isInUtilities(variant)) &&\n showSalutation && (\n <Flex\n container={{\n direction: 'column',\n alignItems: 'center',\n gap: 2,\n pad: [0, 2]\n }}\n >\n <AgentIcon />\n <Text variant='h3' as={StyledSalutation}>\n {salutation ?? t('welcome_text')}\n </Text>\n </Flex>\n )}\n\n {initialSuggestedMessages && initialSuggestedMessages.length > 0 && (\n <Grid\n as={StyledInitialMessageGrid}\n container={{ cols: getGridColumns(), gap: 1.5 }}\n >\n {initialSuggestedMessages.map(initialSuggestedMessage => (\n <InitialSuggestedMessage\n {...initialSuggestedMessage}\n onSend={initialMessage => {\n if (guidedMode) {\n onSend({\n id: initialMessage.id,\n message: initialMessage.message\n });\n } else {\n setMessage(initialMessage.message ?? '');\n }\n isUserTriggered.current = true;\n textAreaRef.current?.focus();\n }}\n testId={initialSuggestedMessage.id}\n />\n ))}\n </Grid>\n )}\n\n {fullPageAndInitialScreen && !guidedMode && !suggestionCardsView && genAIFooter}\n </Flex>\n ) : (\n <Flex\n as={StyledMessagesList}\n ref={conversationRef}\n aria-label={`${t('conversation')} ${t('view')}`}\n container={{ direction: 'column' }}\n onMouseDown={(e: MouseEvent) => {\n mouseTriggeredFocusRef.current = true;\n const target = e.target instanceof Element ? e.target : null;\n const clickedMessage = getMessageContainingElement(target);\n\n if (clickedMessage) {\n lastFocusedMessageRef.current = clickedMessage;\n }\n }}\n onMouseUp={() => {\n mouseTriggeredFocusRef.current = false;\n }}\n onFocus={() => {\n if (mouseTriggeredFocusRef.current) {\n mouseTriggeredFocusRef.current = false;\n focusInMessageListRef.current = true;\n return;\n }\n\n if (!focusInMessageListRef.current) {\n focusInMessageListRef.current = true;\n const target =\n lastFocusedMessageRef.current ??\n (conversationRef.current?.lastElementChild instanceof HTMLElement\n ? conversationRef.current.lastElementChild\n : null);\n target?.focus();\n }\n focusInMessageListRef.current = true;\n }}\n onKeyDown={(e: KeyboardEvent) => {\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n if (focusedInMessage) return;\n elementRef.current =\n getMessageContainingElement(document.activeElement) ?? null;\n lastFocusedMessageRef.current = elementRef.current;\n } else if (e.key === 'Enter' && !focusedInMessage) {\n const activeMessageElement = Array.from(messageEls.values()).find(\n el => el === document.activeElement\n );\n elementRef.current =\n getMessageContainingElement(document.activeElement) ?? null;\n initialFocusedElementRef.current = elementRef.current;\n if (\n activeMessageElement &&\n getFocusables(activeMessageElement).length > 0\n ) {\n e.preventDefault();\n trapRef.current = elementRef.current;\n setFocusedInMessage(true);\n }\n } else if (e.key === 'Escape' && focusedInMessage) {\n e.preventDefault();\n trapRef.current = null;\n setFocusedInMessage(false);\n elementRef.current?.focus();\n } else if (e.key === 'Tab') {\n if (focusedInMessage) return;\n e.preventDefault();\n setLastFocusableElement();\n if (e.shiftKey) {\n if (\n !condition &&\n conversationHistory &&\n conversationHistory.selectedItemId\n ) {\n const selectedId = historyViewRef.current?.querySelector<HTMLLIElement>(\n `li[id=\"${conversationHistory.selectedItemId}\"]`\n );\n\n if (selectedId) {\n selectedId.focus();\n e.preventDefault();\n }\n } else {\n const prevElement =\n conversationRef.current?.parentElement?.parentElement\n ?.previousElementSibling;\n if (prevElement) {\n const focusables = getFocusables(prevElement);\n if (focusables.length) {\n e.preventDefault();\n focusables[focusables.length - 1].focus();\n }\n }\n }\n } else {\n if (scrollButtonRef.current) {\n scrollButtonRef.current.focus();\n return;\n }\n const nextElement =\n conversationRef.current?.parentElement?.nextElementSibling;\n if (nextElement) {\n const focusables = getFocusables(nextElement);\n if (focusables.length) {\n focusables[0].focus();\n }\n }\n }\n }\n }}\n >\n {messages.map(item => {\n const messageProps = isCoachMessage(item)\n ? {\n ...item,\n suggestions:\n latestMessage?.id === item.id ? item.suggestions : undefined,\n onSend,\n onSubmit: item.isToolConfirmation\n ? (tools: Tool[]) => {\n onSend({\n ...item,\n message: typeof item.message === 'string' ? item.message : '',\n tools\n });\n }\n : undefined\n }\n : item;\n\n return (\n <GenAIMessage\n {...messageProps}\n ref={getMessageCbRef(item.id)}\n testId={item.id}\n announceInteraction={!focusInMessageListRef.current}\n onAnimationCursorUpdate={animatedTillCursor => {\n if (isCoachMessage(item)) {\n setAnimationInitialCursorPos(animatedTillCursor);\n }\n }}\n {...(prevFullScreen !== fullScreen ? { animationInitialCursorPos } : {})}\n />\n );\n })}\n </Flex>\n )}\n </>\n )}\n </Flex>\n\n {showScrollToBottom && (\n <StyledScrollButton\n ref={scrollButtonRef}\n icon\n onClick={handleScrollToBottomClick}\n ariaLabel={t('scroll_to_latest_message')}\n onKeyDown={focusLastMessageLi}\n >\n <Icon name='caret-down' />\n </StyledScrollButton>\n )}\n\n {!loading && messages.length === 0 && suggestionCardsView ? (\n <>\n {((isInUtilities(variant) && variant.state !== 'minimized') ||\n !isInUtilities(variant)) &&\n !guidedMode && (\n <StyledStickyComposer>\n <Flex\n container={{ direction: 'column' }}\n as={StyledInputContainer}\n ref={setInputContainerRef}\n >\n <StyledComposerSection>{genAIFooter}</StyledComposerSection>\n </Flex>\n </StyledStickyComposer>\n )}\n <Flex container={{ direction: 'column' }} as={StyledSuggestionCardsBottomHalf}>\n <StyledSuggestionCardsView ref={setSuggestionCardsViewRef}>\n {suggestionCardsView}\n </StyledSuggestionCardsView>\n </Flex>\n </>\n ) : (\n ((isInUtilities(variant) && variant.state !== 'minimized') ||\n !isInUtilities(variant)) &&\n !loading && (\n <Flex\n container={{ direction: 'column' }}\n as={StyledInputContainer}\n ref={setInputContainerRef}\n >\n <StyledComposerSection>\n {guidedMode &&\n questionnaireData &&\n !questionnaireDismissed &&\n !questionnaireData.inline && (\n <Questionnaire\n key={questionnaireKey}\n data={questionnaireData}\n onChange={handleFormChange}\n onCancel={handleFormCancel}\n />\n )}\n {guidedMode ? (\n <>\n {suggestions && messages.length > 0 && (\n <>\n {latestMessage &&\n isCoachMessage(latestMessage) &&\n latestMessage.loading ? (\n <Flex\n container={{\n gap: 1,\n justify: 'center',\n alignItems: 'center',\n pad: 1\n }}\n >\n {t('generating_response')}\n <Progress\n placement='inline'\n focusOnVisible\n message={t('generating_response')}\n />\n </Flex>\n ) : (\n <ThemeOverride\n theme={{\n components: {\n button: {\n color: theme.base.palette.ai,\n 'secondary-color': theme.base.palette.ai,\n 'secondary-fill-style': 'outline'\n }\n }\n }}\n >\n <MenuButton\n as={StyledGuidedSuggestions}\n text={t('ask_coach', [selectedCoach ?? ''])}\n variant='primary'\n icon='polaris-solid'\n ref={setSuggestionMenuButton}\n menu={{\n items: suggestions,\n onItemClick: id => {\n const selected = menuHelpers.getItem(suggestions, id);\n if (selected && !selected.onClick) {\n onSend({\n id: selected.id,\n message: selected.primary\n });\n }\n }\n }}\n />\n </ThemeOverride>\n )}\n\n <Flex container={{ justify: 'center' }}>\n <StyledDisclaimerText inFullPage={!condition}>\n {t('ai_disclaimer')}\n </StyledDisclaimerText>\n </Flex>\n </>\n )}\n </>\n ) : (\n renderTextArea\n )}\n </StyledComposerSection>\n </Flex>\n )\n )}\n </Flex>\n )}\n </>\n );\n\n useEffect(() => {\n if (focusTextArea.current && !conversationHistory && textAreaRef.current) {\n textAreaRef.current.focus();\n focusTextArea.current = false;\n }\n }, [conversationHistory, focusTextArea.current]);\n\n useEffect(() => {\n if (attachmentsError) {\n announcePolite({\n message: attachmentsError\n });\n } else if (attachments && attachments.length > 0) {\n announcePolite({\n message: t('attachment_added')\n });\n attachmentsAdded.current = true;\n } else if (attachmentsAdded.current && attachments && attachments.length === 0) {\n textAreaRef.current?.focus();\n attachmentsAdded.current = false;\n }\n }, [attachments, attachmentsError]);\n\n const historyView = conversationHistory && (\n <ConversationHistory\n testId={testIds.root}\n {...conversationHistory}\n onItemClick={conversationId => {\n if (condition) {\n focusTextArea.current = true;\n } else {\n textAreaRef.current?.focus();\n }\n\n conversationHistory.onItemClick?.(conversationId);\n }}\n onDismiss={() => {\n focusTextArea.current = true;\n conversationHistory.onDismiss();\n }}\n inFullPage={!condition}\n ref={historyViewRef}\n />\n );\n\n return (\n <Flex\n {...restProps}\n container={{ direction: 'column' }}\n as={StyledGenAICoachContainer}\n data-testid={testIds.root}\n variant={variant}\n fullScreen={fullScreen}\n isCompact={isCompact}\n isPortalAgent={isPortalAgent}\n ref={genAICoachRef}\n >\n <Flex container={{ justify: 'between', alignItems: 'center', pad: [1.5, 2, 0.5] }}>\n {headerContent}\n </Flex>\n\n {condition ? (\n <>{conversationHistory ? historyView : GenAICoachElement}</>\n ) : (\n <Grid\n container={{ gap: 0.5, cols: '2fr 3fr' }}\n as={StyledGridContainer}\n conversationHistory={!!conversationHistory}\n >\n {historyView}\n {GenAICoachElement}\n </Grid>\n )}\n\n {lightboxPreviewProps && <Lightbox {...lightboxPreviewProps} />}\n </Flex>\n );\n};\n\nconst GenAICoach = (props: GenAICoachProps) => (\n <Toaster>\n <StyledFullscreenWrapper>\n <GenAICoachContent {...props} />\n </StyledFullscreenWrapper>\n </Toaster>\n);\n\nexport default withTestIds(GenAICoach, getGenAICoachTestIds);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenAICoach.styles.d.ts","sourceRoot":"","sources":["../../../src/components/GenAICoach/GenAICoach.styles.ts"],"names":[],"mappings":"AAgEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAK1D,eAAO,MAAM,qBAAqB,6NAAe,CAAC;AAElD,eAAO,MAAM,sBAAsB;cAAmC,OAAO;0MAmB3E,CAAC;AAIH,eAAO,MAAM,qBAAqB;cAA0B,OAAO;uBAAqB,OAAO;YA8B9F,CAAC;AAIF,eAAO,MAAM,uBAAuB;0BAAsC,OAAO;YAoBhF,CAAC;AAIF,eAAO,MAAM,uBAAuB;;;2BArHiB,CAAC;iDAuHrD,CAAC;AAEF,eAAO,MAAM,yBAAyB;aAC3B,eAAe,CAAC,SAAS,CAAC;gBACvB,eAAe,CAAC,iBAAiB,CAAC;eACnC,OAAO;mBACH,OAAO;YAyGvB,CAAC;AAIF,eAAO,MAAM,sBAAsB;;;2BAlNgB,CAAC;iDAuOlD,CAAC;AAIH,eAAO,MAAM,qBAAqB;;;2BA3OiB,CAAC;iDAuPlD,CAAC;AAIH,eAAO,MAAM,oBAAoB;;;gBAA8B,OAAO;kLAgBpE,CAAC;AAIH,eAAO,MAAM,iBAAiB,6NAI7B,CAAC;AAGF,eAAO,MAAM,mBAAmB;yBAAqC,OAAO;YAY3E,CAAC;AAIF,eAAO,MAAM,6BAA6B,6NAOxC,CAAC;AAIH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sOAe/B,CAAC;AAIH,eAAO,MAAM,oBAAoB,6NAsBhC,CAAC;AAIF,eAAO,MAAM,gBAAgB;;2LAqB3B,CAAC;AAIH,eAAO,MAAM,0BAA0B,6NAUtC,CAAC;AAIF,eAAO,MAAM,aAAa,yOAexB,CAAC;AAIH,eAAO,MAAM,iBAAiB,6NAgC7B,CAAC;AAIF,eAAO,MAAM,mBAAmB;cAAyB,OAAO;YAsC/D,CAAC;AAIF,eAAO,MAAM,kBAAkB,iOAyC9B,CAAC;AAIF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAA8B,OAAO;kLAwBtE,CAAC;AAIH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sOAMtB,CAAC;AAIF,eAAO,MAAM,eAAe,iOAQ3B,CAAC;AAIF,eAAO,MAAM,4BAA4B;;;
|
|
1
|
+
{"version":3,"file":"GenAICoach.styles.d.ts","sourceRoot":"","sources":["../../../src/components/GenAICoach/GenAICoach.styles.ts"],"names":[],"mappings":"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"}
|
|
@@ -722,7 +722,7 @@ export const StyledPortalSeparator = styled.div `
|
|
|
722
722
|
StyledPortalSeparator.defaultProps = defaultThemeProp;
|
|
723
723
|
export const StyledSuggestionCardsView = styled.div(({ theme: { base: { spacing, 'font-size': fontSize, 'font-scale': fontScale, 'font-weight': fontWeight, transparency, 'content-width': contentWidth }, components: { 'form-control': { 'border-color': formControlBorderColor } } } }) => {
|
|
724
724
|
const cardFontSize = calculateFontSize(fontSize, fontScale).xxs;
|
|
725
|
-
const columnTrack = `
|
|
725
|
+
const columnTrack = `clamp(2.5rem, var(--tile-col-track, 2.5rem), 5rem) minmax(20ch, ${contentWidth.sm}) 1fr`;
|
|
726
726
|
const singleCardSize = `calc(${contentWidth.sm} + 8.875rem)`;
|
|
727
727
|
return css `
|
|
728
728
|
max-width: 95rem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenAICoach.styles.js","sourceRoot":"","sources":["../../../src/components/GenAICoach/GenAICoach.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import styled, { createGlobalStyle, css } from 'styled-components';\nimport { useContext } from 'react';\nimport { mix, darken, meetsContrastGuidelines, transparentize } from 'polished';\n\nimport {\n AppShellContext,\n Button,\n FileList,\n Flex,\n FormControl,\n Icon,\n Image,\n MenuButton,\n InfoDialog,\n StyledEmptyState,\n StyledErrorState,\n StyledIcon,\n StyledText,\n SummaryItem,\n Text,\n TextArea,\n calculateFontSize,\n calculateForegroundColor,\n defaultThemeProp,\n isSolidColor,\n tryCatch,\n Avatar,\n Fullscreen,\n animations,\n Modal,\n StyledIconShape\n} from '@pega/cosmos-react-core';\nimport { StyledCard } from '@pega/cosmos-react-core/lib/components/Card/Card';\nimport { StyledCardHeader } from '@pega/cosmos-react-core/lib/components/Card/CardHeader';\nimport { StyledCardFooter } from '@pega/cosmos-react-core/lib/components/Card/CardFooter';\nimport { StyledCardContent } from '@pega/cosmos-react-core/lib/components/Card/CardContent';\nimport { StyledFullscreenButton } from '@pega/cosmos-react-core/lib/components/Fullscreen/FullscreenButton';\nimport { StyledFormField } from '@pega/cosmos-react-core/lib/components/FormField/FormField';\nimport {\n StyledHeader,\n StyledSelectionCard,\n StyledSingleField,\n StyledTileContent\n} from '@pega/cosmos-react-core/lib/components/SelectionCard/SelectionCard.styles';\nimport { StyledEditorContainer } from '@pega/cosmos-react-rte/lib/components/RichTextEditor/RichTextEditor.styles';\nimport {\n StyledProgress,\n StyledProgressRing\n} from '@pega/cosmos-react-core/lib/components/Progress/Progress.styles';\nimport {\n resizeDrawerMaxWidth,\n portalAgentMinWidth,\n portalAgentDefaultWidth\n} from '@pega/cosmos-react-core/lib/styles/constants';\nimport { lineClamp } from '@pega/cosmos-react-core/lib/styles/mixins';\nimport { RichTextViewer } from '@pega/cosmos-react-rte';\nimport {\n StepMarker,\n StyledStepText\n} from '@pega/cosmos-react-core/lib/components/MultiStepForm/FormProgress.styles';\nimport { StyledResizeHandle } from '@pega/cosmos-react-core/lib/components/Drawer/ResizeHandle';\n\nimport { StyledStages } from '../Stages/Stages.styles';\n\nimport type { GenAICoachProps } from './GenAICoach.types';\nimport { isInUtilities } from './GenAICoach.utils';\n\nconst maxWidthMessage = '62.5rem';\n\nexport const StyledComposerSection = styled.div``;\n\nexport const StyledGenAIFormControl = styled(FormControl)<{ focused?: boolean }>(({\n theme,\n focused\n}) => {\n return css`\n overflow: hidden;\n\n ${focused &&\n css`\n &:not([disabled]) {\n border-color: ${theme.components['form-control'][':focus']['border-color']};\n box-shadow: ${theme.components['form-control'][':focus']['box-shadow']};\n }\n\n &:hover:not([readonly]):not([disabled]):not(:focus, :focus-within) {\n border-color: transparent;\n }\n `}\n `;\n});\n\nStyledGenAIFormControl.defaultProps = defaultThemeProp;\n\nexport const StyledComposerWrapper = styled.div<{ focused?: boolean; hasQuestionnaire?: boolean }>(\n ({ theme, focused, hasQuestionnaire }) => {\n const { 'border-radius': formControlBorderRadius, 'border-width': formControlBorderWidth } =\n theme.components['form-control'];\n const { 'border-radius': baseBorderRadius, palette } = theme.base;\n const borderRadius = `calc(${formControlBorderRadius} * ${baseBorderRadius})`;\n const borderWidth = formControlBorderWidth ?? '0.0625rem';\n\n return css`\n ${hasQuestionnaire &&\n css`\n border: ${borderWidth} solid ${palette['border-line']};\n border-radius: ${borderRadius};\n overflow: hidden;\n\n ${focused &&\n css`\n border-color: ${theme.components['form-control'][':focus']['border-color']};\n box-shadow: ${theme.components['form-control'][':focus']['box-shadow']};\n `}\n\n ${StyledGenAIFormControl} {\n border: none;\n border-radius: 0;\n box-shadow: none;\n overflow: visible;\n }\n `}\n `;\n }\n);\n\nStyledComposerWrapper.defaultProps = defaultThemeProp;\n\nexport const StyledMessagesContainer = styled.div<{ withSuggestionCards?: boolean }>(\n ({\n theme: {\n base: { spacing }\n },\n withSuggestionCards\n }) => {\n return css`\n margin-block-end: calc(0.5 * ${spacing});\n min-height: 0;\n overflow-y: auto;\n ${withSuggestionCards &&\n css`\n overflow-y: visible;\n margin-block-end: 0;\n padding-block-start: 0;\n flex-shrink: 0;\n `}\n `;\n }\n);\n\nStyledMessagesContainer.defaultProps = defaultThemeProp;\n\nexport const StyledFullscreenWrapper = styled(Fullscreen)`\n height: 100%;\n`;\n\nexport const StyledGenAICoachContainer = styled.div<{\n variant: GenAICoachProps['variant'];\n fullScreen: GenAICoachProps['allowFullScreen'];\n isCompact: boolean;\n isPortalAgent: boolean;\n}>(\n ({\n theme: {\n base: {\n palette,\n 'z-index': zIndex,\n spacing,\n breakpoints,\n animation,\n 'border-radius': baseBorderRadius\n },\n components: {\n card: { 'border-radius': cardBorderRadius },\n agent: { background: agentBackground, 'foreground-color': agentForegroundColor },\n 'form-control': { 'border-radius': formControlBorderRadius }\n }\n },\n variant,\n fullScreen,\n isCompact,\n isPortalAgent\n }) => {\n const { previewActive } = useContext(AppShellContext);\n const foregroundColorForAgent = calculateForegroundColor(agentBackground, agentForegroundColor);\n\n return css`\n background: ${agentBackground};\n color: ${foregroundColorForAgent};\n min-width: var(--utilities-drawer-min-width);\n border-radius: ${cardBorderRadius};\n transition: height ${animation.speed} ${animation.timing.ease};\n\n ${variant.placement === 'dialog' &&\n css`\n border-radius: calc(${formControlBorderRadius} * ${baseBorderRadius});\n `}\n\n ${isInUtilities(variant) &&\n !fullScreen &&\n css`\n min-height: 3rem;\n max-width: 31.25rem;\n box-shadow: 0 -1rem 1rem ${palette['app-background']};\n border-radius: ${cardBorderRadius} ${cardBorderRadius} 0 0;\n position: fixed;\n inset-block-end: var(--appshell-bottom-offset, 0);\n inset-inline-end: calc(2 * ${spacing});\n z-index: calc(${zIndex.drawer} + 1);\n width: 25rem;\n\n ${previewActive &&\n css`\n @media (min-width: ${breakpoints.md}) {\n margin-inline-end: min(var(--resize-drawer-width), ${resizeDrawerMaxWidth});\n }\n `}\n\n ${variant.state === 'minimized' &&\n css`\n height: 3rem;\n `}\n `}\n\n /*\n ~85% of Utilities height and fixed height if screen size less than md and devices with coarse pointer\n FIXME: This is a stopgap to address issue in Android web views via React Native where VH units do not work\n */\n ${((isInUtilities(variant) && variant.state === 'maximized') || !isInUtilities(variant)) &&\n !fullScreen &&\n css`\n height: calc(0.85 * var(--case-view-height, 95vh));\n @media (pointer: coarse) and (max-width: ${breakpoints.md}) {\n height: 40rem;\n }\n `}\n\n ${variant.placement === 'fullpage' &&\n css`\n height: var(--content-height-in-view, 100vh);\n `}\n\n ${isCompact &&\n css`\n height: 100%;\n max-height: var(--content-height-in-view, 100vh);\n\n ${StyledMessagesContainer} {\n margin-block-end: 0;\n }\n `}\n\n ${fullScreen &&\n css`\n height: 100vh;\n border-radius: 0;\n `}\n\n ${isPortalAgent &&\n css`\n height: calc(100vh - var(--appshell-offset, 0vh));\n border-radius: 0;\n `}\n `;\n }\n);\n\nStyledGenAICoachContainer.defaultProps = defaultThemeProp;\n\nexport const StyledGenAIOptionsMenu = styled(MenuButton)(({\n theme: {\n base: {\n 'font-size': fontSize,\n 'font-scale': fontScale,\n 'font-weight': fontWeight,\n palette: { ai }\n }\n }\n}) => {\n const { l } = calculateFontSize(fontSize, fontScale);\n return css`\n color: inherit;\n ${StyledIcon}:first-child {\n color: ${ai};\n }\n ${StyledText} {\n font-weight: ${fontWeight['semi-bold']};\n font-size: ${l};\n }\n `;\n});\n\nStyledGenAIOptionsMenu.defaultProps = defaultThemeProp;\n\nexport const StyledMenuSuggestions = styled(MenuButton)(({\n theme: {\n base: { 'border-radius': baseBorderRadius, spacing },\n components: {\n button: { 'border-radius': borderRadius }\n }\n }\n}) => {\n return css`\n padding: calc(0.75 * ${spacing});\n border-radius: calc(${baseBorderRadius} * ${borderRadius});\n `;\n});\n\nStyledMenuSuggestions.defaultProps = defaultThemeProp;\n\nexport const StyledDisclaimerText = styled(Text)<{ inFullPage: boolean }>(({\n inFullPage,\n theme: {\n base: { 'font-size': fontSize, 'font-scale': fontScale, spacing }\n }\n}) => {\n const systemFontSize = calculateFontSize(fontSize, fontScale).xs;\n return css`\n font-size: ${systemFontSize};\n margin-block-start: ${spacing};\n ${inFullPage &&\n css`\n padding-block-end: calc(2 * ${spacing});\n `}\n opacity: 0.7;\n `;\n});\n\nStyledDisclaimerText.defaultProps = defaultThemeProp;\n\nexport const StyledFlexWrapper = styled.div`\n height: 100%;\n overflow-y: auto;\n position: relative;\n`;\nStyledFlexWrapper.defaultProps = defaultThemeProp;\n\nexport const StyledGridContainer = styled.div<{ conversationHistory: boolean }>(\n ({ theme: { base }, conversationHistory }) => {\n return css`\n height: 100%;\n min-height: 0;\n ${conversationHistory &&\n css`\n margin: calc(2 * ${base.spacing});\n border-radius: ${base['border-radius']};\n `}\n `;\n }\n);\n\nStyledGridContainer.defaultProps = defaultThemeProp;\n\nexport const StyledInitialMessageContainer = styled.div(() => {\n return css`\n ${StyledFormField} {\n width: 100%;\n max-width: ${maxWidthMessage};\n }\n `;\n});\n\nStyledInitialMessageContainer.defaultProps = defaultThemeProp;\n\nexport const StyledInputContainer = styled(Flex)(({\n theme: {\n base: { spacing }\n }\n}) => {\n return css`\n margin-block-end: ${spacing};\n margin-inline: calc(2 * ${spacing});\n align-items: center;\n\n ${StyledFormField}, ${StyledComposerSection} {\n width: 100%;\n max-width: ${maxWidthMessage};\n }\n `;\n});\n\nStyledInputContainer.defaultProps = defaultThemeProp;\n\nexport const StyledStickyComposer = styled.div(\n ({\n theme: {\n base: { spacing },\n components: {\n agent: { background: agentBackground }\n }\n }\n }) => {\n return css`\n position: sticky;\n top: 0;\n z-index: 2;\n flex-shrink: 0;\n background: ${agentBackground};\n padding-block: calc(2 * ${spacing});\n\n ${StyledInputContainer} {\n margin-block-end: 0;\n }\n `;\n }\n);\n\nStyledStickyComposer.defaultProps = defaultThemeProp;\n\nexport const StyledSuggestion = styled(Button)(({\n theme: {\n base: { 'border-radius': borderRadius, spacing }\n }\n}) => {\n return css`\n width: fit-content;\n max-width: 100%;\n padding: ${spacing};\n white-space: normal;\n word-break: break-word;\n text-align: start;\n border-start-start-radius: calc(1.25 * ${borderRadius});\n border-start-end-radius: calc(0.5 * ${borderRadius});\n border-end-start-radius: calc(1.25 * ${borderRadius});\n border-end-end-radius: calc(1.25 * ${borderRadius});\n\n & + & {\n margin-inline-start: 0;\n }\n `;\n});\n\nStyledSuggestion.defaultProps = defaultThemeProp;\n\nexport const StyledSuggestionsContainer = styled.div(\n ({\n theme: {\n base: { spacing }\n }\n }) => {\n return css`\n margin-block-start: calc(1.5 * ${spacing});\n `;\n }\n);\n\nStyledSuggestionsContainer.defaultProps = defaultThemeProp;\n\nexport const StyledMessage = styled.p(({ theme }) => {\n return css`\n margin-block-start: calc(0.5 * ${theme.base.spacing});\n width: 100%;\n min-width: 0;\n overflow-wrap: break-word;\n\n ${StyledEditorContainer} {\n padding: 0;\n\n span {\n animation: ${animations.reveal} 1s forwards;\n }\n }\n `;\n});\n\nStyledMessage.defaultProps = defaultThemeProp;\n\nexport const StyledUserMessage = styled.li(\n ({\n theme: {\n base: { 'border-radius': borderRadius, spacing },\n components: {\n agent: {\n 'user-message': {\n background: userMessageBackground,\n 'foreground-color': userMessageForegroundColor\n }\n }\n }\n }\n }) => {\n const foregroundColorForUserMessage = calculateForegroundColor(\n userMessageBackground,\n userMessageForegroundColor\n );\n\n return css`\n overflow-wrap: break-word;\n background: ${userMessageBackground};\n color: ${foregroundColorForUserMessage};\n margin-inline-start: calc(4 * ${spacing});\n margin-block-end: calc(0.5 * ${spacing});\n padding: calc(0.5 * ${spacing});\n border-start-start-radius: calc(1.25 * ${borderRadius});\n border-start-end-radius: calc(0.5 * ${borderRadius});\n border-end-start-radius: calc(1.25 * ${borderRadius});\n border-end-end-radius: calc(1.25 * ${borderRadius});\n `;\n }\n);\n\nStyledUserMessage.defaultProps = defaultThemeProp;\n\nexport const StyledSystemMessage = styled.li<{ stopped?: boolean }>(\n ({\n stopped,\n theme: {\n base: {\n spacing,\n 'font-size': fontSize,\n 'font-scale': fontScale,\n 'font-weight': fontWeight,\n palette\n }\n }\n }) => {\n const systemFontSize = calculateFontSize(fontSize, fontScale).xs;\n\n return css`\n display: flex;\n align-items: center;\n gap: ${spacing};\n overflow-wrap: break-word;\n font-size: ${systemFontSize};\n color: ${palette['foreground-color']};\n opacity: 0.7;\n margin-block: calc(2 * ${spacing});\n ${stopped &&\n css`\n font-weight: ${fontWeight.normal};\n `}\n\n &::before,\n &::after {\n content: '';\n flex: 1;\n border-block-start: 0.0625rem solid ${palette['foreground-color']};\n opacity: 0.7;\n }\n `;\n }\n);\n\nStyledSystemMessage.defaultProps = defaultThemeProp;\n\nexport const StyledMessagesList = styled.ul(\n ({\n theme: {\n base: { shadow, spacing }\n }\n }) => {\n return css`\n padding-block-start: ${spacing};\n list-style-type: none;\n align-self: center;\n max-width: ${maxWidthMessage};\n width: 100%;\n margin-block-start: auto;\n min-height: var(--stream-buffer, auto);\n\n & > li {\n max-width: calc(100% - calc(4.5 * ${spacing}));\n }\n\n & > li[from='user'] {\n margin-inline-start: auto;\n margin-block-end: ${spacing};\n }\n\n & > li[type='message'] {\n &:focus-visible {\n outline: none;\n box-shadow: ${shadow.focus};\n }\n margin-block-end: ${spacing};\n }\n\n & > ${StyledSystemMessage} {\n max-width: 100%;\n }\n\n & > li:has(${StyledSuggestionsContainer}) {\n max-width: 100%;\n }\n `;\n }\n);\n\nStyledMessagesList.defaultProps = defaultThemeProp;\n\nexport const StyledHistoryContainer = styled(Flex)<{ inFullPage: boolean }>(({\n theme,\n inFullPage\n}) => {\n const { background, 'foreground-color': foregroundColor } = theme.components.agent.history;\n const foreground = calculateForegroundColor(background, foregroundColor);\n return css`\n height: 100%;\n min-height: 0;\n background: ${background};\n color: ${foreground};\n border-radius: ${theme.components.card['border-radius']};\n box-shadow: ${theme.base.shadow.low};\n\n ${!inFullPage &&\n css`\n margin-inline: calc(1.5 * ${theme.base.spacing});\n `}\n\n ${StyledEmptyState}, ${StyledErrorState} {\n justify-content: flex-start;\n padding-inline: calc(2 * ${theme.base.spacing});\n }\n `;\n});\n\nStyledHistoryContainer.defaultProps = defaultThemeProp;\n\nexport const StyledList = styled(Flex)(\n ({ theme }) => css`\n height: 100%;\n overflow-y: auto;\n margin-block-end: calc(2 * ${theme.base.spacing});\n `\n);\n\nStyledList.defaultProps = defaultThemeProp;\n\nexport const StyledInnerList = styled.ul(\n ({ theme }) => css`\n padding-inline: calc(2 * ${theme.base.spacing});\n\n ${StyledText} {\n font-weight: ${theme.base['font-weight'].normal};\n }\n `\n);\n\nStyledInnerList.defaultProps = defaultThemeProp;\n\nexport const StyledHistorySummaryListItem = styled(SummaryItem)(({ theme }) => {\n const hoverColor = tryCatch(() =>\n mix(0.95, theme.base.palette['primary-background'], theme.base.palette.interactive)\n );\n return css`\n padding-inline: calc(2 * ${theme.base.spacing});\n padding-block: ${theme.base.spacing};\n\n &:hover {\n background-color: ${hoverColor};\n border-radius: calc(3 * ${theme.base.spacing});\n cursor: pointer;\n }\n &[aria-selected='true'] {\n background-color: ${theme.components.agent.history.item['selected-background']};\n border-radius: calc(3 * ${theme.base.spacing});\n }\n &:focus {\n border: 0.0625rem solid ${theme.base.palette.interactive};\n }\n `;\n});\n\nStyledHistorySummaryListItem.defaultProps = defaultThemeProp;\n\nexport const StyledLoadingItem = styled.li`\n ${StyledProgress} {\n margin: 0;\n }\n`;\n\nexport const StyledGroupHeader = styled.div(({ theme }) => {\n return css`\n padding-inline: calc(2 * ${theme.base.spacing});\n padding-block-start: calc(2 * ${theme.base.spacing});\n padding-block-end: calc(0.5 * ${theme.base.spacing});\n font-weight: ${theme.base['font-weight']['semi-bold']};\n `;\n});\n\nStyledGroupHeader.defaultProps = defaultThemeProp;\n\nexport const StyledErrorContainer = styled.div(({ theme }) => {\n return css`\n color: ${theme.base.palette.urgent};\n `;\n});\n\nStyledErrorContainer.defaultProps = defaultThemeProp;\n\nexport const StyledInput = styled.input(() => {\n return css`\n display: none;\n `;\n});\n\nexport const StyledAttachmentsList = styled(FileList)(({ theme }) => {\n return css`\n padding: ${theme.base.spacing};\n `;\n});\n\nStyledAttachmentsList.defaultProps = defaultThemeProp;\n\nexport const StyledGuidedSuggestions = styled(MenuButton)`\n width: 100%;\n max-width: ${maxWidthMessage};\n > span {\n justify-content: center;\n }\n`;\n\nexport const StyledAgentIcon = styled.svg`\n width: 3rem;\n height: 3rem;\n`;\n\nStyledAgentIcon.defaultProps = defaultThemeProp;\n\nexport const StyledGenAITextArea = styled(TextArea)(({ theme: { components } }) => {\n return css`\n border: none;\n box-shadow: none;\n min-height: calc(1.75 * ${components.input.height});\n max-height: 6rem;\n overflow-y: auto;\n padding-block-end: 0;\n &:focus:not([disabled]) {\n border: none;\n box-shadow: none;\n background-color: transparent;\n }\n `;\n});\n\nStyledGenAITextArea.defaultProps = defaultThemeProp;\n\nexport const StyledSendButton = styled(Button)(({\n theme: {\n base: { 'border-radius': baseBorderRadius },\n components: {\n 'form-control': { 'border-radius': formControlBorderRadius }\n }\n }\n}) => {\n return css`\n border-radius: calc(${baseBorderRadius} * ${formControlBorderRadius});\n margin-inline-start: auto;\n `;\n});\n\nStyledSendButton.defaultProps = defaultThemeProp;\n\nexport const StyledStopGeneratingButton = styled(Button)(({\n theme: {\n base: { 'border-radius': baseBorderRadius },\n components: {\n 'form-control': { 'border-radius': formControlBorderRadius }\n }\n }\n}) => {\n return css`\n border-radius: calc(${baseBorderRadius} * ${formControlBorderRadius});\n margin-inline-start: auto;\n `;\n});\n\nStyledStopGeneratingButton.defaultProps = defaultThemeProp;\n\nexport const StyledInitialMessageGrid = styled.div`\n max-width: ${maxWidthMessage};\n width: 100%;\n`;\n\nexport const StyledInitialMessageButton = styled(Button)(({\n theme: {\n base: { spacing }\n }\n}) => {\n return css`\n white-space: normal;\n text-align: left;\n min-width: unset;\n padding-block: ${spacing};\n padding-inline: calc(2 * ${spacing});\n align-items: start;\n\n & + & {\n margin-inline-start: 0;\n }\n `;\n});\n\nStyledInitialMessageButton.defaultProps = defaultThemeProp;\n\nexport const StyledInitialMessageText = styled.span`\n ${lineClamp(3)};\n`;\n\nexport const StyledGenAIAvatar = styled(Avatar)(({\n theme: {\n components: {\n agent: {\n 'coach-message': {\n avatar: { background: avatarBackground }\n }\n }\n }\n }\n}) => {\n return css`\n background: ${avatarBackground};\n `;\n});\n\nStyledGenAIAvatar.defaultProps = defaultThemeProp;\n\nexport const StyledGenAIFooter = styled.div`\n width: 100%;\n max-width: ${maxWidthMessage};\n`;\n\nexport const StyledToolMessage = styled.p(\n ({\n theme: {\n base: {\n spacing,\n palette: { 'border-line': borderLine }\n }\n }\n }) => {\n return css`\n border-block-end: 0.125rem solid ${borderLine};\n padding: calc(2 * ${spacing});\n `;\n }\n);\n\nStyledToolMessage.defaultProps = defaultThemeProp;\n\nexport const StyledToolMessageContainer = styled.div(\n ({\n theme: {\n base: {\n spacing,\n 'border-radius': borderRadius,\n palette: { 'border-line': borderLine }\n }\n }\n }) => {\n return css`\n border: 0.125rem solid ${borderLine};\n border-radius: min(calc(2 * ${borderRadius}), 1rem);\n margin-block: ${spacing};\n `;\n }\n);\n\nStyledToolMessageContainer.defaultProps = defaultThemeProp;\n\nexport const StyledConfirmationMsg = styled(RichTextViewer)(\n ({\n theme: {\n base,\n components: {\n 'form-control': {\n ':read-only': { 'background-color': readOnlyBackgroundColor }\n }\n }\n }\n }) => `\n padding: 0;\n background-color: ${readOnlyBackgroundColor};\n border-radius: calc(0.5 * ${base['border-radius']});\n`\n);\n\nStyledConfirmationMsg.defaultProps = defaultThemeProp;\n\nexport const StyledActionsContainer = styled.div(\n () => css`\n margin-inline-start: auto;\n\n && button {\n margin-inline-start: 0;\n }\n `\n);\n\nStyledActionsContainer.defaultProps = defaultThemeProp;\n\nexport const StyledScrollButton = styled(Button)(({ theme }) => {\n return css`\n position: absolute;\n bottom: calc(var(--composer-height, 0rem) + calc(5 * ${theme.base.spacing}));\n width: fit-content;\n align-self: center;\n z-index: 1;\n box-shadow: ${theme.base.shadow.high};\n `;\n});\n\nStyledScrollButton.defaultProps = defaultThemeProp;\n\nexport const ProgressAngleStyle = createGlobalStyle`\n @property --angle {\n syntax: \"<angle>\";\n inherits: true;\n initial-value: 0deg;\n }\n`;\n\nexport const StyledProgressContainer = styled.div(({ theme }) => {\n const aiColor = isSolidColor(theme.base.palette.ai)\n ? theme.base.palette.ai\n : theme.base.colors.purple.dark;\n const aiTransparent = transparentize(0.85, aiColor);\n\n return css`\n position: relative;\n isolation: isolate;\n border-radius: calc(2 * ${theme.base.spacing});\n border-start-start-radius: calc(0.5 * ${theme.base.spacing});\n border: calc(0.125 * ${theme.base.spacing}) solid transparent;\n background:\n linear-gradient(${aiTransparent} 0 0) padding-box,\n conic-gradient(\n from var(--angle) in oklab,\n ${aiTransparent} 0%,\n ${aiTransparent} 10%,\n ${aiColor} 50%,\n ${aiTransparent} 90%,\n ${aiTransparent} 100%\n )\n border-box;\n animation: spin 1s ease-in-out infinite;\n width: fit-content;\n\n @keyframes spin {\n to {\n --angle: 360deg;\n }\n }\n `;\n});\n\nStyledProgressContainer.defaultProps = defaultThemeProp;\n\nexport const StyledProgressContent = styled.div(({ theme }) => {\n return css`\n background: ${theme.components.agent.background};\n border-radius: calc(2 * ${theme.base.spacing});\n border-start-start-radius: calc(0.5 * ${theme.base.spacing});\n padding: calc(2 * ${theme.base.spacing});\n\n ${StyledProgressRing} {\n width: ${theme.components.icon.size.s};\n }\n `;\n});\n\nStyledProgressContent.defaultProps = defaultThemeProp;\n\nexport const StyledProgressText = styled(Text)(({ theme }) => {\n return css`\n color: ${theme.base.palette.ai};\n `;\n});\n\nStyledProgressText.defaultProps = defaultThemeProp;\n\nexport const StyledActionContainer = styled(Flex)`\n && {\n display: flex;\n }\n\n && > button:first-child:not(:last-child) {\n margin-inline-end: 0;\n }\n margin-inline-end: auto;\n`;\n\nexport const StyledToolCandidatesModal = styled(Modal)(({ theme }) => {\n return css`\n max-width: ${theme.base['content-width'].xl};\n `;\n});\n\nStyledToolCandidatesModal.defaultProps = defaultThemeProp;\n\nexport const StyledPortalSplitContainer = styled.div`\n container-type: inline-size;\n container-name: portal-split;\n display: flex;\n width: 100%;\n height: calc(100dvh - var(--appshell-offset, 0));\n min-height: calc(100dvh - var(--appshell-offset, 0));\n`;\n\nStyledPortalSplitContainer.defaultProps = defaultThemeProp;\n\nconst portalAgentRegionBasis = (agentVisible: boolean, mainVisible: boolean): string => {\n if (!agentVisible) return '0%';\n if (!mainVisible) return '100%';\n return `clamp(${portalAgentMinWidth}, var(--region-a-width, ${portalAgentDefaultWidth}), calc(100% - ${portalAgentMinWidth}))`;\n};\n\nexport const StyledPortalAgentRegion = styled.aside<{\n agentVisible: boolean;\n mainVisible: boolean;\n}>(\n ({ agentVisible, mainVisible, theme }) => css`\n flex: 0 0 ${portalAgentRegionBasis(agentVisible, mainVisible)};\n min-width: 0;\n transition: flex-basis calc(${theme.base.animation.speed} / 2)\n ${theme.base.animation.timing.ease};\n will-change: flex-basis;\n border-inline-end: 0.0625rem solid ${theme.base.palette['border-line']};\n\n @container portal-split (min-width: ${theme.base.breakpoints.xl}) {\n ${agentVisible &&\n mainVisible &&\n css`\n flex-basis: clamp(\n ${portalAgentMinWidth},\n var(--region-a-width, 25%),\n calc(100% - ${portalAgentMinWidth})\n );\n `}\n }\n\n ${!agentVisible &&\n css`\n overflow: hidden;\n `}\n `\n);\n\nStyledPortalAgentRegion.defaultProps = defaultThemeProp;\n\nexport const StyledPortalMainRegion = styled.div`\n --appshell-sticky-offset: 0;\n flex: 1 1 0%;\n overflow: auto;\n min-width: 0;\n min-height: inherit;\n contain: style;\n\n &[inert] {\n display: none;\n }\n`;\n\nStyledPortalMainRegion.defaultProps = defaultThemeProp;\n\nexport const StyledPortalSeparator = styled.div`\n position: relative;\n flex-shrink: 0;\n align-self: stretch;\n\n ${StyledResizeHandle} {\n z-index: 1;\n }\n`;\n\nStyledPortalSeparator.defaultProps = defaultThemeProp;\n\nexport const StyledSuggestionCardsView = styled.div(\n ({\n theme: {\n base: {\n spacing,\n 'font-size': fontSize,\n 'font-scale': fontScale,\n 'font-weight': fontWeight,\n transparency,\n 'content-width': contentWidth\n },\n components: {\n 'form-control': { 'border-color': formControlBorderColor }\n }\n }\n }) => {\n const cardFontSize = calculateFontSize(fontSize, fontScale).xxs;\n const columnTrack = `minmax(2.5rem, auto) minmax(20ch, ${contentWidth.sm}) 1fr`;\n const singleCardSize = `calc(${contentWidth.sm} + 8.875rem)`;\n\n return css`\n max-width: 95rem;\n width: 100%;\n margin-inline: auto;\n\n [data-testid='gallery'] {\n min-height: 0;\n max-height: none;\n }\n\n .bContainer {\n height: auto !important;\n }\n\n && .grid-container {\n position: static;\n gap: calc(2 * ${spacing});\n grid-auto-rows: minmax(2.75rem, 1fr);\n\n @container (min-width: calc(1.25 * ${singleCardSize})) {\n grid-template-columns: repeat(2, ${columnTrack});\n }\n\n @container (min-width: calc(2 * ${singleCardSize})) {\n grid-template-columns: repeat(3, ${columnTrack});\n }\n\n @container (min-width: calc(3 * ${singleCardSize})) {\n grid-template-columns: repeat(4, ${columnTrack});\n }\n }\n\n && ${StyledCard} {\n background: transparent;\n }\n\n ${StyledFullscreenButton} {\n display: none;\n }\n\n ${StyledHeader} {\n ${StyledText} {\n font-size: ${cardFontSize};\n }\n }\n\n ${StyledSingleField} {\n font-size: ${cardFontSize};\n opacity: ${transparency['transparent-2']};\n }\n\n ${StyledSelectionCard} {\n border-color: ${formControlBorderColor};\n\n &:focus,\n &:not([data-main-focus]):focus-within {\n border-color: transparent;\n }\n\n ${StyledTileContent} {\n font-size: ${cardFontSize};\n font-weight: ${fontWeight['semi-bold']};\n }\n }\n `;\n }\n);\n\nStyledSuggestionCardsView.defaultProps = defaultThemeProp;\n\nexport const StyledAISuggestedBadge = styled(Flex)(({\n theme: {\n base: { 'font-size': fontSize, 'font-scale': fontScale, transparency }\n }\n}) => {\n const systemFontSize = calculateFontSize(fontSize, fontScale).xxs;\n return css`\n ${StyledText} {\n font-size: ${systemFontSize};\n }\n opacity: ${transparency['transparent-2']};\n `;\n});\n\nStyledAISuggestedBadge.defaultProps = defaultThemeProp;\n\nexport const StyledSuggestionCardsBottomHalf = styled(Flex)(({\n theme: {\n base: { spacing }\n }\n}) => {\n return css`\n min-height: 50%;\n flex-shrink: 0;\n margin-block-start: calc(2.5 * ${spacing});\n `;\n});\n\nStyledSuggestionCardsBottomHalf.defaultProps = defaultThemeProp;\n\nexport const StyledCaseWorkflowBanner = styled(Flex)(({ theme }) => {\n const background = theme.components['case-view'].header.background;\n const foreground = calculateForegroundColor(\n background,\n theme.components['case-view'].header['foreground-color']\n );\n\n return css`\n @keyframes case-header-fade-in {\n from {\n opacity: 0;\n transform: translateY(calc(${theme.base.spacing} * -1.5)) scale(0.98);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n }\n margin-inline: calc(2 * ${theme.base.spacing});\n margin-block: ${theme.base.spacing} 0;\n padding: calc(${theme.base.spacing} * 0.75) ${theme.base.spacing};\n background: ${background};\n color: ${foreground};\n border-radius: ${theme.base['border-radius']};\n box-shadow: ${theme.base.shadow.low};\n animation: case-header-fade-in ${theme.base.animation.speed} ${theme.base.animation.timing.ease}\n both;\n `;\n});\n\nStyledCaseWorkflowBanner.defaultProps = defaultThemeProp;\n\nexport const StyledCaseLaunchButton = styled(Button)(({ theme }) => {\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n\n return css`\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: ${theme.base.spacing};\n min-width: 0;\n flex: 1 1 0;\n padding: 0 calc(${theme.base.spacing} * 0.5);\n font-size: ${fontSize.s};\n font-weight: ${theme.base['font-weight']['semi-bold']};\n text-align: start;\n `;\n});\n\nStyledCaseLaunchButton.defaultProps = defaultThemeProp;\n\nexport const StyledCaseIconWrapper = styled.span`\n flex-shrink: 0;\n display: flex;\n align-items: center;\n\n ${StyledIconShape} {\n width: 1.5rem;\n height: 1.5rem;\n }\n`;\n\nStyledCaseIconWrapper.defaultProps = defaultThemeProp;\n\nexport const StyledCaseTitleText = styled.span`\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n flex: 1 1 0;\n`;\n\nStyledCaseTitleText.defaultProps = defaultThemeProp;\n\nexport const StyledProgressLabel = styled.span(({ theme }) => {\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n\n return css`\n flex: 0 1 auto;\n max-width: 40%;\n margin-inline-start: auto;\n font-size: ${fontSize.xxs};\n font-weight: ${theme.base['font-weight'].normal};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n `;\n});\n\nStyledProgressLabel.defaultProps = defaultThemeProp;\n\nexport const StyledWorkflowInfoDialog = styled(InfoDialog)(({ theme }) => {\n return css`\n width: ${theme.base['content-width'].sm};\n max-height: 80vh;\n `;\n});\n\nStyledWorkflowInfoDialog.defaultProps = defaultThemeProp;\n\nexport const StyledStageList = styled.ol(({ theme }) => {\n return css`\n list-style: none;\n padding: calc(${theme.base.spacing} * 0.5);\n overflow-y: auto;\n min-height: 0;\n\n > li:not(:last-child) {\n margin-block-end: calc(${theme.base.spacing} * 0.5);\n }\n `;\n});\n\nStyledStageList.defaultProps = defaultThemeProp;\n\nexport const StyledStageButton = styled(Button)<{ expanded?: boolean }>(({ theme, expanded }) => {\n return css`\n width: 100%;\n justify-content: start;\n color: ${theme.base.palette['foreground-color']};\n gap: calc(${theme.base.spacing} * 0.5);\n\n ${StyledIcon} {\n transition: transform ${theme.base.animation.speed} ${theme.base.animation.timing.ease};\n flex-shrink: 0;\n transform: rotateZ(${expanded ? '0deg' : '-90deg'});\n }\n `;\n});\n\nStyledStageButton.defaultProps = defaultThemeProp;\n\nexport const StyledStepsContainer = styled.div<{\n stageStatus?: 'active' | 'completed' | 'not-started';\n}>(({ theme, stageStatus }) => {\n const isInactive = stageStatus === 'completed' || stageStatus === 'not-started';\n const { m: stepMarkerSize } = calculateFontSize(\n theme.base['font-size'],\n theme.base['font-scale']\n );\n\n return css`\n padding-inline-start: calc(${theme.base.spacing} * 2);\n padding-block: calc(${theme.base.spacing} * 0.5);\n\n ${isInactive &&\n css`\n ${StepMarker}[aria-current='step']::before {\n width: ${stepMarkerSize};\n height: ${stepMarkerSize};\n }\n\n ${StyledStepText} {\n font-weight: ${theme.base['font-weight'].normal};\n font-size: inherit;\n }\n `}\n\n ${stageStatus === 'not-started' &&\n css`\n ${StepMarker}[aria-current='step']::before {\n background: ${theme.base.palette['primary-background']};\n border: calc(2 * ${theme.components['form-control']['border-width']}) solid\n ${theme.components['form-control']['border-color']};\n }\n `}\n `;\n});\n\nStyledStepsContainer.defaultProps = defaultThemeProp;\n\nexport const StyledCaseViewIcon = styled(Icon)(({ theme, foreground, background }) => {\n const meetsContrast =\n foreground && background\n ? tryCatch(\n () => meetsContrastGuidelines(foreground, background).AA,\n () => false\n )\n : true;\n\n return css`\n --brand-accent: ${theme.base.palette['brand-accent']};\n --gradient-start: oklch(from var(--brand-accent) calc(l - 0.3) calc(c * 1.5) h);\n --gradient-mid: oklch(from var(--brand-accent) l c h);\n --gradient-end: oklch(from var(--brand-accent) calc(l + 0.5) calc(c * 1.5) h);\n\n ${!meetsContrast\n ? css`\n color: inherit;\n background: transparent;\n `\n : null}\n\n ${theme.components['case-view'].icon.color !== 'auto'\n ? css`\n color: ${theme.components['case-view'].icon.color};\n `\n : null}\n\n ${theme.components['case-view'].icon.background !== 'auto'\n ? css`\n background: ${theme.components['case-view'].icon.background};\n `\n : null}\n\n ${theme.components['case-view'].icon['box-shadow'] !== 'auto'\n ? css`\n box-shadow: ${theme.components['case-view'].icon['box-shadow']};\n `\n : null}\n `;\n});\n\nStyledCaseViewIcon.defaultProps = defaultThemeProp;\n\nexport const StyledCaseViewImage = styled(Image)`\n max-height: 100%;\n`;\n\nStyledCaseViewImage.defaultProps = defaultThemeProp;\n\nexport const StyledActiveCaseButton = styled.button(({ theme }) => {\n const background = theme.components['case-view'].header.background;\n const foreground = calculateForegroundColor(\n background,\n theme.components['case-view'].header['foreground-color']\n );\n const hoverBg = tryCatch(\n () => darken(0.05, background),\n () => background\n );\n\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n\n return css`\n border: none;\n outline: none;\n cursor: pointer;\n font-size: ${fontSize.xs};\n font-weight: ${theme.base['font-weight']['semi-bold']};\n padding: calc(${theme.base.spacing} * 0.5) ${theme.base.spacing};\n border-radius: ${theme.base['border-radius']};\n background: ${background};\n color: ${foreground};\n box-shadow: ${theme.base.shadow.low};\n\n &:hover {\n background: ${hoverBg};\n }\n\n &:focus-visible {\n box-shadow: ${theme.base.shadow.focus};\n }\n `;\n});\n\nStyledActiveCaseButton.defaultProps = defaultThemeProp;\n\nexport const StyledActiveCasesList = styled(Flex)(({ theme }) => {\n return css`\n overflow-y: auto;\n padding: calc(${theme.base.spacing} * 0.5) calc(${theme.base.spacing} * 0.5);\n min-height: 0;\n `;\n});\n\nStyledActiveCasesList.defaultProps = defaultThemeProp;\n\nexport const StyledActiveCaseName = styled(Button)(({ theme }) => {\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n\n return css`\n justify-content: start;\n font-size: ${fontSize.s};\n font-weight: ${theme.base['font-weight']['semi-bold']};\n padding: 0;\n width: 100%;\n text-align: start;\n `;\n});\n\nStyledActiveCaseName.defaultProps = defaultThemeProp;\n\nexport const StyledActiveCaseStages = styled.div(({ theme }) => {\n return css`\n ${StyledStages} {\n border: ${theme.components.button['border-width']} solid ${theme.base.palette['border-line']};\n }\n `;\n});\n\nStyledActiveCaseStages.defaultProps = defaultThemeProp;\n\nexport const StyledSalutation = styled(Text)(({ theme }) => {\n return css`\n text-align: center;\n overflow-wrap: break-word;\n word-break: break-word;\n font-size: clamp(1.5rem, 1.333rem + 0.052vw, 2rem);\n font-weight: ${theme.base['font-weight'].bold};\n `;\n});\n\nStyledSalutation.defaultProps = defaultThemeProp;\n\nexport const StyledQuestionnaireCard = styled.article(\n ({\n theme: {\n base: {\n spacing,\n palette: { 'border-line': borderLine }\n },\n components: {\n agent: {\n questionnaire: { background, 'foreground-color': foregroundColor }\n }\n }\n }\n }) => {\n const foreground = calculateForegroundColor(background, foregroundColor);\n\n return css`\n width: 100%;\n border: none;\n border-block-end: 0.0625rem solid ${borderLine};\n border-radius: 0;\n background: ${background};\n color: ${foreground};\n\n &&& ${StyledCardHeader} {\n padding-block-start: ${spacing};\n padding-inline-end: ${spacing};\n }\n\n &&& ${StyledCardFooter} {\n padding-block-end: ${spacing};\n }\n\n &&& ${StyledCardContent} {\n padding-block-end: ${spacing};\n }\n `;\n }\n);\n\nStyledQuestionnaireCard.defaultProps = defaultThemeProp;\n\nexport const StyledQuestionBlock = styled.fieldset`\n border: none;\n padding: 0;\n margin: 0;\n\n /* Let radio/checkbox labels stretch so the ComboBox can fill available width */\n label {\n width: 100%;\n }\n`;\n\nStyledQuestionBlock.defaultProps = defaultThemeProp;\n\nexport const StyledComboBoxWrapper = styled.div`\n min-width: 12rem;\n flex: 1;\n`;\n\nStyledComboBoxWrapper.defaultProps = defaultThemeProp;\n"]}
|
|
1
|
+
{"version":3,"file":"GenAICoach.styles.js","sourceRoot":"","sources":["../../../src/components/GenAICoach/GenAICoach.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import styled, { createGlobalStyle, css } from 'styled-components';\nimport { useContext } from 'react';\nimport { mix, darken, meetsContrastGuidelines, transparentize } from 'polished';\n\nimport {\n AppShellContext,\n Button,\n FileList,\n Flex,\n FormControl,\n Icon,\n Image,\n MenuButton,\n InfoDialog,\n StyledEmptyState,\n StyledErrorState,\n StyledIcon,\n StyledText,\n SummaryItem,\n Text,\n TextArea,\n calculateFontSize,\n calculateForegroundColor,\n defaultThemeProp,\n isSolidColor,\n tryCatch,\n Avatar,\n Fullscreen,\n animations,\n Modal,\n StyledIconShape\n} from '@pega/cosmos-react-core';\nimport { StyledCard } from '@pega/cosmos-react-core/lib/components/Card/Card';\nimport { StyledCardHeader } from '@pega/cosmos-react-core/lib/components/Card/CardHeader';\nimport { StyledCardFooter } from '@pega/cosmos-react-core/lib/components/Card/CardFooter';\nimport { StyledCardContent } from '@pega/cosmos-react-core/lib/components/Card/CardContent';\nimport { StyledFullscreenButton } from '@pega/cosmos-react-core/lib/components/Fullscreen/FullscreenButton';\nimport { StyledFormField } from '@pega/cosmos-react-core/lib/components/FormField/FormField';\nimport {\n StyledHeader,\n StyledSelectionCard,\n StyledSingleField,\n StyledTileContent\n} from '@pega/cosmos-react-core/lib/components/SelectionCard/SelectionCard.styles';\nimport { StyledEditorContainer } from '@pega/cosmos-react-rte/lib/components/RichTextEditor/RichTextEditor.styles';\nimport {\n StyledProgress,\n StyledProgressRing\n} from '@pega/cosmos-react-core/lib/components/Progress/Progress.styles';\nimport {\n resizeDrawerMaxWidth,\n portalAgentMinWidth,\n portalAgentDefaultWidth\n} from '@pega/cosmos-react-core/lib/styles/constants';\nimport { lineClamp } from '@pega/cosmos-react-core/lib/styles/mixins';\nimport { RichTextViewer } from '@pega/cosmos-react-rte';\nimport {\n StepMarker,\n StyledStepText\n} from '@pega/cosmos-react-core/lib/components/MultiStepForm/FormProgress.styles';\nimport { StyledResizeHandle } from '@pega/cosmos-react-core/lib/components/Drawer/ResizeHandle';\n\nimport { StyledStages } from '../Stages/Stages.styles';\n\nimport type { GenAICoachProps } from './GenAICoach.types';\nimport { isInUtilities } from './GenAICoach.utils';\n\nconst maxWidthMessage = '62.5rem';\n\nexport const StyledComposerSection = styled.div``;\n\nexport const StyledGenAIFormControl = styled(FormControl)<{ focused?: boolean }>(({\n theme,\n focused\n}) => {\n return css`\n overflow: hidden;\n\n ${focused &&\n css`\n &:not([disabled]) {\n border-color: ${theme.components['form-control'][':focus']['border-color']};\n box-shadow: ${theme.components['form-control'][':focus']['box-shadow']};\n }\n\n &:hover:not([readonly]):not([disabled]):not(:focus, :focus-within) {\n border-color: transparent;\n }\n `}\n `;\n});\n\nStyledGenAIFormControl.defaultProps = defaultThemeProp;\n\nexport const StyledComposerWrapper = styled.div<{ focused?: boolean; hasQuestionnaire?: boolean }>(\n ({ theme, focused, hasQuestionnaire }) => {\n const { 'border-radius': formControlBorderRadius, 'border-width': formControlBorderWidth } =\n theme.components['form-control'];\n const { 'border-radius': baseBorderRadius, palette } = theme.base;\n const borderRadius = `calc(${formControlBorderRadius} * ${baseBorderRadius})`;\n const borderWidth = formControlBorderWidth ?? '0.0625rem';\n\n return css`\n ${hasQuestionnaire &&\n css`\n border: ${borderWidth} solid ${palette['border-line']};\n border-radius: ${borderRadius};\n overflow: hidden;\n\n ${focused &&\n css`\n border-color: ${theme.components['form-control'][':focus']['border-color']};\n box-shadow: ${theme.components['form-control'][':focus']['box-shadow']};\n `}\n\n ${StyledGenAIFormControl} {\n border: none;\n border-radius: 0;\n box-shadow: none;\n overflow: visible;\n }\n `}\n `;\n }\n);\n\nStyledComposerWrapper.defaultProps = defaultThemeProp;\n\nexport const StyledMessagesContainer = styled.div<{ withSuggestionCards?: boolean }>(\n ({\n theme: {\n base: { spacing }\n },\n withSuggestionCards\n }) => {\n return css`\n margin-block-end: calc(0.5 * ${spacing});\n min-height: 0;\n overflow-y: auto;\n ${withSuggestionCards &&\n css`\n overflow-y: visible;\n margin-block-end: 0;\n padding-block-start: 0;\n flex-shrink: 0;\n `}\n `;\n }\n);\n\nStyledMessagesContainer.defaultProps = defaultThemeProp;\n\nexport const StyledFullscreenWrapper = styled(Fullscreen)`\n height: 100%;\n`;\n\nexport const StyledGenAICoachContainer = styled.div<{\n variant: GenAICoachProps['variant'];\n fullScreen: GenAICoachProps['allowFullScreen'];\n isCompact: boolean;\n isPortalAgent: boolean;\n}>(\n ({\n theme: {\n base: {\n palette,\n 'z-index': zIndex,\n spacing,\n breakpoints,\n animation,\n 'border-radius': baseBorderRadius\n },\n components: {\n card: { 'border-radius': cardBorderRadius },\n agent: { background: agentBackground, 'foreground-color': agentForegroundColor },\n 'form-control': { 'border-radius': formControlBorderRadius }\n }\n },\n variant,\n fullScreen,\n isCompact,\n isPortalAgent\n }) => {\n const { previewActive } = useContext(AppShellContext);\n const foregroundColorForAgent = calculateForegroundColor(agentBackground, agentForegroundColor);\n\n return css`\n background: ${agentBackground};\n color: ${foregroundColorForAgent};\n min-width: var(--utilities-drawer-min-width);\n border-radius: ${cardBorderRadius};\n transition: height ${animation.speed} ${animation.timing.ease};\n\n ${variant.placement === 'dialog' &&\n css`\n border-radius: calc(${formControlBorderRadius} * ${baseBorderRadius});\n `}\n\n ${isInUtilities(variant) &&\n !fullScreen &&\n css`\n min-height: 3rem;\n max-width: 31.25rem;\n box-shadow: 0 -1rem 1rem ${palette['app-background']};\n border-radius: ${cardBorderRadius} ${cardBorderRadius} 0 0;\n position: fixed;\n inset-block-end: var(--appshell-bottom-offset, 0);\n inset-inline-end: calc(2 * ${spacing});\n z-index: calc(${zIndex.drawer} + 1);\n width: 25rem;\n\n ${previewActive &&\n css`\n @media (min-width: ${breakpoints.md}) {\n margin-inline-end: min(var(--resize-drawer-width), ${resizeDrawerMaxWidth});\n }\n `}\n\n ${variant.state === 'minimized' &&\n css`\n height: 3rem;\n `}\n `}\n\n /*\n ~85% of Utilities height and fixed height if screen size less than md and devices with coarse pointer\n FIXME: This is a stopgap to address issue in Android web views via React Native where VH units do not work\n */\n ${((isInUtilities(variant) && variant.state === 'maximized') || !isInUtilities(variant)) &&\n !fullScreen &&\n css`\n height: calc(0.85 * var(--case-view-height, 95vh));\n @media (pointer: coarse) and (max-width: ${breakpoints.md}) {\n height: 40rem;\n }\n `}\n\n ${variant.placement === 'fullpage' &&\n css`\n height: var(--content-height-in-view, 100vh);\n `}\n\n ${isCompact &&\n css`\n height: 100%;\n max-height: var(--content-height-in-view, 100vh);\n\n ${StyledMessagesContainer} {\n margin-block-end: 0;\n }\n `}\n\n ${fullScreen &&\n css`\n height: 100vh;\n border-radius: 0;\n `}\n\n ${isPortalAgent &&\n css`\n height: calc(100vh - var(--appshell-offset, 0vh));\n border-radius: 0;\n `}\n `;\n }\n);\n\nStyledGenAICoachContainer.defaultProps = defaultThemeProp;\n\nexport const StyledGenAIOptionsMenu = styled(MenuButton)(({\n theme: {\n base: {\n 'font-size': fontSize,\n 'font-scale': fontScale,\n 'font-weight': fontWeight,\n palette: { ai }\n }\n }\n}) => {\n const { l } = calculateFontSize(fontSize, fontScale);\n return css`\n color: inherit;\n ${StyledIcon}:first-child {\n color: ${ai};\n }\n ${StyledText} {\n font-weight: ${fontWeight['semi-bold']};\n font-size: ${l};\n }\n `;\n});\n\nStyledGenAIOptionsMenu.defaultProps = defaultThemeProp;\n\nexport const StyledMenuSuggestions = styled(MenuButton)(({\n theme: {\n base: { 'border-radius': baseBorderRadius, spacing },\n components: {\n button: { 'border-radius': borderRadius }\n }\n }\n}) => {\n return css`\n padding: calc(0.75 * ${spacing});\n border-radius: calc(${baseBorderRadius} * ${borderRadius});\n `;\n});\n\nStyledMenuSuggestions.defaultProps = defaultThemeProp;\n\nexport const StyledDisclaimerText = styled(Text)<{ inFullPage: boolean }>(({\n inFullPage,\n theme: {\n base: { 'font-size': fontSize, 'font-scale': fontScale, spacing }\n }\n}) => {\n const systemFontSize = calculateFontSize(fontSize, fontScale).xs;\n return css`\n font-size: ${systemFontSize};\n margin-block-start: ${spacing};\n ${inFullPage &&\n css`\n padding-block-end: calc(2 * ${spacing});\n `}\n opacity: 0.7;\n `;\n});\n\nStyledDisclaimerText.defaultProps = defaultThemeProp;\n\nexport const StyledFlexWrapper = styled.div`\n height: 100%;\n overflow-y: auto;\n position: relative;\n`;\nStyledFlexWrapper.defaultProps = defaultThemeProp;\n\nexport const StyledGridContainer = styled.div<{ conversationHistory: boolean }>(\n ({ theme: { base }, conversationHistory }) => {\n return css`\n height: 100%;\n min-height: 0;\n ${conversationHistory &&\n css`\n margin: calc(2 * ${base.spacing});\n border-radius: ${base['border-radius']};\n `}\n `;\n }\n);\n\nStyledGridContainer.defaultProps = defaultThemeProp;\n\nexport const StyledInitialMessageContainer = styled.div(() => {\n return css`\n ${StyledFormField} {\n width: 100%;\n max-width: ${maxWidthMessage};\n }\n `;\n});\n\nStyledInitialMessageContainer.defaultProps = defaultThemeProp;\n\nexport const StyledInputContainer = styled(Flex)(({\n theme: {\n base: { spacing }\n }\n}) => {\n return css`\n margin-block-end: ${spacing};\n margin-inline: calc(2 * ${spacing});\n align-items: center;\n\n ${StyledFormField}, ${StyledComposerSection} {\n width: 100%;\n max-width: ${maxWidthMessage};\n }\n `;\n});\n\nStyledInputContainer.defaultProps = defaultThemeProp;\n\nexport const StyledStickyComposer = styled.div(\n ({\n theme: {\n base: { spacing },\n components: {\n agent: { background: agentBackground }\n }\n }\n }) => {\n return css`\n position: sticky;\n top: 0;\n z-index: 2;\n flex-shrink: 0;\n background: ${agentBackground};\n padding-block: calc(2 * ${spacing});\n\n ${StyledInputContainer} {\n margin-block-end: 0;\n }\n `;\n }\n);\n\nStyledStickyComposer.defaultProps = defaultThemeProp;\n\nexport const StyledSuggestion = styled(Button)(({\n theme: {\n base: { 'border-radius': borderRadius, spacing }\n }\n}) => {\n return css`\n width: fit-content;\n max-width: 100%;\n padding: ${spacing};\n white-space: normal;\n word-break: break-word;\n text-align: start;\n border-start-start-radius: calc(1.25 * ${borderRadius});\n border-start-end-radius: calc(0.5 * ${borderRadius});\n border-end-start-radius: calc(1.25 * ${borderRadius});\n border-end-end-radius: calc(1.25 * ${borderRadius});\n\n & + & {\n margin-inline-start: 0;\n }\n `;\n});\n\nStyledSuggestion.defaultProps = defaultThemeProp;\n\nexport const StyledSuggestionsContainer = styled.div(\n ({\n theme: {\n base: { spacing }\n }\n }) => {\n return css`\n margin-block-start: calc(1.5 * ${spacing});\n `;\n }\n);\n\nStyledSuggestionsContainer.defaultProps = defaultThemeProp;\n\nexport const StyledMessage = styled.p(({ theme }) => {\n return css`\n margin-block-start: calc(0.5 * ${theme.base.spacing});\n width: 100%;\n min-width: 0;\n overflow-wrap: break-word;\n\n ${StyledEditorContainer} {\n padding: 0;\n\n span {\n animation: ${animations.reveal} 1s forwards;\n }\n }\n `;\n});\n\nStyledMessage.defaultProps = defaultThemeProp;\n\nexport const StyledUserMessage = styled.li(\n ({\n theme: {\n base: { 'border-radius': borderRadius, spacing },\n components: {\n agent: {\n 'user-message': {\n background: userMessageBackground,\n 'foreground-color': userMessageForegroundColor\n }\n }\n }\n }\n }) => {\n const foregroundColorForUserMessage = calculateForegroundColor(\n userMessageBackground,\n userMessageForegroundColor\n );\n\n return css`\n overflow-wrap: break-word;\n background: ${userMessageBackground};\n color: ${foregroundColorForUserMessage};\n margin-inline-start: calc(4 * ${spacing});\n margin-block-end: calc(0.5 * ${spacing});\n padding: calc(0.5 * ${spacing});\n border-start-start-radius: calc(1.25 * ${borderRadius});\n border-start-end-radius: calc(0.5 * ${borderRadius});\n border-end-start-radius: calc(1.25 * ${borderRadius});\n border-end-end-radius: calc(1.25 * ${borderRadius});\n `;\n }\n);\n\nStyledUserMessage.defaultProps = defaultThemeProp;\n\nexport const StyledSystemMessage = styled.li<{ stopped?: boolean }>(\n ({\n stopped,\n theme: {\n base: {\n spacing,\n 'font-size': fontSize,\n 'font-scale': fontScale,\n 'font-weight': fontWeight,\n palette\n }\n }\n }) => {\n const systemFontSize = calculateFontSize(fontSize, fontScale).xs;\n\n return css`\n display: flex;\n align-items: center;\n gap: ${spacing};\n overflow-wrap: break-word;\n font-size: ${systemFontSize};\n color: ${palette['foreground-color']};\n opacity: 0.7;\n margin-block: calc(2 * ${spacing});\n ${stopped &&\n css`\n font-weight: ${fontWeight.normal};\n `}\n\n &::before,\n &::after {\n content: '';\n flex: 1;\n border-block-start: 0.0625rem solid ${palette['foreground-color']};\n opacity: 0.7;\n }\n `;\n }\n);\n\nStyledSystemMessage.defaultProps = defaultThemeProp;\n\nexport const StyledMessagesList = styled.ul(\n ({\n theme: {\n base: { shadow, spacing }\n }\n }) => {\n return css`\n padding-block-start: ${spacing};\n list-style-type: none;\n align-self: center;\n max-width: ${maxWidthMessage};\n width: 100%;\n margin-block-start: auto;\n min-height: var(--stream-buffer, auto);\n\n & > li {\n max-width: calc(100% - calc(4.5 * ${spacing}));\n }\n\n & > li[from='user'] {\n margin-inline-start: auto;\n margin-block-end: ${spacing};\n }\n\n & > li[type='message'] {\n &:focus-visible {\n outline: none;\n box-shadow: ${shadow.focus};\n }\n margin-block-end: ${spacing};\n }\n\n & > ${StyledSystemMessage} {\n max-width: 100%;\n }\n\n & > li:has(${StyledSuggestionsContainer}) {\n max-width: 100%;\n }\n `;\n }\n);\n\nStyledMessagesList.defaultProps = defaultThemeProp;\n\nexport const StyledHistoryContainer = styled(Flex)<{ inFullPage: boolean }>(({\n theme,\n inFullPage\n}) => {\n const { background, 'foreground-color': foregroundColor } = theme.components.agent.history;\n const foreground = calculateForegroundColor(background, foregroundColor);\n return css`\n height: 100%;\n min-height: 0;\n background: ${background};\n color: ${foreground};\n border-radius: ${theme.components.card['border-radius']};\n box-shadow: ${theme.base.shadow.low};\n\n ${!inFullPage &&\n css`\n margin-inline: calc(1.5 * ${theme.base.spacing});\n `}\n\n ${StyledEmptyState}, ${StyledErrorState} {\n justify-content: flex-start;\n padding-inline: calc(2 * ${theme.base.spacing});\n }\n `;\n});\n\nStyledHistoryContainer.defaultProps = defaultThemeProp;\n\nexport const StyledList = styled(Flex)(\n ({ theme }) => css`\n height: 100%;\n overflow-y: auto;\n margin-block-end: calc(2 * ${theme.base.spacing});\n `\n);\n\nStyledList.defaultProps = defaultThemeProp;\n\nexport const StyledInnerList = styled.ul(\n ({ theme }) => css`\n padding-inline: calc(2 * ${theme.base.spacing});\n\n ${StyledText} {\n font-weight: ${theme.base['font-weight'].normal};\n }\n `\n);\n\nStyledInnerList.defaultProps = defaultThemeProp;\n\nexport const StyledHistorySummaryListItem = styled(SummaryItem)(({ theme }) => {\n const hoverColor = tryCatch(() =>\n mix(0.95, theme.base.palette['primary-background'], theme.base.palette.interactive)\n );\n return css`\n padding-inline: calc(2 * ${theme.base.spacing});\n padding-block: ${theme.base.spacing};\n\n &:hover {\n background-color: ${hoverColor};\n border-radius: calc(3 * ${theme.base.spacing});\n cursor: pointer;\n }\n &[aria-selected='true'] {\n background-color: ${theme.components.agent.history.item['selected-background']};\n border-radius: calc(3 * ${theme.base.spacing});\n }\n &:focus {\n border: 0.0625rem solid ${theme.base.palette.interactive};\n }\n `;\n});\n\nStyledHistorySummaryListItem.defaultProps = defaultThemeProp;\n\nexport const StyledLoadingItem = styled.li`\n ${StyledProgress} {\n margin: 0;\n }\n`;\n\nexport const StyledGroupHeader = styled.div(({ theme }) => {\n return css`\n padding-inline: calc(2 * ${theme.base.spacing});\n padding-block-start: calc(2 * ${theme.base.spacing});\n padding-block-end: calc(0.5 * ${theme.base.spacing});\n font-weight: ${theme.base['font-weight']['semi-bold']};\n `;\n});\n\nStyledGroupHeader.defaultProps = defaultThemeProp;\n\nexport const StyledErrorContainer = styled.div(({ theme }) => {\n return css`\n color: ${theme.base.palette.urgent};\n `;\n});\n\nStyledErrorContainer.defaultProps = defaultThemeProp;\n\nexport const StyledInput = styled.input(() => {\n return css`\n display: none;\n `;\n});\n\nexport const StyledAttachmentsList = styled(FileList)(({ theme }) => {\n return css`\n padding: ${theme.base.spacing};\n `;\n});\n\nStyledAttachmentsList.defaultProps = defaultThemeProp;\n\nexport const StyledGuidedSuggestions = styled(MenuButton)`\n width: 100%;\n max-width: ${maxWidthMessage};\n > span {\n justify-content: center;\n }\n`;\n\nexport const StyledAgentIcon = styled.svg`\n width: 3rem;\n height: 3rem;\n`;\n\nStyledAgentIcon.defaultProps = defaultThemeProp;\n\nexport const StyledGenAITextArea = styled(TextArea)(({ theme: { components } }) => {\n return css`\n border: none;\n box-shadow: none;\n min-height: calc(1.75 * ${components.input.height});\n max-height: 6rem;\n overflow-y: auto;\n padding-block-end: 0;\n &:focus:not([disabled]) {\n border: none;\n box-shadow: none;\n background-color: transparent;\n }\n `;\n});\n\nStyledGenAITextArea.defaultProps = defaultThemeProp;\n\nexport const StyledSendButton = styled(Button)(({\n theme: {\n base: { 'border-radius': baseBorderRadius },\n components: {\n 'form-control': { 'border-radius': formControlBorderRadius }\n }\n }\n}) => {\n return css`\n border-radius: calc(${baseBorderRadius} * ${formControlBorderRadius});\n margin-inline-start: auto;\n `;\n});\n\nStyledSendButton.defaultProps = defaultThemeProp;\n\nexport const StyledStopGeneratingButton = styled(Button)(({\n theme: {\n base: { 'border-radius': baseBorderRadius },\n components: {\n 'form-control': { 'border-radius': formControlBorderRadius }\n }\n }\n}) => {\n return css`\n border-radius: calc(${baseBorderRadius} * ${formControlBorderRadius});\n margin-inline-start: auto;\n `;\n});\n\nStyledStopGeneratingButton.defaultProps = defaultThemeProp;\n\nexport const StyledInitialMessageGrid = styled.div`\n max-width: ${maxWidthMessage};\n width: 100%;\n`;\n\nexport const StyledInitialMessageButton = styled(Button)(({\n theme: {\n base: { spacing }\n }\n}) => {\n return css`\n white-space: normal;\n text-align: left;\n min-width: unset;\n padding-block: ${spacing};\n padding-inline: calc(2 * ${spacing});\n align-items: start;\n\n & + & {\n margin-inline-start: 0;\n }\n `;\n});\n\nStyledInitialMessageButton.defaultProps = defaultThemeProp;\n\nexport const StyledInitialMessageText = styled.span`\n ${lineClamp(3)};\n`;\n\nexport const StyledGenAIAvatar = styled(Avatar)(({\n theme: {\n components: {\n agent: {\n 'coach-message': {\n avatar: { background: avatarBackground }\n }\n }\n }\n }\n}) => {\n return css`\n background: ${avatarBackground};\n `;\n});\n\nStyledGenAIAvatar.defaultProps = defaultThemeProp;\n\nexport const StyledGenAIFooter = styled.div`\n width: 100%;\n max-width: ${maxWidthMessage};\n`;\n\nexport const StyledToolMessage = styled.p(\n ({\n theme: {\n base: {\n spacing,\n palette: { 'border-line': borderLine }\n }\n }\n }) => {\n return css`\n border-block-end: 0.125rem solid ${borderLine};\n padding: calc(2 * ${spacing});\n `;\n }\n);\n\nStyledToolMessage.defaultProps = defaultThemeProp;\n\nexport const StyledToolMessageContainer = styled.div(\n ({\n theme: {\n base: {\n spacing,\n 'border-radius': borderRadius,\n palette: { 'border-line': borderLine }\n }\n }\n }) => {\n return css`\n border: 0.125rem solid ${borderLine};\n border-radius: min(calc(2 * ${borderRadius}), 1rem);\n margin-block: ${spacing};\n `;\n }\n);\n\nStyledToolMessageContainer.defaultProps = defaultThemeProp;\n\nexport const StyledConfirmationMsg = styled(RichTextViewer)(\n ({\n theme: {\n base,\n components: {\n 'form-control': {\n ':read-only': { 'background-color': readOnlyBackgroundColor }\n }\n }\n }\n }) => `\n padding: 0;\n background-color: ${readOnlyBackgroundColor};\n border-radius: calc(0.5 * ${base['border-radius']});\n`\n);\n\nStyledConfirmationMsg.defaultProps = defaultThemeProp;\n\nexport const StyledActionsContainer = styled.div(\n () => css`\n margin-inline-start: auto;\n\n && button {\n margin-inline-start: 0;\n }\n `\n);\n\nStyledActionsContainer.defaultProps = defaultThemeProp;\n\nexport const StyledScrollButton = styled(Button)(({ theme }) => {\n return css`\n position: absolute;\n bottom: calc(var(--composer-height, 0rem) + calc(5 * ${theme.base.spacing}));\n width: fit-content;\n align-self: center;\n z-index: 1;\n box-shadow: ${theme.base.shadow.high};\n `;\n});\n\nStyledScrollButton.defaultProps = defaultThemeProp;\n\nexport const ProgressAngleStyle = createGlobalStyle`\n @property --angle {\n syntax: \"<angle>\";\n inherits: true;\n initial-value: 0deg;\n }\n`;\n\nexport const StyledProgressContainer = styled.div(({ theme }) => {\n const aiColor = isSolidColor(theme.base.palette.ai)\n ? theme.base.palette.ai\n : theme.base.colors.purple.dark;\n const aiTransparent = transparentize(0.85, aiColor);\n\n return css`\n position: relative;\n isolation: isolate;\n border-radius: calc(2 * ${theme.base.spacing});\n border-start-start-radius: calc(0.5 * ${theme.base.spacing});\n border: calc(0.125 * ${theme.base.spacing}) solid transparent;\n background:\n linear-gradient(${aiTransparent} 0 0) padding-box,\n conic-gradient(\n from var(--angle) in oklab,\n ${aiTransparent} 0%,\n ${aiTransparent} 10%,\n ${aiColor} 50%,\n ${aiTransparent} 90%,\n ${aiTransparent} 100%\n )\n border-box;\n animation: spin 1s ease-in-out infinite;\n width: fit-content;\n\n @keyframes spin {\n to {\n --angle: 360deg;\n }\n }\n `;\n});\n\nStyledProgressContainer.defaultProps = defaultThemeProp;\n\nexport const StyledProgressContent = styled.div(({ theme }) => {\n return css`\n background: ${theme.components.agent.background};\n border-radius: calc(2 * ${theme.base.spacing});\n border-start-start-radius: calc(0.5 * ${theme.base.spacing});\n padding: calc(2 * ${theme.base.spacing});\n\n ${StyledProgressRing} {\n width: ${theme.components.icon.size.s};\n }\n `;\n});\n\nStyledProgressContent.defaultProps = defaultThemeProp;\n\nexport const StyledProgressText = styled(Text)(({ theme }) => {\n return css`\n color: ${theme.base.palette.ai};\n `;\n});\n\nStyledProgressText.defaultProps = defaultThemeProp;\n\nexport const StyledActionContainer = styled(Flex)`\n && {\n display: flex;\n }\n\n && > button:first-child:not(:last-child) {\n margin-inline-end: 0;\n }\n margin-inline-end: auto;\n`;\n\nexport const StyledToolCandidatesModal = styled(Modal)(({ theme }) => {\n return css`\n max-width: ${theme.base['content-width'].xl};\n `;\n});\n\nStyledToolCandidatesModal.defaultProps = defaultThemeProp;\n\nexport const StyledPortalSplitContainer = styled.div`\n container-type: inline-size;\n container-name: portal-split;\n display: flex;\n width: 100%;\n height: calc(100dvh - var(--appshell-offset, 0));\n min-height: calc(100dvh - var(--appshell-offset, 0));\n`;\n\nStyledPortalSplitContainer.defaultProps = defaultThemeProp;\n\nconst portalAgentRegionBasis = (agentVisible: boolean, mainVisible: boolean): string => {\n if (!agentVisible) return '0%';\n if (!mainVisible) return '100%';\n return `clamp(${portalAgentMinWidth}, var(--region-a-width, ${portalAgentDefaultWidth}), calc(100% - ${portalAgentMinWidth}))`;\n};\n\nexport const StyledPortalAgentRegion = styled.aside<{\n agentVisible: boolean;\n mainVisible: boolean;\n}>(\n ({ agentVisible, mainVisible, theme }) => css`\n flex: 0 0 ${portalAgentRegionBasis(agentVisible, mainVisible)};\n min-width: 0;\n transition: flex-basis calc(${theme.base.animation.speed} / 2)\n ${theme.base.animation.timing.ease};\n will-change: flex-basis;\n border-inline-end: 0.0625rem solid ${theme.base.palette['border-line']};\n\n @container portal-split (min-width: ${theme.base.breakpoints.xl}) {\n ${agentVisible &&\n mainVisible &&\n css`\n flex-basis: clamp(\n ${portalAgentMinWidth},\n var(--region-a-width, 25%),\n calc(100% - ${portalAgentMinWidth})\n );\n `}\n }\n\n ${!agentVisible &&\n css`\n overflow: hidden;\n `}\n `\n);\n\nStyledPortalAgentRegion.defaultProps = defaultThemeProp;\n\nexport const StyledPortalMainRegion = styled.div`\n --appshell-sticky-offset: 0;\n flex: 1 1 0%;\n overflow: auto;\n min-width: 0;\n min-height: inherit;\n contain: style;\n\n &[inert] {\n display: none;\n }\n`;\n\nStyledPortalMainRegion.defaultProps = defaultThemeProp;\n\nexport const StyledPortalSeparator = styled.div`\n position: relative;\n flex-shrink: 0;\n align-self: stretch;\n\n ${StyledResizeHandle} {\n z-index: 1;\n }\n`;\n\nStyledPortalSeparator.defaultProps = defaultThemeProp;\n\nexport const StyledSuggestionCardsView = styled.div(\n ({\n theme: {\n base: {\n spacing,\n 'font-size': fontSize,\n 'font-scale': fontScale,\n 'font-weight': fontWeight,\n transparency,\n 'content-width': contentWidth\n },\n components: {\n 'form-control': { 'border-color': formControlBorderColor }\n }\n }\n }) => {\n const cardFontSize = calculateFontSize(fontSize, fontScale).xxs;\n const columnTrack = `clamp(2.5rem, var(--tile-col-track, 2.5rem), 5rem) minmax(20ch, ${contentWidth.sm}) 1fr`;\n const singleCardSize = `calc(${contentWidth.sm} + 8.875rem)`;\n\n return css`\n max-width: 95rem;\n width: 100%;\n margin-inline: auto;\n\n [data-testid='gallery'] {\n min-height: 0;\n max-height: none;\n }\n\n .bContainer {\n height: auto !important;\n }\n\n && .grid-container {\n position: static;\n gap: calc(2 * ${spacing});\n grid-auto-rows: minmax(2.75rem, 1fr);\n\n @container (min-width: calc(1.25 * ${singleCardSize})) {\n grid-template-columns: repeat(2, ${columnTrack});\n }\n\n @container (min-width: calc(2 * ${singleCardSize})) {\n grid-template-columns: repeat(3, ${columnTrack});\n }\n\n @container (min-width: calc(3 * ${singleCardSize})) {\n grid-template-columns: repeat(4, ${columnTrack});\n }\n }\n\n && ${StyledCard} {\n background: transparent;\n }\n\n ${StyledFullscreenButton} {\n display: none;\n }\n\n ${StyledHeader} {\n ${StyledText} {\n font-size: ${cardFontSize};\n }\n }\n\n ${StyledSingleField} {\n font-size: ${cardFontSize};\n opacity: ${transparency['transparent-2']};\n }\n\n ${StyledSelectionCard} {\n border-color: ${formControlBorderColor};\n\n &:focus,\n &:not([data-main-focus]):focus-within {\n border-color: transparent;\n }\n\n ${StyledTileContent} {\n font-size: ${cardFontSize};\n font-weight: ${fontWeight['semi-bold']};\n }\n }\n `;\n }\n);\n\nStyledSuggestionCardsView.defaultProps = defaultThemeProp;\n\nexport const StyledAISuggestedBadge = styled(Flex)(({\n theme: {\n base: { 'font-size': fontSize, 'font-scale': fontScale, transparency }\n }\n}) => {\n const systemFontSize = calculateFontSize(fontSize, fontScale).xxs;\n return css`\n ${StyledText} {\n font-size: ${systemFontSize};\n }\n opacity: ${transparency['transparent-2']};\n `;\n});\n\nStyledAISuggestedBadge.defaultProps = defaultThemeProp;\n\nexport const StyledSuggestionCardsBottomHalf = styled(Flex)(({\n theme: {\n base: { spacing }\n }\n}) => {\n return css`\n min-height: 50%;\n flex-shrink: 0;\n margin-block-start: calc(2.5 * ${spacing});\n `;\n});\n\nStyledSuggestionCardsBottomHalf.defaultProps = defaultThemeProp;\n\nexport const StyledCaseWorkflowBanner = styled(Flex)(({ theme }) => {\n const background = theme.components['case-view'].header.background;\n const foreground = calculateForegroundColor(\n background,\n theme.components['case-view'].header['foreground-color']\n );\n\n return css`\n @keyframes case-header-fade-in {\n from {\n opacity: 0;\n transform: translateY(calc(${theme.base.spacing} * -1.5)) scale(0.98);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n }\n margin-inline: calc(2 * ${theme.base.spacing});\n margin-block: ${theme.base.spacing} 0;\n padding: calc(${theme.base.spacing} * 0.75) ${theme.base.spacing};\n background: ${background};\n color: ${foreground};\n border-radius: ${theme.base['border-radius']};\n box-shadow: ${theme.base.shadow.low};\n animation: case-header-fade-in ${theme.base.animation.speed} ${theme.base.animation.timing.ease}\n both;\n `;\n});\n\nStyledCaseWorkflowBanner.defaultProps = defaultThemeProp;\n\nexport const StyledCaseLaunchButton = styled(Button)(({ theme }) => {\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n\n return css`\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: ${theme.base.spacing};\n min-width: 0;\n flex: 1 1 0;\n padding: 0 calc(${theme.base.spacing} * 0.5);\n font-size: ${fontSize.s};\n font-weight: ${theme.base['font-weight']['semi-bold']};\n text-align: start;\n `;\n});\n\nStyledCaseLaunchButton.defaultProps = defaultThemeProp;\n\nexport const StyledCaseIconWrapper = styled.span`\n flex-shrink: 0;\n display: flex;\n align-items: center;\n\n ${StyledIconShape} {\n width: 1.5rem;\n height: 1.5rem;\n }\n`;\n\nStyledCaseIconWrapper.defaultProps = defaultThemeProp;\n\nexport const StyledCaseTitleText = styled.span`\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n flex: 1 1 0;\n`;\n\nStyledCaseTitleText.defaultProps = defaultThemeProp;\n\nexport const StyledProgressLabel = styled.span(({ theme }) => {\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n\n return css`\n flex: 0 1 auto;\n max-width: 40%;\n margin-inline-start: auto;\n font-size: ${fontSize.xxs};\n font-weight: ${theme.base['font-weight'].normal};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n `;\n});\n\nStyledProgressLabel.defaultProps = defaultThemeProp;\n\nexport const StyledWorkflowInfoDialog = styled(InfoDialog)(({ theme }) => {\n return css`\n width: ${theme.base['content-width'].sm};\n max-height: 80vh;\n `;\n});\n\nStyledWorkflowInfoDialog.defaultProps = defaultThemeProp;\n\nexport const StyledStageList = styled.ol(({ theme }) => {\n return css`\n list-style: none;\n padding: calc(${theme.base.spacing} * 0.5);\n overflow-y: auto;\n min-height: 0;\n\n > li:not(:last-child) {\n margin-block-end: calc(${theme.base.spacing} * 0.5);\n }\n `;\n});\n\nStyledStageList.defaultProps = defaultThemeProp;\n\nexport const StyledStageButton = styled(Button)<{ expanded?: boolean }>(({ theme, expanded }) => {\n return css`\n width: 100%;\n justify-content: start;\n color: ${theme.base.palette['foreground-color']};\n gap: calc(${theme.base.spacing} * 0.5);\n\n ${StyledIcon} {\n transition: transform ${theme.base.animation.speed} ${theme.base.animation.timing.ease};\n flex-shrink: 0;\n transform: rotateZ(${expanded ? '0deg' : '-90deg'});\n }\n `;\n});\n\nStyledStageButton.defaultProps = defaultThemeProp;\n\nexport const StyledStepsContainer = styled.div<{\n stageStatus?: 'active' | 'completed' | 'not-started';\n}>(({ theme, stageStatus }) => {\n const isInactive = stageStatus === 'completed' || stageStatus === 'not-started';\n const { m: stepMarkerSize } = calculateFontSize(\n theme.base['font-size'],\n theme.base['font-scale']\n );\n\n return css`\n padding-inline-start: calc(${theme.base.spacing} * 2);\n padding-block: calc(${theme.base.spacing} * 0.5);\n\n ${isInactive &&\n css`\n ${StepMarker}[aria-current='step']::before {\n width: ${stepMarkerSize};\n height: ${stepMarkerSize};\n }\n\n ${StyledStepText} {\n font-weight: ${theme.base['font-weight'].normal};\n font-size: inherit;\n }\n `}\n\n ${stageStatus === 'not-started' &&\n css`\n ${StepMarker}[aria-current='step']::before {\n background: ${theme.base.palette['primary-background']};\n border: calc(2 * ${theme.components['form-control']['border-width']}) solid\n ${theme.components['form-control']['border-color']};\n }\n `}\n `;\n});\n\nStyledStepsContainer.defaultProps = defaultThemeProp;\n\nexport const StyledCaseViewIcon = styled(Icon)(({ theme, foreground, background }) => {\n const meetsContrast =\n foreground && background\n ? tryCatch(\n () => meetsContrastGuidelines(foreground, background).AA,\n () => false\n )\n : true;\n\n return css`\n --brand-accent: ${theme.base.palette['brand-accent']};\n --gradient-start: oklch(from var(--brand-accent) calc(l - 0.3) calc(c * 1.5) h);\n --gradient-mid: oklch(from var(--brand-accent) l c h);\n --gradient-end: oklch(from var(--brand-accent) calc(l + 0.5) calc(c * 1.5) h);\n\n ${!meetsContrast\n ? css`\n color: inherit;\n background: transparent;\n `\n : null}\n\n ${theme.components['case-view'].icon.color !== 'auto'\n ? css`\n color: ${theme.components['case-view'].icon.color};\n `\n : null}\n\n ${theme.components['case-view'].icon.background !== 'auto'\n ? css`\n background: ${theme.components['case-view'].icon.background};\n `\n : null}\n\n ${theme.components['case-view'].icon['box-shadow'] !== 'auto'\n ? css`\n box-shadow: ${theme.components['case-view'].icon['box-shadow']};\n `\n : null}\n `;\n});\n\nStyledCaseViewIcon.defaultProps = defaultThemeProp;\n\nexport const StyledCaseViewImage = styled(Image)`\n max-height: 100%;\n`;\n\nStyledCaseViewImage.defaultProps = defaultThemeProp;\n\nexport const StyledActiveCaseButton = styled.button(({ theme }) => {\n const background = theme.components['case-view'].header.background;\n const foreground = calculateForegroundColor(\n background,\n theme.components['case-view'].header['foreground-color']\n );\n const hoverBg = tryCatch(\n () => darken(0.05, background),\n () => background\n );\n\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n\n return css`\n border: none;\n outline: none;\n cursor: pointer;\n font-size: ${fontSize.xs};\n font-weight: ${theme.base['font-weight']['semi-bold']};\n padding: calc(${theme.base.spacing} * 0.5) ${theme.base.spacing};\n border-radius: ${theme.base['border-radius']};\n background: ${background};\n color: ${foreground};\n box-shadow: ${theme.base.shadow.low};\n\n &:hover {\n background: ${hoverBg};\n }\n\n &:focus-visible {\n box-shadow: ${theme.base.shadow.focus};\n }\n `;\n});\n\nStyledActiveCaseButton.defaultProps = defaultThemeProp;\n\nexport const StyledActiveCasesList = styled(Flex)(({ theme }) => {\n return css`\n overflow-y: auto;\n padding: calc(${theme.base.spacing} * 0.5) calc(${theme.base.spacing} * 0.5);\n min-height: 0;\n `;\n});\n\nStyledActiveCasesList.defaultProps = defaultThemeProp;\n\nexport const StyledActiveCaseName = styled(Button)(({ theme }) => {\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n\n return css`\n justify-content: start;\n font-size: ${fontSize.s};\n font-weight: ${theme.base['font-weight']['semi-bold']};\n padding: 0;\n width: 100%;\n text-align: start;\n `;\n});\n\nStyledActiveCaseName.defaultProps = defaultThemeProp;\n\nexport const StyledActiveCaseStages = styled.div(({ theme }) => {\n return css`\n ${StyledStages} {\n border: ${theme.components.button['border-width']} solid ${theme.base.palette['border-line']};\n }\n `;\n});\n\nStyledActiveCaseStages.defaultProps = defaultThemeProp;\n\nexport const StyledSalutation = styled(Text)(({ theme }) => {\n return css`\n text-align: center;\n overflow-wrap: break-word;\n word-break: break-word;\n font-size: clamp(1.5rem, 1.333rem + 0.052vw, 2rem);\n font-weight: ${theme.base['font-weight'].bold};\n `;\n});\n\nStyledSalutation.defaultProps = defaultThemeProp;\n\nexport const StyledQuestionnaireCard = styled.article(\n ({\n theme: {\n base: {\n spacing,\n palette: { 'border-line': borderLine }\n },\n components: {\n agent: {\n questionnaire: { background, 'foreground-color': foregroundColor }\n }\n }\n }\n }) => {\n const foreground = calculateForegroundColor(background, foregroundColor);\n\n return css`\n width: 100%;\n border: none;\n border-block-end: 0.0625rem solid ${borderLine};\n border-radius: 0;\n background: ${background};\n color: ${foreground};\n\n &&& ${StyledCardHeader} {\n padding-block-start: ${spacing};\n padding-inline-end: ${spacing};\n }\n\n &&& ${StyledCardFooter} {\n padding-block-end: ${spacing};\n }\n\n &&& ${StyledCardContent} {\n padding-block-end: ${spacing};\n }\n `;\n }\n);\n\nStyledQuestionnaireCard.defaultProps = defaultThemeProp;\n\nexport const StyledQuestionBlock = styled.fieldset`\n border: none;\n padding: 0;\n margin: 0;\n\n /* Let radio/checkbox labels stretch so the ComboBox can fill available width */\n label {\n width: 100%;\n }\n`;\n\nStyledQuestionBlock.defaultProps = defaultThemeProp;\n\nexport const StyledComboBoxWrapper = styled.div`\n min-width: 12rem;\n flex: 1;\n`;\n\nStyledComboBoxWrapper.defaultProps = defaultThemeProp;\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pega/cosmos-react-work",
|
|
3
|
-
"version": "9.0.0-build.29.
|
|
3
|
+
"version": "9.0.0-build.29.21",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE",
|
|
5
5
|
"author": "Pegasystems",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
"build": "tsc -b tsconfig.build.json"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@pega/cosmos-react-core": "9.0.0-build.29.
|
|
18
|
-
"@pega/cosmos-react-rte": "9.0.0-build.29.
|
|
17
|
+
"@pega/cosmos-react-core": "9.0.0-build.29.21",
|
|
18
|
+
"@pega/cosmos-react-rte": "9.0.0-build.29.21",
|
|
19
19
|
"@types/react": "^17.0.62 || ^18.3.3",
|
|
20
20
|
"@types/react-dom": "^17.0.20 || ^18.3.0",
|
|
21
21
|
"polished": "^4.1.0",
|