@hua-labs/ui
v1.0.0
bash
npm install @hua-labs/huatsx
import { Command, CommandItem, CommandGroup, CommandSeparator, CommandEmpty } from "@hua-labs/hua";open | boolean | - | docs:components.command.props.open |
onOpenChange | (open: boolean) => void | - | docs:components.command.props.onOpenChange |
placeholder | string | "명령어를 검색하세요..." | docs:components.command.props.placeholder |
searchValue | string | - | docs:components.command.props.searchValue |
onSearchChange | (value: string) => void | - | docs:components.command.props.onSearchChange |
disabled | boolean | false | docs:components.command.props.disabled |
| Prop | Type | Default | |
|---|---|---|---|
| icon | React.ReactNode | - | docs:components.command.itemProps.icon |
| selected | boolean | false | docs:components.command.itemProps.selected |
| onSelect | () => void | - | docs:components.command.itemProps.onSelect |
docs:common.basicUsagetsx
1// Via framework (recommended)2import { Command, CommandItem, CommandGroup, CommandSeparator } from '@hua-labs/hua';3// Or direct import4// import { Command, CommandItem, CommandGroup, CommandSeparator } from '@hua-labs/ui/interactive';5 6const [open, setOpen] = useState(false);7 8<Button onClick={() => setOpen(true)}>9 Open Command Palette10</Button>11 12<Command open={open} onOpenChange={setOpen}>13 <CommandItem icon={<File />} onSelect={() => console.log('New File')}>14 New File15 </CommandItem>16 <CommandItem icon={<FolderOpen />} onSelect={() => console.log('Open')}>17 Open...18 </CommandItem>19 <CommandSeparator />20 <CommandItem icon={<Gear />} onSelect={() => console.log('Settings')}>21 Settings22 </CommandItem>23</Command>docs:components.command.examples.withGroupstsx
1<Command open={open} onOpenChange={setOpen}>2 <CommandGroup heading="File">3 <CommandItem icon={<Plus />}>New File</CommandItem>4 <CommandItem icon={<FolderOpen />}>Open...</CommandItem>5 </CommandGroup>6 <CommandSeparator />7 <CommandGroup heading="Edit">8 <CommandItem icon={<Copy />}>Copy</CommandItem>9 <CommandItem icon={<Trash />} disabled>Delete</CommandItem>10 </CommandGroup>11</Command>docs:components.command.examples.withSearchFilteringtsx
1const [searchValue, setSearchValue] = useState('');2 3const items = [4 { label: 'Home', icon: <House /> },5 { label: 'Settings', icon: <Gear /> },6 { label: 'Profile', icon: <User /> },7];8 9const filtered = items.filter(item =>10 item.label.toLowerCase().includes(searchValue.toLowerCase())11);12 13<Command14 open={open}15 onOpenChange={setOpen}16 searchValue={searchValue}17 onSearchChange={setSearchValue}18 placeholder="Search commands..."19>20 {filtered.length === 0 ? (21 <CommandEmpty>No results found</CommandEmpty>22 ) : (23 filtered.map(item => (24 <CommandItem key={item.label} icon={item.icon}>25 {item.label}26 </CommandItem>27 ))28 )}29</Command>- •
CommandItem- - •
CommandGroup- - •
CommandSeparator- - •
CommandEmpty- - •
CommandDialog-
- •docs:components.command.accessibility.keyboardShortcut: docs:components.command.accessibility.keyboardShortcutDesc
- •docs:components.command.accessibility.arrowNavigation: docs:components.command.accessibility.arrowNavigationDesc
- •docs:components.command.accessibility.selection: docs:components.command.accessibility.selectionDesc
- •docs:common.close: docs:components.command.accessibility.closeDesc