Askr documentation
Generated API snapshot

@askrjs/themes/components

Exports from the declarations published in @askrjs/themes. Signatures reflect the published artifact.

Exports

This entrypoint publishes 503 exports. Use the anchored symbol rows for direct links. Type-only exports are labeled separately from runtime values.

Accordiontype

Accordion: (props: AccordionProps) => JSX.Element

Renders a part of accordion.

AccordionContenttype

AccordionContent: { (props: AccordionContentProps): JSX.Element | null; (props: AccordionContentAsChildProps): JSX.Element | null; }

Renders the accordion-content part of accordion with role="region". Supports polymorphic rendering via asChild.

AccordionHeadertype

AccordionHeader: { (props: AccordionHeaderProps): JSX.Element; (props: AccordionHeaderAsChildProps): JSX.Element; }

Renders the accordion-header part of accordion. Supports polymorphic rendering via asChild.

AccordionItemtype

AccordionItem: (props: AccordionItemProps) => JSX.Element

Renders the accordion-item part of accordion.

AccordionTriggertype

AccordionTrigger: { (props: AccordionTriggerProps): JSX.Element; (props: AccordionTriggerAsChildProps): JSX.Element; }

Renders the accordion-trigger part of accordion. Supports polymorphic rendering via asChild.

Alerttype

Alert: (props: AlertProps) => JSX.Element

Renders an alert/status banner with an optional icon, title, description, actions, and a dismiss button. Automatically picks an "alert" or "status" ARIA role from variant unless role is set explicitly.

AlertDescriptiontype

AlertDescription: (props: CatalogComponentProps) => JSX.Element

Renders the alert-description part of the shadcn-compatible catalog primitives.

AlertDialogtype

AlertDialog: (props: AlertDialogProps) => import("@askrjs/askr/jsx-runtime").JSX.Element

Renders a part of alert-dialog.

AlertDialogActiontype

DialogClose: { (props: DialogCloseProps): JSX.Element; (props: DialogCloseAsChildProps): JSX.Element; }

Renders the dialog-close part of dialog. Supports polymorphic rendering via asChild.

AlertDialogCanceltype

DialogClose: { (props: DialogCloseProps): JSX.Element; (props: DialogCloseAsChildProps): JSX.Element; }

Renders the dialog-close part of dialog. Supports polymorphic rendering via asChild.

AlertDialogContenttype

AlertDialogContent: (props: AlertDialogContentProps | AlertDialogContentAsChildProps) => JSX.Element

Renders a part of alert-dialog. Supports polymorphic rendering via asChild.

AlertDialogDescriptiontype

DialogDescription: { (props: DialogDescriptionProps): JSX.Element; (props: DialogDescriptionAsChildProps): JSX.Element; }

Renders the dialog-description part of dialog. Supports polymorphic rendering via asChild.

AlertDialogOverlaytype

DialogOverlay: { (props: DialogOverlayProps): JSX.Element | null; (props: DialogOverlayAsChildProps): JSX.Element | null; }

Renders the dialog-overlay part of dialog. With @askrjs/themes/default, the overlay is fully styled out of the box with the shared backdrop token, blur, stacking, and fade animation. Standard Dialog and AlertDialog usage requires no additional overlay CSS; customize the theme tokens instead of applying a competing background class. Supports polymorphic rendering via asChild.

AlertDialogPortaltype

DialogPortal: (props: DialogPortalProps) => JSX.Element | null

Renders a part of dialog.

AlertDialogTitletype

DialogTitle: { (props: DialogTitleProps): JSX.Element; (props: DialogTitleAsChildProps): JSX.Element; }

Renders the dialog-title part of dialog. Supports polymorphic rendering via asChild.

AlertDialogTriggertype

AlertDialogTrigger: (props: AlertDialogTriggerProps | AlertDialogTriggerAsChildProps) => import("@askrjs/askr/jsx-runtime").JSX.Element

Renders a part of alert-dialog. Supports polymorphic rendering via asChild.

AlertHeadingTagtype

AlertHeadingTag: "h2" | "h3" | "h4" | "h5" | "h6"

Heading tag allowed for an alert's title via titleAs.

AlertPropstype

AlertProps: DivProps & {
  actions?: unknown;
  children?: unknown;
  description?: unknown;
  dismissLabel?: string;
  icon?: unknown;
  onDismiss?: () => void;
  title?: unknown;
  titleAs?: AlertHeadingTag;
  variant?: AlertVariant;
  ref?: Ref<HTMLDivElement>;
}

Props for the {@link Alert } component.

actions
actions?: unknown;
children
children?: unknown;
description
description?: unknown;
dismissLabel
dismissLabel?: string | undefined;
icon
icon?: unknown;
onDismiss
onDismiss?: (() => void) | undefined;
ref
ref?: Ref<HTMLDivElement>;
title
title?: unknown;
titleAs
titleAs?: AlertHeadingTag | undefined;
variant
variant?: AlertVariant | undefined;

AlertTitletype

AlertTitle: (props: CatalogComponentProps) => JSX.Element

Renders the alert-title part of the shadcn-compatible catalog primitives.

AlertVarianttype

AlertVariant: "default" | "info" | "success" | "warning" | "danger"

Visual tone of an {@link AlertProps} alert; "danger"/"warning" render with role="alert".

Asidetype

Aside: (props: AsideProps) => JSX.Element

Renders a <aside>-element {@link Block } tagged with data-slot="aside".

AsidePropstype

AsideProps: Omit<BlockElementProps<"aside">, "as">

Props for the {@link Aside } component.

AspectRatiotype

AspectRatio: { (props: AspectRatioProps): JSX.Element; (props: AspectRatioAsChildProps): JSX.Element; }

Constrains its content to a fixed width/height ratio (defaults to 1) using a computed aspect-ratio style, rendering as a <div> or, with asChild, merging its layout into the single child element.

AspectRatioAsChildPropstype

AspectRatioAsChildProps: AspectRatioOwnProps & {
  asChild: true;
  children: JSXElement;
  ref?: Ref<unknown>;
}

Props for {@link AspectRatio } rendered with asChild, merging layout onto a single child element.

asChild
asChild: true;
children
children: JSXElement;
ratio
ratio?: string | number | undefined;
ref
ref?: Ref<unknown>;
style
style?: unknown;

AspectRatioPropstype

AspectRatioProps: Omit<JSX.IntrinsicElements["div"], "children" | "ref"> & AspectRatioOwnProps & {
  asChild?: false;
  ref?: Ref<HTMLDivElement>;
}

Props for {@link AspectRatio } rendered as its default <div> element.

asChild
asChild?: false | undefined;
children
children?: unknown;
ratio
ratio?: string | number | undefined;
ref
ref?: Ref<HTMLDivElement>;
style
style?: unknown;

Avatartype

Avatar: { (props: AvatarProps): JSX.Element; (props: AvatarAsChildProps): JSX.Element; }

Renders the avatar part of avatar. Supports polymorphic rendering via asChild.

AvatarFallbacktype

AvatarFallback: { (props: AvatarFallbackProps): JSX.Element | null; (props: AvatarFallbackAsChildProps): JSX.Element | null; }

Renders the avatar-fallback part of avatar. Supports polymorphic rendering via asChild.

AvatarImagetype

AvatarImage: (props: AvatarImageProps) => JSX.Element

Renders the avatar-image part of avatar.

Badgetype

Badge: { (props: BadgeProps): JSX.Element; (props: BadgeAsChildProps): JSX.Element; }

Renders a small status/label badge, defaulting to a <span> (or merging onto a child via asChild), with a variant color modifier.

BadgeAsChildPropstype

BadgeAsChildProps: BadgeOwnProps & {
  asChild: true;
  children: JSXElement;
  ref?: Ref<unknown>;
}

Props for {@link Badge } rendered with asChild, merging its attributes onto a single child element.

asChild
asChild: true;
children
children: JSXElement;
ref
ref?: Ref<unknown>;
variant
variant?: BadgeVariant | undefined;

BadgeOwnPropstype

BadgeOwnProps: {
  children?: unknown;
  variant?: BadgeVariant;
}

Props shared by both {@link Badge } call signatures.

children
children?: unknown;
variant
variant?: BadgeVariant | undefined;

BadgePropstype

BadgeProps: Omit<JSX.IntrinsicElements["span"], "children" | "ref"> & BadgeOwnProps & {
  asChild?: false;
  ref?: Ref<HTMLSpanElement>;
}

Props for {@link Badge } rendered as its default <span> element.

asChild
asChild?: false | undefined;
children
children?: unknown;
ref
ref?: Ref<HTMLSpanElement>;
variant
variant?: BadgeVariant | undefined;

Blocktype

Block: { (props: BlockNativeProps): JSX.Element; (props: BlockAsChildProps): JSX.Element; }

Low-level layout primitive: renders any element in {@link BlockElement } (default <div>) and turns layout-only props (spacing, alignment, direction, sizing, etc.) into a generated utility class. With asChild, the layout is merged onto a single child element instead of a wrapper.

BlockAligntype

BlockAlign: "start" | "end" | "center" | "stretch" | "baseline"

BlockAsChildPropstype

BlockAsChildProps: Omit<BlockOwnProps, "as"> & {
  asChild: true;
  children: JSXElement;
  ref?: Ref<unknown>;
}

Props for {@link Block } rendered with asChild, merging layout onto a single child element.

align
align?: ResponsiveValue<BlockAlign> | undefined;
asChild
asChild: true;
background
background?: ResponsiveValue<BlockBackground> | undefined;
border
border?: ResponsiveValue<boolean> | undefined;
borderBottom
borderBottom?: ResponsiveValue<boolean> | undefined;
borderRight
borderRight?: ResponsiveValue<boolean> | undefined;
borderTop
borderTop?: ResponsiveValue<boolean> | undefined;
center
center?: ResponsiveValue<boolean> | undefined;
children
children: JSXElement;
className
className?: string | undefined;
direction
direction?: ResponsiveValue<BlockDirection> | undefined;
gap
gap?: ResponsiveValue<BlockSpace> | undefined;
grow
grow?: ResponsiveValue<number | boolean> | undefined;
height
height?: ResponsiveValue<BlockSize> | undefined;
hide
hide?: ResponsiveValue<boolean> | undefined;
justify
justify?: ResponsiveValue<BlockJustify> | undefined;
margin
margin?: ResponsiveValue<BlockMargin> | undefined;
marginX
marginX?: ResponsiveValue<BlockMargin> | undefined;
marginY
marginY?: ResponsiveValue<BlockMargin> | undefined;
maxHeight
maxHeight?: ResponsiveValue<BlockSize> | undefined;
maxWidth
maxWidth?: ResponsiveValue<BlockSize> | undefined;
minHeight
minHeight?: ResponsiveValue<BlockSize> | undefined;
minWidth
minWidth?: ResponsiveValue<BlockSize> | undefined;
padding
padding?: ResponsiveValue<BlockSpace> | undefined;
paddingX
paddingX?: ResponsiveValue<BlockSpace> | undefined;
paddingY
paddingY?: ResponsiveValue<BlockSpace> | undefined;
radius
radius?: ResponsiveValue<BlockRadius> | undefined;
ref
ref?: Ref<unknown>;
rowFrom
rowFrom?: BlockRowFrom | undefined;
shadow
shadow?: ResponsiveValue<BlockShadow> | undefined;
shrink
shrink?: ResponsiveValue<number | boolean> | undefined;
sticky
sticky?: boolean | undefined;
top
top?: ResponsiveValue<BlockSpace> | undefined;
width
width?: ResponsiveValue<BlockSize> | undefined;
wrap
wrap?: ResponsiveValue<boolean> | undefined;
zIndex
zIndex?: ResponsiveValue<BlockZIndex> | undefined;

BlockBackgroundtype

BlockBackground: "surface" | "muted" | "selected" | "canvas" | "raised" | "overlay" | "transparent"

BlockDirectiontype

BlockDirection: "row" | "column" | "row-reverse" | "column-reverse"

BlockDivPropstype

BlockDivProps: BlockElementProps<"div">

{@link Block } props specialized for a <div> element.

align
align?: ResponsiveValue<BlockAlign> | undefined;
as
as?: "div" | undefined;
asChild
asChild?: false | undefined;
background
background?: ResponsiveValue<BlockBackground> | undefined;
border
border?: ResponsiveValue<boolean> | undefined;
borderBottom
borderBottom?: ResponsiveValue<boolean> | undefined;
borderRight
borderRight?: ResponsiveValue<boolean> | undefined;
borderTop
borderTop?: ResponsiveValue<boolean> | undefined;
center
center?: ResponsiveValue<boolean> | undefined;
children
children?: unknown;
className
className?: string | undefined;
direction
direction?: ResponsiveValue<BlockDirection> | undefined;
gap
gap?: ResponsiveValue<BlockSpace> | undefined;
grow
grow?: ResponsiveValue<number | boolean> | undefined;
height
height?: ResponsiveValue<BlockSize> | undefined;
hide
hide?: ResponsiveValue<boolean> | undefined;
justify
justify?: ResponsiveValue<BlockJustify> | undefined;
margin
margin?: ResponsiveValue<BlockMargin> | undefined;
marginX
marginX?: ResponsiveValue<BlockMargin> | undefined;
marginY
marginY?: ResponsiveValue<BlockMargin> | undefined;
maxHeight
maxHeight?: ResponsiveValue<BlockSize> | undefined;
maxWidth
maxWidth?: ResponsiveValue<BlockSize> | undefined;
minHeight
minHeight?: ResponsiveValue<BlockSize> | undefined;
minWidth
minWidth?: ResponsiveValue<BlockSize> | undefined;
padding
padding?: ResponsiveValue<BlockSpace> | undefined;
paddingX
paddingX?: ResponsiveValue<BlockSpace> | undefined;
paddingY
paddingY?: ResponsiveValue<BlockSpace> | undefined;
radius
radius?: ResponsiveValue<BlockRadius> | undefined;
ref
ref?: Ref<unknown>;
rowFrom
rowFrom?: BlockRowFrom | undefined;
shadow
shadow?: ResponsiveValue<BlockShadow> | undefined;
shrink
shrink?: ResponsiveValue<number | boolean> | undefined;
sticky
sticky?: boolean | undefined;
top
top?: ResponsiveValue<BlockSpace> | undefined;
width
width?: ResponsiveValue<BlockSize> | undefined;
wrap
wrap?: ResponsiveValue<boolean> | undefined;
zIndex
zIndex?: ResponsiveValue<BlockZIndex> | undefined;

BlockElementtype

BlockElement: "div" | "span" | "main" | "header" | "footer" | "section" | "aside" | "nav" | "a" | "ul" | "ol" | "li" | "form" | "article"

Element tags {@link Block } can render as via its as prop.

BlockElementPropstype

BlockElementProps: Omit<JSX.IntrinsicElements[TElement], "children" | "ref"> & BlockOwnProps & {
  as?: TElement;
  asChild?: false;
  ref?: Ref<unknown>;
}

