@primer/components
Version:
Primer react components
40 lines (38 loc) • 1.36 kB
JavaScript
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
import styled from 'styled-components';
import React from 'react';
import sx from './sx';
const StyledRadio = styled.input.withConfig({
displayName: "Radio__StyledRadio",
componentId: "sc-1ak1fjg-0"
})(["cursor:pointer;", " ", ""], props => props.disabled && `cursor: not-allowed;`, sx);
/**
* An accessible, native radio component for selecting one option from a list.
*/
const Radio = /*#__PURE__*/React.forwardRef(({
checked,
disabled,
sx: sxProp,
required,
validationStatus,
value,
name,
...rest
}, ref) => {
return /*#__PURE__*/React.createElement(StyledRadio, _extends({
type: "radio",
value: value,
name: name,
ref: ref,
disabled: disabled,
"aria-disabled": disabled ? 'true' : 'false',
checked: checked,
"aria-checked": checked ? 'true' : 'false',
required: required,
"aria-required": required ? 'true' : 'false',
"aria-invalid": validationStatus === 'error' ? 'true' : 'false',
sx: sxProp
}, rest));
});
Radio.displayName = 'Radio';
export default Radio;