diff --git a/packages/main/src/components/ObjectStatus/ObjectStatus.cy.tsx b/packages/main/src/components/ObjectStatus/ObjectStatus.cy.tsx index f85fc9d0b41..b88c5b8e979 100644 --- a/packages/main/src/components/ObjectStatus/ObjectStatus.cy.tsx +++ b/packages/main/src/components/ObjectStatus/ObjectStatus.cy.tsx @@ -39,7 +39,7 @@ const statesWithCSSVars: { inverted: { color: ThemingParameters.sapTextColor, backgroundColor: ThemingParameters.sapNeutralBackground, - iconColor: ThemingParameters.sapButton_Neutral_TextColor + iconColor: ThemingParameters.sapTextColor }, hiddenText: undefined }, diff --git a/packages/main/src/components/ObjectStatus/ObjectStatus.jss.ts b/packages/main/src/components/ObjectStatus/ObjectStatus.jss.ts deleted file mode 100644 index 96e68cc3c45..00000000000 --- a/packages/main/src/components/ObjectStatus/ObjectStatus.jss.ts +++ /dev/null @@ -1,331 +0,0 @@ -import { ThemingParameters } from '@ui5/webcomponents-react-base'; - -const createInvertedValueStateStyles = (baseColor: string, lightColor = false) => ({ - textShadow: lightColor ? ThemingParameters.sapContent_TextShadow : ThemingParameters.sapContent_ContrastTextShadow, - background: ThemingParameters[`${baseColor}_Background`], - color: ThemingParameters[`${baseColor}_TextColor`], - border: `0.0625rem solid ${ThemingParameters[`${baseColor}_BorderColor`]}`, - '& [ui5-icon]': { - color: ThemingParameters[`${baseColor}_TextColor`] - }, - '&$active:hover': { - background: ThemingParameters[`${baseColor}_Hover_Background`], - color: ThemingParameters[`${baseColor}_Hover_TextColor`], - border: `0.0625rem solid ${ThemingParameters[`${baseColor}_Hover_BorderColor`]}`, - '& [ui5-icon]': { - color: ThemingParameters[`${baseColor}_Hover_TextColor`] - } - }, - '&$active:active': { - textShadow: ThemingParameters.sapContent_TextShadow, - background: ThemingParameters[`${baseColor}_Active_Background`], - border: `0.0625rem solid ${ThemingParameters[`${baseColor}_Active_BorderColor`]}` - } -}); - -const createInvertedIndicationStyles = (baseColor: string) => ({ - textShadow: ThemingParameters.sapContent_ContrastTextShadow, - color: ThemingParameters[`${baseColor}_TextColor`], - backgroundColor: ThemingParameters[`${baseColor}_Background`], - border: `0.0625rem solid ${ThemingParameters[`${baseColor}_BorderColor`]}`, - '& [ui5-icon]': { - color: ThemingParameters[`${baseColor}_TextColor`] - }, - '&$active:hover': { - background: ThemingParameters[`${baseColor}_Hover_Background`] - }, - '&$active:active': { - textShadow: ThemingParameters.sapContent_TextShadow, - background: ThemingParameters[`${baseColor}_Active_Background`], - border: `0.0625rem solid ${ThemingParameters[`${baseColor}_Active_BorderColor`]}`, - color: ThemingParameters[`${baseColor}_Active_TextColor`], - '& [ui5-icon]': { - color: ThemingParameters[`${baseColor}_Active_TextColor`] - } - } -}); - -const styles = { - normalizeCSS: { - all: 'unset' - }, - objectStatus: { - fontFamily: ThemingParameters.sapFontFamily, - fontSize: ThemingParameters.sapFontSize, - fontWeight: 'normal', - position: 'relative', - display: 'inline-block', - verticalAlign: 'top', - width: 'fit-content', - textShadow: ThemingParameters.sapContent_TextShadow - }, - - active: { - cursor: 'pointer', - '&:not($inverted)': { - '& $text': { - textDecoration: 'underline' - }, - '&:hover, &:active': { - '& $text': { - textDecoration: 'none' - } - }, - '&:focus': { - textShadow: 'none', - background: ThemingParameters.sapContent_FocusColor, - color: ThemingParameters.sapContent_ContrastTextColor, - borderRadius: '0.125rem', - outline: `0.125rem ${ThemingParameters.sapContent_FocusColor}`, - '& [ui5-icon]': { - color: ThemingParameters.sapContent_ContrastTextColor - } - } - } - }, - - icon: { - width: '1rem', - textAlign: 'center', - display: 'inline-block', - height: '1rem', - lineHeight: '1rem', - verticalAlign: 'top', - paddingInlineEnd: '0.25rem', - '&[data-icon-only="true"]': { - paddingInlineEnd: 0 - }, - textShadow: ThemingParameters.sapContent_TextShadow - }, - - text: { - lineHeight: '1rem', - display: 'inline-block', - height: 'inherit', - verticalAlign: 'top' - }, - - emptyIndicator: { - lineHeight: 'normal', - color: ThemingParameters.sapTextColor - }, - - pseudoInvisibleText: { - fontSize: 0, - position: 'absolute', - userSelect: 'none', - left: 0, - top: 0 - }, - - success: { - color: ThemingParameters.sapPositiveTextColor, - '& [ui5-icon]': { - color: ThemingParameters.sapPositiveElementColor - } - }, - warning: { - color: ThemingParameters.sapCriticalTextColor, - '& [ui5-icon]': { - color: ThemingParameters.sapCriticalElementColor - } - }, - error: { - color: ThemingParameters.sapNegativeTextColor, - '& [ui5-icon]': { - color: ThemingParameters.sapNegativeElementColor - } - }, - information: { - color: ThemingParameters.sapInformativeTextColor, - '& [ui5-icon]': { - color: ThemingParameters.sapInformativeElementColor - } - }, - none: { - color: ThemingParameters.sapNeutralTextColor, - '& [ui5-icon]': { - color: ThemingParameters.sapNeutralElementColor - } - }, - indication01: { - color: ThemingParameters.sapIndicationColor_1, - '& [ui5-icon]': { - color: ThemingParameters.sapIndicationColor_1 - } - }, - indication02: { - color: ThemingParameters.sapIndicationColor_2, - '& [ui5-icon]': { - color: ThemingParameters.sapIndicationColor_2 - } - }, - indication03: { - color: ThemingParameters.sapIndicationColor_3, - '& [ui5-icon]': { - color: ThemingParameters.sapIndicationColor_3 - } - }, - indication04: { - color: ThemingParameters.sapIndicationColor_4, - '& [ui5-icon]': { - color: ThemingParameters.sapIndicationColor_4 - } - }, - indication05: { - color: ThemingParameters.sapIndicationColor_5, - '& [ui5-icon]': { - color: ThemingParameters.sapIndicationColor_5 - } - }, - indication06: { - color: ThemingParameters.sapIndicationColor_6, - '& [ui5-icon]': { - color: ThemingParameters.sapIndicationColor_6 - } - }, - indication07: { - color: ThemingParameters.sapIndicationColor_7, - '& [ui5-icon]': { - color: ThemingParameters.sapIndicationColor_7 - } - }, - indication08: { - color: ThemingParameters.sapIndicationColor_8, - '& [ui5-icon]': { - color: ThemingParameters.sapIndicationColor_8 - } - }, - - inverted: { - height: 'auto', - minHeight: '1rem', - minWidth: '1.375rem', - padding: '0.1875rem 0.25rem', - borderRadius: ThemingParameters.sapButton_BorderCornerRadius, - fontFamily: ThemingParameters.sapFontBoldFamily, - fontSize: ThemingParameters.sapFontSmallSize, - '& $icon': { - verticalAlign: 'text-bottom' - }, - '& [ui5-icon], $icon:not([data-icon-only="true"])': { - width: ThemingParameters.sapFontSmallSize, - height: ThemingParameters.sapFontSmallSize - }, - '&[data-icon-only="true"]': { - display: 'flex', - alignItems: 'center', - justifyContent: 'center', - padding: '0.1875rem 0.313rem', - width: '1rem', - height: '1rem', - '& [ui5-icon]': { - width: '1rem', - height: '1rem' - } - }, - '$active&:focus': { - outline: `${ThemingParameters.sapContent_FocusColor} ${ThemingParameters.sapContent_FocusStyle} ${ThemingParameters.sapContent_FocusWidth}` - }, - '&$error': { - ...createInvertedValueStateStyles('sapButton_Negative'), - '&$active:active': { - ...createInvertedValueStateStyles('sapButton_Negative', true)['&$active:active'], - color: ThemingParameters.sapButton_Reject_Selected_TextColor, - '& [ui5-icon]': { - color: ThemingParameters.sapButton_Reject_Selected_TextColor - } - } - }, - '&$warning': { - ...createInvertedValueStateStyles('sapButton_Critical'), - '&$active:active': { - ...createInvertedValueStateStyles('sapButton_Critical', true)['&$active:active'], - color: ThemingParameters.sapButton_Attention_Selected_TextColor, - '& [ui5-icon]': { - color: ThemingParameters.sapButton_Attention_Selected_TextColor - } - } - }, - '&$success': { - ...createInvertedValueStateStyles('sapButton_Success'), - '&$active:active': { - ...createInvertedValueStateStyles('sapButton_Success', true)['&$active:active'], - color: ThemingParameters.sapButton_Accept_Selected_TextColor, - '& [ui5-icon]': { - color: ThemingParameters.sapButton_Accept_Selected_TextColor - } - } - }, - '&$information': { - ...createInvertedValueStateStyles('sapButton_Information', true), - '&$active:active': { - ...createInvertedValueStateStyles('sapButton_Information', true)['&$active:active'], - color: ThemingParameters.sapButton_Selected_TextColor, - '& [ui5-icon]': { - color: ThemingParameters.sapButton_Selected_TextColor - } - } - }, - '&$none': { - ...createInvertedValueStateStyles('sapButton_Neutral', true), - background: ThemingParameters.sapNeutralBackground, - color: ThemingParameters.sapTextColor, - border: `0.0625rem solid ${ThemingParameters.sapNeutralBorderColor}`, - '&$active:active': { - ...createInvertedValueStateStyles('sapButton_Neutral', true)['&$active:active'], - color: ThemingParameters.sapButton_Active_TextColor, - '& [ui5-icon]': { - color: ThemingParameters.sapButton_Active_TextColor - } - } - }, - '&$indication01': createInvertedIndicationStyles('sapIndicationColor_1'), - '&$indication02': createInvertedIndicationStyles('sapIndicationColor_2'), - '&$indication03': createInvertedIndicationStyles('sapIndicationColor_3'), - '&$indication04': createInvertedIndicationStyles('sapIndicationColor_4'), - '&$indication05': createInvertedIndicationStyles('sapIndicationColor_5'), - '&$indication06': createInvertedIndicationStyles('sapIndicationColor_6'), - '&$indication07': createInvertedIndicationStyles('sapIndicationColor_7'), - '&$indication08': createInvertedIndicationStyles('sapIndicationColor_8') - }, - large: { - fontSize: '1.5rem', - fontFamily: ThemingParameters.sapFontLightFamily, - '& [ui5-icon], $icon': { - height: '1.5rem', - width: '1.5rem' - }, - '& $icon': { - verticalAlign: 'middle' - }, - '& $text': { - lineHeight: 'normal', - verticalAlign: 'middle' - }, - '&$inverted': { - fontSize: '1.25rem', - fontFamily: ThemingParameters.sapFontSemiboldDuplexFamily, - padding: '0.125rem 0.25rem', - '& [ui5-icon], $icon': { - height: '1.25rem', - width: '1.25rem' - }, - '&[data-icon-only="true"]': { - padding: '0 0.25rem', - minWidth: '1.75rem', - height: 'auto' - }, - '& [data-icon-only="true"]': { - height: '1.5rem', - width: '1.5rem', - '& [ui5-icon]': { - height: '1.5rem', - width: '1.5rem' - } - } - } - } -}; - -export default styles; diff --git a/packages/main/src/components/ObjectStatus/ObjectStatus.module.css b/packages/main/src/components/ObjectStatus/ObjectStatus.module.css new file mode 100644 index 00000000000..569f44d7dc7 --- /dev/null +++ b/packages/main/src/components/ObjectStatus/ObjectStatus.module.css @@ -0,0 +1,512 @@ +.normalizeCSS { + all: unset; +} + +.objectStatus { + font-family: var(--sapFontFamily); + font-size: var(--sapFontSize); + font-weight: normal; + position: relative; + display: inline-block; + vertical-align: top; + width: fit-content; + text-shadow: var(--sapContent_TextShadow); +} + +.icon { + width: 1rem; + text-align: center; + display: inline-block; + height: 1rem; + line-height: 1rem; + vertical-align: top; + padding-inline-end: 0.25rem; + text-shadow: var(--sapContent_TextShadow); + + &[data-icon-only='true'] { + padding-inline-end: 0; + } +} + +.text { + line-height: 1rem; + display: inline-block; + height: inherit; + vertical-align: top; +} + +.emptyIndicator { + line-height: normal; + color: var(--sapTextColor); +} + +.pseudoInvisibleText { + font-size: 0; + position: absolute; + user-select: none; + left: 0; + top: 0; +} + +.success { + color: var(--sapPositiveTextColor); + + [ui5-icon] { + color: var(--sapPositiveElementColor); + } +} + +.warning { + color: var(--sapCriticalTextColor); + + [ui5-icon] { + color: var(--sapCriticalElementColor); + } +} + +.error { + color: var(--sapNegativeTextColor); + + [ui5-icon] { + color: var(--sapNegativeElementColor); + } +} + +.information { + color: var(--sapInformativeTextColor); + + [ui5-icon] { + color: var(--sapInformativeElementColor); + } +} + +.none { + color: var(--sapNeutralTextColor); + + [ui5-icon] { + color: var(--sapNeutralElementColor); + } +} + +.indication01 { + color: var(--sapIndicationColor_1); + + [ui5-icon] { + color: var(--sapIndicationColor_1); + } +} + +.indication02 { + color: var(--sapIndicationColor_2); + + [ui5-icon] { + color: var(--sapIndicationColor_2); + } +} + +.indication03 { + color: var(--sapIndicationColor_3); + + [ui5-icon] { + color: var(--sapIndicationColor_3); + } +} + +.indication04 { + color: var(--sapIndicationColor_4); + + [ui5-icon] { + color: var(--sapIndicationColor_4); + } +} + +.indication05 { + color: var(--sapIndicationColor_5); + + [ui5-icon] { + color: var(--sapIndicationColor_5); + } +} + +.indication06 { + color: var(--sapIndicationColor_6); + + [ui5-icon] { + color: var(--sapIndicationColor_6); + } +} + +.indication07 { + color: var(--sapIndicationColor_7); + + [ui5-icon] { + color: var(--sapIndicationColor_7); + } +} + +.indication08 { + color: var(--sapIndicationColor_8); + + [ui5-icon] { + color: var(--sapIndicationColor_8); + } +} + +.large { + font-size: 1.5rem; + font-family: var(--sapFontLightFamily); + + [ui5-icon], + .icon { + height: 1.5rem; + width: 1.5rem; + } + + .icon { + vertical-align: middle; + } + + .text { + line-height: normal; + vertical-align: middle; + } + + &.inverted { + font-size: 1.25rem; + font-family: var(--sapFontSemiboldDuplexFamily); + padding: 0.125rem 0.25rem; + + [ui5-icon], + .icon { + height: 1.25rem; + width: 1.25rem; + } + + &[data-icon-only='true'] { + padding: 0 0.25rem; + min-width: 1.75rem; + height: auto; + } + + [data-icon-only='true'] { + height: 1.5rem; + width: 1.5rem; + + [ui5-icon] { + height: 1.5rem; + width: 1.5rem; + } + } + } +} + +.active { + cursor: pointer; + + &:not(.inverted) { + .text { + text-decoration: underline; + } + + &:hover, + &:active { + .text { + text-decoration: none; + } + } + + &:focus { + text-shadow: none; + background: var(--sapContent_FocusColor); + color: var(--sapContent_ContrastTextColor); + border-radius: 0.125rem; + outline: 0.125rem var(--sapContent_FocusColor); + + [ui5-icon] { + color: var(--sapContent_ContrastTextColor); + } + } + } +} + +.inverted { + height: auto; + min-height: 1rem; + min-width: 1.375rem; + padding: 0.1875rem 0.25rem; + border-radius: var(--sapButton_BorderCornerRadius); + font-family: var(--sapFontBoldFamily); + font-size: var(--sapFontSmallSize); + + .icon { + vertical-align: text-bottom; + } + + [ui5-icon], + .icon:not([data-icon-only='true']) { + width: var(--sapFontSmallSize); + height: var(--sapFontSmallSize); + } + + &[data-icon-only='true'] { + display: flex; + align-items: center; + justify-content: center; + padding: 0.1875rem 0.313rem; + width: 1rem; + height: 1rem; + + [ui5-icon] { + width: 1rem; + height: 1rem; + } + } + + &.active:focus { + outline: var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth); + } +} + +/* Inverted Value State Styles */ +.objectStatus:is(.inverted.error) { + text-shadow: var(--sapContent_ContrastTextShadow); + + --_ui5wcr-ObjectStatus-inverted-vs-text-color: var(--sapButton_Negative_TextColor); + --_ui5wcr-ObjectStatus-inverted-vs-background-color: var(--sapButton_Negative_Background); + --_ui5wcr-ObjectStatus-inverted-vs-border-color: var(--sapButton_Negative_BorderColor); + + --_ui5wcr-ObjectStatus-inverted-vs-hover-text-color: var(--sapButton_Negative_Hover_TextColor); + --_ui5wcr-ObjectStatus-inverted-vs-hover-background-color: var(--sapButton_Negative_Hover_Background); + --_ui5wcr-ObjectStatus-inverted-vs-hover-border-color: var(--sapButton_Negative_Hover_BorderColor); + + --_ui5wcr-ObjectStatus-inverted-vs-active-text-color: var(--sapButton_Reject_Selected_TextColor); + --_ui5wcr-ObjectStatus-inverted-vs-active-background-color: var(--sapButton_Negative_Active_Background); + --_ui5wcr-ObjectStatus-inverted-vs-active-border-color: var(--sapButton_Negative_Active_BorderColor); +} + +.objectStatus:is(.inverted.warning) { + text-shadow: var(--sapContent_ContrastTextShadow); + + --_ui5wcr-ObjectStatus-inverted-vs-text-color: var(--sapButton_Critical_TextColor); + --_ui5wcr-ObjectStatus-inverted-vs-background-color: var(--sapButton_Critical_Background); + --_ui5wcr-ObjectStatus-inverted-vs-border-color: var(--sapButton_Critical_BorderColor); + + --_ui5wcr-ObjectStatus-inverted-vs-hover-text-color: var(--sapButton_Critical_Hover_TextColor); + --_ui5wcr-ObjectStatus-inverted-vs-hover-background-color: var(--sapButton_Critical_Hover_Background); + --_ui5wcr-ObjectStatus-inverted-vs-hover-border-color: var(--sapButton_Critical_Hover_BorderColor); + + --_ui5wcr-ObjectStatus-inverted-vs-active-text-color: var(--sapButton_Attention_Selected_TextColor); + --_ui5wcr-ObjectStatus-inverted-vs-active-background-color: var(--sapButton_Critical_Active_Background); + --_ui5wcr-ObjectStatus-inverted-vs-active-border-color: var(--sapButton_Critical_Active_BorderColor); +} + +.objectStatus:is(.inverted.success) { + text-shadow: var(--sapContent_ContrastTextShadow); + + --_ui5wcr-ObjectStatus-inverted-vs-text-color: var(--sapButton_Success_TextColor); + --_ui5wcr-ObjectStatus-inverted-vs-background-color: var(--sapButton_Success_Background); + --_ui5wcr-ObjectStatus-inverted-vs-border-color: var(--sapButton_Success_BorderColor); + + --_ui5wcr-ObjectStatus-inverted-vs-hover-text-color: var(--sapButton_Success_Hover_TextColor); + --_ui5wcr-ObjectStatus-inverted-vs-hover-background-color: var(--sapButton_Success_Hover_Background); + --_ui5wcr-ObjectStatus-inverted-vs-hover-border-color: var(--sapButton_Success_Hover_BorderColor); + + --_ui5wcr-ObjectStatus-inverted-vs-active-text-color: var(--sapButton_Accept_Selected_TextColor); + --_ui5wcr-ObjectStatus-inverted-vs-active-background-color: var(--sapButton_Success_Active_Background); + --_ui5wcr-ObjectStatus-inverted-vs-active-border-color: var(--sapButton_Success_Active_BorderColor); +} + +.objectStatus:is(.inverted.information) { + text-shadow: var(sapContent_TextShadow); + + --_ui5wcr-ObjectStatus-inverted-vs-text-color: var(--sapButton_Information_TextColor); + --_ui5wcr-ObjectStatus-inverted-vs-background-color: var(--sapButton_Information_Background); + --_ui5wcr-ObjectStatus-inverted-vs-border-color: var(--sapButton_Information_BorderColor); + + --_ui5wcr-ObjectStatus-inverted-vs-hover-text-color: var(--sapButton_Information_Hover_TextColor); + --_ui5wcr-ObjectStatus-inverted-vs-hover-background-color: var(--sapButton_Information_Hover_Background); + --_ui5wcr-ObjectStatus-inverted-vs-hover-border-color: var(--sapButton_Information_Hover_BorderColor); + + --_ui5wcr-ObjectStatus-inverted-vs-active-text-color: var(--sapButton_Selected_TextColor); + --_ui5wcr-ObjectStatus-inverted-vs-active-background-color: var(--sapButton_Information_Active_Background); + --_ui5wcr-ObjectStatus-inverted-vs-active-border-color: var(--sapButton_Information_Active_BorderColor); +} + +.objectStatus:is(.inverted.none) { + text-shadow: var(sapContent_TextShadow); + + --_ui5wcr-ObjectStatus-inverted-vs-text-color: var(--sapTextColor); + --_ui5wcr-ObjectStatus-inverted-vs-background-color: var(--sapNeutralBackground); + --_ui5wcr-ObjectStatus-inverted-vs-border-color: var(--sapNeutralBorderColor); + + --_ui5wcr-ObjectStatus-inverted-vs-hover-text-color: var(--sapButton_Neutral_Hover_TextColor); + --_ui5wcr-ObjectStatus-inverted-vs-hover-background-color: var(--sapButton_Neutral_Hover_Background); + --_ui5wcr-ObjectStatus-inverted-vs-hover-border-color: var(--sapButton_Neutral_Hover_BorderColor); + + --_ui5wcr-ObjectStatus-inverted-vs-active-text-color: var(--sapButton_Active_TextColor); + --_ui5wcr-ObjectStatus-inverted-vs-active-background-color: var(--sapButton_Neutral_Active_Background); + --_ui5wcr-ObjectStatus-inverted-vs-active-border-color: var(--sapButton_Neutral_Active_BorderColor); +} + +.objectStatus:is(.inverted):is(.error, .warning, .success, .information, .none) { + color: var(--_ui5wcr-ObjectStatus-inverted-vs-text-color); + background: var(--_ui5wcr-ObjectStatus-inverted-vs-background-color); + border: 0.0625rem solid var(--_ui5wcr-ObjectStatus-inverted-vs-border-color); + + [ui5-icon] { + color: var(--_ui5wcr-ObjectStatus-inverted-vs-text-color); + } + + &.active:hover { + color: var(--_ui5wcr-ObjectStatus-inverted-vs-hover-text-color); + background: var(--_ui5wcr-ObjectStatus-inverted-vs-hover-background-color); + border: 0.0625rem solid var(--_ui5wcr-ObjectStatus-inverted-vs-hover-border-color); + + [ui5-icon] { + color: var(--_ui5wcr-ObjectStatus-inverted-vs-hover-text-color); + } + } + + &.active:active { + text-shadow: var(--sapContent_TextShadow); + color: var(--_ui5wcr-ObjectStatus-inverted-vs-active-text-color); + background: var(--_ui5wcr-ObjectStatus-inverted-vs-active-background-color); + border: 0.0625rem solid var(--_ui5wcr-ObjectStatus-inverted-vs-active-border-color); + + [ui5-icon] { + color: var(--_ui5wcr-ObjectStatus-inverted-vs-active-text-color); + } + } +} + +/* Inverted Indication Styles */ +.objectStatus:is(.inverted.indication01) { + --_ui5wcr-ObjectStatus-inverted-indication-text-color: var(--sapIndicationColor_1_TextColor); + --_ui5wcr-ObjectStatus-inverted-indication-background-color: var(--sapIndicationColor_1_Background); + --_ui5wcr-ObjectStatus-inverted-indication-border-color: var(--sapIndicationColor_1_BorderColor); + + --_ui5wcr-ObjectStatus-inverted-indication-hover-background-color: var(--sapIndicationColor_1_Hover_Background); + + --_ui5wcr-ObjectStatus-inverted-indication-active-text-color: var(--sapIndicationColor_1_Active_TextColor); + --_ui5wcr-ObjectStatus-inverted-indication-active-background-color: var(--sapIndicationColor_1_Active_Background); + --_ui5wcr-ObjectStatus-inverted-indication-active-border-color: var(--sapIndicationColor_1_Active_BorderColor); +} + +.objectStatus:is(.inverted.indication02) { + --_ui5wcr-ObjectStatus-inverted-indication-text-color: var(--sapIndicationColor_2_TextColor); + --_ui5wcr-ObjectStatus-inverted-indication-background-color: var(--sapIndicationColor_2_Background); + --_ui5wcr-ObjectStatus-inverted-indication-border-color: var(--sapIndicationColor_2_BorderColor); + + --_ui5wcr-ObjectStatus-inverted-indication-hover-background-color: var(--sapIndicationColor_2_Hover_Background); + + --_ui5wcr-ObjectStatus-inverted-indication-active-text-color: var(--sapIndicationColor_2_Active_TextColor); + --_ui5wcr-ObjectStatus-inverted-indication-active-background-color: var(--sapIndicationColor_2_Active_Background); + --_ui5wcr-ObjectStatus-inverted-indication-active-border-color: var(--sapIndicationColor_2_Active_BorderColor); +} + +.objectStatus:is(.inverted.indication03) { + --_ui5wcr-ObjectStatus-inverted-indication-text-color: var(--sapIndicationColor_3_TextColor); + --_ui5wcr-ObjectStatus-inverted-indication-background-color: var(--sapIndicationColor_3_Background); + --_ui5wcr-ObjectStatus-inverted-indication-border-color: var(--sapIndicationColor_3_BorderColor); + + --_ui5wcr-ObjectStatus-inverted-indication-hover-background-color: var(--sapIndicationColor_3_Hover_Background); + + --_ui5wcr-ObjectStatus-inverted-indication-active-text-color: var(--sapIndicationColor_3_Active_TextColor); + --_ui5wcr-ObjectStatus-inverted-indication-active-background-color: var(--sapIndicationColor_3_Active_Background); + --_ui5wcr-ObjectStatus-inverted-indication-active-border-color: var(--sapIndicationColor_3_Active_BorderColor); +} + +.objectStatus:is(.inverted.indication04) { + --_ui5wcr-ObjectStatus-inverted-indication-text-color: var(--sapIndicationColor_4_TextColor); + --_ui5wcr-ObjectStatus-inverted-indication-background-color: var(--sapIndicationColor_4_Background); + --_ui5wcr-ObjectStatus-inverted-indication-border-color: var(--sapIndicationColor_4_BorderColor); + + --_ui5wcr-ObjectStatus-inverted-indication-hover-background-color: var(--sapIndicationColor_4_Hover_Background); + + --_ui5wcr-ObjectStatus-inverted-indication-active-text-color: var(--sapIndicationColor_4_Active_TextColor); + --_ui5wcr-ObjectStatus-inverted-indication-active-background-color: var(--sapIndicationColor_4_Active_Background); + --_ui5wcr-ObjectStatus-inverted-indication-active-border-color: var(--sapIndicationColor_4_Active_BorderColor); +} + +.objectStatus:is(.inverted.indication05) { + --_ui5wcr-ObjectStatus-inverted-indication-text-color: var(--sapIndicationColor_5_TextColor); + --_ui5wcr-ObjectStatus-inverted-indication-background-color: var(--sapIndicationColor_5_Background); + --_ui5wcr-ObjectStatus-inverted-indication-border-color: var(--sapIndicationColor_5_BorderColor); + + --_ui5wcr-ObjectStatus-inverted-indication-hover-background-color: var(--sapIndicationColor_5_Hover_Background); + + --_ui5wcr-ObjectStatus-inverted-indication-active-text-color: var(--sapIndicationColor_5_Active_TextColor); + --_ui5wcr-ObjectStatus-inverted-indication-active-background-color: var(--sapIndicationColor_5_Active_Background); + --_ui5wcr-ObjectStatus-inverted-indication-active-border-color: var(--sapIndicationColor_5_Active_BorderColor); +} + +.objectStatus:is(.inverted.indication06) { + --_ui5wcr-ObjectStatus-inverted-indication-text-color: var(--sapIndicationColor_6_TextColor); + --_ui5wcr-ObjectStatus-inverted-indication-background-color: var(--sapIndicationColor_6_Background); + --_ui5wcr-ObjectStatus-inverted-indication-border-color: var(--sapIndicationColor_6_BorderColor); + + --_ui5wcr-ObjectStatus-inverted-indication-hover-background-color: var(--sapIndicationColor_6_Hover_Background); + + --_ui5wcr-ObjectStatus-inverted-indication-active-text-color: var(--sapIndicationColor_6_Active_TextColor); + --_ui5wcr-ObjectStatus-inverted-indication-active-background-color: var(--sapIndicationColor_6_Active_Background); + --_ui5wcr-ObjectStatus-inverted-indication-active-border-color: var(--sapIndicationColor_6_Active_BorderColor); +} + +.objectStatus:is(.inverted.indication07) { + --_ui5wcr-ObjectStatus-inverted-indication-text-color: var(--sapIndicationColor_7_TextColor); + --_ui5wcr-ObjectStatus-inverted-indication-background-color: var(--sapIndicationColor_7_Background); + --_ui5wcr-ObjectStatus-inverted-indication-border-color: var(--sapIndicationColor_7_BorderColor); + + --_ui5wcr-ObjectStatus-inverted-indication-hover-background-color: var(--sapIndicationColor_7_Hover_Background); + + --_ui5wcr-ObjectStatus-inverted-indication-active-text-color: var(--sapIndicationColor_7_Active_TextColor); + --_ui5wcr-ObjectStatus-inverted-indication-active-background-color: var(--sapIndicationColor_7_Active_Background); + --_ui5wcr-ObjectStatus-inverted-indication-active-border-color: var(--sapIndicationColor_7_Active_BorderColor); +} + +.objectStatus:is(.inverted.indication08) { + --_ui5wcr-ObjectStatus-inverted-indication-text-color: var(--sapIndicationColor_8_TextColor); + --_ui5wcr-ObjectStatus-inverted-indication-background-color: var(--sapIndicationColor_8_Background); + --_ui5wcr-ObjectStatus-inverted-indication-border-color: var(--sapIndicationColor_8_BorderColor); + + --_ui5wcr-ObjectStatus-inverted-indication-hover-background-color: var(--sapIndicationColor_8_Hover_Background); + + --_ui5wcr-ObjectStatus-inverted-indication-active-text-color: var(--sapIndicationColor_8_Active_TextColor); + --_ui5wcr-ObjectStatus-inverted-indication-active-background-color: var(--sapIndicationColor_8_Active_Background); + --_ui5wcr-ObjectStatus-inverted-indication-active-border-color: var(--sapIndicationColor_8_Active_BorderColor); +} + +.objectStatus:is(.inverted):is( + .indication01, + .indication02, + .indication03, + .indication04, + .indication05, + .indication06, + .indication07, + .indication08 + ) { + text-shadow: var(--sapContent_ContrastTextShadow); + color: var(--_ui5wcr-ObjectStatus-inverted-indication-text-color); + background-color: var(--_ui5wcr-ObjectStatus-inverted-indication-background-color); + border: 0.0625rem solid var(--_ui5wcr-ObjectStatus-inverted-indication-border-color); + + [ui5-icon] { + color: var(--_ui5wcr-ObjectStatus-inverted-indication-text-color); + } + + &.active:hover { + background: var(--_ui5wcr-ObjectStatus-inverted-indication-hover-background-color); + } + + &.active:active { + text-shadow: var(--sapContent_TextShadow); + color: var(--_ui5wcr-ObjectStatus-inverted-indication-active-text-color); + background: var(--_ui5wcr-ObjectStatus-inverted-indication-active-background-color); + border: 0.0625rem solid var(--_ui5wcr-ObjectStatus-inverted-indication-active-border-color); + + [ui5-icon] { + color: var(--_ui5wcr-ObjectStatus-inverted-indication-active-text-color); + } + } +} diff --git a/packages/main/src/components/ObjectStatus/index.tsx b/packages/main/src/components/ObjectStatus/index.tsx index b8abbe180b1..73bd2a78209 100644 --- a/packages/main/src/components/ObjectStatus/index.tsx +++ b/packages/main/src/components/ObjectStatus/index.tsx @@ -2,19 +2,18 @@ import { VALUE_STATE_ERROR, - VALUE_STATE_WARNING, VALUE_STATE_INFORMATION, - VALUE_STATE_SUCCESS + VALUE_STATE_SUCCESS, + VALUE_STATE_WARNING } from '@ui5/webcomponents/dist/generated/i18n/i18n-defaults.js'; import alertIcon from '@ui5/webcomponents-icons/dist/alert.js'; import errorIcon from '@ui5/webcomponents-icons/dist/error.js'; import informationIcon from '@ui5/webcomponents-icons/dist/information.js'; import successIcon from '@ui5/webcomponents-icons/dist/sys-enter-2.js'; -import { useI18nBundle } from '@ui5/webcomponents-react-base'; +import { useI18nBundle, useStylesheet } from '@ui5/webcomponents-react-base'; import { clsx } from 'clsx'; import type { MouseEventHandler, ReactNode } from 'react'; import React, { forwardRef } from 'react'; -import { createUseStyles } from 'react-jss'; import type { IndicationColor } from '../../enums/index.js'; import { ValueState } from '../../enums/index.js'; import { @@ -25,7 +24,7 @@ import { } from '../../i18n/i18n-defaults.js'; import type { CommonProps } from '../../types/index.js'; import { Icon } from '../../webComponents/Icon/index.js'; -import styles from './ObjectStatus.jss.js'; +import { classNames, styleData } from './ObjectStatus.module.css.js'; export interface ObjectStatusPropTypes extends CommonProps { /** @@ -154,8 +153,6 @@ const getStateSpecifics = (state, showDefaultIcon, userIcon, stateAnnouncementTe return [icon, invisibleText]; }; -const useStyles = createUseStyles(styles, { name: 'ObjectStatus' }); - /** * Status information that can be either text with a value state, or an icon. */ @@ -177,7 +174,7 @@ const ObjectStatus = forwardRef – @@ -207,12 +204,12 @@ const ObjectStatus = forwardRef - + {active ? i18nBundle.getText(ARIA_OBJ_STATUS_DESC) : i18nBundle.getText(ARIA_OBJ_STATUS_DESC_INACTIVE)} {iconToRender && ( - + {iconToRender} )} {computedChildren && ( - + {computedChildren} {showEmptyIndicator && ( - + {i18nBundle.getText(EMPTY_VALUE)} )} )} {!!invisibleText && computedChildren && ( - + {invisibleText} )}