UNPKG

@ntragas/pouncejstest

Version:

A collection of UI components from Panther labs

70 lines (60 loc) 2.24 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var _react = _interopRequireDefault(require("react")); var _Box = _interopRequireDefault(require("../Box")); var _useRadioStyles = _interopRequireDefault(require("./useRadioStyles")); /** * A Radio is a typical `radio` input. Under the hood it renders a typical `radio` element, so you * can pass it as many native attrs as you wish. */ var Radio = /*#__PURE__*/_react.default.forwardRef(function Radio(_ref, ref) { var checked = _ref.checked, label = _ref.label, disabled = _ref.disabled, invalid = _ref.invalid, hidden = _ref.hidden, readOnly = _ref.readOnly, rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["checked", "label", "disabled", "invalid", "hidden", "readOnly"]); var radioStyles = (0, _useRadioStyles.default)({ invalid, checked }); return /*#__PURE__*/_react.default.createElement(_Box.default, { as: "label", display: "inline-flex", alignItems: "center", cursor: "pointer", fontSize: "medium", fontWeight: "medium", verticalAlign: "top", "aria-disabled": disabled, "aria-hidden": hidden, hidden: hidden }, /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({ position: "relative", borderRadius: "circle", p: 2 }, radioStyles), /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({ ref: ref, as: "input", position: "absolute", cursor: "pointer", opacity: 0, type: "radio", readOnly: readOnly, "aria-readonly": readOnly, "aria-checked": checked, "aria-invalid": invalid, checked: checked, disabled: disabled }, rest))), label && /*#__PURE__*/_react.default.createElement(_Box.default, { as: "span", userSelect: "none" }, label)); }); var _default = /*#__PURE__*/_react.default.memo(Radio); exports.default = _default;