IconPicker 图标选择器
表单控件
图标选择器 — Chaos UI 的表单控件。
何时使用
需要图标选择器功能时使用本组件。
代码示例
基础用法
tsx
import { IconPicker } from "@/components/ui/icon-picker"
export function Basic() {
return <IconPicker />
}尺寸
tsx
{/* 尺寸对照 */}
<div className="flex flex-wrap items-center gap-3">
<IconPicker size="sm">Sm</IconPicker>
<IconPicker size="default">Default</IconPicker>
<IconPicker size="lg">Lg</IconPicker>
</div>样式变体
尺寸
| Size | 说明 | 默认 |
|---|---|---|
default | 默认尺寸 | ✓ |
sm | 小号 | |
lg | 大号 |
API / Props
IconPicker
| Prop | Type | Default | 说明 |
|---|---|---|---|
className | string | — | 自定义样式类名 |
value | string | — | Selected icon value |
onChange | () => void | — | Change handler |
icons | Record<string, React.ReactNode> | — | Icons to display - map of value to React node |
columns | number | 6 | Columns in the grid |
searchPlaceholder | string | Search icons... | Placeholder when searching |
| ...rest | React.ComponentProps<"div"> | — | 透传 <div> 原生属性 |
注意事项
- Client Component: 使用
"use client",依赖 React hooks/状态,需在客户端渲染。 - CVA 变体: 通过
class-variance-authority管理样式变体,类型安全。变体对象可导出复用。 - 原生属性: 继承所有
<div>原生 HTML 属性。
📘 完整交互式示例与控件属性请查看 Storybook 文档。