UNPKG

react-hover-fill-button

Version:
77 lines (58 loc) 3.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _styledComponents = _interopRequireDefault(require("styled-components")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } 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; } function _templateObject2() { var data = _taggedTemplateLiteral(["\n\tborder: ", " solid ", ";\n\tbackground: ", ";\n\tcolor: ", "\n\tposition: relative;\n\n\t&:hover ", " {\n\t\tclip-path: polygon(0 0, 100% 0, 165% 100%, 0% 100%);\n\t}\n"]); _templateObject2 = function _templateObject2() { return data; }; return data; } function _templateObject() { var data = _taggedTemplateLiteral(["\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tposition: absolute;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tbackground: ", ";\n\tcolor: ", ";\n\tclip-path: polygon(0 0, -65% 0, 0% 100%, 0% 100%);\n\ttransition: clip-path 0.5s;\n"]); _templateObject = function _templateObject() { return data; }; return data; } function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } var Filler = _styledComponents.default.div(_templateObject(), function (props) { return props.fillBackground || "red"; }, function (props) { return props.fillTextColor || "white"; }); var Button = _styledComponents.default.button(_templateObject2(), function (props) { return props.borderWidth || "2px"; }, function (props) { return props.fillBackground || "red"; }, function (props) { return props.background || "white"; }, function (props) { return props.textColor || "black"; }, Filler); var HoverFillButton = function HoverFillButton(_ref) { var children = _ref.children, className = _ref.className, style = _ref.style, props = _objectWithoutProperties(_ref, ["children", "className", "style"]); return _react.default.createElement(Button, props, _react.default.createElement(Filler, props, children), children); }; HoverFillButton.propTypes = { children: _propTypes.default.node.isRequired, className: _propTypes.default.string, fillBackground: _propTypes.default.string, background: _propTypes.default.string, textColor: _propTypes.default.string, fillTextColor: _propTypes.default.string, borderWidth: _propTypes.default.string }; var _default = HoverFillButton; exports.default = _default;