{@link Block } props specialized for a given {@link BlockElement} tag TElement.

align
align?: ResponsiveValue<BlockAlign> | undefined;
as
as?: TElement | undefined;
asChild
asChild?: false | undefined;
background
background?: ResponsiveValue<BlockBackground> | undefined;
border
border?: ResponsiveValue<boolean> | undefined;
borderBottom
borderBottom?: ResponsiveValue<boolean> | undefined;
borderRight
borderRight?: ResponsiveValue<boolean> | undefined;
borderTop
borderTop?: ResponsiveValue<boolean> | undefined;
center
center?: ResponsiveValue<boolean> | undefined;
children
children?: unknown;
direction
direction?: ResponsiveValue<BlockDirection> | undefined;
gap
gap?: ResponsiveValue<BlockSpace> | undefined;
grow
grow?: ResponsiveValue<number | boolean> | undefined;
height
height?: ResponsiveValue<BlockSize> | undefined;
hide
hide?: ResponsiveValue<boolean> | undefined;
justify
justify?: ResponsiveValue<BlockJustify> | undefined;
margin
margin?: ResponsiveValue<BlockMargin> | undefined;
marginX
marginX?: ResponsiveValue<BlockMargin> | undefined;
marginY
marginY?: ResponsiveValue<BlockMargin> | undefined;
maxHeight
maxHeight?: ResponsiveValue<BlockSize> | undefined;
maxWidth
maxWidth?: ResponsiveValue<BlockSize> | undefined;
minHeight
minHeight?: ResponsiveValue<BlockSize> | undefined;
minWidth
minWidth?: ResponsiveValue<BlockSize> | undefined;
padding
padding?: ResponsiveValue<BlockSpace> | undefined;
paddingX
paddingX?: ResponsiveValue<BlockSpace> | undefined;
paddingY
paddingY?: ResponsiveValue<BlockSpace> | undefined;
radius
radius?: ResponsiveValue<BlockRadius> | undefined;
ref
ref?: Ref<unknown>;
rowFrom
rowFrom?: BlockRowFrom | undefined;
shadow
shadow?: ResponsiveValue<BlockShadow> | undefined;
shrink
shrink?: ResponsiveValue<number | boolean> | undefined;
sticky
sticky?: boolean | undefined;
top
top?: ResponsiveValue<BlockSpace> | undefined;
width
width?: ResponsiveValue<BlockSize> | undefined;
wrap
wrap?: ResponsiveValue<boolean> | undefined;
zIndex
zIndex?: ResponsiveValue<BlockZIndex> | undefined;

BlockJustifytype

BlockJustify: "start" | "end" | "center" | "between"

BlockNativePropstype

BlockNativeProps: { [TElement in BlockElement]: BlockElementProps<TElement>; }[BlockElement]

Union of {@link BlockElementProps} across every {@link BlockElement}, used for {@link Block }'s native (non-asChild) overload.

align
align?: ResponsiveValue<BlockAlign> | undefined;
as
as?: "a" | "article" | "aside" | "div" | "form" | "footer" | "header" | "li" | "main" | "nav" | "ol" | "section" | "span" | "ul" | undefined;
asChild
asChild?: false | undefined;
background
background?: ResponsiveValue<BlockBackground> | undefined;
border
border?: ResponsiveValue<boolean> | undefined;
borderBottom
borderBottom?: ResponsiveValue<boolean> | undefined;
borderRight
borderRight?: ResponsiveValue<boolean> | undefined;
borderTop
borderTop?: ResponsiveValue<boolean> | undefined;
center
center?: ResponsiveValue<boolean> | undefined;
children
children?: unknown;
className
className?: string | ((() => IntrinsicClassValue) & string) | undefined;
direction
direction?: ResponsiveValue<BlockDirection> | undefined;
gap
gap?: ResponsiveValue<BlockSpace> | undefined;
grow
grow?: ResponsiveValue<number | boolean> | undefined;
height
height?: ResponsiveValue<BlockSize> | undefined;
hide
hide?: ResponsiveValue<boolean> | undefined;
justify
justify?: ResponsiveValue<BlockJustify> | undefined;
margin
margin?: ResponsiveValue<BlockMargin> | undefined;
marginX
marginX?: ResponsiveValue<BlockMargin> | undefined;
marginY
marginY?: ResponsiveValue<BlockMargin> | undefined;
maxHeight
maxHeight?: ResponsiveValue<BlockSize> | undefined;
maxWidth
maxWidth?: ResponsiveValue<BlockSize> | undefined;
minHeight
minHeight?: ResponsiveValue<BlockSize> | undefined;
minWidth
minWidth?: ResponsiveValue<BlockSize> | undefined;
padding
padding?: ResponsiveValue<BlockSpace> | undefined;
paddingX
paddingX?: ResponsiveValue<BlockSpace> | undefined;
paddingY
paddingY?: ResponsiveValue<BlockSpace> | undefined;
radius
radius?: ResponsiveValue<BlockRadius> | undefined;
ref
ref?: Ref<unknown>;
rowFrom
rowFrom?: BlockRowFrom | undefined;
shadow
shadow?: ResponsiveValue<BlockShadow> | undefined;
shrink
shrink?: ResponsiveValue<number | boolean> | undefined;
sticky
sticky?: boolean | undefined;
top
top?: ResponsiveValue<BlockSpace> | undefined;
width
width?: ResponsiveValue<BlockSize> | undefined;
wrap
wrap?: ResponsiveValue<boolean> | undefined;
zIndex
zIndex?: ResponsiveValue<BlockZIndex> | undefined;

BlockOwnPropstype

BlockOwnProps: BlockLayoutProps & {
  as?: BlockElement;
  children?: unknown;
  className?: string;
}

Layout and structural props accepted by {@link Block }, independent of the rendered element.

align
align?: ResponsiveValue<BlockAlign> | undefined;
as
as?: BlockElement | undefined;
background
background?: ResponsiveValue<BlockBackground> | undefined;
border
border?: ResponsiveValue<boolean> | undefined;
borderBottom
borderBottom?: ResponsiveValue<boolean> | undefined;
borderRight
borderRight?: ResponsiveValue<boolean> | undefined;
borderTop
borderTop?: ResponsiveValue<boolean> | undefined;
center
center?: ResponsiveValue<boolean> | undefined;
children
children?: unknown;
className
className?: string | undefined;
direction
direction?: ResponsiveValue<BlockDirection> | undefined;
gap
gap?: ResponsiveValue<BlockSpace> | undefined;
grow
grow?: ResponsiveValue<number | boolean> | undefined;
height
height?: ResponsiveValue<BlockSize> | undefined;
hide
hide?: ResponsiveValue<boolean> | undefined;
justify
justify?: ResponsiveValue<BlockJustify> | undefined;
margin
margin?: ResponsiveValue<BlockMargin> | undefined;
marginX
marginX?: ResponsiveValue<BlockMargin> | undefined;
marginY
marginY?: ResponsiveValue<BlockMargin> | undefined;
maxHeight
maxHeight?: ResponsiveValue<BlockSize> | undefined;
maxWidth
maxWidth?: ResponsiveValue<BlockSize> | undefined;
minHeight
minHeight?: ResponsiveValue<BlockSize> | undefined;
minWidth
minWidth?: ResponsiveValue<BlockSize> | undefined;
padding
padding?: ResponsiveValue<BlockSpace> | undefined;
paddingX
paddingX?: ResponsiveValue<BlockSpace> | undefined;
paddingY
paddingY?: ResponsiveValue<BlockSpace> | undefined;
radius
radius?: ResponsiveValue<BlockRadius> | undefined;
rowFrom
rowFrom?: BlockRowFrom | undefined;
shadow
shadow?: ResponsiveValue<BlockShadow> | undefined;
shrink
shrink?: ResponsiveValue<number | boolean> | undefined;
sticky
sticky?: boolean | undefined;
top
top?: ResponsiveValue<BlockSpace> | undefined;
width
width?: ResponsiveValue<BlockSize> | undefined;
wrap
wrap?: ResponsiveValue<boolean> | undefined;
zIndex
zIndex?: ResponsiveValue<BlockZIndex> | undefined;

BlockPropstype

BlockProps: BlockNativeProps | BlockAsChildProps

Union of all prop shapes accepted by {@link Block }.

align
align?: ResponsiveValue<BlockAlign> | undefined;
asChild
asChild?: boolean | undefined;
background
background?: ResponsiveValue<BlockBackground> | undefined;
border
border?: ResponsiveValue<boolean> | undefined;
borderBottom
borderBottom?: ResponsiveValue<boolean> | undefined;
borderRight
borderRight?: ResponsiveValue<boolean> | undefined;
borderTop
borderTop?: ResponsiveValue<boolean> | undefined;
center
center?: ResponsiveValue<boolean> | undefined;
children
children?: unknown;
className
className?: string | ((() => IntrinsicClassValue) & string) | undefined;
direction
direction?: ResponsiveValue<BlockDirection> | undefined;
gap
gap?: ResponsiveValue<BlockSpace> | undefined;
grow
grow?: ResponsiveValue<number | boolean> | undefined;
height
height?: ResponsiveValue<BlockSize> | undefined;
hide
hide?: ResponsiveValue<boolean> | undefined;
justify
justify?: ResponsiveValue<BlockJustify> | undefined;
margin
margin?: ResponsiveValue<BlockMargin> | undefined;
marginX
marginX?: ResponsiveValue<BlockMargin> | undefined;
marginY
marginY?: ResponsiveValue<BlockMargin> | undefined;
maxHeight
maxHeight?: ResponsiveValue<BlockSize> | undefined;
maxWidth
maxWidth?: ResponsiveValue<BlockSize> | undefined;
minHeight
minHeight?: ResponsiveValue<BlockSize> | undefined;
minWidth
minWidth?: ResponsiveValue<BlockSize> | undefined;
padding
padding?: ResponsiveValue<BlockSpace> | undefined;
paddingX
paddingX?: ResponsiveValue<BlockSpace> | undefined;
paddingY
paddingY?: ResponsiveValue<BlockSpace> | undefined;
radius
radius?: ResponsiveValue<BlockRadius> | undefined;
ref
ref?: Ref<unknown>;
rowFrom
rowFrom?: BlockRowFrom | undefined;
shadow
shadow?: ResponsiveValue<BlockShadow> | undefined;
shrink
shrink?: ResponsiveValue<number | boolean> | undefined;
sticky
sticky?: boolean | undefined;
top
top?: ResponsiveValue<BlockSpace> | undefined;
width
width?: ResponsiveValue<BlockSize> | undefined;
wrap
wrap?: ResponsiveValue<boolean> | undefined;
zIndex
zIndex?: ResponsiveValue<BlockZIndex> | undefined;

BlockRadiustype

BlockRadius: true | "sm" | "md" | "lg" | "xl" | "round"

BlockRowFromtype

BlockRowFrom: Exclude<LayoutBreakpoint, "base">

BlockSizetype

BlockSize: "auto" | "full" | "screen" | "content" | "sidebar" | "page" | "sm" | "md" | "lg" | "xl"

BlockSpacetype

BlockSpace: "0" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "page"

BlockSpanPropstype

BlockSpanProps: BlockElementProps<"span">

{@link Block } props specialized for a <span> element.

align
align?: ResponsiveValue<BlockAlign> | undefined;
as
as?: "span" | undefined;
asChild
asChild?: false | undefined;
background
background?: ResponsiveValue<BlockBackground> | undefined;
border
border?: ResponsiveValue<boolean> | undefined;
borderBottom
borderBottom?: ResponsiveValue<boolean> | undefined;
borderRight
borderRight?: ResponsiveValue<boolean> | undefined;
borderTop
borderTop?: ResponsiveValue<boolean> | undefined;
center
center?: ResponsiveValue<boolean> | undefined;
children
children?: unknown;
className
className?: string | undefined;
direction
direction?: ResponsiveValue<BlockDirection> | undefined;
gap
gap?: ResponsiveValue<BlockSpace> | undefined;
grow
grow?: ResponsiveValue<number | boolean> | undefined;
height
height?: ResponsiveValue<BlockSize> | undefined;
hide
hide?: ResponsiveValue<boolean> | undefined;
justify
justify?: ResponsiveValue<BlockJustify> | undefined;
margin
margin?: ResponsiveValue<BlockMargin> | undefined;
marginX
marginX?: ResponsiveValue<BlockMargin> | undefined;
marginY
marginY?: ResponsiveValue<BlockMargin> | undefined;
maxHeight
maxHeight?: ResponsiveValue<BlockSize> | undefined;
maxWidth
maxWidth?: ResponsiveValue<BlockSize> | undefined;
minHeight
minHeight?: ResponsiveValue<BlockSize> | undefined;
minWidth
minWidth?: ResponsiveValue<BlockSize> | undefined;
padding
padding?: ResponsiveValue<BlockSpace> | undefined;
paddingX
paddingX?: ResponsiveValue<BlockSpace> | undefined;
paddingY
paddingY?: ResponsiveValue<BlockSpace> | undefined;
radius
radius?: ResponsiveValue<BlockRadius> | undefined;
ref
ref?: Ref<unknown>;
rowFrom
rowFrom?: BlockRowFrom | undefined;
shadow
shadow?: ResponsiveValue<BlockShadow> | undefined;
shrink
shrink?: ResponsiveValue<number | boolean> | undefined;
sticky
sticky?: boolean | undefined;
top
top?: ResponsiveValue<BlockSpace> | undefined;
width
width?: ResponsiveValue<BlockSize> | undefined;
wrap
wrap?: ResponsiveValue<boolean> | undefined;
zIndex
zIndex?: ResponsiveValue<BlockZIndex> | undefined;

BlockZIndextype

BlockZIndex: "header" | "sticky" | "fixed" | "dropdown" | "modal" | "popover" | "toast" | "tooltip"

Brandtype

Brand: <TElement extends "div" | "a" | "span" = "div">(props: BrandProps<TElement>) => JSX.Element

Renders a brand/logo wrapper, defaulting to a <div> (or <a>/<span> via as), or merges onto a single child via asChild.

BrandLabeltype

BrandLabel: (props: BrandLabelProps) => JSX.Element

Renders the text label portion of a {@link Brand}.

BrandMarktype

BrandMark: (props: BrandMarkProps) => JSX.Element

Renders the icon/mark portion of a {@link Brand}.

Buttontype

Button: { (props: ButtonNativeProps): JSX.Element; (props: ButtonAsChildProps): JSX.Element; }

Headless Button component ## Responsibilities - Compose pressable foundation for interaction behavior - Enforce type="button" default to prevent accidental form submission - Forward props and refs to native button or child element ## Non-Responsibilities (delegated to pressable foundation) - Keyboard event handling (Enter/Space) - Pointer event handling - Disabled state enforcement - ARIA attribute application ## Invariants - MUST NOT contain any event handler logic - MUST NOT check disabled prop directly - MUST use pressable() for ALL interaction behavior - MUST use mergeProps() for ALL prop composition Renders the button part of button. Supports polymorphic rendering via asChild.

Native button (prevents accidental submit)
```tsx
<Button onPress={handleSave}>Save</Button>
```
Explicit form submission
```tsx
<Button type="submit" onPress={handleSubmit}>Submit</Button>
```
Polymorphic rendering (asChild)
```tsx
<Button asChild onPress={handleNav}>
<a href="/home">Home</a>
</Button>
```

ButtonAsChildPropstype

ButtonAsChildProps: ButtonOwnProps & {
  asChild: true;
  children: ButtonAsChildElement;
  ref?: Ref<Element>;
  type?: never;
}

Props when rendering with asChild (polymorphic)

asChild
asChild: true;
children
children: ButtonAsChildElement;
disabled
disabled?: boolean | undefined;
onPress
onPress?: ((e: PressEvent) => void) | undefined;
ref
ref?: Ref<Element>;
size
size?: ButtonSize | undefined;
type
type?: undefined;
variant
variant?: ButtonVariant | undefined;
width
width?: ButtonWidth | undefined;

ButtonGrouptype

ButtonGroup: (props: ButtonGroupProps) => JSX.Element

Groups related buttons together, optionally visually attached, with a horizontal or vertical orientation and role="group" by default. Attached groups without an explicit orientation stack at phone width unless they contain icon buttons; pass orientation="horizontal" to keep the row.

ButtonGroupOrientationtype

ButtonGroupOrientation: "horizontal" | "vertical"

Layout direction of a {@link ButtonGroup }. When omitted, an attached group is a row that stacks at phone width unless it contains icon buttons. An explicit value keeps that direction unless the caller also passes data-responsive="true", which opts back into phone stacking.

ButtonGroupPropstype

ButtonGroupProps: DivProps & {
  children?: unknown;
  attached?: boolean;
  orientation?: ButtonGroupOrientation;
  /** Stack at phone width. Defaults to `"true"` for attached groups without an `orientation`. */
  "data-responsive"?: "true" | "false";
  ref?: Ref<HTMLDivElement>;
}

Props for the {@link ButtonGroup } component.

attached
attached?: boolean | undefined;
children
children?: unknown;
data-responsive
Stack at phone width. Defaults to `"true"` for attached groups without an `orientation`.
orientation
orientation?: ButtonGroupOrientation | undefined;
ref
ref?: Ref<HTMLDivElement>;

ButtonNativePropstype

ButtonNativeProps: Omit<JSX.IntrinsicElements['button'], 'children' | 'onClick' | 'disabled' | 'type' | 'ref'> & ButtonOwnProps & {
  asChild?: false;
  ref?: Ref<HTMLButtonElement>;
  type?: 'button' | 'submit' | 'reset';
}

Props when rendering as native <button>

asChild
asChild?: false | undefined;
children
children?: unknown;
disabled
disabled?: boolean | undefined;
onPress
onPress?: ((e: PressEvent) => void) | undefined;
ref
ref?: Ref<HTMLButtonElement>;
size
size?: ButtonSize | undefined;
type
type?: "button" | "submit" | "reset" | undefined;
variant
variant?: ButtonVariant | undefined;
width
width?: ButtonWidth | undefined;

ButtonPropstype

ButtonProps: ButtonNativeProps | ButtonAsChildProps

Union of all Button prop variants

asChild
asChild?: boolean | undefined;
children
children?: unknown;
disabled
disabled?: boolean | undefined;
onPress
onPress?: ((e: PressEvent) => void) | undefined;
ref
ref?: ((value: Element | null) => void) | { current: Element | null; } | ((value: HTMLButtonElement | null) => void) | { current: HTMLButtonElement | null; } | null | undefined;
size
size?: ButtonSize | undefined;
type
type?: "button" | "submit" | "reset" | undefined;
variant
variant?: ButtonVariant | undefined;
width
width?: ButtonWidth | undefined;

ButtonSizetype

ButtonSize: 'xs' | 'sm' | 'md' | 'lg' | 'icon' | 'icon-xs' | 'icon-sm' | 'icon-lg'

Button Size.

ButtonVarianttype

ButtonVariant: 'default' | 'primary' | 'secondary' | 'outline' | 'ghost' | 'destructive' | 'link'

Button Variant.

ButtonWidthtype

ButtonWidth: 'auto' | 'full'

Button Width.

Calendartype

Calendar: (props: CatalogComponentProps) => JSX.Element

Styling-only calendar anatomy; it does not own dates, grid focus, selection, or month navigation.

CalendarBodytype

CalendarBody: (props: CatalogComponentProps) => JSX.Element

Renders the calendar-body part of the shadcn-compatible catalog primitives.

CalendarCaptiontype

CalendarCaption: (props: CatalogComponentProps) => JSX.Element

Renders the calendar-caption part of the shadcn-compatible catalog primitives.

CalendarCelltype

CalendarCell: (props: CatalogComponentProps) => JSX.Element

Renders the calendar-cell part of the shadcn-compatible catalog primitives.

CalendarDaytype

CalendarDay: (props: CatalogComponentProps<HTMLButtonElement> & { disabled?: boolean; outside?: boolean; rangeEnd?: boolean; rangeMiddle?: boolean; rangeStart?: boolean; selected?: boolean; today?: boolean; }) => JSX.Element

Renders a single selectable day cell in the calendar grid, with selection/range/today state exposed as data attributes.

CalendarGridtype

CalendarGrid: (props: CatalogComponentProps) => JSX.Element

Renders the calendar-grid part of the shadcn-compatible catalog primitives.

CalendarHeadtype

CalendarHead: (props: CatalogComponentProps) => JSX.Element

Renders the calendar-head part of the shadcn-compatible catalog primitives.

CalendarHeadertype

CalendarHeader: (props: CatalogComponentProps) => JSX.Element

Renders the calendar-header part of the shadcn-compatible catalog primitives.

CalendarNavtype

CalendarNav: (props: CatalogComponentProps) => JSX.Element

Renders the calendar-nav part of the shadcn-compatible catalog primitives.

CalendarNextButtontype

CalendarNextButton: (props: CatalogComponentProps<HTMLButtonElement>) => JSX.Element

Button that navigates the calendar to the next month.

CalendarPreviousButtontype

CalendarPreviousButton: (props: CatalogComponentProps<HTMLButtonElement>) => JSX.Element

Button that navigates the calendar to the previous month.

CalendarRowtype

CalendarRow: (props: CatalogComponentProps) => JSX.Element

Renders the calendar-row part of the shadcn-compatible catalog primitives.

Cardtype

Card: (props: CardProps) => JSX.Element

Root card container; applies the card class and an optional variant modifier.

CardActiontype

CardAction: (props: CardActionProps) => JSX.Element

Renders an action/control region of a {@link Card}, typically positioned alongside the header.

CardActionPropstype

CardActionProps: DivProps & {
  children?: unknown;
  ref?: Ref<HTMLDivElement>;
}

Props for the {@link CardAction } component.

children
children?: unknown;
ref
ref?: Ref<HTMLDivElement>;

CardContenttype

CardContent: (props: CardContentProps) => JSX.Element

Renders the main content region of a {@link Card}.

CardContentPropstype

CardContentProps: DivProps & {
  children?: unknown;
  ref?: Ref<HTMLDivElement>;
}

Props for the {@link CardContent } component.

children
children?: unknown;
ref
ref?: Ref<HTMLDivElement>;

CardDescriptiontype

CardDescription: (props: CardDescriptionProps) => JSX.Element

Renders a {@link Card}'s supporting description text.

CardDescriptionPropstype

CardDescriptionProps: ParagraphProps & {
  children?: unknown;
  ref?: Ref<HTMLParagraphElement>;
}

Props for the {@link CardDescription } component.

children
children?: unknown;
ref
ref?: Ref<HTMLParagraphElement>;

CardHeadertype

CardHeader: (props: CardHeaderProps) => JSX.Element

Renders the header region of a {@link Card}.

CardHeaderPropstype

CardHeaderProps: DivProps & {
  children?: unknown;
  ref?: Ref<HTMLDivElement>;
}

Props for the {@link CardHeader } component.

children
children?: unknown;
ref
ref?: Ref<HTMLDivElement>;

CardPropstype

CardProps: DivProps & {
  children?: unknown;
  variant?: CardVariant;
  ref?: Ref<HTMLDivElement>;
}

Props for the {@link Card } component.

children
children?: unknown;
ref
ref?: Ref<HTMLDivElement>;
variant
variant?: CardVariant | undefined;

CardTitletype

CardTitle: (props: CardTitleProps) => JSX.Element

Renders a {@link Card}'s title, defaulting to an <h3> (override with titleAs).

CardTitleHeadingTagtype

CardTitleHeadingTag: "h1" | "h2" | "h3" | "h4" | "h5" | "h6"

Heading tag allowed for a card's title via titleAs.

CardTitlePropstype

CardTitleProps: HeadingProps & {
  children?: unknown;
  /** Choose the level that follows the surrounding document hierarchy. */
  titleAs?: CardTitleHeadingTag;
  ref?: Ref<HTMLHeadingElement>;
}

Props for the {@link CardTitle } component.

children
children?: unknown;
ref
ref?: Ref<HTMLHeadingElement>;
titleAs
Choose the level that follows the surrounding document hierarchy.

CardVarianttype

CardVariant: "default" | "raised"

Visual style of a {@link CardProps} card.

CAT_THEME_NAMEStype

CAT_THEME_NAMES: readonly ["tabby", "ginger", "tuxedo", "calico", "torty"]

Names of the built-in "cat" theme presets.

CAT_THEME_OPTIONStype

CAT_THEME_OPTIONS: readonly ThemeOption[]

Theme options for the built-in "cat" theme presets, keyed to {@link CAT_THEME_NAMES}.

CatalogComponentPropstype

CatalogComponentProps: Record<string, unknown> & {
  as?: CatalogElement;
  asChild?: boolean;
  children?: unknown;
  class?: string;
  ref?: Ref<TElement>;
}

Shared prop shape for the shadcn-compatible catalog primitives below: a polymorphic as/asChild element plus passthrough attributes.

as
as?: keyof JSX.IntrinsicElements | undefined;
asChild
asChild?: boolean | undefined;
children
children?: unknown;
class
class?: string | undefined;
ref
ref?: Ref<TElement>;

CatThemeNametype

CatThemeName: (typeof CAT_THEME_NAMES)[number]

A built-in "cat" theme name, one of {@link CAT_THEME_NAMES}.

Centertype

Center: (props: CenterProps) => JSX.Element

Centers content on both axes within the supplied Block dimensions.

CenterPropstype

CenterProps: WithoutOwnedLayout<BlockProps, "align" | "justify"> & {
  align?: never;
  justify?: never;
}
align
align?: undefined;
asChild
asChild?: unknown;
background
background?: unknown;
border
border?: unknown;
borderBottom
borderBottom?: unknown;
borderRight
borderRight?: unknown;
borderTop
borderTop?: unknown;
center
center?: unknown;
children
children?: unknown;
direction
direction?: unknown;
gap
gap?: unknown;
grow
grow?: unknown;
height
height?: unknown;
hide
hide?: unknown;
justify
justify?: undefined;
margin
margin?: unknown;
marginX
marginX?: unknown;
marginY
marginY?: unknown;
maxHeight
maxHeight?: unknown;
maxWidth
maxWidth?: unknown;
minHeight
minHeight?: unknown;
minWidth
minWidth?: unknown;
padding
padding?: unknown;
paddingX
paddingX?: unknown;
paddingY
paddingY?: unknown;
radius
radius?: unknown;
ref
ref?: unknown;
rowFrom
rowFrom?: unknown;
shadow
shadow?: unknown;
shrink
shrink?: unknown;
sticky
sticky?: unknown;
top
top?: unknown;
width
width?: unknown;
wrap
wrap?: unknown;
zIndex
zIndex?: unknown;

Checkboxtype

Checkbox: { (props: CheckboxInputProps): JSX.Element; (props: CheckboxAsChildProps): JSX.Element; }

Headless Checkbox component ## Responsibilities - Apply aria-checked for checkbox state signaling - Handle indeterminate state for native and asChild hosts - Support controlled and uncontrolled checked state - Forward props and refs to native input or child element - Preserve native checkbox semantics and apply checkbox behavior to asChild hosts ## Non-Responsibilities - Form submission orchestration beyond native input props ## Invariants - MUST NOT add role="button" (native inputs are role="checkbox") - checked state may be controlled or uncontrolled - indeterminate overrides checked for state signaling - For asChild, consumer MUST provide role="checkbox" Renders the checkbox part of checkbox with role="checkbox". Supports polymorphic rendering via asChild.

Native checkbox input
```tsx
const checked = state(false);
<Checkbox checked={checked()} onPress={() => checked.set(!checked())} />
```
Polymorphic rendering (asChild)
```tsx
<Checkbox asChild checked={agreed} onPress={toggleAgree}>
<div role="checkbox">I agree to terms</div>
</Checkbox>
```
Indeterminate state (partial selection)
```tsx
<Checkbox checked={someChecked} indeterminate={!allChecked && someChecked} onPress={toggleAll}>
Select All
</Checkbox>
```

Closetype

Close: (props: CloseNativeProps) => JSX.Element

Renders a dismiss ("×") icon button, built on top of Button, defaulting to an icon-sized ghost variant with an accessible label.

CloseNativePropstype

CloseNativeProps: ButtonNativeProps & CloseOwnProps

Props for the {@link Close } component.

label
label?: string | undefined;

CloseOwnPropstype

CloseOwnProps: {
  label?: string;
}

Props specific to {@link Close }, layered on top of {@link ButtonNativeProps}.

label
label?: string | undefined;

Clustertype

Cluster: (props: ClusterProps) => JSX.Element

Wrapping horizontal content flow for actions, tags, and compact controls.

ClusterPropstype

ClusterProps: WithoutOwnedLayout<BlockProps, "direction" | "rowFrom" | "wrap"> & {
  direction?: never;
  rowFrom?: never;
  wrap?: never;
}
align
align?: unknown;
asChild
asChild?: unknown;
background
background?: unknown;
border
border?: unknown;
borderBottom
borderBottom?: unknown;
borderRight
borderRight?: unknown;
borderTop
borderTop?: unknown;
center
center?: unknown;
children
children?: unknown;
direction
direction?: undefined;
gap
gap?: unknown;
grow
grow?: unknown;
height
height?: unknown;
hide
hide?: unknown;
justify
justify?: unknown;
margin
margin?: unknown;
marginX
marginX?: unknown;
marginY
marginY?: unknown;
maxHeight
maxHeight?: unknown;
maxWidth
maxWidth?: unknown;
minHeight
minHeight?: unknown;
minWidth
minWidth?: unknown;
padding
padding?: unknown;
paddingX
paddingX?: unknown;
paddingY
paddingY?: unknown;
radius
radius?: unknown;
ref
ref?: unknown;
rowFrom
rowFrom?: undefined;
shadow
shadow?: unknown;
shrink
shrink?: unknown;
sticky
sticky?: unknown;
top
top?: unknown;
width
width?: unknown;
wrap
wrap?: undefined;
zIndex
zIndex?: unknown;

