fix(selection): Chip 禁用改成修饰器,只清消息、不删图标与选中态(复审 P2-1)

- 旧 API Chip::disabled(label, variant) 强制 leading/trailing/selected = None/false:实测
  assist 78→54、filter·on 74→50(连填充和勾都没了),禁用列里 filter·on 与 filter 逐像素同形
- 新 API Chip::assist(label, msg).leading(k).disabled():只清 on_press,视觉信息全保留
  (research/12b §13 的禁用态是「容器/描边 12%、文字与图标 38%」——只降不删)
- 矩阵里禁用格改用修饰器,图标与选中态一并保留
This commit is contained in:
AskaEth committed 2026-11-02 06:55:28 +08:00
1 parent 00dbb5a5d5
commit c5765c57e7
2 files changed
+22 -25

No files matched your search

@@ -56,17 +56,15 @@ impl<'a, M> Chip<'a, M> {
Self::new(label, ChipVariant::Input, false, on_press)
}
/// 禁用的 chip(无消息)。
pub fn disabled(label: &'a str, variant: ChipVariant) -> Self {
Self {
label,
variant,
selected: false,
leading: None,
trailing: None,
on_press: None,
state: None,
}
/// 转成禁用:**只清消息**,图标 / 选中态 / 状态层全部保留(复审 P2-1)。
///
/// 官方禁用态是「容器/描边 12%、文字与**图标** 38%」——只降**不删**。早先的
/// `Chip::disabled(label, variant)` 把 leading / trailing / selected 一起丢掉,实测
/// assist 78→54、filter·on 74→50(连填充和勾都没了),禁用列里 `filter·on` 与 `filter`
/// 逐像素同形,看不出选中与否。
pub fn disabled(mut self) -> Self {
self.on_press = None;
self
}
fn new(label: &'a str, variant: ChipVariant, selected: bool, on_press: M) -> Self {