@cbinsights/fds
Version:
Form: A design system by CB Insights
104 lines (82 loc) • 5.22 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireDefault(require("react"));
var _classcat = _interopRequireDefault(require("classcat"));
var CheckboxUi = _interopRequireWildcard(require("@radix-ui/react-checkbox"));
var Label = _interopRequireWildcard(require("@radix-ui/react-label"));
var _CheckEmptyIcon = _interopRequireDefault(require("../../icons/react/CheckEmptyIcon"));
var _CheckFilledIcon = _interopRequireDefault(require("../../icons/react/CheckFilledIcon"));
var _CheckIndeterminateIcon = _interopRequireDefault(require("../../icons/react/CheckIndeterminateIcon"));
var _excluded = ["showLabel", "indeterminate", "disabled", "label", "defaultChecked", "checked", "id", "onChange"];
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(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; }
var Checkbox = function Checkbox(_ref) {
var _ref$showLabel = _ref.showLabel,
showLabel = _ref$showLabel === void 0 ? true : _ref$showLabel,
_ref$indeterminate = _ref.indeterminate,
indeterminate = _ref$indeterminate === void 0 ? false : _ref$indeterminate,
_ref$disabled = _ref.disabled,
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
label = _ref.label,
_ref$defaultChecked = _ref.defaultChecked,
defaultChecked = _ref$defaultChecked === void 0 ? false : _ref$defaultChecked,
checked = _ref.checked,
_ref$id = _ref.id,
id = _ref$id === void 0 ? undefined : _ref$id,
_ref$onChange = _ref.onChange,
onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange,
rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
var IconUnchecked = _CheckEmptyIcon.default;
var IconChecked = indeterminate ? _CheckIndeterminateIcon.default : _CheckFilledIcon.default;
var _React$useState = _react.default.useState(checked !== null && checked !== void 0 ? checked : defaultChecked),
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
internalChecked = _React$useState2[0],
setChecked = _React$useState2[1];
var handleChange = function handleChange(checkedEvent) {
if (checked === undefined) {
setChecked(function (prevInternalChecked) {
return !prevInternalChecked;
});
}
onChange(checkedEvent);
};
var checkedValue = checked !== null && checked !== void 0 ? checked : internalChecked;
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
className: (0, _classcat.default)(['fdsCheckableCheckbox', {
'fdsCheckableCheckbox--disabled': !indeterminate && disabled
}])
}), /*#__PURE__*/_react.default.createElement(Label.Root, {
className: "flush--bottom",
role: "presentation"
}, /*#__PURE__*/_react.default.createElement(CheckboxUi.Root, {
className: "radix-checkbox",
checked: checkedValue,
disabled: disabled,
onCheckedChange: handleChange,
id: id
}, /*#__PURE__*/_react.default.createElement(CheckboxUi.Indicator, null, checkedValue && /*#__PURE__*/_react.default.createElement("span", {
className: (0, _classcat.default)([{
'checkbox--disabled': disabled
}])
}, /*#__PURE__*/_react.default.createElement(IconChecked, {
size: "xs"
}))), !checkedValue && /*#__PURE__*/_react.default.createElement("span", {
className: (0, _classcat.default)([{
'checkbox--disabled': disabled
}])
}, /*#__PURE__*/_react.default.createElement(IconUnchecked, {
size: "xs"
}))), showLabel && /*#__PURE__*/_react.default.createElement("span", {
className: "fdsCheckable-label"
}, label)));
};
var _default = Checkbox;
exports.default = _default;