# Common chooser (Blocks)

Optional **product → component** scan; it can drift. **`## When to use`** in each `../../src/components/<Name>/<Name>.mdx` **wins** over this table—then confirm in `.tsx` and stories.

Brainstorm with the table, then read **mdx + stories** for every shortlist before locking.

| Product need                    | Start with     | Use instead when…                                          |
| ------------------------------- | -------------- | ---------------------------------------------------------- |
| Labeled action                  | `Button`       | `ButtonIcon` icon-only; `ButtonSet` grouped                |
| Text input + label/helper/error | `FieldInput`   | `Input` for bare control only                              |
| Field chrome, non-input         | `Field`        | `FieldInput` for standard input                            |
| Select from options             | `SimpleSelect` | `Select` custom; `Combobox` searchable                     |
| Searchable / multi-select       | `Combobox`     | `SimpleSelect` if search/custom not needed                 |
| Action menu                     | `DropdownMenu` | `Select` / `SimpleSelect` for a stored value               |
| Blocking confirm                | `Modal`        | `Drawer`, `Sheet`, `SidePanel` for side content            |
| Contextual help                 | `InfoTooltip`  | `ResponsiveTooltip` custom trigger; `Tooltip` desktop-only |
| Grouped surface                 | `Card`         | layout primitives if unboxed                               |
| Nav link                        | `TextLink`     | `Link` unstyled / custom look                              |

**Imports:** `@chainlink/blocks` only. **Subcomponents:** usually same `.tsx` as parent (`Select` + `SelectTrigger` + …).
