Appearance
标题栏小型开关(createHeaderToggle)
系统概览
标题栏小型开关(toggle.header-toggle)。从 ui-rows 抽出的零依赖叶子(ADR-191),断开 ui-rows ⇄ ui-slide-row 文件级双向环。复用点:menu.ts 弹窗标题 / ui-collapsible 折叠面板 / ui-slide-row 行 / model-material 材质行。统一双触发去重 + bind 自更新 + disabled。
核心职责
HeaderToggleConfig:{ value, onChange, bind?, disabled?, onDisabledClick?, disabledHint? }createHeaderToggle(config)→<label class="toggle header-toggle">(含input[type=checkbox]+span.slider)- 双触发去重(跳过 synthetic click +
preventDefault) bind自更新(经render-context注册到渲染上下文)
对外 API(节选)
createHeaderToggle(config)→HTMLLabelElementHeaderToggleConfig接口
关键约定
- 双触发去重防止
<label>包裹 checkbox 的浏览器二次派发造成的视觉错位 disabled不响应onChange,可挂onDisabledClickbind经渲染上下文在菜单重渲染时自更新input.checked
与其他子系统关系
- 依赖
core/render-context(getCurrentRenderingContext) - 被
menu.ts/ui-collapsible/ui-slide-row/model-material复用