# MediumImageButton - 中尺寸图文按钮

## 说明

中尺寸图文按钮，左侧为自定义图标/图片插槽，右侧为标题与可选副标题的两行文字区域。支持 `button`（纯指令/入口）与 `toggle`（二态开关）两种交互类型；`toggle` 激活时标题、副标题会切换为所选色系的强调色。按压交互基于 `TouchableView`，禁用态通过语义色实现。

## 属性

| 属性 | 说明 | 类型 | 默认值 | 必填 |
|------|------|------|--------|------|
| **title** | 标题文字 | `string` | - | 是 |
| **subtitle** | 副标题文字，为空不展示 | `string` | - | 否 |
| **actionType** | 交互类型：`button` 为纯指令/入口，`toggle` 为二态开关 | `'button' \| 'toggle'` | `'button'` | 否 |
| **disabled** | 是否禁用（禁用点击并展示灰态） | `boolean` | `false` | 否 |
| **active** | 激活状态，仅 `toggle` 模式下有效 | `boolean` | `false` | 否 |
| **leadingIcon** | 左侧自定义图标/图片插槽，尺寸范围 24–48，超出截断为 48、小于扩展为 24 | `React.ReactNode` | - | 否 |
| **onPress** | 点击/切换回调，未传或 `disabled` 时不可点击 | `() => void` | - | 否 |
| **colorType** | 激活态色系，仅 `toggle` 模式下有效 | `ColorType` | `'green'` | 否 |
| **accessible** | 无障碍：是否启用 | `boolean` | `true` | 否 |
| **accessibilityLabel** | 无障碍标签，默认取 `title` | `string` | - | 否 |
| **accessibilityHint** | 无障碍提示 | `string` | - | 否 |

## 使用示例

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

// 基础用法（入口按钮）
<MediumImageButton
  title="设备设置"
  subtitle="管理固件与网络"
  leadingIcon={<Icon />}
  onPress={() => navigate('Settings')}
/>

// toggle 开关模式
<MediumImageButton
  actionType="toggle"
  active={isOn}
  colorType="blue"
  title="夜灯"
  subtitle="已开启"
  leadingIcon={<LightIcon />}
  onPress={() => setIsOn(!isOn)}
/>

// 禁用态
<MediumImageButton title="暂不可用" disabled onPress={() => {}} />
```

## 注意事项

- `active` 与 `colorType` 仅在 `actionType="toggle"` 时生效；`button` 模式下传入不会改变外观。
- 未传 `onPress` 时按钮等同禁用点击。
- 标题最多 3 行、副标题最多 3 行，超出以省略号截断，文字不随系统字体缩放（`allowFontScaling={false}`）。

## 修改记录

| 日期 | 版本 | 修改内容 | 修改原因 | 关联 |
|------|------|----------|----------|------|
| 2026-09-14 | v1.19.0 | 同步组件配置与视觉 Token，颜色与样式随设计规范更新 | — | 5a99f324 |
| 2026-09-10 | v1.19.0 | 优化埋点上报，不影响对外 API | — | fc2ff0b5 |
| 2026-05-18 | v1.18.8 | 修复高度无法撑开或坍缩的布局问题 | — | 7bd34bf0 |
| 2026-04-30 | v1.18.6 | 修正副标题行数展示 | — | 5b625fb1 |
| 2026-04-28 | v1.18.6 | 修复按钮视觉细节 | — | c32f5b28 |
| 2026-04-16 | v1.18.5-alpha.0 | 文件夹重命名为首字母小写，导入路径调整为 `mediumImageButton` | — | 0a1eb66f |
