iter: b05 文档站 props 表补齐默认值列(df 字段),manifest 驱动链路核查闭环
This commit is contained in:
+2
-2
@@ -38,8 +38,8 @@
|
|||||||
"title": "文档站演示区由 manifest 驱动自动生成",
|
"title": "文档站演示区由 manifest 驱动自动生成",
|
||||||
"motivation": "目前 apps/docs/index.html 手写 props 表与演示,每加组件都要人肉同步;由 manifest 单一来源驱动可消除重复维护",
|
"motivation": "目前 apps/docs/index.html 手写 props 表与演示,每加组件都要人肉同步;由 manifest 单一来源驱动可消除重复维护",
|
||||||
"acceptance": "ua CLI 新增 docs-gen 逻辑:读取各组件 ua.manifest.json 中的 components 参数表,自动生成 props 表 HTML 片段注入文档站模板;生成结果与现有手写版信息量对齐(props 名/类型/默认值/说明);npm run check 全绿且文档站可正常打开",
|
"acceptance": "ua CLI 新增 docs-gen 逻辑:读取各组件 ua.manifest.json 中的 components 参数表,自动生成 props 表 HTML 片段注入文档站模板;生成结果与现有手写版信息量对齐(props 名/类型/默认值/说明);npm run check 全绿且文档站可正常打开",
|
||||||
"status": "open",
|
"status": "done",
|
||||||
"notes": ""
|
"notes": "核查确认 props 表/示例/步骤/演示 iframe 早已由 ua docs 从 manifest docs.components 单一来源驱动;真正的缺口是信息量不含默认值——本轮 CLI propsTable 新增「默认值」列(props 条目可选 df 字段,缺省渲染 —),llms-full.txt 参数行同步追加「默认 x」标注;16 处可机读默认值从描述文案提取进 df;check 全绿 + 文档站结构完整性校验通过"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
+33
-17
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"$schema": "ui-arch-registry-index/0.1",
|
"$schema": "ui-arch-registry-index/0.1",
|
||||||
"generatedAt": "2026-10-23T07:59:47.390Z",
|
"generatedAt": "2026-10-23T08:03:18.018Z",
|
||||||
"repoRoot": ".",
|
"repoRoot": ".",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
@@ -221,7 +221,8 @@
|
|||||||
{
|
{
|
||||||
"n": "variant",
|
"n": "variant",
|
||||||
"t": "'primary' | 'ghost' | 'danger'",
|
"t": "'primary' | 'ghost' | 'danger'",
|
||||||
"d": "视觉强度;缺省 primary"
|
"d": "视觉强度;缺省 primary",
|
||||||
|
"df": "primary"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"n": "onClick",
|
"n": "onClick",
|
||||||
@@ -279,7 +280,8 @@
|
|||||||
{
|
{
|
||||||
"n": "rows",
|
"n": "rows",
|
||||||
"t": "number",
|
"t": "number",
|
||||||
"d": "初始行数;缺省 3"
|
"d": "初始行数;缺省 3",
|
||||||
|
"df": "3"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"n": "placeholder",
|
"n": "placeholder",
|
||||||
@@ -461,7 +463,8 @@
|
|||||||
{
|
{
|
||||||
"n": "variant",
|
"n": "variant",
|
||||||
"t": "'default' | 'success' | 'warning' | 'danger'",
|
"t": "'default' | 'success' | 'warning' | 'danger'",
|
||||||
"d": "语义色;缺省 default"
|
"d": "语义色;缺省 default",
|
||||||
|
"df": "default"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"example": "badge({ label: '成功', variant: 'success' })",
|
"example": "badge({ label: '成功', variant: 'success' })",
|
||||||
@@ -484,7 +487,8 @@
|
|||||||
{
|
{
|
||||||
"n": "variant",
|
"n": "variant",
|
||||||
"t": "'info' | 'success' | 'warning' | 'danger'",
|
"t": "'info' | 'success' | 'warning' | 'danger'",
|
||||||
"d": "语义色;缺省 info"
|
"d": "语义色;缺省 info",
|
||||||
|
"df": "info"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"example": "alert({ message: '操作可能存在风险', variant: 'warning' })",
|
"example": "alert({ message: '操作可能存在风险', variant: 'warning' })",
|
||||||
@@ -501,12 +505,14 @@
|
|||||||
{
|
{
|
||||||
"n": "variant",
|
"n": "variant",
|
||||||
"t": "'text' | 'rect' | 'circle'",
|
"t": "'text' | 'rect' | 'circle'",
|
||||||
"d": "占位形状;缺省 rect(整块矩形)"
|
"d": "占位形状;缺省 rect(整块矩形)",
|
||||||
|
"df": "rect"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"n": "rows",
|
"n": "rows",
|
||||||
"t": "number",
|
"t": "number",
|
||||||
"d": "text 形状的行数;缺省 3,末行自动缩短模拟段落"
|
"d": "text 形状的行数;缺省 3,末行自动缩短模拟段落",
|
||||||
|
"df": "3"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"example": "skeleton({ variant: 'text', rows: 3 }); skeleton({ variant: 'circle' }); skeleton({ variant: 'rect' })",
|
"example": "skeleton({ variant: 'text', rows: 3 }); skeleton({ variant: 'circle' }); skeleton({ variant: 'rect' })",
|
||||||
@@ -531,12 +537,14 @@
|
|||||||
{
|
{
|
||||||
"n": "duration",
|
"n": "duration",
|
||||||
"t": "number",
|
"t": "number",
|
||||||
"d": "自动消失毫秒;缺省 3000"
|
"d": "自动消失毫秒;缺省 3000",
|
||||||
|
"df": "3000"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"n": "variant",
|
"n": "variant",
|
||||||
"t": "'info' | 'success' | 'warning' | 'danger'",
|
"t": "'info' | 'success' | 'warning' | 'danger'",
|
||||||
"d": "语义色;缺省 info(toast.error 对应 danger)"
|
"d": "语义色;缺省 info(toast.error 对应 danger)",
|
||||||
|
"df": "info"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"example": "toast.success('保存成功'); toast.error('网络请求失败', 5000)",
|
"example": "toast.success('保存成功'); toast.error('网络请求失败', 5000)",
|
||||||
@@ -561,12 +569,14 @@
|
|||||||
{
|
{
|
||||||
"n": "placement",
|
"n": "placement",
|
||||||
"t": "'top' | 'bottom'",
|
"t": "'top' | 'bottom'",
|
||||||
"d": "气泡方位;缺省 top(触发器上方)"
|
"d": "气泡方位;缺省 top(触发器上方)",
|
||||||
|
"df": "top"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"n": "delay",
|
"n": "delay",
|
||||||
"t": "number",
|
"t": "number",
|
||||||
"d": "出场延迟毫秒;缺省 150,传 0 立即显示"
|
"d": "出场延迟毫秒;缺省 150,传 0 立即显示",
|
||||||
|
"df": "150"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"n": "trigger",
|
"n": "trigger",
|
||||||
@@ -593,7 +603,8 @@
|
|||||||
{
|
{
|
||||||
"n": "size",
|
"n": "size",
|
||||||
"t": "number",
|
"t": "number",
|
||||||
"d": "直径像素;缺省 18"
|
"d": "直径像素;缺省 18",
|
||||||
|
"df": "18"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"example": "spinner(); spinner({ size: 26 })",
|
"example": "spinner(); spinner({ size: 26 })",
|
||||||
@@ -616,7 +627,8 @@
|
|||||||
{
|
{
|
||||||
"n": "showText",
|
"n": "showText",
|
||||||
"t": "boolean",
|
"t": "boolean",
|
||||||
"d": "是否显示百分比文字;缺省 true"
|
"d": "是否显示百分比文字;缺省 true",
|
||||||
|
"df": "true"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"example": "const pct = signal(0); progress({ value: pct }); setInterval(() => pct((pct() + 5) % 105), 400)",
|
"example": "const pct = signal(0); progress({ value: pct }); setInterval(() => pct((pct() + 5) % 105), 400)",
|
||||||
@@ -742,7 +754,8 @@
|
|||||||
{
|
{
|
||||||
"n": "layout",
|
"n": "layout",
|
||||||
"t": "'vertical' | 'horizontal'",
|
"t": "'vertical' | 'horizontal'",
|
||||||
"d": "布局方向;缺省 vertical(horizontal 为标签左置)"
|
"d": "布局方向;缺省 vertical(horizontal 为标签左置)",
|
||||||
|
"df": "vertical"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"n": "submitText",
|
"n": "submitText",
|
||||||
@@ -785,7 +798,8 @@
|
|||||||
{
|
{
|
||||||
"n": "(formItem)validateOn",
|
"n": "(formItem)validateOn",
|
||||||
"t": "'input' | 'blur' | 'submit'",
|
"t": "'input' | 'blur' | 'submit'",
|
||||||
"d": "校验时机;缺省 blur(输入时自动清已报错误)"
|
"d": "校验时机;缺省 blur(输入时自动清已报错误)",
|
||||||
|
"df": "blur"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"example": "const name = signal(''); const f = form({ onSubmit: submit }, [formItem({ label: '用户名', required: true, value: name, rules: [{ min: 2, max: 12 }] }, textField({ value: name }))])",
|
"example": "const name = signal(''); const f = form({ onSubmit: submit }, [formItem({ label: '用户名', required: true, value: name, rules: [{ min: 2, max: 12 }] }, textField({ value: name }))])",
|
||||||
@@ -823,12 +837,14 @@
|
|||||||
{
|
{
|
||||||
"n": "pageSize",
|
"n": "pageSize",
|
||||||
"t": "number",
|
"t": "number",
|
||||||
"d": "每页行数;缺省 5"
|
"d": "每页行数;缺省 5",
|
||||||
|
"df": "5"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"n": "selectable",
|
"n": "selectable",
|
||||||
"t": "boolean",
|
"t": "boolean",
|
||||||
"d": "启用行选择列:全选三态(含半选)、行 checkbox、已选计数;缺省 false"
|
"d": "启用行选择列:全选三态(含半选)、行 checkbox、已选计数;缺省 false",
|
||||||
|
"df": "false"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"n": "page",
|
"n": "page",
|
||||||
|
|||||||
@@ -2,3 +2,4 @@
|
|||||||
{"time":"2026-10-23T15:50:03+08:00","id":"b02","result":"done","summary":"新增 toast 消息提示组件:四语义工厂 + showToast,右上角堆叠,默认 3s 自动消失,微动画 + reduced-motion 兜底;manifest/docs/llms 同步,check 全绿"}
|
{"time":"2026-10-23T15:50:03+08:00","id":"b02","result":"done","summary":"新增 toast 消息提示组件:四语义工厂 + showToast,右上角堆叠,默认 3s 自动消失,微动画 + reduced-motion 兜底;manifest/docs/llms 同步,check 全绿"}
|
||||||
{"time":"2026-10-23T15:53:33+08:00","id":"b03","result":"done","summary":"新增 skeleton 骨架屏组件:text/rect/circle 三形状 + 扫光微动画 + reduced-motion 静态化;manifest/docs/llms/demo 同步,check 全绿"}
|
{"time":"2026-10-23T15:53:33+08:00","id":"b03","result":"done","summary":"新增 skeleton 骨架屏组件:text/rect/circle 三形状 + 扫光微动画 + reduced-motion 静态化;manifest/docs/llms/demo 同步,check 全绿"}
|
||||||
{"time":"2026-10-23T16:00:11+08:00","id":"b04","result":"done","summary":"新增独立 pagination 分页器(page 信号双向绑定 + 省略号折叠 + 键盘可达),dataTable 新增 page 受控桥接实现联动;demo 联动卡片,check 全绿"}
|
{"time":"2026-10-23T16:00:11+08:00","id":"b04","result":"done","summary":"新增独立 pagination 分页器(page 信号双向绑定 + 省略号折叠 + 键盘可达),dataTable 新增 page 受控桥接实现联动;demo 联动卡片,check 全绿"}
|
||||||
|
{"time":"2026-10-23T16:03:46+08:00","id":"b05","result":"done","summary":"文档站核查确认已 manifest 驱动;补齐默认值信息量缺口:CLI propsTable 新增默认值列(df 字段)+ llms-full 默认标注,16 处默认值提取;check 全绿"}
|
||||||
|
|||||||
+17
-17
@@ -1,6 +1,6 @@
|
|||||||
# @ui-arch 组件库 Agent 文档(无图形版)
|
# @ui-arch 组件库 Agent 文档(无图形版)
|
||||||
|
|
||||||
> 自动生成于 2026-10-23T07:59:47.390Z,数据源:各包 ua.manifest.json,勿手改。人类版文档站:apps/docs/index.html。
|
> 自动生成于 2026-10-23T08:02:39.002Z,数据源:各包 ua.manifest.json,勿手改。人类版文档站:apps/docs/index.html。
|
||||||
> 组件 = 普通函数,传 props 返回 DOM;状态用 signal 双向绑定:读 signal() 写 signal(v)。
|
> 组件 = 普通函数,传 props 返回 DOM;状态用 signal 双向绑定:读 signal() 写 signal(v)。
|
||||||
|
|
||||||
## 快速上手
|
## 快速上手
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
参数:
|
参数:
|
||||||
|
|
||||||
- label(必填):string —— 按钮文案
|
- label(必填):string —— 按钮文案
|
||||||
- variant:'primary' | 'ghost' | 'danger' —— 视觉强度;缺省 primary
|
- variant(默认 primary):'primary' | 'ghost' | 'danger' —— 视觉强度;缺省 primary
|
||||||
- onClick(回调):() => void —— 点击回调
|
- onClick(回调):() => void —— 点击回调
|
||||||
|
|
||||||
示例:
|
示例:
|
||||||
@@ -91,7 +91,7 @@ const name = signal(''); const el = textField({ value: name, placeholder: '输
|
|||||||
参数:
|
参数:
|
||||||
|
|
||||||
- value:Signal<string> —— 双向绑定信号
|
- value:Signal<string> —— 双向绑定信号
|
||||||
- rows:number —— 初始行数;缺省 3
|
- rows(默认 3):number —— 初始行数;缺省 3
|
||||||
- placeholder:string —— 占位文案
|
- placeholder:string —— 占位文案
|
||||||
- onInput(回调):(value: string) => void —— 输入回调
|
- onInput(回调):(value: string) => void —— 输入回调
|
||||||
|
|
||||||
@@ -225,7 +225,7 @@ card({ title: '用户表' }, dataTable({ data, columns }))
|
|||||||
参数:
|
参数:
|
||||||
|
|
||||||
- label(必填):string —— 徽标文案
|
- label(必填):string —— 徽标文案
|
||||||
- variant:'default' | 'success' | 'warning' | 'danger' —— 语义色;缺省 default
|
- variant(默认 default):'default' | 'success' | 'warning' | 'danger' —— 语义色;缺省 default
|
||||||
|
|
||||||
示例:
|
示例:
|
||||||
|
|
||||||
@@ -245,7 +245,7 @@ badge({ label: '成功', variant: 'success' })
|
|||||||
参数:
|
参数:
|
||||||
|
|
||||||
- message(必填):string —— 提示内容
|
- message(必填):string —— 提示内容
|
||||||
- variant:'info' | 'success' | 'warning' | 'danger' —— 语义色;缺省 info
|
- variant(默认 info):'info' | 'success' | 'warning' | 'danger' —— 语义色;缺省 info
|
||||||
|
|
||||||
示例:
|
示例:
|
||||||
|
|
||||||
@@ -264,8 +264,8 @@ alert({ message: '操作可能存在风险', variant: 'warning' })
|
|||||||
|
|
||||||
参数:
|
参数:
|
||||||
|
|
||||||
- variant:'text' | 'rect' | 'circle' —— 占位形状;缺省 rect(整块矩形)
|
- variant(默认 rect):'text' | 'rect' | 'circle' —— 占位形状;缺省 rect(整块矩形)
|
||||||
- rows:number —— text 形状的行数;缺省 3,末行自动缩短模拟段落
|
- rows(默认 3):number —— text 形状的行数;缺省 3,末行自动缩短模拟段落
|
||||||
|
|
||||||
示例:
|
示例:
|
||||||
|
|
||||||
@@ -287,8 +287,8 @@ skeleton({ variant: 'text', rows: 3 }); skeleton({ variant: 'circle' }); skeleto
|
|||||||
参数:
|
参数:
|
||||||
|
|
||||||
- message(必填):string —— 提示文案
|
- message(必填):string —— 提示文案
|
||||||
- duration:number —— 自动消失毫秒;缺省 3000
|
- duration(默认 3000):number —— 自动消失毫秒;缺省 3000
|
||||||
- variant:'info' | 'success' | 'warning' | 'danger' —— 语义色;缺省 info(toast.error 对应 danger)
|
- variant(默认 info):'info' | 'success' | 'warning' | 'danger' —— 语义色;缺省 info(toast.error 对应 danger)
|
||||||
|
|
||||||
示例:
|
示例:
|
||||||
|
|
||||||
@@ -310,8 +310,8 @@ toast.success('保存成功'); toast.error('网络请求失败', 5000)
|
|||||||
参数:
|
参数:
|
||||||
|
|
||||||
- content(必填):string —— 提示文案(纯文本)
|
- content(必填):string —— 提示文案(纯文本)
|
||||||
- placement:'top' | 'bottom' —— 气泡方位;缺省 top(触发器上方)
|
- placement(默认 top):'top' | 'bottom' —— 气泡方位;缺省 top(触发器上方)
|
||||||
- delay:number —— 出场延迟毫秒;缺省 150,传 0 立即显示
|
- delay(默认 150):number —— 出场延迟毫秒;缺省 150,传 0 立即显示
|
||||||
- trigger(必填):HTMLElement —— 第二个参数:被包裹的触发器元素(按钮 / 输入框等任意 DOM)
|
- trigger(必填):HTMLElement —— 第二个参数:被包裹的触发器元素(按钮 / 输入框等任意 DOM)
|
||||||
|
|
||||||
示例:
|
示例:
|
||||||
@@ -335,7 +335,7 @@ tooltip({ content: '保存后立即生效' }, button({ label: '保存', onClick:
|
|||||||
|
|
||||||
参数:
|
参数:
|
||||||
|
|
||||||
- size:number —— 直径像素;缺省 18
|
- size(默认 18):number —— 直径像素;缺省 18
|
||||||
|
|
||||||
示例:
|
示例:
|
||||||
|
|
||||||
@@ -355,7 +355,7 @@ spinner(); spinner({ size: 26 })
|
|||||||
参数:
|
参数:
|
||||||
|
|
||||||
- value(必填):Signal<number> —— 进度 0-100 信号,变化自动平滑过渡
|
- value(必填):Signal<number> —— 进度 0-100 信号,变化自动平滑过渡
|
||||||
- showText:boolean —— 是否显示百分比文字;缺省 true
|
- showText(默认 true):boolean —— 是否显示百分比文字;缺省 true
|
||||||
|
|
||||||
示例:
|
示例:
|
||||||
|
|
||||||
@@ -448,7 +448,7 @@ const open = signal(false); modal({ title: '确认操作', open, onClose: () =>
|
|||||||
|
|
||||||
参数:
|
参数:
|
||||||
|
|
||||||
- layout:'vertical' | 'horizontal' —— 布局方向;缺省 vertical(horizontal 为标签左置)
|
- layout(默认 vertical):'vertical' | 'horizontal' —— 布局方向;缺省 vertical(horizontal 为标签左置)
|
||||||
- submitText:string —— 提交按钮文案;缺省「提交」
|
- submitText:string —— 提交按钮文案;缺省「提交」
|
||||||
- resetText:string —— 重置按钮文案;缺省不渲染
|
- resetText:string —— 重置按钮文案;缺省不渲染
|
||||||
- onSubmit(回调):() => void —— 全部字段校验通过后的提交回调
|
- onSubmit(回调):() => void —— 全部字段校验通过后的提交回调
|
||||||
@@ -456,7 +456,7 @@ const open = signal(false); modal({ title: '确认操作', open, onClose: () =>
|
|||||||
- (formItem)value(必填):Signal<string> —— 字段值信号,校验数据源
|
- (formItem)value(必填):Signal<string> —— 字段值信号,校验数据源
|
||||||
- (formItem)required:boolean —— 必填:显示红星并自动追加非空规则
|
- (formItem)required:boolean —— 必填:显示红星并自动追加非空规则
|
||||||
- (formItem)rules:FormRule[] —— 校验规则:required / min / max / pattern / validator,按序执行取首个失败
|
- (formItem)rules:FormRule[] —— 校验规则:required / min / max / pattern / validator,按序执行取首个失败
|
||||||
- (formItem)validateOn:'input' | 'blur' | 'submit' —— 校验时机;缺省 blur(输入时自动清已报错误)
|
- (formItem)validateOn(默认 blur):'input' | 'blur' | 'submit' —— 校验时机;缺省 blur(输入时自动清已报错误)
|
||||||
|
|
||||||
示例:
|
示例:
|
||||||
|
|
||||||
@@ -482,8 +482,8 @@ const name = signal(''); const f = form({ onSubmit: submit }, [formItem({ label:
|
|||||||
- data(必填):T[] —— 全量行数据,每行须含 id 字段作 rowKey
|
- data(必填):T[] —— 全量行数据,每行须含 id 字段作 rowKey
|
||||||
- columns(必填):ColumnDef<T>[] —— 列定义:{ key, header?, sortable? }
|
- columns(必填):ColumnDef<T>[] —— 列定义:{ key, header?, sortable? }
|
||||||
- filterKey:string —— 工具栏筛选的列;缺省取第一列
|
- filterKey:string —— 工具栏筛选的列;缺省取第一列
|
||||||
- pageSize:number —— 每页行数;缺省 5
|
- pageSize(默认 5):number —— 每页行数;缺省 5
|
||||||
- selectable:boolean —— 启用行选择列:全选三态(含半选)、行 checkbox、已选计数;缺省 false
|
- selectable(默认 false):boolean —— 启用行选择列:全选三态(含半选)、行 checkbox、已选计数;缺省 false
|
||||||
- page:Signal<number> —— 受控页码信号:与内核分页双向同步,传同一个信号给独立 pagination 组件即可联动
|
- page:Signal<number> —— 受控页码信号:与内核分页双向同步,传同一个信号给独立 pagination 组件即可联动
|
||||||
|
|
||||||
示例:
|
示例:
|
||||||
|
|||||||
@@ -92,7 +92,8 @@
|
|||||||
{
|
{
|
||||||
"n": "variant",
|
"n": "variant",
|
||||||
"t": "'primary' | 'ghost' | 'danger'",
|
"t": "'primary' | 'ghost' | 'danger'",
|
||||||
"d": "视觉强度;缺省 primary"
|
"d": "视觉强度;缺省 primary",
|
||||||
|
"df": "primary"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"n": "onClick",
|
"n": "onClick",
|
||||||
@@ -150,7 +151,8 @@
|
|||||||
{
|
{
|
||||||
"n": "rows",
|
"n": "rows",
|
||||||
"t": "number",
|
"t": "number",
|
||||||
"d": "初始行数;缺省 3"
|
"d": "初始行数;缺省 3",
|
||||||
|
"df": "3"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"n": "placeholder",
|
"n": "placeholder",
|
||||||
@@ -332,7 +334,8 @@
|
|||||||
{
|
{
|
||||||
"n": "variant",
|
"n": "variant",
|
||||||
"t": "'default' | 'success' | 'warning' | 'danger'",
|
"t": "'default' | 'success' | 'warning' | 'danger'",
|
||||||
"d": "语义色;缺省 default"
|
"d": "语义色;缺省 default",
|
||||||
|
"df": "default"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"example": "badge({ label: '成功', variant: 'success' })",
|
"example": "badge({ label: '成功', variant: 'success' })",
|
||||||
@@ -355,7 +358,8 @@
|
|||||||
{
|
{
|
||||||
"n": "variant",
|
"n": "variant",
|
||||||
"t": "'info' | 'success' | 'warning' | 'danger'",
|
"t": "'info' | 'success' | 'warning' | 'danger'",
|
||||||
"d": "语义色;缺省 info"
|
"d": "语义色;缺省 info",
|
||||||
|
"df": "info"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"example": "alert({ message: '操作可能存在风险', variant: 'warning' })",
|
"example": "alert({ message: '操作可能存在风险', variant: 'warning' })",
|
||||||
@@ -372,12 +376,14 @@
|
|||||||
{
|
{
|
||||||
"n": "variant",
|
"n": "variant",
|
||||||
"t": "'text' | 'rect' | 'circle'",
|
"t": "'text' | 'rect' | 'circle'",
|
||||||
"d": "占位形状;缺省 rect(整块矩形)"
|
"d": "占位形状;缺省 rect(整块矩形)",
|
||||||
|
"df": "rect"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"n": "rows",
|
"n": "rows",
|
||||||
"t": "number",
|
"t": "number",
|
||||||
"d": "text 形状的行数;缺省 3,末行自动缩短模拟段落"
|
"d": "text 形状的行数;缺省 3,末行自动缩短模拟段落",
|
||||||
|
"df": "3"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"example": "skeleton({ variant: 'text', rows: 3 }); skeleton({ variant: 'circle' }); skeleton({ variant: 'rect' })",
|
"example": "skeleton({ variant: 'text', rows: 3 }); skeleton({ variant: 'circle' }); skeleton({ variant: 'rect' })",
|
||||||
@@ -402,12 +408,14 @@
|
|||||||
{
|
{
|
||||||
"n": "duration",
|
"n": "duration",
|
||||||
"t": "number",
|
"t": "number",
|
||||||
"d": "自动消失毫秒;缺省 3000"
|
"d": "自动消失毫秒;缺省 3000",
|
||||||
|
"df": "3000"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"n": "variant",
|
"n": "variant",
|
||||||
"t": "'info' | 'success' | 'warning' | 'danger'",
|
"t": "'info' | 'success' | 'warning' | 'danger'",
|
||||||
"d": "语义色;缺省 info(toast.error 对应 danger)"
|
"d": "语义色;缺省 info(toast.error 对应 danger)",
|
||||||
|
"df": "info"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"example": "toast.success('保存成功'); toast.error('网络请求失败', 5000)",
|
"example": "toast.success('保存成功'); toast.error('网络请求失败', 5000)",
|
||||||
@@ -432,12 +440,14 @@
|
|||||||
{
|
{
|
||||||
"n": "placement",
|
"n": "placement",
|
||||||
"t": "'top' | 'bottom'",
|
"t": "'top' | 'bottom'",
|
||||||
"d": "气泡方位;缺省 top(触发器上方)"
|
"d": "气泡方位;缺省 top(触发器上方)",
|
||||||
|
"df": "top"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"n": "delay",
|
"n": "delay",
|
||||||
"t": "number",
|
"t": "number",
|
||||||
"d": "出场延迟毫秒;缺省 150,传 0 立即显示"
|
"d": "出场延迟毫秒;缺省 150,传 0 立即显示",
|
||||||
|
"df": "150"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"n": "trigger",
|
"n": "trigger",
|
||||||
@@ -464,7 +474,8 @@
|
|||||||
{
|
{
|
||||||
"n": "size",
|
"n": "size",
|
||||||
"t": "number",
|
"t": "number",
|
||||||
"d": "直径像素;缺省 18"
|
"d": "直径像素;缺省 18",
|
||||||
|
"df": "18"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"example": "spinner(); spinner({ size: 26 })",
|
"example": "spinner(); spinner({ size: 26 })",
|
||||||
@@ -487,7 +498,8 @@
|
|||||||
{
|
{
|
||||||
"n": "showText",
|
"n": "showText",
|
||||||
"t": "boolean",
|
"t": "boolean",
|
||||||
"d": "是否显示百分比文字;缺省 true"
|
"d": "是否显示百分比文字;缺省 true",
|
||||||
|
"df": "true"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"example": "const pct = signal(0); progress({ value: pct }); setInterval(() => pct((pct() + 5) % 105), 400)",
|
"example": "const pct = signal(0); progress({ value: pct }); setInterval(() => pct((pct() + 5) % 105), 400)",
|
||||||
@@ -613,7 +625,8 @@
|
|||||||
{
|
{
|
||||||
"n": "layout",
|
"n": "layout",
|
||||||
"t": "'vertical' | 'horizontal'",
|
"t": "'vertical' | 'horizontal'",
|
||||||
"d": "布局方向;缺省 vertical(horizontal 为标签左置)"
|
"d": "布局方向;缺省 vertical(horizontal 为标签左置)",
|
||||||
|
"df": "vertical"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"n": "submitText",
|
"n": "submitText",
|
||||||
@@ -656,7 +669,8 @@
|
|||||||
{
|
{
|
||||||
"n": "(formItem)validateOn",
|
"n": "(formItem)validateOn",
|
||||||
"t": "'input' | 'blur' | 'submit'",
|
"t": "'input' | 'blur' | 'submit'",
|
||||||
"d": "校验时机;缺省 blur(输入时自动清已报错误)"
|
"d": "校验时机;缺省 blur(输入时自动清已报错误)",
|
||||||
|
"df": "blur"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"example": "const name = signal(''); const f = form({ onSubmit: submit }, [formItem({ label: '用户名', required: true, value: name, rules: [{ min: 2, max: 12 }] }, textField({ value: name }))])",
|
"example": "const name = signal(''); const f = form({ onSubmit: submit }, [formItem({ label: '用户名', required: true, value: name, rules: [{ min: 2, max: 12 }] }, textField({ value: name }))])",
|
||||||
@@ -694,12 +708,14 @@
|
|||||||
{
|
{
|
||||||
"n": "pageSize",
|
"n": "pageSize",
|
||||||
"t": "number",
|
"t": "number",
|
||||||
"d": "每页行数;缺省 5"
|
"d": "每页行数;缺省 5",
|
||||||
|
"df": "5"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"n": "selectable",
|
"n": "selectable",
|
||||||
"t": "boolean",
|
"t": "boolean",
|
||||||
"d": "启用行选择列:全选三态(含半选)、行 checkbox、已选计数;缺省 false"
|
"d": "启用行选择列:全选三态(含半选)、行 checkbox、已选计数;缺省 false",
|
||||||
|
"df": "false"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"n": "page",
|
"n": "page",
|
||||||
|
|||||||
@@ -191,9 +191,9 @@ var ORDER={skin-dom:0,'headless-core':1,'design-tokens':2};
|
|||||||
function esc(s){return String(s).replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>')}
|
function esc(s){return String(s).replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>')}
|
||||||
function propsTable(c){
|
function propsTable(c){
|
||||||
var rows=(c.props||[]).map(function(p){
|
var rows=(c.props||[]).map(function(p){
|
||||||
return '<tr><td><code>'+esc(p.n)+'</code></td><td><code>'+esc(p.t)+'</code></td><td>'+(p.r?'必填':'否')+'</td><td>'+esc(p.d||'')+(p.k?'(回调)':'')+'</td></tr>';
|
return '<tr><td><code>'+esc(p.n)+'</code></td><td><code>'+esc(p.t)+'</code></td><td>'+(p.r?'必填':'否')+'</td><td>'+(p.df?'<code>'+esc(p.df)+'</code>':'—')+'</td><td>'+esc(p.d||'')+(p.k?'(回调)':'')+'</td></tr>';
|
||||||
}).join('');
|
}).join('');
|
||||||
return '<table class="props"><tr><th>参数</th><th>类型</th><th>必填</th><th>说明</th></tr>'+rows+'</table>';
|
return '<table class="props"><tr><th>参数</th><th>类型</th><th>必填</th><th>默认值</th><th>说明</th></tr>'+rows+'</table>';
|
||||||
}
|
}
|
||||||
function compBlock(c){
|
function compBlock(c){
|
||||||
var steps=(c.steps||[]).map(function(s){return '<li>'+esc(s)+'</li>'}).join('');
|
var steps=(c.steps||[]).map(function(s){return '<li>'+esc(s)+'</li>'}).join('');
|
||||||
@@ -289,7 +289,7 @@ function renderAgentDocs(index, tokens) {
|
|||||||
if (c.props?.length) {
|
if (c.props?.length) {
|
||||||
lines.push('参数:', '');
|
lines.push('参数:', '');
|
||||||
for (const prop of c.props) {
|
for (const prop of c.props) {
|
||||||
const marks = [prop.r ? '必填' : '', prop.k ? '回调' : ''].filter(Boolean).join(',');
|
const marks = [prop.r ? '必填' : '', prop.k ? '回调' : '', prop.df ? `默认 ${prop.df}` : ''].filter(Boolean).join(',');
|
||||||
lines.push(`- ${prop.n}${marks ? `(${marks})` : ''}:${prop.t}${prop.d ? ` —— ${prop.d}` : ''}`);
|
lines.push(`- ${prop.n}${marks ? `(${marks})` : ''}:${prop.t}${prop.d ? ` —— ${prop.d}` : ''}`);
|
||||||
}
|
}
|
||||||
lines.push('');
|
lines.push('');
|
||||||
|
|||||||
Reference in New Issue
Block a user