@pega/cosmos-react-work 9.18.0 → 9.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/GenAICoach/ActiveCases.d.ts.map +1 -1
- package/lib/components/GenAICoach/ActiveCases.js +2 -1
- package/lib/components/GenAICoach/ActiveCases.js.map +1 -1
- package/lib/components/GenAICoach/GenAICoach.styles.d.ts.map +1 -1
- package/lib/components/GenAICoach/GenAICoach.styles.js +7 -0
- package/lib/components/GenAICoach/GenAICoach.styles.js.map +1 -1
- package/lib/components/Stages/Stages.styles.d.ts.map +1 -1
- package/lib/components/Stages/Stages.styles.js +84 -20
- package/lib/components/Stages/Stages.styles.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActiveCases.d.ts","sourceRoot":"","sources":["../../../src/components/GenAICoach/ActiveCases.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAM/E,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,oBAAoB,CAAC;AAoC3E,QAAA,MAAM,WAAW,EAAE,+BAA+B,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"ActiveCases.d.ts","sourceRoot":"","sources":["../../../src/components/GenAICoach/ActiveCases.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAM/E,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,oBAAoB,CAAC;AAoC3E,QAAA,MAAM,WAAW,EAAE,+BAA+B,CAAC,gBAAgB,CAyElE,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -30,13 +30,14 @@ const ActiveCases = forwardRef(function ActiveCases({ activeCases, ...restProps
|
|
|
30
30
|
const [triggerEl, setTriggerEl] = useElement();
|
|
31
31
|
const triggerRef = useConsolidatedRef(ref, setTriggerEl);
|
|
32
32
|
const label = t('active_cases');
|
|
33
|
+
const dialogHeading = t('cases_in_this_chat');
|
|
33
34
|
const toggleDialog = useCallback(() => {
|
|
34
35
|
setIsOpen(prev => !prev);
|
|
35
36
|
}, []);
|
|
36
37
|
const dismissDialog = useCallback(() => {
|
|
37
38
|
setIsOpen(false);
|
|
38
39
|
}, []);
|
|
39
|
-
return (_jsxs(_Fragment, { children: [_jsxs(Flex, { container: { alignItems: 'center', gap: 1 }, as: StyledActiveCaseButton, ...restProps, ref: triggerRef, type: 'button', onClick: toggleDialog, "aria-expanded": isOpen, "aria-label": t('active_cases_trigger', [activeCases.length]), children: [_jsx(Icon, { name: 'case' }), label, _jsx(Count, { children: activeCases.length })] }), isOpen && triggerEl && (_jsx(InfoDialog, { heading:
|
|
40
|
+
return (_jsxs(_Fragment, { children: [_jsxs(Flex, { container: { alignItems: 'center', gap: 1 }, as: StyledActiveCaseButton, ...restProps, ref: triggerRef, type: 'button', onClick: toggleDialog, "aria-expanded": isOpen, "aria-label": t('active_cases_trigger', [activeCases.length]), children: [_jsx(Icon, { name: 'case' }), label, _jsx(Count, { children: activeCases.length })] }), isOpen && triggerEl && (_jsx(InfoDialog, { heading: dialogHeading, target: triggerEl, onDismiss: dismissDialog, children: _jsx(StyledActiveCasesList, { container: { direction: 'column', gap: 4 }, children: activeCases.map(caseItem => {
|
|
40
41
|
const stageProps = toStageProps(caseItem.stages);
|
|
41
42
|
const currentId = findCurrentStageId(caseItem.stages);
|
|
42
43
|
const handleCaseClick = e => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActiveCases.js","sourceRoot":"","sources":["../../../src/components/GenAICoach/ActiveCases.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAG1D,OAAO,EACL,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,UAAU,EACV,OAAO,EACP,UAAU,EACV,kBAAkB,EAClB,YAAY,EACb,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,QAAQ,MAAM,6DAA6D,CAAC;AAExF,OAAO,MAAM,MAAM,WAAW,CAAC;AAI/B,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,CAAC,QAAQ,CAAC,CAAC;AAEvB,MAAM,YAAY,GAAG,CAAC,YAAsC,EAAgB,EAAE,CAC5E,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrB,EAAE,EAAE,CAAC,CAAC,EAAE;IACR,IAAI,EAAE,CAAC,CAAC,IAAI;IACZ,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,KAAK;IAC/B,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CACjB,CAAC,IAAI,EAAa,EAAE,CAAC,CAAC;QACpB,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK;KACnC,CAAC,CACH;CACF,CAAC,CAAC,CAAC;AAEN,MAAM,kBAAkB,GAAG,CAAC,YAAsC,EAAU,EAAE;IAC5E,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAE1D,IAAI,eAAe;QAAE,OAAO,eAAe,CAAC,EAAE,CAAC;IAE/C,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;QACpE,OAAO,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,CAAC;IAED,OAAO,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,WAAW,GAAsD,UAAU,CAC/E,SAAS,WAAW,CAClB,EAAE,WAAW,EAAE,GAAG,SAAS,EAAqC,EAChE,GAA4B;IAE5B,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IAEpB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,UAAU,EAAqB,CAAC;IAElE,MAAM,UAAU,GAAG,kBAAkB,CAAoB,GAAG,EAAE,YAAY,CAAC,CAAC;IAE5E,MAAM,KAAK,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ActiveCases.js","sourceRoot":"","sources":["../../../src/components/GenAICoach/ActiveCases.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAG1D,OAAO,EACL,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,UAAU,EACV,OAAO,EACP,UAAU,EACV,kBAAkB,EAClB,YAAY,EACb,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,QAAQ,MAAM,6DAA6D,CAAC;AAExF,OAAO,MAAM,MAAM,WAAW,CAAC;AAI/B,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,CAAC,QAAQ,CAAC,CAAC;AAEvB,MAAM,YAAY,GAAG,CAAC,YAAsC,EAAgB,EAAE,CAC5E,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrB,EAAE,EAAE,CAAC,CAAC,EAAE;IACR,IAAI,EAAE,CAAC,CAAC,IAAI;IACZ,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,KAAK;IAC/B,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CACjB,CAAC,IAAI,EAAa,EAAE,CAAC,CAAC;QACpB,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK;KACnC,CAAC,CACH;CACF,CAAC,CAAC,CAAC;AAEN,MAAM,kBAAkB,GAAG,CAAC,YAAsC,EAAU,EAAE;IAC5E,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAE1D,IAAI,eAAe;QAAE,OAAO,eAAe,CAAC,EAAE,CAAC;IAE/C,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;QACpE,OAAO,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,CAAC;IAED,OAAO,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,WAAW,GAAsD,UAAU,CAC/E,SAAS,WAAW,CAClB,EAAE,WAAW,EAAE,GAAG,SAAS,EAAqC,EAChE,GAA4B;IAE5B,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IAEpB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,UAAU,EAAqB,CAAC;IAElE,MAAM,UAAU,GAAG,kBAAkB,CAAoB,GAAG,EAAE,YAAY,CAAC,CAAC;IAE5E,MAAM,KAAK,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC;IAChC,MAAM,aAAa,GAAG,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAE9C,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;QACrC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,8BACE,MAAC,IAAI,IACH,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,EAC3C,EAAE,EAAE,sBAAsB,KACtB,SAAS,EACb,GAAG,EAAE,UAAU,EACf,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,YAAY,mBACN,MAAM,gBACT,CAAC,CAAC,sBAAsB,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,aAE3D,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,GAAG,EAEnB,KAAK,EAEN,KAAC,KAAK,cAAE,WAAW,CAAC,MAAM,GAAS,IAC9B,EAEN,MAAM,IAAI,SAAS,IAAI,CACtB,KAAC,UAAU,IAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,YAC7E,KAAC,qBAAqB,IAAC,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,YAC9D,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;wBAC1B,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBACjD,MAAM,SAAS,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBAEtD,MAAM,eAAe,GAAqC,CAAC,CAAC,EAAE;4BAC5D,aAAa,EAAE,CAAC;4BAChB,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;wBAC/B,CAAC,CAAC;wBAEF,OAAO,CACL,MAAC,IAAI,IAAmB,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,aAChE,KAAC,oBAAoB,IAAC,OAAO,EAAC,MAAM,EAAC,OAAO,EAAE,eAAe,YAC1D,QAAQ,CAAC,OAAO,GACI,EAEvB,KAAC,sBAAsB,cACrB,KAAC,MAAM,IAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,SAAG,GACpC,KAPhB,QAAQ,CAAC,EAAE,CAQf,CACR,CAAC;oBACJ,CAAC,CAAC,GACoB,GACb,CACd,IACA,CACJ,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,WAAW,CAAC","sourcesContent":["import { useState, useCallback, forwardRef } from 'react';\nimport type { PropsWithoutRef } from 'react';\n\nimport {\n Icon,\n Count,\n Flex,\n InfoDialog,\n useI18n,\n useElement,\n useConsolidatedRef,\n registerIcon\n} from '@pega/cosmos-react-core';\nimport type { ForwardRefForwardPropsComponent } from '@pega/cosmos-react-core';\nimport * as caseIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/case.icon';\n\nimport Stages from '../Stages';\nimport type { StageProps, StepProps } from '../Stages/Stages.types';\n\nimport type { ActiveCasesProps, ActiveCaseItem } from './GenAICoach.types';\nimport {\n StyledActiveCaseButton,\n StyledActiveCasesList,\n StyledActiveCaseName,\n StyledActiveCaseStages\n} from './GenAICoach.styles';\n\nregisterIcon(caseIcon);\n\nconst toStageProps = (bannerStages: ActiveCaseItem['stages']): StageProps[] =>\n bannerStages.map(s => ({\n id: s.id,\n name: s.name,\n completed: s.completed ?? false,\n steps: s.steps?.map(\n (step): StepProps => ({\n id: step.id,\n name: step.name,\n completed: step.completed ?? false\n })\n )\n }));\n\nconst findCurrentStageId = (bannerStages: ActiveCaseItem['stages']): string => {\n const explicitCurrent = bannerStages.find(s => s.current);\n\n if (explicitCurrent) return explicitCurrent.id;\n\n if (bannerStages.length > 0 && bannerStages.every(s => s.completed)) {\n return bannerStages[bannerStages.length - 1].id;\n }\n\n return bannerStages[0]?.id ?? '';\n};\n\nconst ActiveCases: ForwardRefForwardPropsComponent<ActiveCasesProps> = forwardRef(\n function ActiveCases(\n { activeCases, ...restProps }: PropsWithoutRef<ActiveCasesProps>,\n ref: ActiveCasesProps['ref']\n ) {\n const t = useI18n();\n\n const [isOpen, setIsOpen] = useState(false);\n\n const [triggerEl, setTriggerEl] = useElement<HTMLButtonElement>();\n\n const triggerRef = useConsolidatedRef<HTMLButtonElement>(ref, setTriggerEl);\n\n const label = t('active_cases');\n const dialogHeading = t('cases_in_this_chat');\n\n const toggleDialog = useCallback(() => {\n setIsOpen(prev => !prev);\n }, []);\n\n const dismissDialog = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n return (\n <>\n <Flex\n container={{ alignItems: 'center', gap: 1 }}\n as={StyledActiveCaseButton}\n {...restProps}\n ref={triggerRef}\n type='button'\n onClick={toggleDialog}\n aria-expanded={isOpen}\n aria-label={t('active_cases_trigger', [activeCases.length])}\n >\n <Icon name='case' />\n\n {label}\n\n <Count>{activeCases.length}</Count>\n </Flex>\n\n {isOpen && triggerEl && (\n <InfoDialog heading={dialogHeading} target={triggerEl} onDismiss={dismissDialog}>\n <StyledActiveCasesList container={{ direction: 'column', gap: 4 }}>\n {activeCases.map(caseItem => {\n const stageProps = toStageProps(caseItem.stages);\n const currentId = findCurrentStageId(caseItem.stages);\n\n const handleCaseClick: ActiveCaseItem['onHeadingClick'] = e => {\n dismissDialog();\n caseItem.onHeadingClick?.(e);\n };\n\n return (\n <Flex key={caseItem.id} container={{ direction: 'column', gap: 1 }}>\n <StyledActiveCaseName variant='link' onClick={handleCaseClick}>\n {caseItem.heading}\n </StyledActiveCaseName>\n\n <StyledActiveCaseStages>\n <Stages stages={stageProps} current={currentId} readOnly />\n </StyledActiveCaseStages>\n </Flex>\n );\n })}\n </StyledActiveCasesList>\n </InfoDialog>\n )}\n </>\n );\n }\n);\n\nexport default ActiveCases;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenAICoach.styles.d.ts","sourceRoot":"","sources":["../../../src/components/GenAICoach/GenAICoach.styles.ts"],"names":[],"mappings":"AAiEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,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;;;2BApHM,CAAC;iDAsH1C,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sOAKhC,CAAC;AAIH,eAAO,MAAM,yBAAyB;aAC3B,eAAe,CAAC,SAAS,CAAC;gBACvB,eAAe,CAAC,iBAAiB,CAAC;eACnC,OAAO;mBACH,OAAO;sBACJ,OAAO;YAkI1B,CAAC;AAIF,eAAO,MAAM,sBAAsB;;;2BApPK,CAAC;iDAuQvC,CAAC;AAIH,eAAO,MAAM,qBAAqB;;;2BA3QM,CAAC;iDAuRvC,CAAC;AAIH,eAAO,MAAM,oBAAoB;;;gBAA8B,OAAO;kLA4BpE,CAAC;AAIH,eAAO,MAAM,iBAAiB;iBAA6B,OAAO;YAYjE,CAAC;AAIF,eAAO,MAAM,mBAAmB;yBAAqC,OAAO;YAY3E,CAAC;AAIF,eAAO,MAAM,6BAA6B,6NAOxC,CAAC;AAIH,eAAO,MAAM,2BAA2B;iBAA6B,OAAO;YAY3E,CAAC;AAGF,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;iBAA2B,OAAO;
|
|
1
|
+
{"version":3,"file":"GenAICoach.styles.d.ts","sourceRoot":"","sources":["../../../src/components/GenAICoach/GenAICoach.styles.ts"],"names":[],"mappings":"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"}
|
|
@@ -347,6 +347,7 @@ export const StyledMessage = styled.p(({ theme, simplified }) => {
|
|
|
347
347
|
margin-block-start: calc(0.5 * ${theme.base.spacing});
|
|
348
348
|
width: 100%;
|
|
349
349
|
min-width: 0;
|
|
350
|
+
overflow: hidden;
|
|
350
351
|
overflow-wrap: break-word;
|
|
351
352
|
|
|
352
353
|
${simplified &&
|
|
@@ -357,6 +358,12 @@ export const StyledMessage = styled.p(({ theme, simplified }) => {
|
|
|
357
358
|
${StyledEditorContainer} {
|
|
358
359
|
padding: 0;
|
|
359
360
|
|
|
361
|
+
table {
|
|
362
|
+
display: block;
|
|
363
|
+
max-width: 100%;
|
|
364
|
+
overflow-x: auto;
|
|
365
|
+
}
|
|
366
|
+
|
|
360
367
|
span {
|
|
361
368
|
animation: ${animations.reveal} 1s forwards;
|
|
362
369
|
}
|
|
@@ -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, keyframes } 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';\nimport { StyledTouchDialog } from '@pega/cosmos-react-core/lib/components/Dialog/TouchDialog.styles';\n\nimport { StyledStages } from '../Stages/Stages.styles';\n\nimport type { GenAICoachProps } from './GenAICoach.types';\nimport { isInUtilities } from './GenAICoach.utils';\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 StyledHeaderContainer = styled(Flex)(({ theme }) => {\n return css`\n border-block-end: 0.0625rem solid\n ${transparentize(0.88, theme.components.agent['foreground-color'])};\n `;\n});\n\nStyledHeaderContainer.defaultProps = defaultThemeProp;\n\nexport const StyledGenAICoachContainer = styled.div<{\n variant: GenAICoachProps['variant'];\n fullScreen: GenAICoachProps['allowFullScreen'];\n isCompact: boolean;\n isPortalAgent: boolean;\n simplifiedAgent?: 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 simplifiedAgent\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 ${simplifiedAgent\n ? css`\n --message-container-width: 40rem;\n --messages-list-margin-start: 0;\n `\n : css`\n --message-container-width: 62.5rem;\n `}\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 ${simplifiedAgent\n ? css`\n transition: height 0.6s cubic-bezier(0.4, 0, 0.6, 1);\n height: var(--content-height-in-agent, var(--content-height-in-view, 100vh));\n `\n : css`\n height: var(--content-height-in-view, 100vh);\n `}\n `}\n\n ${isCompact &&\n css`\n height: ${simplifiedAgent ? 'var(--compact-height, auto)' : '100%'};\n max-height: ${simplifiedAgent\n ? 'var(--content-height-in-agent, var(--content-height-in-view, 100vh))'\n : '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: 100%;\n min-height: 0;\n border-radius: 0;\n `}\n\n ${StyledErrorState} {\n ${StyledText} {\n color: ${agentForegroundColor};\n }\n }\n `;\n }\n);\n\nStyledGenAICoachContainer.defaultProps = defaultThemeProp;\n\nexport const StyledGenAIOptionsMenu = styled(MenuButton)(({\n theme: {\n base: { 'font-size': fontSize, 'font-scale': fontScale, 'font-weight': fontWeight },\n components: {\n agent: { 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, animation }\n }\n}) => {\n const systemFontSize = calculateFontSize(fontSize, fontScale).xs;\n return css`\n @keyframes disclaimer-fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 0.7;\n }\n }\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 animation: disclaimer-fade-in ${animation.speed} ${animation.timing.ease} both;\n @media (prefers-reduced-motion: reduce) {\n animation-duration: 1ms;\n }\n `;\n});\n\nStyledDisclaimerText.defaultProps = defaultThemeProp;\n\nexport const StyledFlexWrapper = styled.div<{ isExpanded?: boolean }>(\n ({ isExpanded }) => css`\n height: ${isExpanded ? 'auto' : '100%'};\n overflow-y: auto;\n position: relative;\n\n ${isExpanded &&\n css`\n flex: 1 1 0;\n min-height: 0;\n `}\n `\n);\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: var(--message-container-width);\n }\n `;\n});\n\nStyledInitialMessageContainer.defaultProps = defaultThemeProp;\n\nexport const StyledBannerSalutationBlock = styled.div<{ isExpanded?: boolean }>(\n ({ isExpanded }) => css`\n transition:\n opacity 0.45s ease,\n transform 0.45s ease;\n ${isExpanded &&\n css`\n opacity: 0;\n transform: translateY(-1.5rem);\n pointer-events: none;\n `}\n `\n);\nStyledBannerSalutationBlock.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: var(--message-container-width);\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<{ simplified?: boolean }>(({ theme, simplified }) => {\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 ${simplified &&\n css`\n padding-inline-start: calc(2.5rem + ${theme.base.spacing});\n `}\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 StyledMessageSender = styled(Text)(({\n theme: {\n base: { 'font-size': fontSize, 'font-scale': fontScale, 'font-weight': fontWeight }\n }\n}) => {\n return css`\n font-size: ${calculateFontSize(fontSize, fontScale).xl};\n font-weight: ${fontWeight['semi-bold']};\n opacity: 0.7;\n `;\n});\n\nStyledMessageSender.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: { spacing, 'font-size': fontSize, 'font-scale': fontScale, 'font-weight': fontWeight },\n components: {\n agent: { 'foreground-color': agentForegroundColor, background: agentBackground }\n }\n }\n }) => {\n const systemFontSize = calculateFontSize(fontSize, fontScale).xs;\n const foregroundColorForSystemMessage = calculateForegroundColor(\n agentBackground,\n agentForegroundColor\n );\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: ${foregroundColorForSystemMessage};\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 ${foregroundColorForSystemMessage};\n opacity: 0.7;\n }\n `;\n }\n);\n\nStyledSystemMessage.defaultProps = defaultThemeProp;\n\nexport const StyledMessagesList = styled.ul<{ simplified?: boolean }>(\n ({\n theme: {\n base: { shadow, spacing }\n },\n simplified\n }) => {\n return css`\n padding-block-start: ${simplified ? `calc(4 * ${spacing})` : spacing};\n list-style-type: none;\n align-self: center;\n max-width: var(--message-container-width);\n width: 100%;\n margin-block-start: var(--messages-list-margin-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.components.agent.history.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-visible {\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: var(--message-container-width);\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)<{ simplified?: boolean }>(({\n theme: { components, base },\n simplified\n}) => {\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 ${simplified &&\n css`\n padding: calc(2 * ${base.spacing});\n `}\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)<{ simplified?: boolean }>(({\n theme: {\n base: { 'border-radius': baseBorderRadius },\n components: {\n 'form-control': { 'border-radius': formControlBorderRadius }\n }\n },\n simplified\n}) => {\n const radiusMultiplier = simplified ? 0.5 : 1;\n return css`\n border-radius: calc(${baseBorderRadius} * ${formControlBorderRadius} * ${radiusMultiplier});\n margin-inline-start: auto;\n `;\n});\n\nStyledSendButton.defaultProps = defaultThemeProp;\n\nexport const StyledStopGeneratingButton = styled(Button)<{ simplified?: boolean }>(({\n theme: {\n base: { 'border-radius': baseBorderRadius },\n components: {\n 'form-control': { 'border-radius': formControlBorderRadius }\n }\n },\n simplified\n}) => {\n const radiusMultiplier = simplified ? 0.5 : 1;\n return css`\n border-radius: calc(${baseBorderRadius} * ${formControlBorderRadius} * ${radiusMultiplier});\n margin-inline-start: auto;\n `;\n});\n\nStyledStopGeneratingButton.defaultProps = defaultThemeProp;\n\nexport const StyledInitialMessageGrid = styled.div`\n max-width: var(--message-container-width);\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, 'foreground-color': avatarForegroundColor }\n }\n }\n }\n }\n}) => {\n return css`\n background: ${avatarBackground};\n color: ${avatarForegroundColor};\n `;\n});\n\nStyledGenAIAvatar.defaultProps = defaultThemeProp;\n\nexport const StyledGenAIFooter = styled.div`\n width: 100%;\n max-width: var(--message-container-width);\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 --progress-border-angle {\n syntax: \"<angle>\";\n inherits: false;\n initial-value: 0deg;\n }\n`;\n\nconst progressBorderSpin = keyframes`\n to { --progress-border-angle: 360deg; }\n`;\n\nexport const StyledProgressContainer = styled.div(({ theme }) => {\n const aiColor = isSolidColor(theme.components.agent.ai)\n ? theme.components.agent.ai\n : theme.base.colors.purple.dark;\n const aiTransparent = transparentize(0.85, aiColor);\n const borderWidth = '0.0625rem';\n\n return css`\n position: relative;\n border-radius: calc(2 * ${theme.base.spacing});\n border-start-start-radius: calc(0.5 * ${theme.base.spacing});\n width: fit-content;\n\n &::before {\n content: '';\n position: absolute;\n inset: -${borderWidth};\n border-radius: calc(1.875 * ${theme.base.spacing} + ${borderWidth});\n border-start-start-radius: calc(0.375 * ${theme.base.spacing} + ${borderWidth});\n padding: ${borderWidth};\n background: conic-gradient(\n from var(--progress-border-angle, 0deg) in oklab,\n ${aiTransparent} 0%,\n ${aiTransparent} 10%,\n ${aiColor} 50%,\n ${aiTransparent} 90%,\n ${aiTransparent} 100%\n );\n -webkit-mask:\n linear-gradient(#000000 0 0) content-box,\n linear-gradient(#000000 0 0);\n -webkit-mask-composite: xor;\n mask:\n linear-gradient(#000000 0 0) content-box,\n linear-gradient(#000000 0 0);\n mask-composite: exclude;\n pointer-events: none;\n animation: ${progressBorderSpin} 1.25s linear infinite;\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.components.agent.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 min-height: calc(100dvh - var(--appshell-total-offset, 0rem));\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 position: sticky;\n top: var(--appshell-top-offset, 0);\n height: calc(100dvh - var(--appshell-total-offset, 0rem));\n align-self: flex-start;\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 flex: 1 1 0%;\n min-width: 0;\n\n &[inert] {\n display: none;\n }\n`;\n\nStyledPortalMainRegion.defaultProps = defaultThemeProp;\n\nexport const StyledPortalSeparator = styled.div`\n position: sticky;\n top: var(--appshell-top-offset, 0);\n align-self: flex-start;\n flex-shrink: 0;\n height: calc(100dvh - var(--appshell-total-offset, 0rem));\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 &:not(${StyledTouchDialog}) {\n width: ${theme.base['content-width'].sm};\n max-height: 80vh;\n }\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)<{ simplified?: boolean }>(({ theme, simplified }) => {\n return css`\n text-align: center;\n overflow-wrap: break-word;\n word-break: break-word;\n font-size: ${simplified\n ? 'clamp(2.5rem, 2rem + 1vw, 3.5rem)'\n : '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 StyledSubHeading = styled(Text)(({ theme }) => {\n const { xxl } = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n return css`\n text-align: center;\n overflow-wrap: break-word;\n word-break: break-word;\n font-size: ${xxl};\n `;\n});\n\nStyledSubHeading.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\nexport const StyledSelectionCardGrid = styled.div<{ flexibleImages?: boolean }>(\n ({ theme, flexibleImages }) => css`\n overflow-x: auto;\n padding-block: calc(0.5 * ${theme.base.spacing});\n\n > ${StyledSelectionCard} {\n flex: 0 0 auto;\n min-width: ${theme.base['content-width'].xs};\n max-width: ${theme.base['content-width'].sm};\n\n ${flexibleImages &&\n css`\n grid-template-rows: minmax(2.5rem, 8.25rem) auto;\n `}\n }\n `\n);\n\nStyledSelectionCardGrid.defaultProps = defaultThemeProp;\n\nexport const StyledImageChoiceNavBar = styled(Flex)(({ theme }) => {\n return css`\n padding-block-start: calc(0.5 * ${theme.base.spacing});\n `;\n});\n\nStyledImageChoiceNavBar.defaultProps = defaultThemeProp;\n\nexport const StyledSelectionCardImageNumber = styled.span(({ theme }) => {\n return css`\n font-weight: ${theme.base['font-weight'].bold};\n `;\n});\n\nStyledSelectionCardImageNumber.defaultProps = defaultThemeProp;\n\nexport const StyledSelectionCardImageName = styled.span(({ theme }) => {\n return css`\n font-weight: ${theme.base['font-weight'].normal};\n font-style: italic;\n `;\n});\n\nStyledSelectionCardImageName.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, keyframes } 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';\nimport { StyledTouchDialog } from '@pega/cosmos-react-core/lib/components/Dialog/TouchDialog.styles';\n\nimport { StyledStages } from '../Stages/Stages.styles';\n\nimport type { GenAICoachProps } from './GenAICoach.types';\nimport { isInUtilities } from './GenAICoach.utils';\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 StyledHeaderContainer = styled(Flex)(({ theme }) => {\n return css`\n border-block-end: 0.0625rem solid\n ${transparentize(0.88, theme.components.agent['foreground-color'])};\n `;\n});\n\nStyledHeaderContainer.defaultProps = defaultThemeProp;\n\nexport const StyledGenAICoachContainer = styled.div<{\n variant: GenAICoachProps['variant'];\n fullScreen: GenAICoachProps['allowFullScreen'];\n isCompact: boolean;\n isPortalAgent: boolean;\n simplifiedAgent?: 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 simplifiedAgent\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 ${simplifiedAgent\n ? css`\n --message-container-width: 40rem;\n --messages-list-margin-start: 0;\n `\n : css`\n --message-container-width: 62.5rem;\n `}\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 ${simplifiedAgent\n ? css`\n transition: height 0.6s cubic-bezier(0.4, 0, 0.6, 1);\n height: var(--content-height-in-agent, var(--content-height-in-view, 100vh));\n `\n : css`\n height: var(--content-height-in-view, 100vh);\n `}\n `}\n\n ${isCompact &&\n css`\n height: ${simplifiedAgent ? 'var(--compact-height, auto)' : '100%'};\n max-height: ${simplifiedAgent\n ? 'var(--content-height-in-agent, var(--content-height-in-view, 100vh))'\n : '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: 100%;\n min-height: 0;\n border-radius: 0;\n `}\n\n ${StyledErrorState} {\n ${StyledText} {\n color: ${agentForegroundColor};\n }\n }\n `;\n }\n);\n\nStyledGenAICoachContainer.defaultProps = defaultThemeProp;\n\nexport const StyledGenAIOptionsMenu = styled(MenuButton)(({\n theme: {\n base: { 'font-size': fontSize, 'font-scale': fontScale, 'font-weight': fontWeight },\n components: {\n agent: { 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, animation }\n }\n}) => {\n const systemFontSize = calculateFontSize(fontSize, fontScale).xs;\n return css`\n @keyframes disclaimer-fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 0.7;\n }\n }\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 animation: disclaimer-fade-in ${animation.speed} ${animation.timing.ease} both;\n @media (prefers-reduced-motion: reduce) {\n animation-duration: 1ms;\n }\n `;\n});\n\nStyledDisclaimerText.defaultProps = defaultThemeProp;\n\nexport const StyledFlexWrapper = styled.div<{ isExpanded?: boolean }>(\n ({ isExpanded }) => css`\n height: ${isExpanded ? 'auto' : '100%'};\n overflow-y: auto;\n position: relative;\n\n ${isExpanded &&\n css`\n flex: 1 1 0;\n min-height: 0;\n `}\n `\n);\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: var(--message-container-width);\n }\n `;\n});\n\nStyledInitialMessageContainer.defaultProps = defaultThemeProp;\n\nexport const StyledBannerSalutationBlock = styled.div<{ isExpanded?: boolean }>(\n ({ isExpanded }) => css`\n transition:\n opacity 0.45s ease,\n transform 0.45s ease;\n ${isExpanded &&\n css`\n opacity: 0;\n transform: translateY(-1.5rem);\n pointer-events: none;\n `}\n `\n);\nStyledBannerSalutationBlock.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: var(--message-container-width);\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<{ simplified?: boolean }>(({ theme, simplified }) => {\n return css`\n margin-block-start: calc(0.5 * ${theme.base.spacing});\n width: 100%;\n min-width: 0;\n overflow: hidden;\n overflow-wrap: break-word;\n\n ${simplified &&\n css`\n padding-inline-start: calc(2.5rem + ${theme.base.spacing});\n `}\n\n ${StyledEditorContainer} {\n padding: 0;\n\n table {\n display: block;\n max-width: 100%;\n overflow-x: auto;\n }\n\n span {\n animation: ${animations.reveal} 1s forwards;\n }\n }\n `;\n});\n\nStyledMessage.defaultProps = defaultThemeProp;\n\nexport const StyledMessageSender = styled(Text)(({\n theme: {\n base: { 'font-size': fontSize, 'font-scale': fontScale, 'font-weight': fontWeight }\n }\n}) => {\n return css`\n font-size: ${calculateFontSize(fontSize, fontScale).xl};\n font-weight: ${fontWeight['semi-bold']};\n opacity: 0.7;\n `;\n});\n\nStyledMessageSender.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: { spacing, 'font-size': fontSize, 'font-scale': fontScale, 'font-weight': fontWeight },\n components: {\n agent: { 'foreground-color': agentForegroundColor, background: agentBackground }\n }\n }\n }) => {\n const systemFontSize = calculateFontSize(fontSize, fontScale).xs;\n const foregroundColorForSystemMessage = calculateForegroundColor(\n agentBackground,\n agentForegroundColor\n );\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: ${foregroundColorForSystemMessage};\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 ${foregroundColorForSystemMessage};\n opacity: 0.7;\n }\n `;\n }\n);\n\nStyledSystemMessage.defaultProps = defaultThemeProp;\n\nexport const StyledMessagesList = styled.ul<{ simplified?: boolean }>(\n ({\n theme: {\n base: { shadow, spacing }\n },\n simplified\n }) => {\n return css`\n padding-block-start: ${simplified ? `calc(4 * ${spacing})` : spacing};\n list-style-type: none;\n align-self: center;\n max-width: var(--message-container-width);\n width: 100%;\n margin-block-start: var(--messages-list-margin-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.components.agent.history.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-visible {\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: var(--message-container-width);\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)<{ simplified?: boolean }>(({\n theme: { components, base },\n simplified\n}) => {\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 ${simplified &&\n css`\n padding: calc(2 * ${base.spacing});\n `}\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)<{ simplified?: boolean }>(({\n theme: {\n base: { 'border-radius': baseBorderRadius },\n components: {\n 'form-control': { 'border-radius': formControlBorderRadius }\n }\n },\n simplified\n}) => {\n const radiusMultiplier = simplified ? 0.5 : 1;\n return css`\n border-radius: calc(${baseBorderRadius} * ${formControlBorderRadius} * ${radiusMultiplier});\n margin-inline-start: auto;\n `;\n});\n\nStyledSendButton.defaultProps = defaultThemeProp;\n\nexport const StyledStopGeneratingButton = styled(Button)<{ simplified?: boolean }>(({\n theme: {\n base: { 'border-radius': baseBorderRadius },\n components: {\n 'form-control': { 'border-radius': formControlBorderRadius }\n }\n },\n simplified\n}) => {\n const radiusMultiplier = simplified ? 0.5 : 1;\n return css`\n border-radius: calc(${baseBorderRadius} * ${formControlBorderRadius} * ${radiusMultiplier});\n margin-inline-start: auto;\n `;\n});\n\nStyledStopGeneratingButton.defaultProps = defaultThemeProp;\n\nexport const StyledInitialMessageGrid = styled.div`\n max-width: var(--message-container-width);\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, 'foreground-color': avatarForegroundColor }\n }\n }\n }\n }\n}) => {\n return css`\n background: ${avatarBackground};\n color: ${avatarForegroundColor};\n `;\n});\n\nStyledGenAIAvatar.defaultProps = defaultThemeProp;\n\nexport const StyledGenAIFooter = styled.div`\n width: 100%;\n max-width: var(--message-container-width);\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 --progress-border-angle {\n syntax: \"<angle>\";\n inherits: false;\n initial-value: 0deg;\n }\n`;\n\nconst progressBorderSpin = keyframes`\n to { --progress-border-angle: 360deg; }\n`;\n\nexport const StyledProgressContainer = styled.div(({ theme }) => {\n const aiColor = isSolidColor(theme.components.agent.ai)\n ? theme.components.agent.ai\n : theme.base.colors.purple.dark;\n const aiTransparent = transparentize(0.85, aiColor);\n const borderWidth = '0.0625rem';\n\n return css`\n position: relative;\n border-radius: calc(2 * ${theme.base.spacing});\n border-start-start-radius: calc(0.5 * ${theme.base.spacing});\n width: fit-content;\n\n &::before {\n content: '';\n position: absolute;\n inset: -${borderWidth};\n border-radius: calc(1.875 * ${theme.base.spacing} + ${borderWidth});\n border-start-start-radius: calc(0.375 * ${theme.base.spacing} + ${borderWidth});\n padding: ${borderWidth};\n background: conic-gradient(\n from var(--progress-border-angle, 0deg) in oklab,\n ${aiTransparent} 0%,\n ${aiTransparent} 10%,\n ${aiColor} 50%,\n ${aiTransparent} 90%,\n ${aiTransparent} 100%\n );\n -webkit-mask:\n linear-gradient(#000000 0 0) content-box,\n linear-gradient(#000000 0 0);\n -webkit-mask-composite: xor;\n mask:\n linear-gradient(#000000 0 0) content-box,\n linear-gradient(#000000 0 0);\n mask-composite: exclude;\n pointer-events: none;\n animation: ${progressBorderSpin} 1.25s linear infinite;\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.components.agent.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 min-height: calc(100dvh - var(--appshell-total-offset, 0rem));\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 position: sticky;\n top: var(--appshell-top-offset, 0);\n height: calc(100dvh - var(--appshell-total-offset, 0rem));\n align-self: flex-start;\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 flex: 1 1 0%;\n min-width: 0;\n\n &[inert] {\n display: none;\n }\n`;\n\nStyledPortalMainRegion.defaultProps = defaultThemeProp;\n\nexport const StyledPortalSeparator = styled.div`\n position: sticky;\n top: var(--appshell-top-offset, 0);\n align-self: flex-start;\n flex-shrink: 0;\n height: calc(100dvh - var(--appshell-total-offset, 0rem));\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 &:not(${StyledTouchDialog}) {\n width: ${theme.base['content-width'].sm};\n max-height: 80vh;\n }\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)<{ simplified?: boolean }>(({ theme, simplified }) => {\n return css`\n text-align: center;\n overflow-wrap: break-word;\n word-break: break-word;\n font-size: ${simplified\n ? 'clamp(2.5rem, 2rem + 1vw, 3.5rem)'\n : '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 StyledSubHeading = styled(Text)(({ theme }) => {\n const { xxl } = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n return css`\n text-align: center;\n overflow-wrap: break-word;\n word-break: break-word;\n font-size: ${xxl};\n `;\n});\n\nStyledSubHeading.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\nexport const StyledSelectionCardGrid = styled.div<{ flexibleImages?: boolean }>(\n ({ theme, flexibleImages }) => css`\n overflow-x: auto;\n padding-block: calc(0.5 * ${theme.base.spacing});\n\n > ${StyledSelectionCard} {\n flex: 0 0 auto;\n min-width: ${theme.base['content-width'].xs};\n max-width: ${theme.base['content-width'].sm};\n\n ${flexibleImages &&\n css`\n grid-template-rows: minmax(2.5rem, 8.25rem) auto;\n `}\n }\n `\n);\n\nStyledSelectionCardGrid.defaultProps = defaultThemeProp;\n\nexport const StyledImageChoiceNavBar = styled(Flex)(({ theme }) => {\n return css`\n padding-block-start: calc(0.5 * ${theme.base.spacing});\n `;\n});\n\nStyledImageChoiceNavBar.defaultProps = defaultThemeProp;\n\nexport const StyledSelectionCardImageNumber = styled.span(({ theme }) => {\n return css`\n font-weight: ${theme.base['font-weight'].bold};\n `;\n});\n\nStyledSelectionCardImageNumber.defaultProps = defaultThemeProp;\n\nexport const StyledSelectionCardImageName = styled.span(({ theme }) => {\n return css`\n font-weight: ${theme.base['font-weight'].normal};\n font-style: italic;\n `;\n});\n\nStyledSelectionCardImageName.defaultProps = defaultThemeProp;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stages.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Stages/Stages.styles.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Stages.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Stages/Stages.styles.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAiJnD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,6NAmF9B,CAAC;AAIH;;;;GAIG;AACH,eAAO,MAAM,YAAY;aAAwB,YAAY;YAoD3D,CAAC;AAIH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,6NA6B1B,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,gBAAgB;eAA4B,OAAO;YAe9D,CAAC;AAsDH;;;GAGG;AACH,eAAO,MAAM,WAAW;YACd,WAAW,GAAG,SAAS,GAAG,SAAS;eAChC,OAAO;aACT,YAAY;YA6EtB,CAAC;AAIF;;GAEG;AACH,eAAO,MAAM,uBAAuB,kaAiBlC,CAAC;AAIH;;GAEG;AACH,eAAO,MAAM,eAAe;;;gBAA8B,OAAO;kLAIhE,CAAC;AAwZF;;;GAGG;AACH,eAAO,MAAM,oBAAoB;eACpB,OAAO;aACT,YAAY;YAyDtB,CAAC;AAIF;;GAEG;AACH,eAAO,MAAM,oBAAoB,mOAS/B,CAAC;AAIH;;GAEG;AACH,eAAO,MAAM,UAAU;eAA0B,OAAO;YAoBtD,CAAC;AAIH;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;oMAMhC,CAAC;AAIH;;GAEG;AACH,eAAO,MAAM,kBAAkB,6NAI7B,CAAC;AAaH,eAAO,MAAM,oBAAoB,+NAS/B,CAAC;AAIH;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B;YAChC,WAAW,GAAG,SAAS,GAAG,SAAS;mBAC5B,OAAO;eACX,OAAO;YA8ElB,CAAC;AAIH,eAAO,MAAM,qBAAqB;YACxB,WAAW,GAAG,SAAS,GAAG,SAAS;eAChC,OAAO;YAoHlB,CAAC;AAIH;;;GAGG;AACH,eAAO,MAAM,uBAAuB,yOAEnC,CAAC"}
|
|
@@ -64,8 +64,15 @@ const chevronConfig = {
|
|
|
64
64
|
// Equal to `width` so the point extends exactly one chevron-width beyond the stage boundary.
|
|
65
65
|
offsetRight: 'calc(1.445 * var(--chevron-spacing))',
|
|
66
66
|
// Coarse-pointer equivalents of offsetLeft/offsetRight, scaled to match coarseWidth/coarseSquareSize.
|
|
67
|
-
coarseOffsetLeft:
|
|
68
|
-
|
|
67
|
+
// coarseOffsetLeft must satisfy: coarseSquareSize = 2 × coarseWidth + coarseOffsetLeft
|
|
68
|
+
// (5 = 2 × 1.797 + 1.406) so that ::before and ::after co-locate on coarse devices.
|
|
69
|
+
coarseOffsetLeft: 'calc(1.406 * var(--chevron-spacing))',
|
|
70
|
+
coarseOffsetRight: 'calc(1.797 * var(--chevron-spacing))',
|
|
71
|
+
// Pre-computed flat positions for ::before notch and ::after point.
|
|
72
|
+
notchInsetStart: 'calc(-2.305 * var(--chevron-spacing))',
|
|
73
|
+
// 3.203 = exact alignment (coarseSquareSize - coarseWidth); slightly overdone default clears sub-pixel rounding on 3× displays.
|
|
74
|
+
coarseNotchInsetStart: 'calc(-1 * var(--stages-coarse-notch-correction) * var(--chevron-spacing))',
|
|
75
|
+
pointInsetEnd: '0'
|
|
69
76
|
};
|
|
70
77
|
// === Chevron Helpers ===
|
|
71
78
|
// After team discussion we decided to use logical properties throughout — `inset-block-start`
|
|
@@ -95,11 +102,11 @@ const createChevronBaseStyles = (config, borderThicknessVar) => css `
|
|
|
95
102
|
}
|
|
96
103
|
|
|
97
104
|
&:not(:nth-of-type(-n + 2))::before {
|
|
98
|
-
inset-inline-start:
|
|
105
|
+
inset-inline-start: ${config.notchInsetStart};
|
|
99
106
|
}
|
|
100
107
|
|
|
101
108
|
&:not(:nth-last-of-type(-n + 2))::after {
|
|
102
|
-
inset-inline-end:
|
|
109
|
+
inset-inline-end: ${config.pointInsetEnd};
|
|
103
110
|
}
|
|
104
111
|
`;
|
|
105
112
|
const createChevronInteractiveStates = (config, borderThicknessVar, includeHover = true) => css `
|
|
@@ -255,6 +262,8 @@ export const StyledStages = styled.ol(({ theme, variant }) => {
|
|
|
255
262
|
}
|
|
256
263
|
|
|
257
264
|
@media (pointer: coarse) {
|
|
265
|
+
/* 3.203 = exact alignment; slightly overdone default to clear sub-pixel rounding on 3× displays */
|
|
266
|
+
--stages-coarse-notch-correction: 3.35;
|
|
258
267
|
scrollbar-width: none;
|
|
259
268
|
|
|
260
269
|
&::-webkit-scrollbar {
|
|
@@ -518,7 +527,7 @@ const stageContainerChevronStyles = (theme, readOnly) => {
|
|
|
518
527
|
}
|
|
519
528
|
|
|
520
529
|
/* First stage: no left notch, extended width to cover the full left edge */
|
|
521
|
-
&:nth-of-type(2) > ${StyledStage} {
|
|
530
|
+
&:nth-of-type(2):not(:nth-last-of-type(2)) > ${StyledStage} {
|
|
522
531
|
--stage-chevron-width: ${chevronConfig.width};
|
|
523
532
|
width: calc(100% + (2 * var(--stage-chevron-width)));
|
|
524
533
|
padding-inline-start: calc(var(--chevron-spacing));
|
|
@@ -556,7 +565,7 @@ const stageContainerChevronStyles = (theme, readOnly) => {
|
|
|
556
565
|
}
|
|
557
566
|
|
|
558
567
|
/* Last stage: no right point */
|
|
559
|
-
&:nth-last-of-type(2) > ${StyledStage} {
|
|
568
|
+
&:nth-last-of-type(2):not(:nth-of-type(2)) > ${StyledStage} {
|
|
560
569
|
--stage-chevron-width: ${chevronConfig.width};
|
|
561
570
|
padding-inline-end: 0;
|
|
562
571
|
width: 100%;
|
|
@@ -593,14 +602,42 @@ const stageContainerChevronStyles = (theme, readOnly) => {
|
|
|
593
602
|
}
|
|
594
603
|
|
|
595
604
|
/* RTL: flip clip-paths for first and last stages */
|
|
596
|
-
[dir='rtl'] &:nth-of-type(2) > ${StyledStage} {
|
|
605
|
+
[dir='rtl'] &:nth-of-type(2):not(:nth-last-of-type(2)) > ${StyledStage} {
|
|
597
606
|
${stageClipPath(true, false, true)}
|
|
598
607
|
}
|
|
599
608
|
|
|
600
|
-
[dir='rtl'] &:nth-last-of-type(2) > ${StyledStage} {
|
|
609
|
+
[dir='rtl'] &:nth-last-of-type(2):not(:nth-of-type(2)) > ${StyledStage} {
|
|
601
610
|
${stageClipPath(false, true, true)}
|
|
602
611
|
}
|
|
603
612
|
|
|
613
|
+
/* Single stage: plain rectangle — no clip-path notch, inset shadows on both sides */
|
|
614
|
+
&:nth-of-type(2):nth-last-of-type(2) > ${StyledStage} {
|
|
615
|
+
--stage-chevron-width: ${chevronConfig.width};
|
|
616
|
+
clip-path: none;
|
|
617
|
+
padding-inline-start: calc(var(--chevron-spacing));
|
|
618
|
+
|
|
619
|
+
${includeHover &&
|
|
620
|
+
css `
|
|
621
|
+
&:hover {
|
|
622
|
+
box-shadow:
|
|
623
|
+
inset calc(2 * var(--chevron-border-thickness)) 0 0 ${theme.base.palette['border-line']},
|
|
624
|
+
inset calc(-2 * var(--chevron-border-thickness)) 0 0
|
|
625
|
+
${theme.base.palette['border-line']};
|
|
626
|
+
}
|
|
627
|
+
`}
|
|
628
|
+
|
|
629
|
+
&:focus-visible,
|
|
630
|
+
&:active {
|
|
631
|
+
box-shadow:
|
|
632
|
+
inset calc(2 * var(--chevron-border-thickness)) 0 0 ${theme.base.palette.interactive},
|
|
633
|
+
inset calc(-2 * var(--chevron-border-thickness)) 0 0 ${theme.base.palette.interactive};
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
@media (pointer: coarse) {
|
|
637
|
+
--stage-chevron-width: ${chevronConfig.coarseWidth};
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
|
|
604
641
|
@media (pointer: coarse) {
|
|
605
642
|
margin-inline-start: calc(-1 * ${chevronConfig.coarseWidth});
|
|
606
643
|
|
|
@@ -609,18 +646,16 @@ const stageContainerChevronStyles = (theme, readOnly) => {
|
|
|
609
646
|
inset-block-start: calc(50% - ${chevronConfig.coarseSquareSize} / 2);
|
|
610
647
|
width: ${chevronConfig.coarseSquareSize};
|
|
611
648
|
height: ${chevronConfig.coarseSquareSize};
|
|
649
|
+
border-inline-end-width: calc(2 * var(--chevron-border-thickness));
|
|
650
|
+
border-block-start-width: calc(2 * var(--chevron-border-thickness));
|
|
612
651
|
}
|
|
613
652
|
|
|
614
653
|
&:not(:nth-of-type(-n + 2))::before {
|
|
615
|
-
inset-inline-start:
|
|
616
|
-
-1 * ${chevronConfig.coarseWidth} - ${chevronConfig.coarseOffsetLeft}
|
|
617
|
-
);
|
|
654
|
+
inset-inline-start: ${chevronConfig.coarseNotchInsetStart};
|
|
618
655
|
}
|
|
619
656
|
|
|
620
657
|
&:not(:nth-last-of-type(-n + 2))::after {
|
|
621
|
-
inset-inline-end:
|
|
622
|
-
-1 * ${chevronConfig.coarseWidth} + ${chevronConfig.coarseOffsetRight}
|
|
623
|
-
);
|
|
658
|
+
inset-inline-end: 0;
|
|
624
659
|
}
|
|
625
660
|
}
|
|
626
661
|
`;
|
|
@@ -702,7 +737,7 @@ const stageContainerSegmentedStyles = (theme, readOnly) => {
|
|
|
702
737
|
}
|
|
703
738
|
|
|
704
739
|
/* First stage (no inline-start cut): flat left edge + inset shadow edge indicator */
|
|
705
|
-
&:nth-of-type(2) > ${StyledStage} {
|
|
740
|
+
&:nth-of-type(2):not(:nth-last-of-type(2)) > ${StyledStage} {
|
|
706
741
|
${segmentedClipPath(false, true)}
|
|
707
742
|
|
|
708
743
|
${includeHover &&
|
|
@@ -730,7 +765,7 @@ const stageContainerSegmentedStyles = (theme, readOnly) => {
|
|
|
730
765
|
}
|
|
731
766
|
|
|
732
767
|
/* Last stage (no inline-end cut): flat right edge + inset shadow edge indicator */
|
|
733
|
-
&:nth-last-of-type(2) > ${StyledStage} {
|
|
768
|
+
&:nth-last-of-type(2):not(:nth-of-type(2)) > ${StyledStage} {
|
|
734
769
|
${segmentedClipPath(true, false)}
|
|
735
770
|
|
|
736
771
|
${includeHover &&
|
|
@@ -758,14 +793,38 @@ const stageContainerSegmentedStyles = (theme, readOnly) => {
|
|
|
758
793
|
}
|
|
759
794
|
|
|
760
795
|
/* RTL: flip clip-paths for first and last stage buttons */
|
|
761
|
-
[dir='rtl'] &:nth-of-type(2) > ${StyledStage} {
|
|
796
|
+
[dir='rtl'] &:nth-of-type(2):not(:nth-last-of-type(2)) > ${StyledStage} {
|
|
762
797
|
${segmentedClipPath(true, false, true)}
|
|
763
798
|
}
|
|
764
799
|
|
|
765
|
-
[dir='rtl'] &:nth-last-of-type(2) > ${StyledStage} {
|
|
800
|
+
[dir='rtl'] &:nth-last-of-type(2):not(:nth-of-type(2)) > ${StyledStage} {
|
|
766
801
|
${segmentedClipPath(false, true, true)}
|
|
767
802
|
}
|
|
768
803
|
|
|
804
|
+
/* Single stage: plain rectangle — no diagonal cuts, inset shadows on both sides */
|
|
805
|
+
&:nth-of-type(2):nth-last-of-type(2) > ${StyledStage} {
|
|
806
|
+
clip-path: none;
|
|
807
|
+
padding-inline-start: calc(var(--chevron-spacing));
|
|
808
|
+
padding-inline-end: calc(var(--chevron-spacing));
|
|
809
|
+
|
|
810
|
+
${includeHover &&
|
|
811
|
+
css `
|
|
812
|
+
&:hover {
|
|
813
|
+
box-shadow:
|
|
814
|
+
inset var(--segmented-border-thickness) 0 0 ${theme.base.palette['border-line']},
|
|
815
|
+
inset calc(-1 * var(--segmented-border-thickness)) 0 0
|
|
816
|
+
${theme.base.palette['border-line']};
|
|
817
|
+
}
|
|
818
|
+
`}
|
|
819
|
+
|
|
820
|
+
&:focus-visible,
|
|
821
|
+
&:active {
|
|
822
|
+
box-shadow:
|
|
823
|
+
inset var(--segmented-border-thickness) 0 0 ${theme.base.palette.interactive},
|
|
824
|
+
inset calc(-1 * var(--segmented-border-thickness)) 0 0 ${theme.base.palette.interactive};
|
|
825
|
+
}
|
|
826
|
+
}
|
|
827
|
+
|
|
769
828
|
/* RTL: mirror the pseudo clip-paths.
|
|
770
829
|
* In LTR the strip goes top-right → bottom-left (polygon A 0%, A+B 0%, B 100%, 0% 100%).
|
|
771
830
|
* In RTL the pseudo is positioned at the opposite physical edge via logical inset properties,
|
|
@@ -824,16 +883,21 @@ export const StyledStageContainer = styled.li(({ theme, theme: { components: { c
|
|
|
824
883
|
`}
|
|
825
884
|
|
|
826
885
|
/* Corner radii are shared across all shape variants */
|
|
827
|
-
&:nth-of-type(2) > ${StyledStage} {
|
|
886
|
+
&:nth-of-type(2):not(:nth-last-of-type(2)) > ${StyledStage} {
|
|
828
887
|
border-start-start-radius: ${borderRadius};
|
|
829
888
|
border-end-start-radius: ${borderRadius};
|
|
830
889
|
}
|
|
831
890
|
|
|
832
|
-
&:nth-last-of-type(2) > ${StyledStage} {
|
|
891
|
+
&:nth-last-of-type(2):not(:nth-of-type(2)) > ${StyledStage} {
|
|
833
892
|
border-start-end-radius: ${borderRadius};
|
|
834
893
|
border-end-end-radius: ${borderRadius};
|
|
835
894
|
}
|
|
836
895
|
|
|
896
|
+
&:nth-of-type(2):nth-last-of-type(2) > ${StyledStage} {
|
|
897
|
+
border-radius: ${borderRadius};
|
|
898
|
+
width: 100%;
|
|
899
|
+
}
|
|
900
|
+
|
|
837
901
|
${stageContainerVariants[shape](theme, readOnly)}
|
|
838
902
|
`;
|
|
839
903
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stages.styles.js","sourceRoot":"","sources":["../../../src/components/Stages/Stages.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import styled, { css, keyframes } from 'styled-components';\nimport type { DefaultTheme } from 'styled-components';\nimport { transparentize, darken } from 'polished';\n\nimport {\n calculateFontSize,\n DateTimeDisplay,\n defaultThemeProp,\n Icon,\n Text,\n StyledIcon,\n calculateForegroundColor,\n tryCatch\n} from '@pega/cosmos-react-core';\n\nimport type { StageVariant } from './Stages.types';\n\nconst stageClipPath = (leftNotch: boolean, rightPoint: boolean, mirrored = false): string => {\n if (mirrored) {\n // RTL: mirror the LTR clip-path polygon\n const points = ['100% 0', '0 0'];\n if (leftNotch) {\n points.push('var(--stage-chevron-width) 0', '0 50%', 'var(--stage-chevron-width) 100%');\n } else {\n points.push('0 100%');\n }\n points.push('100% 100%');\n if (rightPoint) {\n points.push('calc(100% - var(--stage-chevron-width)) 50%');\n }\n return `clip-path: polygon(${points.join(', ')});`;\n }\n\n const points = ['0 0', '100% 0'];\n if (rightPoint) {\n points.push(\n 'calc(100% - var(--stage-chevron-width)) 0',\n '100% 50%',\n 'calc(100% - var(--stage-chevron-width)) 100%'\n );\n } else {\n points.push('100% 100%');\n }\n points.push('0 100%');\n if (leftNotch) {\n points.push('var(--stage-chevron-width) 50%');\n }\n return `clip-path: polygon(${points.join(', ')});`;\n};\n\nconst segmentedConfig = {\n width: 'calc(0.8 * var(--chevron-spacing))',\n coarseWidth: 'calc(1.0 * var(--chevron-spacing))'\n} as const;\n\nconst segmentedClipPath = (leftCut: boolean, rightCut: boolean, mirrored = false): string => {\n if (mirrored) {\n const topRight = rightCut ? 'calc(100% - var(--segmented-width)) 0%' : '100% 0%';\n const bottomLeft = leftCut ? 'var(--segmented-width) 100%' : '0% 100%';\n\n return `clip-path: polygon(0% 0%, ${topRight}, 100% 100%, ${bottomLeft});`;\n }\n\n const topLeft = leftCut ? 'var(--segmented-width) 0%' : '0% 0%';\n const bottomRight = rightCut ? 'calc(100% - var(--segmented-width)) 100%' : '100% 100%';\n\n return `clip-path: polygon(${topLeft}, 100% 0%, ${bottomRight}, 0% 100%);`;\n};\n\n// === Chevron Configuration ===\n// Centralizes spacing and border thickness via CSS custom properties set at StyledStages\nconst chevronConfig = {\n // Horizontal projection of the rotated border-square forming the chevron point (fine pointer).\n // Derived from the border-square size × cos(45° + skew). Tuned to visually align with the stage height.\n // All values scaled by 1.25× relative to the original 4× spacing design (now 5× spacing height).\n width: 'calc(1.445 * var(--chevron-spacing))',\n // Same horizontal projection for coarse/touch pointer (larger square, proportionally wider point).\n coarseWidth: 'calc(1.797 * var(--chevron-spacing))',\n // Side length of the rotated border-square forming the chevron (fine pointer: 3.75× base spacing).\n squareSize: 'calc(3.75 * var(--chevron-spacing))',\n // Side length of the rotated border-square for coarse/touch pointer (5× base spacing).\n coarseSquareSize: 'calc(5 * var(--chevron-spacing))',\n // Distance to inset the ::before notch from the left edge of the stage (fine pointer).\n // 0.86 ≈ width − half-border-overlap, keeps the notch flush with the preceding chevron point.\n offsetLeft: 'calc(0.86 * var(--chevron-spacing))',\n // Distance to inset the ::after point from the right edge of the stage (fine pointer).\n // Equal to `width` so the point extends exactly one chevron-width beyond the stage boundary.\n offsetRight: 'calc(1.445 * var(--chevron-spacing))',\n // Coarse-pointer equivalents of offsetLeft/offsetRight, scaled to match coarseWidth/coarseSquareSize.\n coarseOffsetLeft: 'calc(1.2875 * var(--chevron-spacing))',\n coarseOffsetRight: 'calc(1.797 * var(--chevron-spacing))'\n} as const;\n\n// === Chevron Helpers ===\n// After team discussion we decided to use logical properties throughout — `inset-block-start`\n// instead of `top`, and `border-block-start/end-width` instead of `border-top/bottom-width` —\n// for consistency with the rest of the file (which already uses logical inline-axis properties).\nconst createChevronPseudo = (borderWidth: string, borderColor: string, size: string): string => `\n content: '';\n position: absolute;\n display: block;\n inset-block-start: calc(50% - ${size} / 2);\n width: ${size};\n height: ${size};\n border-style: solid;\n border-color: ${borderColor};\n border-inline-end-width: ${borderWidth};\n border-inline-start-width: 0;\n border-block-start-width: ${borderWidth};\n border-block-end-width: 0;\n transform: rotateZ(45deg) skew(15deg, 15deg);\n pointer-events: none;\n`;\n\nconst createChevronBaseStyles = (config: typeof chevronConfig, borderThicknessVar: string) => css`\n &:not(:nth-of-type(-n + 2))::before,\n &:not(:nth-last-of-type(-n + 2))::after {\n border-inline-end-width: calc(1.5 * ${borderThicknessVar});\n border-block-start-width: calc(1.5 * ${borderThicknessVar});\n }\n\n &:not(:nth-of-type(-n + 2))::before {\n inset-inline-start: calc(-1 * ${config.width} - ${config.offsetLeft});\n }\n\n &:not(:nth-last-of-type(-n + 2))::after {\n inset-inline-end: calc(-1 * ${config.width} + ${config.offsetRight});\n }\n`;\n\nconst createChevronInteractiveStates = (\n config: typeof chevronConfig,\n borderThicknessVar: string,\n includeHover = true\n) => css`\n ${includeHover &&\n css`\n &:has(button:hover)::before,\n &:has(button:hover)::after {\n border-inline-end-width: calc(2 * ${borderThicknessVar});\n border-block-start-width: calc(2 * ${borderThicknessVar});\n }\n `}\n &:has(button:focus-visible)::before,\n &:has(button:focus-visible)::after,\n &:has(button:active)::before,\n &:has(button:active)::after {\n border-inline-end-width: calc(2 * ${borderThicknessVar});\n border-block-start-width: calc(2 * ${borderThicknessVar});\n }\n`;\n\n/**\n * Outer wrapper `<div>` for the stages bar. Applies layered scroll-fade masks and\n * reserves scrollbar space so the fade gradient does not overlap the scrollbar track.\n */\nexport const StyledStagesWrapper = styled.div(({ theme }) => {\n return css`\n --stages-fade-width: calc(${theme.base.spacing} * 2);\n --stages-fade-start: 0;\n --stages-fade-end: 0;\n --stages-scrollbar-reserve: calc(${theme.base.spacing} * 0.25);\n\n /* Places gradient stops one physical pixel outside the element boundary,\n * preventing browser anti-aliasing from creating a semi-transparent seam\n * at mask edges. 1px is the correct unit here: it must be exactly one CSS pixel\n * (independent of font-size), so the mask boundary doesn't introduce a seam at the\n * element edge due to anti-aliasing.\n * See also StyledSentinel, which uses 1px for the same reason.\n */\n /* stylelint-disable-next-line unit-allowed-list -- 1px is intentional; see comment above */\n --mask-edge-overhang: 1px;\n position: relative;\n width: 100%;\n overflow: hidden;\n border-radius: ${theme.components.card['border-radius']};\n border-end-start-radius: var(\n --stages-wrapper-bottom-radius,\n ${theme.components.card['border-radius']}\n );\n border-end-end-radius: var(\n --stages-wrapper-bottom-radius,\n ${theme.components.card['border-radius']}\n );\n mask-image: linear-gradient(black, black),\n linear-gradient(\n to right,\n transparent calc(-1 * var(--mask-edge-overhang)),\n black var(--stages-fade-start),\n black calc(100% - var(--stages-fade-end)),\n transparent calc(100% + var(--mask-edge-overhang))\n );\n mask-size:\n 100% var(--stages-scrollbar-reserve),\n 100% calc(100% - var(--stages-scrollbar-reserve));\n mask-position:\n 0 100%,\n 0 0;\n mask-repeat: no-repeat, no-repeat;\n\n [dir='rtl'] & {\n mask-image: linear-gradient(black, black),\n linear-gradient(\n to right,\n transparent calc(-1 * var(--mask-edge-overhang)),\n black var(--stages-fade-end),\n black calc(100% - var(--stages-fade-start)),\n transparent calc(100% + var(--mask-edge-overhang))\n );\n }\n\n &:has(:focus-visible) {\n box-shadow: ${theme.base.shadow['focus-group']};\n }\n\n @media (pointer: coarse) {\n --stages-fade-width: calc(${theme.base.spacing} * 3);\n mask-image: linear-gradient(\n to right,\n transparent calc(-1 * var(--mask-edge-overhang)),\n black var(--stages-fade-start),\n black calc(100% - var(--stages-fade-end)),\n transparent calc(100% + var(--mask-edge-overhang))\n );\n mask-size: 100% 100%;\n mask-position: 0 0;\n mask-repeat: no-repeat;\n\n [dir='rtl'] & {\n mask-image: linear-gradient(\n to right,\n transparent calc(-1 * var(--mask-edge-overhang)),\n black var(--stages-fade-end),\n black calc(100% - var(--stages-fade-start)),\n transparent calc(100% + var(--mask-edge-overhang))\n );\n }\n }\n `;\n});\n\nStyledStagesWrapper.defaultProps = defaultThemeProp;\n\n/**\n * Scrollable `<ol>` containing all stage chevron items. Sets the `--chevron-spacing`,\n * `--chevron-border-thickness`, and `--segmented-border-thickness` custom properties\n * consumed by child elements.\n */\nexport const StyledStages = styled.ol<{ variant: StageVariant }>(({ theme, variant }) => {\n const isMilestone = variant === 'milestone';\n\n return css`\n --chevron-spacing: ${theme.base.spacing};\n --chevron-border-thickness: ${theme.components.button['border-width']};\n --segmented-border-thickness: calc(2 * ${theme.components.button['border-width']});\n --segmented-width: ${segmentedConfig.width};\n border-radius: ${theme.components.card['border-radius']};\n display: flex;\n padding: 0;\n width: 100%;\n overflow-x: auto;\n overflow-y: hidden;\n list-style: none;\n scrollbar-width: thin;\n scrollbar-color: transparent transparent;\n\n ${isMilestone &&\n css`\n --milestone-size: calc(4 * ${theme.base.spacing});\n --milestone-pulse-min: calc(var(--milestone-size) * 0.1);\n --milestone-pulse-start: ${transparentize(0.5, theme.base.palette.interactive)};\n --milestone-pulse-spread: calc(var(--milestone-size) * 0.25);\n --milestone-pulse-end: ${transparentize(0.75, theme.base.palette.interactive)};\n padding-block: ${theme.base.spacing};\n padding-inline: calc(var(--milestone-size) * 0.25);\n `}\n\n &:hover,\n &:focus-within {\n scrollbar-color: var(\n --stages-scrollbar-thumb,\n ${transparentize(0.4, theme.base.palette['border-line'])}\n )\n var(--stages-scrollbar-track, transparent);\n }\n\n &::-webkit-scrollbar {\n height: 0.25rem;\n }\n\n @media (pointer: coarse) {\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n `;\n});\n\nStyledStages.defaultProps = defaultThemeProp;\n\n/**\n * A sentinel is an invisible 1 px <li> placed at each end of the scrollable stage list.\n * It is observed by an IntersectionObserver; when it scrolls out of view, the component sets\n * --stages-fade-start or --stages-fade-end to show a gradient fade indicating more stages\n * are reachable by scrolling. When it comes back into view the property is reset to 0.\n *\n * Sentinel elements carry aria-hidden=\"true\" so they are valid list items semantically.\n * Because styled-components scopes all CSS to a generated class, the chevron and layout rules\n * in StyledStageContainer never apply to these elements — they carry a different class.\n * CSS type-based selectors (:nth-of-type, :nth-last-of-type) in StyledStageContainer are\n * offset by 1 at each end to skip the sentinels and target only real stage items.\n */\nexport const StyledSentinel = styled.li`\n flex-shrink: 0;\n\n /* NOTE: the sentinel must occupy\n * a single physical pixel so IntersectionObserver can detect it at threshold 0 while having\n * negligible layout impact. A rem value could collapse to zero at small font sizes.\n */\n /* stylelint-disable-next-line unit-allowed-list -- 1px is intentional */\n width: 1px;\n /* stylelint-disable-next-line unit-allowed-list -- 1px is intentional */\n height: 1px;\n padding: 0;\n margin: 0;\n pointer-events: none;\n\n /* Collapse the sentinel's layout footprint to zero on the side facing the stages.\n * Without this, each 1px sentinel creates a visible gap between the stage buttons\n * and the left/right edges of the wrapper. The sentinel remains in flow (required\n * for IntersectionObserver scroll detection) but no longer displaces stage content.\n */\n &:first-of-type {\n /* stylelint-disable-next-line unit-allowed-list -- 1px matches sentinel width */\n margin-inline-end: -1px;\n }\n\n &:last-of-type {\n /* stylelint-disable-next-line unit-allowed-list -- 1px matches sentinel width */\n margin-inline-start: -1px;\n }\n`;\n\nStyledSentinel.defaultProps = defaultThemeProp;\n\n/**\n * Inner `<span>` holding stage label content. Optionally applies `text-overflow: ellipsis`\n * for stages with long labels.\n */\nexport const StyledInnerStage = styled.span<{ ellipsis?: boolean }>(({ theme, ellipsis }) => {\n return css`\n display: inline-flex;\n align-items: center;\n gap: calc(0.25 * ${theme.base.spacing});\n text-align: center;\n white-space: nowrap;\n padding-inline-start: calc(0.875 * ${theme.base.spacing});\n padding-inline-end: calc(1.125 * ${theme.base.spacing});\n ${ellipsis &&\n css`\n overflow: hidden;\n text-overflow: ellipsis;\n `}\n `;\n});\n\nStyledInnerStage.defaultProps = defaultThemeProp;\n\nconst stageButtonChevronStyles = (theme: DefaultTheme) => css`\n padding-inline-start: calc(2 * var(--chevron-spacing));\n padding-inline-end: var(--chevron-spacing);\n width: calc(100% + ${chevronConfig.width});\n --stage-chevron-width: ${chevronConfig.width};\n\n ${StyledInnerStage} {\n transform: translateX(calc(-0.25 * var(--chevron-spacing)));\n opacity: ${theme.base.transparency['transparent-2']};\n }\n\n ${stageClipPath(true, true)}\n\n [dir='rtl'] & ${StyledInnerStage} {\n transform: translateX(calc(0.25 * var(--chevron-spacing)));\n }\n\n [dir='rtl'] & {\n ${stageClipPath(true, true, true)}\n }\n\n @media (pointer: coarse) {\n padding-inline-start: calc(2.25 * var(--chevron-spacing));\n width: calc(100% + ${chevronConfig.coarseWidth});\n --stage-chevron-width: ${chevronConfig.coarseWidth};\n }\n`;\n\nconst stageButtonSegmentedStyles = (theme: DefaultTheme) => css`\n width: 100%;\n padding-inline-start: calc(var(--segmented-width) + var(--chevron-spacing));\n padding-inline-end: calc(var(--segmented-width) + var(--chevron-spacing));\n\n ${StyledInnerStage} {\n opacity: ${theme.base.transparency['transparent-2']};\n }\n\n ${segmentedClipPath(true, true)}\n\n [dir='rtl'] & {\n ${segmentedClipPath(true, true, true)}\n }\n`;\n\nconst stageButtonVariants: Record<StageVariant, (theme: DefaultTheme) => ReturnType<typeof css>> = {\n chevron: stageButtonChevronStyles,\n segmented: stageButtonSegmentedStyles,\n milestone: () => css``\n};\n\n/**\n * Clickable `<button>` for a single stage. Renders the chevron clip-path shape and\n * applies status-based background and foreground colours.\n */\nexport const StyledStage = styled.button<{\n status: 'completed' | 'current' | 'pending';\n readOnly?: boolean;\n variant: StageVariant;\n}>(\n ({\n theme,\n theme: {\n base: { palette, 'hit-area': hitArea, transparency, 'font-weight': fontWeight },\n components: {\n 'case-view': { stages }\n }\n },\n status,\n readOnly,\n variant: shape\n }) => {\n const stageForeground = calculateForegroundColor(\n stages.status[status].background,\n stages.status[status]['foreground-color']\n );\n\n return css`\n background: ${stages.status[status].background};\n color: ${stageForeground};\n outline: none;\n border-color: transparent;\n border-width: calc(2 * var(--chevron-border-thickness)) 0;\n border-style: solid;\n position: relative;\n\n /* Browsers do not reliably apply flex align-items: stretch to <button> elements.\n * Adding 0.0625rem (1px at default font size) to min-height compensates so the button fills its <li> container,\n * keeping the clipped chevron background flush with the top and bottom borders. */\n min-height: calc(5 * var(--chevron-spacing) + 0.0625rem);\n margin-inline-start: 0;\n margin-inline-end: 0;\n\n ${stageButtonVariants[shape](theme)}\n\n ${!readOnly &&\n css`\n &:hover {\n border-color: ${palette['border-line']};\n }\n `}\n\n &:focus-visible {\n border-color: ${palette.interactive};\n }\n\n &:active {\n border-color: ${palette.interactive};\n\n ${StyledInnerStage} {\n opacity: ${transparency['transparent-3']};\n }\n }\n\n &[aria-current] {\n ${StyledInnerStage} {\n font-weight: ${fontWeight.bold};\n opacity: 1;\n }\n\n ${!readOnly &&\n css`\n &:hover {\n ${StyledInnerStage} {\n opacity: ${transparency['transparent-2']};\n }\n }\n `}\n }\n\n @media (pointer: coarse) {\n min-height: ${hitArea['finger-min']};\n }\n `;\n }\n);\n\nStyledStage.defaultProps = defaultThemeProp;\n\n/**\n * Checkmark icon shown inside completed stages, tinted to match the stage foreground colour.\n */\nexport const StyledStageCompleteIcon = styled(Icon)(({\n theme: {\n components: {\n 'case-view': {\n stages: {\n status: {\n completed: { 'foreground-color': foregroundColor, background }\n }\n }\n }\n }\n }\n}) => {\n const stageForeground = calculateForegroundColor(background, foregroundColor);\n return css`\n color: ${stageForeground};\n `;\n});\n\nStyledStageCompleteIcon.defaultProps = defaultThemeProp;\n\n/**\n * Stage label text. Renders in bold weight when the stage is the current active stage.\n */\nexport const StyledStageText = styled(Text)<{ isCurrent?: boolean }>(\n ({ theme, isCurrent }) => css`\n font-weight: ${isCurrent ? theme.base['font-weight'].bold : theme.base['font-weight'].normal};\n `\n);\n\nStyledStageText.defaultProps = defaultThemeProp;\n\nconst stageContainerChevronStyles = (theme: DefaultTheme, readOnly: boolean | undefined) => {\n const includeHover = !readOnly;\n return css`\n /* Chevron: negative-margin overlap so consecutive stages share a boundary */\n margin-inline-start: calc(-1 * ${chevronConfig.width});\n\n &:nth-of-type(2) {\n margin-inline-start: 0;\n }\n\n /* Chevron boundary indicators via ::before (left notch) and ::after (right point) pseudo-elements */\n &:not(:nth-of-type(-n + 2))::before {\n ${createChevronPseudo(\n 'calc(2 * var(--chevron-border-thickness))',\n theme.base.palette['border-line'],\n chevronConfig.squareSize\n )}\n /* Elevate ::before above the button so it renders via the same pathway as ::after.\n * Without z-index, ::before (first in DOM) is painted first and then covered by the\n * button, making it only partially visible through the clip-path notch window. This\n * causes thicker interactive-state borders (3×) to look thinner on the left boundary\n * than on the right (::after, which paints last and is always fully visible).\n * The ::before tip's rightmost extent is at --stage-chevron-width from the <li> start,\n * which is before the stage text (padding-inline-start: 2 × spacing), so no content overlap.\n */\n z-index: 1;\n }\n\n &:not(:nth-last-of-type(-n + 2))::after {\n ${createChevronPseudo(\n 'calc(2 * var(--chevron-border-thickness))',\n theme.base.palette['border-line'],\n chevronConfig.squareSize\n )}\n }\n\n [dir='rtl'] &::before,\n [dir='rtl'] &::after {\n transform: rotateZ(-45deg) skew(-15deg, -15deg);\n }\n\n /* Chevron positioning: 45° rotated squares create visual tips via offsets:\n * left ≈ 0.86 × spacing, right ≈ 1.445 × spacing (accounts for skew correction)\n */\n ${createChevronBaseStyles(chevronConfig, 'var(--chevron-border-thickness)')}\n ${createChevronInteractiveStates(\n chevronConfig,\n 'var(--chevron-border-thickness)',\n includeHover\n )}\n\n /* Thicken chevrons to visually match button top/bottom border on any colored state.\n * At 45° rotation, border appears 1/sin(45°) ≈ 0.707× thinner, so 2× border ≈ 1.4× horizontal border weight.\n */\n ${includeHover &&\n css`\n &:has(button:hover)::before,\n &:has(button:hover)::after {\n border-color: ${theme.base.palette['border-line']};\n }\n `}\n\n &:has(button:focus-visible)::before,\n &:has(button:focus-visible)::after {\n border-color: ${theme.base.palette.interactive};\n }\n\n &:has(button:active)::before,\n &:has(button:active)::after {\n border-color: ${theme.base.palette.interactive};\n }\n\n /* First stage: no left notch, extended width to cover the full left edge */\n &:nth-of-type(2) > ${StyledStage} {\n --stage-chevron-width: ${chevronConfig.width};\n width: calc(100% + (2 * var(--stage-chevron-width)));\n padding-inline-start: calc(var(--chevron-spacing));\n ${stageClipPath(false, true)}\n\n ${includeHover &&\n css`\n /* Inline-start interactive indicator via inset shadow — avoids border-color bleeding through gradient backgrounds */\n &:hover {\n box-shadow: inset calc(2 * var(--chevron-border-thickness)) 0 0\n ${theme.base.palette['border-line']};\n\n [dir='rtl'] & {\n box-shadow: inset calc(-2 * var(--chevron-border-thickness)) 0 0\n ${theme.base.palette['border-line']};\n }\n }\n `}\n\n &:focus-visible,\n &:active {\n box-shadow: inset calc(2 * var(--chevron-border-thickness)) 0 0\n ${theme.base.palette.interactive};\n\n [dir='rtl'] & {\n box-shadow: inset calc(-2 * var(--chevron-border-thickness)) 0 0\n ${theme.base.palette.interactive};\n }\n }\n\n @media (pointer: coarse) {\n --stage-chevron-width: ${chevronConfig.coarseWidth};\n width: calc(100% + (2 * var(--stage-chevron-width)));\n }\n }\n\n /* Last stage: no right point */\n &:nth-last-of-type(2) > ${StyledStage} {\n --stage-chevron-width: ${chevronConfig.width};\n padding-inline-end: 0;\n width: 100%;\n ${stageClipPath(true, false)}\n\n ${includeHover &&\n css`\n /* Inline-end interactive indicator via inset shadow — avoids border-color bleeding through gradient backgrounds */\n &:hover {\n box-shadow: inset calc(-2 * var(--chevron-border-thickness)) 0 0\n ${theme.base.palette['border-line']};\n\n [dir='rtl'] & {\n box-shadow: inset calc(2 * var(--chevron-border-thickness)) 0 0\n ${theme.base.palette['border-line']};\n }\n }\n `}\n\n &:focus-visible,\n &:active {\n box-shadow: inset calc(-2 * var(--chevron-border-thickness)) 0 0\n ${theme.base.palette.interactive};\n\n [dir='rtl'] & {\n box-shadow: inset calc(2 * var(--chevron-border-thickness)) 0 0\n ${theme.base.palette.interactive};\n }\n }\n\n @media (pointer: coarse) {\n --stage-chevron-width: ${chevronConfig.coarseWidth};\n }\n }\n\n /* RTL: flip clip-paths for first and last stages */\n [dir='rtl'] &:nth-of-type(2) > ${StyledStage} {\n ${stageClipPath(true, false, true)}\n }\n\n [dir='rtl'] &:nth-last-of-type(2) > ${StyledStage} {\n ${stageClipPath(false, true, true)}\n }\n\n @media (pointer: coarse) {\n margin-inline-start: calc(-1 * ${chevronConfig.coarseWidth});\n\n &:not(:nth-of-type(-n + 2))::before,\n &:not(:nth-last-of-type(-n + 2))::after {\n inset-block-start: calc(50% - ${chevronConfig.coarseSquareSize} / 2);\n width: ${chevronConfig.coarseSquareSize};\n height: ${chevronConfig.coarseSquareSize};\n }\n\n &:not(:nth-of-type(-n + 2))::before {\n inset-inline-start: calc(\n -1 * ${chevronConfig.coarseWidth} - ${chevronConfig.coarseOffsetLeft}\n );\n }\n\n &:not(:nth-last-of-type(-n + 2))::after {\n inset-inline-end: calc(\n -1 * ${chevronConfig.coarseWidth} + ${chevronConfig.coarseOffsetRight}\n );\n }\n }\n `;\n};\n\nconst stageContainerSegmentedStyles = (theme: DefaultTheme, readOnly: boolean | undefined) => {\n const includeHover = !readOnly;\n\n return css`\n --segmented-edge-thickness: var(--chevron-border-thickness);\n\n /* Segmented: stages overlap by --segmented-width so parallelogram edges meet flush */\n margin-inline-start: calc(-1 * var(--segmented-width));\n\n &:nth-of-type(2) {\n margin-inline-start: 0;\n }\n\n /* Left segmented border strip: diagonal clip-path on each stage's inline-start edge (stages 2..N).\n * The strip goes from (segmented-width, 0%) at top to (0%, 100%) at bottom of the pseudo,\n * matching the parallelogram's inline-start clip edge exactly.\n */\n &:not(:nth-of-type(-n + 2))::before {\n content: '';\n position: absolute;\n inset-block: 0;\n inset-inline-start: 0;\n width: calc(var(--segmented-width) + var(--segmented-edge-thickness));\n clip-path: polygon(\n var(--segmented-width) 0%,\n calc(var(--segmented-width) + var(--segmented-edge-thickness)) 0%,\n var(--segmented-edge-thickness) 100%,\n 0% 100%\n );\n background: ${theme.base.palette['border-line']};\n pointer-events: none;\n z-index: 1;\n }\n\n /* Right segmented border strip: diagonal clip-path on each stage's inline-end edge (stages 1..N-1). */\n &:not(:nth-last-of-type(-n + 2))::after {\n content: '';\n position: absolute;\n inset-block: 0;\n inset-inline-end: 0;\n width: calc(var(--segmented-width) + var(--segmented-edge-thickness));\n clip-path: polygon(\n var(--segmented-width) 0%,\n calc(var(--segmented-width) + var(--segmented-edge-thickness)) 0%,\n var(--segmented-edge-thickness) 100%,\n 0% 100%\n );\n background: ${theme.base.palette['border-line']};\n pointer-events: none;\n z-index: 2;\n }\n\n /* Interactive states: update pseudo background to signal hover/focus/active */\n ${includeHover &&\n css`\n &:has(button:hover) {\n --segmented-edge-thickness: var(--segmented-border-thickness);\n }\n\n &:has(button:hover)::before,\n &:has(button:hover)::after {\n background: ${theme.base.palette['border-line']};\n }\n `}\n\n &:has(button:focus-visible),\n &:has(button:active) {\n --segmented-edge-thickness: var(--segmented-border-thickness);\n }\n\n &:has(button:focus-visible)::before,\n &:has(button:focus-visible)::after,\n &:has(button:active)::before,\n &:has(button:active)::after {\n background: ${theme.base.palette.interactive};\n }\n\n /* First stage (no inline-start cut): flat left edge + inset shadow edge indicator */\n &:nth-of-type(2) > ${StyledStage} {\n ${segmentedClipPath(false, true)}\n\n ${includeHover &&\n css`\n &:hover {\n box-shadow: inset var(--segmented-border-thickness) 0 0\n ${theme.base.palette['border-line']};\n\n [dir='rtl'] & {\n box-shadow: inset calc(-1 * var(--segmented-border-thickness)) 0 0\n ${theme.base.palette['border-line']};\n }\n }\n `}\n\n &:focus-visible,\n &:active {\n box-shadow: inset var(--segmented-border-thickness) 0 0 ${theme.base.palette.interactive};\n\n [dir='rtl'] & {\n box-shadow: inset calc(-1 * var(--segmented-border-thickness)) 0 0\n ${theme.base.palette.interactive};\n }\n }\n }\n\n /* Last stage (no inline-end cut): flat right edge + inset shadow edge indicator */\n &:nth-last-of-type(2) > ${StyledStage} {\n ${segmentedClipPath(true, false)}\n\n ${includeHover &&\n css`\n &:hover {\n box-shadow: inset calc(-1 * var(--segmented-border-thickness)) 0 0\n ${theme.base.palette['border-line']};\n\n [dir='rtl'] & {\n box-shadow: inset var(--segmented-border-thickness) 0 0\n ${theme.base.palette['border-line']};\n }\n }\n `}\n\n &:focus-visible,\n &:active {\n box-shadow: inset calc(-1 * var(--segmented-border-thickness)) 0 0\n ${theme.base.palette.interactive};\n\n [dir='rtl'] & {\n box-shadow: inset var(--segmented-border-thickness) 0 0 ${theme.base.palette.interactive};\n }\n }\n }\n\n /* RTL: flip clip-paths for first and last stage buttons */\n [dir='rtl'] &:nth-of-type(2) > ${StyledStage} {\n ${segmentedClipPath(true, false, true)}\n }\n\n [dir='rtl'] &:nth-last-of-type(2) > ${StyledStage} {\n ${segmentedClipPath(false, true, true)}\n }\n\n /* RTL: mirror the pseudo clip-paths.\n * In LTR the strip goes top-right → bottom-left (polygon A 0%, A+B 0%, B 100%, 0% 100%).\n * In RTL the pseudo is positioned at the opposite physical edge via logical inset properties,\n * so the strip must go top-left → bottom-right to stay aligned with the flipped slant.\n */\n [dir='rtl'] &:not(:nth-of-type(-n + 2))::before,\n [dir='rtl'] &:not(:nth-last-of-type(-n + 2))::after {\n clip-path: polygon(\n 0% 0%,\n var(--segmented-edge-thickness) 0%,\n calc(var(--segmented-width) + var(--segmented-edge-thickness)) 100%,\n var(--segmented-width) 100%\n );\n }\n\n @media (pointer: coarse) {\n /* A single CSS custom property update propagates to all margin and clip-path consumers */\n --segmented-width: ${segmentedConfig.coarseWidth};\n }\n `;\n};\n\nconst stageContainerVariants: Record<\n StageVariant,\n (theme: DefaultTheme, readOnly: boolean | undefined) => ReturnType<typeof css>\n> = {\n chevron: stageContainerChevronStyles,\n segmented: stageContainerSegmentedStyles,\n milestone: () => css``\n};\n\n/**\n * `<li>` container for a single stage item. Manages negative-margin chevron overlap,\n * pseudo-element positioning, and z-index stacking for interactive states.\n */\nexport const StyledStageContainer = styled.li<{\n readOnly?: boolean;\n variant: StageVariant;\n}>(\n ({\n theme,\n theme: {\n components: {\n card: { 'border-radius': borderRadius }\n }\n },\n readOnly,\n variant: shape\n }) => {\n return css`\n display: flex;\n position: relative;\n\n /* Resting z-index: for same-z siblings, DOM order determines paint order.\n * All non-last <li>s have z-index:1 so the later (right) <li>'s ::before paints on top\n * at internal boundaries; the last <li> has no z-index so its left neighbor's ::after\n * wins at the final boundary. On hover/focus/active, the interacting <li> gains z:2/3\n * and its own pseudo-element surfaces for that boundary, regardless of which side.\n */\n &:not(:nth-last-of-type(-n + 2)) {\n z-index: 1;\n }\n\n &:has(button:focus-visible),\n &:has(button:active) {\n z-index: 2;\n }\n\n ${!readOnly &&\n css`\n &:has(button:hover) {\n z-index: 3;\n }\n `}\n\n /* Corner radii are shared across all shape variants */\n &:nth-of-type(2) > ${StyledStage} {\n border-start-start-radius: ${borderRadius};\n border-end-start-radius: ${borderRadius};\n }\n\n &:nth-last-of-type(2) > ${StyledStage} {\n border-start-end-radius: ${borderRadius};\n border-end-end-radius: ${borderRadius};\n }\n\n ${stageContainerVariants[shape](theme, readOnly)}\n `;\n }\n);\n\nStyledStageContainer.defaultProps = defaultThemeProp;\n\n/**\n * `<ol>` list of sub-step items displayed below the stages bar when a stage is expanded.\n */\nexport const StyledStepsContainer = styled.ol(({ theme }) => {\n return css`\n list-style-type: none;\n margin: calc(2 * ${theme.base.spacing}) 0 calc(3 * ${theme.base.spacing});\n\n &:empty {\n margin-block-end: 0;\n }\n `;\n});\n\nStyledStepsContainer.defaultProps = defaultThemeProp;\n\n/**\n * Individual step `<li>` within a stage. Dims text and icon at reduced opacity when completed.\n */\nexport const StyledStep = styled.li<{ completed: boolean }>(({ completed, theme }) => {\n const textOpacity = completed ? theme.base.transparency['transparent-2'] : 1;\n\n return css`\n border-radius: 0;\n margin-block-end: calc(${theme.base.spacing});\n color: ${theme.base.palette['foreground-color']};\n\n &:last-child {\n margin-block-end: 0;\n }\n\n & > ${StyledIcon} {\n text-align: center;\n }\n\n div {\n opacity: ${textOpacity};\n }\n `;\n});\n\nStyledStep.defaultProps = defaultThemeProp;\n\n/**\n * Small datetime label rendered beneath a step. Displayed at the `xs` font size\n * and reduced opacity.\n */\nexport const StyledDateTimeDisplay = styled(DateTimeDisplay)(({ theme }) => {\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n return css`\n font-size: ${fontSize.xs};\n opacity: ${theme.base.transparency['transparent-2']};\n `;\n});\n\nStyledDateTimeDisplay.defaultProps = defaultThemeProp;\n\n/**\n * Container `<div>` for the stage glimpse preview panel, constrained to a small max-width.\n */\nexport const StyledStageGlimpse = styled.div(({ theme }) => {\n return css`\n max-width: ${theme.base['content-width'].sm};\n `;\n});\n\nStyledStageGlimpse.defaultProps = defaultThemeProp;\n\nconst milestonePulse = keyframes`\n 0%, 100% {\n box-shadow: 0 0 0 var(--milestone-pulse-min) var(--milestone-pulse-start);\n }\n 60% {\n box-shadow: 0 0 0 var(--milestone-pulse-spread) var(--milestone-pulse-end);\n }\n`;\n\nexport const StyledMilestoneLabel = styled.span(({ theme }) => {\n return css`\n color: ${theme.base.palette['foreground-color']};\n line-height: ${theme.base['line-height']};\n text-align: center;\n align-self: stretch;\n overflow-wrap: break-word;\n padding-inline: calc(0.25 * ${theme.base.spacing});\n `;\n});\n\nStyledMilestoneLabel.defaultProps = defaultThemeProp;\n\n/**\n * `<li>` container for a single stage item in the 'milestone' shape variant.\n * Renders column-flex layout (milestone above, label below) and draws the\n * horizontal connector as a single line from this milestone's centre to the next\n * milestone's centre (::after), sized so every connector has an identical length.\n */\nexport const StyledMilestoneStageContainer = styled.li<{\n status: 'completed' | 'current' | 'pending';\n nextCompleted: boolean;\n readOnly?: boolean;\n}>(({ theme, nextCompleted, status }) => {\n const {\n base: {\n palette: { interactive, 'border-line': borderLine },\n spacing\n }\n } = theme;\n\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n\n const connectorFilled = nextCompleted;\n\n return css`\n --connector-height: ${connectorFilled ? '0.25rem' : '0.125rem'};\n --connector-display: block;\n --connector-start: 50%;\n --connector-width: 100%;\n --connector-bg: ${connectorFilled ? interactive : borderLine};\n --connector-forced-bg: ${connectorFilled ? 'Highlight' : 'CanvasText'};\n display: flex;\n flex-direction: column;\n align-items: center;\n flex: 1 0 0;\n font-size: ${fontSize.xs};\n font-weight: ${status === 'current'\n ? theme.base['font-weight']['semi-bold']\n : theme.base['font-weight'].normal};\n min-width: 15ch;\n position: relative;\n gap: ${spacing};\n z-index: 1;\n\n &:nth-of-type(2):not(:nth-last-of-type(2)) {\n --connector-start: calc(var(--milestone-size) / 2);\n --connector-width: calc(200% - var(--milestone-size));\n align-items: flex-start;\n flex: 0.5 0 calc(var(--milestone-size) / 2);\n min-width: calc(7.5ch + var(--milestone-size) / 2);\n\n ${StyledMilestoneLabel} {\n text-align: start;\n }\n }\n\n &:nth-last-of-type(2):not(:nth-of-type(2)) {\n --connector-display: none;\n align-items: flex-end;\n flex: 0.5 0 calc(var(--milestone-size) / 2);\n min-width: calc(7.5ch + var(--milestone-size) / 2);\n\n ${StyledMilestoneLabel} {\n text-align: end;\n }\n }\n\n &:nth-of-type(2):nth-last-of-type(2) {\n --connector-display: none;\n align-items: center;\n flex: 1 0 0;\n }\n\n &::after {\n content: '';\n display: var(--connector-display);\n position: absolute;\n inset-block-start: calc(var(--milestone-size) / 2 - var(--connector-height) / 2);\n inset-inline-start: var(--connector-start);\n width: var(--connector-width);\n height: var(--connector-height);\n background: var(--connector-bg);\n pointer-events: none;\n\n @media (forced-colors: active) {\n background: var(--connector-forced-bg);\n }\n }\n `;\n});\n\nStyledMilestoneStageContainer.defaultProps = defaultThemeProp;\n\nexport const StyledMilestoneButton = styled.button<{\n status: 'completed' | 'current' | 'pending';\n readOnly?: boolean;\n}>(({ theme, status, readOnly }) => {\n const {\n base: {\n 'hit-area': hitArea,\n animation: {\n speed: animationSpeed,\n timing: { ease: animationTiming }\n },\n shadow: { focus: focusShadow }\n },\n components: {\n button: { 'border-width': borderWidth },\n 'case-view': { stages }\n }\n } = theme;\n\n const stageForeground = calculateForegroundColor(\n stages.status[status].background,\n stages.status[status]['foreground-color']\n );\n\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n\n const completedBorderColor =\n status === 'completed'\n ? tryCatch(\n () => darken(0.12, stages.status.completed.background),\n () => 'transparent'\n )\n : '';\n\n return css`\n position: relative;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n border-radius: 50%;\n width: var(--milestone-size);\n height: var(--milestone-size);\n background: ${stages.status[status].background};\n color: ${stageForeground};\n font-size: ${fontSize.s};\n font-weight: ${status === 'current'\n ? theme.base['font-weight']['semi-bold']\n : theme.base['font-weight'].normal};\n outline: none;\n border: none;\n cursor: ${readOnly ? 'default' : 'pointer'};\n transition: box-shadow calc(2 * ${animationSpeed}) ${animationTiming};\n\n ${status === 'completed' &&\n css`\n box-shadow: inset 0 0 0 calc(2 * ${borderWidth}) ${completedBorderColor};\n `}\n\n &:focus-visible {\n box-shadow: ${focusShadow};\n\n @media (forced-colors: active) {\n outline: 0.125rem solid Highlight;\n outline-offset: 0.125rem;\n }\n }\n\n ${!readOnly &&\n css`\n &:hover {\n filter: brightness(0.85);\n }\n\n &:active {\n filter: brightness(0.85);\n }\n `}\n\n ${status === 'current' &&\n !readOnly &&\n css`\n &::before {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: 50%;\n pointer-events: none;\n animation: ${milestonePulse} 2s ease-out infinite;\n\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n }\n `}\n\n /* Expanded hit area */\n &::after {\n content: '';\n position: absolute;\n width: ${hitArea['mouse-min']};\n height: ${hitArea['mouse-min']};\n inset-block-start: calc((${hitArea['mouse-min']} - var(--milestone-size)) / -2);\n inset-inline-start: calc((${hitArea['mouse-min']} - var(--milestone-size)) / -2);\n\n @media (pointer: coarse) {\n width: ${hitArea['finger-min']};\n height: ${hitArea['finger-min']};\n inset-block-start: calc((${hitArea['finger-min']} - var(--milestone-size)) / -2);\n inset-inline-start: calc((${hitArea['finger-min']} - var(--milestone-size)) / -2);\n }\n }\n\n @media (forced-colors: active) {\n border: 0.125rem solid ButtonText;\n }\n `;\n});\n\nStyledMilestoneButton.defaultProps = defaultThemeProp;\n\n/**\n * Visually hidden `<p>` providing an accessible description for the stages list,\n * announced by screen readers but not displayed on screen.\n */\nexport const StyledStagesDescription = styled.p`\n display: none;\n`;\n\nStyledStagesDescription.defaultProps = defaultThemeProp;\n"]}
|
|
1
|
+
{"version":3,"file":"Stages.styles.js","sourceRoot":"","sources":["../../../src/components/Stages/Stages.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import styled, { css, keyframes } from 'styled-components';\nimport type { DefaultTheme } from 'styled-components';\nimport { transparentize, darken } from 'polished';\n\nimport {\n calculateFontSize,\n DateTimeDisplay,\n defaultThemeProp,\n Icon,\n Text,\n StyledIcon,\n calculateForegroundColor,\n tryCatch\n} from '@pega/cosmos-react-core';\n\nimport type { StageVariant } from './Stages.types';\n\nconst stageClipPath = (leftNotch: boolean, rightPoint: boolean, mirrored = false): string => {\n if (mirrored) {\n // RTL: mirror the LTR clip-path polygon\n const points = ['100% 0', '0 0'];\n if (leftNotch) {\n points.push('var(--stage-chevron-width) 0', '0 50%', 'var(--stage-chevron-width) 100%');\n } else {\n points.push('0 100%');\n }\n points.push('100% 100%');\n if (rightPoint) {\n points.push('calc(100% - var(--stage-chevron-width)) 50%');\n }\n return `clip-path: polygon(${points.join(', ')});`;\n }\n\n const points = ['0 0', '100% 0'];\n if (rightPoint) {\n points.push(\n 'calc(100% - var(--stage-chevron-width)) 0',\n '100% 50%',\n 'calc(100% - var(--stage-chevron-width)) 100%'\n );\n } else {\n points.push('100% 100%');\n }\n points.push('0 100%');\n if (leftNotch) {\n points.push('var(--stage-chevron-width) 50%');\n }\n return `clip-path: polygon(${points.join(', ')});`;\n};\n\nconst segmentedConfig = {\n width: 'calc(0.8 * var(--chevron-spacing))',\n coarseWidth: 'calc(1.0 * var(--chevron-spacing))'\n} as const;\n\nconst segmentedClipPath = (leftCut: boolean, rightCut: boolean, mirrored = false): string => {\n if (mirrored) {\n const topRight = rightCut ? 'calc(100% - var(--segmented-width)) 0%' : '100% 0%';\n const bottomLeft = leftCut ? 'var(--segmented-width) 100%' : '0% 100%';\n\n return `clip-path: polygon(0% 0%, ${topRight}, 100% 100%, ${bottomLeft});`;\n }\n\n const topLeft = leftCut ? 'var(--segmented-width) 0%' : '0% 0%';\n const bottomRight = rightCut ? 'calc(100% - var(--segmented-width)) 100%' : '100% 100%';\n\n return `clip-path: polygon(${topLeft}, 100% 0%, ${bottomRight}, 0% 100%);`;\n};\n\n// === Chevron Configuration ===\n// Centralizes spacing and border thickness via CSS custom properties set at StyledStages\nconst chevronConfig = {\n // Horizontal projection of the rotated border-square forming the chevron point (fine pointer).\n // Derived from the border-square size × cos(45° + skew). Tuned to visually align with the stage height.\n // All values scaled by 1.25× relative to the original 4× spacing design (now 5× spacing height).\n width: 'calc(1.445 * var(--chevron-spacing))',\n // Same horizontal projection for coarse/touch pointer (larger square, proportionally wider point).\n coarseWidth: 'calc(1.797 * var(--chevron-spacing))',\n // Side length of the rotated border-square forming the chevron (fine pointer: 3.75× base spacing).\n squareSize: 'calc(3.75 * var(--chevron-spacing))',\n // Side length of the rotated border-square for coarse/touch pointer (5× base spacing).\n coarseSquareSize: 'calc(5 * var(--chevron-spacing))',\n // Distance to inset the ::before notch from the left edge of the stage (fine pointer).\n // 0.86 ≈ width − half-border-overlap, keeps the notch flush with the preceding chevron point.\n offsetLeft: 'calc(0.86 * var(--chevron-spacing))',\n // Distance to inset the ::after point from the right edge of the stage (fine pointer).\n // Equal to `width` so the point extends exactly one chevron-width beyond the stage boundary.\n offsetRight: 'calc(1.445 * var(--chevron-spacing))',\n // Coarse-pointer equivalents of offsetLeft/offsetRight, scaled to match coarseWidth/coarseSquareSize.\n // coarseOffsetLeft must satisfy: coarseSquareSize = 2 × coarseWidth + coarseOffsetLeft\n // (5 = 2 × 1.797 + 1.406) so that ::before and ::after co-locate on coarse devices.\n coarseOffsetLeft: 'calc(1.406 * var(--chevron-spacing))',\n coarseOffsetRight: 'calc(1.797 * var(--chevron-spacing))',\n // Pre-computed flat positions for ::before notch and ::after point.\n notchInsetStart: 'calc(-2.305 * var(--chevron-spacing))',\n // 3.203 = exact alignment (coarseSquareSize - coarseWidth); slightly overdone default clears sub-pixel rounding on 3× displays.\n coarseNotchInsetStart:\n 'calc(-1 * var(--stages-coarse-notch-correction) * var(--chevron-spacing))',\n pointInsetEnd: '0'\n} as const;\n\n// === Chevron Helpers ===\n// After team discussion we decided to use logical properties throughout — `inset-block-start`\n// instead of `top`, and `border-block-start/end-width` instead of `border-top/bottom-width` —\n// for consistency with the rest of the file (which already uses logical inline-axis properties).\nconst createChevronPseudo = (borderWidth: string, borderColor: string, size: string): string => `\n content: '';\n position: absolute;\n display: block;\n inset-block-start: calc(50% - ${size} / 2);\n width: ${size};\n height: ${size};\n border-style: solid;\n border-color: ${borderColor};\n border-inline-end-width: ${borderWidth};\n border-inline-start-width: 0;\n border-block-start-width: ${borderWidth};\n border-block-end-width: 0;\n transform: rotateZ(45deg) skew(15deg, 15deg);\n pointer-events: none;\n`;\n\nconst createChevronBaseStyles = (config: typeof chevronConfig, borderThicknessVar: string) => css`\n &:not(:nth-of-type(-n + 2))::before,\n &:not(:nth-last-of-type(-n + 2))::after {\n border-inline-end-width: calc(1.5 * ${borderThicknessVar});\n border-block-start-width: calc(1.5 * ${borderThicknessVar});\n }\n\n &:not(:nth-of-type(-n + 2))::before {\n inset-inline-start: ${config.notchInsetStart};\n }\n\n &:not(:nth-last-of-type(-n + 2))::after {\n inset-inline-end: ${config.pointInsetEnd};\n }\n`;\n\nconst createChevronInteractiveStates = (\n config: typeof chevronConfig,\n borderThicknessVar: string,\n includeHover = true\n) => css`\n ${includeHover &&\n css`\n &:has(button:hover)::before,\n &:has(button:hover)::after {\n border-inline-end-width: calc(2 * ${borderThicknessVar});\n border-block-start-width: calc(2 * ${borderThicknessVar});\n }\n `}\n &:has(button:focus-visible)::before,\n &:has(button:focus-visible)::after,\n &:has(button:active)::before,\n &:has(button:active)::after {\n border-inline-end-width: calc(2 * ${borderThicknessVar});\n border-block-start-width: calc(2 * ${borderThicknessVar});\n }\n`;\n\n/**\n * Outer wrapper `<div>` for the stages bar. Applies layered scroll-fade masks and\n * reserves scrollbar space so the fade gradient does not overlap the scrollbar track.\n */\nexport const StyledStagesWrapper = styled.div(({ theme }) => {\n return css`\n --stages-fade-width: calc(${theme.base.spacing} * 2);\n --stages-fade-start: 0;\n --stages-fade-end: 0;\n --stages-scrollbar-reserve: calc(${theme.base.spacing} * 0.25);\n\n /* Places gradient stops one physical pixel outside the element boundary,\n * preventing browser anti-aliasing from creating a semi-transparent seam\n * at mask edges. 1px is the correct unit here: it must be exactly one CSS pixel\n * (independent of font-size), so the mask boundary doesn't introduce a seam at the\n * element edge due to anti-aliasing.\n * See also StyledSentinel, which uses 1px for the same reason.\n */\n /* stylelint-disable-next-line unit-allowed-list -- 1px is intentional; see comment above */\n --mask-edge-overhang: 1px;\n position: relative;\n width: 100%;\n overflow: hidden;\n border-radius: ${theme.components.card['border-radius']};\n border-end-start-radius: var(\n --stages-wrapper-bottom-radius,\n ${theme.components.card['border-radius']}\n );\n border-end-end-radius: var(\n --stages-wrapper-bottom-radius,\n ${theme.components.card['border-radius']}\n );\n mask-image: linear-gradient(black, black),\n linear-gradient(\n to right,\n transparent calc(-1 * var(--mask-edge-overhang)),\n black var(--stages-fade-start),\n black calc(100% - var(--stages-fade-end)),\n transparent calc(100% + var(--mask-edge-overhang))\n );\n mask-size:\n 100% var(--stages-scrollbar-reserve),\n 100% calc(100% - var(--stages-scrollbar-reserve));\n mask-position:\n 0 100%,\n 0 0;\n mask-repeat: no-repeat, no-repeat;\n\n [dir='rtl'] & {\n mask-image: linear-gradient(black, black),\n linear-gradient(\n to right,\n transparent calc(-1 * var(--mask-edge-overhang)),\n black var(--stages-fade-end),\n black calc(100% - var(--stages-fade-start)),\n transparent calc(100% + var(--mask-edge-overhang))\n );\n }\n\n &:has(:focus-visible) {\n box-shadow: ${theme.base.shadow['focus-group']};\n }\n\n @media (pointer: coarse) {\n --stages-fade-width: calc(${theme.base.spacing} * 3);\n mask-image: linear-gradient(\n to right,\n transparent calc(-1 * var(--mask-edge-overhang)),\n black var(--stages-fade-start),\n black calc(100% - var(--stages-fade-end)),\n transparent calc(100% + var(--mask-edge-overhang))\n );\n mask-size: 100% 100%;\n mask-position: 0 0;\n mask-repeat: no-repeat;\n\n [dir='rtl'] & {\n mask-image: linear-gradient(\n to right,\n transparent calc(-1 * var(--mask-edge-overhang)),\n black var(--stages-fade-end),\n black calc(100% - var(--stages-fade-start)),\n transparent calc(100% + var(--mask-edge-overhang))\n );\n }\n }\n `;\n});\n\nStyledStagesWrapper.defaultProps = defaultThemeProp;\n\n/**\n * Scrollable `<ol>` containing all stage chevron items. Sets the `--chevron-spacing`,\n * `--chevron-border-thickness`, and `--segmented-border-thickness` custom properties\n * consumed by child elements.\n */\nexport const StyledStages = styled.ol<{ variant: StageVariant }>(({ theme, variant }) => {\n const isMilestone = variant === 'milestone';\n\n return css`\n --chevron-spacing: ${theme.base.spacing};\n --chevron-border-thickness: ${theme.components.button['border-width']};\n --segmented-border-thickness: calc(2 * ${theme.components.button['border-width']});\n --segmented-width: ${segmentedConfig.width};\n border-radius: ${theme.components.card['border-radius']};\n display: flex;\n padding: 0;\n width: 100%;\n overflow-x: auto;\n overflow-y: hidden;\n list-style: none;\n scrollbar-width: thin;\n scrollbar-color: transparent transparent;\n\n ${isMilestone &&\n css`\n --milestone-size: calc(4 * ${theme.base.spacing});\n --milestone-pulse-min: calc(var(--milestone-size) * 0.1);\n --milestone-pulse-start: ${transparentize(0.5, theme.base.palette.interactive)};\n --milestone-pulse-spread: calc(var(--milestone-size) * 0.25);\n --milestone-pulse-end: ${transparentize(0.75, theme.base.palette.interactive)};\n padding-block: ${theme.base.spacing};\n padding-inline: calc(var(--milestone-size) * 0.25);\n `}\n\n &:hover,\n &:focus-within {\n scrollbar-color: var(\n --stages-scrollbar-thumb,\n ${transparentize(0.4, theme.base.palette['border-line'])}\n )\n var(--stages-scrollbar-track, transparent);\n }\n\n &::-webkit-scrollbar {\n height: 0.25rem;\n }\n\n @media (pointer: coarse) {\n /* 3.203 = exact alignment; slightly overdone default to clear sub-pixel rounding on 3× displays */\n --stages-coarse-notch-correction: 3.35;\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n `;\n});\n\nStyledStages.defaultProps = defaultThemeProp;\n\n/**\n * A sentinel is an invisible 1 px <li> placed at each end of the scrollable stage list.\n * It is observed by an IntersectionObserver; when it scrolls out of view, the component sets\n * --stages-fade-start or --stages-fade-end to show a gradient fade indicating more stages\n * are reachable by scrolling. When it comes back into view the property is reset to 0.\n *\n * Sentinel elements carry aria-hidden=\"true\" so they are valid list items semantically.\n * Because styled-components scopes all CSS to a generated class, the chevron and layout rules\n * in StyledStageContainer never apply to these elements — they carry a different class.\n * CSS type-based selectors (:nth-of-type, :nth-last-of-type) in StyledStageContainer are\n * offset by 1 at each end to skip the sentinels and target only real stage items.\n */\nexport const StyledSentinel = styled.li`\n flex-shrink: 0;\n\n /* NOTE: the sentinel must occupy\n * a single physical pixel so IntersectionObserver can detect it at threshold 0 while having\n * negligible layout impact. A rem value could collapse to zero at small font sizes.\n */\n /* stylelint-disable-next-line unit-allowed-list -- 1px is intentional */\n width: 1px;\n /* stylelint-disable-next-line unit-allowed-list -- 1px is intentional */\n height: 1px;\n padding: 0;\n margin: 0;\n pointer-events: none;\n\n /* Collapse the sentinel's layout footprint to zero on the side facing the stages.\n * Without this, each 1px sentinel creates a visible gap between the stage buttons\n * and the left/right edges of the wrapper. The sentinel remains in flow (required\n * for IntersectionObserver scroll detection) but no longer displaces stage content.\n */\n &:first-of-type {\n /* stylelint-disable-next-line unit-allowed-list -- 1px matches sentinel width */\n margin-inline-end: -1px;\n }\n\n &:last-of-type {\n /* stylelint-disable-next-line unit-allowed-list -- 1px matches sentinel width */\n margin-inline-start: -1px;\n }\n`;\n\nStyledSentinel.defaultProps = defaultThemeProp;\n\n/**\n * Inner `<span>` holding stage label content. Optionally applies `text-overflow: ellipsis`\n * for stages with long labels.\n */\nexport const StyledInnerStage = styled.span<{ ellipsis?: boolean }>(({ theme, ellipsis }) => {\n return css`\n display: inline-flex;\n align-items: center;\n gap: calc(0.25 * ${theme.base.spacing});\n text-align: center;\n white-space: nowrap;\n padding-inline-start: calc(0.875 * ${theme.base.spacing});\n padding-inline-end: calc(1.125 * ${theme.base.spacing});\n ${ellipsis &&\n css`\n overflow: hidden;\n text-overflow: ellipsis;\n `}\n `;\n});\n\nStyledInnerStage.defaultProps = defaultThemeProp;\n\nconst stageButtonChevronStyles = (theme: DefaultTheme) => css`\n padding-inline-start: calc(2 * var(--chevron-spacing));\n padding-inline-end: var(--chevron-spacing);\n width: calc(100% + ${chevronConfig.width});\n --stage-chevron-width: ${chevronConfig.width};\n\n ${StyledInnerStage} {\n transform: translateX(calc(-0.25 * var(--chevron-spacing)));\n opacity: ${theme.base.transparency['transparent-2']};\n }\n\n ${stageClipPath(true, true)}\n\n [dir='rtl'] & ${StyledInnerStage} {\n transform: translateX(calc(0.25 * var(--chevron-spacing)));\n }\n\n [dir='rtl'] & {\n ${stageClipPath(true, true, true)}\n }\n\n @media (pointer: coarse) {\n padding-inline-start: calc(2.25 * var(--chevron-spacing));\n width: calc(100% + ${chevronConfig.coarseWidth});\n --stage-chevron-width: ${chevronConfig.coarseWidth};\n }\n`;\n\nconst stageButtonSegmentedStyles = (theme: DefaultTheme) => css`\n width: 100%;\n padding-inline-start: calc(var(--segmented-width) + var(--chevron-spacing));\n padding-inline-end: calc(var(--segmented-width) + var(--chevron-spacing));\n\n ${StyledInnerStage} {\n opacity: ${theme.base.transparency['transparent-2']};\n }\n\n ${segmentedClipPath(true, true)}\n\n [dir='rtl'] & {\n ${segmentedClipPath(true, true, true)}\n }\n`;\n\nconst stageButtonVariants: Record<StageVariant, (theme: DefaultTheme) => ReturnType<typeof css>> = {\n chevron: stageButtonChevronStyles,\n segmented: stageButtonSegmentedStyles,\n milestone: () => css``\n};\n\n/**\n * Clickable `<button>` for a single stage. Renders the chevron clip-path shape and\n * applies status-based background and foreground colours.\n */\nexport const StyledStage = styled.button<{\n status: 'completed' | 'current' | 'pending';\n readOnly?: boolean;\n variant: StageVariant;\n}>(\n ({\n theme,\n theme: {\n base: { palette, 'hit-area': hitArea, transparency, 'font-weight': fontWeight },\n components: {\n 'case-view': { stages }\n }\n },\n status,\n readOnly,\n variant: shape\n }) => {\n const stageForeground = calculateForegroundColor(\n stages.status[status].background,\n stages.status[status]['foreground-color']\n );\n\n return css`\n background: ${stages.status[status].background};\n color: ${stageForeground};\n outline: none;\n border-color: transparent;\n border-width: calc(2 * var(--chevron-border-thickness)) 0;\n border-style: solid;\n position: relative;\n\n /* Browsers do not reliably apply flex align-items: stretch to <button> elements.\n * Adding 0.0625rem (1px at default font size) to min-height compensates so the button fills its <li> container,\n * keeping the clipped chevron background flush with the top and bottom borders. */\n min-height: calc(5 * var(--chevron-spacing) + 0.0625rem);\n margin-inline-start: 0;\n margin-inline-end: 0;\n\n ${stageButtonVariants[shape](theme)}\n\n ${!readOnly &&\n css`\n &:hover {\n border-color: ${palette['border-line']};\n }\n `}\n\n &:focus-visible {\n border-color: ${palette.interactive};\n }\n\n &:active {\n border-color: ${palette.interactive};\n\n ${StyledInnerStage} {\n opacity: ${transparency['transparent-3']};\n }\n }\n\n &[aria-current] {\n ${StyledInnerStage} {\n font-weight: ${fontWeight.bold};\n opacity: 1;\n }\n\n ${!readOnly &&\n css`\n &:hover {\n ${StyledInnerStage} {\n opacity: ${transparency['transparent-2']};\n }\n }\n `}\n }\n\n @media (pointer: coarse) {\n min-height: ${hitArea['finger-min']};\n }\n `;\n }\n);\n\nStyledStage.defaultProps = defaultThemeProp;\n\n/**\n * Checkmark icon shown inside completed stages, tinted to match the stage foreground colour.\n */\nexport const StyledStageCompleteIcon = styled(Icon)(({\n theme: {\n components: {\n 'case-view': {\n stages: {\n status: {\n completed: { 'foreground-color': foregroundColor, background }\n }\n }\n }\n }\n }\n}) => {\n const stageForeground = calculateForegroundColor(background, foregroundColor);\n return css`\n color: ${stageForeground};\n `;\n});\n\nStyledStageCompleteIcon.defaultProps = defaultThemeProp;\n\n/**\n * Stage label text. Renders in bold weight when the stage is the current active stage.\n */\nexport const StyledStageText = styled(Text)<{ isCurrent?: boolean }>(\n ({ theme, isCurrent }) => css`\n font-weight: ${isCurrent ? theme.base['font-weight'].bold : theme.base['font-weight'].normal};\n `\n);\n\nStyledStageText.defaultProps = defaultThemeProp;\n\nconst stageContainerChevronStyles = (theme: DefaultTheme, readOnly: boolean | undefined) => {\n const includeHover = !readOnly;\n return css`\n /* Chevron: negative-margin overlap so consecutive stages share a boundary */\n margin-inline-start: calc(-1 * ${chevronConfig.width});\n\n &:nth-of-type(2) {\n margin-inline-start: 0;\n }\n\n /* Chevron boundary indicators via ::before (left notch) and ::after (right point) pseudo-elements */\n &:not(:nth-of-type(-n + 2))::before {\n ${createChevronPseudo(\n 'calc(2 * var(--chevron-border-thickness))',\n theme.base.palette['border-line'],\n chevronConfig.squareSize\n )}\n /* Elevate ::before above the button so it renders via the same pathway as ::after.\n * Without z-index, ::before (first in DOM) is painted first and then covered by the\n * button, making it only partially visible through the clip-path notch window. This\n * causes thicker interactive-state borders (3×) to look thinner on the left boundary\n * than on the right (::after, which paints last and is always fully visible).\n * The ::before tip's rightmost extent is at --stage-chevron-width from the <li> start,\n * which is before the stage text (padding-inline-start: 2 × spacing), so no content overlap.\n */\n z-index: 1;\n }\n\n &:not(:nth-last-of-type(-n + 2))::after {\n ${createChevronPseudo(\n 'calc(2 * var(--chevron-border-thickness))',\n theme.base.palette['border-line'],\n chevronConfig.squareSize\n )}\n }\n\n [dir='rtl'] &::before,\n [dir='rtl'] &::after {\n transform: rotateZ(-45deg) skew(-15deg, -15deg);\n }\n\n /* Chevron positioning: 45° rotated squares create visual tips via offsets:\n * left ≈ 0.86 × spacing, right ≈ 1.445 × spacing (accounts for skew correction)\n */\n ${createChevronBaseStyles(chevronConfig, 'var(--chevron-border-thickness)')}\n ${createChevronInteractiveStates(\n chevronConfig,\n 'var(--chevron-border-thickness)',\n includeHover\n )}\n\n /* Thicken chevrons to visually match button top/bottom border on any colored state.\n * At 45° rotation, border appears 1/sin(45°) ≈ 0.707× thinner, so 2× border ≈ 1.4× horizontal border weight.\n */\n ${includeHover &&\n css`\n &:has(button:hover)::before,\n &:has(button:hover)::after {\n border-color: ${theme.base.palette['border-line']};\n }\n `}\n\n &:has(button:focus-visible)::before,\n &:has(button:focus-visible)::after {\n border-color: ${theme.base.palette.interactive};\n }\n\n &:has(button:active)::before,\n &:has(button:active)::after {\n border-color: ${theme.base.palette.interactive};\n }\n\n /* First stage: no left notch, extended width to cover the full left edge */\n &:nth-of-type(2):not(:nth-last-of-type(2)) > ${StyledStage} {\n --stage-chevron-width: ${chevronConfig.width};\n width: calc(100% + (2 * var(--stage-chevron-width)));\n padding-inline-start: calc(var(--chevron-spacing));\n ${stageClipPath(false, true)}\n\n ${includeHover &&\n css`\n /* Inline-start interactive indicator via inset shadow — avoids border-color bleeding through gradient backgrounds */\n &:hover {\n box-shadow: inset calc(2 * var(--chevron-border-thickness)) 0 0\n ${theme.base.palette['border-line']};\n\n [dir='rtl'] & {\n box-shadow: inset calc(-2 * var(--chevron-border-thickness)) 0 0\n ${theme.base.palette['border-line']};\n }\n }\n `}\n\n &:focus-visible,\n &:active {\n box-shadow: inset calc(2 * var(--chevron-border-thickness)) 0 0\n ${theme.base.palette.interactive};\n\n [dir='rtl'] & {\n box-shadow: inset calc(-2 * var(--chevron-border-thickness)) 0 0\n ${theme.base.palette.interactive};\n }\n }\n\n @media (pointer: coarse) {\n --stage-chevron-width: ${chevronConfig.coarseWidth};\n width: calc(100% + (2 * var(--stage-chevron-width)));\n }\n }\n\n /* Last stage: no right point */\n &:nth-last-of-type(2):not(:nth-of-type(2)) > ${StyledStage} {\n --stage-chevron-width: ${chevronConfig.width};\n padding-inline-end: 0;\n width: 100%;\n ${stageClipPath(true, false)}\n\n ${includeHover &&\n css`\n /* Inline-end interactive indicator via inset shadow — avoids border-color bleeding through gradient backgrounds */\n &:hover {\n box-shadow: inset calc(-2 * var(--chevron-border-thickness)) 0 0\n ${theme.base.palette['border-line']};\n\n [dir='rtl'] & {\n box-shadow: inset calc(2 * var(--chevron-border-thickness)) 0 0\n ${theme.base.palette['border-line']};\n }\n }\n `}\n\n &:focus-visible,\n &:active {\n box-shadow: inset calc(-2 * var(--chevron-border-thickness)) 0 0\n ${theme.base.palette.interactive};\n\n [dir='rtl'] & {\n box-shadow: inset calc(2 * var(--chevron-border-thickness)) 0 0\n ${theme.base.palette.interactive};\n }\n }\n\n @media (pointer: coarse) {\n --stage-chevron-width: ${chevronConfig.coarseWidth};\n }\n }\n\n /* RTL: flip clip-paths for first and last stages */\n [dir='rtl'] &:nth-of-type(2):not(:nth-last-of-type(2)) > ${StyledStage} {\n ${stageClipPath(true, false, true)}\n }\n\n [dir='rtl'] &:nth-last-of-type(2):not(:nth-of-type(2)) > ${StyledStage} {\n ${stageClipPath(false, true, true)}\n }\n\n /* Single stage: plain rectangle — no clip-path notch, inset shadows on both sides */\n &:nth-of-type(2):nth-last-of-type(2) > ${StyledStage} {\n --stage-chevron-width: ${chevronConfig.width};\n clip-path: none;\n padding-inline-start: calc(var(--chevron-spacing));\n\n ${includeHover &&\n css`\n &:hover {\n box-shadow:\n inset calc(2 * var(--chevron-border-thickness)) 0 0 ${theme.base.palette['border-line']},\n inset calc(-2 * var(--chevron-border-thickness)) 0 0\n ${theme.base.palette['border-line']};\n }\n `}\n\n &:focus-visible,\n &:active {\n box-shadow:\n inset calc(2 * var(--chevron-border-thickness)) 0 0 ${theme.base.palette.interactive},\n inset calc(-2 * var(--chevron-border-thickness)) 0 0 ${theme.base.palette.interactive};\n }\n\n @media (pointer: coarse) {\n --stage-chevron-width: ${chevronConfig.coarseWidth};\n }\n }\n\n @media (pointer: coarse) {\n margin-inline-start: calc(-1 * ${chevronConfig.coarseWidth});\n\n &:not(:nth-of-type(-n + 2))::before,\n &:not(:nth-last-of-type(-n + 2))::after {\n inset-block-start: calc(50% - ${chevronConfig.coarseSquareSize} / 2);\n width: ${chevronConfig.coarseSquareSize};\n height: ${chevronConfig.coarseSquareSize};\n border-inline-end-width: calc(2 * var(--chevron-border-thickness));\n border-block-start-width: calc(2 * var(--chevron-border-thickness));\n }\n\n &:not(:nth-of-type(-n + 2))::before {\n inset-inline-start: ${chevronConfig.coarseNotchInsetStart};\n }\n\n &:not(:nth-last-of-type(-n + 2))::after {\n inset-inline-end: 0;\n }\n }\n `;\n};\n\nconst stageContainerSegmentedStyles = (theme: DefaultTheme, readOnly: boolean | undefined) => {\n const includeHover = !readOnly;\n\n return css`\n --segmented-edge-thickness: var(--chevron-border-thickness);\n\n /* Segmented: stages overlap by --segmented-width so parallelogram edges meet flush */\n margin-inline-start: calc(-1 * var(--segmented-width));\n\n &:nth-of-type(2) {\n margin-inline-start: 0;\n }\n\n /* Left segmented border strip: diagonal clip-path on each stage's inline-start edge (stages 2..N).\n * The strip goes from (segmented-width, 0%) at top to (0%, 100%) at bottom of the pseudo,\n * matching the parallelogram's inline-start clip edge exactly.\n */\n &:not(:nth-of-type(-n + 2))::before {\n content: '';\n position: absolute;\n inset-block: 0;\n inset-inline-start: 0;\n width: calc(var(--segmented-width) + var(--segmented-edge-thickness));\n clip-path: polygon(\n var(--segmented-width) 0%,\n calc(var(--segmented-width) + var(--segmented-edge-thickness)) 0%,\n var(--segmented-edge-thickness) 100%,\n 0% 100%\n );\n background: ${theme.base.palette['border-line']};\n pointer-events: none;\n z-index: 1;\n }\n\n /* Right segmented border strip: diagonal clip-path on each stage's inline-end edge (stages 1..N-1). */\n &:not(:nth-last-of-type(-n + 2))::after {\n content: '';\n position: absolute;\n inset-block: 0;\n inset-inline-end: 0;\n width: calc(var(--segmented-width) + var(--segmented-edge-thickness));\n clip-path: polygon(\n var(--segmented-width) 0%,\n calc(var(--segmented-width) + var(--segmented-edge-thickness)) 0%,\n var(--segmented-edge-thickness) 100%,\n 0% 100%\n );\n background: ${theme.base.palette['border-line']};\n pointer-events: none;\n z-index: 2;\n }\n\n /* Interactive states: update pseudo background to signal hover/focus/active */\n ${includeHover &&\n css`\n &:has(button:hover) {\n --segmented-edge-thickness: var(--segmented-border-thickness);\n }\n\n &:has(button:hover)::before,\n &:has(button:hover)::after {\n background: ${theme.base.palette['border-line']};\n }\n `}\n\n &:has(button:focus-visible),\n &:has(button:active) {\n --segmented-edge-thickness: var(--segmented-border-thickness);\n }\n\n &:has(button:focus-visible)::before,\n &:has(button:focus-visible)::after,\n &:has(button:active)::before,\n &:has(button:active)::after {\n background: ${theme.base.palette.interactive};\n }\n\n /* First stage (no inline-start cut): flat left edge + inset shadow edge indicator */\n &:nth-of-type(2):not(:nth-last-of-type(2)) > ${StyledStage} {\n ${segmentedClipPath(false, true)}\n\n ${includeHover &&\n css`\n &:hover {\n box-shadow: inset var(--segmented-border-thickness) 0 0\n ${theme.base.palette['border-line']};\n\n [dir='rtl'] & {\n box-shadow: inset calc(-1 * var(--segmented-border-thickness)) 0 0\n ${theme.base.palette['border-line']};\n }\n }\n `}\n\n &:focus-visible,\n &:active {\n box-shadow: inset var(--segmented-border-thickness) 0 0 ${theme.base.palette.interactive};\n\n [dir='rtl'] & {\n box-shadow: inset calc(-1 * var(--segmented-border-thickness)) 0 0\n ${theme.base.palette.interactive};\n }\n }\n }\n\n /* Last stage (no inline-end cut): flat right edge + inset shadow edge indicator */\n &:nth-last-of-type(2):not(:nth-of-type(2)) > ${StyledStage} {\n ${segmentedClipPath(true, false)}\n\n ${includeHover &&\n css`\n &:hover {\n box-shadow: inset calc(-1 * var(--segmented-border-thickness)) 0 0\n ${theme.base.palette['border-line']};\n\n [dir='rtl'] & {\n box-shadow: inset var(--segmented-border-thickness) 0 0\n ${theme.base.palette['border-line']};\n }\n }\n `}\n\n &:focus-visible,\n &:active {\n box-shadow: inset calc(-1 * var(--segmented-border-thickness)) 0 0\n ${theme.base.palette.interactive};\n\n [dir='rtl'] & {\n box-shadow: inset var(--segmented-border-thickness) 0 0 ${theme.base.palette.interactive};\n }\n }\n }\n\n /* RTL: flip clip-paths for first and last stage buttons */\n [dir='rtl'] &:nth-of-type(2):not(:nth-last-of-type(2)) > ${StyledStage} {\n ${segmentedClipPath(true, false, true)}\n }\n\n [dir='rtl'] &:nth-last-of-type(2):not(:nth-of-type(2)) > ${StyledStage} {\n ${segmentedClipPath(false, true, true)}\n }\n\n /* Single stage: plain rectangle — no diagonal cuts, inset shadows on both sides */\n &:nth-of-type(2):nth-last-of-type(2) > ${StyledStage} {\n clip-path: none;\n padding-inline-start: calc(var(--chevron-spacing));\n padding-inline-end: calc(var(--chevron-spacing));\n\n ${includeHover &&\n css`\n &:hover {\n box-shadow:\n inset var(--segmented-border-thickness) 0 0 ${theme.base.palette['border-line']},\n inset calc(-1 * var(--segmented-border-thickness)) 0 0\n ${theme.base.palette['border-line']};\n }\n `}\n\n &:focus-visible,\n &:active {\n box-shadow:\n inset var(--segmented-border-thickness) 0 0 ${theme.base.palette.interactive},\n inset calc(-1 * var(--segmented-border-thickness)) 0 0 ${theme.base.palette.interactive};\n }\n }\n\n /* RTL: mirror the pseudo clip-paths.\n * In LTR the strip goes top-right → bottom-left (polygon A 0%, A+B 0%, B 100%, 0% 100%).\n * In RTL the pseudo is positioned at the opposite physical edge via logical inset properties,\n * so the strip must go top-left → bottom-right to stay aligned with the flipped slant.\n */\n [dir='rtl'] &:not(:nth-of-type(-n + 2))::before,\n [dir='rtl'] &:not(:nth-last-of-type(-n + 2))::after {\n clip-path: polygon(\n 0% 0%,\n var(--segmented-edge-thickness) 0%,\n calc(var(--segmented-width) + var(--segmented-edge-thickness)) 100%,\n var(--segmented-width) 100%\n );\n }\n\n @media (pointer: coarse) {\n /* A single CSS custom property update propagates to all margin and clip-path consumers */\n --segmented-width: ${segmentedConfig.coarseWidth};\n }\n `;\n};\n\nconst stageContainerVariants: Record<\n StageVariant,\n (theme: DefaultTheme, readOnly: boolean | undefined) => ReturnType<typeof css>\n> = {\n chevron: stageContainerChevronStyles,\n segmented: stageContainerSegmentedStyles,\n milestone: () => css``\n};\n\n/**\n * `<li>` container for a single stage item. Manages negative-margin chevron overlap,\n * pseudo-element positioning, and z-index stacking for interactive states.\n */\nexport const StyledStageContainer = styled.li<{\n readOnly?: boolean;\n variant: StageVariant;\n}>(\n ({\n theme,\n theme: {\n components: {\n card: { 'border-radius': borderRadius }\n }\n },\n readOnly,\n variant: shape\n }) => {\n return css`\n display: flex;\n position: relative;\n\n /* Resting z-index: for same-z siblings, DOM order determines paint order.\n * All non-last <li>s have z-index:1 so the later (right) <li>'s ::before paints on top\n * at internal boundaries; the last <li> has no z-index so its left neighbor's ::after\n * wins at the final boundary. On hover/focus/active, the interacting <li> gains z:2/3\n * and its own pseudo-element surfaces for that boundary, regardless of which side.\n */\n &:not(:nth-last-of-type(-n + 2)) {\n z-index: 1;\n }\n\n &:has(button:focus-visible),\n &:has(button:active) {\n z-index: 2;\n }\n\n ${!readOnly &&\n css`\n &:has(button:hover) {\n z-index: 3;\n }\n `}\n\n /* Corner radii are shared across all shape variants */\n &:nth-of-type(2):not(:nth-last-of-type(2)) > ${StyledStage} {\n border-start-start-radius: ${borderRadius};\n border-end-start-radius: ${borderRadius};\n }\n\n &:nth-last-of-type(2):not(:nth-of-type(2)) > ${StyledStage} {\n border-start-end-radius: ${borderRadius};\n border-end-end-radius: ${borderRadius};\n }\n\n &:nth-of-type(2):nth-last-of-type(2) > ${StyledStage} {\n border-radius: ${borderRadius};\n width: 100%;\n }\n\n ${stageContainerVariants[shape](theme, readOnly)}\n `;\n }\n);\n\nStyledStageContainer.defaultProps = defaultThemeProp;\n\n/**\n * `<ol>` list of sub-step items displayed below the stages bar when a stage is expanded.\n */\nexport const StyledStepsContainer = styled.ol(({ theme }) => {\n return css`\n list-style-type: none;\n margin: calc(2 * ${theme.base.spacing}) 0 calc(3 * ${theme.base.spacing});\n\n &:empty {\n margin-block-end: 0;\n }\n `;\n});\n\nStyledStepsContainer.defaultProps = defaultThemeProp;\n\n/**\n * Individual step `<li>` within a stage. Dims text and icon at reduced opacity when completed.\n */\nexport const StyledStep = styled.li<{ completed: boolean }>(({ completed, theme }) => {\n const textOpacity = completed ? theme.base.transparency['transparent-2'] : 1;\n\n return css`\n border-radius: 0;\n margin-block-end: calc(${theme.base.spacing});\n color: ${theme.base.palette['foreground-color']};\n\n &:last-child {\n margin-block-end: 0;\n }\n\n & > ${StyledIcon} {\n text-align: center;\n }\n\n div {\n opacity: ${textOpacity};\n }\n `;\n});\n\nStyledStep.defaultProps = defaultThemeProp;\n\n/**\n * Small datetime label rendered beneath a step. Displayed at the `xs` font size\n * and reduced opacity.\n */\nexport const StyledDateTimeDisplay = styled(DateTimeDisplay)(({ theme }) => {\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n return css`\n font-size: ${fontSize.xs};\n opacity: ${theme.base.transparency['transparent-2']};\n `;\n});\n\nStyledDateTimeDisplay.defaultProps = defaultThemeProp;\n\n/**\n * Container `<div>` for the stage glimpse preview panel, constrained to a small max-width.\n */\nexport const StyledStageGlimpse = styled.div(({ theme }) => {\n return css`\n max-width: ${theme.base['content-width'].sm};\n `;\n});\n\nStyledStageGlimpse.defaultProps = defaultThemeProp;\n\nconst milestonePulse = keyframes`\n 0%, 100% {\n box-shadow: 0 0 0 var(--milestone-pulse-min) var(--milestone-pulse-start);\n }\n 60% {\n box-shadow: 0 0 0 var(--milestone-pulse-spread) var(--milestone-pulse-end);\n }\n`;\n\nexport const StyledMilestoneLabel = styled.span(({ theme }) => {\n return css`\n color: ${theme.base.palette['foreground-color']};\n line-height: ${theme.base['line-height']};\n text-align: center;\n align-self: stretch;\n overflow-wrap: break-word;\n padding-inline: calc(0.25 * ${theme.base.spacing});\n `;\n});\n\nStyledMilestoneLabel.defaultProps = defaultThemeProp;\n\n/**\n * `<li>` container for a single stage item in the 'milestone' shape variant.\n * Renders column-flex layout (milestone above, label below) and draws the\n * horizontal connector as a single line from this milestone's centre to the next\n * milestone's centre (::after), sized so every connector has an identical length.\n */\nexport const StyledMilestoneStageContainer = styled.li<{\n status: 'completed' | 'current' | 'pending';\n nextCompleted: boolean;\n readOnly?: boolean;\n}>(({ theme, nextCompleted, status }) => {\n const {\n base: {\n palette: { interactive, 'border-line': borderLine },\n spacing\n }\n } = theme;\n\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n\n const connectorFilled = nextCompleted;\n\n return css`\n --connector-height: ${connectorFilled ? '0.25rem' : '0.125rem'};\n --connector-display: block;\n --connector-start: 50%;\n --connector-width: 100%;\n --connector-bg: ${connectorFilled ? interactive : borderLine};\n --connector-forced-bg: ${connectorFilled ? 'Highlight' : 'CanvasText'};\n display: flex;\n flex-direction: column;\n align-items: center;\n flex: 1 0 0;\n font-size: ${fontSize.xs};\n font-weight: ${status === 'current'\n ? theme.base['font-weight']['semi-bold']\n : theme.base['font-weight'].normal};\n min-width: 15ch;\n position: relative;\n gap: ${spacing};\n z-index: 1;\n\n &:nth-of-type(2):not(:nth-last-of-type(2)) {\n --connector-start: calc(var(--milestone-size) / 2);\n --connector-width: calc(200% - var(--milestone-size));\n align-items: flex-start;\n flex: 0.5 0 calc(var(--milestone-size) / 2);\n min-width: calc(7.5ch + var(--milestone-size) / 2);\n\n ${StyledMilestoneLabel} {\n text-align: start;\n }\n }\n\n &:nth-last-of-type(2):not(:nth-of-type(2)) {\n --connector-display: none;\n align-items: flex-end;\n flex: 0.5 0 calc(var(--milestone-size) / 2);\n min-width: calc(7.5ch + var(--milestone-size) / 2);\n\n ${StyledMilestoneLabel} {\n text-align: end;\n }\n }\n\n &:nth-of-type(2):nth-last-of-type(2) {\n --connector-display: none;\n align-items: center;\n flex: 1 0 0;\n }\n\n &::after {\n content: '';\n display: var(--connector-display);\n position: absolute;\n inset-block-start: calc(var(--milestone-size) / 2 - var(--connector-height) / 2);\n inset-inline-start: var(--connector-start);\n width: var(--connector-width);\n height: var(--connector-height);\n background: var(--connector-bg);\n pointer-events: none;\n\n @media (forced-colors: active) {\n background: var(--connector-forced-bg);\n }\n }\n `;\n});\n\nStyledMilestoneStageContainer.defaultProps = defaultThemeProp;\n\nexport const StyledMilestoneButton = styled.button<{\n status: 'completed' | 'current' | 'pending';\n readOnly?: boolean;\n}>(({ theme, status, readOnly }) => {\n const {\n base: {\n 'hit-area': hitArea,\n animation: {\n speed: animationSpeed,\n timing: { ease: animationTiming }\n },\n shadow: { focus: focusShadow }\n },\n components: {\n button: { 'border-width': borderWidth },\n 'case-view': { stages }\n }\n } = theme;\n\n const stageForeground = calculateForegroundColor(\n stages.status[status].background,\n stages.status[status]['foreground-color']\n );\n\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n\n const completedBorderColor =\n status === 'completed'\n ? tryCatch(\n () => darken(0.12, stages.status.completed.background),\n () => 'transparent'\n )\n : '';\n\n return css`\n position: relative;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n border-radius: 50%;\n width: var(--milestone-size);\n height: var(--milestone-size);\n background: ${stages.status[status].background};\n color: ${stageForeground};\n font-size: ${fontSize.s};\n font-weight: ${status === 'current'\n ? theme.base['font-weight']['semi-bold']\n : theme.base['font-weight'].normal};\n outline: none;\n border: none;\n cursor: ${readOnly ? 'default' : 'pointer'};\n transition: box-shadow calc(2 * ${animationSpeed}) ${animationTiming};\n\n ${status === 'completed' &&\n css`\n box-shadow: inset 0 0 0 calc(2 * ${borderWidth}) ${completedBorderColor};\n `}\n\n &:focus-visible {\n box-shadow: ${focusShadow};\n\n @media (forced-colors: active) {\n outline: 0.125rem solid Highlight;\n outline-offset: 0.125rem;\n }\n }\n\n ${!readOnly &&\n css`\n &:hover {\n filter: brightness(0.85);\n }\n\n &:active {\n filter: brightness(0.85);\n }\n `}\n\n ${status === 'current' &&\n !readOnly &&\n css`\n &::before {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: 50%;\n pointer-events: none;\n animation: ${milestonePulse} 2s ease-out infinite;\n\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n }\n `}\n\n /* Expanded hit area */\n &::after {\n content: '';\n position: absolute;\n width: ${hitArea['mouse-min']};\n height: ${hitArea['mouse-min']};\n inset-block-start: calc((${hitArea['mouse-min']} - var(--milestone-size)) / -2);\n inset-inline-start: calc((${hitArea['mouse-min']} - var(--milestone-size)) / -2);\n\n @media (pointer: coarse) {\n width: ${hitArea['finger-min']};\n height: ${hitArea['finger-min']};\n inset-block-start: calc((${hitArea['finger-min']} - var(--milestone-size)) / -2);\n inset-inline-start: calc((${hitArea['finger-min']} - var(--milestone-size)) / -2);\n }\n }\n\n @media (forced-colors: active) {\n border: 0.125rem solid ButtonText;\n }\n `;\n});\n\nStyledMilestoneButton.defaultProps = defaultThemeProp;\n\n/**\n * Visually hidden `<p>` providing an accessible description for the stages list,\n * announced by screen readers but not displayed on screen.\n */\nexport const StyledStagesDescription = styled.p`\n display: none;\n`;\n\nStyledStagesDescription.defaultProps = defaultThemeProp;\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pega/cosmos-react-work",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.19.0",
|
|
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.
|
|
18
|
-
"@pega/cosmos-react-rte": "9.
|
|
17
|
+
"@pega/cosmos-react-core": "9.19.0",
|
|
18
|
+
"@pega/cosmos-react-rte": "9.19.0",
|
|
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",
|