import { EventEmitter } from '../../stencil-public-runtime'; import type { SegmentedControlChangeDetail, SegmentedControlSegment, SegmentedControlSize } from './mud-segmented-control.types'; /** * Segmented control — single-select horizontal switcher. * * Pattern B (atom-interactive, form-associated): renders an internal * `role="radiogroup"` of `role="radio"` buttons inside the shadow DOM with * a roving `tabindex`. Selected segment gets the dark inverse fill from * Figma 659:8188; unselected segments inherit the light tertiary container * background and only carry their label. * * Keyboard contract (WAI-ARIA Authoring Practices, radiogroup pattern): * - `Tab` enters and exits the group (single stop) * - `ArrowLeft` / `ArrowRight` move selection between segments * - `Home` / `End` jump to first / last segment * - `Enter` / `Space` reaffirm selection on the focused segment * * @element mud-segmented-control * * @slot - Reserved for future declarative segments. Today, all segments come * from the `segments` prop. The slot is rendered hidden so AT does not see * accidental content twice. */ export declare class MudSegmentedControl { /** * Visual size rung. `md` is 40 px tall; `sm` is 32 px tall. * @default 'md' */ size: SegmentedControlSize; /** * Disables every segment. The container receives `aria-disabled`. * @default false */ disabled: boolean; /** * Full-width mode. The control fills its container and segments stretch to * equal shares — the mobile breakpoint from Figma 659:8188. When false * (default) the control hugs its content while keeping segments uniform. * @default false */ fluid: boolean; /** * Value of the currently selected segment. Mutable so the control updates it * on selection. Like a native form control, `value` is intentionally NOT * reflected to the attribute (the attribute represents the default value) — * read the current selection from the property or the submitted form value. */ value?: string; /** * Segment configuration. Order in the array maps left-to-right. * When omitted the control renders nothing. */ segments?: SegmentedControlSegment[]; /** Form-control `name`. Used during form submission. */ name?: string; /** * Accessible name for the group. Forwarded to the host's `aria-label`. * Required when no surrounding `