@pega/cosmos-react-work 9.0.0-build.29.19 → 9.0.0-build.29.20

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.
@@ -21,7 +21,7 @@ export interface CaseHierarchyProps extends OmitStrict<StandardTreeProps, 'curre
21
21
  /** If set, will render a search input above the tree to search nodes. */
22
22
  search?: {
23
23
  value: string;
24
- handler?: (value: string) => void;
24
+ handler: (value: string) => void;
25
25
  };
26
26
  /** A ref to the wrapping element. */
27
27
  ref?: Ref<HTMLDivElement>;
@@ -1 +1 @@
1
- {"version":3,"file":"CaseHierarchy.types.d.ts","sourceRoot":"","sources":["../../../src/components/CaseHierarchy/CaseHierarchy.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,KAAK,EACV,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACT,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,iBAAkB,SAAQ,UAAU,CAAC,gBAAgB,EAAE,OAAO,CAAC;IAC9E,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBACf,SAAQ,UAAU,CAAC,iBAAiB,EAAE,eAAe,GAAG,KAAK,GAAG,OAAO,CAAC,EACtE,UAAU;IACZ,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACzB,mEAAmE;IACnE,aAAa,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,0EAA0E;IAC1E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;IAC9D,qCAAqC;IACrC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;CAC3B"}
1
+ {"version":3,"file":"CaseHierarchy.types.d.ts","sourceRoot":"","sources":["../../../src/components/CaseHierarchy/CaseHierarchy.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,KAAK,EACV,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACT,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,iBAAkB,SAAQ,UAAU,CAAC,gBAAgB,EAAE,OAAO,CAAC;IAC9E,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBACf,SAAQ,UAAU,CAAC,iBAAiB,EAAE,eAAe,GAAG,KAAK,GAAG,OAAO,CAAC,EACtE,UAAU;IACZ,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACzB,mEAAmE;IACnE,aAAa,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,0EAA0E;IAC1E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;IAC7D,qCAAqC;IACrC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;CAC3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"CaseHierarchy.types.js","sourceRoot":"","sources":["../../../src/components/CaseHierarchy/CaseHierarchy.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Ref } from 'react';\n\nimport type {\n IconProps,\n OmitStrict,\n StandardTreeNode,\n StandardTreeProps,\n TestIdProp,\n TreeNode\n} from '@pega/cosmos-react-core';\n\nexport interface CaseHierarchyNode extends OmitStrict<StandardTreeNode, 'nodes'> {\n nodes?: CaseHierarchyNode[];\n caseTypeId?: string;\n}\n\nexport interface CaseHierarchyProps\n extends OmitStrict<StandardTreeProps, 'currentNodeId' | 'ref' | 'nodes'>,\n TestIdProp {\n nodes: CaseHierarchyNode[];\n /** Heading shown on the Card wrapping the component. */\n heading: string;\n /** The icon rendered as part of the header. If not set will default to 'folder-nested'. */\n icon?: IconProps['name'];\n /** The currently selected case, will be highlighted by default. */\n currentCaseId?: TreeNode['id'];\n /** If set, a progress indicator will render in place of the component. */\n loading?: boolean;\n /** If set, an error state will render in place of the component. */\n error?: boolean;\n /** Will render the provided number in a count badge next to the heading. */\n count?: number;\n /** If set, will render a search input above the tree to search nodes. */\n search?: { value: string; handler?: (value: string) => void };\n /** A ref to the wrapping element. */\n ref?: Ref<HTMLDivElement>;\n}\n"]}
1
+ {"version":3,"file":"CaseHierarchy.types.js","sourceRoot":"","sources":["../../../src/components/CaseHierarchy/CaseHierarchy.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Ref } from 'react';\n\nimport type {\n IconProps,\n OmitStrict,\n StandardTreeNode,\n StandardTreeProps,\n TestIdProp,\n TreeNode\n} from '@pega/cosmos-react-core';\n\nexport interface CaseHierarchyNode extends OmitStrict<StandardTreeNode, 'nodes'> {\n nodes?: CaseHierarchyNode[];\n caseTypeId?: string;\n}\n\nexport interface CaseHierarchyProps\n extends OmitStrict<StandardTreeProps, 'currentNodeId' | 'ref' | 'nodes'>,\n TestIdProp {\n nodes: CaseHierarchyNode[];\n /** Heading shown on the Card wrapping the component. */\n heading: string;\n /** The icon rendered as part of the header. If not set will default to 'folder-nested'. */\n icon?: IconProps['name'];\n /** The currently selected case, will be highlighted by default. */\n currentCaseId?: TreeNode['id'];\n /** If set, a progress indicator will render in place of the component. */\n loading?: boolean;\n /** If set, an error state will render in place of the component. */\n error?: boolean;\n /** Will render the provided number in a count badge next to the heading. */\n count?: number;\n /** If set, will render a search input above the tree to search nodes. */\n search?: { value: string; handler: (value: string) => void };\n /** A ref to the wrapping element. */\n ref?: Ref<HTMLDivElement>;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"CaseWorkflow.d.ts","sourceRoot":"","sources":["../../../src/components/GenAICoach/CaseWorkflow.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAM/E,OAAO,KAAK,EAAE,iBAAiB,EAA0B,MAAM,oBAAoB,CAAC;AAyCpF,QAAA,MAAM,YAAY,EAAE,+BAA+B,CAAC,iBAAiB,CAqMpE,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"CaseWorkflow.d.ts","sourceRoot":"","sources":["../../../src/components/GenAICoach/CaseWorkflow.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAM/E,OAAO,KAAK,EAAE,iBAAiB,EAA0B,MAAM,oBAAoB,CAAC;AAyCpF,QAAA,MAAM,YAAY,EAAE,+BAA+B,CAAC,iBAAiB,CA6MpE,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -32,7 +32,8 @@ const CaseWorkflow = forwardRef(function CaseWorkflow({ heading, icon, stages, o
32
32
  const theme = useTheme();
33
33
  const rootRef = useConsolidatedRef(ref);
34
34
  const [workflowBtnEl, setWorkflowBtnEl] = useElement();
35
- const [titleEl, setTitleEl] = useElement();
35
+ const [headingEl, setHeadingEl] = useElement();
36
+ const [stageStepEl, setStageStepEl] = useElement();
36
37
  const [isOpen, setIsOpen] = useState(false);
37
38
  const [hasBrokenImage, setHasBrokenImage] = useState();
38
39
  const currentStageId = stages.find(s => s.current)?.id;
@@ -90,11 +91,11 @@ const CaseWorkflow = forwardRef(function CaseWorkflow({ heading, icon, stages, o
90
91
  setExpandedStages(initial);
91
92
  }
92
93
  }, [isOpen]);
93
- return (_jsxs(_Fragment, { children: [_jsxs(StyledCaseWorkflowBanner, { container: { alignItems: 'center', justify: 'between', gap: 0 }, ...restProps, ref: rootRef, children: [_jsxs(StyledCaseLaunchButton, { ref: setTitleEl, variant: 'simple', onClick: onHeadingClick, "aria-label": t('open_noun', [heading]), children: [showIcon && (_jsx(StyledCaseIconWrapper, { children: typeof icon === 'string' ? (_jsx(StyledCaseViewIcon, { name: icon, foreground: iconForeground, background: iconBackground, size: 's' })) : (_jsx(StyledIconShape, { background: iconBackground, children: _jsx(StyledCaseViewImage, { src: icon?.href, alt: t('case_image'), onLoad: () => {
94
+ return (_jsxs(_Fragment, { children: [_jsxs(StyledCaseWorkflowBanner, { container: { alignItems: 'center', justify: 'between', gap: 0 }, ...restProps, ref: rootRef, children: [_jsxs(StyledCaseLaunchButton, { variant: 'simple', onClick: onHeadingClick, "aria-label": t('open_noun', [heading]), children: [showIcon && (_jsx(StyledCaseIconWrapper, { children: typeof icon === 'string' ? (_jsx(StyledCaseViewIcon, { name: icon, foreground: iconForeground, background: iconBackground, size: 's' })) : (_jsx(StyledIconShape, { background: iconBackground, children: _jsx(StyledCaseViewImage, { src: icon?.href, alt: t('case_image'), onLoad: () => {
94
95
  setHasBrokenImage(false);
95
96
  }, onError: () => {
96
97
  setHasBrokenImage(true);
97
- } }) })) })), _jsx(StyledCaseTitleText, { children: heading }), stageStepLabel && _jsx(StyledProgressLabel, { children: stageStepLabel })] }), _jsx(Button, { ref: setWorkflowBtnEl, icon: true, variant: 'simple', onClick: toggleDialog, "aria-expanded": isOpen, label: t('workflow'), "aria-label": t('open_noun', [t('workflow')]), children: _jsx(Icon, { name: 'chevron' }) }), isOpen && workflowBtnEl && (_jsx(StyledWorkflowInfoDialog, { heading: heading, target: workflowBtnEl, onDismiss: closeDialog, children: _jsx(StyledStageList, { children: stages.map(stage => {
98
+ } }) })) })), _jsx(StyledCaseTitleText, { ref: setHeadingEl, children: heading }), stageStepLabel && (_jsx(StyledProgressLabel, { ref: setStageStepEl, children: stageStepLabel }))] }), _jsx(Button, { ref: setWorkflowBtnEl, icon: true, variant: 'simple', onClick: toggleDialog, "aria-expanded": isOpen, label: t('workflow'), "aria-label": t('open_noun', [t('workflow')]), children: _jsx(Icon, { name: 'chevron' }) }), isOpen && workflowBtnEl && (_jsx(StyledWorkflowInfoDialog, { heading: heading, target: workflowBtnEl, onDismiss: closeDialog, children: _jsx(StyledStageList, { children: stages.map(stage => {
98
99
  const isExpanded = expandedStages.has(stage.id);
99
100
  const hasSteps = Array.isArray(stage.steps) && stage.steps.length > 0;
100
101
  const effectiveStepId = getEffectiveCurrentStepId(stage);
@@ -104,7 +105,7 @@ const CaseWorkflow = forwardRef(function CaseWorkflow({ heading, icon, stages, o
104
105
  else if (stage.current)
105
106
  stageStatus = 'active';
106
107
  return (_jsxs("li", { children: [_jsxs(StyledStageButton, { onClick: () => toggleStage(stage.id), "aria-expanded": isExpanded, expanded: isExpanded, variant: 'simple', children: [_jsx(Icon, { name: 'caret-down' }), stage.name] }), hasSteps && effectiveStepId && (_jsx(ExpandCollapse, { collapsed: !isExpanded, nullWhenCollapsed: true, children: _jsx(StyledStepsContainer, { stageStatus: stageStatus, children: _jsx(VerticalFormProgress, { steps: stage.steps ?? [], currentStepId: effectiveStepId }) }) }))] }, stage.id));
107
- }) }) }))] }), titleEl && (_jsx(Tooltip, { target: titleEl, smart: true, showDelay: 'none', hideDelay: 'none', children: heading }))] }));
108
+ }) }) }))] }), headingEl && (_jsx(Tooltip, { target: headingEl, smart: true, showDelay: 'none', hideDelay: 'none', children: heading })), stageStepEl && stageStepLabel && (_jsx(Tooltip, { target: stageStepEl, smart: true, showDelay: 'none', hideDelay: 'none', children: stageStepLabel }))] }));
108
109
  });
109
110
  export default CaseWorkflow;
110
111
  //# sourceMappingURL=CaseWorkflow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CaseWorkflow.js","sourceRoot":"","sources":["../../../src/components/GenAICoach/CaseWorkflow.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useCallback, forwardRef, useMemo, useEffect, useRef } from 'react';\nimport type { PropsWithoutRef } from 'react';\nimport { parseToHsl } from 'polished';\n\nimport {\n Icon,\n Button,\n Tooltip,\n ExpandCollapse,\n useConsolidatedRef,\n useElement,\n useI18n,\n useTheme,\n tryCatch,\n StyledIconShape,\n registerIcon\n} from '@pega/cosmos-react-core';\nimport type { ForwardRefForwardPropsComponent } from '@pega/cosmos-react-core';\nimport * as chevronIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/chevron.icon';\nimport * as timesIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/times.icon';\nimport * as caretDownIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-down.icon';\nimport VerticalFormProgress from '@pega/cosmos-react-core/lib/components/MultiStepForm/VerticalFormProgress';\n\nimport type { CaseWorkflowProps, CaseWorkflowStageProps } from './GenAICoach.types';\nimport {\n StyledCaseWorkflowBanner,\n StyledCaseLaunchButton,\n StyledCaseIconWrapper,\n StyledCaseTitleText,\n StyledProgressLabel,\n StyledWorkflowInfoDialog,\n StyledStageList,\n StyledStageButton,\n StyledStepsContainer,\n StyledCaseViewIcon,\n StyledCaseViewImage\n} from './GenAICoach.styles';\n\nregisterIcon(chevronIcon, timesIcon, caretDownIcon);\n\nconst getEffectiveCurrentStepId = (stage: CaseWorkflowStageProps): string | undefined => {\n const { steps } = stage;\n\n if (!steps || steps.length === 0) return undefined;\n\n if (stage.current && stage.currentStepId) return stage.currentStepId;\n\n if (stage.completed) return steps[steps.length - 1].id;\n\n return steps[0].id;\n};\n\nconst getCurrentStageAndStep = (stages: CaseWorkflowStageProps[]) => {\n const stage = stages.find(s => s.current);\n\n if (!stage) return undefined;\n\n const step = stage.currentStepId\n ? stage.steps?.find(s => s.id === stage.currentStepId)\n : undefined;\n\n return { stageName: stage.name, stepName: step?.name };\n};\n\nconst CaseWorkflow: ForwardRefForwardPropsComponent<CaseWorkflowProps> = forwardRef(\n function CaseWorkflow(\n { heading, icon, stages, onHeadingClick, ...restProps }: PropsWithoutRef<CaseWorkflowProps>,\n ref: CaseWorkflowProps['ref']\n ) {\n const t = useI18n();\n const theme = useTheme();\n\n const rootRef = useConsolidatedRef(ref);\n\n const [workflowBtnEl, setWorkflowBtnEl] = useElement<HTMLButtonElement>();\n const [titleEl, setTitleEl] = useElement<HTMLButtonElement>();\n\n const [isOpen, setIsOpen] = useState(false);\n const [hasBrokenImage, setHasBrokenImage] = useState<boolean | undefined>();\n\n const currentStageId = stages.find(s => s.current)?.id;\n const currentStageIdRef = useRef(currentStageId);\n currentStageIdRef.current = currentStageId;\n\n const [expandedStages, setExpandedStages] = useState<Set<string>>(() => {\n const initial = new Set<string>();\n if (currentStageId) initial.add(currentStageId);\n return initial;\n });\n\n const toggleStage = useCallback((stageId: string) => {\n setExpandedStages(prev => {\n const next = new Set(prev);\n if (next.has(stageId)) {\n next.delete(stageId);\n } else {\n next.add(stageId);\n }\n return next;\n });\n }, []);\n\n const toggleDialog = useCallback(() => {\n setIsOpen(prev => !prev);\n }, []);\n\n const closeDialog = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n const iconForeground =\n theme.components['case-view'].icon.color !== 'auto'\n ? theme.components['case-view'].icon.color\n : theme.components['case-view'].header['foreground-color'];\n\n const iconBackground = useMemo(() => {\n if (theme.components['case-view'].icon.background !== 'auto') {\n return theme.components['case-view'].icon.background;\n }\n return tryCatch(\n () => {\n const { lightness } = parseToHsl(\n theme.components['case-view'].header['background-color']\n );\n return lightness > 0.35 ? 'rgba(0, 0, 0, 0.2)' : 'rgba(255, 255, 255, 0.2)';\n },\n () => 'transparent'\n );\n }, [theme]);\n\n const showIcon = !!icon && !hasBrokenImage;\n\n const currentInfo = getCurrentStageAndStep(stages);\n\n const stageStepLabel = currentInfo\n ? `${currentInfo.stageName}${currentInfo.stepName ? `: ${currentInfo.stepName}` : ''}`\n : undefined;\n\n useEffect(() => {\n setHasBrokenImage(undefined);\n }, [typeof icon === 'string' ? icon : icon?.href]);\n\n useEffect(() => {\n if (isOpen) {\n const initial = new Set<string>();\n if (currentStageIdRef.current) initial.add(currentStageIdRef.current);\n setExpandedStages(initial);\n }\n }, [isOpen]);\n\n return (\n <>\n <StyledCaseWorkflowBanner\n container={{ alignItems: 'center', justify: 'between', gap: 0 }}\n {...restProps}\n ref={rootRef}\n >\n <StyledCaseLaunchButton\n ref={setTitleEl}\n variant='simple'\n onClick={onHeadingClick}\n aria-label={t('open_noun', [heading])}\n >\n {showIcon && (\n <StyledCaseIconWrapper>\n {typeof icon === 'string' ? (\n <StyledCaseViewIcon\n name={icon}\n foreground={iconForeground}\n background={iconBackground}\n size='s'\n />\n ) : (\n <StyledIconShape background={iconBackground}>\n <StyledCaseViewImage\n src={icon?.href}\n alt={t('case_image')}\n onLoad={() => {\n setHasBrokenImage(false);\n }}\n onError={() => {\n setHasBrokenImage(true);\n }}\n />\n </StyledIconShape>\n )}\n </StyledCaseIconWrapper>\n )}\n\n <StyledCaseTitleText>{heading}</StyledCaseTitleText>\n\n {stageStepLabel && <StyledProgressLabel>{stageStepLabel}</StyledProgressLabel>}\n </StyledCaseLaunchButton>\n\n <Button\n ref={setWorkflowBtnEl}\n icon\n variant='simple'\n onClick={toggleDialog}\n aria-expanded={isOpen}\n label={t('workflow')}\n aria-label={t('open_noun', [t('workflow')])}\n >\n <Icon name='chevron' />\n </Button>\n\n {isOpen && workflowBtnEl && (\n <StyledWorkflowInfoDialog\n heading={heading}\n target={workflowBtnEl}\n onDismiss={closeDialog}\n >\n <StyledStageList>\n {stages.map(stage => {\n const isExpanded = expandedStages.has(stage.id);\n const hasSteps = Array.isArray(stage.steps) && stage.steps.length > 0;\n const effectiveStepId = getEffectiveCurrentStepId(stage);\n\n let stageStatus: 'active' | 'completed' | 'not-started' = 'not-started';\n if (stage.completed) stageStatus = 'completed';\n else if (stage.current) stageStatus = 'active';\n\n return (\n <li key={stage.id}>\n <StyledStageButton\n onClick={() => toggleStage(stage.id)}\n aria-expanded={isExpanded}\n expanded={isExpanded}\n variant='simple'\n >\n <Icon name='caret-down' />\n\n {stage.name}\n </StyledStageButton>\n\n {hasSteps && effectiveStepId && (\n <ExpandCollapse collapsed={!isExpanded} nullWhenCollapsed>\n <StyledStepsContainer stageStatus={stageStatus}>\n <VerticalFormProgress\n steps={stage.steps ?? []}\n currentStepId={effectiveStepId}\n />\n </StyledStepsContainer>\n </ExpandCollapse>\n )}\n </li>\n );\n })}\n </StyledStageList>\n </StyledWorkflowInfoDialog>\n )}\n </StyledCaseWorkflowBanner>\n\n {titleEl && (\n <Tooltip target={titleEl} smart showDelay='none' hideDelay='none'>\n {heading}\n </Tooltip>\n )}\n </>\n );\n }\n);\n\nexport default CaseWorkflow;\n"]}
1
+ {"version":3,"file":"CaseWorkflow.js","sourceRoot":"","sources":["../../../src/components/GenAICoach/CaseWorkflow.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useCallback, forwardRef, useMemo, useEffect, useRef } from 'react';\nimport type { PropsWithoutRef } from 'react';\nimport { parseToHsl } from 'polished';\n\nimport {\n Icon,\n Button,\n Tooltip,\n ExpandCollapse,\n useConsolidatedRef,\n useElement,\n useI18n,\n useTheme,\n tryCatch,\n StyledIconShape,\n registerIcon\n} from '@pega/cosmos-react-core';\nimport type { ForwardRefForwardPropsComponent } from '@pega/cosmos-react-core';\nimport * as chevronIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/chevron.icon';\nimport * as timesIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/times.icon';\nimport * as caretDownIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-down.icon';\nimport VerticalFormProgress from '@pega/cosmos-react-core/lib/components/MultiStepForm/VerticalFormProgress';\n\nimport type { CaseWorkflowProps, CaseWorkflowStageProps } from './GenAICoach.types';\nimport {\n StyledCaseWorkflowBanner,\n StyledCaseLaunchButton,\n StyledCaseIconWrapper,\n StyledCaseTitleText,\n StyledProgressLabel,\n StyledWorkflowInfoDialog,\n StyledStageList,\n StyledStageButton,\n StyledStepsContainer,\n StyledCaseViewIcon,\n StyledCaseViewImage\n} from './GenAICoach.styles';\n\nregisterIcon(chevronIcon, timesIcon, caretDownIcon);\n\nconst getEffectiveCurrentStepId = (stage: CaseWorkflowStageProps): string | undefined => {\n const { steps } = stage;\n\n if (!steps || steps.length === 0) return undefined;\n\n if (stage.current && stage.currentStepId) return stage.currentStepId;\n\n if (stage.completed) return steps[steps.length - 1].id;\n\n return steps[0].id;\n};\n\nconst getCurrentStageAndStep = (stages: CaseWorkflowStageProps[]) => {\n const stage = stages.find(s => s.current);\n\n if (!stage) return undefined;\n\n const step = stage.currentStepId\n ? stage.steps?.find(s => s.id === stage.currentStepId)\n : undefined;\n\n return { stageName: stage.name, stepName: step?.name };\n};\n\nconst CaseWorkflow: ForwardRefForwardPropsComponent<CaseWorkflowProps> = forwardRef(\n function CaseWorkflow(\n { heading, icon, stages, onHeadingClick, ...restProps }: PropsWithoutRef<CaseWorkflowProps>,\n ref: CaseWorkflowProps['ref']\n ) {\n const t = useI18n();\n const theme = useTheme();\n\n const rootRef = useConsolidatedRef(ref);\n\n const [workflowBtnEl, setWorkflowBtnEl] = useElement<HTMLButtonElement>();\n const [headingEl, setHeadingEl] = useElement<HTMLSpanElement>();\n const [stageStepEl, setStageStepEl] = useElement<HTMLSpanElement>();\n\n const [isOpen, setIsOpen] = useState(false);\n const [hasBrokenImage, setHasBrokenImage] = useState<boolean | undefined>();\n\n const currentStageId = stages.find(s => s.current)?.id;\n const currentStageIdRef = useRef(currentStageId);\n currentStageIdRef.current = currentStageId;\n\n const [expandedStages, setExpandedStages] = useState<Set<string>>(() => {\n const initial = new Set<string>();\n if (currentStageId) initial.add(currentStageId);\n return initial;\n });\n\n const toggleStage = useCallback((stageId: string) => {\n setExpandedStages(prev => {\n const next = new Set(prev);\n if (next.has(stageId)) {\n next.delete(stageId);\n } else {\n next.add(stageId);\n }\n return next;\n });\n }, []);\n\n const toggleDialog = useCallback(() => {\n setIsOpen(prev => !prev);\n }, []);\n\n const closeDialog = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n const iconForeground =\n theme.components['case-view'].icon.color !== 'auto'\n ? theme.components['case-view'].icon.color\n : theme.components['case-view'].header['foreground-color'];\n\n const iconBackground = useMemo(() => {\n if (theme.components['case-view'].icon.background !== 'auto') {\n return theme.components['case-view'].icon.background;\n }\n return tryCatch(\n () => {\n const { lightness } = parseToHsl(\n theme.components['case-view'].header['background-color']\n );\n return lightness > 0.35 ? 'rgba(0, 0, 0, 0.2)' : 'rgba(255, 255, 255, 0.2)';\n },\n () => 'transparent'\n );\n }, [theme]);\n\n const showIcon = !!icon && !hasBrokenImage;\n\n const currentInfo = getCurrentStageAndStep(stages);\n\n const stageStepLabel = currentInfo\n ? `${currentInfo.stageName}${currentInfo.stepName ? `: ${currentInfo.stepName}` : ''}`\n : undefined;\n\n useEffect(() => {\n setHasBrokenImage(undefined);\n }, [typeof icon === 'string' ? icon : icon?.href]);\n\n useEffect(() => {\n if (isOpen) {\n const initial = new Set<string>();\n if (currentStageIdRef.current) initial.add(currentStageIdRef.current);\n setExpandedStages(initial);\n }\n }, [isOpen]);\n\n return (\n <>\n <StyledCaseWorkflowBanner\n container={{ alignItems: 'center', justify: 'between', gap: 0 }}\n {...restProps}\n ref={rootRef}\n >\n <StyledCaseLaunchButton\n variant='simple'\n onClick={onHeadingClick}\n aria-label={t('open_noun', [heading])}\n >\n {showIcon && (\n <StyledCaseIconWrapper>\n {typeof icon === 'string' ? (\n <StyledCaseViewIcon\n name={icon}\n foreground={iconForeground}\n background={iconBackground}\n size='s'\n />\n ) : (\n <StyledIconShape background={iconBackground}>\n <StyledCaseViewImage\n src={icon?.href}\n alt={t('case_image')}\n onLoad={() => {\n setHasBrokenImage(false);\n }}\n onError={() => {\n setHasBrokenImage(true);\n }}\n />\n </StyledIconShape>\n )}\n </StyledCaseIconWrapper>\n )}\n\n <StyledCaseTitleText ref={setHeadingEl}>{heading}</StyledCaseTitleText>\n\n {stageStepLabel && (\n <StyledProgressLabel ref={setStageStepEl}>{stageStepLabel}</StyledProgressLabel>\n )}\n </StyledCaseLaunchButton>\n\n <Button\n ref={setWorkflowBtnEl}\n icon\n variant='simple'\n onClick={toggleDialog}\n aria-expanded={isOpen}\n label={t('workflow')}\n aria-label={t('open_noun', [t('workflow')])}\n >\n <Icon name='chevron' />\n </Button>\n\n {isOpen && workflowBtnEl && (\n <StyledWorkflowInfoDialog\n heading={heading}\n target={workflowBtnEl}\n onDismiss={closeDialog}\n >\n <StyledStageList>\n {stages.map(stage => {\n const isExpanded = expandedStages.has(stage.id);\n const hasSteps = Array.isArray(stage.steps) && stage.steps.length > 0;\n const effectiveStepId = getEffectiveCurrentStepId(stage);\n\n let stageStatus: 'active' | 'completed' | 'not-started' = 'not-started';\n if (stage.completed) stageStatus = 'completed';\n else if (stage.current) stageStatus = 'active';\n\n return (\n <li key={stage.id}>\n <StyledStageButton\n onClick={() => toggleStage(stage.id)}\n aria-expanded={isExpanded}\n expanded={isExpanded}\n variant='simple'\n >\n <Icon name='caret-down' />\n\n {stage.name}\n </StyledStageButton>\n\n {hasSteps && effectiveStepId && (\n <ExpandCollapse collapsed={!isExpanded} nullWhenCollapsed>\n <StyledStepsContainer stageStatus={stageStatus}>\n <VerticalFormProgress\n steps={stage.steps ?? []}\n currentStepId={effectiveStepId}\n />\n </StyledStepsContainer>\n </ExpandCollapse>\n )}\n </li>\n );\n })}\n </StyledStageList>\n </StyledWorkflowInfoDialog>\n )}\n </StyledCaseWorkflowBanner>\n\n {headingEl && (\n <Tooltip target={headingEl} smart showDelay='none' hideDelay='none'>\n {heading}\n </Tooltip>\n )}\n\n {stageStepEl && stageStepLabel && (\n <Tooltip target={stageStepEl} smart showDelay='none' hideDelay='none'>\n {stageStepLabel}\n </Tooltip>\n )}\n </>\n );\n }\n);\n\nexport default CaseWorkflow;\n"]}
@@ -36,7 +36,7 @@ export const AgentIcon = () => {
36
36
  };
37
37
  export const AISuggestedBadge = () => {
38
38
  const t = useI18n();
39
- return (_jsxs(StyledAISuggestedBadge, { container: { alignItems: 'center', gap: 0.5 }, children: [_jsx(Icon, { name: 'polaris-solid', "aria-hidden": true }), _jsx(Text, { children: t('ai_suggestion') })] }));
39
+ return (_jsxs(StyledAISuggestedBadge, { container: { alignItems: 'center', gap: 0.5 }, children: [_jsx(Icon, { name: 'polaris-solid', "aria-hidden": true, size: 'font-size' }), _jsx(Text, { children: t('ai_suggestion') })] }));
40
40
  };
41
41
  const HeaderActions = ({ actions, allowFullScreen, variant, isUserTriggeredRef, onFullscreenToggle, isFullscreen, selectedCoach, actionsTestId }) => {
42
42
  const t = useI18n();