design-system-govbr-rnp
Version:
## Padrão Digital de Governo - React Biblioteca de componentes React que implementa o [Padrão Visual digital do governo](https://www.gov.br/ds/). O objetivo da biblioteca é facilitar a implementação e promover a padronização das interfaces de sistemas do
81 lines (80 loc) • 4.29 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _propTypes = _interopRequireDefault(require("prop-types"));
require("../../styles/styles.css");
var _styles2 = require("./styles");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
var Button = function Button(_ref) {
var _classNames;
var children = _ref.children,
variant = _ref.variant,
loadingTitle = _ref.loadingTitle,
inverted = _ref.inverted,
density = _ref.density,
disabled = _ref.disabled,
active = _ref.active,
loading = _ref.loading,
block = _ref.block,
iconProps = _ref.iconProps,
onClick = _ref.onClick,
circle = _ref.circle;
var btnClasses = (0, _classnames.default)((_classNames = {
inverted: !!inverted
}, _defineProperty(_classNames, "".concat(density), true), _defineProperty(_classNames, "active", !!active), _defineProperty(_classNames, "loading", !!loading), _defineProperty(_classNames, "block", !!block), _classNames));
var renderButton = function renderButton() {
return /*#__PURE__*/_react.default.createElement(_styles2.ButtonContainer, {
onClick: onClick,
variant: variant,
type: "button",
className: btnClasses,
disabled: disabled,
"aria-label": iconProps === null || iconProps === void 0 ? void 0 : iconProps.ariaLabel
}, (iconProps === null || iconProps === void 0 ? void 0 : iconProps.icon) && /*#__PURE__*/_react.default.createElement(_styles2.ButtonIcon, {
"aria-label": iconProps === null || iconProps === void 0 ? void 0 : iconProps.ariaLabel,
circle: circle,
icon: iconProps === null || iconProps === void 0 ? void 0 : iconProps.icon
}), loading ? loadingTitle : children);
};
var renderIconButton = function renderIconButton() {
return /*#__PURE__*/_react.default.createElement(_styles2.IconButton, {
onClick: onClick,
variant: variant,
type: "button",
className: btnClasses,
disabled: disabled,
"aria-label": iconProps === null || iconProps === void 0 ? void 0 : iconProps.ariaLabel
}, /*#__PURE__*/_react.default.createElement(_styles2.ButtonIcon, {
circle: circle,
icon: iconProps === null || iconProps === void 0 ? void 0 : iconProps.icon
}));
};
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, circle ? renderIconButton() : renderButton());
};
Button.propTypes = {
children: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.node), _propTypes.default.node]),
variant: _propTypes.default.string,
inverted: _propTypes.default.bool,
density: _propTypes.default.string,
disabled: _propTypes.default.bool,
active: _propTypes.default.bool,
loading: _propTypes.default.bool,
iconProps: _propTypes.default.shape({
icon: _propTypes.default.object,
ariaLabel: _propTypes.default.string
}),
onClick: _propTypes.default.func
};
Button.defaultProps = {
iconProps: null
};
var _default = Button;
exports.default = _default;