Askr documentation
UI & Components

Alert, Badge, Empty, Skeleton, Spinner, and Stat

Alert, Badge, Empty, Skeleton, Spinner, and Stat: anatomy, keyboard behavior, state, and theming in Askr.

Example

import { Alert, AlertDescription, AlertTitle, Badge, Empty, EmptyDescription, EmptyTitle, Spinner } from '@askrjs/themes/components';

{query.pending ? <Spinner aria-label="Loading projects" /> :
 query.error ? <Alert variant="danger"><AlertTitle>Could not load projects</AlertTitle><AlertDescription>{query.error.message}</AlertDescription></Alert> :
 query.data.length === 0 ? <Empty><EmptyTitle>No projects</EmptyTitle><EmptyDescription>Create a project to get started.</EmptyDescription></Empty> :
 <Badge>{query.data.length} active</Badge>}

Published props

Generated from the TypeScript declarations shipped by the installed package. Named types in the Type column define the accepted values.

AlertProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
actionsactions?: unknown;——
childrenchildren?: unknown;——
descriptiondescription?: unknown;——
dismissLabeldismissLabel?: string | undefined;——
iconicon?: unknown;——
onDismissonDismiss?: (() => void) | undefined;——
refref?: Ref<HTMLDivElement>;——
titletitle?: unknown;——
titleAstitleAs?: AlertHeadingTag | undefined;——
variantvariant?: AlertVariant | undefined;——

BadgeAsChildProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
asChildasChild: true;——
childrenchildren: JSXElement;——
refref?: Ref<unknown>;——
variantvariant?: BadgeVariant | undefined;——

BadgeOwnProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
variantvariant?: BadgeVariant | undefined;——

BadgeProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
asChildasChild?: false | undefined;——
childrenchildren?: unknown;——
refref?: Ref<HTMLSpanElement>;——
variantvariant?: BadgeVariant | undefined;——

SkeletonAsChildProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
asChildasChild: true;——
childrenchildren: JSXElement;——
heightheight?: string | number | undefined;——
refref?: Ref<unknown>;——
widthwidth?: string | number | undefined;——

SkeletonOwnProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
heightheight?: string | number | undefined;——
widthwidth?: string | number | undefined;——

SkeletonProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
asChildasChild?: false | undefined;——
childrenchildren?: unknown;——
heightheight?: string | number | undefined;——
refref?: Ref<HTMLDivElement>;——
widthwidth?: string | number | undefined;——

SpinnerOwnProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
labellabel?: string | undefined;——
sizesize?: SpinnerSize | undefined;——

SpinnerProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
labellabel?: string | undefined;——
sizesize?: SpinnerSize | undefined;——

AspectRatioAsChildProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
asChildasChild: true;——
childrenchildren: JSXElement;——
ratioratio?: string | number | undefined;——
refref?: Ref<unknown>;——
stylestyle?: unknown;——

AspectRatioProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
asChildasChild?: false | undefined;——
childrenchildren?: unknown;——
ratioratio?: string | number | undefined;——
refref?: Ref<HTMLDivElement>;——
stylestyle?: unknown;——

BlockAsChildProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
alignalign?: ResponsiveValue<BlockAlign> | undefined;——
asChildasChild: true;——
backgroundbackground?: ResponsiveValue<BlockBackground> | undefined;——
borderborder?: ResponsiveValue<boolean> | undefined;——
borderBottomborderBottom?: ResponsiveValue<boolean> | undefined;——
borderRightborderRight?: ResponsiveValue<boolean> | undefined;——
borderTopborderTop?: ResponsiveValue<boolean> | undefined;——
centercenter?: ResponsiveValue<boolean> | undefined;——
childrenchildren: JSXElement;——
classNameclassName?: string | undefined;——
directiondirection?: ResponsiveValue<BlockDirection> | undefined;——
gapgap?: ResponsiveValue<BlockSpace> | undefined;——
growgrow?: ResponsiveValue<number | boolean> | undefined;——
heightheight?: ResponsiveValue<BlockSize> | undefined;——
hidehide?: ResponsiveValue<boolean> | undefined;——
justifyjustify?: ResponsiveValue<BlockJustify> | undefined;——
marginmargin?: ResponsiveValue<BlockMargin> | undefined;——
marginXmarginX?: ResponsiveValue<BlockMargin> | undefined;——
marginYmarginY?: ResponsiveValue<BlockMargin> | undefined;——
maxHeightmaxHeight?: ResponsiveValue<BlockSize> | undefined;——
maxWidthmaxWidth?: ResponsiveValue<BlockSize> | undefined;——
minHeightminHeight?: ResponsiveValue<BlockSize> | undefined;——
minWidthminWidth?: ResponsiveValue<BlockSize> | undefined;——
paddingpadding?: ResponsiveValue<BlockSpace> | undefined;——
paddingXpaddingX?: ResponsiveValue<BlockSpace> | undefined;——
paddingYpaddingY?: ResponsiveValue<BlockSpace> | undefined;——
radiusradius?: ResponsiveValue<BlockRadius> | undefined;——
refref?: Ref<unknown>;——
rowFromrowFrom?: BlockRowFrom | undefined;——
shadowshadow?: ResponsiveValue<BlockShadow> | undefined;——
shrinkshrink?: ResponsiveValue<number | boolean> | undefined;——
stickysticky?: boolean | undefined;——
toptop?: ResponsiveValue<BlockSpace> | undefined;——
widthwidth?: ResponsiveValue<BlockSize> | undefined;——
wrapwrap?: ResponsiveValue<boolean> | undefined;——
zIndexzIndex?: ResponsiveValue<BlockZIndex> | undefined;——

BlockDivProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
alignalign?: ResponsiveValue<BlockAlign> | undefined;——
asas?: "div" | undefined;——
asChildasChild?: false | undefined;——
backgroundbackground?: ResponsiveValue<BlockBackground> | undefined;——
borderborder?: ResponsiveValue<boolean> | undefined;——
borderBottomborderBottom?: ResponsiveValue<boolean> | undefined;——
borderRightborderRight?: ResponsiveValue<boolean> | undefined;——
borderTopborderTop?: ResponsiveValue<boolean> | undefined;——
centercenter?: ResponsiveValue<boolean> | undefined;——
childrenchildren?: unknown;——
classNameclassName?: string | undefined;——
directiondirection?: ResponsiveValue<BlockDirection> | undefined;——
gapgap?: ResponsiveValue<BlockSpace> | undefined;——
growgrow?: ResponsiveValue<number | boolean> | undefined;——
heightheight?: ResponsiveValue<BlockSize> | undefined;——
hidehide?: ResponsiveValue<boolean> | undefined;——
justifyjustify?: ResponsiveValue<BlockJustify> | undefined;——
marginmargin?: ResponsiveValue<BlockMargin> | undefined;——
marginXmarginX?: ResponsiveValue<BlockMargin> | undefined;——
marginYmarginY?: ResponsiveValue<BlockMargin> | undefined;——
maxHeightmaxHeight?: ResponsiveValue<BlockSize> | undefined;——
maxWidthmaxWidth?: ResponsiveValue<BlockSize> | undefined;——
minHeightminHeight?: ResponsiveValue<BlockSize> | undefined;——
minWidthminWidth?: ResponsiveValue<BlockSize> | undefined;——
paddingpadding?: ResponsiveValue<BlockSpace> | undefined;——
paddingXpaddingX?: ResponsiveValue<BlockSpace> | undefined;——
paddingYpaddingY?: ResponsiveValue<BlockSpace> | undefined;——
radiusradius?: ResponsiveValue<BlockRadius> | undefined;——
refref?: Ref<unknown>;——
rowFromrowFrom?: BlockRowFrom | undefined;——
shadowshadow?: ResponsiveValue<BlockShadow> | undefined;——
shrinkshrink?: ResponsiveValue<number | boolean> | undefined;——
stickysticky?: boolean | undefined;——
toptop?: ResponsiveValue<BlockSpace> | undefined;——
widthwidth?: ResponsiveValue<BlockSize> | undefined;——
wrapwrap?: ResponsiveValue<boolean> | undefined;——
zIndexzIndex?: ResponsiveValue<BlockZIndex> | undefined;——

BlockElementProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
alignalign?: ResponsiveValue<BlockAlign> | undefined;——
asas?: TElement | undefined;——
asChildasChild?: false | undefined;——
backgroundbackground?: ResponsiveValue<BlockBackground> | undefined;——
borderborder?: ResponsiveValue<boolean> | undefined;——
borderBottomborderBottom?: ResponsiveValue<boolean> | undefined;——
borderRightborderRight?: ResponsiveValue<boolean> | undefined;——
borderTopborderTop?: ResponsiveValue<boolean> | undefined;——
centercenter?: ResponsiveValue<boolean> | undefined;——
childrenchildren?: unknown;——
directiondirection?: ResponsiveValue<BlockDirection> | undefined;——
gapgap?: ResponsiveValue<BlockSpace> | undefined;——
growgrow?: ResponsiveValue<number | boolean> | undefined;——
heightheight?: ResponsiveValue<BlockSize> | undefined;——
hidehide?: ResponsiveValue<boolean> | undefined;——
justifyjustify?: ResponsiveValue<BlockJustify> | undefined;——
marginmargin?: ResponsiveValue<BlockMargin> | undefined;——
marginXmarginX?: ResponsiveValue<BlockMargin> | undefined;——
marginYmarginY?: ResponsiveValue<BlockMargin> | undefined;——
maxHeightmaxHeight?: ResponsiveValue<BlockSize> | undefined;——
maxWidthmaxWidth?: ResponsiveValue<BlockSize> | undefined;——
minHeightminHeight?: ResponsiveValue<BlockSize> | undefined;——
minWidthminWidth?: ResponsiveValue<BlockSize> | undefined;——
paddingpadding?: ResponsiveValue<BlockSpace> | undefined;——
paddingXpaddingX?: ResponsiveValue<BlockSpace> | undefined;——
paddingYpaddingY?: ResponsiveValue<BlockSpace> | undefined;——
radiusradius?: ResponsiveValue<BlockRadius> | undefined;——
refref?: Ref<unknown>;——
rowFromrowFrom?: BlockRowFrom | undefined;——
shadowshadow?: ResponsiveValue<BlockShadow> | undefined;——
shrinkshrink?: ResponsiveValue<number | boolean> | undefined;——
stickysticky?: boolean | undefined;——
toptop?: ResponsiveValue<BlockSpace> | undefined;——
widthwidth?: ResponsiveValue<BlockSize> | undefined;——
wrapwrap?: ResponsiveValue<boolean> | undefined;——
zIndexzIndex?: ResponsiveValue<BlockZIndex> | undefined;——

BlockNativeProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
alignalign?: ResponsiveValue<BlockAlign> | undefined;——
asas?: "a" | "article" | "aside" | "div" | "form" | "footer" | "header" | "li" | "main" | "nav" | "ol" | "section" | "span" | "ul" | undefined;——
asChildasChild?: false | undefined;——
backgroundbackground?: ResponsiveValue<BlockBackground> | undefined;——
borderborder?: ResponsiveValue<boolean> | undefined;——
borderBottomborderBottom?: ResponsiveValue<boolean> | undefined;——
borderRightborderRight?: ResponsiveValue<boolean> | undefined;——
borderTopborderTop?: ResponsiveValue<boolean> | undefined;——
centercenter?: ResponsiveValue<boolean> | undefined;——
childrenchildren?: unknown;——
classNameclassName?: string | ((() => IntrinsicClassValue) & string) | undefined;——
directiondirection?: ResponsiveValue<BlockDirection> | undefined;——
gapgap?: ResponsiveValue<BlockSpace> | undefined;——
growgrow?: ResponsiveValue<number | boolean> | undefined;——
heightheight?: ResponsiveValue<BlockSize> | undefined;——
hidehide?: ResponsiveValue<boolean> | undefined;——
justifyjustify?: ResponsiveValue<BlockJustify> | undefined;——
marginmargin?: ResponsiveValue<BlockMargin> | undefined;——
marginXmarginX?: ResponsiveValue<BlockMargin> | undefined;——
marginYmarginY?: ResponsiveValue<BlockMargin> | undefined;——
maxHeightmaxHeight?: ResponsiveValue<BlockSize> | undefined;——
maxWidthmaxWidth?: ResponsiveValue<BlockSize> | undefined;——
minHeightminHeight?: ResponsiveValue<BlockSize> | undefined;——
minWidthminWidth?: ResponsiveValue<BlockSize> | undefined;——
paddingpadding?: ResponsiveValue<BlockSpace> | undefined;——
paddingXpaddingX?: ResponsiveValue<BlockSpace> | undefined;——
paddingYpaddingY?: ResponsiveValue<BlockSpace> | undefined;——
radiusradius?: ResponsiveValue<BlockRadius> | undefined;——
refref?: Ref<unknown>;——
rowFromrowFrom?: BlockRowFrom | undefined;——
shadowshadow?: ResponsiveValue<BlockShadow> | undefined;——
shrinkshrink?: ResponsiveValue<number | boolean> | undefined;——
stickysticky?: boolean | undefined;——
toptop?: ResponsiveValue<BlockSpace> | undefined;——
widthwidth?: ResponsiveValue<BlockSize> | undefined;——
wrapwrap?: ResponsiveValue<boolean> | undefined;——
zIndexzIndex?: ResponsiveValue<BlockZIndex> | undefined;——

BlockOwnProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
alignalign?: ResponsiveValue<BlockAlign> | undefined;——
asas?: BlockElement | undefined;——
backgroundbackground?: ResponsiveValue<BlockBackground> | undefined;——
borderborder?: ResponsiveValue<boolean> | undefined;——
borderBottomborderBottom?: ResponsiveValue<boolean> | undefined;——
borderRightborderRight?: ResponsiveValue<boolean> | undefined;——
borderTopborderTop?: ResponsiveValue<boolean> | undefined;——
centercenter?: ResponsiveValue<boolean> | undefined;——
childrenchildren?: unknown;——
classNameclassName?: string | undefined;——
directiondirection?: ResponsiveValue<BlockDirection> | undefined;——
gapgap?: ResponsiveValue<BlockSpace> | undefined;——
growgrow?: ResponsiveValue<number | boolean> | undefined;——
heightheight?: ResponsiveValue<BlockSize> | undefined;——
hidehide?: ResponsiveValue<boolean> | undefined;——
justifyjustify?: ResponsiveValue<BlockJustify> | undefined;——
marginmargin?: ResponsiveValue<BlockMargin> | undefined;——
marginXmarginX?: ResponsiveValue<BlockMargin> | undefined;——
marginYmarginY?: ResponsiveValue<BlockMargin> | undefined;——
maxHeightmaxHeight?: ResponsiveValue<BlockSize> | undefined;——
maxWidthmaxWidth?: ResponsiveValue<BlockSize> | undefined;——
minHeightminHeight?: ResponsiveValue<BlockSize> | undefined;——
minWidthminWidth?: ResponsiveValue<BlockSize> | undefined;——
paddingpadding?: ResponsiveValue<BlockSpace> | undefined;——
paddingXpaddingX?: ResponsiveValue<BlockSpace> | undefined;——
paddingYpaddingY?: ResponsiveValue<BlockSpace> | undefined;——
radiusradius?: ResponsiveValue<BlockRadius> | undefined;——
rowFromrowFrom?: BlockRowFrom | undefined;——
shadowshadow?: ResponsiveValue<BlockShadow> | undefined;——
shrinkshrink?: ResponsiveValue<number | boolean> | undefined;——
stickysticky?: boolean | undefined;——
toptop?: ResponsiveValue<BlockSpace> | undefined;——
widthwidth?: ResponsiveValue<BlockSize> | undefined;——
wrapwrap?: ResponsiveValue<boolean> | undefined;——
zIndexzIndex?: ResponsiveValue<BlockZIndex> | undefined;——

BlockProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
alignalign?: ResponsiveValue<BlockAlign> | undefined;——
asChildasChild?: boolean | undefined;——
backgroundbackground?: ResponsiveValue<BlockBackground> | undefined;——
borderborder?: ResponsiveValue<boolean> | undefined;——
borderBottomborderBottom?: ResponsiveValue<boolean> | undefined;——
borderRightborderRight?: ResponsiveValue<boolean> | undefined;——
borderTopborderTop?: ResponsiveValue<boolean> | undefined;——
centercenter?: ResponsiveValue<boolean> | undefined;——
childrenchildren?: unknown;——
classNameclassName?: string | ((() => IntrinsicClassValue) & string) | undefined;——
directiondirection?: ResponsiveValue<BlockDirection> | undefined;——
gapgap?: ResponsiveValue<BlockSpace> | undefined;——
growgrow?: ResponsiveValue<number | boolean> | undefined;——
heightheight?: ResponsiveValue<BlockSize> | undefined;——
hidehide?: ResponsiveValue<boolean> | undefined;——
justifyjustify?: ResponsiveValue<BlockJustify> | undefined;——
marginmargin?: ResponsiveValue<BlockMargin> | undefined;——
marginXmarginX?: ResponsiveValue<BlockMargin> | undefined;——
marginYmarginY?: ResponsiveValue<BlockMargin> | undefined;——
maxHeightmaxHeight?: ResponsiveValue<BlockSize> | undefined;——
maxWidthmaxWidth?: ResponsiveValue<BlockSize> | undefined;——
minHeightminHeight?: ResponsiveValue<BlockSize> | undefined;——
minWidthminWidth?: ResponsiveValue<BlockSize> | undefined;——
paddingpadding?: ResponsiveValue<BlockSpace> | undefined;——
paddingXpaddingX?: ResponsiveValue<BlockSpace> | undefined;——
paddingYpaddingY?: ResponsiveValue<BlockSpace> | undefined;——
radiusradius?: ResponsiveValue<BlockRadius> | undefined;——
refref?: Ref<unknown>;——
rowFromrowFrom?: BlockRowFrom | undefined;——
shadowshadow?: ResponsiveValue<BlockShadow> | undefined;——
shrinkshrink?: ResponsiveValue<number | boolean> | undefined;——
stickysticky?: boolean | undefined;——
toptop?: ResponsiveValue<BlockSpace> | undefined;——
widthwidth?: ResponsiveValue<BlockSize> | undefined;——
wrapwrap?: ResponsiveValue<boolean> | undefined;——
zIndexzIndex?: ResponsiveValue<BlockZIndex> | undefined;——

BlockSpanProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
alignalign?: ResponsiveValue<BlockAlign> | undefined;——
asas?: "span" | undefined;——
asChildasChild?: false | undefined;——
backgroundbackground?: ResponsiveValue<BlockBackground> | undefined;——
borderborder?: ResponsiveValue<boolean> | undefined;——
borderBottomborderBottom?: ResponsiveValue<boolean> | undefined;——
borderRightborderRight?: ResponsiveValue<boolean> | undefined;——
borderTopborderTop?: ResponsiveValue<boolean> | undefined;——
centercenter?: ResponsiveValue<boolean> | undefined;——
childrenchildren?: unknown;——
classNameclassName?: string | undefined;——
directiondirection?: ResponsiveValue<BlockDirection> | undefined;——
gapgap?: ResponsiveValue<BlockSpace> | undefined;——
growgrow?: ResponsiveValue<number | boolean> | undefined;——
heightheight?: ResponsiveValue<BlockSize> | undefined;——
hidehide?: ResponsiveValue<boolean> | undefined;——
justifyjustify?: ResponsiveValue<BlockJustify> | undefined;——
marginmargin?: ResponsiveValue<BlockMargin> | undefined;——
marginXmarginX?: ResponsiveValue<BlockMargin> | undefined;——
marginYmarginY?: ResponsiveValue<BlockMargin> | undefined;——
maxHeightmaxHeight?: ResponsiveValue<BlockSize> | undefined;——
maxWidthmaxWidth?: ResponsiveValue<BlockSize> | undefined;——
minHeightminHeight?: ResponsiveValue<BlockSize> | undefined;——
minWidthminWidth?: ResponsiveValue<BlockSize> | undefined;——
paddingpadding?: ResponsiveValue<BlockSpace> | undefined;——
paddingXpaddingX?: ResponsiveValue<BlockSpace> | undefined;——
paddingYpaddingY?: ResponsiveValue<BlockSpace> | undefined;——
radiusradius?: ResponsiveValue<BlockRadius> | undefined;——
refref?: Ref<unknown>;——
rowFromrowFrom?: BlockRowFrom | undefined;——
shadowshadow?: ResponsiveValue<BlockShadow> | undefined;——
shrinkshrink?: ResponsiveValue<number | boolean> | undefined;——
stickysticky?: boolean | undefined;——
toptop?: ResponsiveValue<BlockSpace> | undefined;——
widthwidth?: ResponsiveValue<BlockSize> | undefined;——
wrapwrap?: ResponsiveValue<boolean> | undefined;——
zIndexzIndex?: ResponsiveValue<BlockZIndex> | undefined;——

ButtonAsChildProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
asChildasChild: true;——
childrenchildren: ButtonAsChildElement;——
disableddisabled?: boolean | undefined;——
onPressonPress?: ((e: PressEvent) => void) | undefined;——
refref?: Ref<Element>;——
sizesize?: ButtonSize | undefined;——
typetype?: undefined;——
variantvariant?: ButtonVariant | undefined;——
widthwidth?: ButtonWidth | undefined;——

ButtonGroupProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
attachedattached?: boolean | undefined;——
childrenchildren?: unknown;——
data-responsivedata-responsive?: "true" | "false" | undefined;—Stack at phone width. Defaults to `"true"` for attached groups without an `orientation`.
orientationorientation?: ButtonGroupOrientation | undefined;——
refref?: Ref<HTMLDivElement>;——

ButtonNativeProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
asChildasChild?: false | undefined;——
childrenchildren?: unknown;——
disableddisabled?: boolean | undefined;——
onPressonPress?: ((e: PressEvent) => void) | undefined;——
refref?: Ref<HTMLButtonElement>;——
sizesize?: ButtonSize | undefined;——
typetype?: "button" | "submit" | "reset" | undefined;——
variantvariant?: ButtonVariant | undefined;——
widthwidth?: ButtonWidth | undefined;——

ButtonProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
asChildasChild?: boolean | undefined;——
childrenchildren?: unknown;——
disableddisabled?: boolean | undefined;——
onPressonPress?: ((e: PressEvent) => void) | undefined;——
refref?: ((value: Element | null) => void) | { current: Element | null; } | ((value: HTMLButtonElement | null) => void) | { current: HTMLButtonElement | null; } | null | undefined;——
sizesize?: ButtonSize | undefined;——
typetype?: "button" | "submit" | "reset" | undefined;——
variantvariant?: ButtonVariant | undefined;——
widthwidth?: ButtonWidth | undefined;——

CardActionProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
refref?: Ref<HTMLDivElement>;——

CardContentProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
refref?: Ref<HTMLDivElement>;——

CardDescriptionProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
refref?: Ref<HTMLParagraphElement>;——

CardFooterProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
refref?: Ref<HTMLDivElement>;——

CardHeaderProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
refref?: Ref<HTMLDivElement>;——

CardProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
refref?: Ref<HTMLDivElement>;——
variantvariant?: CardVariant | undefined;——

CardTitleProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
refref?: Ref<HTMLHeadingElement>;——
titleAstitleAs?: CardTitleHeadingTag | undefined;—Choose the level that follows the surrounding document hierarchy.

CatalogComponentProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
asas?: keyof JSX.IntrinsicElements | undefined;——
asChildasChild?: boolean | undefined;——
childrenchildren?: unknown;——
classclass?: string | undefined;——
refref?: Ref<TElement>;——

CenterProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
alignalign?: undefined;——
asChildasChild?: unknown;——
backgroundbackground?: unknown;——
borderborder?: unknown;——
borderBottomborderBottom?: unknown;——
borderRightborderRight?: unknown;——
borderTopborderTop?: unknown;——
centercenter?: unknown;——
childrenchildren?: unknown;——
directiondirection?: unknown;——
gapgap?: unknown;——
growgrow?: unknown;——
heightheight?: unknown;——
hidehide?: unknown;——
justifyjustify?: undefined;——
marginmargin?: unknown;——
marginXmarginX?: unknown;——
marginYmarginY?: unknown;——
maxHeightmaxHeight?: unknown;——
maxWidthmaxWidth?: unknown;——
minHeightminHeight?: unknown;——
minWidthminWidth?: unknown;——
paddingpadding?: unknown;——
paddingXpaddingX?: unknown;——
paddingYpaddingY?: unknown;——
radiusradius?: unknown;——
refref?: unknown;——
rowFromrowFrom?: unknown;——
shadowshadow?: unknown;——
shrinkshrink?: unknown;——
stickysticky?: unknown;——
toptop?: unknown;——
widthwidth?: unknown;——
wrapwrap?: unknown;——
zIndexzIndex?: unknown;——

CloseNativeProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
labellabel?: string | undefined;——

CloseOwnProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
labellabel?: string | undefined;——

ClusterProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
alignalign?: unknown;——
asChildasChild?: unknown;——
backgroundbackground?: unknown;——
borderborder?: unknown;——
borderBottomborderBottom?: unknown;——
borderRightborderRight?: unknown;——
borderTopborderTop?: unknown;——
centercenter?: unknown;——
childrenchildren?: unknown;——
directiondirection?: undefined;——
gapgap?: unknown;——
growgrow?: unknown;——
heightheight?: unknown;——
hidehide?: unknown;——
justifyjustify?: unknown;——
marginmargin?: unknown;——
marginXmarginX?: unknown;——
marginYmarginY?: unknown;——
maxHeightmaxHeight?: unknown;——
maxWidthmaxWidth?: unknown;——
minHeightminHeight?: unknown;——
minWidthminWidth?: unknown;——
paddingpadding?: unknown;——
paddingXpaddingX?: unknown;——
paddingYpaddingY?: unknown;——
radiusradius?: unknown;——
refref?: unknown;——
rowFromrowFrom?: undefined;——
shadowshadow?: unknown;——
shrinkshrink?: unknown;——
stickysticky?: unknown;——
toptop?: unknown;——
widthwidth?: unknown;——
wrapwrap?: undefined;——
zIndexzIndex?: unknown;——

CommandPaletteContentProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
closeOnBackdropcloseOnBackdrop?: boolean | undefined;——
closeOnEscapecloseOnEscape?: boolean | undefined;——
descriptiondescription?: string | undefined;——
initialFocusinitialFocus?: string | false | (() => HTMLElement | null) | undefined;——
onEscapeKeyDownonEscapeKeyDown?: ((event: KeyboardEvent) => void) | undefined;——
onInteractOutsideonInteractOutside?: ((event: Event) => void) | undefined;——
onPointerDownOutsideonPointerDownOutside?: ((event: PointerEvent) => void) | undefined;——
overlayPropsoverlayProps?: DialogOverlayProps | undefined;——
titletitle: string;——

CommandPaletteLinkProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
closeOnSelectcloseOnSelect?: boolean | undefined;——
onBeforeNavigateonBeforeNavigate?: ((event: Event) => void) | undefined;——

CommandPaletteListProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
refref?: Ref<HTMLUListElement>;——

ContainerProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
alignalign?: ResponsiveValue<BlockAlign> | undefined;——
asas?: "div" | undefined;——
backgroundbackground?: ResponsiveValue<BlockBackground> | undefined;——
borderborder?: ResponsiveValue<boolean> | undefined;——
borderBottomborderBottom?: ResponsiveValue<boolean> | undefined;——
borderRightborderRight?: ResponsiveValue<boolean> | undefined;——
borderTopborderTop?: ResponsiveValue<boolean> | undefined;——
centercenter?: ResponsiveValue<boolean> | undefined;——
childrenchildren?: unknown;——
classNameclassName?: string | undefined;——
directiondirection?: ResponsiveValue<BlockDirection> | undefined;——
gapgap?: ResponsiveValue<BlockSpace> | undefined;——
growgrow?: ResponsiveValue<number | boolean> | undefined;——
heightheight?: ResponsiveValue<BlockSize> | undefined;——
hidehide?: ResponsiveValue<boolean> | undefined;——
justifyjustify?: ResponsiveValue<BlockJustify> | undefined;——
marginmargin?: ResponsiveValue<BlockMargin> | undefined;——
marginXmarginX?: ResponsiveValue<BlockMargin> | undefined;——
marginYmarginY?: ResponsiveValue<BlockMargin> | undefined;——
maxHeightmaxHeight?: ResponsiveValue<BlockSize> | undefined;——
minHeightminHeight?: ResponsiveValue<BlockSize> | undefined;——
minWidthminWidth?: ResponsiveValue<BlockSize> | undefined;——
paddingpadding?: ResponsiveValue<BlockSpace> | undefined;——
paddingXpaddingX?: ResponsiveValue<BlockSpace> | undefined;——
paddingYpaddingY?: ResponsiveValue<BlockSpace> | undefined;——
radiusradius?: ResponsiveValue<BlockRadius> | undefined;——
rowFromrowFrom?: BlockRowFrom | undefined;——
shadowshadow?: ResponsiveValue<BlockShadow> | undefined;——
shrinkshrink?: ResponsiveValue<number | boolean> | undefined;——
sizesize?: BlockSize | undefined;——
stickysticky?: boolean | undefined;——
toptop?: ResponsiveValue<BlockSpace> | undefined;——
widthwidth?: ResponsiveValue<BlockSize> | undefined;——
wrapwrap?: ResponsiveValue<boolean> | undefined;——
zIndexzIndex?: ResponsiveValue<BlockZIndex> | undefined;——

CopyButtonProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
failureMessagefailureMessage?: string | undefined;——
labellabel: string;——
resetAfterresetAfter?: number | undefined;——
successMessagesuccessMessage?: string | undefined;——
texttext: string;——

DialogProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
defaultOpendefaultOpen?: boolean | undefined;——
idid?: string | undefined;——
modalmodal?: boolean | undefined;——
onOpenChangeonOpenChange?: ((open: boolean) => void) | undefined;——
openopen?: boolean | undefined;——

EmptyStateProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
actionaction?: unknown;——
alignalign?: ResponsiveValue<BlockAlign> | undefined;——
asas?: "div" | undefined;——
asChildasChild?: false | undefined;——
backgroundbackground?: ResponsiveValue<BlockBackground> | undefined;——
borderborder?: ResponsiveValue<boolean> | undefined;——
borderBottomborderBottom?: ResponsiveValue<boolean> | undefined;——
borderRightborderRight?: ResponsiveValue<boolean> | undefined;——
borderTopborderTop?: ResponsiveValue<boolean> | undefined;——
centercenter?: ResponsiveValue<boolean> | undefined;——
childrenchildren?: unknown;——
classNameclassName?: string | undefined;——
descriptiondescription?: unknown;——
directiondirection?: ResponsiveValue<BlockDirection> | undefined;——
gapgap?: ResponsiveValue<BlockSpace> | undefined;——
growgrow?: ResponsiveValue<number | boolean> | undefined;——
heightheight?: ResponsiveValue<BlockSize> | undefined;——
hidehide?: ResponsiveValue<boolean> | undefined;——
iconicon?: unknown;——
justifyjustify?: ResponsiveValue<BlockJustify> | undefined;——
marginmargin?: ResponsiveValue<BlockMargin> | undefined;——
marginXmarginX?: ResponsiveValue<BlockMargin> | undefined;——
marginYmarginY?: ResponsiveValue<BlockMargin> | undefined;——
maxHeightmaxHeight?: ResponsiveValue<BlockSize> | undefined;——
maxWidthmaxWidth?: ResponsiveValue<BlockSize> | undefined;——
minHeightminHeight?: ResponsiveValue<BlockSize> | undefined;——
minWidthminWidth?: ResponsiveValue<BlockSize> | undefined;——
paddingpadding?: ResponsiveValue<BlockSpace> | undefined;——
paddingXpaddingX?: ResponsiveValue<BlockSpace> | undefined;——
paddingYpaddingY?: ResponsiveValue<BlockSpace> | undefined;——
radiusradius?: ResponsiveValue<BlockRadius> | undefined;——
refref?: Ref<unknown>;——
rowFromrowFrom?: BlockRowFrom | undefined;——
shadowshadow?: ResponsiveValue<BlockShadow> | undefined;——
shrinkshrink?: ResponsiveValue<number | boolean> | undefined;——
stickysticky?: boolean | undefined;——
titletitle?: unknown;——
titleAstitleAs?: EmptyStateHeadingTag | undefined;——
toptop?: ResponsiveValue<BlockSpace> | undefined;——
widthwidth?: ResponsiveValue<BlockSize> | undefined;——
wrapwrap?: ResponsiveValue<boolean> | undefined;——
zIndexzIndex?: ResponsiveValue<BlockZIndex> | undefined;——

FieldErrorProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
refref?: Ref<HTMLParagraphElement>;——

FieldHintProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
refref?: Ref<HTMLParagraphElement>;——

FieldProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
invalidinvalid?: boolean | undefined;——
refref?: Ref<HTMLDivElement>;——

FooterContentProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
refref?: Ref<HTMLDivElement>;——

FooterDescriptionProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
refref?: Ref<HTMLParagraphElement>;——

FooterLinkProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
refref?: Ref<HTMLAnchorElement>;——

FooterLinksProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
refref?: Ref<HTMLElement>;——

FooterSectionProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
refref?: Ref<HTMLDivElement>;——

FooterTitleProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
refref?: Ref<HTMLHeadingElement>;——

GridProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
alignalign?: ResponsiveValue<GridAlign> | undefined;——
asas?: TElement | undefined;——
childrenchildren?: unknown;——
columnscolumns?: ResponsiveValue<GridColumns> | undefined;——
gapgap?: ResponsiveValue<BlockSpace> | undefined;——
refref?: Ref<HTMLElement>;——

HeaderProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
positionposition?: "sticky" | "static" | undefined;——
stickysticky?: boolean | undefined;——

HeadingProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
fontfont?: TextFont | undefined;——
levellevel: HeadingLevel;——
numericnumeric?: TextNumeric | undefined;——
refref?: Ref<HTMLHeadingElement>;——
sizesize?: HeadingSize | undefined;——
tonetone?: TextTone | undefined;——
truncatetruncate?: boolean | undefined;——
weightweight?: TextWeight | undefined;——
wrapwrap?: TextWrap | undefined;——

InputGroupProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
attachedattached?: boolean | undefined;——
childrenchildren?: unknown;——
orientationorientation?: InputGroupOrientation | undefined;——
refref?: Ref<HTMLDivElement>;——

InputGroupTextAsChildProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
asChildasChild: true;——
childrenchildren: JSXElement;——
refref?: Ref<unknown>;——

InputGroupTextProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
asChildasChild?: false | undefined;——
childrenchildren?: unknown;——
refref?: Ref<HTMLSpanElement>;——

MetaStripProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
densitydensity?: MetaStripDensity | undefined;——
itemsitems: readonly MetaStripItem[];——
refref?: Ref<HTMLDListElement>;——

NavbarProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
breakpointbreakpoint?: false | NavbarCollapseBreakpoint | undefined;——
collapseAtcollapseAt?: false | NavbarCollapseBreakpoint | undefined;——
collapseIconcollapseIcon?: unknown;——
collapseLabelcollapseLabel?: string | undefined;——

NavBrandProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
alignalign?: ResponsiveValue<BlockAlign> | undefined;——
asChildasChild?: boolean | undefined;——
backgroundbackground?: ResponsiveValue<BlockBackground> | undefined;——
borderborder?: ResponsiveValue<boolean> | undefined;——
borderBottomborderBottom?: ResponsiveValue<boolean> | undefined;——
borderRightborderRight?: ResponsiveValue<boolean> | undefined;——
borderTopborderTop?: ResponsiveValue<boolean> | undefined;——
centercenter?: ResponsiveValue<boolean> | undefined;——
childrenchildren?: unknown;——
directiondirection?: ResponsiveValue<BlockDirection> | undefined;——
gapgap?: ResponsiveValue<BlockSpace> | undefined;——
growgrow?: ResponsiveValue<number | boolean> | undefined;——
heightheight?: ResponsiveValue<BlockSize> | undefined;——
hidehide?: ResponsiveValue<boolean> | undefined;——
justifyjustify?: ResponsiveValue<BlockJustify> | undefined;——
marginmargin?: ResponsiveValue<BlockMargin> | undefined;——
marginXmarginX?: ResponsiveValue<BlockMargin> | undefined;——
marginYmarginY?: ResponsiveValue<BlockMargin> | undefined;——
maxHeightmaxHeight?: ResponsiveValue<BlockSize> | undefined;——
maxWidthmaxWidth?: ResponsiveValue<BlockSize> | undefined;——
minHeightminHeight?: ResponsiveValue<BlockSize> | undefined;——
minWidthminWidth?: ResponsiveValue<BlockSize> | undefined;——
paddingpadding?: ResponsiveValue<BlockSpace> | undefined;——
paddingXpaddingX?: ResponsiveValue<BlockSpace> | undefined;——
paddingYpaddingY?: ResponsiveValue<BlockSpace> | undefined;——
radiusradius?: ResponsiveValue<BlockRadius> | undefined;——
refref?: Ref<unknown>;——
rowFromrowFrom?: BlockRowFrom | undefined;——
shadowshadow?: ResponsiveValue<BlockShadow> | undefined;——
shrinkshrink?: ResponsiveValue<number | boolean> | undefined;——
stickysticky?: boolean | undefined;——
toptop?: ResponsiveValue<BlockSpace> | undefined;——
widthwidth?: ResponsiveValue<BlockSize> | undefined;——
wrapwrap?: ResponsiveValue<boolean> | undefined;——
zIndexzIndex?: ResponsiveValue<BlockZIndex> | undefined;——

NavDropdownProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
labellabel: unknown;——

NavGroupProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
labellabel?: unknown;——
titletitle?: unknown;——

NavItemAsChildProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
activeactive?: boolean | undefined;——
asChildasChild: true;——
childrenchildren: JSXElement;——
refref?: Ref<unknown>;——

NavItemProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
activeactive?: boolean | undefined;——
asChildasChild?: false | undefined;——
childrenchildren?: unknown;——
refref?: Ref<HTMLAnchorElement>;——

NavLinkProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
activeactive?: boolean | undefined;——
matchmatch?: NavLinkMatch | undefined;——

PageHeaderProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
actionsactions?: unknown;——
descriptiondescription?: unknown;——
directiondirection?: undefined;——
rowFromrowFrom?: undefined;——
titletitle: unknown;——

PillProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
activeactive?: boolean | undefined;——
matchmatch?: NavLinkMatch | undefined;——

PillsAsChildProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
asChildasChild: true;——
childrenchildren: JSXElement;——
refref?: Ref<unknown>;——

PillsProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
asChildasChild?: false | undefined;——
childrenchildren?: unknown;——
refref?: Ref<HTMLElement>;——

SeparatorAsChildProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
asChildasChild: true;——
childrenchildren: JSXElement;——
decorativedecorative?: boolean | undefined;——
orientationorientation?: "vertical" | "horizontal" | undefined;——
refref?: Ref<unknown>;——

SeparatorNativeProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
asChildasChild?: false | undefined;——
childrenchildren?: unknown;——
decorativedecorative?: boolean | undefined;——
orientationorientation?: "vertical" | "horizontal" | undefined;——
refref?: Ref<HTMLDivElement>;——

SeparatorOwnProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
decorativedecorative?: boolean | undefined;——
orientationorientation?: "vertical" | "horizontal" | undefined;——

SeparatorProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
asChildasChild?: boolean | undefined;——
childrenchildren?: unknown;——
decorativedecorative?: boolean | undefined;——
orientationorientation?: "vertical" | "horizontal" | undefined;——
refref?: ((value: unknown) => void) | { current: unknown; } | ((value: HTMLDivElement | null) => void) | { current: HTMLDivElement | null; } | null | undefined;——

SidebarButtonProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
activeactive?: boolean | undefined;——
asChildasChild?: boolean | undefined;——
sizesize?: "default" | "sm" | "lg" | undefined;——
tooltiptooltip?: string | undefined;——
tooltipSidetooltipSide?: SidebarTooltipSide | undefined;——
variantvariant?: "default" | "outline" | undefined;——

SidebarPartProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
asas?: keyof JSX.IntrinsicElements | undefined;——
asChildasChild?: boolean | undefined;——

SidebarProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
collapsiblecollapsible?: SidebarCollapsible | undefined;——
shrinkshrink?: ResponsiveValue<number | boolean> | undefined;——
sideside?: SidebarSide | undefined;——
variantvariant?: SidebarVariant | undefined;——
widthwidth?: ResponsiveValue<BlockSize> | undefined;——

SidebarRailProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
activeactive?: boolean | undefined;——
asChildasChild?: boolean | undefined;——
sizesize?: "default" | "sm" | "lg" | undefined;——
tooltiptooltip?: string | undefined;——
tooltipSidetooltipSide?: SidebarTooltipSide | undefined;——
variantvariant?: "default" | "outline" | undefined;——

StackProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
alignalign?: unknown;——
asChildasChild?: unknown;——
backgroundbackground?: unknown;——
borderborder?: unknown;——
borderBottomborderBottom?: unknown;——
borderRightborderRight?: unknown;——
borderTopborderTop?: unknown;——
centercenter?: unknown;——
childrenchildren?: unknown;——
directiondirection?: undefined;——
gapgap?: ResponsiveValue<BlockSpace> | undefined;——
growgrow?: unknown;——
heightheight?: unknown;——
hidehide?: unknown;——
justifyjustify?: unknown;——
marginmargin?: unknown;——
marginXmarginX?: unknown;——
marginYmarginY?: unknown;——
maxHeightmaxHeight?: unknown;——
maxWidthmaxWidth?: unknown;——
minHeightminHeight?: unknown;——
minWidthminWidth?: unknown;——
pp?: ResponsiveValue<BlockSpace> | undefined;——
paddingpadding?: ResponsiveValue<BlockSpace> | undefined;——
paddingXpaddingX?: unknown;——
paddingYpaddingY?: unknown;——
radiusradius?: unknown;——
refref?: unknown;——
rowFromrowFrom?: undefined;——
shadowshadow?: unknown;——
shrinkshrink?: unknown;——
stickysticky?: unknown;——
toptop?: unknown;——
widthwidth?: unknown;——
wrapwrap?: ResponsiveValue<boolean> | undefined;——
zIndexzIndex?: unknown;——

TabProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
activeactive?: boolean | undefined;——
matchmatch?: NavLinkMatch | undefined;——

TabsAsChildProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
asChildasChild: true;——
childrenchildren: JSXElement;——
refref?: Ref<unknown>;——

TabsProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
asChildasChild?: false | undefined;——
childrenchildren?: unknown;——
refref?: Ref<HTMLElement>;——

TextProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
asas?: TextElement | undefined;——
childrenchildren?: unknown;——
fontfont?: TextFont | undefined;——
numericnumeric?: TextNumeric | undefined;——
refref?: Ref<HTMLElement>;——
sizesize?: TextSize | undefined;——
tonetone?: TextTone | undefined;——
truncatetruncate?: boolean | undefined;——
weightweight?: TextWeight | undefined;——
wrapwrap?: TextWrap | undefined;——

ThemePickerProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
labellabel?: string | undefined;——
themesthemes?: readonly ThemeOption[] | undefined;——

ThemeScopeProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
defaultThemedefaultTheme?: ThemeName | undefined;——
storageKeystorageKey?: string | undefined;——
themesthemes?: readonly ThemeOption[] | undefined;——

ThemeToggleProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
childrenchildren?: unknown;——
darkIcondarkIcon?: unknown;——
lightIconlightIcon?: unknown;——
onPressonPress?: ((event: PressEvent) => void) | undefined;——
systemIconsystemIcon?: unknown;——
themesthemes?: readonly ThemeName[] | undefined;——

ToolbarProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
actionsactions?: unknown;——
directiondirection?: undefined;——
rowFromrowFrom?: undefined;——
titletitle: unknown;——

VirtualListAsChildProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
apiRefapiRef?: Ref<VirtualListApi<Item> | null>;——
asChildasChild: true;——
childrenchildren: JSXElement;——
followBottomfollowBottom?: boolean | { threshold?: number; } | undefined;——
getKeygetKey: (item: Item, index: number) => string | number;——
getRowHeightgetRowHeight?: ((item: Item, index: number) => number) | undefined;—Optional keyed row sizing. When omitted, VirtualList retains its fixed-height arithmetic path.
itemsitems: readonly Item[];——
onScrollonScroll?: ((event: Event) => void) | undefined;——
overscanoverscan?: VirtualOverscan | undefined;——
refref?: Ref<HTMLElement>;——
rowComponentrowComponent: VirtualListRowComponent<Item>;——
rowHeightrowHeight: number;——
viewportviewport?: "lg" | undefined;——

VirtualListProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
apiRefapiRef?: Ref<VirtualListApi<Item> | null>;——
asChildasChild?: false | undefined;——
followBottomfollowBottom?: boolean | { threshold?: number; } | undefined;——
getKeygetKey: (item: Item, index: number) => string | number;——
getRowHeightgetRowHeight?: ((item: Item, index: number) => number) | undefined;—Optional keyed row sizing. When omitted, VirtualList retains its fixed-height arithmetic path.
itemsitems: readonly Item[];——
onScrollonScroll?: ((event: Event) => void) | undefined;——
overscanoverscan?: VirtualOverscan | undefined;——
refref?: Ref<HTMLElement>;——
rowComponentrowComponent: VirtualListRowComponent<Item>;——
rowHeightrowHeight: number;——
viewportviewport?: "lg" | undefined;——

VirtualListRowComponentProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
indexindex: number;——
isVisibleisVisible: boolean;——
itemitem: Item;——
rowKeyrowKey: string;——

VirtualTableAsChildProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
apiRefapiRef?: Ref<VirtualTableApi<Row> | null>;——
asChildasChild: true;——
childrenchildren: JSXElement;——
columnscolumns: readonly VirtualTableColumn<Row>[];——
defaultSelectedRowKeydefaultSelectedRowKey?: string | null | undefined;——
getKeygetKey: (row: Row, index: number) => string | number;——
headerHeightheaderHeight: number;——
onRowClickonRowClick?: ((row: Row, rowIndex: number, rowKey: string, event: MouseEvent) => void) | undefined;——
onScrollonScroll?: ((event: Event) => void) | undefined;——
onSelectedRowKeyChangeonSelectedRowKeyChange?: ((next: string | null) => void) | undefined;——
overscanoverscan?: VirtualOverscan | undefined;——
refref?: Ref<HTMLElement>;——
rowHeightrowHeight: number;——
rowsrows: readonly Row[];——
selectedRowKeyselectedRowKey?: string | null | undefined;——
tableWidthtableWidth?: "compact" | undefined;——
viewportviewport?: "lg" | undefined;——

VirtualTableCellComponentProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
columncolumn: VirtualTableColumn<Row>;——
rowrow: Row;——
rowIndexrowIndex: number;——
rowKeyrowKey: string;——
selectedselected: boolean;——

VirtualTableProps

Import from @askrjs/themes/components.

PropTypeDefaultDescription
apiRefapiRef?: Ref<VirtualTableApi<Row> | null>;——
asChildasChild?: false | undefined;——
columnscolumns: readonly VirtualTableColumn<Row>[];——
defaultSelectedRowKeydefaultSelectedRowKey?: string | null | undefined;——
getKeygetKey: (row: Row, index: number) => string | number;——
headerHeightheaderHeight: number;——
onRowClickonRowClick?: ((row: Row, rowIndex: number, rowKey: string, event: MouseEvent) => void) | undefined;——
onScrollonScroll?: ((event: Event) => void) | undefined;——
onSelectedRowKeyChangeonSelectedRowKeyChange?: ((next: string | null) => void) | undefined;——
overscanoverscan?: VirtualOverscan | undefined;——
refref?: Ref<HTMLElement>;——
rowHeightrowHeight: number;——
rowsrows: readonly Row[];——
selectedRowKeyselectedRowKey?: string | null | undefined;——
tableWidthtableWidth?: "compact" | undefined;——
viewportviewport?: "lg" | undefined;——

Purpose

None of Alert, Badge, Empty, Skeleton, Spinner, or Stat ships a headless counterpart in @askrjs/ui — each lives only in the themes package, since their behavior amounts to static markup and styling rather than anything complex enough to justify a separate logic layer. Stat is the odd one out in a different way: it has no dedicated @askrjs/themes/stat subpath, so you reach it through the shared @askrjs/themes/components barrel instead of importing it on its own.

Install and import

Alert, Badge, Empty, Skeleton, and Spinner each have their own themes subpath — @askrjs/themes/alert, @askrjs/themes/badge, @askrjs/themes/empty, @askrjs/themes/skeleton, @askrjs/themes/spinner. Stat has no subpath of its own: import Stat, StatLabel, StatValue, and StatDescription from the full @askrjs/themes/components barrel instead — or pull all six components from that same barrel if you'd rather have one import for the whole group.

Live examples

The example branches across the states these components exist to cover — pending, failed, empty, and loaded — so you can see which one belongs in each branch rather than reaching for whichever is nearest. Stat comes from the @askrjs/themes/components barrel rather than its own subpath, and is otherwise a normal Stat / StatLabel / StatValue composition.

Anatomy

Alert is a single component with icon, title, description, and actions slots plus a titleAs heading tag; Badge and Skeleton are similarly flat, single components with no compound parts. This group actually ships two different empty-state components, not one — don't conflate them: Empty is the compound one, with EmptyHeader, EmptyMedia, EmptyTitle, EmptyDescription, and EmptyContent slotting into an Empty wrapper (closer in shape to Card than to Alert or Badge), while EmptyState is a separate, single all-in-one component (icon/title/titleAs/description/action props, no compound parts of its own) for the common case where you don't need to hand-assemble the pieces. Spinner has no compound structure either; it's a themed wrapper around ProgressCircle's indeterminate presentation. Stat is compound too: a Stat wrapper composes with StatLabel, StatValue, and StatDescription children.

State model

None of these six own any state — every one of them is presentational, driven entirely by the props you pass on each render, and that includes Stat. Alert accepts an onDismiss callback for a caller-owned dismiss button, but the decision to mount or unmount the alert is still yours; Alert doesn't track its own visibility internally.

Keyboard and accessibility

Alert accepts a dismissLabel for the accessible name of its optional dismiss control, since that's the only interactive part across this group. Badge, Skeleton, Empty, Stat, and Spinner are non-interactive and have no keyboard behavior to test; because Spinner is effectively ProgressCircle's indeterminate look, give it a label so assistive tech gets something better than silence while it spins.

Styling and tokens

Alert and Badge both take a variant prop that maps to theme tokens instead of requiring custom color CSS — Alert's set is 'default' | 'info' | 'success' | 'warning' | 'danger', Badge's is a bit wider with 'secondary' and 'outline' added. Skeleton takes explicit width/height so its placeholder shape matches the real content it's standing in for, and Spinner takes a size of 'sm' | 'md' | 'lg'.

API

Badge supports asChild to render as something other than a span, and Skeleton supports the same pattern for its wrapping div. Alert's props are title, description, icon, actions, titleAs, dismissLabel, onDismiss, and variant. EmptyState (the single all-in-one component, not the compound Empty/EmptyHeader/EmptyMedia/EmptyTitle/EmptyDescription/EmptyContent family) takes icon, title, titleAs, description, and action.

Edge cases

Stat has no dedicated subpath, so a @askrjs/themes/stat import will fail — reach for @askrjs/themes/components instead, which is easy to miss if you're used to every other component here having its own subpath. Skeleton has no built-in timeout, so pair it with the real loading/error state next to it instead of letting it sit on screen indefinitely if a request stalls.

See Progress for a determinate alternative to Spinner's indeterminate look, and Toast and Toaster for time-boxed feedback instead of a persistent inline Alert.