) {
);
}
+/** Title heading for the card */
function CardTitle({ className, ...props }: React.ComponentProps<"div">) {
return (
) {
);
}
+/** Descriptive text providing context for the card */
function CardDescription({ className, ...props }: React.ComponentProps<"div">) {
return (
) {
);
}
+/** Action buttons or controls positioned in the card header */
function CardAction({ className, ...props }: React.ComponentProps<"div">) {
return (
) {
);
}
+/** Main content area of the card */
function CardContent({ className, ...props }: React.ComponentProps<"div">) {
return (
) {
);
}
+/** Footer section for additional actions or information */
function CardFooter({ className, ...props }: React.ComponentProps<"div">) {
return (
) {
const { carouselRef, orientation } = useCarousel();
@@ -151,6 +153,7 @@ function CarouselContent({ className, ...props }: React.ComponentProps<"div">) {
);
}
+/** Individual slide within the carousel */
function CarouselItem({ className, ...props }: React.ComponentProps<"div">) {
const { orientation } = useCarousel();
@@ -169,6 +172,7 @@ function CarouselItem({ className, ...props }: React.ComponentProps<"div">) {
);
}
+/** Button to navigate to the previous carousel slide */
function CarouselPrevious({
className,
variant = "outline",
@@ -199,6 +203,7 @@ function CarouselPrevious({
);
}
+/** Button to navigate to the next carousel slide */
function CarouselNext({
className,
variant = "outline",
diff --git a/packages/appkit-ui/src/react/ui/chart.tsx b/packages/appkit-ui/src/react/ui/chart.tsx
index 3c690007..1291abf2 100644
--- a/packages/appkit-ui/src/react/ui/chart.tsx
+++ b/packages/appkit-ui/src/react/ui/chart.tsx
@@ -34,6 +34,7 @@ function useChart() {
return context;
}
+/** Container for rendering data visualizations using Recharts */
function ChartContainer({
id,
className,
diff --git a/packages/appkit-ui/src/react/ui/checkbox.tsx b/packages/appkit-ui/src/react/ui/checkbox.tsx
index 99072b86..681c1850 100644
--- a/packages/appkit-ui/src/react/ui/checkbox.tsx
+++ b/packages/appkit-ui/src/react/ui/checkbox.tsx
@@ -6,6 +6,7 @@ import { CheckIcon } from "lucide-react";
import { cn } from "../lib/utils";
+/** Checkbox input for selecting multiple options */
function Checkbox({
className,
...props
diff --git a/packages/appkit-ui/src/react/ui/collapsible.tsx b/packages/appkit-ui/src/react/ui/collapsible.tsx
index 849e7b66..c3fb2703 100644
--- a/packages/appkit-ui/src/react/ui/collapsible.tsx
+++ b/packages/appkit-ui/src/react/ui/collapsible.tsx
@@ -1,11 +1,13 @@
import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
+/** Interactive component that expands and collapses content */
function Collapsible({
...props
}: React.ComponentProps) {
return ;
}
+/** Button that toggles the collapsible content visibility */
function CollapsibleTrigger({
...props
}: React.ComponentProps) {
@@ -17,6 +19,7 @@ function CollapsibleTrigger({
);
}
+/** Content area that can be expanded or collapsed */
function CollapsibleContent({
...props
}: React.ComponentProps) {
diff --git a/packages/appkit-ui/src/react/ui/command.tsx b/packages/appkit-ui/src/react/ui/command.tsx
index c0cea41d..93f50be3 100644
--- a/packages/appkit-ui/src/react/ui/command.tsx
+++ b/packages/appkit-ui/src/react/ui/command.tsx
@@ -11,6 +11,7 @@ import {
DialogTitle,
} from "./dialog";
+/** Command palette for keyboard-driven navigation and actions */
function Command({
className,
...props
@@ -27,6 +28,7 @@ function Command({
);
}
+/** Dialog wrapper for the command palette */
function CommandDialog({
title = "Command Palette",
description = "Search for a command to run...",
@@ -58,6 +60,7 @@ function CommandDialog({
);
}
+/** Search input field for filtering command items */
function CommandInput({
className,
...props
@@ -80,6 +83,7 @@ function CommandInput({
);
}
+/** Scrollable list container for command items */
function CommandList({
className,
...props
@@ -96,6 +100,7 @@ function CommandList({
);
}
+/** Empty state displayed when no commands match the search */
function CommandEmpty({
...props
}: React.ComponentProps) {
@@ -108,6 +113,7 @@ function CommandEmpty({
);
}
+/** Group of related command items with an optional heading */
function CommandGroup({
className,
...props
@@ -124,6 +130,7 @@ function CommandGroup({
);
}
+/** Visual separator between command groups */
function CommandSeparator({
className,
...props
@@ -137,6 +144,7 @@ function CommandSeparator({
);
}
+/** Individual selectable command item */
function CommandItem({
className,
...props
@@ -153,6 +161,7 @@ function CommandItem({
);
}
+/** Keyboard shortcut indicator displayed next to command items */
function CommandShortcut({
className,
...props
diff --git a/packages/appkit-ui/src/react/ui/context-menu.tsx b/packages/appkit-ui/src/react/ui/context-menu.tsx
index e7e88387..f20a1246 100644
--- a/packages/appkit-ui/src/react/ui/context-menu.tsx
+++ b/packages/appkit-ui/src/react/ui/context-menu.tsx
@@ -7,6 +7,7 @@ import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
import { cn } from "../lib/utils";
import { useResolvedPortalContainer } from "../portal-container-context";
+/** Menu triggered by right-clicking an element */
function ContextMenu({
...props
}: React.ComponentProps) {
diff --git a/packages/appkit-ui/src/react/ui/dialog.tsx b/packages/appkit-ui/src/react/ui/dialog.tsx
index ed5fe0eb..f346bbdd 100644
--- a/packages/appkit-ui/src/react/ui/dialog.tsx
+++ b/packages/appkit-ui/src/react/ui/dialog.tsx
@@ -5,18 +5,21 @@ import { XIcon } from "lucide-react";
import { cn } from "../lib/utils";
import { useResolvedPortalContainer } from "../portal-container-context";
+/** Modal dialog that overlays the page content */
function Dialog({
...props
}: React.ComponentProps) {
return ;
}
+/** Button that opens the dialog */
function DialogTrigger({
...props
}: React.ComponentProps) {
return ;
}
+/** Portal container for dialog content */
function DialogPortal({
container,
...props
@@ -30,12 +33,14 @@ function DialogPortal({
);
}
+/** Button that closes the dialog */
function DialogClose({
...props
}: React.ComponentProps) {
return ;
}
+/** Dimmed overlay behind the dialog */
function DialogOverlay({
className,
...props
@@ -52,6 +57,7 @@ function DialogOverlay({
);
}
+/** Main content area of the dialog */
function DialogContent({
className,
children,
@@ -86,6 +92,7 @@ function DialogContent({
);
}
+/** Header section of the dialog */
function DialogHeader({ className, ...props }: React.ComponentProps<"div">) {
return (
) {
);
}
+/** Footer section of the dialog */
function DialogFooter({ className, ...props }: React.ComponentProps<"div">) {
return (
) {
);
}
+/** Title text for the dialog */
function DialogTitle({
className,
...props
@@ -122,6 +131,7 @@ function DialogTitle({
);
}
+/** Description text for the dialog */
function DialogDescription({
className,
...props
diff --git a/packages/appkit-ui/src/react/ui/drawer.tsx b/packages/appkit-ui/src/react/ui/drawer.tsx
index e7b17b2f..357dc6cc 100644
--- a/packages/appkit-ui/src/react/ui/drawer.tsx
+++ b/packages/appkit-ui/src/react/ui/drawer.tsx
@@ -6,18 +6,21 @@ import { Drawer as DrawerPrimitive } from "vaul";
import { cn } from "../lib/utils";
import { useResolvedPortalContainer } from "../portal-container-context";
+/** Draggable panel that slides in from screen edges */
function Drawer({
...props
}: React.ComponentProps) {
return ;
}
+/** Button that opens the drawer */
function DrawerTrigger({
...props
}: React.ComponentProps) {
return ;
}
+/** Portal container for drawer content */
function DrawerPortal({
container,
...props
@@ -31,12 +34,14 @@ function DrawerPortal({
);
}
+/** Button that closes the drawer */
function DrawerClose({
...props
}: React.ComponentProps) {
return ;
}
+/** Dimmed overlay behind the drawer */
function DrawerOverlay({
className,
...props
@@ -53,6 +58,7 @@ function DrawerOverlay({
);
}
+/** Main content area of the drawer */
function DrawerContent({
className,
children,
@@ -80,6 +86,7 @@ function DrawerContent({
);
}
+/** Header section of the drawer */
function DrawerHeader({ className, ...props }: React.ComponentProps<"div">) {
return (
) {
);
}
+/** Footer section of the drawer */
function DrawerFooter({ className, ...props }: React.ComponentProps<"div">) {
return (
) {
);
}
+/** Title text for the drawer */
function DrawerTitle({
className,
...props
@@ -116,6 +125,7 @@ function DrawerTitle({
);
}
+/** Description text for the drawer */
function DrawerDescription({
className,
...props
diff --git a/packages/appkit-ui/src/react/ui/dropdown-menu.tsx b/packages/appkit-ui/src/react/ui/dropdown-menu.tsx
index 97c1293a..26a7753f 100644
--- a/packages/appkit-ui/src/react/ui/dropdown-menu.tsx
+++ b/packages/appkit-ui/src/react/ui/dropdown-menu.tsx
@@ -5,6 +5,7 @@ import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
import { cn } from "../lib/utils";
import { useResolvedPortalContainer } from "../portal-container-context";
+/** Menu that displays when triggered by a button or element */
function DropdownMenu({
...props
}: React.ComponentProps) {
diff --git a/packages/appkit-ui/src/react/ui/empty.tsx b/packages/appkit-ui/src/react/ui/empty.tsx
index a061adae..b8a578a5 100644
--- a/packages/appkit-ui/src/react/ui/empty.tsx
+++ b/packages/appkit-ui/src/react/ui/empty.tsx
@@ -2,6 +2,7 @@ import { cva, type VariantProps } from "class-variance-authority";
import { cn } from "../lib/utils";
+/** Empty state component for displaying no-data scenarios */
function Empty({ className, ...props }: React.ComponentProps<"div">) {
return (