feat(ui): topbar primitives — IconButton, SegmentedControl, Avatar

Adds the shared primitives the planner topbar redesign needs, on the
design-system tokens:

- IconButton — icon-only button (undo/redo), ghost/secondary variants,
  requires an accessible label.
- SegmentedControl — generic single-select toggle (color mode
  Plain/Elevation/Surface), radiogroup semantics.
- Avatar — colored initial circle for participants, per-user color with
  an accent fallback.

Co-located jsdom unit tests for each (roles, aria-checked, onChange,
disabled, color fallback). Extends the dev-only /dev/ui gallery with
sections for all three.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Ullrich Schäfer 2026-07-15 23:43:14 +02:00
parent c9ad475e59
commit 1bd5f18a33
No known key found for this signature in database
GPG key ID: A32FF691A0F752D9
8 changed files with 371 additions and 2 deletions

View file

@ -7,3 +7,17 @@ export { Card } from "./Card.tsx";
export type { CardProps } from "./Card.tsx";
export { Input } from "./Input.tsx";
export type { InputProps } from "./Input.tsx";
export { IconButton } from "./IconButton.tsx";
export type {
IconButtonProps,
IconButtonVariant,
IconButtonSize,
} from "./IconButton.tsx";
export { SegmentedControl } from "./SegmentedControl.tsx";
export type {
SegmentedControlProps,
SegmentedOption,
SegmentedSize,
} from "./SegmentedControl.tsx";
export { Avatar } from "./Avatar.tsx";
export type { AvatarProps, AvatarSize } from "./Avatar.tsx";