react-lightning-design-system
Version:
Salesforce Lightning Design System components built with React
63 lines (61 loc) • 2.13 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
var _excluded = ["type", "id", "className", "label", "required", "cols", "tooltip", "tooltipIcon", "elementRef", "inputRef", "children"];
import React, { useId, useContext } from 'react';
import classnames from 'classnames';
import { FormElement } from './FormElement';
import { CheckboxGroupContext } from './CheckboxGroup';
/**
*
*/
/**
*
*/
export var Checkbox = function Checkbox(props) {
var type = props.type,
id_ = props.id,
className = props.className,
label = props.label,
required = props.required,
cols = props.cols,
tooltip = props.tooltip,
tooltipIcon = props.tooltipIcon,
elementRef = props.elementRef,
inputRef = props.inputRef,
children = props.children,
rprops = _objectWithoutProperties(props, _excluded);
var prefix = useId();
var id = id_ !== null && id_ !== void 0 ? id_ : "".concat(prefix, "-id");
var _useContext = useContext(CheckboxGroupContext),
grouped = _useContext.grouped,
error = _useContext.error,
errorId = _useContext.errorId;
var formElemProps = {
required: required,
error: error,
errorId: errorId,
cols: cols,
tooltip: tooltip,
tooltipIcon: tooltipIcon,
elementRef: elementRef
};
var checkClassNames = classnames(className, 'slds-checkbox');
var check = /*#__PURE__*/React.createElement("div", {
className: checkClassNames
}, /*#__PURE__*/React.createElement("input", _extends({
ref: inputRef,
type: "checkbox"
}, rprops, {
id: id,
"aria-describedby": error ? errorId : undefined
})), /*#__PURE__*/React.createElement("label", {
className: "slds-checkbox__label",
htmlFor: id
}, /*#__PURE__*/React.createElement("span", {
className: "slds-checkbox_faux"
}), /*#__PURE__*/React.createElement("span", {
className: "slds-form-element__label"
}, label || children)));
return grouped ? check : /*#__PURE__*/React.createElement(FormElement, formElemProps, check);
};
//# sourceMappingURL=Checkbox.js.map