feat/GRO-2319-live-statusbadge-palette
- StatusBadge normalizes underscore status keys (no_show → no-show) so a DB-sourced no_show appointment renders the styled "No-show" badge instead of a raw gray label (item 1). - deriveDisplayStatus derives a Pending badge for an upcoming appointment whose confirmationStatus is pending, and Waitlisted for synthetic waitlist entries (item 2, CMPO-approved on GRO-2326/GRO-2328). - AppointmentCard renders waitlist-backed entries with a muted dashed-border card + "You're on the waitlist…" subtext, and hides the confirm/notes/ reschedule/cancel actions (a waitlist entry is not a booked appointment). - Tests for normalizeStatusKey, deriveDisplayStatus, and the No-show badge. - UAT_PLAYBOOK.md §5.12f added for the now-live palette states. Co-Authored-By: Paperclip <noreply@paperclip.ing>
web
GroomBook web app (extracted from groombook/app monorepo)
Description
Languages
TypeScript
99.5%
CSS
0.3%