import { palette } from '@roleypoly/design-system/atoms/colors'; import * as React from 'react'; import styled from 'styled-components'; const StyledTextInput = styled.input` appearance: none; border: 1px solid ${palette.taupe200}; border-radius: 3px; line-height: 163%; padding: 12px 16px; font-size: 1.2rem; background-color: ${palette.taupe300}; color: ${palette.grey600}; transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; position: relative; width: 100%; box-sizing: border-box; max-width: 97vw; :focus { outline: none; border-color: ${palette.grey100}; box-shadow: 1px 0 3px rgba(0, 0, 0, 0.25); } [disabled], :disabled { cursor: not-allowed; color: rgba(255, 255, 255, 0.75); font-style: italic; } :hover:not([disabled]) { border-color: ${palette.grey100}; } ::placeholder { color: ${palette.taupe500}; } `; type TextInputProps = React.InputHTMLAttributes & { _override?: React.Component; }; export const TextInput = (props: TextInputProps) => { const { ...rest } = props; return ; }; const StyledTextInputWithIcon = styled(StyledTextInput)` padding-left: 36px; `; const IconContainer = styled.div` position: absolute; left: 12px; top: 0; bottom: 0; z-index: 1; display: flex; align-items: center; justify-content: center; `; const IconInputContainer = styled.div` position: relative; width: 100%; `; type TextInputWithIconProps = TextInputProps & { icon: React.ReactNode; }; export const TextInputWithIcon = (props: TextInputWithIconProps) => { const { icon, ...rest } = props; return ( {icon} ); };