iter(g52): 新增 colorPicker 颜色选择组件

This commit is contained in:
HIsheR
2026-10-26 12:16:11 +08:00
parent 95b46a05e7
commit 81ea18936c
12 changed files with 370 additions and 10 deletions
+27 -1
View File
@@ -1,6 +1,6 @@
# @ui-arch 组件库 Agent 文档(无图形版)
> 自动生成于 2026-10-26T04:14:40.933Z,数据源:各包 ua.manifest.json,勿手改。人类版文档站:apps/docs/index.html。
> 自动生成于 2026-10-26T04:15:46.909Z,数据源:各包 ua.manifest.json,勿手改。人类版文档站:apps/docs/index.html。
> 组件 = 普通函数,传 props 返回 DOM;状态用 signal 双向绑定:读 signal() 写 signal(v)。
## 快速上手
@@ -1335,6 +1335,31 @@ backTop({ threshold: 300, onClick: () => toast.info('已回到顶部') })
现场演示:apps/docs/demo.html#sec-backtop
### colorPicker — 颜色选择 ColorPicker
参数:
- value:Signal<string> —— 颜色值信号(CSS 颜色串,支持 var(--ua-*));不传则内部维护
- presets:string[] —— 预设色板;缺省取语义令牌色(accent/success/warning/danger/text/border)
- placeholder:string —— 未选时占位文案;缺省「请选择颜色」
- disabled:boolean | Signal<boolean> —— 禁用触发器
- onChange:(color: string) => void —— 选定回调(点色板、取色器或手输回车)
示例:
```
colorPicker({ value: colorVal, onChange: (c) => toast.success(c) })
```
手把手:
1. 点触发器展开弹层:上方是预设色板,下方是原生取色器 + 手输框
2. 预设缺省直接用 --ua-* 令牌色,所以暗色主题切换后色块自动跟着变,无需维护两套色值
3. 点色块即提交;手输框支持任意 CSS 颜色串(含 var(--ua-color-accent)),回车提交
4. 触发器左侧色块始终预览当前值,点击外部或 Esc 收起
现场演示:apps/docs/demo.html#sec-colorpicker
API 速览:
- button(props):按钮,variant = primary | ghost | danger,disabled 支持布尔或信号禁用;type 缺省 button(表单内不隐式提交)
@@ -1389,6 +1414,7 @@ API 速览:
- autoComplete(props):输入联想,输入即过滤候选、↑↓ 环形高亮 / Enter 选中 / Esc 收起,options 可传函数做远程联想
- datePicker(props):日期选择,单月网格 + 翻月 / 今天快捷键,value 为 YYYY-MM-DD 信号,min/max 闭区间限制,方向键逐日逐周可导航
- backTop(props):返回顶部悬浮按钮,越过阈值才浮现,外环 conic-gradient 显示已滚比例,点击平滑回顶
- colorPicker(props):颜色选择,预设色板(缺省语义令牌色)+ 原生取色器 + 手输 CSS 颜色串,value 为颜色串信号
一行用法: