@primer/components
Version:
Primer react components
31 lines • 1.92 kB
JavaScript
import styled, { css } from 'styled-components';
import { maxWidth, minWidth, variant, width } from 'styled-system';
import { get } from './constants';
import sx from './sx';
const sizeVariants = variant({
variants: {
small: {
minHeight: '28px',
px: 2,
py: '3px',
fontSize: 0,
lineHeight: '20px'
},
large: {
px: 2,
py: '10px',
fontSize: 3
}
}
});
const TextInputWrapper = styled.span.withConfig({
displayName: "_TextInputWrapper__TextInputWrapper",
componentId: "sc-5vfcis-0"
})(["display:inline-flex;align-items:stretch;min-height:34px;font-size:", ";line-height:20px;color:", ";vertical-align:middle;background-repeat:no-repeat;background-position:right 8px center;border:1px solid ", ";border-radius:", ";outline:none;box-shadow:", ";cursor:text;", " .TextInput-icon{align-self:center;color:", ";margin:0 ", ";flex-shrink:0;}&:focus-within{border-color:", ";box-shadow:", ";}", " ", " ", " ", " @media (min-width:", "){font-size:", ";}", " ", " ", " ", " ", ";"], get('fontSizes.1'), get('colors.fg.default'), get('colors.border.default'), get('radii.2'), get('shadows.primer.shadow.inset'), props => {
if (props.hasIcon) {
return css(["padding:0;"]);
} else {
return css(["padding:6px 12px;"]);
}
}, get('colors.fg.muted'), get('space.2'), get('colors.accent.emphasis'), get('shadows.primer.shadow.focus'), props => props.contrast && css(["background-color:", ";"], get('colors.canvas.inset')), props => props.disabled && css(["color:", ";background-color:", ";border-color:", ";"], get('colors.primer.fg.disabled'), get('colors.input.disabledBg'), get('colors.border.default')), props => props.block && css(["display:block;width:100%;"]), props => props.block && props.hasIcon && css(["display:flex;"]), get('breakpoints.1'), get('fontSizes.1'), width, minWidth, maxWidth, sizeVariants, sx);
export default TextInputWrapper;