Use the `actions` prop on `LayerCard.Secondary` to add buttons or menus.
+
+
+
+
+Comparison: With and Without Actions
+
+
+
+
+View Filter (Alternative to Tabs)
+
+ Instead of cramming tabs into the header, use a dropdown with radio items to
+ switch views. This pattern scales better and maintains consistent header
+ height.
+
+
+
+
+
{/* API Reference */}
diff --git a/packages/kumo/src/components/layer-card/index.ts b/packages/kumo/src/components/layer-card/index.ts
index ed0effa4b3..e62ce59592 100644
--- a/packages/kumo/src/components/layer-card/index.ts
+++ b/packages/kumo/src/components/layer-card/index.ts
@@ -1 +1,6 @@
-export { LayerCard } from "./layer-card";
+export {
+ LayerCard,
+ type LayerCardSecondaryProps,
+ type LayerCardActionProps,
+ type LayerCardActionRenderProps,
+} from "./layer-card";
diff --git a/packages/kumo/src/components/layer-card/layer-card.tsx b/packages/kumo/src/components/layer-card/layer-card.tsx
index 7e401cdcf9..8cc9165264 100644
--- a/packages/kumo/src/components/layer-card/layer-card.tsx
+++ b/packages/kumo/src/components/layer-card/layer-card.tsx
@@ -1,5 +1,12 @@
-import type { FC, PropsWithChildren } from "react";
+import {
+ forwardRef,
+ type FC,
+ type PropsWithChildren,
+ type ReactNode,
+} from "react";
import { cn } from "../../utils/cn";
+import { Button, buttonVariants } from "../button";
+import type { Icon } from "@phosphor-icons/react";
/** LayerCard variant definitions (currently empty, reserved for future additions). */
export const KUMO_LAYER_CARD_VARIANTS = {
@@ -36,6 +43,18 @@ export type LayerCardProps = PropsWithChildren<
}
>;
+/**
+ * LayerCard.Secondary props with optional actions slot.
+ */
+export type LayerCardSecondaryProps = PropsWithChildren<
+ KumoLayerCardVariantsProps & {
+ /** Additional CSS classes merged via `cn()`. */
+ className?: string;
+ /** Actions to display on the right side of the header (e.g., buttons, menus) */
+ actions?: ReactNode;
+ }
+>;
+
/**
* Elevated card with primary/secondary content layers for dashboard widgets.
*
@@ -46,20 +65,43 @@ export type LayerCardProps = PropsWithChildren<
* Quick start guide
*
* ```
+ *
+ * @example With actions
+ * ```tsx
+ *
+ *
+ *
+ *
+ * }
+ * >
+ * Domains
+ *
+ * example.com
+ *
+ * ```
*/
function LayerCardRoot({ children, className }: LayerCardProps) {
return