--- ## ButtonGroup Groups related buttons with shared styling, layout, and optional selection behaviour. Supports single-select (radio), multi-select (checkbox), or no selection. **Import:** `import { ButtonGroup } from '@urbicon-ui/blocks';` ### Examples ```svelte ``` ```svelte ``` ### Variants - connected: false, true (default: true) - disabled: true (default: false) - orientation: horizontal, vertical (default: horizontal) - tier: commit, modify (default: commit) ### Api | Prop | Type | Required | Default | Description | | --- | --- | :---: | --- | --- | | ...HTMLAttributes | `HTMLAttributes` | no | | HTML attributes (excluding: 'children') | | ariaLabel | `string` | no | | Accessible label for the group (prefer this over `aria-label` for correct HTML attribute). | | ariaLabelledBy | `string` | no | | ID of the element that labels the group. | | children | `Snippet` | no | | Button children to group. | | class | `string` | no | | Extra classes merged onto the root element. | | connected | `boolean` | no | | Visually connect buttons (overlapping borders, shared rounding). When `false`, buttons are spaced with a small gap. | | disabled | `boolean` | no | | Disable the entire group and all child Buttons. | | intent | `ComponentIntent` | no | | Semantic colour propagated to child Buttons. | | mint | `MintProp` | no | | Micro-interaction preset propagated to child Buttons. | | onSelectionChange | `(value: ButtonGroupValue, selectedValues: string[]) => void` | no | | Fired when selection changes. Receives the new value and an array of all selected values. | | orientation | `ButtonGroupOrientation` | no | | Orientation property for the ButtonGroup component | | preset | `string` | no | | Apply a named preset registered via ``. Prefer this over `class` overrides when the requested look falls outside the semantic intent palette — presets keep hover/active/dark-mode logic coherent and make the custom look reusable across the project. | | selection | `ButtonGroupSelection` | no | | Selection mode. `"single"` = radio-group, `"multiple"` = checkbox-group, `"none"` = no selection. | | size | `ComponentSize` | no | | Size propagated to child Buttons (unless a Button sets its own). | | slotClasses | `Partial>` | no | | Per-slot class overrides. Slots: base | | tier | `InteractiveTier` | no | | Semantic radius tier propagated to child Buttons. `commit` (default) → pill caps for the group; `modify` → soft caps. Inherits from a wrapping Toolbar via TierContext when not set explicitly. | | unstyled | `boolean` | no | | Remove all default tv classes. | | value | `ButtonGroupValue` | no | | Current selection value. Bind with `bind:value` for two-way sync. String for single, string[] for multiple. | | variant | `ButtonVariants['variant']` | no | | Visual weight propagated to child Buttons. | Inherited from: - Omit, 'children'> (omit-pattern)