Collapsibletype

Collapsible: (props: CollapsibleProps) => JSX.Element

Renders a part of collapsible.

CollapsibleContenttype

CollapsibleContent: { (props: CollapsibleContentProps): JSX.Element | null; (props: CollapsibleContentAsChildProps): JSX.Element | null; }

Renders the collapsible-content part of collapsible. Supports polymorphic rendering via asChild.

CollapsibleTriggertype

CollapsibleTrigger: { (props: CollapsibleTriggerProps): JSX.Element; (props: CollapsibleTriggerAsChildProps): JSX.Element; }

Renders the collapsible-trigger part of collapsible. Supports polymorphic rendering via asChild.

Comboboxtype

Combobox: (props: CatalogComponentProps) => JSX.Element

Styling-only combobox anatomy; it does not own value, popup, filtering, focus, or ARIA state.

ComboboxInputtype

ComboboxInput: (props: CatalogComponentProps<HTMLInputElement>) => JSX.Element

Styling-only combobox input; consumers supplying behavior also own its complete ARIA contract.

ComboboxListtype

ComboboxList: (props: CatalogComponentProps) => JSX.Element

Renders the combobox-list part of the shadcn-compatible catalog primitives.

ComboboxOptiontype

ComboboxOption: (props: CatalogComponentProps) => JSX.Element

Renders the combobox-option part of the shadcn-compatible catalog primitives.

Commandtype

Command: (props: CatalogComponentProps) => JSX.Element

Styling-only command anatomy; it does not own filtering, selection, focus, or keyboard commands.

CommandDialogtype

CommandDialog: (props: CatalogComponentProps) => JSX.Element

Renders the command-dialog part of the shadcn-compatible catalog primitives.

CommandEmptytype

CommandEmpty: (props: CatalogComponentProps) => JSX.Element

Renders the command-empty part of the shadcn-compatible catalog primitives.

CommandGrouptype

CommandGroup: (props: CatalogComponentProps) => JSX.Element

Renders the command-group part of the shadcn-compatible catalog primitives.

CommandGroupHeadingtype

CommandGroupHeading: (props: CatalogComponentProps) => JSX.Element

Renders the command-group-heading part of the shadcn-compatible catalog primitives.

CommandHeadertype

CommandHeader: (props: CatalogComponentProps) => JSX.Element

Renders the command-header part of the shadcn-compatible catalog primitives.

CommandInputtype

CommandInput: (props: CatalogComponentProps<HTMLInputElement>) => JSX.Element

Renders the command palette's search <input>.

CommandItemtype

CommandItem: (props: CatalogComponentProps & { active?: boolean; disabled?: boolean; selected?: boolean; }) => JSX.Element

Renders a selectable command list entry, exposing active/disabled/selected as ARIA and data attributes.

CommandListtype

CommandList: (props: CatalogComponentProps) => JSX.Element

Renders the command-list part of the shadcn-compatible catalog primitives.

CommandPalettetype

CommandPalette: (props: CommandPaletteProps) => JSX.Element

Root dialog wrapper for a searchable command palette. Manages open state (controlled or uncontrolled), tracks the triggering element, and restores focus to it after the palette closes.

CommandPaletteContenttype

CommandPaletteContent: (props: CommandPaletteContentProps) => JSX.Element

Dialog content for a {@link CommandPalette}: renders the overlay, an accessible (visually hidden) title/description, and a Command list, moving initial focus to initialFocus (defaults to the search input) once mounted, and optionally suppressing dismiss-on-escape/backdrop.

CommandPaletteContentPropstype

CommandPaletteContentProps: Omit<DialogContentProps, "children" | "title" | "onEscapeKeyDown" | "onInteractOutside" | "onPointerDownOutside"> & {
  children?: unknown;
  title: string;
  description?: string;
  initialFocus?: string | (() => HTMLElement | null) | false;
  closeOnBackdrop?: boolean;
  closeOnEscape?: boolean;
  overlayProps?: DialogOverlayProps;
  onEscapeKeyDown?: (event: KeyboardEvent) => void;
  onInteractOutside?: (event: Event) => void;
  onPointerDownOutside?: (event: PointerEvent) => void;
}

Props for the {@link CommandPaletteContent } component.

children
children?: unknown;
closeOnBackdrop
closeOnBackdrop?: boolean | undefined;
closeOnEscape
closeOnEscape?: boolean | undefined;
description
description?: string | undefined;
initialFocus
initialFocus?: string | false | (() => HTMLElement | null) | undefined;
onEscapeKeyDown
onEscapeKeyDown?: ((event: KeyboardEvent) => void) | undefined;
onInteractOutside
onInteractOutside?: ((event: Event) => void) | undefined;
onPointerDownOutside
onPointerDownOutside?: ((event: PointerEvent) => void) | undefined;
overlayProps
overlayProps?: DialogOverlayProps | undefined;
title
title: string;

CommandPaletteListtype

CommandPaletteList: (props: CommandPaletteListProps) => JSX.Element

Renders the <ul> list wrapper for {@link CommandPalette} results.

CommandPaletteListPropstype

CommandPaletteListProps: Omit<JSX.IntrinsicElements["ul"], "children" | "ref"> & {
  children?: unknown;
  ref?: Ref<HTMLUListElement>;
}

Props for the {@link CommandPaletteList } component.

children
children?: unknown;
ref
ref?: Ref<HTMLUListElement>;

CommandPalettePropstype

CommandPaletteProps: DialogProps

Props for the {@link CommandPalette } component.

CommandPaletteTriggertype

CommandPaletteTrigger: { (props: CommandPaletteTriggerProps): JSX.Element; (props: CommandPaletteTriggerAsChildProps): JSX.Element; }

Trigger that opens the {@link CommandPalette}, registering itself so focus returns here on close.

CommandPaletteTriggerPropstype

CommandPaletteTriggerProps: DialogTriggerProps

Props for the {@link CommandPaletteTrigger } component.

CommandSeparatortype

CommandSeparator: (props: CatalogComponentProps) => JSX.Element

Renders the command-separator part of the shadcn-compatible catalog primitives.

CommandShortcuttype

CommandShortcut: (props: CatalogComponentProps) => JSX.Element

Renders the command-shortcut part of the shadcn-compatible catalog primitives.

Containertype

Container: (props: ContainerProps) => JSX.Element

Centers content in a max-width column with page gutters (defaults to the "page" {@link BlockSize }).

ContainerPropstype

ContainerProps: Omit<BlockDivProps, "maxWidth"> & {
  size?: BlockSize;
}

Props for the {@link Container } component.

size
size?: BlockSize | undefined;

ContextMenutype

Dropdown: (props: DropdownProps) => JSX.Element

Renders a part of dropdown.

ContextMenuContenttype

DropdownContent$1: { (props: DropdownContentProps): JSX.Element | null; (props: DropdownContentAsChildProps): JSX.Element | null; }

Dropdown/context-menu content wrapper around @askrjs/ui's DropdownContent. Non-asChild usage lazily evaluates children inside a body component so they're only rendered once the dropdown is actually open.

ContextMenuGrouptype

DropdownGroup: (props: DropdownGroupProps | DropdownGroupAsChildProps) => import("@askrjs/askr/jsx-runtime").JSX.Element

Renders the dropdown-group part of dropdown with role="group". Supports polymorphic rendering via asChild.

ContextMenuItemtype

DropdownItem: { (props: DropdownItemProps): JSX.Element | null; (props: DropdownItemAsChildProps): JSX.Element | null; }

Renders a part of dropdown. Supports polymorphic rendering via asChild.

ContextMenuLabeltype

DropdownLabel: (props: DropdownLabelProps | DropdownLabelAsChildProps) => import("@askrjs/askr/jsx-runtime").JSX.Element

Renders the dropdown-label part of dropdown. Supports polymorphic rendering via asChild.

ContextMenuPortaltype

DropdownPortal: (props: DropdownPortalProps) => JSX.Element | null

Renders a part of dropdown.

ContextMenuSeparatortype

DropdownSeparator: (props: DropdownSeparatorProps | DropdownSeparatorAsChildProps) => import("@askrjs/askr/jsx-runtime").JSX.Element

Renders the dropdown-separator part of dropdown with role="separator". Supports polymorphic rendering via asChild.

ContextMenuTriggertype

DropdownTrigger: { (props: DropdownTriggerProps): JSX.Element | null; (props: DropdownTriggerAsChildProps): JSX.Element | null; }

Renders the dropdown-trigger part of dropdown. Supports polymorphic rendering via asChild.

CopyButtontype

CopyButton: (props: CopyButtonProps) => JSX.Element

Copies text with visual and assistive success/failure feedback.

CopyButtonPropstype

CopyButtonProps: Omit<ButtonNativeProps, "children" | "onPress"> & {
  text: string;
  label: string;
  successMessage?: string;
  failureMessage?: string;
  resetAfter?: number;
}
failureMessage
failureMessage?: string | undefined;
label
label: string;
resetAfter
resetAfter?: number | undefined;
successMessage
successMessage?: string | undefined;
text
text: string;

DataTabletype

DataTable: (props: CatalogComponentProps) => JSX.Element

Styling-only container for the data-table catalog slot. It does not sort, filter, select, or paginate data. Compose semantic Table/VirtualTable primitives with application-owned data state for those behaviors.

DatePickertype

DatePicker: (props: CatalogComponentProps) => JSX.Element

Styling-only date-picker container. It does not implement a popup calendar, formatting, or calendar-grid keyboard behavior; pair it with {@link DatePickerInput} for a native date input.

DatePickerInputtype

DatePickerInput: (props: CatalogComponentProps<HTMLInputElement>) => JSX.Element

Native <input type="date"> styling slot; browser behavior and localization remain native.

DebouncedInputtype

DebouncedInput: (props: DebouncedInputProps) => JSX.Element

DebouncedInput is a convenience wrapper around Input that emits a settled value for search and filter surfaces. One component-owned timer is re-timed when debounceMs changes (or emits at once when the delay drops to zero). A pending value is delivered to the latest onDebouncedInput, is dropped when onDebouncedInput is removed, and is cancelled on unmount.

DEFAULT_THEME_OPTIONStype

DEFAULT_THEME_OPTIONS: readonly ThemeOption[]

Default light/dark/system theme options used by {@link ThemeScope} and {@link ThemePicker}.

Dialogtype

Dialog: (props: DialogProps) => JSX.Element

Coordinates the Dialog trigger, portal, overlay, and content.

```tsx
<Dialog>
  <DialogTrigger>Open dialog</DialogTrigger>
  <DialogPortal>
    <DialogOverlay />
    <DialogContent>Confirm action</DialogContent>
  </DialogPortal>
</Dialog>
```

DialogClosetype

DialogClose: { (props: DialogCloseProps): JSX.Element; (props: DialogCloseAsChildProps): JSX.Element; }

Renders the dialog-close part of dialog. Supports polymorphic rendering via asChild.

DialogContenttype

DialogContent: { (props: DialogContentProps): JSX.Element | null; (props: DialogContentAsChildProps): JSX.Element | null; }

Renders the dialog-content part of dialog. Supports polymorphic rendering via asChild.

DialogDescriptiontype

DialogDescription: { (props: DialogDescriptionProps): JSX.Element; (props: DialogDescriptionAsChildProps): JSX.Element; }

Renders the dialog-description part of dialog. Supports polymorphic rendering via asChild.

DialogOverlaytype

DialogOverlay: { (props: DialogOverlayProps): JSX.Element | null; (props: DialogOverlayAsChildProps): JSX.Element | null; }

Renders the dialog-overlay part of dialog. With @askrjs/themes/default, the overlay is fully styled out of the box with the shared backdrop token, blur, stacking, and fade animation. Standard Dialog and AlertDialog usage requires no additional overlay CSS; customize the theme tokens instead of applying a competing background class. Supports polymorphic rendering via asChild.

DialogPortaltype

DialogPortal: (props: DialogPortalProps) => JSX.Element | null

Renders a part of dialog.

DialogPropstype

DialogProps: DialogOwnProps

Props for Dialog.

children
children?: unknown;
defaultOpen
defaultOpen?: boolean | undefined;
id
id?: string | undefined;
modal
modal?: boolean | undefined;
onOpenChange
onOpenChange?: ((open: boolean) => void) | undefined;
open
open?: boolean | undefined;

DialogTitletype

DialogTitle: { (props: DialogTitleProps): JSX.Element; (props: DialogTitleAsChildProps): JSX.Element; }

Renders the dialog-title part of dialog. Supports polymorphic rendering via asChild.

DialogTriggertype

DialogTrigger: { (props: DialogTriggerProps): JSX.Element; (props: DialogTriggerAsChildProps): JSX.Element; }

Renders the dialog-trigger part of dialog. Supports polymorphic rendering via asChild.

Directiontype

Direction: (props: CatalogComponentProps & { dir?: "ltr" | "rtl"; }) => JSX.Element

Sets the dir attribute (defaulting to "ltr") on its wrapping element for RTL/LTR scoping.

Emptytype

Empty: (props: CatalogComponentProps) => JSX.Element

Renders the empty part of the shadcn-compatible catalog primitives.

EmptyContenttype

EmptyContent: (props: CatalogComponentProps) => JSX.Element

Renders the empty-content part of the shadcn-compatible catalog primitives.

EmptyDescriptiontype

EmptyDescription: (props: CatalogComponentProps) => JSX.Element

Renders the empty-description part of the shadcn-compatible catalog primitives.

EmptyHeadertype

EmptyHeader: (props: CatalogComponentProps) => JSX.Element

Renders the empty-header part of the shadcn-compatible catalog primitives.

EmptyMediatype

EmptyMedia: (props: CatalogComponentProps) => JSX.Element

Renders the empty-media part of the shadcn-compatible catalog primitives.

EmptyStatetype

EmptyState: (props: EmptyStateProps) => JSX.Element

Centered placeholder for empty lists/views: an icon, title (default <h2>), description, extra content, and an action row.

EmptyStateHeadingTagtype

EmptyStateHeadingTag: "h1" | "h2" | "h3" | "h4" | "h5" | "h6"

Heading tag allowed for an empty state's title via titleAs.

EmptyStatePropstype

EmptyStateProps: BlockDivProps & {
  icon?: unknown;
  title?: unknown;
  titleAs?: EmptyStateHeadingTag;
  description?: unknown;
  action?: unknown;
}

Props for the {@link EmptyState } component.

