@pubsweet/ui
Version:
React component library for use in pubsweet apps
112 lines (87 loc) • 4.39 kB
JavaScript
;
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;