UNPKG

@mui/material

Version:

Quickly build beautiful React apps. MUI is a simple and customizable component library to build faster, beautiful, and more accessible React applications. Follow your own design system, or start with Material Design.

105 lines (89 loc) 3.96 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var React = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _RadioButtonUnchecked = _interopRequireDefault(require("../internal/svg-icons/RadioButtonUnchecked")); var _RadioButtonChecked = _interopRequireDefault(require("../internal/svg-icons/RadioButtonChecked")); var _styled = _interopRequireDefault(require("../styles/styled")); var _jsxRuntime = require("react/jsx-runtime"); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } const RadioButtonIconRoot = (0, _styled.default)('span')({ position: 'relative', display: 'flex' }); const RadioButtonIconBackground = (0, _styled.default)(_RadioButtonUnchecked.default, { skipSx: true })({ // Scale applied to prevent dot misalignment in Safari transform: 'scale(1)' }); const RadioButtonIconDot = (0, _styled.default)(_RadioButtonChecked.default, { skipSx: true })(({ theme, ownerState }) => (0, _extends2.default)({ left: 0, position: 'absolute', transform: 'scale(0)', transition: theme.transitions.create('transform', { easing: theme.transitions.easing.easeIn, duration: theme.transitions.duration.shortest }) }, ownerState.checked && { transform: 'scale(1)', transition: theme.transitions.create('transform', { easing: theme.transitions.easing.easeOut, duration: theme.transitions.duration.shortest }) })); /** * @ignore - internal component. */ function RadioButtonIcon(props) { const { checked = false, classes = {}, fontSize } = props; const ownerState = (0, _extends2.default)({}, props, { checked }); return /*#__PURE__*/(0, _jsxRuntime.jsxs)(RadioButtonIconRoot, { className: classes.root, ownerState: ownerState, children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(RadioButtonIconBackground, { fontSize: fontSize, className: classes.background, ownerState: ownerState }), /*#__PURE__*/(0, _jsxRuntime.jsx)(RadioButtonIconDot, { fontSize: fontSize, className: classes.dot, ownerState: ownerState })] }); } process.env.NODE_ENV !== "production" ? RadioButtonIcon.propTypes = { /** * If `true`, the component is checked. */ checked: _propTypes.default.bool, /** * Override or extend the styles applied to the component. * See [CSS API](#css) below for more details. */ classes: _propTypes.default.object, /** * The size of the component. * `small` is equivalent to the dense radio styling. */ fontSize: _propTypes.default.oneOf(['small', 'medium']) } : void 0; var _default = RadioButtonIcon; exports.default = _default;