@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
JavaScript
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);
};