UNPKG

2.5 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.default = exports.styles = void 0;
9
10var _react = _interopRequireDefault(require("react"));
11
12var _propTypes = _interopRequireDefault(require("prop-types"));
13
14var _clsx = _interopRequireDefault(require("clsx"));
15
16var _RadioButtonUnchecked = _interopRequireDefault(require("../internal/svg-icons/RadioButtonUnchecked"));
17
18var _RadioButtonChecked = _interopRequireDefault(require("../internal/svg-icons/RadioButtonChecked"));
19
20var _withStyles = _interopRequireDefault(require("../styles/withStyles"));
21
22var styles = function styles(theme) {
23 return {
24 root: {
25 position: 'relative',
26 display: 'flex',
27 '&$checked $layer': {
28 transform: 'scale(1)',
29 transition: theme.transitions.create('transform', {
30 easing: theme.transitions.easing.easeOut,
31 duration: theme.transitions.duration.shortest
32 })
33 }
34 },
35 layer: {
36 left: 0,
37 position: 'absolute',
38 transform: 'scale(0)',
39 transition: theme.transitions.create('transform', {
40 easing: theme.transitions.easing.easeIn,
41 duration: theme.transitions.duration.shortest
42 })
43 },
44 checked: {}
45 };
46};
47/**
48 * @ignore - internal component.
49 */
50
51
52exports.styles = styles;
53
54function RadioButtonIcon(props) {
55 var checked = props.checked,
56 classes = props.classes,
57 fontSize = props.fontSize;
58 return _react.default.createElement("div", {
59 className: (0, _clsx.default)(classes.root, checked && classes.checked)
60 }, _react.default.createElement(_RadioButtonUnchecked.default, {
61 fontSize: fontSize
62 }), _react.default.createElement(_RadioButtonChecked.default, {
63 fontSize: fontSize,
64 className: classes.layer
65 }));
66}
67
68process.env.NODE_ENV !== "production" ? RadioButtonIcon.propTypes = {
69 /**
70 * If `true`, the component is checked.
71 */
72 checked: _propTypes.default.bool,
73
74 /**
75 * Override or extend the styles applied to the component.
76 * See [CSS API](#css) below for more details.
77 */
78 classes: _propTypes.default.object.isRequired,
79
80 /**
81 * The size of the radio.
82 * `small` is equivalent to the dense radio styling.
83 */
84 fontSize: _propTypes.default.oneOf(['small', 'default'])
85} : void 0;
86
87var _default = (0, _withStyles.default)(styles, {
88 name: 'PrivateRadioButtonIcon'
89})(RadioButtonIcon);
90
91exports.default = _default;
\No newline at end of file