Button group
Related buttons joined into one control.
forSlots(ButtonGroupSlots)(Recipes.ButtonGroup({}))
Usage
The function that drew the preview, over the theme module Create a theme writes. The preview passes it the style picked above instead of its default.
export const ButtonGroupStyle = forSlots(ButtonGroupSlots)(Recipes.ButtonGroup({}))
const GroupedStyle = forSlots(ButtonSlots)(Recipes.Button({ tone: 'neutral', variant: 'outline' }))
export const buttonGroup = (
style: NamedStyle<typeof ButtonGroupSlots>,
h: HtmlBuilder<never>,
): Html =>
ButtonGroup.view(
{
label: 'Text alignment',
items: ['Left', 'Center', 'Right'].map(label =>
Button.view({ label, style: GroupedStyle }, h),
),
style,
},
h,
)