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 509 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) => 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) => 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"

Boxtype

Box: (props: LegacyLayoutProps) => JSX.Element

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.

ButtonGroupOrientationtype

ButtonGroupOrientation: "horizontal" | "vertical"

Layout direction of a {@link ButtonGroup }.

ButtonGroupPropstype

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

Props for the {@link ButtonGroup } component.

attached
attached?: boolean | undefined;
children
children?: unknown;
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 & { 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) => JSX.Element

Button that navigates the calendar to the next month.

CalendarPreviousButtontype

CalendarPreviousButton: (props: CatalogComponentProps) => 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<HTMLElement>;
}

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<HTMLElement>;

CatThemeNametype

CatThemeName: (typeof CAT_THEME_NAMES)[number]

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

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;

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) => 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) => 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) => 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) => 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) => 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) => 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.

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.

Drawertype

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>
```

DrawerClosetype

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

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

DrawerContenttype

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

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

DrawerDescriptiontype

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

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

DrawerOverlaytype

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`.

DrawerPortaltype

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

Renders a part of `dialog`.

DrawerTitletype

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

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

DrawerTriggertype

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

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

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;

HoverCardtype

HoverCard: (props: HoverCardProps) => 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`.

Inlinetype

Inline: (props: LegacyLayoutProps) => JSX.Element

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`.

LegacyLayoutPropstype

LegacyLayoutProps: Omit<BlockLayoutProps, "gap" | "padding" | "wrap"> & LegacyStructuralProps & LegacyLayoutConveniences
align
align?: ResponsiveValue<BlockAlign> | undefined;
as
as?: BlockElement | 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 | undefined;
direction
direction?: ResponsiveValue<BlockDirection> | undefined;
gap
gap?: ResponsiveValue<LegacySpace> | 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;
p
p?: ResponsiveValue<LegacySpace> | undefined;
padding
padding?: ResponsiveValue<LegacySpace> | 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<LegacyWrap> | undefined;
zIndex
zIndex?: ResponsiveValue<BlockZIndex> | undefined;

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) => 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) => 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) => 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`.

Shelltype

Shell: (props: LegacyLayoutProps & { variant?: string; }) => JSX.Element

ShellMaintype

ShellMain: (props: LegacyLayoutProps) => JSX.Element

ShellNavtype

ShellNav: (props: LegacyLayoutProps) => JSX.Element

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`.

Sonnertype

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

Alias of {@link Toaster} kept for shadcn/sonner API compatibility.

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: LegacyLayoutProps) => JSX.Element

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) => 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

Renders the `sonner` part of the shadcn-compatible catalog primitives.

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) => 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) => 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;
  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;
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;
  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;
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`.