# With nested input group

> Attach button plus InputGroup message field and send action in a ButtonGroup.

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

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

## Install

```bash
npx shadcn@latest add https://ui.flexnative.com/r/input-17.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`, `button-group`

## Files

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

```tsx
import { ArrowUpIcon, PlusIcon } from 'lucide-react'

import { Button } from '@/components/ui/button'
import { ButtonGroup } from '@/components/ui/button-group'
import {
  InputGroup,
  InputGroupAddon,
  InputGroupButton,
  InputGroupInput,
} from '@/components/ui/input-group'

export function Input17() {
  return (
    <ButtonGroup className="max-w-md">
      <ButtonGroup>
        <Button variant="outline" size="icon" aria-label="Add attachment">
          <PlusIcon />
        </Button>
      </ButtonGroup>
      <ButtonGroup className="min-w-0 flex-1">
        <InputGroup className="w-full">
          <InputGroupInput placeholder="Send a message..." />
          <InputGroupAddon align="inline-end">
            <InputGroupButton aria-label="Send message" size="icon-xs">
              <ArrowUpIcon />
            </InputGroupButton>
          </InputGroupAddon>
        </InputGroup>
      </ButtonGroup>
    </ButtonGroup>
  )
}
```
