import {css, Theme} 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: * + <Input /> from 'sentry/components/input' * + <Textarea /> from 'sentry/components/forms/controls/textarea' * + <TextCopyInput /> 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};