action
action?: unknown;
align
align?: ResponsiveValue<BlockAlign> | undefined;
as
as?: "div" | undefined;
asChild
asChild?: false | undefined;
background
background?: ResponsiveValue<BlockBackground> | undefined;
border
border?: ResponsiveValue<boolean> | undefined;
borderBottom
borderBottom?: ResponsiveValue<boolean> | undefined;
borderRight
borderRight?: ResponsiveValue<boolean> | undefined;
borderTop
borderTop?: ResponsiveValue<boolean> | undefined;
center
center?: ResponsiveValue<boolean> | undefined;
children
children?: unknown;
className
className?: string | undefined;
description
description?: unknown;
direction
direction?: ResponsiveValue<BlockDirection> | undefined;
gap
gap?: ResponsiveValue<BlockSpace> | undefined;
grow
grow?: ResponsiveValue<number | boolean> | undefined;
height
height?: ResponsiveValue<BlockSize> | undefined;
hide
hide?: ResponsiveValue<boolean> | undefined;
icon
icon?: unknown;
justify
justify?: ResponsiveValue<BlockJustify> | undefined;
margin
margin?: ResponsiveValue<BlockMargin> | undefined;
marginX
marginX?: ResponsiveValue<BlockMargin> | undefined;
marginY
marginY?: ResponsiveValue<BlockMargin> | undefined;
maxHeight
maxHeight?: ResponsiveValue<BlockSize> | undefined;
maxWidth
maxWidth?: ResponsiveValue<BlockSize> | undefined;
minHeight
minHeight?: ResponsiveValue<BlockSize> | undefined;
minWidth
minWidth?: ResponsiveValue<BlockSize> | undefined;
padding
padding?: ResponsiveValue<BlockSpace> | undefined;
paddingX
paddingX?: ResponsiveValue<BlockSpace> | undefined;
paddingY
paddingY?: ResponsiveValue<BlockSpace> | undefined;
radius
radius?: ResponsiveValue<BlockRadius> | undefined;
ref
ref?: Ref<unknown>;
rowFrom
rowFrom?: BlockRowFrom | undefined;
shadow
shadow?: ResponsiveValue<BlockShadow> | undefined;
shrink
shrink?: ResponsiveValue<number | boolean> | undefined;
sticky
sticky?: boolean | undefined;
title
title?: unknown;
titleAs
titleAs?: EmptyStateHeadingTag | undefined;
top
top?: ResponsiveValue<BlockSpace> | undefined;
width
width?: ResponsiveValue<BlockSize> | undefined;
wrap
wrap?: ResponsiveValue<boolean> | undefined;
zIndex
zIndex?: ResponsiveValue<BlockZIndex> | undefined;

EmptyTitletype

EmptyTitle: (props: CatalogComponentProps) => JSX.Element

Renders the empty-title part of the shadcn-compatible catalog primitives.

Fieldtype

Field: (props: FieldProps) => JSX.Element

Groups a form control with its hint/error text, marking data-invalid when invalid is set.

FieldContenttype

FieldContent: (props: CatalogComponentProps) => JSX.Element

Renders the field-content part of the shadcn-compatible catalog primitives.

FieldDescriptiontype

FieldDescription: (props: CatalogComponentProps) => JSX.Element

Renders the field-description part of the shadcn-compatible catalog primitives.

FieldErrortype

FieldError: (props: FieldErrorProps) => JSX.Element

Renders validation error text for a {@link Field}, exposed with role="alert".

FieldErrorPropstype

FieldErrorProps: ParagraphProps & {
  children?: unknown;
  ref?: Ref<HTMLParagraphElement>;
}

Props for the {@link FieldError } component.

children
children?: unknown;
ref
ref?: Ref<HTMLParagraphElement>;

FieldGrouptype

FieldGroup: (props: CatalogComponentProps) => JSX.Element

Renders the field-group part of the shadcn-compatible catalog primitives.

FieldHinttype

FieldHint: (props: FieldHintProps) => JSX.Element

Renders supporting hint text for a {@link Field}.

FieldHintPropstype

FieldHintProps: ParagraphProps & {
  children?: unknown;
  ref?: Ref<HTMLParagraphElement>;
}

Props for the {@link FieldHint } component.

children
children?: unknown;
ref
ref?: Ref<HTMLParagraphElement>;

FieldLabeltype

FieldLabel: (props: CatalogComponentProps) => JSX.Element

Renders the field-label part of the shadcn-compatible catalog primitives.

FieldLegendtype

FieldLegend: (props: CatalogComponentProps) => JSX.Element

Renders the field-legend part of the shadcn-compatible catalog primitives.

FieldPropstype

FieldProps: DivProps & {
  children?: unknown;
  invalid?: boolean;
  ref?: Ref<HTMLDivElement>;
}

Props for the {@link Field } component.

children
children?: unknown;
invalid
invalid?: boolean | undefined;
ref
ref?: Ref<HTMLDivElement>;

FieldSeparatortype

FieldSeparator: (props: CatalogComponentProps) => JSX.Element

Renders the field-separator part of the shadcn-compatible catalog primitives.

FieldSettype

FieldSet: (props: CatalogComponentProps) => JSX.Element

Renders the field-set part of the shadcn-compatible catalog primitives.

FieldTitletype

FieldTitle: (props: CatalogComponentProps) => JSX.Element

Renders the field-title part of the shadcn-compatible catalog primitives.

Formtype

Form: { (props: FormProps): JSX.Element; (props: FormAsChildProps): JSX.Element; }

Renders a part of form. Supports polymorphic rendering via asChild.

Gridtype

Grid: <TElement extends GridElement = "div">(props: GridProps<TElement>) => JSX.Element

CSS grid layout primitive: turns columns/gap/align (each optionally responsive) into generated grid-template styles, rendering as <div> by default.

GridAligntype

GridAlign: "start" | "center" | "end" | "stretch"

align-items value applied to a {@link Grid }.

GridColumnstype

GridColumns: number | string

Column definition for {@link Grid }: a track count or a raw grid-template-columns string.

GridElementtype

GridElement: "div" | "section" | "ul"

Element tags {@link Grid } can render as via its as prop.

GridPropstype

GridProps: GridIntrinsicProps<TElement> & {
  as?: TElement;
  columns?: ResponsiveValue<GridColumns>;
  gap?: ResponsiveValue<BlockSpace>;
  align?: ResponsiveValue<GridAlign>;
  children?: unknown;
  ref?: Ref<HTMLElement>;
}

Props for the {@link Grid } component, specialized for a given {@link GridElement} TElement.

align
align?: ResponsiveValue<GridAlign> | undefined;
as
as?: TElement | undefined;
children
children?: unknown;
columns
columns?: ResponsiveValue<GridColumns> | undefined;
gap
gap?: ResponsiveValue<BlockSpace> | undefined;
ref
ref?: Ref<HTMLElement>;

HeaderPropstype

HeaderProps: Omit<BlockElementProps<"header">, "as" | "sticky"> & {
  position?: "sticky" | "static";
  sticky?: boolean;
}

Props for the {@link Header } component.

position
position?: "sticky" | "static" | undefined;
sticky
sticky?: boolean | undefined;

Headingtype

Heading: ({ level, ...props }: HeadingProps) => JSX.Element

Native semantic heading whose visual size is independent from its explicit document level.

HeadingPropstype

HeadingProps: NativeHeadingProps & {
  level: HeadingLevel;
  size?: HeadingSize;
  tone?: TextTone;
  weight?: TextWeight;
  font?: TextFont;
  numeric?: TextNumeric;
  wrap?: TextWrap;
  truncate?: boolean;
  children?: unknown;
  ref?: Ref<HTMLHeadingElement>;
}

Strongly typed semantic heading props with visual treatment independent from document level.

children
children?: unknown;
font
font?: TextFont | undefined;
level
level: HeadingLevel;
numeric
numeric?: TextNumeric | undefined;
ref
ref?: Ref<HTMLHeadingElement>;
size
size?: HeadingSize | undefined;
tone
tone?: TextTone | undefined;
truncate
truncate?: boolean | undefined;
weight
weight?: TextWeight | undefined;
wrap
wrap?: TextWrap | undefined;

HeadingSizetype

HeadingSize: "sm" | "md" | "lg" | "xl" | "2xl" | "3xl"

HoverCardtype

HoverCard: (props: HoverCardProps) => import("@askrjs/askr/jsx-runtime").JSX.Element

Renders a part of hover-card.

HoverCardContenttype

HoverCardContent: { (props: HoverCardContentProps): JSX.Element | null; (props: HoverCardContentAsChildProps): JSX.Element | null; }

Renders the hover-card-content part of hover-card with role="dialog". Supports polymorphic rendering via asChild.

HoverCardPortaltype

HoverCardPortal: (props: HoverCardPortalProps) => JSX.Element | null

Renders a part of hover-card.

HoverCardTriggertype

HoverCardTrigger: { (props: HoverCardTriggerProps): JSX.Element; (props: HoverCardTriggerAsChildProps): JSX.Element; }

Renders the hover-card-trigger part of hover-card. Supports polymorphic rendering via asChild.

Inputtype

Input: { (props: InputInputProps): JSX.Element; (props: InputAsChildProps): JSX.Element; }

Renders the input part of input. Supports polymorphic rendering via asChild.

InputGrouptype

InputGroup: (props: InputGroupProps) => JSX.Element

Groups related inputs/addons together, optionally visually attached, with a horizontal or vertical orientation and role="group" by default.

InputGroupOrientationtype

InputGroupOrientation: "horizontal" | "vertical"

Layout direction of an {@link InputGroup }.

InputGroupPropstype

InputGroupProps: DivProps & {
  children?: unknown;
  attached?: boolean;
  orientation?: InputGroupOrientation;
  ref?: Ref<HTMLDivElement>;
}

Props for the {@link InputGroup } component.

attached
attached?: boolean | undefined;
children
children?: unknown;
orientation
orientation?: InputGroupOrientation | undefined;
ref
ref?: Ref<HTMLDivElement>;

InputGroupTexttype

InputGroupText: { (props: InputGroupTextProps): JSX.Element; (props: InputGroupTextAsChildProps): JSX.Element; }

Renders static text/label content within an {@link InputGroup}.

InputGroupTextAsChildPropstype

InputGroupTextAsChildProps: SpanProps & {
  asChild: true;
  children: JSXElement;
  ref?: Ref<unknown>;
}

Props for {@link InputGroupText } rendered with asChild, merging its attributes onto a single child element.

asChild
asChild: true;
children
children: JSXElement;
ref
ref?: Ref<unknown>;

InputGroupTextPropstype

InputGroupTextProps: SpanProps & {
  asChild?: false;
  children?: unknown;
  ref?: Ref<HTMLSpanElement>;
}

Props for {@link InputGroupText } rendered as its default <span> element.

asChild
asChild?: false | undefined;
children
children?: unknown;
ref
ref?: Ref<HTMLSpanElement>;

InputOTPtype

InputOTP: (props: CatalogComponentProps) => JSX.Element

Styling-only OTP anatomy; it does not render an input or own value, focus, paste, or validation behavior.

InputOTPGrouptype

InputOTPGroup: (props: CatalogComponentProps) => JSX.Element

Renders the input-otp-group part of the shadcn-compatible catalog primitives.

InputOTPSeparatortype

InputOTPSeparator: (props: CatalogComponentProps) => JSX.Element

Renders the visual separator between InputOTP groups (defaults to "-").

InputOTPSlottype

InputOTPSlot: (props: CatalogComponentProps) => JSX.Element

Renders the input-otp-slot part of the shadcn-compatible catalog primitives.

Itemtype

Item: (props: CatalogComponentProps & { active?: boolean; size?: "default" | "sm" | "xs"; variant?: "default" | "outline" | "muted"; }) => JSX.Element

Renders a generic list item part, exposing active/size/variant as data attributes.

ItemActionstype

ItemActions: (props: CatalogComponentProps) => JSX.Element

Renders the item-actions part of the shadcn-compatible catalog primitives.

ItemContenttype

ItemContent: (props: CatalogComponentProps) => JSX.Element

Renders the item-content part of the shadcn-compatible catalog primitives.

ItemDescriptiontype

ItemDescription: (props: CatalogComponentProps) => JSX.Element

Renders the item-description part of the shadcn-compatible catalog primitives.

ItemGrouptype

ItemGroup: (props: CatalogComponentProps) => JSX.Element

Renders the item-group part of the shadcn-compatible catalog primitives.

ItemHeadertype

ItemHeader: (props: CatalogComponentProps) => JSX.Element

Renders the item-header part of the shadcn-compatible catalog primitives.

ItemMediatype

ItemMedia: (props: CatalogComponentProps) => JSX.Element

Renders the item-media part of the shadcn-compatible catalog primitives.

ItemTitletype

ItemTitle: (props: CatalogComponentProps) => JSX.Element

Renders the item-title part of the shadcn-compatible catalog primitives.

Kbdtype

Kbd: (props: CatalogComponentProps) => JSX.Element

Renders the kbd part of the shadcn-compatible catalog primitives.

Labeltype

Label: { (props: LabelLabelProps): JSXElement; (props: LabelAsChildProps): JSXElement; }

Renders the label part of label. Supports polymorphic rendering via asChild.

Maintype

Main: (props: MainProps) => JSX.Element

Renders a <main>-element {@link Block } that grows to fill available space.

MainPropstype

MainProps: Omit<BlockElementProps<"main">, "as">

Props for the {@link Main } component.

MetaStriptype

MetaStrip: (props: MetaStripProps) => JSX.Element

Semantic compact key/value facts with consistent inline or stacked wrapping.

MetaStripItemtype

MetaStripItem: {
  label: string;
  value: string | number;
  caption?: string;
  font?: "body" | "mono";
  numeric?: "normal" | "tabular";
}

MetaStripPropstype

MetaStripProps: Omit<JSX.IntrinsicElements["dl"], "children" | "ref"> & {
  items: readonly MetaStripItem[];
  density?: MetaStripDensity;
  ref?: Ref<HTMLDListElement>;
}
density
density?: MetaStripDensity | undefined;
items
items: readonly MetaStripItem[];
ref
ref?: Ref<HTMLDListElement>;

NativeSelecttype

NativeSelect: (props: CatalogComponentProps<HTMLSelectElement>) => JSX.Element

Renders a styled native <select> element.

Pagetype

Page: (props: PageProps) => JSX.Element

Top-level page wrapper: a growing <main> containing a {@link Container } with vertical page padding and content spacing.

PageHeaderPropstype

PageHeaderProps: Omit<BlockDivProps, "direction" | "rowFrom"> & {
  title: unknown;
  description?: unknown;
  actions?: unknown;
  direction?: never;
  rowFrom?: never;
}

Props for the {@link PageHeader } component.

actions
actions?: unknown;
description
description?: unknown;
direction
direction?: undefined;
rowFrom
rowFrom?: undefined;
title
title: unknown;

PagePropstype

PageProps: MainProps

Props for the {@link Page } component.

Paginationtype

