2 Commits

Author SHA1 Message Date
Muse
eb27e4ca2d fix(dropdown): 展开层改 Portal + fixed 定位,逃出弹窗 overflow 裁剪
弹窗(.modal 带 overflow-y:auto)里的下拉展开层是 absolute 定位,
会被弹窗滚动盒裁掉下半截(Git 同步设置里实测被遮挡)。展开层改经
Portal 挂到 body、按触发钮 rect 用 fixed 定位:下方空间不足时
向上翻,maxHeight 按可用空间夹取;窗口 resize 时关闭。
useDismiss 泛化为可传多个 ref(触发器与 Portal 菜单两棵子树都算内)。
CSS 相应去掉 .dropdown-menu 的 absolute 定位(几何改由内联给出)。
验证:vitest 124+2(新增翻转几何断言:贴底触发钮翻上展开、
Portal 落点不在组件容器内);无头 Chromium 实测弹窗内下拉菜单
完整落在视口内、8 项全显、已逃出弹窗 DOM。
2026-11-14 20:17:51 +08:00
Muse
9503350cf1 feat(ui): 自绘 Dropdown 替代原生 select(外观设置·临时主题)
全应用唯一的原生 select 换为自绘下拉组件:按钮对齐 .input 样式,
展开层沿用应用菜单语言(选中 --accent-weak、悬停 --hover),复用
useDismiss 点别处/Esc 关闭,支持上下键选行。tests/dropdown 1 例。
2026-11-14 15:39:44 +08:00