Status Component Group
openstatus/status-component-groupFreeBlock
Collapsible group wrapper for status components
Install it
npx shadcn@latest add https://openstatus.dev/r/status-component-group.jsonSource
1"use client";23import {4 StatusComponentIcon,5 StatusComponentStatus,6} from "@/components/blocks/status-component";7import type { StatusType } from "@/components/blocks/status.types";8import {9 Collapsible,10 CollapsibleContent,11 CollapsibleTrigger,12} from "@/components/ui/collapsible";13import { cn } from "@/lib/utils";14import { useEffect, useState } from "react";1516/**17 * StatusComponentGroup - Collapsible group for organizing related monitors18 *19 * A collapsible container component for grouping related StatusComponent items,20 * displaying an aggregate status for the group. The component shows:21 * - Group title22 * - Aggregate status label (e.g., "Operational", "Degraded")23 * - Status icon with appropriate color24 * - Expandable/collapsible content area for grouped monitors25 *26 * **Key Features**:27 * - **Collapsible**: Click to expand/collapse grouped monitors28 * - **Hydration-Aware Animations**: Prevents layout shift on initial render by delaying29 * animations until after mount (avoids animation flash when defaultOpen=true)30 * - **Aggregate Status**: Shows overall status for the entire group31 * - **Keyboard Accessible**: Full keyboard support via Radix UI Collapsible32 * - **Hover Effects**: Subtle border and background changes on hover/open33 *34 * The component uses a hydration-aware animation pattern: animations are disabled35 * on the server and first client render, then enabled after mount. This prevents36 * layout shifts when `defaultOpen={true}` is used.37 *38 * @param title - The group name/title39 * @param status - The aggregate status type for the group (controls icon color and status label)40 * @param defaultOpen - Whether the group starts expanded (default: false)41 * @param children - StatusComponent items or other content to display when expanded42 *43 * @example44 * // Basic collapsible group with multiple monitors45 * ```tsx46 * <StatusComponentGroup47 * title="API Services"48 * status="success"49 * defaultOpen={false}50 * >51 * <StatusComponent variant="success">52 * <StatusComponentHeader>53 * <StatusComponentHeaderLeft>54 * <StatusComponentIcon />55 * <StatusComponentTitle>REST API</StatusComponentTitle>56 * </StatusComponentHeaderLeft>57 * </StatusComponentHeader>58 * </StatusComponent>59 * <StatusComponent variant="success">60 * <StatusComponentHeader>61 * <StatusComponentHeaderLeft>62 * <StatusComponentIcon />63 * <StatusComponentTitle>GraphQL API</StatusComponentTitle>64// … truncated
What it pulls in
Other registry items
Files it writes
More from openstatus
All 26 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Status Bannerstatus-banner | openstatus | Blocks | Free | no deps | |
| Status Barstatus-bar | openstatus | Blocks | Free | 1 dep | |
| Status Blank Statesstatus-blank | openstatus | Blocks | Free | no deps | |
| Status Calendarstatus-calendar | openstatus | Blocks | Free | 3 deps | |
| Status Page Chromestatus-chrome | openstatus | Blocks | Free | no deps | |
| Status Page (Complete)status-complete | openstatus | Blocks | Free | no deps | |
| Status Componentstatus-component | openstatus | Blocks | Free | 2 deps | |
| Status Page (Essentials)status-essentials | openstatus | Blocks | Free | no deps |
