UNPKG

@bianic-ui/system

Version:

Bianic UI system primitives

101 lines (79 loc) 3.71 kB
"use strict"; exports.__esModule = true; exports.omitThemingProps = omitThemingProps; exports.pseudoProps = pseudoProps; exports.truncateProp = truncateProp; exports["default"] = isTag; exports.getDisplayName = getDisplayName; exports.extraProps = exports.cast = exports.domElements = void 0; var _styledSystem = require("@bianic-ui/styled-system"); var _utils = require("@bianic-ui/utils"); function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } /** * Carefully selected html elements for bianic components. * This is mostly for `bianic.<element>` syntax. */ var domElements = ["a", "article", "aside", "blockquote", "button", "caption", "cite", "circle", "code", "dd", "div", "dl", "dt", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "header", "hr", "img", "input", "kbd", "label", "li", "mark", "nav", "ol", "p", "path", "pre", "q", "rect", "s", "svg", "section", "select", "small", "span", "sub", "sup", "table", "tbody", "td", "textarea", "tfoot", "th", "thead", "tr", "ul"]; exports.domElements = domElements; var cast = function cast(arg) { return arg; }; exports.cast = cast; function omitThemingProps(props) { return (0, _utils.omit)(props, ["styleConfig", "size", "variant", "colorScheme"]); } function pseudoProps(_ref) { var theme = _ref.theme, props = _objectWithoutPropertiesLoose(_ref, ["theme"]); var result = {}; for (var prop in props) { if (prop in _styledSystem.pseudoSelectors) { var _css; var style = (0, _styledSystem.css)((_css = {}, _css[prop] = props[prop], _css))(theme); result = _extends({}, result, style); } } return result; } function truncateProp(_ref2) { var isTruncated = _ref2.isTruncated, noOfLines = _ref2.noOfLines; if ((0, _utils.isNumber)(noOfLines)) { return { overflow: "hidden", textOverflow: "ellipsis", display: "-webkit-box", WebkitBoxOrient: "vertical", WebkitLineClamp: noOfLines }; } if (isTruncated) { return { overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }; } } var extraProps = function extraProps(props) { var layerStyle = props.layerStyle, textStyle = props.textStyle, apply = props.apply, theme = props.theme; var styles = (0, _utils.merge)({}, (0, _utils.get)(theme, "layerStyles." + layerStyle, {}), (0, _utils.get)(theme, "textStyles." + textStyle, {})); return (0, _styledSystem.css)(_extends({}, styles, { apply: apply }))(theme); }; exports.extraProps = extraProps; function isTag(target) { return (0, _utils.isString)(target) && (_utils.__DEV__ ? target.charAt(0) === target.charAt(0).toLowerCase() : true); } function getDisplayName(primitive) { return isTag(primitive) ? "bianic." + primitive : getComponentName(primitive); } function getComponentName(primitive) { return (_utils.__DEV__ ? (0, _utils.isString)(primitive) && primitive : false) || !(0, _utils.isString)(primitive) && primitive.displayName || !(0, _utils.isString)(primitive) && primitive.name || "BianicComponent"; } //# sourceMappingURL=system.utils.js.map