/* * SonarQube * Copyright (C) 2009-2023 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ import styled from '@emotion/styled'; import { ElementType } from 'react'; import tw from 'twin.macro'; import { themeColor, themeContrast } from '../helpers/theme'; interface TextBoldProps { className?: string; match?: string; name: string; } export function TextBold({ match, name, className }: TextBoldProps) { return match ? ( ) : ( {name} ); } export function TextMuted({ text, className }: { className?: string; text: string }) { return ( {text} ); } export function PageTitle({ text, className, as = 'h1', }: { as?: ElementType; className?: string; text: string; }) { return ( {text} ); } export function TextError({ text, className }: { className?: string; text: string }) { return ( {text} ); } export const StyledText = styled.span` ${tw`sw-inline-block`}; ${tw`sw-truncate`}; ${tw`sw-font-semibold`}; ${tw`sw-max-w-abs-600`} mark { ${tw`sw-inline-block`}; background: ${themeColor('searchHighlight')}; color: ${themeContrast('searchHighlight')}; } `; const StyledMutedText = styled(StyledText)` ${tw`sw-font-regular`}; color: ${themeColor('dropdownMenuSubTitle')}; `; export const StyledPageTitle = styled(StyledText)` ${tw`sw-block`}; ${tw`sw-text-base`} color: ${themeColor('facetHeader')}; `; const StyledTextError = styled(StyledText)` color: ${themeColor('danger')}; `; export const LightLabel = styled.span` color: ${themeColor('pageContentLight')}; `; export const LightPrimary = styled.span` color: ${themeContrast('primaryLight')}; `; export const PageContentFontWrapper = styled.div` color: ${themeColor('pageContent')}; `; export const Highlight = styled.strong` color: ${themeColor('pageContentDark')}; ${tw`sw-body-sm-highlight`} `; export const Note = styled.span` color: ${themeColor('pageContentLight')}; ${tw`sw-body-sm`} `;