UNPKG

vcc-ui

Version:

A React library for building user interfaces at Volvo Cars

78 lines (76 loc) 3.37 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.Checkbox = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _propTypes = require("prop-types"); var _react = _interopRequireWildcard(require("react")); var _autoId = require("../../utils/auto-id"); var _block = require("../block"); var _message = require("../message"); var _view = require("../view"); var _checkbox = require("./checkbox.style"); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } const CheckBoxMessages = _ref => { let { errorMessage, description } = _ref; return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, errorMessage ? /*#__PURE__*/_react.default.createElement(_message.Message, { type: "error" }, errorMessage) : null, description ? /*#__PURE__*/_react.default.createElement(_message.Message, null, description) : null); }; /** * @deprecated Use `import { Checkbox } from '@volvo-cars/react-forms'` instead. See [Checkbox](https://developer.volvocars.com/design-system/web/?path=/docs/components-forms-checkbox--docs) */ const Checkbox = exports.Checkbox = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => { let { isValid = true, label, errorMessage, description, ...props } = _ref2; const styleProps = { isValid }; const id = (0, _autoId.useId)('vcc-ui-checkbox', props.id); return /*#__PURE__*/_react.default.createElement(_view.View, { spacing: 1, shrink: 1, direction: "row" }, /*#__PURE__*/_react.default.createElement(_block.Block, (0, _extends2.default)({}, props, { ref: ref, id: id, as: "input", type: "checkbox", extend: [(0, _checkbox.checkboxStyle)(styleProps)] })), /*#__PURE__*/_react.default.createElement(_view.View, { spacing: description || errorMessage ? 0.5 : 0, direction: "column", wrap: "wrap", shrink: 1 }, /*#__PURE__*/_react.default.createElement(_block.Block, { as: "label", htmlFor: id, extend: (0, _checkbox.labelStyle)(styleProps) }, label), /*#__PURE__*/_react.default.createElement(CheckBoxMessages, { description: description, errorMessage: errorMessage }))); }); Checkbox.displayName = 'Checkbox'; Checkbox.propTypes = { onChange: _propTypes.func.isRequired, checked: _propTypes.bool, isValid: _propTypes.bool, id: _propTypes.string, name: _propTypes.string, // @ts-ignore label: _propTypes.node.isRequired, description: _propTypes.string, errorMessage: _propTypes.string };