# SegmentedControls - 分段控制器

## 说明

分段控制器，用于在 2-5 个选项之间切换视图或筛选内容。等分排布所有选项，激活项高亮显示，非激活项按压时有按压态背景。组件为受控：当前激活项由 `activeValue` 决定，点击非激活项触发 `onChange`。外层容器 `flex: 1`，会撑满父容器宽度。`options` 内非对象项会被自动过滤，具备数据容错。

## 属性

| 属性 | 说明 | 类型 | 默认值 | 必填 |
|------|------|------|--------|------|
| **options** | 选项列表（建议 2-5 个） | `SegmentedControlsOptionProps[]` | - | 是 |
| **activeValue** | 当前激活的选项 value | `string` | - | 是 |
| **onChange** | 切换选项回调（点击已激活项不触发） | `(value: string) => void` | - | 否 |
| **accessible** | 无障碍：是否启用 | `boolean` | - | 否 |
| **accessibilityLabel** | 无障碍标签 | `string` | - | 否 |
| **accessibilityHint** | 无障碍提示 | `string` | - | 否 |

### SegmentedControlsOptionProps

| 字段 | 说明 | 类型 | 默认值 | 必填 |
|------|------|------|--------|------|
| **label** | 选项标签文字（单行，超出省略） | `string` | - | 是 |
| **value** | 选项唯一标识 | `string` | - | 是 |

## 使用示例

```tsx
import { SegmentedControls } from 'miot/ui/hyperOSUI';

<SegmentedControls
  options={[
    { label: '自动', value: 'auto' },
    { label: '制冷', value: 'cool' },
    { label: '制热', value: 'heat' },
  ]}
  activeValue={mode}
  onChange={setMode}
/>
```

## 注意事项

- 组件为受控，需由使用方根据 `onChange` 更新 `activeValue`。
- 点击当前已激活的选项不会触发 `onChange`。
- 外层容器为 `flex: 1`，宽度跟随父容器；需要限制宽度时在外层包裹容器约束。

## 修改记录

| 日期 | 版本 | 修改内容 | 修改原因 | 关联 |
|------|------|----------|----------|------|
| 2026-09-14 | v1.19.0 | 对齐排版与几何尺寸 | — | ba3cb569 |
| 2026-09-14 | v1.19.0 | 同步组件视觉 Token | — | 5a99f324 |
| 2026-06-12 | v1.18.12 | 修复内边距问题 | — | d18f6cbd |
| 2026-06-12 | v1.18.12 | 修复组件问题 | — | 817dd26f |
| 2026-06-04 | v1.18.12 | 优化样式 | — | 12981332 |
| 2026-05-22 | v1.18.8 | options 数据容错兜底 | — | 0eb2bbb1 |
| 2026-04-28 | v1.18.6 | 选中态字重调整为 Medium | — | ce559a09 |
| 2026-04-16 | v1.18.5-alpha.0 | colorToken 改为动态主题适配 | — | 1022e83d |
| 2026-04-15 | v1.18.5-alpha.0 | 删除兼容组件与 token | — | db049266 |
| 2026-04-10 | v1.18.5-alpha.0 | 新增分段控制器组件 | — | 7ab260b0 |
