@quarkly/atomize
Version:
Library for creating atomic react components
52 lines (44 loc) • 1.16 kB
JavaScript
import _isUndefined from "lodash/fp/isUndefined";
import _get from "lodash/fp/get";
import _isNumber from "lodash/fp/isNumber";
export var pixel = function pixel(n) {
return _isNumber(n) && n !== 0 ? n + "px" : n;
};
export var width = function width(n) {
return !_isNumber(n) || n > 1 ? pixel(n) : n * 100 + "%";
};
export var fontSize = function fontSize(n, scale) {
if (!_isNumber(n)) {
return pixel(n);
}
var value = _get(n, scale);
if (_isUndefined(value)) {
return pixel(n);
}
return pixel(value);
};
export var space = function space(n, scale) {
if (!_isNumber(n)) {
return pixel(n);
}
var isNegative = n < 0;
var absolute = Math.abs(n);
var value = _get(absolute, scale);
if (_isUndefined(value)) {
return pixel(n);
}
if (!_isNumber(value)) {
return isNegative ? "-" + value : value;
}
return pixel(value * (isNegative ? -1 : 1));
};
export var defaultTransformer = function defaultTransformer(value) {
return _isNumber(value) ? "" + value : value;
};
export default {
pixel: pixel,
width: width,
space: space,
fontSize: fontSize,
defaultTransformer: defaultTransformer
};