Changelog: 2026-01-30

Major component migration day - replaced HeadlessUI components with shadcn/ui equivalents and added new therapy session management features.

Features

Add Therapy Session Form V2 with TanStack Form

A comprehensive new form for creating and editing therapy sessions. The form includes sections for session details, configuration, team assignments, equipment selection, safety checklists, consents, and session notes. It uses TanStack Form for state management and validation.

Add Therapy Sessions Data Table

A new data table for viewing and managing therapy sessions. It includes search functionality, upcoming session filtering, check-in buttons, and action menus for each session. The table supports pagination and sorting.

Migrate Avatar component to shadcn/ui

The Avatar component has been replaced with the shadcn/ui version, which includes support for fallback initials, status badges, and avatar groups. You can now display multiple avatars together with an overflow count.

Migrate Dialog and Alert components to shadcn/ui

Modal dialogs and alert dialogs now use the shadcn/ui components, providing better accessibility, consistent styling, and support for forms within dialogs. The new dialogs include proper focus management and keyboard navigation.

Migrate Dropdown to shadcn DropdownMenu

Dropdown menus now use the shadcn/ui DropdownMenu component, with support for submenus, keyboard shortcuts, checkboxes, radio groups, and icons. The menus work consistently across different contexts including navigation and action menus.

Migrate Radio component to shadcn/ui RadioGroup

Radio buttons now use the shadcn/ui RadioGroup component, providing better styling and accessibility. The component supports descriptions, choice cards, and fieldset layouts.

Add typography variants to Text and Heading components

The Text component now supports typography variants including lead, large, small, and muted styles. This makes it easier to create consistent typography throughout the application without custom classes.

Replace TimePicker with shadcn TimeInput

The time picker now uses a new TimeInput component that only allows 15-minute increments (00, 15, 30, 45). It uses a 12-hour format with AM/PM selection and provides an intuitive interface with up/down buttons for adjusting the time.

Improvements

  • Add UI refinements to TherapySessionsDataTable (PR)

  • Add enhanced features to TherapySessionsDataTable (PR)

  • Exclude story files from Next.js TypeScript build (PR)

  • Fix DataTable overflow with shadcn pattern (PR)

  • Remove cardWrapper opt-out from DataTable stories (PR)

  • Center content within global Card wrapper decorator (PR)

  • Add global Card wrapper decorator to Storybook (PR)

  • Add Storybook stories for Slider component (PR)

  • Replace Loader2 icons with shadcn Spinner component in stories (PR)

  • Replace HeadlessUI field components with shadcn Field (PR)

  • Add Popover Storybook stories with alignment variants and form example (PR)

  • Add ButtonGroup Storybook stories (PR)