12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- 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:
- * + <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};
|