chore(backlog): 记录 g213 完成

This commit is contained in:
HIsheR
2026-10-26 19:53:35 +08:00
parent 350544927d
commit 1dca26901b
2 changed files with 10 additions and 0 deletions
+9
View File
@@ -2303,6 +2303,15 @@
"status": "done",
"notes": "tabs.ts 新增 revealActive:先判 scrollWidth > clientWidth(无溢出直接返回),再判激活外壳是否完整落在 [scrollLeft, scrollLeft+clientWidth] 内,被裁才滚且就近对齐(左裁补 left-8、右裁补 right-clientWidth+8),目标钳在 [0, max];只调 head.scrollTo,不走 scrollIntoView 以免带动页面;behavior 依 prefers-reduced-motion 选 smooth/auto;sync 里指示条摆位后调用,effect 与 trackSize 两条路径都覆盖;manifest 补一条手把手(含「已可见不动手」与降动效说明),demo 加 320px 窄容器 + 八页签 + 当前值回显",
"domain": "tune"
},
{
"id": "g213",
"title": "新增 timePicker 时间选择组件",
"motivation": "datePicker 只覆盖日期维度,一天内的时刻(预约、值班、定时任务)没有可用组件;原生 input[type=time] 在各浏览器外观不一、步长与暗色都不可控,与自绘弹层的既有约定也不一致。",
"acceptance": "新增 timePicker(props):时 / 分两列自绘弹层,value 信号双向绑定 HH:mm,minuteStep 可配(缺省 5),当前值所在格高亮并滚到列中部,↑↓/Home/End 列内导航、Esc / 点外部收起且归还焦点;走 overlay 的 Esc 栈与 bindOutside、flip 做空间翻转;样式只消费 --ua-* 令牌,禁止新增硬编码阴影/时长/字号,npm run audit:visual 各类计数不增;10 处落点(实现 / types / index / css / manifest exports / manifest docs / demo / README 清单与分组 / sync-counts / docs)齐全;npm run check 全绿。",
"status": "done",
"notes": "timePicker.ts 113 行:pad 提为模块级纯函数(避免 const TDZ),commit 只在值变化时派发 onChange;列内导航 navigate 复用于时/分两列(↑↓ 环形、Home/End 直达);reveal 用 offsetTop 算 scrollTop 让激活格落到列中部,不走 scrollIntoView 以免带动页面;复用 overlay 的 bindOutside / pushOverlay 与 position 的 flip;ui.css 新增 .ua-timepicker-* 段全部消费令牌(control-h-md / radius-md / shadow-2 / duration-fast / z-dropdown / tint-accent),带 prefers-reduced-motion 兜底,audit:visual 十一类仍为 0;manifest exports 72 条 + docs.components 70 项(props 与 types 双向过 verify),demo 增 sec-timepicker(受控 15 分钟步长 + 禁用态 + 当前值回显),README 清单与分组补名,sync-counts 三处计数 69→70,docs 重生成",
"domain": "new"
}
]
}