UNPKG

@kubit-ui-web/react-components

Version:

Kubit React Components is a customizable, accessible library of React web components, designed to enhance your application's user experience

186 lines (175 loc) 6.22 kB
import styled, { css } from 'styled-components'; import { getStyles } from '../../utils/getStyles/getStyles'; // mixins import { getIconPadding, getIconPaddingDeprecated, inputFocusWidthMixin, mapBaseStyles, mapLabelTypeStyles, mapVariableStyles, } from '../../styles/mixins/input.mixin'; import { InputIconPosition, InputState } from './types/inputTheme'; // Component styles export const TitleWrapperStyled = styled.div.withConfig({ shouldForwardProp: () => true, }) ` margin-bottom: ${({ $titleStyles }) => $titleStyles?.titleContainer?.margin_bottom}; `; export const LabelWrapperStyled = styled.div ` ${mapLabelTypeStyles} `; export const AdditionalInfoWrapperStyled = styled.div ` ${({ styles }) => getStyles(styles?.additionalInfoContainer)}; `; export const TitleAndAdditionalInfoWrapperStyled = styled.div ` ${({ styles }) => getStyles(styles?.titleAndAdditionalInfoContainer)}; `; export const InformationAssociatedWrapperStyled = styled.div ` flex-direction: ${({ iconPosition }) => iconPosition === InputIconPosition.RIGHT ? 'row-reverse' : 'row'}; ${({ styles }) => getStyles(styles?.informationAssociatedContainer)}; `; export const InfoAssociatedTextAndDecorativeStyled = styled.div ` ${({ styles }) => getStyles(styles?.informationAssociatedTextAndDecorativeContainer)}; `; export const InfoAssociatedButtonStyled = styled.div ``; export const InputErrorAndHelpMessageWrapperStyled = styled.div ` ${({ styles }) => getStyles(styles?.errorAndHelpMessageContainer)}; `; export const InputErrorStyled = styled.div ` ${({ styles }) => getStyles(styles?.errorMessageContainer)}; p { display: flex; } `; export const ErrorIconWrapperStyled = styled.span ` ${({ styles }) => getStyles(styles?.errorMessageIconContainer)}; `; export const HelpMessageWrapperStyled = styled.div ` ${({ align }) => !align && css ` margin-left: auto; `}; ${({ styles }) => getStyles(styles?.helpMessageContainer)}; `; export const TextCounterStyled = styled.div ` display: flex; flex-direction: row; justify-content: space-between; ${({ styles }) => getStyles(styles?.textCounterContainer)}; `; export const LoaderWrapperStyled = styled.div ` ${({ styles }) => getStyles(styles?.loaderContainer)}; `; export const InputIconContainerStyled = styled.div ` display: flex; align-items: center; justify-content: center; pointer-events: ${({ $pointerEvents }) => ($pointerEvents ? 'auto' : 'none')}; ${({ inputIconContainerStyles }) => getStyles(inputIconContainerStyles)}; `; export const InputIconStyled = styled.div ` display: flex; align-items: center; justify-content: center; pointer-events: ${({ $pointerEvents }) => ($pointerEvents ? 'auto' : 'none')}; ${({ iconPosition, styles }) => css ` ${getStyles(iconPosition === InputIconPosition.RIGHT ? styles?.inputIconContainerRight : styles?.inputIconContainer)}; `} `; // Input Styles export const TopContentWrapperStyled = styled.div ` ${({ styles }) => getStyles(styles?.topContentContainer)}; `; export const BottomContentWrapperStyled = styled.div ` ${({ isExpanded }) => isExpanded && css ` display: none; `} `; export const MessagesAndCounterWrapperStyled = styled.div ` display: flex; justify-content: space-between; `; export const RightContentWrapperStyled = styled.div ``; export const LeftContentWrapperStyled = styled.div ``; export const InputStyled = styled.input ` &::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } &::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; } &::-ms-reveal { display: none; } width: 100%; box-sizing: border-box; ${mapBaseStyles} &:not(:placeholder-shown) { ${({ styles }) => mapVariableStyles(styles?.[InputState.FILLED])} ${({ icon, iconPosition, leftIcon, rightIcon, styles, state }) => icon ? getIconPaddingDeprecated(iconPosition, styles?.[state]) : getIconPadding(!!leftIcon?.icon, !!rightIcon?.icon, styles?.[state])} } &:placeholder-shown { ${({ styles }) => mapVariableStyles(styles?.[InputState.EMPTY])} ${({ icon, iconPosition, leftIcon, rightIcon, styles, state }) => icon ? getIconPaddingDeprecated(iconPosition, styles?.[state]) : getIconPadding(!!leftIcon?.icon, !!rightIcon?.icon, styles?.[state])} } &:disabled { ${({ styles, state }) => mapVariableStyles(styles?.[state])} } &:is([aria-invalid='true']) { ${({ styles, state }) => mapVariableStyles(styles?.[state])} } &:focus { ${({ styles, state }) => mapVariableStyles(styles?.[state])} } &:focus-visible { ${({ styles, state }) => styles?.[state]?.focusVisibleCustom ? getStyles(styles?.[state]?.focusVisibleCustom) : inputFocusWidthMixin} } &[data-truncate='true'] { text-overflow: ellipsis; white-space: nowrap; overflow: hidden; } ${({ cursorPointer }) => cursorPointer && ` cursor: ${cursorPointer}; `} box-shadow: ${({ styles, state }) => styles?.[state]?.inputContainer?.box_shadow}; ${({ theme: { MEDIA_QUERIES: { onlyDesktop, onlyTablet, onlyMobile }, }, styles, state, }) => css ` ${onlyDesktop} { caret-color: ${styles?.[state]?.inputCaretColor?.DESKTOP}; } ${onlyTablet} { caret-color: ${styles?.[state]?.inputCaretColor?.TABLET}; } ${onlyMobile} { caret-color: ${styles?.[state]?.inputCaretColor?.MOBILE}; } `}; `; export const InputWrapperStyled = styled.div ` width: 100%; position: relative; display: flex; flex-direction: column; ${({ styles }) => getStyles(styles?.inputWrapperContainer)}; /* to avoid "-internal-autofill-selected" style to be applied */ input:-webkit-autofill, input:-webkit-autofill:focus { transition: background-color 600000s 0s, color 600000s 0s; } /* Removing input background colour for autocomplete when it is disabled */ input:-webkit-autofill:disabled { -webkit-text-fill-color: ${props => props.styles?.input?.color}; -webkit-box-shadow: 0 0 0px 1000px ${props => props.styles?.inputContainer?.background_color} inset; transition: background-color 5000s ease-in-out 0s; } `; //# sourceMappingURL=input.styled.js.map