Pagination: (props: CatalogComponentProps) => JSX.Element

Renders the pagination part of the shadcn-compatible catalog primitives.

PaginationContenttype

PaginationContent: (props: CatalogComponentProps) => JSX.Element

Renders the pagination-content part of the shadcn-compatible catalog primitives.

PaginationEllipsistype

PaginationEllipsis: (props: CatalogComponentProps) => JSX.Element

Renders a non-interactive ellipsis marker between pagination links.

PaginationItemtype

PaginationItem: (props: CatalogComponentProps) => JSX.Element

Renders the pagination-item part of the shadcn-compatible catalog primitives.

PaginationNexttype

PaginationNext: (props: CatalogComponentProps) => JSX.Element

Pagination link that moves to the next page.

PaginationPrevioustype

PaginationPrevious: (props: CatalogComponentProps) => JSX.Element

Pagination link that moves to the previous page.

Pilltype

Pill: (props: PillProps) => JSX.Element

A router-aware link styled as a pill, auto-marked active by matching the current route, with an active background highlight.

PillPropstype

PillProps: LinkProps & NavLinkOwnProps

Props for the {@link Pill } component.

active
active?: boolean | undefined;
match
match?: NavLinkMatch | undefined;

Pillstype

Pills: { (props: PillsProps): JSX.Element; (props: PillsAsChildProps): JSX.Element; }

Renders a <nav> wrapper (or, with asChild, merges onto a child) for a set of {@link Pill} links.

PillsAsChildPropstype

PillsAsChildProps: Omit<JSX.IntrinsicElements["nav"], "children" | "ref"> & PillsOwnProps & {
  asChild: true;
  children: JSXElement;
  ref?: Ref<unknown>;
}

Props for {@link Pills } rendered with asChild, merging onto a single child element.

asChild
asChild: true;
children
children: JSXElement;
ref
ref?: Ref<unknown>;

PillsPropstype

PillsProps: Omit<JSX.IntrinsicElements["nav"], "children" | "ref"> & PillsOwnProps & {
  asChild?: false;
  ref?: Ref<HTMLElement>;
}

Props for {@link Pills } rendered as its default <nav> element.

asChild
asChild?: false | undefined;
children
children?: unknown;
ref
ref?: Ref<HTMLElement>;

Popovertype

Popover: (props: PopoverProps) => import("@askrjs/askr/jsx-runtime").JSX.Element

Renders a part of popover.

PopoverClosetype

PopoverClose: { (props: PopoverCloseProps): JSX.Element; (props: PopoverCloseAsChildProps): JSX.Element; }

Renders the popover-close part of popover. Supports polymorphic rendering via asChild.

PopoverContenttype

PopoverContent: { (props: PopoverContentProps): JSX.Element | null; (props: PopoverContentAsChildProps): JSX.Element | null; }

Renders the popover-content part of popover with role="dialog". Supports polymorphic rendering via asChild.

PopoverPortaltype

PopoverPortal: (props: PopoverPortalProps) => JSX.Element | null

Renders a part of popover.

PopoverTriggertype

PopoverTrigger: { (props: PopoverTriggerProps): JSX.Element; (props: PopoverTriggerAsChildProps): JSX.Element; }

Renders the popover-trigger part of popover. Supports polymorphic rendering via asChild.

Progresstype

Progress: (props: ProgressProps) => JSX.Element

Renders the progress part of progress with role="progressbar".

ProgressCircletype

ProgressCircle: (props: ProgressCircleProps) => JSX.Element

Headless circular progress indicator root. Normalizes value/max, computes percentage, exposes --ak-progress-percentage as a dynamically injected CSS custom property, and provides progress state to ProgressCircleIndicator via context.

ProgressCircleIndicatortype

ProgressCircleIndicator: { (props: ProgressCircleIndicatorProps): JSX.Element; (props: ProgressCircleIndicatorAsChildProps): JSX.Element; }

Visual indicator for ProgressCircle, rendering the fill/arc element. Must be used within a ProgressCircle; reads progress state from context and exposes it as data-state/data-value/data-max/data-percentage.

ProgressIndicatortype

ProgressIndicator: { (props: ProgressIndicatorProps): JSX.Element; (props: ProgressIndicatorAsChildProps): JSX.Element; }

Renders the progress-indicator part of progress. Supports polymorphic rendering via asChild.

RadioGrouptype

RadioGroup: (props: RadioGroupProps) => import("@askrjs/askr/jsx-runtime").JSX.Element

Renders a part of radio-group.

RadioGroupItemtype

RadioGroupItem: { (props: RadioGroupItemProps): JSX.Element; (props: RadioGroupItemAsChildProps): JSX.Element; }

Renders the radio-group-item part of radio-group with role="radio". Supports polymorphic rendering via asChild.

ResizableHandletype

ResizableHandle: (props: CatalogComponentProps) => JSX.Element

Styling-only separator slot; it does not implement resizing, pointer dragging, or keyboard controls.

ResizablePaneltype

ResizablePanel: (props: CatalogComponentProps) => JSX.Element

Styling-only resizable-panel slot; it does not implement resizing or manage panel dimensions.

ResizablePanelGrouptype

ResizablePanelGroup: (props: CatalogComponentProps) => JSX.Element

Styling-only container for the resizable-panel-group catalog slot. It does not implement resizing. Consumers own pointer, keyboard, sizing, and ARIA state until a behavior primitive exists in @askrjs/ui.

ScrollAreatype

ScrollArea: { (props: ScrollAreaProps): JSX.Element; (props: ScrollAreaAsChildProps): JSX.Element; }

Renders a part of scroll-area.

ScrollAreaCornertype

ScrollAreaCorner: (props: ScrollAreaCornerProps) => JSX.Element

Renders the scroll-area-corner part of scroll-area.

ScrollAreaScrollbartype

ScrollAreaScrollbar: (props: ScrollAreaScrollbarProps) => JSX.Element

Renders the scroll-area-scrollbar part of scroll-area with role="scrollbar".

ScrollAreaThumbtype

ScrollAreaThumb: (props: ScrollAreaThumbProps) => JSX.Element

Renders the scroll-area-thumb part of scroll-area.

ScrollAreaViewporttype

ScrollAreaViewport: { (props: ScrollAreaViewportProps): JSX.Element; (props: ScrollAreaViewportAsChildProps): JSX.Element; }

Renders a part of scroll-area.

Sectiontype

Section: (props: SectionProps) => JSX.Element

Renders a <section>-element {@link Block } with vertical spacing between children and page padding.

SectionPropstype

SectionProps: Omit<BlockElementProps<"section">, "as">

Props for the {@link Section } component.

Selecttype

Select: (props: SelectProps) => JSX.Element

Renders a part of select.

SelectContenttype

SelectContent: { (props: SelectContentProps): JSX.Element | null; (props: SelectContentAsChildProps): JSX.Element | null; }

Renders a part of select with role="listbox". Supports polymorphic rendering via asChild.

SelectGrouptype

SelectGroup: { (props: SelectGroupProps): JSX.Element; (props: SelectGroupAsChildProps): JSX.Element; }

Renders the select-group part of select with role="group". Supports polymorphic rendering via asChild.

SelectItemtype

SelectItem: { (props: SelectItemProps): JSX.Element | null; (props: SelectItemAsChildProps): JSX.Element | null; }

Renders a part of select. Supports polymorphic rendering via asChild.

SelectItemTexttype

SelectItemText: { (props: SelectItemTextProps): JSX.Element; (props: SelectItemTextAsChildProps): JSX.Element; }

SelectItemText marks the item text node so Select can resolve labels and style the text slot directly. Renders the select-item-text part of select. Supports polymorphic rendering via asChild.

SelectLabeltype

SelectLabel: { (props: SelectLabelProps): JSX.Element | null; (props: SelectLabelAsChildProps): JSX.Element | null; }

Renders the select-label part of select. Supports polymorphic rendering via asChild.

SelectPortaltype

SelectPortal: (props: SelectPortalProps) => JSX.Element | null

Renders a part of select.

SelectSeparatortype

SelectSeparator: { (props: SelectSeparatorProps): JSX.Element | null; (props: SelectSeparatorAsChildProps): JSX.Element | null; }

Renders the select-separator part of select with role="separator". Supports polymorphic rendering via asChild.

SelectTriggertype

SelectTrigger: { (props: SelectTriggerProps): JSX.Element | null; (props: SelectTriggerAsChildProps): JSX.Element | null; }

Renders the select-trigger part of select. Supports polymorphic rendering via asChild.

SelectValuetype

SelectValue: { (props: SelectValueProps): JSX.Element | null; (props: SelectValueAsChildProps): JSX.Element | null; }

Renders the select-value part of select. Supports polymorphic rendering via asChild.

Separatortype

Separator: { (props: SeparatorNativeProps): JSX.Element; (props: SeparatorAsChildProps): JSX.Element; }

Visual divider, defaulting to horizontal role="separator"; pass decorative to drop the semantic role, or asChild to merge onto a single child element.

SeparatorAsChildPropstype

SeparatorAsChildProps: SeparatorOwnProps & {
  asChild: true;
  children: JSXElement;
  ref?: Ref<unknown>;
}

Props for {@link Separator } rendered with asChild, merging its attributes onto a single child element.

asChild
asChild: true;
children
children: JSXElement;
decorative
decorative?: boolean | undefined;
orientation
orientation?: "vertical" | "horizontal" | undefined;
ref
ref?: Ref<unknown>;

SeparatorNativePropstype

SeparatorNativeProps: Omit<JSX.IntrinsicElements["div"], "children" | "ref"> & SeparatorOwnProps & {
  asChild?: false;
  ref?: Ref<HTMLDivElement>;
}

Props for {@link Separator } rendered as its default <div> element.

asChild
asChild?: false | undefined;
children
children?: unknown;
decorative
decorative?: boolean | undefined;
orientation
orientation?: "vertical" | "horizontal" | undefined;
ref
ref?: Ref<HTMLDivElement>;

SeparatorOwnPropstype

SeparatorOwnProps: {
  decorative?: boolean;
  orientation?: "horizontal" | "vertical";
  children?: unknown;
}

Props shared by both {@link Separator } call signatures.

children
children?: unknown;
decorative
decorative?: boolean | undefined;
orientation
orientation?: "vertical" | "horizontal" | undefined;

SeparatorPropstype

SeparatorProps: SeparatorNativeProps | SeparatorAsChildProps

Union of all prop shapes accepted by {@link Separator }.

asChild
asChild?: boolean | undefined;
children
children?: unknown;
decorative
decorative?: boolean | undefined;
orientation
orientation?: "vertical" | "horizontal" | undefined;
ref
ref?: ((value: unknown) => void) | { current: unknown; } | ((value: HTMLDivElement | null) => void) | { current: HTMLDivElement | null; } | null | undefined;

Sheettype

Dialog: (props: DialogProps) => JSX.Element

Coordinates the Dialog trigger, portal, overlay, and content.

```tsx
<Dialog>
  <DialogTrigger>Open dialog</DialogTrigger>
  <DialogPortal>
    <DialogOverlay />
    <DialogContent>Confirm action</DialogContent>
  </DialogPortal>
</Dialog>
```

SheetClosetype

DialogClose: { (props: DialogCloseProps): JSX.Element; (props: DialogCloseAsChildProps): JSX.Element; }

Renders the dialog-close part of dialog. Supports polymorphic rendering via asChild.

SheetContenttype

SheetContent: (props: CatalogComponentProps & { side?: "top" | "right" | "bottom" | "left"; }) => JSX.Element

Sheet variant of the dialog content part; defaults to sliding in from the right.

SheetDescriptiontype

SheetDescription: (props: CatalogComponentProps) => JSX.Element

Sheet variant of the dialog description part.

SheetHeadertype

SheetHeader: (props: CatalogComponentProps) => JSX.Element

Renders the sheet-header part of the shadcn-compatible catalog primitives.

SheetOverlaytype

DialogOverlay: { (props: DialogOverlayProps): JSX.Element | null; (props: DialogOverlayAsChildProps): JSX.Element | null; }

Renders the dialog-overlay part of dialog. With @askrjs/themes/default, the overlay is fully styled out of the box with the shared backdrop token, blur, stacking, and fade animation. Standard Dialog and AlertDialog usage requires no additional overlay CSS; customize the theme tokens instead of applying a competing background class. Supports polymorphic rendering via asChild.

SheetPortaltype

DialogPortal: (props: DialogPortalProps) => JSX.Element | null

Renders a part of dialog.

SheetTitletype

SheetTitle: (props: CatalogComponentProps) => JSX.Element

Sheet variant of the dialog title part.

SheetTriggertype

DialogTrigger: { (props: DialogTriggerProps): JSX.Element; (props: DialogTriggerAsChildProps): JSX.Element; }

Renders the dialog-trigger part of dialog. Supports polymorphic rendering via asChild.

Skeletontype

Skeleton: { (props: SkeletonProps): JSX.Element; (props: SkeletonAsChildProps): JSX.Element; }

Loading placeholder block with configurable width/height, hidden from assistive tech via aria-hidden, rendered as a <div> or merged onto a child via asChild.

SkeletonAsChildPropstype

SkeletonAsChildProps: SkeletonOwnProps & {
  asChild: true;
  children: JSXElement;
  ref?: Ref<unknown>;
}

Props for {@link Skeleton } rendered with asChild, merging its attributes onto a single child element.

asChild
asChild: true;
children
children: JSXElement;
height
height?: string | number | undefined;
ref
ref?: Ref<unknown>;
width
width?: string | number | undefined;

SkeletonOwnPropstype

SkeletonOwnProps: {
  children?: unknown;
  height?: string | number;
  width?: string | number;
}

Props shared by both {@link Skeleton } call signatures.

children
children?: unknown;
height
height?: string | number | undefined;
width
width?: string | number | undefined;

SkeletonPropstype

SkeletonProps: Omit<JSX.IntrinsicElements["div"], "children" | "ref"> & SkeletonOwnProps & {
  asChild?: false;
  ref?: Ref<HTMLDivElement>;
}

Props for {@link Skeleton } rendered as its default <div> element.

asChild
asChild?: false | undefined;
children
children?: unknown;
height
height?: string | number | undefined;
ref
ref?: Ref<HTMLDivElement>;
width
width?: string | number | undefined;

Slidertype

Slider: (props: SliderProps) => JSX.Element

Renders the slider part of slider.

SliderRangetype

SliderRange: { (props: SliderRangeProps): JSX.Element; (props: SliderRangeAsChildProps): JSX.Element; }

Renders the slider-range part of slider. Supports polymorphic rendering via asChild.

SliderThumbtype

SliderThumb: { (props: SliderThumbProps): JSX.Element; (props: SliderThumbAsChildProps): JSX.Element; }

Renders the slider-thumb part of slider with role="slider". Supports polymorphic rendering via asChild.

SliderTracktype

