组合框
一个输入框,搭配一组预定义选项供用户选择。
安装
pnpm dlx shadcn@latest add @lumi-ui/combobox
组件结构
<Combobox>
<ComboboxTrigger />
<ComboboxInputGroupContent />
<ComboboxChips>
<ComboboxChip />
</ComboboxChips>
<ComboboxContent>
<ComboboxStatus />
<ComboboxEmpty />
<ComboboxList>
<ComboboxRow>
<ComboboxItemContent />
</ComboboxRow>
<ComboboxSeparator />
<ComboboxGroup>
<ComboboxGroupLabel />
</ComboboxGroup>
<ComboboxCollection />
</ComboboxList>
</ComboboxContent>
</Combobox>功能特性
带清除按钮、触发按钮和图标
输入框置于弹窗内
使用 ComboboxTrigger 替代 ComboboxInputGroup,可将输入框放入弹窗内。在 ComboboxInput 上设置 variant="ghost" 以去除边框和聚焦样式。
修改指示器图标及位置
分组
自定义锚点 (positionerAnchor)
ComboboxContent 默认以 ComboboxTrigger 作为锚点。如果你希望弹窗宽度与外层容器一致,可以手动将该容器指定为锚点。
实用示例
配合滚动区域
多选
可创建选项
异步加载(单选)
异步加载(多选)
自定义样式
表单集成
API 参考
ComboboxInputGroup
一个高阶的输入组件,它将 ComboboxInput、Icon、ComboboxClear 和 ComboboxTrigger 整合为一个带样式的单一元素。
ComboboxContent
一个高阶的容器组件,它将 ComboboxPortal、ComboboxPositioner 和 ComboboxPopup 整合为一个带样式的下拉内容元素。
ComboboxItemContent
一个高阶的选项组件,它将 Item 和 ItemIndicator 整合为一个带样式的单一元素,并可配置图标位置。