UNPKG

@pubsweet/ui

Version:

React component library for use in pubsweet apps

112 lines (87 loc) 4.39 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")); var _uiToolkit = require("@pubsweet/ui-toolkit"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _templateObject4() { var data = _taggedTemplateLiteral(["\n position: absolute;\n padding-left: calc(4 * ", ");\n margin-top: -", ";\n"]); _templateObject4 = function _templateObject4() { return data; }; return data; } function _templateObject3() { var data = _taggedTemplateLiteral(["\n position: absolute;\n opacity: 0;\n z-index: -1;\n margin-right: ", ";\n"]); _templateObject3 = function _templateObject3() { return data; }; return data; } function _templateObject2() { var data = _taggedTemplateLiteral(["\n width: calc(5 * ", ");\n height: ", ";\n border-radius: ", ";\n background: ", ";\n border: 1px solid ", ";\n cursor: pointer;\n margin: ", ";\n\n &:before {\n content: ' ';\n display: inline-block;\n position: relative;\n width: calc(3 * ", ");\n height: calc(3 * ", ");\n border-radius: 50%;\n top: -", ";\n left: ", ";\n background: ", ";\n transition: left 0.3s;\n }\n"]); _templateObject2 = function _templateObject2() { return data; }; return data; } function _templateObject() { var data = _taggedTemplateLiteral(["\n display: flex;\n padding: ", ";\n &:hover span {\n color: ", ";\n }\n ", ";\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 Root = _styledComponents["default"].label(_templateObject(), (0, _uiToolkit.th)('gridUnit'), (0, _uiToolkit.th)('colorPrimary'), (0, _uiToolkit.override)('ui.Toggle')); var Label = _styledComponents["default"].span(_templateObject2(), (0, _uiToolkit.th)('gridUnit'), (0, _uiToolkit.th)('gridUnit'), (0, _uiToolkit.th)('gridUnit'), (0, _uiToolkit.th)('colorBackgroundHue'), (0, _uiToolkit.th)('colorBackgroundHue'), (0, _uiToolkit.th)('gridUnit'), (0, _uiToolkit.th)('gridUnit'), (0, _uiToolkit.th)('gridUnit'), (0, _uiToolkit.th)('gridUnit'), function (props) { return props.checked ? '24px' : '0px'; }, function (props) { return props.checked ? props.theme.colorPrimary : props.theme.colorSecondary; }); var Input = _styledComponents["default"].input(_templateObject3(), (0, _uiToolkit.th)('gridUnit')); var Span = _styledComponents["default"].span(_templateObject4(), (0, _uiToolkit.th)('gridUnit'), (0, _uiToolkit.th)('gridUnit')); var Toggle = function Toggle(_ref) { var label = _ref.label, labelChecked = _ref.labelChecked, name = _ref.name, disabled = _ref.disabled, required = _ref.required, value = _ref.value, checked = _ref.checked, onChange = _ref.onChange; checked = checked || false; return /*#__PURE__*/_react["default"].createElement(Root, null, /*#__PURE__*/_react["default"].createElement(Input, { checked: checked, disabled: disabled, name: name, onChange: disabled ? undefined : onChange, required: required, type: "checkbox", value: value }), /*#__PURE__*/_react["default"].createElement(Label, { checked: checked }, labelChecked && checked ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(Span, null, labelChecked)) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(Span, null, label)))); }; Toggle.propTypes = { value: _propTypes["default"].bool, disabled: _propTypes["default"].bool, label: _propTypes["default"].string, labelChecked: _propTypes["default"].string, onChange: _propTypes["default"].func, name: _propTypes["default"].string }; Toggle.defaultProps = { value: false, disabled: false, label: '', labelChecked: '', name: '', onChange: function onChange() {} }; var _default = Toggle; exports["default"] = _default;