BlockDex

Components

Registries

Free blocks

Method

BlockDex

Components

Registries

Free blocks

Method

Open API

BlockDex

Components

Registries

Free blocks

Method

Open API

Components/openstatus/status-component-group

Status Component Group

openstatus/status-component-group
FreeBlock

Collapsible group wrapper for status components

Install it

npx shadcn@latest add https://openstatus.dev/r/status-component-group.json

Source

src/components/blocks/status-component-group.tsxopenstatus.dev/r/status-component-group.json · first 6 KB
1"use client";
2
3import {
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";
15
16/**
17 * StatusComponentGroup - Collapsible group for organizing related monitors
18 *
19 * A collapsible container component for grouping related StatusComponent items,
20 * displaying an aggregate status for the group. The component shows:
21 * - Group title
22 * - Aggregate status label (e.g., "Operational", "Degraded")
23 * - Status icon with appropriate color
24 * - Expandable/collapsible content area for grouped monitors
25 *
26 * **Key Features**:
27 * - **Collapsible**: Click to expand/collapse grouped monitors
28 * - **Hydration-Aware Animations**: Prevents layout shift on initial render by delaying
29 * animations until after mount (avoids animation flash when defaultOpen=true)
30 * - **Aggregate Status**: Shows overall status for the entire group
31 * - **Keyboard Accessible**: Full keyboard support via Radix UI Collapsible
32 * - **Hover Effects**: Subtle border and background changes on hover/open
33 *
34 * The component uses a hydration-aware animation pattern: animations are disabled
35 * on the server and first client render, then enabled after mount. This prevents
36 * layout shifts when `defaultOpen={true}` is used.
37 *
38 * @param title - The group name/title
39 * @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 expanded
42 *
43 * @example
44 * // Basic collapsible group with multiple monitors
45 * ```tsx
46 * <StatusComponentGroup
47 * 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

  • https://openstatus.dev/r/status-component.json
  • https://openstatus.dev/r/status-types.json
  • collapsible

Files it writes

  • src/components/blocks/status-component-group.tsx

Facts

Registry
openstatus
Type
registry:block
Access
Free
Files written
1
Licence
AGPL-3.0
First indexed
2026-08-01
Last confirmed
yesterday

Go to the source

openstatus.dev openstatusHQ/openstatus on GitHub Raw registry item This item as JSON

More from openstatus

All 26 items
Same registry, same kind — the ones you would have found next
ComponentRegistryKindAccessInstallsCommand
Status Bannerstatus-banneropenstatusBlocksFreeno deps
Status Barstatus-baropenstatusBlocksFree1 dep
Status Blank Statesstatus-blankopenstatusBlocksFreeno deps
Status Calendarstatus-calendaropenstatusBlocksFree3 deps
Status Page Chromestatus-chromeopenstatusBlocksFreeno deps
Status Page (Complete)status-completeopenstatusBlocksFreeno deps
Status Componentstatus-componentopenstatusBlocksFree2 deps
Status Page (Essentials)status-essentialsopenstatusBlocksFreeno deps
BlockDex

Built by

Kynth Studio

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex

BlockDex

Built by

Kynth Studio

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex

BlockDex

Built by

Kynth Studio

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex