Import
All components are available from a single import:Component Reference
Dialogs
AlertDialog
Accessible alert dialog for confirmations and destructive actions.AlertDialog, AlertDialogPortal, AlertDialogOverlay, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, AlertDialogTitle, AlertDialogDescription, AlertDialogAction, AlertDialogCancel
Dialog
General-purpose modal dialog.Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger
Forms
Input
Single-line text input.Textarea
Multi-line text input.Select
Dropdown select menu.Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue
Combobox
Searchable single-select. Prefer this overSelect when there are many options — the list filters as you type and scrolls natively.
options ({ value, label }[]), value, onValueChange, placeholder, searchPlaceholder, emptyText, loading, loadingText, disabled, triggerClassName, contentClassName, align, onOpenChange. Pass loading while options are being fetched to avoid a flickering empty state.
RadioGroup
Radio button group for mutually exclusive choices.Slider
Range slider for numeric values.Switch
Toggle switch for boolean settings.Layout
Card
Elevated container for grouping related content.Separator
Horizontal or vertical visual divider.Tabs
Tabbed content panels.Popover
Floating panel anchored to a trigger. Use it for lightweight overlays (filters, pickers, info panels); for modal flows useDialog. It’s the primitive behind Combobox.
Popover, PopoverTrigger, PopoverAnchor, PopoverContent
Feedback
Badge
Inline status label or tag.Button
Primary interactive element.Tooltip
Non-interactive contextual hint.Icons
Import icons directly fromlucide-react — they’re tree-shaken, so only the icons you use land in your bundle:
lucide-react’s own React imports resolve to the same instance — no two-React crashes, no bundle duplication.
Earlier SDK versions exposed
STRATOS_ICONS (a re-export of lucide’s full icons object) for dynamic name→component lookup. That export is still available but deprecated. For static imports, use lucide-react directly. For genuinely dynamic lookup (e.g. icon names from a remote config), import { icons } from "lucide-react" gets you the same registry at the cost of bundling the full set (~60 KB gzipped) into your plugin — prefer a curated static map when you can.Styling Notes
All components use the shell’s Tailwind theme tokens automatically. Dark mode is handled for you — use semantic class names likebg-card, text-muted-foreground, and border rather than hardcoded colours: