UNPKG

@pmwcs/button-group

Version:

PMWCS button-group component

46 lines (40 loc) 947 B
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 ( <Tag tag='div' {...rest} className={className} ref={ref}> {children.map(element => cloneElement(element, { outlined, unelevated: isFilled, dense, secondary, ripple, standard }))} </Tag> ) })