@trellixio/roaster-coffee
Version:
Beans' product component library
65 lines (59 loc) • 1.96 kB
JavaScript
;
var React = require('react');
var index$1 = require('../../utils/classNames/index.js');
var index = require('../../utils/useUid/index.js');
require('@floating-ui/react');
var CheckboxGroup = require('./CheckboxGroup/CheckboxGroup.js');
var CheckboxGroup_context = require('./CheckboxGroup/CheckboxGroup.context.js');
function _interopNamespaceDefault(e) {
var n = Object.create(null);
if (e) {
for (var k in e) {
n[k] = e[k];
}
}
n.default = e;
return Object.freeze(n);
}
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
const Checkbox = React__namespace.forwardRef((props, ref) => {
const { id, label, name, disabled, value, labelClassName, inputClassName, isRichSelector, checked, onChange } = props;
const ctx = CheckboxGroup_context.useCheckboxGroupContext();
const uid = index.useUid(id);
const contextProps = ctx ? {
checked: ctx.value.includes(value),
onChange: ctx.onChange
} : {
checked,
onChange: (event) => {
onChange?.(event.target.checked);
}
};
return /* @__PURE__ */ React__namespace.createElement(
"label",
{
htmlFor: uid,
className: index$1.classNames(labelClassName, { selector: isRichSelector, selected: contextProps.checked })
},
/* @__PURE__ */ React__namespace.createElement(
"input",
{
value,
ref,
type: "checkbox",
name,
id: uid,
disabled,
checked: contextProps.checked,
onChange: contextProps.onChange,
className: inputClassName
}
),
/* @__PURE__ */ React__namespace.createElement("span", { className: index$1.classNames("input-checkbox", inputClassName) }),
/* @__PURE__ */ React__namespace.createElement("div", { className: "content" }, label)
);
});
Checkbox.displayName = "Checkbox";
Checkbox.Group = CheckboxGroup.CheckboxGroup;
exports.Checkbox = Checkbox;
//# sourceMappingURL=Checkbox.js.map