UNPKG

wix-style-react

Version:
119 lines (96 loc) 4.68 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _TextSt = require("./Text.st.css"); var _excluded = ["size", "secondary", "skin", "light", "weight", "tagName", "children", "ellipsis", "showDelay", "hideDelay", "appendTo", "flip", "fixed", "placement", "timeout", "maxWidth", "zIndex", "showTooltip", "listStyle"], _excluded2 = ["dataHook", "className"]; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var getStyleDataAttributes = function getStyleDataAttributes(styleAttributes) { return Object.keys(styleAttributes).reduce(function (acc, styleKey) { acc["data-".concat(styleKey)] = styleAttributes[styleKey]; return acc; }, {}); }; var RawText = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) { var size = _ref.size, secondary = _ref.secondary, skin = _ref.skin, light = _ref.light, weight = _ref.weight, tagName = _ref.tagName, children = _ref.children, ellipsis = _ref.ellipsis, showDelay = _ref.showDelay, hideDelay = _ref.hideDelay, appendTo = _ref.appendTo, flip = _ref.flip, fixed = _ref.fixed, placement = _ref.placement, timeout = _ref.timeout, maxWidth = _ref.maxWidth, zIndex = _ref.zIndex, showTooltip = _ref.showTooltip, listStyle = _ref.listStyle, rest = (0, _objectWithoutProperties2["default"])(_ref, _excluded); /* eslint-disable no-unused-vars */ var dataHook = rest.dataHook, className = rest.className, textProps = (0, _objectWithoutProperties2["default"])(rest, _excluded2); var styleAttributes = { size: size, secondary: secondary, skin: skin, light: light, weight: weight, 'list-style': listStyle }; var styleDataAttributes = getStyleDataAttributes(styleAttributes); return /*#__PURE__*/_react["default"].createElement(tagName, _objectSpread(_objectSpread({ ref: ref }, textProps), {}, { 'data-hook': dataHook, className: (0, _TextSt.st)(_TextSt.classes.root, styleAttributes, className) }, styleDataAttributes), children); }); RawText.displayName = 'Text'; RawText.propTypes = { /** Applied as data-hook HTML attribute that can be used in the tests */ dataHook: _propTypes["default"].string, /** class to be applied to the root element */ className: _propTypes["default"].string, /** tag name that will be rendered */ tagName: _propTypes["default"].string, /** Styling to be applied to the root element */ style: _propTypes["default"].object, /** font size of the text */ size: _propTypes["default"].oneOf(['tiny', 'small', 'medium']), /** any nodes to be rendered (usually text nodes) */ children: _propTypes["default"].any, /** is the text type is secondary. Affects the font color */ secondary: _propTypes["default"].bool, /** skin color of the text */ skin: _propTypes["default"].oneOf(['standard', 'success', 'error', 'premium', 'disabled', 'primary']), /** make the text color lighter */ light: _propTypes["default"].bool, /** font weight of the text */ weight: _propTypes["default"].oneOf(['thin', 'normal', 'bold']) }; RawText.defaultProps = { size: 'medium', secondary: false, skin: 'standard', light: false, weight: 'thin', tagName: 'span', listStyle: 'checkmark' }; var _default = RawText; exports["default"] = _default;