# InfoTooltip

## 2026-07-28 — New shared primitive

**Prompted by:** /simplify — de-duplicating the info-icon-plus-tooltip pattern

### What changed
- New `InfoTooltip` component: a muted info (ⓘ) icon that reveals an explainer tooltip on hover/focus. Props: `text`, `side` (default "top"), `className` (trigger), `contentClassName` (bubble, defaults to `max-w-72`).

### Why
- The same "info icon → tooltip" markup was being hand-rolled in several card components (dashboard expense categories, incoming & outgoings, expense categories bar, …) and had already drifted (`max-w-64` vs `max-w-72`, `text-muted-foreground/70` vs `text-muted-foreground`). This is the single source so a11y/styling changes happen in one place.

### Affected tokens / files
- `packages/shadcn/src/components/ui/info-tooltip.tsx` (new)
- Consumers migrated: `dashboard-expense-categories.tsx`, `incoming-outgoings-card.tsx`
