@pmwcs/button-group
Version:
PMWCS button-group component
41 lines (39 loc) • 1.22 kB
JavaScript
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
import { h, cloneElement } from 'preact';
import { Tag, useClassNames, createComponent } from '@pmwcs/base';
/**
* The ButtonGroup component.
*/
export const ButtonGroup = createComponent(function ButtonGroup(props, ref) {
const {
raised,
outlined,
unelevated,
dense,
secondary,
standard,
ripple,
children,
...rest
} = props;
const isFilled = unelevated || raised;
const className = useClassNames(props, ['pmwc-button-group', {
'mdc-theme--standard-bg': standard && isFilled,
'mdc-theme--on-standard': standard,
'pmwc-button-group--raised': raised,
'pmwc-button-group--dense': dense
}]);
return h(Tag, _extends({
tag: "div"
}, rest, {
className: className,
ref: ref
}), children.map(element => cloneElement(element, {
outlined,
unelevated: isFilled,
dense,
secondary,
ripple,
standard
})));
});