UNPKG

@kiwicom/orbit-components

Version:

<div align="center"> <a href="https://orbit.kiwi" target="_blank"> <img alt="orbit-components" src="https://orbit.kiwi/wp-content/uploads/2018/08/orbit-components.png" srcset="https://orbit.kiwi/wp-content/uploads/2018/08/orbit-components@2x.png 2x"

218 lines (190 loc) 7.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = require("react"); var React = _interopRequireWildcard(_react); var _styledComponents = require("styled-components"); var _styledComponents2 = _interopRequireDefault(_styledComponents); var _defaultTokens = require("../defaultTokens"); var _defaultTokens2 = _interopRequireDefault(_defaultTokens); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } var getBorderColor = function getBorderColor() { return function (_ref) { var theme = _ref.theme, hasError = _ref.hasError, disabled = _ref.disabled, checked = _ref.checked; return hasError && !disabled && !checked ? theme.orbit.borderColorCheckboxRadioError : theme.orbit.borderColorCheckboxRadio; }; }; var Glyph = _styledComponents2.default.span.withConfig({ displayName: "Radio__Glyph" })(["visibility:hidden;width:12px;height:12px;background-color:", ";border-radius:", ";flex-shrink:0;"], function (_ref2) { var theme = _ref2.theme, disabled = _ref2.disabled; return disabled ? theme.orbit.colorIconCheckboxRadioDisabled : theme.orbit.colorIconCheckboxRadio; }, function (_ref3) { var theme = _ref3.theme; return theme.orbit.borderRadiusCircle; }); Glyph.defaultProps = { theme: _defaultTokens2.default }; var IconContainer = _styledComponents2.default.div.withConfig({ displayName: "Radio__IconContainer" })(["position:relative;box-sizing:border-box;flex:0 0 auto;display:flex;align-items:center;justify-content:center;background-color:", ";height:", ";width:", ";border-radius:", ";transform:scale(1);transition:all ", " ease-in-out;}"], function (_ref4) { var theme = _ref4.theme; return theme.orbit.backgroundInput; }, function (_ref5) { var theme = _ref5.theme; return theme.orbit.heightCheckbox; }, function (_ref6) { var theme = _ref6.theme; return theme.orbit.widthCheckbox; }, function (_ref7) { var theme = _ref7.theme; return theme.orbit.borderRadiusCircle; }, function (_ref8) { var theme = _ref8.theme; return theme.orbit.durationFast; }); IconContainer.defaultProps = { theme: _defaultTokens2.default }; var TextContainer = _styledComponents2.default.div.withConfig({ displayName: "Radio__TextContainer" })(["display:flex;flex-direction:column;margin-left:", ";"], function (_ref9) { var theme = _ref9.theme; return theme.orbit.spaceXSmall; }); TextContainer.defaultProps = { theme: _defaultTokens2.default }; var Info = _styledComponents2.default.span.withConfig({ displayName: "Radio__Info" })(["font-size:", ";color:", ";line-height:", ";"], function (_ref10) { var theme = _ref10.theme; return theme.orbit.fontSizeFormFeedback; }, function (_ref11) { var theme = _ref11.theme; return theme.orbit.colorInfoCheckBoxRadio; }, function (_ref12) { var theme = _ref12.theme; return theme.orbit.lineHeightText; }); Info.defaultProps = { theme: _defaultTokens2.default }; var LabelText = _styledComponents2.default.span.withConfig({ displayName: "Radio__LabelText" })(["font-weight:", ";font-size:", ";color:", ";height:", ";line-height:", ";"], function (_ref13) { var theme = _ref13.theme; return theme.orbit.fontWeightNormal; }, function (_ref14) { var theme = _ref14.theme; return theme.orbit.fontSizeFormLabel; }, function (_ref15) { var theme = _ref15.theme; return theme.orbit.colorFormLabel; }, function (_ref16) { var theme = _ref16.theme; return theme.orbit.heightCheckbox; }, function (_ref17) { var theme = _ref17.theme; return theme.orbit.heightCheckbox; }); LabelText.defaultProps = { theme: _defaultTokens2.default }; var Input = _styledComponents2.default.input.withConfig({ displayName: "Radio__Input" })(["visibility:hidden;display:none;&:checked ~ ", " > ", "{font-weight:", ";}&:checked + ", " > ", "{visibility:visible;}"], TextContainer, LabelText, function (_ref18) { var theme = _ref18.theme; return theme.orbit.fontWeightMedium; }, IconContainer, Glyph); Input.defaultProps = { theme: _defaultTokens2.default }; var Label = (0, _styledComponents2.default)(function (_ref19) { var disabled = _ref19.disabled, theme = _ref19.theme, type = _ref19.type, hasError = _ref19.hasError, props = _objectWithoutProperties(_ref19, ["disabled", "theme", "type", "hasError"]); return React.createElement( "label", props, props.children ); }).withConfig({ displayName: "Radio__Label" })(["font-family:", ";display:flex;flex-direction:row;align-items:self-start;opacity:", ";cursor:", ";position:relative;", "{border:1px solid ", ";}&:hover ", "{border-color:", ";}&:active ", "{border-color:", ";transform:", ";}&:focus{outline:0;& ", "{border:", ";}}"], function (_ref20) { var theme = _ref20.theme; return theme.orbit.fontFamily; }, function (_ref21) { var disabled = _ref21.disabled, theme = _ref21.theme; return disabled ? theme.orbit.opacityCheckboxDisabled : "1"; }, function (_ref22) { var disabled = _ref22.disabled; return disabled ? "default" : "pointer"; }, IconContainer, getBorderColor(), IconContainer, function (_ref23) { var disabled = _ref23.disabled, theme = _ref23.theme; return !disabled && theme.orbit.borderColorCheckboxRadioHover; }, IconContainer, function (_ref24) { var disabled = _ref24.disabled, theme = _ref24.theme; return disabled ? getBorderColor() : theme.orbit.borderColorCheckboxRadioActive; }, function (_ref25) { var disabled = _ref25.disabled, theme = _ref25.theme; return !disabled && "scale(" + theme.orbit.modifierScaleCheckboxRadioActive + ")"; }, IconContainer, function (_ref26) { var theme = _ref26.theme; return "2px " + theme.orbit.borderStyleInput + " " + theme.orbit.borderColorCheckboxRadioFocus; }); Label.defaultProps = { theme: _defaultTokens2.default }; var Radio = function Radio(_ref27) { var label = _ref27.label, value = _ref27.value, _ref27$hasError = _ref27.hasError, hasError = _ref27$hasError === undefined ? false : _ref27$hasError, _ref27$disabled = _ref27.disabled, disabled = _ref27$disabled === undefined ? false : _ref27$disabled, _ref27$checked = _ref27.checked, checked = _ref27$checked === undefined ? false : _ref27$checked, onChange = _ref27.onChange, info = _ref27.info, dataTest = _ref27.dataTest; return React.createElement( Label, { disabled: disabled, hasError: hasError, checked: checked, "data-test": dataTest }, React.createElement(Input, { value: value, type: "radio", disabled: disabled, checked: checked, onChange: onChange }), React.createElement( IconContainer, null, React.createElement(Glyph, { disabled: disabled }) ), React.createElement( TextContainer, null, label && React.createElement( LabelText, null, label ), info && React.createElement( Info, null, info ) ) ); }; exports.default = Radio;