UNPKG

@zendeskgarden/react-forms

Version:

Components relating to form elements in the Garden Design System

67 lines (64 loc) 2.31 kB
/** * Copyright Zendesk, Inc. * * Use of this source code is governed under the Apache License, Version 2.0 * found at http://www.apache.org/licenses/LICENSE-2.0. */ import styled, { css } from 'styled-components'; import { SELECTOR_FOCUS_VISIBLE, componentStyles, getColor, focusStyles } from '@zendeskgarden/react-theming'; import { StyledTextInput } from './StyledTextInput.js'; import { StyledTextMediaFigure } from './StyledTextMediaFigure.js'; const COMPONENT_ID = 'forms.faux_input'; const colorStyles = _ref => { let { theme, $validation, $focusInset, $isBare, $isFocused } = _ref; let borderVariable; let focusBorderColor; if ($validation) { if ($validation === 'success') { borderVariable = 'border.successEmphasis'; } else if ($validation === 'warning') { borderVariable = 'border.warningEmphasis'; } else if ($validation === 'error') { borderVariable = 'border.dangerEmphasis'; } focusBorderColor = getColor({ theme, variable: borderVariable }); } else { borderVariable = 'border.primaryEmphasis'; focusBorderColor = getColor({ theme, variable: borderVariable }); } return css(["", ""], focusStyles({ theme, inset: $focusInset, color: { variable: borderVariable }, selector: $isFocused ? '&' : '&:focus-within', styles: { borderColor: focusBorderColor }, condition: !$isBare })); }; const StyledTextFauxInput = styled(StyledTextInput).attrs(props => ({ as: 'div', 'aria-readonly': props.$isReadOnly, 'aria-disabled': props.$isDisabled, 'data-garden-id': COMPONENT_ID, 'data-garden-version': '9.9.0' })).withConfig({ displayName: "StyledTextFauxInput", componentId: "sc-yqw7j9-0" })(["display:", ";align-items:", ";cursor:", ";overflow:hidden;", " & > ", "{vertical-align:", ";", "{box-shadow:unset;}}& > ", "{flex-shrink:", ";}", ";"], props => props.$mediaLayout ? 'inline-flex' : 'inline-block', props => props.$mediaLayout && 'baseline', props => props.$mediaLayout && !props.$isDisabled ? 'text' : 'default', colorStyles, StyledTextInput, props => !props.$mediaLayout && 'baseline', SELECTOR_FOCUS_VISIBLE, StyledTextMediaFigure, props => props.$mediaLayout && '0', componentStyles); export { StyledTextFauxInput };