UNPKG

@trellixio/roaster-coffee

Version:
65 lines (59 loc) 1.96 kB
'use strict'; 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