import type {Theme} from '@emotion/react';
import {css} from '@emotion/react';
/**
* Inner padding for inputs. This is deprecated. If necessary, use the values
* in `theme.formPadding` instead. Be sure to specify the input size, e.g.
* `theme.formPadding.md.paddingLeft`.
*
* @deprecated
*/
export const INPUT_PADDING = 10;
type Props = {
theme: Theme;
disabled?: boolean;
monospace?: boolean;
readOnly?: boolean;
};
/**
* Styles for inputs/textareas. This is deprecated. Consider these
* alternatives:
*
* - [Strongly Recommended] Use the existing form components, such as:
* + from 'sentry/components/input'
* + from 'sentry/components/forms/controls/textarea'
* + from 'sentry/components/textCopyInput'
* + …
*
* - Import `inputStyles` as a named import from 'sentry/components/input'.
* This is only meant for use in core, reusable components. It should rarely
* be used elsewhere (chances are you don't want all the styles that it comes
* with).
*
* @deprecated
*/
const inputStyles = (props: Props) => css`
color: ${props.disabled ? props.theme.disabled : props.theme.formText};
display: block;
width: 100%;
background: ${props.theme.background};
border: 1px solid ${props.theme.border};
border-radius: ${props.theme.borderRadius};
box-shadow: inset ${props.theme.dropShadowMedium};
padding: ${INPUT_PADDING}px;
resize: vertical;
height: 40px;
transition:
border 0.1s,
box-shadow 0.1s;
${props.monospace ? `font-family: ${props.theme.text.familyMono}` : ''};
${props.readOnly
? css`
cursor: default;
`
: ''};
&::placeholder {
color: ${props.theme.formPlaceholder};
}
&[disabled] {
background: ${props.theme.backgroundSecondary};
color: ${props.theme.gray300};
border: 1px solid ${props.theme.border};
cursor: not-allowed;
&::placeholder {
color: ${props.theme.disabled};
}
}
&:focus,
&:focus-visible {
outline: none;
border-color: ${props.theme.focusBorder};
box-shadow: ${props.theme.focusBorder} 0 0 0 1px;
}
`;
export {inputStyles};