@primer/react
Version:
An implementation of GitHub's Primer Design System using React
78 lines (72 loc) • 3.19 kB
JavaScript
'use strict';
var React = require('react');
var Box = require('../../../Box/Box.js');
var _VisuallyHidden = require('../../../_VisuallyHidden.js');
var CheckboxOrRadioGroupContext = require('./CheckboxOrRadioGroupContext.js');
var FeatureFlag = require('./FeatureFlag.js');
require('../../../FeatureFlags/FeatureFlags.js');
var useFeatureFlag = require('../../../FeatureFlags/useFeatureFlag.js');
require('../../../FeatureFlags/DefaultFeatureFlags.js');
var CheckboxOrRadioGroup_module = require('./CheckboxOrRadioGroup.module.css.js');
var index = require('../../../Stack/index.js');
var clsx = require('clsx');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var React__default = /*#__PURE__*/_interopDefault(React);
const CheckboxOrRadioGroupLabel = ({
children,
className,
visuallyHidden = false,
sx
}) => {
const {
required,
disabled
} = React__default.default.useContext(CheckboxOrRadioGroupContext);
const enabled = useFeatureFlag.useFeatureFlag(FeatureFlag.CSS_MODULES_FLAG);
if (enabled) {
if (sx) {
return /*#__PURE__*/React__default.default.createElement(_VisuallyHidden, {
className: clsx.clsx(className, CheckboxOrRadioGroup_module.RadioGroupLabel),
isVisible: !visuallyHidden,
title: required ? 'required field' : undefined,
"data-label-disabled": disabled ? '' : undefined,
sx: sx
}, required ? /*#__PURE__*/React__default.default.createElement(index.Stack, {
direction: "horizontal",
gap: "none"
}, /*#__PURE__*/React__default.default.createElement("div", {
className: CheckboxOrRadioGroup_module.GroupLabelChildren
}, children), /*#__PURE__*/React__default.default.createElement("span", null, "*")) : children);
}
return /*#__PURE__*/React__default.default.createElement(_VisuallyHidden, {
className: clsx.clsx(className, CheckboxOrRadioGroup_module.RadioGroupLabel),
isVisible: !visuallyHidden,
title: required ? 'required field' : undefined,
"data-label-disabled": disabled ? '' : undefined
}, required ? /*#__PURE__*/React__default.default.createElement(index.Stack, {
direction: "horizontal",
gap: "none"
}, /*#__PURE__*/React__default.default.createElement("div", {
className: CheckboxOrRadioGroup_module.GroupLabelChildren
}, children), /*#__PURE__*/React__default.default.createElement("span", null, "*")) : children);
}
return /*#__PURE__*/React__default.default.createElement(_VisuallyHidden, {
className: className,
isVisible: !visuallyHidden,
title: required ? 'required field' : undefined,
sx: {
display: 'block',
color: disabled ? 'fg.muted' : undefined,
fontSize: 1,
fontWeight: 'bold',
...sx
}
}, required ? /*#__PURE__*/React__default.default.createElement(Box, {
display: "flex",
as: "span"
}, /*#__PURE__*/React__default.default.createElement(Box, {
mr: 1
}, children), /*#__PURE__*/React__default.default.createElement("span", null, "*")) : children);
};
CheckboxOrRadioGroupLabel.displayName = "CheckboxOrRadioGroupLabel";
module.exports = CheckboxOrRadioGroupLabel;