SliderTrack: { (props: SliderTrackProps): JSX.Element; (props: SliderTrackAsChildProps): JSX.Element; }

Renders the slider-track part of slider. Supports polymorphic rendering via asChild.

Spinnertype

Spinner: (props: SpinnerProps) => JSX.Element

Indeterminate loading spinner built on ProgressCircle, with an accessible label (defaults to "Loading") and a size modifier.

SpinnerOwnPropstype

SpinnerOwnProps: Omit<ProgressCircleProps, "value" | "getValueLabel"> & {
  label?: string;
  size?: SpinnerSize;
}

Props specific to {@link Spinner }, layered on top of ProgressCircleProps.

label
label?: string | undefined;
size
size?: SpinnerSize | undefined;

SpinnerPropstype

SpinnerProps: SpinnerOwnProps

Props for the {@link Spinner } component.

label
label?: string | undefined;
size
size?: SpinnerSize | undefined;

SpinnerSizetype

SpinnerSize: "sm" | "md" | "lg"

Size modifier for {@link Spinner }.

Stacktype

Stack: (props: StackProps) => JSX.Element

Vertical content flow with responsive, token-backed spacing.

StackPropstype

StackProps: WithoutOwnedLayout<BlockProps, "direction" | "rowFrom" | "gap" | "padding" | "wrap"> & {
  direction?: never;
  gap?: ResponsiveValue<StackSpace>;
  p?: ResponsiveValue<StackSpace>;
  padding?: ResponsiveValue<StackSpace>;
  rowFrom?: never;
  wrap?: ResponsiveValue<StackWrap>;
}
align
align?: unknown;
asChild
asChild?: unknown;
background
background?: unknown;
border
border?: unknown;
borderBottom
borderBottom?: unknown;
borderRight
borderRight?: unknown;
borderTop
borderTop?: unknown;
center
center?: unknown;
children
children?: unknown;
direction
direction?: undefined;
gap
gap?: ResponsiveValue<BlockSpace> | undefined;
grow
grow?: unknown;
height
height?: unknown;
hide
hide?: unknown;
justify
justify?: unknown;
margin
margin?: unknown;
marginX
marginX?: unknown;
marginY
marginY?: unknown;
maxHeight
maxHeight?: unknown;
maxWidth
maxWidth?: unknown;
minHeight
minHeight?: unknown;
minWidth
minWidth?: unknown;
p
p?: ResponsiveValue<BlockSpace> | undefined;
padding
padding?: ResponsiveValue<BlockSpace> | undefined;
paddingX
paddingX?: unknown;
paddingY
paddingY?: unknown;
radius
radius?: unknown;
ref
ref?: unknown;
rowFrom
rowFrom?: undefined;
shadow
shadow?: unknown;
shrink
shrink?: unknown;
sticky
sticky?: unknown;
top
top?: unknown;
width
width?: unknown;
wrap
wrap?: ResponsiveValue<boolean> | undefined;
zIndex
zIndex?: unknown;

Stattype

Stat: (props: StatProps) => JSX.Element

Container for a labeled statistic (label, value, description).

StatDescriptiontype

StatDescription: (props: StatDescriptionProps) => JSX.Element

Renders supporting description text for a {@link Stat}.

StatLabeltype

StatLabel: (props: StatLabelProps) => JSX.Element

Renders the label of a {@link Stat}.

StatValuetype

StatValue: (props: StatValueProps) => JSX.Element

Renders the primary value of a {@link Stat}.

Switchtype

Switch: { (props: SwitchButtonProps): JSX.Element; (props: SwitchAsChildProps): JSX.Element; }

Renders the switch part of switch with role="switch". Supports polymorphic rendering via asChild.

Tabtype

Tab: (props: TabProps) => JSX.Element

A router-aware link styled as a tab, auto-marked active by matching the current route (see {@link NavLinkProps.match}).

Tabletype

Table: { (props: TableProps): JSX.Element; (props: TableAsChildProps): JSX.Element; }

Semantic table primitive family. Renders a part of table. Supports polymorphic rendering via asChild.

TableBodytype

TableBody: { (props: TableBodyProps): JSX.Element; (props: TableBodyAsChildProps): JSX.Element; }

Renders a part of table. Supports polymorphic rendering via asChild.

TableCaptiontype

TableCaption: { (props: TableCaptionProps): JSX.Element; (props: TableCaptionAsChildProps): JSX.Element; }

Renders a part of table. Supports polymorphic rendering via asChild.

TableCelltype

TableCell: { (props: TableCellProps): JSX.Element; (props: TableCellAsChildProps): JSX.Element; }

Renders a part of table. Supports polymorphic rendering via asChild.

TableFoottype

TableFoot: { (props: TableFootProps): JSX.Element; (props: TableFootAsChildProps): JSX.Element; }

Renders a part of table. Supports polymorphic rendering via asChild.

TableHeadtype

TableHead: { (props: TableHeadProps): JSX.Element; (props: TableHeadAsChildProps): JSX.Element; }

Renders a part of table. Supports polymorphic rendering via asChild.

TableHeaderCelltype

TableHeaderCell: { (props: TableHeaderCellProps): JSX.Element; (props: TableHeaderCellAsChildProps): JSX.Element; }

Renders a part of table. Supports polymorphic rendering via asChild.

TableRowtype

TableRow: { (props: TableRowProps): JSX.Element; (props: TableRowAsChildProps): JSX.Element; }

Renders a part of table. Supports polymorphic rendering via asChild.

TabPropstype

TabProps: LinkProps & NavLinkOwnProps

Props for the {@link Tab } component.

active
active?: boolean | undefined;
match
match?: NavLinkMatch | undefined;

Tabstype

Tabs: { (props: TabsProps): JSX.Element; (props: TabsAsChildProps): JSX.Element; }

Renders a <nav> wrapper (or, with asChild, merges onto a child) for a set of {@link Tab} links.

TabsAsChildPropstype

TabsAsChildProps: Omit<JSX.IntrinsicElements["nav"], "children" | "ref"> & TabsOwnProps & {
  asChild: true;
  children: JSXElement;
  ref?: Ref<unknown>;
}

Props for {@link Tabs } rendered with asChild, merging onto a single child element.

asChild
asChild: true;
children
children: JSXElement;
ref
ref?: Ref<unknown>;

TabsContenttype

TabsContent: (props: CatalogComponentProps) => JSX.Element

Styling-only tabs-content slot; visibility and panel association are consumer-owned.

TabsListtype

TabsList: (props: CatalogComponentProps) => JSX.Element

Styling-only tabs-list slot; it does not own tab selection, ARIA state, or keyboard behavior.

TabsPropstype

TabsProps: Omit<JSX.IntrinsicElements["nav"], "children" | "ref"> & TabsOwnProps & {
  asChild?: false;
  ref?: Ref<HTMLElement>;
}

Props for {@link Tabs } rendered as its default <nav> element.

asChild
asChild?: false | undefined;
children
children?: unknown;
ref
ref?: Ref<HTMLElement>;

TabsTriggertype

TabsTrigger: (props: CatalogComponentProps<HTMLButtonElement>) => JSX.Element

Styling-only trigger button; it does not select or associate a tab panel.

Texttype

Text: <TElement extends TextElement = "p">(props: TextProps<TElement>) => JSX.Element

Typography primitive: renders any {@link TextElement} (default <p>) and turns size/tone/weight/font/numeric/wrap/truncate into data attributes for CSS styling.

Textareatype

Textarea: { (props: TextareaElementProps): JSX.Element; (props: TextareaAsChildProps): JSX.Element; }

Renders the textarea part of textarea. Supports polymorphic rendering via asChild.

TextElementtype

TextElement: "p" | "span" | "div" | "strong"

Element tags {@link Text} can render as via its as prop.

TextFonttype

TextFont: "body" | "mono"

Font family modifier for {@link Text}.

TextNumerictype

TextNumeric: "normal" | "tabular"

Numeric glyph variant (e.g. tabular figures) for {@link Text}.

TextPropstype

TextProps: TextIntrinsicProps<TElement> & {
  as?: TElement;
  size?: TextSize;
  tone?: TextTone;
  weight?: TextWeight;
  font?: TextFont;
  numeric?: TextNumeric;
  wrap?: TextWrap;
  truncate?: boolean;
  children?: unknown;
  ref?: Ref<HTMLElement>;
}

Props for the {@link Text} component, specialized for a given {@link TextElement} TElement.

as
as?: TElement | undefined;
children
children?: unknown;
font
font?: TextFont | undefined;
numeric
numeric?: TextNumeric | undefined;
ref
ref?: Ref<HTMLElement>;
size
size?: TextSize | undefined;
tone
tone?: TextTone | undefined;
truncate
truncate?: boolean | undefined;
weight
weight?: TextWeight | undefined;
wrap
wrap?: TextWrap | undefined;

TextSizetype

TextSize: "sm" | "md" | "lg"

Font size modifier for {@link Text}.

TextTonetype

TextTone: "default" | "muted" | "subtle" | "inverse" | "success" | "warning" | "danger" | "info"

Color tone modifier for {@link Text}.

TextWeighttype

TextWeight: "normal" | "medium" | "semibold" | "bold"

Font weight modifier for {@link Text}.

TextWraptype

TextWrap: "normal" | "nowrap" | "anywhere"

White-space wrapping behavior for {@link Text}.

themetype

theme: () => ThemeScopeValue

Reads the current {@link ThemeScopeValue} from the nearest enclosing {@link ThemeScope}.

ThemeNametype

ThemeName: "light" | "dark" | "system" | CatThemeName | (string & {})

Any theme identifier accepted by {@link ThemeScope}: "light", "dark", "system", a {@link CatThemeName}, or a custom string.

ThemeOptiontype

ThemeOption: {
  value: ThemeName;
  label: string;
}

A theme choice offered by {@link ThemePicker}/{@link ThemeToggle}: a value paired with a display label.

ThemePickertype

ThemePicker: (props: ThemePickerProps) => JSX.Element

