UNPKG

3.04 kBJavaScriptView Raw
1"use strict";
2'use client';
3
4var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6Object.defineProperty(exports, "__esModule", {
7 value: true
8});
9exports.default = void 0;
10var React = _interopRequireWildcard(require("react"));
11var _propTypes = _interopRequireDefault(require("prop-types"));
12var _RadioButtonUnchecked = _interopRequireDefault(require("../internal/svg-icons/RadioButtonUnchecked"));
13var _RadioButtonChecked = _interopRequireDefault(require("../internal/svg-icons/RadioButtonChecked"));
14var _rootShouldForwardProp = _interopRequireDefault(require("../styles/rootShouldForwardProp"));
15var _zeroStyled = require("../zero-styled");
16var _memoTheme = _interopRequireDefault(require("../utils/memoTheme"));
17var _jsxRuntime = require("react/jsx-runtime");
18const RadioButtonIconRoot = (0, _zeroStyled.styled)('span', {
19 shouldForwardProp: _rootShouldForwardProp.default
20})({
21 position: 'relative',
22 display: 'flex'
23});
24const RadioButtonIconBackground = (0, _zeroStyled.styled)(_RadioButtonUnchecked.default)({
25 // Scale applied to prevent dot misalignment in Safari
26 transform: 'scale(1)'
27});
28const RadioButtonIconDot = (0, _zeroStyled.styled)(_RadioButtonChecked.default)((0, _memoTheme.default)(({
29 theme
30}) => ({
31 left: 0,
32 position: 'absolute',
33 transform: 'scale(0)',
34 transition: theme.transitions.create('transform', {
35 easing: theme.transitions.easing.easeIn,
36 duration: theme.transitions.duration.shortest
37 }),
38 variants: [{
39 props: {
40 checked: true
41 },
42 style: {
43 transform: 'scale(1)',
44 transition: theme.transitions.create('transform', {
45 easing: theme.transitions.easing.easeOut,
46 duration: theme.transitions.duration.shortest
47 })
48 }
49 }]
50})));
51
52/**
53 * @ignore - internal component.
54 */
55function RadioButtonIcon(props) {
56 const {
57 checked = false,
58 classes = {},
59 fontSize
60 } = props;
61 const ownerState = {
62 ...props,
63 checked
64 };
65 return /*#__PURE__*/(0, _jsxRuntime.jsxs)(RadioButtonIconRoot, {
66 className: classes.root,
67 ownerState: ownerState,
68 children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(RadioButtonIconBackground, {
69 fontSize: fontSize,
70 className: classes.background,
71 ownerState: ownerState
72 }), /*#__PURE__*/(0, _jsxRuntime.jsx)(RadioButtonIconDot, {
73 fontSize: fontSize,
74 className: classes.dot,
75 ownerState: ownerState
76 })]
77 });
78}
79process.env.NODE_ENV !== "production" ? RadioButtonIcon.propTypes /* remove-proptypes */ = {
80 /**
81 * If `true`, the component is checked.
82 */
83 checked: _propTypes.default.bool,
84 /**
85 * Override or extend the styles applied to the component.
86 */
87 classes: _propTypes.default.object,
88 /**
89 * The size of the component.
90 * `small` is equivalent to the dense radio styling.
91 */
92 fontSize: _propTypes.default.oneOf(['small', 'medium'])
93} : void 0;
94var _default = exports.default = RadioButtonIcon;
\No newline at end of file