From 24df2d023e3b3b227aa155e6db414c4150473e0c Mon Sep 17 00:00:00 2001 From: Lukas Harbarth Date: Wed, 14 Jan 2026 14:11:35 +0100 Subject: [PATCH 1/2] fix(AnalyticalCardHeader): add tooltip for numeric content --- .../AnalyticalCardHeader.cy.tsx | 29 +++++++++++++++++++ .../components/AnalyticalCardHeader/index.tsx | 13 +++++++-- packages/main/src/enums/ValueColor.ts | 3 +- 3 files changed, 42 insertions(+), 3 deletions(-) diff --git a/packages/main/src/components/AnalyticalCardHeader/AnalyticalCardHeader.cy.tsx b/packages/main/src/components/AnalyticalCardHeader/AnalyticalCardHeader.cy.tsx index e281a7e279f..607dc1cdb46 100644 --- a/packages/main/src/components/AnalyticalCardHeader/AnalyticalCardHeader.cy.tsx +++ b/packages/main/src/components/AnalyticalCardHeader/AnalyticalCardHeader.cy.tsx @@ -79,5 +79,34 @@ describe('AnalyticalCardHeader', () => { cy.get('[ui5-icon]').should('have.attr', 'name', 'up'); }); + Object.values(ValueColor).forEach((state: AnalyticalCardHeaderPropTypes['state']) => { + Object.values(DeviationIndicator).forEach((trend: AnalyticalCardHeaderPropTypes['trend']) => { + it(`numeric tooltip & aria-label (trend: ${trend}, state: ${state})`, () => { + cy.mount(); + if (trend === 'None') { + cy.get('[data-component-name="AnalyticalCardHeaderNumericContent"]').should( + 'have.attr', + 'title', + `65.34K\n${semanticColorMap.get(state)}`.trim(), + ); + } else { + cy.get('[data-component-name="AnalyticalCardHeaderNumericContent"]').should( + 'have.attr', + 'title', + `65.34K\n${trend === 'Up' ? 'Ascending' : 'Descending'}\n${semanticColorMap.get(state)}`.trim(), + ); + } + }); + }); + }); + cypressPassThroughTestsFactory(AnalyticalCardHeader); }); + +const semanticColorMap = new Map([ + [ValueColor.Neutral, 'Neutral'], + [ValueColor.Good, 'Good'], + [ValueColor.Critical, 'Warning'], + [ValueColor.Error, 'Critical'], + [ValueColor.None, ''], +]); diff --git a/packages/main/src/components/AnalyticalCardHeader/index.tsx b/packages/main/src/components/AnalyticalCardHeader/index.tsx index 6290d8e185f..494683bad97 100644 --- a/packages/main/src/components/AnalyticalCardHeader/index.tsx +++ b/packages/main/src/components/AnalyticalCardHeader/index.tsx @@ -59,6 +59,8 @@ export interface AnalyticalCardHeaderPropTypes extends CommonProps { * The semantic color which represents the state of the main number indicator. * Available options are:
  • None
  • Error
  • Critical
  • Good
  • Neutral
* + * __Note__: "None" has the same color as "Neutral" but doesn't add the tooltip and accessible-name. + * * @default `"None"` */ state?: ValueColor | keyof typeof ValueColor; @@ -185,9 +187,9 @@ export const AnalyticalCardHeader = forwardRef
@@ -209,7 +211,14 @@ export const AnalyticalCardHeader = forwardRef
-