# With popover

> Info button in the trailing addon opens a popover with helper content.

A shadcn/ui block from the [@flx](https://ui.flexnative.com) registry, listed on [shadcn.exchange](https://shadcn.exchange/r/flx/input-09).

- Page, with a live preview: https://shadcn.exchange/r/flx/input-09
- Screenshot: https://abzjhwgwpdpz7ua5.public.blob.vercel-storage.com/shots/flx/input-09-light-aad5d97dc6c6b66c.png
- Registry item: https://ui.flexnative.com/r/input-09.json
- Listed: 2026-10-13, source last changed 2026-10-13

## Install

```bash
npx shadcn@latest add https://ui.flexnative.com/r/input-09.json
```

Run it in a project that has shadcn/ui set up. It adds the files below and installs what they depend on.

## Dependencies

- npm packages: `lucide-react`
- Registry items: `input-group`, `button`, `popover`

## Files

### `registry/patterns/input/input-09.tsx`

```tsx
import { InfoIcon } from 'lucide-react'

import {
  InputGroup,
  InputGroupAddon,
  InputGroupButton,
  InputGroupInput,
} from '@/components/ui/input-group'
import {
  Popover,
  PopoverContent,
  PopoverTrigger,
} from '@/components/ui/popover'

export function Input09() {
  return (
    <InputGroup className="max-w-sm">
      <InputGroupInput placeholder="Enter password" type="password" />
      <InputGroupAddon align="inline-end">
        <Popover>
          <PopoverTrigger
            render={
              <InputGroupButton
                aria-label="Password requirements"
                size="icon-xs"
              >
                <InfoIcon />
              </InputGroupButton>
            }
          />
          <PopoverContent align="end" className="w-64">
            <p className="font-medium">Password requirements</p>
            <ul className="text-muted-foreground list-inside list-disc space-y-1 text-sm">
              <li>At least 8 characters</li>
              <li>One uppercase letter</li>
              <li>One number or symbol</li>
            </ul>
          </PopoverContent>
        </Popover>
      </InputGroupAddon>
    </InputGroup>
  )
}
```