A <select> bound to the current {@link theme}, listing themes (defaults to the enclosing scope's options).

ThemePickerPropstype

ThemePickerProps: Omit<JSX.IntrinsicElements["select"], "children" | "value" | "defaultValue" | "onChange"> & {
  themes?: readonly ThemeOption[];
  label?: string;
}

Props for the {@link ThemePicker} component.

label
label?: string | undefined;
themes
themes?: readonly ThemeOption[] | undefined;

ThemeScopetype

ThemeScope: (props: ThemeScopeProps) => JSX.Element

Establishes a theme boundary: tracks the active theme (persisted to localStorage under storageKey and synced across tabs/scopes), resolves the OS "system" preference, and reflects the choice onto the DOM via data-theme/data-theme-choice attributes. Nested scopes cooperate through a shared coordinator so the deepest explicitly-set scope wins.

ThemeScopePropstype

ThemeScopeProps: {
  children?: unknown;
  defaultTheme?: ThemeName;
  themes?: readonly ThemeOption[];
  storageKey?: string;
}

Props for the {@link ThemeScope} component.

children
children?: unknown;
defaultTheme
defaultTheme?: ThemeName | undefined;
storageKey
storageKey?: string | undefined;
themes
themes?: readonly ThemeOption[] | undefined;

ThemeScopeValuetype

ThemeScopeValue: {
  theme: () => ThemeName;
  resolvedSystemTheme: () => "light" | "dark";
  setTheme: (theme: ThemeName) => void;
  themes: readonly ThemeOption[];
  storageKey: string;
}

Value read from {@link theme}: the active theme, its resolved system value, a setter, and the available theme options.

ThemeToggletype

ThemeToggle: (props: ThemeToggleProps) => JSX.Element

A button that cycles through themes (defaults to ["light", "dark"]) on press. Supports icon props per theme, or a function-as-children render prop receiving {@link ThemeToggleRenderContext}.

ThemeTogglePropstype

ThemeToggleProps: Omit<ButtonNativeProps, "children" | "onPress"> & {
  children?: unknown | ((context: ThemeToggleRenderContext) => unknown);
  lightIcon?: unknown;
  darkIcon?: unknown;
  systemIcon?: unknown;
  themes?: readonly ThemeName[];
  onPress?: (event: PressEvent) => void;
}

Props for the {@link ThemeToggle} component.

children
children?: unknown;
darkIcon
darkIcon?: unknown;
lightIcon
lightIcon?: unknown;
onPress
onPress?: ((event: PressEvent) => void) | undefined;
systemIcon
systemIcon?: unknown;
themes
themes?: readonly ThemeName[] | undefined;

ThemeToggleRenderContexttype

ThemeToggleRenderContext: {
  theme: ThemeName;
  nextTheme: ThemeName;
}

Render context passed to a function-as-children {@link ThemeToggleProps.children}.

Toasttype

Toast: (props: ToastProps) => JSX.Element | null

Toast registers a notification entry with the host and returns no DOM on its own.

ToastActiontype

ToastAction: { (props: ToastActionProps): JSX.Element; (props: ToastActionAsChildProps): JSX.Element; }

ToastAction closes the toast after handling a user-triggered action. Renders the toast-action part of toast. Supports polymorphic rendering via asChild.

ToastClosetype

ToastClose: { (props: ToastCloseProps): JSX.Element; (props: ToastCloseAsChildProps): JSX.Element; }

ToastClose is the dedicated dismiss control for a toast entry. Renders the toast-close part of toast. Supports polymorphic rendering via asChild.

ToastDescriptiontype

ToastDescription: { (props: ToastDescriptionProps): JSX.Element; (props: ToastDescriptionAsChildProps): JSX.Element; }

ToastDescription marks the accessible description slot for a toast entry. Renders the toast-description part of toast. Supports polymorphic rendering via asChild.

Toastertype

Toaster: (props: CatalogComponentProps) => JSX.Element

Presentational Toaster host retaining the sonner styling slot.

ToastHosttype

ToastHost: (props: ToastHostProps) => JSX.Element

ToastHost owns the registry of active toast entries and the default display duration for the family.

ToastTitletype

ToastTitle: { (props: ToastTitleProps): JSX.Element; (props: ToastTitleAsChildProps): JSX.Element; }

ToastTitle marks the accessible title slot for a toast entry. Renders the toast-title part of toast. Supports polymorphic rendering via asChild.

ToastViewporttype

ToastViewport: { (props: ToastViewportProps): JSX.Element; (props: ToastViewportAsChildProps): JSX.Element; }

ToastViewport renders the live toast stack and the notification region. Renders the toast-viewport part of toast with role="region". Supports polymorphic rendering via asChild.

Toggletype

Toggle: { (props: ToggleButtonProps): JSX.Element; (props: ToggleAsChildProps): JSX.Element; }

Headless Toggle component ## Responsibilities - Compose pressable foundation for interaction behavior - Apply aria-pressed for toggle state signaling - Enforce type="button" default to prevent accidental form submission - Forward props and refs to native button or child element ## Non-Responsibilities (delegated to pressable foundation) - Keyboard event handling (Enter/Space) - Pointer event handling - Disabled state enforcement - Role attribute application (for non-native elements) ## Invariants - MUST NOT contain any event handler logic - MUST NOT check disabled or pressed props directly - MUST use pressable() for ALL interaction behavior - MUST use mergeProps() for ALL prop composition - pressed state is CONTROLLED (consumer manages state) Renders the toggle part of toggle. Supports polymorphic rendering via asChild.

Native toggle button
```tsx
const pressed = state(false);
<Toggle pressed={pressed()} onPress={() => pressed.set(!pressed())}>
Mute
</Toggle>
```
Polymorphic rendering (asChild)
```tsx
<Toggle asChild pressed={muted} onPress={toggleMute}>
<span>🔇</span>
</Toggle>
```

ToggleGrouptype

ToggleGroup: (props: ToggleGroupProps) => import("@askrjs/askr/jsx-runtime").JSX.Element

Renders a part of toggle-group.

ToggleGroupItemtype

ToggleGroupItem: { (props: ToggleGroupItemProps): JSX.Element; (props: ToggleGroupItemAsChildProps): JSX.Element; }

Renders a part of toggle-group. Supports polymorphic rendering via asChild.

Toolbartype

Toolbar: (props: ToolbarProps) => JSX.Element

Titled toolbar row with an actions area, wrapping to a new line on small screens.

ToolbarPropstype

ToolbarProps: Omit<BlockDivProps, "direction" | "rowFrom"> & {
  title: unknown;
  actions?: unknown;
  direction?: never;
  rowFrom?: never;
}

Props for the {@link Toolbar } component.

actions
actions?: unknown;
direction
direction?: undefined;
rowFrom
rowFrom?: undefined;
title
title: unknown;

Tooltiptype

Tooltip: (props: TooltipProps) => import("@askrjs/askr/jsx-runtime").JSX.Element

Renders a part of tooltip.

TooltipContenttype

TooltipContent: { (props: TooltipContentProps): JSX.Element | null; (props: TooltipContentAsChildProps): JSX.Element | null; }

Renders the tooltip-content part of tooltip with role="tooltip". Supports polymorphic rendering via asChild.

TooltipPortaltype

TooltipPortal: (props: TooltipPortalProps) => JSX.Element | null

Renders a part of tooltip.

TooltipTriggertype

TooltipTrigger: { (props: TooltipTriggerProps): JSX.Element; (props: TooltipTriggerAsChildProps): JSX.Element; }

Renders the tooltip-trigger part of tooltip. Supports polymorphic rendering via asChild.

Typographytype

Typography: (props: CatalogComponentProps) => JSX.Element

Renders the typography part of the shadcn-compatible catalog primitives.

TypographyBlockquotetype

TypographyBlockquote: (props: CatalogComponentProps) => JSX.Element

Renders the typography-blockquote part of the shadcn-compatible catalog primitives.

TypographyH1type

TypographyH1: (props: CatalogComponentProps) => JSX.Element

Renders the typography-h1 part of the shadcn-compatible catalog primitives.

TypographyH2type

TypographyH2: (props: CatalogComponentProps) => JSX.Element

Renders the typography-h2 part of the shadcn-compatible catalog primitives.

TypographyH3type

TypographyH3: (props: CatalogComponentProps) => JSX.Element

Renders the typography-h3 part of the shadcn-compatible catalog primitives.

TypographyH4type

TypographyH4: (props: CatalogComponentProps) => JSX.Element

Renders the typography-h4 part of the shadcn-compatible catalog primitives.

TypographyLeadtype

TypographyLead: (props: CatalogComponentProps) => JSX.Element

Renders the typography-lead part of the shadcn-compatible catalog primitives.

TypographyListtype

TypographyList: (props: CatalogComponentProps) => JSX.Element

Renders the typography-list part of the shadcn-compatible catalog primitives.

TypographyMutedtype

TypographyMuted: (props: CatalogComponentProps) => JSX.Element

Renders the typography-muted part of the shadcn-compatible catalog primitives.

TypographyPtype

TypographyP: (props: CatalogComponentProps) => JSX.Element

Renders the typography-p part of the shadcn-compatible catalog primitives.

VirtualListtype

VirtualList: { <Item>(props: VirtualListProps<Item>): JSX.Element; <Item>(props: VirtualListAsChildProps<Item>): JSX.Element; }

Renders a part of virtual-list. Supports polymorphic rendering via asChild.

VirtualListApitype

VirtualListApi: {
  scrollToIndex: (index: number, alignment?: VirtualScrollAlignment) => void;
  scrollToTop: () => void;
  scrollToBottom: () => void;
  getState: () => VirtualListState;
  getVisibleRange: () => VirtualRange;
  getItemCount: () => number;
  getScrollTop: () => number;
  isAtTop: () => boolean;
  isAtBottom: () => boolean;
  isFollowingBottom: () => boolean;
  getPendingUnseenCount: () => number;
  setFollowBottom: (followBottom: boolean) => void;
}

Virtual List Api.

VirtualListAsChildPropstype

VirtualListAsChildProps: Omit<VirtualListRootProps, 'children'> & {
  items: readonly Item[];
  rowHeight: number;
  /** Optional keyed row sizing. When omitted, VirtualList retains its fixed-height arithmetic path. */
  getRowHeight?: (item: Item, index: number) => number;
  overscan?: VirtualOverscan;
  getKey: (item: Item, index: number) => string | number;
  rowComponent: VirtualListRowComponent<Item>;
  followBottom?: boolean | {
    threshold?: number;
  };
  onScroll?: (event: Event) => void;
  viewport?: VirtualListViewport;
  apiRef?: Ref<VirtualListApi<Item> | null>;
  ref?: Ref<HTMLElement>;
  asChild: true;
  children: JSXElement;
}

Props for the asChild (polymorphic) rendering of Virtual List.

apiRef
apiRef?: Ref<VirtualListApi<Item> | null>;
asChild
asChild: true;
children
children: JSXElement;
followBottom
followBottom?: boolean | { threshold?: number; } | undefined;
getKey
getKey: (item: Item, index: number) => string | number;
getRowHeight
Optional keyed row sizing. When omitted, VirtualList retains its fixed-height arithmetic path.
items
items: readonly Item[];
onScroll
onScroll?: ((event: Event) => void) | undefined;
overscan
overscan?: VirtualOverscan | undefined;
ref
ref?: Ref<HTMLElement>;
rowComponent
rowComponent: VirtualListRowComponent<Item>;
rowHeight
rowHeight: number;
viewport
viewport?: "lg" | undefined;

VirtualListPropstype

VirtualListProps: VirtualListRootProps & {
  items: readonly Item[];
  rowHeight: number;
  /** Optional keyed row sizing. When omitted, VirtualList retains its fixed-height arithmetic path. */
  getRowHeight?: (item: Item, index: number) => number;
  overscan?: VirtualOverscan;
  getKey: (item: Item, index: number) => string | number;
  rowComponent: VirtualListRowComponent<Item>;
  followBottom?: boolean | {
    threshold?: number;
  };
  onScroll?: (event: Event) => void;
  viewport?: VirtualListViewport;
  apiRef?: Ref<VirtualListApi<Item> | null>;
  ref?: Ref<HTMLElement>;
  asChild?: false;
}

Props for Virtual List.

apiRef
apiRef?: Ref<VirtualListApi<Item> | null>;
asChild
asChild?: false | undefined;
followBottom
followBottom?: boolean | { threshold?: number; } | undefined;
getKey
getKey: (item: Item, index: number) => string | number;
getRowHeight
Optional keyed row sizing. When omitted, VirtualList retains its fixed-height arithmetic path.
items
items: readonly Item[];
onScroll
onScroll?: ((event: Event) => void) | undefined;
overscan
overscan?: VirtualOverscan | undefined;
ref
ref?: Ref<HTMLElement>;
rowComponent
rowComponent: VirtualListRowComponent<Item>;
rowHeight
rowHeight: number;
viewport
viewport?: "lg" | undefined;

VirtualListRowComponenttype

VirtualListRowComponent: (props: VirtualListRowComponentProps<Item>) => VirtualListRowElement | null

Virtual List Row Component.

VirtualListRowComponentPropstype

VirtualListRowComponentProps: {
  item: Item;
  index: number;
  rowKey: string;
  isVisible: boolean;
}

Props for Virtual List Row Component.

index
index: number;
isVisible
isVisible: boolean;
item
item: Item;
rowKey
rowKey: string;

VirtualListStatetype

VirtualListState: {
  count: number;
  scrollTop: number;
  viewportHeight: number;
  totalHeight: number;
  visibleRange: VirtualRange;
  isAtTop: boolean;
  isAtBottom: boolean;
  followBottom: boolean;
  pendingUnseenCount: number;
}

Virtual List State.

VirtualTabletype

VirtualTable: { <Row>(props: VirtualTableProps<Row>): JSX.Element; <Row>(props: VirtualTableAsChildProps<Row>): JSX.Element; }

Renders a part of virtual-table. Supports polymorphic rendering via asChild.

VirtualTableApitype

VirtualTableApi: {
  scrollToIndex: (index: number, alignment?: VirtualScrollAlignment) => void;
  scrollToTop: () => void;
  scrollToBottom: () => void;
  getState: () => VirtualTableState;
  getVisibleRange: () => VirtualRange;
  getRowCount: () => number;
  getScrollTop: () => number;
  isAtTop: () => boolean;
  isAtBottom: () => boolean;
  getSelectedRowKey: () => string | null;
  getSelectedRowIndex: () => number;
  selectRowByKey: (rowKey: string) => void;
  selectRowByIndex: (index: number) => void;
  clearSelection: () => void;
}

Virtual Table Api.

VirtualTableAsChildPropstype

VirtualTableAsChildProps: Omit<VirtualTableRootProps, 'children'> & {
  rows: readonly Row[];
  rowHeight: number;
  headerHeight: number;
  overscan?: VirtualOverscan;
  getKey: (row: Row, index: number) => string | number;
  columns: readonly VirtualTableColumn<Row>[];
  selectedRowKey?: string | null;
  defaultSelectedRowKey?: string | null;
  onSelectedRowKeyChange?: (next: string | null) => void;
  onRowClick?: (row: Row, rowIndex: number, rowKey: string, event: MouseEvent) => void;
  onScroll?: (event: Event) => void;
  viewport?: VirtualTableViewport;
  tableWidth?: VirtualTableWidth;
  apiRef?: Ref<VirtualTableApi<Row> | null>;
  ref?: Ref<HTMLElement>;
  asChild: true;
  children: JSXElement;
}

Props for the asChild (polymorphic) rendering of Virtual Table.

apiRef
apiRef?: Ref<VirtualTableApi<Row> | null>;
asChild
asChild: true;
children
children: JSXElement;
columns
columns: readonly VirtualTableColumn<Row>[];
defaultSelectedRowKey
defaultSelectedRowKey?: string | null | undefined;
getKey
getKey: (row: Row, index: number) => string | number;
headerHeight
headerHeight: number;
onRowClick
onRowClick?: ((row: Row, rowIndex: number, rowKey: string, event: MouseEvent) => void) | undefined;
onScroll
onScroll?: ((event: Event) => void) | undefined;
onSelectedRowKeyChange
onSelectedRowKeyChange?: ((next: string | null) => void) | undefined;
overscan
overscan?: VirtualOverscan | undefined;
ref
ref?: Ref<HTMLElement>;
rowHeight
rowHeight: number;
rows
rows: readonly Row[];
selectedRowKey
selectedRowKey?: string | null | undefined;
tableWidth
tableWidth?: "compact" | undefined;
viewport
viewport?: "lg" | undefined;

VirtualTableCellComponenttype

VirtualTableCellComponent: (props: VirtualTableCellComponentProps<Row>) => VirtualTableCellElement | null

Virtual Table Cell Component.

VirtualTableCellComponentPropstype

VirtualTableCellComponentProps: {
  row: Row;
  rowIndex: number;
  rowKey: string;
  column: VirtualTableColumn<Row>;
  selected: boolean;
}

Props for Virtual Table Cell Component.

column
column: VirtualTableColumn<Row>;
row
row: Row;
rowIndex
rowIndex: number;
rowKey
rowKey: string;
selected
selected: boolean;

VirtualTableColumntype

VirtualTableColumn: {
  id: string;
  header: JSXElement | string;
  width?: number | string;
  cellComponent: VirtualTableCellComponent<Row>;
}

Virtual Table Column.

VirtualTablePropstype

VirtualTableProps: VirtualTableRootProps & {
  rows: readonly Row[];
  rowHeight: number;
  headerHeight: number;
  overscan?: VirtualOverscan;
  getKey: (row: Row, index: number) => string | number;
  columns: readonly VirtualTableColumn<Row>[];
  selectedRowKey?: string | null;
  defaultSelectedRowKey?: string | null;
  onSelectedRowKeyChange?: (next: string | null) => void;
  onRowClick?: (row: Row, rowIndex: number, rowKey: string, event: MouseEvent) => void;
  onScroll?: (event: Event) => void;
  viewport?: VirtualTableViewport;
  tableWidth?: VirtualTableWidth;
  apiRef?: Ref<VirtualTableApi<Row> | null>;
  ref?: Ref<HTMLElement>;
  asChild?: false;
}

Props for Virtual Table.

apiRef
apiRef?: Ref<VirtualTableApi<Row> | null>;
asChild
asChild?: false | undefined;
columns
columns: readonly VirtualTableColumn<Row>[];
defaultSelectedRowKey
defaultSelectedRowKey?: string | null | undefined;
getKey
getKey: (row: Row, index: number) => string | number;
headerHeight
headerHeight: number;
onRowClick
onRowClick?: ((row: Row, rowIndex: number, rowKey: string, event: MouseEvent) => void) | undefined;
onScroll
onScroll?: ((event: Event) => void) | undefined;
onSelectedRowKeyChange
onSelectedRowKeyChange?: ((next: string | null) => void) | undefined;
overscan
overscan?: VirtualOverscan | undefined;
ref
ref?: Ref<HTMLElement>;
rowHeight
rowHeight: number;
rows
rows: readonly Row[];
selectedRowKey
selectedRowKey?: string | null | undefined;
tableWidth
tableWidth?: "compact" | undefined;
viewport
viewport?: "lg" | undefined;

VirtualTableStatetype

VirtualTableState: {
  count: number;
  rowHeight: number;
  headerHeight: number;
  scrollTop: number;
  viewportHeight: number;
  totalHeight: number;
  visibleRange: VirtualRange;
  isAtTop: boolean;
  isAtBottom: boolean;
  selectedRowKey: string | null;
  selectedRowIndex: number;
}

Virtual Table State.

VisuallyHiddentype

VisuallyHidden: { (props: VisuallyHiddenSpanProps): JSX.Element; (props: VisuallyHiddenAsChildProps): JSX.Element; }

Renders a part of visually-hidden. Supports polymorphic rendering via asChild.