UNPKG

@s-ui/react-atom-input

Version:

> Inputs are the text fields that users fill in with different types of information. These include dates, passwords or even short answers. It’s a field where users can write alphanumeric texts.

55 lines (54 loc) 1.63 kB
import cx from 'classnames'; export var PREFIX = 'sui'; export var CATEGORY = 'Atom'; export var COMPONENT = 'Input'; export var BASE = PREFIX + "-" + CATEGORY + COMPONENT; export var BASE_CLASS = BASE + "-input"; // Enums export var TYPES = { DATE: 'date', EMAIL: 'email', MASK: 'mask', NONE: 'none', NUMBER: 'number', PASSWORD: 'password', SEARCH: 'search', SUI_PASSWORD: 'sui-password', TEL: 'tel', TEXT: 'text' }; export var SIZES = { XLARGE: 'xl', LARGE: 'l', MEDIUM: 'm', SMALL: 's', XSMALL: 'xs' }; export var INPUT_STATES = { ERROR: 'error', SUCCESS: 'success', ALERT: 'alert' }; export var INPUT_SHAPES = { ROUNDED: 'rounded', SQUARE: 'square', CIRCLE: 'circle' }; export var noop = function noop() { return null; }; export var isFunction = function isFunction(fn) { return typeof fn === 'function'; }; export var getClassNames = function getClassNames(_ref) { var size = _ref.size, charsSize = _ref.charsSize, hideInput = _ref.hideInput, noBorder = _ref.noBorder, readOnly = _ref.readOnly, errorState = _ref.errorState, state = _ref.state, shape = _ref.shape, className = _ref.className; return cx(BASE_CLASS, size && BASE_CLASS + "-size-" + size, charsSize && BASE_CLASS + "--charsSize", hideInput && BASE_CLASS + "--hidden", noBorder && BASE_CLASS + "--noBorder", readOnly && BASE_CLASS + "--readOnly", errorState && BASE_CLASS + "--state-" + INPUT_STATES.ERROR, errorState === false && BASE_CLASS + "--state-" + INPUT_STATES.SUCCESS, state && BASE_CLASS + "--state-" + state, shape && BASE_CLASS + "-shape-" + shape, className); };