| 12345678910111213141516171819202122232425262728293031323334 |
- import { SearchIcon } from 'lucide-react'
- import { cn } from '@/lib/utils'
- import { useSearch } from '@/context/search-provider'
- import { Button } from './ui/button'
- export function Search({
- className = '',
- placeholder = 'Search',
- ...props
- }: React.ComponentProps<'button'> & { placeholder?: string }) {
- const { setOpen } = useSearch()
- return (
- <Button
- {...props}
- variant='outline'
- className={cn(
- 'group relative h-8 w-full flex-1 justify-start rounded-md bg-muted/25 text-sm font-normal text-muted-foreground shadow-none hover:bg-accent sm:w-40 sm:pe-12 md:flex-none lg:w-52 xl:w-64',
- className
- )}
- aria-keyshortcuts='Meta+K Control+K'
- onClick={() => setOpen(true)}
- >
- <SearchIcon
- aria-hidden='true'
- className='absolute start-1.5 top-1/2 -translate-y-1/2'
- size={16}
- />
- <span className='ms-4'>{placeholder}</span>
- <kbd className='pointer-events-none absolute end-[0.3rem] top-[0.3rem] hidden h-5 items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium opacity-100 select-none group-hover:bg-accent sm:flex'>
- <span className='text-xs'>⌘</span>K
- </kbd>
- </Button>
- )
- }
|