Import
import {
cva,
generateTokenCSS,
getDocumentNonce,
getFileTypeLabel,
useAdapter,
useColorModeOptional,
} from "veryfront/ui";
Examples
Compose primitives
import { Button, Card, CardContent, CardHeader } from "veryfront/ui";
export function Panel() {
return (
<Card>
<CardHeader>Settings</CardHeader>
<CardContent>
<Button onClick={() => save()}>Save</Button>
</CardContent>
</Card>
);
}
Light/dark mode
import { ColorModeProvider, ColorModeToggle } from "veryfront/ui";
export default function App({ children }: { children: React.ReactNode }) {
return (
<ColorModeProvider>
<ColorModeToggle />
{children}
</ColorModeProvider>
);
}
Exports
Components
| Name | Description | Source |
|---|---|---|
Accordion | Render a set of togglable sections. | source |
AccordionContent | The section body: retained in the DOM and hidden while its section is closed. | source |
AccordionItem | A single togglable section. Its open/collapse MECHANICS come from the active adapter’s disclosure slot (controlled by the Accordion’s single/multiple coordination), so an engine swap drives every item’s collapse while the Accordion keeps owning which sections may be open. | source |
AccordionTrigger | The clickable header that toggles its section (via the disclosure slot). | source |
Alert | source | |
AlertAction | Trailing action slot for <Alert> (button or link). | source |
AlertContent | Message body for <Alert>. | source |
AlertIcon | Leading icon slot for <Alert> (size-4 recommended). | source |
AppShell | Compound AppShell. Compose: | source |
Avatar | Render a user / agent / entity avatar. | source |
Badge | Render a badge. | source |
Button | Render an action button. | source |
Card | A flat card surface (Studio Card). | source |
CardContent | Card body region - vertical stack. | source |
CardHeader | Card header row - a flex row (Studio composes these inline). | source |
Checkbox | A checkbox with an overlaid check indicator. | source |
CheckboxField | A checkbox paired with a clickable label and optional description. | source |
CheckboxGroup | Vertical group of checkboxes. | source |
CodeBlock | Render escaped source or delegate to explicit syntax/diagram capabilities. | source |
CodeBlockRendererProvider | Provide extension-owned syntax and diagram renderers to a React subtree. | source |
Collapsible | Collapsible root whose open-state mechanics come from the active adapter. Public parts register their realized IDs through context, so opaque wrappers and multiple triggers retain unique DOM IDs and synchronized ARIA references without inspecting or rewriting the consumer’s React tree. Supply root triggerId and contentId values when the same relationships must be present in static SSR output, before refs can register rendered parts. | source |
CollapsibleContent | Collapsible content retained in the DOM and hidden while closed. | source |
CollapsibleTrigger | Toggle through the active disclosure adapter. asChild composes onto one child. | source |
ColorModeProvider | source | |
ColorModeScript | Inline script to prevent flash of wrong color mode on SSR. Render this in <head> before any content. | source |
ColorModeToggle | Simple toggle button for color mode. | source |
Command | Command root - owns the filter query and item registry. | source |
CommandDialog | A Command palette inside a modal Dialog overlay. | source |
CommandEmpty | Shown when the query matches no items. | source |
CommandGroup | A labelled group of items; auto-hides when all its items are filtered out. | source |
CommandInput | Search input row - bound to the command’s filter query. | source |
CommandItem | A selectable, filterable result row nested within CommandList. | source |
CommandItemContent | Flex column wrapper for an item’s title + description. | source |
CommandItemDescription | Item secondary text. | source |
CommandItemTitle | Item primary text. | source |
CommandList | The root’s single scrollable results list. | source |
CommandSeparator | Divider between groups. | source |
CommandShortcut | Trailing shortcut / metadata text. | source |
DesignTokenStyle | Scoped design-token stylesheet. Idempotent - render it anywhere. | source |
Dialog | Dialog root - owns open state. | source |
DialogAction | Recommended action button (primary, default size). | source |
DialogBody | Scrollable body area with a bottom edge-fade. | source |
DialogCancel | Alternate button (secondary, default size) that closes the dialog. | source |
DialogClose | Closes the dialog. asChild merges onto the child element. | source |
DialogContent | Modal surface - overlay + centered panel, rendered while open. | source |
DialogDescription | Dialog description - body text, left-aligned. | source |
DialogFooter | Sticky footer row - action left, cancel right. | source |
DialogForm | Layout-neutral <form> shell (display: contents) wrapping header/body/footer. | source |
DialogHeader | Left-aligned title + description block. | source |
DialogTitle | Dialog title - Studio Heading level 2 (20px). Semibold so Inter reads at Studio’s medium-on-Söhne weight (workbench heading convention). | source |
DialogTrigger | Trigger - opens the dialog. asChild merges onto the child element. | source |
Drawer | Drawer root - owns open state. | source |
DrawerBody | Scrollable body area. | source |
DrawerClose | Closes the drawer. asChild merges onto the child element. | source |
DrawerContent | Bottom sheet - overlay + sliding surface with a drag handle. | source |
DrawerFooter | Sticky footer, full-width stacked actions. | source |
DrawerHeader | Header column wrapper. | source |
DrawerTitle | Drawer title - 18px medium (Studio Heading-ish). Add sr-only to hide. | source |
DrawerTrigger | Trigger - opens the drawer. asChild merges onto the child element. | source |
DropdownMenu | DropdownMenu root - owns open state and the positioning anchor. | source |
DropdownMenuContent | Menu surface - rendered below the trigger while open. No border (Studio). | source |
DropdownMenuGroup | Groups related items with a tight inner gap (Studio: gap-px p-0.5). | source |
DropdownMenuItem | A selectable menu item. Icons render at size-3.5 (14px). | source |
DropdownMenuItemMeta | Trailing metadata text - keyboard shortcuts, counts, badges. | source |
DropdownMenuLabel | Non-interactive section label - full-strength foreground (Studio). | source |
DropdownMenuSeparator | Full-width divider between groups (Studio: -mx-2.5 my-2). | source |
DropdownMenuTrigger | source | |
FileType | Soft-fill badge - rounded square, tinted background, extension label. | source |
FileTypeThumb | Solid-fill thumbnail - full-saturation square with white .ext text. | source |
IconButton | Render an icon-only button with a hover tooltip. | source |
Input | Render a text input. | source |
Label | Render a form label. | source |
List | Vertical list container. | source |
ListItem | A single list row. | source |
ListLabel | Section heading - uppercase, faint. Use for date groups etc. | source |
LoadingButton | Button that pulses subtly while pending and blocks double-submits. | source |
Pill | Render a selection-trigger pill. | source |
Popover | Popover root - owns open state and the positioning anchor. | source |
PopoverActions | Right-aligned button row, for use inside a footer. | source |
PopoverBody | Body content region (Studio: px-5 last:pb-5 flex flex-col gap-4). | source |
PopoverContent | Popover surface - rendered below the trigger while open. | source |
PopoverFooter | Footer region; pass bordered for a top divider (Studio). | source |
PopoverHeader | Small section label inside a popover (Studio: Heading level 5). | source |
PopoverTitle | Primary heading slot at the top of a popover (Studio: Heading level 4). | source |
PopoverTrigger | source | |
ProgressBar | Render a progress track. | source |
Radio | A single radio input. | source |
RadioField | A radio paired with a clickable label and optional description. | source |
RadioGroup | Vertical group of radios. | source |
ScrollFade | A scroll container with auto edge-fade affordances. | source |
Select | Select root - owns the selected value, disclosure state, and option registry. | source |
SelectContent | Listbox surface - rendered below the trigger while open. | source |
SelectGroup | Groups related options. Add one SelectLabel or an explicit accessible name. | source |
SelectItem | A selectable option nested within the root’s single SelectContent. | source |
SelectLabel | Non-interactive label; labels its nearest SelectGroup when present. | source |
SelectSeparator | Divider between option groups. | source |
SelectTrigger | Trigger - keeps focus while controlling and navigating the listbox. | source |
SelectValue | Displays custom children, the selected label, or a placeholder. | source |
Shimmer | Render shimmering text. | source |
Skeleton | Render an animated placeholder bar. | source |
Slot | Render Slot - merge props onto its single child element. | source |
Status | Render a status dot + label. | source |
Switch | A toggle switch. | source |
SwitchField | A switch with a label + optional description, label-left / switch-right. | source |
Tabs | Tablist container - manages active state and passes context to items. | source |
TabsItem | Individual tab - renders as a button, or an anchor when href is set. Forwards native props/ref and composes the caller’s onClick with the internal selection (caller’s runs first, then the tab activates), so a consumer-supplied handler adds to - never overrides - selection. | source |
Tag | Static metadata chip. | source |
TagButton | Tag rendered as a button. | source |
TagGroup | Wrapping container for a row of tags. | source |
TagLink | Tag rendered as an external link. | source |
Textarea | Render a textarea. | source |
Toast | A single toast surface. Renders as a live region and arms an auto-dismiss timer that calls onClose after duration. Compose ToastTitle, ToastDescription and ToastClose inside it. | source |
ToastClose | Manual close button for <Toast> (renders an ✕ glyph when given no children). | source |
ToastDescription | Secondary supporting line for <Toast>. | source |
Toaster | Render the active adapter’s viewport for <ToastProvider viewport="manual">. | source |
ToastProvider | Holds the toast queue (via the active adapter: builtin by default) and mounts the viewport. Wrap the part of the app that needs notifications. | source |
ToastTitle | Heading line for <Toast>. | source |
ToastViewport | Render the active adapter’s viewport for <ToastProvider viewport="manual">. | source |
ToggleGroup | Render a group of toggles with shared selection (via the adapter engine). | source |
ToggleGroupItem | A single toggle within a ToggleGroup. | source |
Toolbar | A container that groups controls behind one tab stop with roving focus. The roving MECHANICS come from the active adapter’s toolbar slot (useAdapter().toolbar): builtin by default, swappable via UIAdapterProvider. | source |
ToolbarButton | A ghost icon button that participates in the toolbar’s roving focus. | source |
ToolbarLink | An anchor styled like a ToolbarButton that joins the roving focus. | source |
ToolbarSeparator | A thin rule dividing groups of items within a toolbar. | source |
Tooltip | Tooltip root that owns trigger interaction, IDs, and dismissal state. | source |
TooltipContent | Tooltip content, portalled and collision-positioned against its trigger. | source |
TooltipProvider | Provide a shared opening delay. The default is 700 ms and values are clamped to 0-5000 ms. | source |
TooltipTrigger | Tooltip trigger. The default span is keyboard-focusable; asChild merges behavior onto one child element and retains that element’s focus contract. | source |
UIAdapterProvider | Provide (a partial) UI-primitive adapter to the subtree. | source |
Functions
| Name | Description | Source |
|---|---|---|
cva | Build a class-name function from a base plus a variants config. | source |
generateTokenCSS | Generates the scoped CSS for the design tokens. Every rule matches BOTH the canonical [data-vf-ui] scope and the [data-vf-chat] compat alias, so tokens don’t leak to the page and existing consumers keep working. | source |
getDocumentNonce | Reuse the response-scoped CSP nonce for framework-owned inline elements. During SSR it comes from the isolated render context; in the browser it is recovered from a framework-generated element during hydration and SPA updates. | source |
getFileTypeLabel | Human label for a file extension, falling back to the media type. | source |
useAdapter | Resolve the active UI-primitive adapter. Never returns null (defaults to builtin). | source |
useColorModeOptional | Non-throwing variant - returns null when there is no ColorModeProvider. Use for components that should render standalone (e.g. a CodeBlock dropped into markdown) and fall back to light mode. | source |
useDocumentNonce | Read the nonce from the Suspense-safe server provider or the browser DOM. | source |
useToast | Returns { toast, dismiss }. Call toast(options) to enqueue (returns the new id), toast.custom((id) => node) for a fully custom toast, and dismiss(id) to remove one early. Must be used within a ToastProvider. | source |
Types
| Name | Description | Source |
|---|---|---|
AccordionContentProps | Props accepted by <AccordionContent>. | source |
AccordionItemProps | Props accepted by <AccordionItem>. | source |
AccordionProps | source | |
AccordionTriggerProps | Props accepted by <AccordionTrigger>. | source |
AlertProps | Props accepted by <Alert>. | source |
AppShellHeaderProps | Props accepted by AppShellHeader. | source |
AppShellOpenState | Per-side visibility map. | source |
AppShellProps | Props accepted by AppShell. | source |
AppShellSide | Which edge a sidebar docks to. | source |
AppShellSidebarProps | Props accepted by AppShellSidebar. | source |
AppShellTriggerProps | Props accepted by AppShellTrigger. | source |
AvatarProps | Props accepted by <Avatar>. | source |
BadgeProps | Props accepted by <Badge>. | source |
ButtonProps | Props accepted by <Button>. | source |
CardProps | Props accepted by <Card>. | source |
CheckboxFieldProps | Props accepted by <CheckboxField>. | source |
CheckboxProps | Props accepted by <Checkbox>. | source |
CodeBlockMode | Light/dark presentation mode forwarded to extension-owned renderers. | source |
CodeBlockProps | Props accepted by <CodeBlock>. | source |
CodeBlockRendererProviderProps | Props accepted by CodeBlockRendererProvider. | source |
CodeBlockRenderers | Optional rich rendering capabilities supplied outside core. | source |
CodeDiagramRendererProps | Framework-neutral input for an extension-owned diagram renderer. | source |
CodeSyntaxRendererProps | Framework-neutral input for an extension-owned syntax renderer. | source |
CollapsibleProps | Props accepted by <Collapsible>. | source |
ColorModeProviderProps | source | |
CommandDialogProps | Props accepted by <CommandDialog>. | source |
CommandInputProps | Props accepted by <CommandInput>. | source |
CommandItemProps | Props accepted by <CommandItem>. | source |
DialogActionProps | Props accepted by <DialogAction>. | source |
DialogProps | Props accepted by <Dialog>. | source |
DisclosureParts | Role-tagged slots an adapter provides for a single open/close disclosure (the Collapsible primitive; Accordion composes one disclosure per item). The archetype is the overlay disclosure minus the portal/positioning: one or more triggers toggle a region whose node remains mounted and is hidden while closed. Public Collapsible parts coordinate their realized IDs without inspecting the consumer’s React tree, then pass synchronized aria-controls and aria-labelledby props through these slots. Adapters must preserve those explicit relationships while supplying their own defaults for direct slot use. | source |
DisclosureProps | Normalized disclosure state shared by every overlay primitive. Matches useDisclosure exactly; adapters drop any engine-specific extras (e.g. Base UI’s 2nd eventDetails arg on onOpenChange). | source |
DrawerProps | Props accepted by <Drawer>. | source |
DropdownMenuContentProps | Props accepted by <DropdownMenuContent>. | source |
DropdownMenuItemProps | Backward-compatible props accepted by <DropdownMenuItem>. | source |
DropdownMenuProps | Props accepted by <DropdownMenu>. | source |
DropdownMenuSlottedItemProps | Slotted-element props accepted by <DropdownMenuItem>. | source |
DropdownMenuSlottedTriggerProps | Literal slotted trigger contract with an element-specific ref. | source |
DropdownMenuTriggerProps | Trigger - toggles the menu; the positioning anchor. asChild merges onto the child element, which must forward ref to its DOM node. | source |
FileTypeProps | Props accepted by <FileType> / <FileTypeThumb>. | source |
IconButtonProps | Props accepted by <IconButton>. | source |
InputProps | Props accepted by <Input>. | source |
LabelProps | Props accepted by <Label>. | source |
ListItemProps | Props accepted by ListItem. Standalone clickable rows receive button semantics and keyboard activation by default. Rows with a trailing action should use onActivate so both controls have native, sibling semantics. | source |
ListLabelProps | Props accepted by ListLabel. | source |
ListProps | Props accepted by List. | source |
PartialUIAdapter | A partial adapter map: unspecified keys fall back to builtin, so a consumer can override one primitive and leave the rest zero-dependency. This is what UIAdapterProvider accepts. | source |
PillProps | Props accepted by <Pill>. | source |
PopoverContentProps | Props accepted by <PopoverContent>. | source |
PopoverProps | Props accepted by <Popover>. | source |
PopoverSlottedTriggerProps | Literal slotted trigger contract with an element-specific ref. | source |
PopoverTriggerProps | Trigger - toggles the popover; the positioning anchor. asChild merges onto the child element, which must forward ref to its DOM node. | source |
ProgressBarProps | Props accepted by <ProgressBar>. | source |
RadioFieldProps | Props accepted by <RadioField>. | source |
RadioProps | Props accepted by <Radio>. | source |
ScrollFadeProps | Props accepted by <ScrollFade>. | source |
SelectItemProps | Props accepted by <SelectItem>. | source |
SelectProps | Props accepted by <Select>. | source |
SelectTriggerProps | Props accepted by <SelectTrigger>. | source |
ShimmerProps | Props accepted by <Shimmer>. | source |
SkeletonProps | Props accepted by <Skeleton>. | source |
SlotProps | Props accepted by <Slot>. | source |
StatusColor | Dot colour, keyed to the --status-* palette. | source |
StatusProps | Props accepted by <Status>. | source |
SwitchFieldProps | Props accepted by <SwitchField>. | source |
SwitchProps | Props accepted by <Switch>. | source |
TabsItemProps | Props accepted by <TabsItem>. | source |
TabsProps | Props accepted by <Tabs> (the tablist container). | source |
TagLinkProps | Props accepted by <TagLink>. | source |
TextareaProps | Props accepted by <Textarea>. | source |
ToastAction | A toast button: a label plus what to do when it’s pressed. | source |
ToastFn | Imperative enqueue function: call toast(options), or toast.custom(render). | source |
ToastOptions | Options accepted by toast(...) when enqueuing a notification. | source |
ToastParts | Toast is imperative (a queue + hook), not a floating surface, so its adapter slot is Provider + useToast rather than role-tagged render slots. The builtin holds a queue and mounts a viewport; a Sonner adapter would mount <Toaster/> and map useToast().toast onto Sonner’s toast(). | source |
ToastProps | Props accepted by <Toast>. | source |
ToastProviderProps | Normalized queue and viewport options every toast adapter provider accepts. | source |
ToastState | The imperative Toast API a skin part reads from inside a ToastProvider. | source |
ToastVariant | One of the cva colour schemes a toast can take. | source |
ToastViewportProps | Normalized props for an adapter-owned manual toast viewport. | source |
ToggleGroupItemProps | Props accepted by <ToggleGroupItem>. | source |
ToggleGroupParts | Role-tagged slots an adapter provides for the ToggleGroup primitive: a set of pressable items with shared single / multiple selection. The Root owns the selection state machine; the Item self-wires through the adapter’s internal context (reads its pressed state, toggles on click). The skin keeps only the visual classes; data-state="on"|"off" on each Item is the styling hook. | source |
ToggleGroupProps | Props accepted by <ToggleGroup>. | source |
ToolbarButtonProps | Props accepted by <ToolbarButton>. | source |
ToolbarLinkProps | Props accepted by <ToolbarLink>. | source |
ToolbarParts | Role-tagged slots an adapter provides for the Toolbar primitive: a role="toolbar" container sharing one tab stop, with roving-tabindex arrow-key navigation over its items. The Root owns the roving mechanics; each Item registers as a roving stop (engines rove their own item components, so the skin routes its buttons/links through Item). Separators stay pure skin. | source |
ToolbarProps | Props accepted by <Toolbar>. | source |
ToolbarSeparatorProps | Props accepted by <ToolbarSeparator>. | source |
TooltipContentProps | Props accepted by <TooltipContent>. | source |
UIAdapter | The adapter surface. Each new primitive must also be added to the explicit composition in context.tsx, which prevents undefined overrides from erasing inherited or builtin slots. | source |
VariantProps | Extracts the variant props of a cva function, like upstream’s helper. | source |
Constants
| Name | Description | Source |
|---|---|---|
badgeVariants | source | |
buttonVariants | source | |
cx | Re-export of the class joiner, matching upstream’s cx. | source |
inputVariants | source | |
labelVariants | source | |
pillVariants | source | |
selectTriggerVariants | source | |
switchTrackVariants | source | |
textareaVariants | source | |
toolbarVariants | source | |
useAppShell | source | |
useColorMode | source |
Deep imports
These import paths group focused functionality under this module. Each is a separate barrel; import only what you need.veryfront/ui/adapter
UI primitive-adapter contract (RFC 0001: bring-your-own UI primitive adapters). A behavioural primitive is split into a Skin (Tailwind / cva / [var(--token)] classes, authored once) and Mechanics (focus, dismiss, positioning, ARIA, keyboard) supplied by a swappable adapter. The contract is role-tagged component slots + normalized controlled or uncontrolled disclosure props (open, defaultOpen, onOpenChange): deliberately NOT prop-getters (those only fit React Aria’s hooks; Base UI / Ariakit invert composition via render). Every adapter: the zero-dependency builtin and any third-party engine (Base UI, Radix, React Aria): satisfies these exact shapes, so one set of skin classes works everywhere. Types only. No runtime, no engine imports: this file is safe to pull into veryfront/ui/adapter from a consumer-authored adapter.
import type {
DisclosureParts,
DisclosureProps,
MultipleToggleGroupRootProps,
} from "veryfront/ui/adapter";
Types
| Name | Description | Source |
|---|---|---|
DisclosureParts | Role-tagged slots an adapter provides for a single open/close disclosure (the Collapsible primitive; Accordion composes one disclosure per item). The archetype is the overlay disclosure minus the portal/positioning: one or more triggers toggle a region whose node remains mounted and is hidden while closed. Public Collapsible parts coordinate their realized IDs without inspecting the consumer’s React tree, then pass synchronized aria-controls and aria-labelledby props through these slots. Adapters must preserve those explicit relationships while supplying their own defaults for direct slot use. | source |
DisclosureProps | Normalized disclosure state shared by every overlay primitive. Matches useDisclosure exactly; adapters drop any engine-specific extras (e.g. Base UI’s 2nd eventDetails arg on onOpenChange). | source |
MultipleToggleGroupRootProps | Multiple-selection adapter root. | source |
PartialUIAdapter | A partial adapter map: unspecified keys fall back to builtin, so a consumer can override one primitive and leave the rest zero-dependency. This is what UIAdapterProvider accepts. | source |
SingleToggleGroupRootProps | Single-selection adapter root. | source |
ToastParts | Toast is imperative (a queue + hook), not a floating surface, so its adapter slot is Provider + useToast rather than role-tagged render slots. The builtin holds a queue and mounts a viewport; a Sonner adapter would mount <Toaster/> and map useToast().toast onto Sonner’s toast(). | source |
ToastProviderProps | Normalized queue and viewport options every toast adapter provider accepts. | source |
ToastState | The imperative Toast API a skin part reads from inside a ToastProvider. | source |
ToastViewportProps | Normalized props for an adapter-owned manual toast viewport. | source |
ToggleGroupParts | Role-tagged slots an adapter provides for the ToggleGroup primitive: a set of pressable items with shared single / multiple selection. The Root owns the selection state machine; the Item self-wires through the adapter’s internal context (reads its pressed state, toggles on click). The skin keeps only the visual classes; data-state="on"|"off" on each Item is the styling hook. | source |
ToggleGroupRootProps | Discriminated selection contract implemented by every ToggleGroup adapter. | source |
ToolbarParts | Role-tagged slots an adapter provides for the Toolbar primitive: a role="toolbar" container sharing one tab stop, with roving-tabindex arrow-key navigation over its items. The Root owns the roving mechanics; each Item registers as a roving stop (engines rove their own item components, so the skin routes its buttons/links through Item). Separators stay pure skin. | source |
UIAdapter | The adapter surface. Each new primitive must also be added to the explicit composition in context.tsx, which prevents undefined overrides from erasing inherited or builtin slots. | source |
veryfront/ui/icons
Ai - Icons
import { AlertTriangleIcon, ArrowDownIcon, ArrowRightIcon } from "veryfront/ui/icons";
Components
| Name | Description | Source |
|---|---|---|
AlertTriangleIcon | source | |
ArrowDownIcon | source | |
ArrowRightIcon | source | |
ArrowUpIcon | source | |
BrainIcon | source | |
CheckCircleIcon | source | |
CheckIcon | source | |
ChevronDownIcon | source | |
CircleIcon | source | |
ClockIcon | source | |
CodeBracketsIcon | source | |
CopyIcon | source | |
FileTextIcon | source | |
InfoIcon | source | |
MessageSquareIcon | source | |
MoreHorizontalIcon | source | |
PanelLeftIcon | source | |
PanelRightIcon | source | |
PaperclipIcon | source | |
PencilIcon | source | |
PlusIcon | source | |
RefreshCwIcon | source | |
SearchIcon | source | |
SendIcon | source | |
SparklesIcon | source | |
StopIcon | source | |
TargetIcon | source | |
TrashIcon | source | |
WrenchIcon | source | |
XCircleIcon | source | |
XIcon | source |
Types
| Name | Description | Source |
|---|---|---|
IconProps | source |