# oks-ui — full context
> oks-ui is a strict-TypeScript React component library with a CSS-variable
> design system. Zero runtime dependencies beyond React, no theme provider, no
> configuration, accessible by default. MIT licensed and free.
>
> Homepage: https://www.oks-ui.com
> Package: https://www.npmjs.com/package/oks-ui
> License: MIT
## What it is
oks-ui gives you ~65 ready-made React components (buttons, modals, drawers,
forms, tables, charts, toasts, a command palette, a Kanban board, a block
editor, and more) with a consistent design system driven entirely by CSS custom
properties. Every color, space, radius, and shadow is an `--oks-*` variable, so
theming needs no build step, no config object, and no React context.
Design goals:
- **Strict TypeScript.** Built with `noUncheckedIndexedAccess`,
`exactOptionalPropertyTypes`, and the full strict suite. Props are stable and
intentional.
- **Zero runtime dependencies.** Nothing ships to your bundle except the
components themselves; the only peers are `react` and `react-dom`.
- **CSS-variable tokens.** Theme by overriding `--oks-*` properties from your own
CSS. Semantic roles (`primary`, `secondary`, `success`, `warning`, `danger`,
…) are aliases you can point at any palette.
- **Accessible by default.** Keyboard navigation, `:focus-visible` rings, ARIA
roles, and `prefers-reduced-motion` support are built into every component.
- **Opt-in utilities.** A prefixed `.oks-*` utility layer is available as a
separate CSS import for rapid prototyping alongside components.
## Install and use
```bash
npm install oks-ui
# or: pnpm add oks-ui / yarn add oks-ui
```
```ts
// Import the styles once, in your app entry or root layout:
import "oks-ui/styles.css";
```
```tsx
import { Button } from "oks-ui";
export function Example() {
return ;
}
```
No provider wrapper and no configuration are required. Components are named
exports from the package root: `import { Button, Modal, Table, Chart } from "oks-ui"`.
Per-component subpaths are also available if you only need one component and
its CSS: `import { Button } from "oks-ui/button"; import "oks-ui/button.css";`.
Style entry points:
- `oks-ui/styles.css` — tokens + utilities + component styles (recommended).
- `oks-ui/tokens.css` — just the `--oks-*` custom properties.
- `oks-ui/utilities.css` — just the prefixed `.oks-*` utility classes.
- `oks-ui/motion` — optional motion utilities.
Per-component entry points (oks-ui 1.2+): import just what you use, each with
its own stylesheet — `import { Button } from "oks-ui/button"` plus
`import "oks-ui/button.css"`. Every component has one (`oks-ui/table`,
`oks-ui/text-editor`, …); the `oks-ui` barrel keeps working.
Requires React 18 or newer. Works with the Next.js App Router (mark files that
render oks-ui components with `"use client"`; components carry no client
markers of their own).
## Theming
```css
:root {
/* Override any token */
--oks-color-primary-500: #7c3aed;
--oks-space-4: 18px;
/* Point a semantic role at a built-in palette */
--oks-color-secondary-500: var(--oks-palette-slate-500);
}
```
Dark mode is driven by a `data-theme="dark"` attribute on ``; token values
respond to it automatically. Built-in palettes include slate, gray, zinc,
neutral, stone, red, orange, amber, and more.
## Components (65)
Each component has an interactive props playground at
`https://www.oks-ui.com/components//`.
### Actions
- **Button** (`/components/button`): A pressable element with variants, colors, sizes, loading state, and ripple feedback.
- **ButtonGroup** (`/components/button-group`): Merges adjacent Buttons into a single control, sharing variant/color/size defaults.
### Feedback
- **Alert** (`/components/alert`): Contextual feedback message with icon, title, description, and dismiss.
- **Toast** (`/components/toast`): Provider-based toast notification system with a promise-aware API.
- **Loader** (`/components/loader`): Loading spinner for indeterminate progress, with 7 built-in variants.
- **Modal** (`/components/modal`): Dialog modal with focus trapping, keyboard dismissal, and safe stacking.
### Navigation
- **Tabs** (`/components/tabs`): Tabbed content navigation with a composable, roving-tabindex API.
- **Drawer** (`/components/drawer`): Slide-in panel from any edge of the viewport, built on the same overlay stack as Modal.
- **Dropdown** (`/components/dropdown`): Menu dropdown with triggers, sections, submenus, and opt-in virtualization.
- **SteppedForm** (`/components/stepped-form`): Multi-step form flow with progress tracking, built on FormFieldSet.
- **Nav** (`/components/nav`): Multi-level navigation tree with collapsible groups, active-route styling, an accordion mode, and a collapsed icon rail.
- **Breadcrumbs** (`/components/breadcrumbs`): Navigation trail with a chevron separator, collapse-to-ellipsis, and router-link polymorphism.
- **Pagination** (`/components/pagination`): Windowed page-number control for a list or table footer, with a "Showing X–Y of Z" summary.
- **SegmentedControl** (`/components/segmented-control`): Compact inline switch between a few mutually exclusive options, with an animated selection thumb.
- **CommandPalette** (`/components/command-palette`): The Cmd+K overlay: a search box over a fuzzy-filtered, grouped list of actions and destinations, with full keyboard navigation and a useCommandPalette hotkey hook.
### Data Display
- **Badge** (`/components/badge`): Notification badge with count, dot, and placement, plus a bump animation on change.
- **Avatar** (`/components/avatar`): User avatar with group support, status indicator, and image-load fallback.
- **Chip** (`/components/chip`): Compact tag or pill element, closable and selectable.
- **Tooltip** (`/components/tooltip`): Hover/focus tooltip with positioning logic and touch-aware delays.
- **Table** (`/components/table`): Config-driven data table with sorting, row selection, row expansion, a sticky header, and loading and empty states.
- **EmptyState** (`/components/empty-state`): Centered placeholder for an empty or no-match list, with an icon, title, description, and actions.
- **Progress** (`/components/progress`): Linear and circular progress indicators, determinate or indeterminate, with an optional value label.
- **TreeView** (`/components/tree-view`): Hierarchy you can open, select and check, with check marks that roll up and children that load on demand.
- **DiffView** (`/components/diff-view`): Compares two texts line by line, side by side or in one column, with changed words highlighted and long unchanged stretches folded.
- **MediaLibrary** (`/components/media-library`): A grid of images and files to pick from, with search, type filters, one or many picks, load more and upload.
- **Accordion** (`/components/accordion`): Collapsible sections with single-open or multiple modes, three visual variants, and animated open/close.
### Data Visualization
- **Line Chart** (`/components/chart-line`): Chart type="line" -- ChartLineOptions: curve style and stroke width.
- **Area Chart** (`/components/chart-area`): Chart type="area" -- a line chart with the area under it filled automatically.
- **Bar Chart** (`/components/chart-bar`): Chart type="bar" -- ChartBarOptions: stacked series and corner radius.
- **Column Chart** (`/components/chart-column`): Chart type="column" -- ChartColumnOptions: stacked series and corner radius.
- **Pie Chart** (`/components/chart-pie`): Chart type="pie" -- ChartPieStyleOptions: slice border. Single series, one value per slice.
- **Donut Chart** (`/components/chart-donut`): Chart type="donut" -- ChartPieStyleOptions: slice border and inner ratio.
- **Heatmap Chart** (`/components/chart-heatmap`): Chart type="heatmap" -- ChartHeatmapOptions: series as rows, categories as columns, one hue scaled by opacity across the value domain.
- **Sparkline Chart** (`/components/chart-sparkline`): Chart type="sparkline" -- a small trend with no axes, legend or frame, for a table cell or a stat card.
- **Combo Chart** (`/components/chart-combo`): Chart type="combo" -- columns, lines and areas on one set of categories, with an optional second value axis on the right.
- **Chart States** (`/components/chart-states`): isLoading/error/empty -- real, separate props that each replace the chart entirely, shared across every chart type.
### Layout & Display
- **Divider** (`/components/divider`): Horizontal or vertical rule, with an optional inline label.
- **Backdrop** (`/components/backdrop`): Overlay backdrop for modals, drawers, and menus, with blur and stacking support.
- **PageTitle** (`/components/page-title`): Semantic page/section heading with an optional icon, subtitle, and tooltip.
- **Card** (`/components/card`): Bordered, rounded, elevated surface container, with header, body, and footer regions.
- **Stat** (`/components/stat`): KPI block with a label, value, trend delta pill, optional icon and sparkline, plus a responsive StatGroup.
- **Timeline** (`/components/timeline`): Vertical activity feed with dot or icon markers on a connector rail.
- **Calendar** (`/components/calendar`): Standalone month-grid view with single or range selection, min/max and per-day constraints, a renderDay slot for event markers, and full grid keyboard navigation.
- **SplitLayout** (`/components/split-layout`): Resizable multi-pane frame for email 3-pane, master-detail, and split editors, with keyboard-resizable dividers and collapsible panes.
- **Message** (`/components/message`): Chat message-thread primitives: a screen-reader-live MessageList and left/right-aligned Message bubbles with author, avatar, timestamp, delivery status, and continuation grouping.
- **Board** (`/components/board`): Data-driven Kanban board with dependency-free pointer, touch, and keyboard drag-and-drop, column card limits, and live-region announcements.
- **Skeleton** (`/components/skeleton`): Loading placeholder, as a shaped block or a wrapper that reveals its content once loaded.
- **Sortable** (`/components/sortable`): Reorder a list, row or grid by pointer, touch or keyboard, with every step announced to screen readers.
- **DropZone** (`/components/drop-zone`): Draggable items and drop areas that work with a pointer, a finger or the keyboard, and take files dropped from the computer.
### Forms
- **Rating** (`/components/rating`): Star rating you can set or show: whole or half stars, your own icon, keyboard and touch, and a field in Form.
- **ColorPicker** (`/components/color-picker`): Colour picker with a saturation area, hue and opacity sliders, hex, rgb or hsl text, swatches and an eye dropper, plus a ColorField for forms.
- **CodeField** (`/components/code-field`): Text field for code and settings with highlighting, line numbers, Tab to indent and a live JSON check, with no dependencies.
- **Text Field** (`/components/form-field-text`): FormFieldSet type="text" -- TextField, also covers number/url/search/color/email.
- **Textarea Field** (`/components/form-field-textarea`): FormFieldSet type="textarea" -- multi-line text with a length counter.
- **Select Field** (`/components/form-field-select`): FormFieldSet type="select" -- single/multi select with a custom popover or native mode.
- **Password Field** (`/components/form-field-password`): FormFieldSet type="password" -- reveal toggle and strong-password requirements.
- **OTP Field** (`/components/form-field-otp`): FormFieldSet type="otp" -- segmented or single-input one-time code entry.
- **Phone Field** (`/components/form-field-phone`): FormFieldSet type="phone" -- phone number with a country calling-code selector.
- **Range Field** (`/components/form-field-range`): FormFieldSet type="range" -- single or dual-thumb slider.
- **File Field** (`/components/form-field-file`): FormFieldSet type="file" -- inline or dropzone file upload with previews.
- **Switch Field** (`/components/form-field-switch`): FormFieldSet type="switch" -- toggle with optional on/off state text.
- **Radio Group Field** (`/components/form-field-radio`): FormFieldSet type="radio" -- single-select radio group.
- **Checkbox Group Field** (`/components/form-field-checkbox`): FormFieldSet type="checkbox" -- multi-select checkbox group.
- **Date Picker Field** (`/components/form-field-datepicker`): FormFieldSet type="datepicker" -- single date or range, with time and presets.
### Editors
- **TextEditor** (`/components/text-editor`): Block-based rich text editor (Notion-style) with 17 block types, slash-menu insertion, Markdown shortcuts, rich paste, and drag-and-drop reordering.
## Props reference
Prop name, type, default, and a one-line description for each component.
The full table for each is on its component page.
### Button (`/components/button`)
- `children` (`ReactNode`): Button label/content.
- `startContent` (`ReactNode`): Content rendered before the label.
- `endContent` (`ReactNode`): Content rendered after the label.
- `spinner` (`ReactNode`, default built-in spinner): Overrides the default loading spinner.
- `spinnerPlacement` (`"start" | "end"`, default start): Where the loading spinner renders relative to the label.
- `variant` (`"solid" | "soft" | "bordered" | "ghost" | "link"`, default solid): Visual style variant.
- `color` (`"default" | "primary" | "secondary" | "info" | "success" | "warning" | "danger"`, default default): Semantic color.
- `colorDepth` (`50 | 100 | ... | 950`, default 500): Shade depth for the selected color.
- `size` (`"xs" | "xs-sm" | "sm" | "md" | "lg" | "xl"`, default md): Button size.
- `radius` (`"none" | "xs" | "xs-sm" | "sm" | "md" | "lg" | "full"`, default md): Border radius.
- `shadow` (`"none" | "xs" | "xs-sm" | "sm" | "md" | "lg"`, default none): Box-shadow depth.
- `fullWidth` (`boolean`, default false): Expands to fill available horizontal space.
- `isIconOnly` (`boolean`, default false): Renders a square icon button.
- `as` (`ElementType`, default href ? "a" : "button"): Render as a different element or component.
- `href` (`string`): Renders as an anchor when set.
- `target` (`string`): Anchor target.
- `rel` (`string`, default "noopener noreferrer" when target="_blank"): Anchor rel attribute.
- `download` (`string | boolean`): Anchor download attribute.
- `tooltip` (`ReactNode | boolean | (Omit & { content?: ReactNode })`): Wraps the button in the built-in Tooltip component when set.
- `isDisabled` (`boolean`, default false): Disables the button; sets aria-disabled + tabIndex=-1 when rendered as an anchor.
- `isLoading` (`boolean`, default false): Shows a spinner and sets aria-busy; stays focusable by design.
- `disableRipple` (`boolean`, default false): Disables the click ripple effect.
- `disableAnimation` (`boolean`, default false): Disables all transitions/animations, including the ripple.
- `onPress / onPressStart / onPressEnd / onPressUp / onPressChange` (`(e) => void`): Press-style callbacks alongside native onClick.
- `className` (`string`): Class applied to the root element.
- `style` (`CSSProperties`): Inline styles for the root element.
### ButtonGroup (`/components/button-group`)
- `children` (`ReactNode`): Buttons rendered inside the group.
- `variant` (`"solid" | "soft" | "bordered" | "ghost" | "link"`, default solid): Default variant for child Buttons that don't set their own.
- `color` (`"default" | "primary" | "secondary" | "info" | "success" | "warning" | "danger"`, default default): Default color for child Buttons that don't set their own.
- `colorDepth` (`50 | 100 | ... | 950`): Optional default depth, only applied when provided.
- `size` (`"xs" | "xs-sm" | "sm" | "md" | "lg" | "xl"`, default md): Default size for child Buttons that don't set their own.
- `radius` (`"none" | "xs" | "xs-sm" | "sm" | "md" | "lg" | "full"`, default md): Default radius for child Buttons that don't set their own.
- `fullWidth` (`boolean`, default false): Default fullWidth for child Buttons that don't set their own.
- `isDisabled` (`boolean`, default false): Disables all child Buttons that don't set isDisabled explicitly.
- `role` (`string`, default group): ARIA role for the group container.
- `className` (`string`): Class applied to the root element.
- `style` (`CSSProperties`): Inline styles for the root element.
### Alert (`/components/alert`)
- `title` (`ReactNode`): Alert title.
- `description` (`ReactNode`): Alert body content.
- `icon` (`ReactNode`): Overrides the default color-derived status icon.
- `startContent` (`ReactNode`): Content rendered before the title/description block.
- `endContent` (`ReactNode`): Content rendered after the title/description block.
- `actions` (`ReactNode`): Action buttons rendered below the description.
- `color` (`"default" | "primary" | "secondary" | "info" | "success" | "warning" | "danger"`, default default): Semantic color, also picks the default status icon.
- `variant` (`"solid" | "soft" | "bordered"`, default solid): Visual style variant.
- `shadow` (`"none" | "xs" | "xs-sm" | "sm" | "md" | "lg"`, default none): Box-shadow depth.
- `radius` (`"none" | "xs" | "xs-sm" | "sm" | "md" | "lg" | "full"`, default md): Border radius.
- `size` (`"xs" | "xs-sm" | "sm" | "md" | "lg" | "xl"`, default md): Alert size.
- `isVisible` (`boolean`): Controlled visibility; uncontrolled defaults visible.
- `isClosable` (`boolean`, default false): Shows a close button.
- `hideIcon` (`boolean`, default false): Hides the status icon entirely.
- `hideIconWrapper` (`boolean`, default false): Hides the icon's background wrapper, keeping the icon itself.
- `closeButtonProps` (`Omit, "type">`): Extra props forwarded to the close button.
- `disableAnimation` (`boolean`, default false): Disables the enter/exit animation.
- `onClose` (`() => void`): Called when the close button is pressed.
- `onVisibleChange` (`(isVisible: boolean) => void`): Called whenever visibility changes.
- `classNames` (`Partial>`): Per-slot class overrides.
- `className` (`string`): Class applied to the root element.
- `style` (`CSSProperties`): Inline styles for the root element.
### Toast (`/components/toast`)
- `children` (`ReactNode`): Your app, rendered inside the provider.
- `position` (`"top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right"`, default "bottom-right"): Where the toast region renders.
- `maxToasts` (`number`, default 12): Total toasts kept in the queue (visible + pending).
- `maxVisibleToasts` (`number`, default 3): Toasts shown at once before stacking/queuing.
- `toastOffset` (`number`, default 0): Extra offset from the viewport edge.
- `container` (`Element | DocumentFragment | null`): Custom portal mount target.
- `defaultDuration` (`number`, default 6000): Auto-dismiss duration in ms, unless overridden per-toast or persistent.
- `toastProps` (`ToastOptions`): Default options applied to every toast from this provider.
- `motion` (`"auto" | "reduced" | "default"`, default "auto"): Animation mode; "auto" respects prefers-reduced-motion.
- `disableAnimation` (`boolean`, default false): Disables all toast animation.
- `regionProps` (`ToastRegionProps`): Extra props for the toast region container.
- `className` (`string`): Class applied to the toast region.
- `style` (`CSSProperties`): Inline styles for the toast region.
- `title` (`ReactNode`): Toast title.
- `description / message` (`ReactNode`): Toast body content.
- `icon` (`ReactNode`): Overrides the default type-derived icon.
- `showIcon / hideIcon` (`boolean`, default shown): Show or hide the icon slot; hideIcon wins when both are set.
- `loadingComponent` (`ReactNode`): Shown in the icon slot while type is "loading" (for example during a promise toast), instead of the status icon.
- `endContent` (`ReactNode`): Content rendered at the end of the toast.
- `action` (`{ label: string; onClick?: () => void }`): An inline action button.
- `type` (`"default" | "info" | "success" | "warning" | "error" | "loading"`, default derived from color, else "default"): Semantic type, also picks the default icon.
- `color` (`ToastColor`): Semantic color.
- `variant` (`"solid" | "soft" | "flat" | "bordered"`, default "flat"): Visual style variant.
- `radius` (`OksRadius`, default "md"): Border radius.
- `size` (`OksSize`, default "md"): Toast size.
- `position` (`ToastPosition`, default provider's position): Per-toast position override.
- `duration` (`number | null`, default 6000): Auto-dismiss duration in ms; null disables auto-dismiss.
- `persistent` (`boolean`, default false): Never auto-dismisses.
- `showDurationBar` (`boolean`, default false): Shows a countdown progress bar.
- `dismissible` (`boolean`, default true): Shows a close button.
- `promise` (`Promise`): Drives the promise-aware loading/success/error flow.
- `onDismiss` (`(id: ToastId) => void`): Called when the toast is dismissed.
- `closeIcon` (`ReactNode`): Overrides the default close icon.
- `classNames` (`ToastClassNames`): Per-slot class overrides.
- `className` (`string`): Class applied to this toast's root element.
### Loader (`/components/loader`)
- `label` (`string`, default "Loading"): Accessible label (used with role="status").
- `variant` (`"ring-inset" | "ring-clip" | "ring-outset" | "ring-dual" | "pulse" | "dots-roll" | "dots-sweep"`, default ring-inset): Visual spinner style.
- `size` (`"xs" | "xs-sm" | "sm" | "md" | "lg" | "xl" | number`, default "md" (40px)): Loader size; accepts a size token or a raw pixel number.
- `color` (`"default" | "primary" | "secondary" | "info" | "success" | "warning" | "danger" | "white"`): Shorthand that sets both trackColor and indicatorColor.
- `trackColor` (`LoaderColor`, default color ?? "white"): Color of the loader's background track.
- `indicatorColor` (`LoaderColor`, default color ?? "default"): Color of the loader's moving indicator.
- `speed` (`string`, default "1s"): Animation duration, any valid CSS time value.
- `className` (`string`): Class applied to the root element.
- `style` (`CSSProperties`): Inline styles for the root element.
### Modal (`/components/modal`)
- `title` (`ReactNode`): Header title.
- `children` (`ReactNode`): Body content.
- `actions` (`ReactNode`): Footer action buttons.
- `size` (`"xs" | "sm" | "md" | "lg" | "xl" | "full" | string | number`, default md): Modal width.
- `blur` (`boolean | "sm" | "md" | "lg" | number`): Backdrop blur amount.
- `backgroundOpacity` (`number`): Backdrop opacity (0-100).
- `portal` (`boolean`, default true): Renders through a React portal.
- `container` (`Element | DocumentFragment | null`): Custom portal mount target.
- `zIndex` (`number`): Explicit stacking z-index; auto-computed when unset.
- `isOpen` (`boolean`): Controls whether the modal is open (required).
- `role` (`"dialog" | "alertdialog"`, default dialog): ARIA role.
- `dismissible` (`boolean`, default true): Shows a close button in the header.
- `closeLabel` (`string`, default "Close modal"): Accessible label for the close button.
- `closeOnOutsideClick` (`boolean`, default true): Closes on backdrop click.
- `closeOnEscape` (`boolean`, default true): Closes on Escape.
- `initialFocusRef` (`RefObject`): Element to focus when the modal opens.
- `animationDuration` (`number`): Enter/exit animation duration in seconds.
- `animationType` (`"fade" | "zoom" | "slideUp" | "slideDown" | "slideLeft" | "slideRight"`): Backdrop entrance/exit animation.
- `easing` (`"ease" | "easeIn" | "easeOut" | "easeInOut"`): Animation easing curve.
- `onClose` (`() => void`): Called to close the modal (required).
- `backdrop` (`Partial`): Extra props forwarded to the underlying Backdrop.
- `headers` (`Partial`): Extra props forwarded to the header's PageTitle.
- `divider` (`Partial`): Extra props for the header/body divider.
- `classNames` (`Partial>`): Per-slot class overrides (base/header/headerTitle/body/footer/closeButton).
- `className` (`string`): Class applied to the root modal element.
- `style` (`CSSProperties`): Inline styles for the root element.
### Tabs (`/components/tabs`)
- `children` (`ReactNode | ((item: T) => ReactElement)`): Declarative children, or a render function with items.
- `items` (`Iterable`): Dynamic items, used with a render-function children.
- `variant` (`"solid" | "bordered" | "light" | "underlined"`, default solid): Visual style variant.
- `color` (`"default" | "primary" | "secondary" | "info" | "success" | "warning" | "danger"`, default default): Semantic color.
- `size` (`"xs" | "xs-sm" | "sm" | "md" | "lg" | "xl"`, default md): Tab list size.
- `radius` (`"none" | "xs" | "xs-sm" | "sm" | "md" | "lg" | "full"`, default full): Border radius.
- `fullWidth` (`boolean`, default false): Stretches tabs to fill the available width.
- `placement` (`"top" | "bottom" | "start" | "end"`, default top): Tab list position relative to panels.
- `isVertical` (`boolean`, default false): Renders a vertical tab list.
- `disabledKeys` (`Key[]`): Keys of tabs to disable.
- `selectedKey` (`Key`): Controlled selected tab key.
- `defaultSelectedKey` (`Key`): Uncontrolled initial selected tab key.
- `shouldSelectOnPressUp` (`boolean`, default true): Selects on pointer-up rather than pointer-down.
- `keyboardActivation` (`"automatic" | "manual"`, default automatic): Whether arrow-key focus also selects, or only Enter/Space does.
- `isDisabled` (`boolean`, default false): Disables the whole tab list.
- `destroyInactiveTabPanel` (`boolean`, default false): Unmounts inactive panels instead of hiding them.
- `disableCursorAnimation` (`boolean`, default false): Disables the sliding active-tab cursor animation.
- `disableAnimation` (`boolean`, default false): Disables all animation, including the cursor.
- `onSelectionChange` (`(key: Key) => void`): Called when the selected tab changes.
- `classNames` (`TabsClassNames`): Per-slot class overrides (base/tabList/tab/tabContent/cursor/panel/tabWrapper).
- `className` (`string`): Class applied to the root element.
- `title` (`ReactNode`): Tab label (required).
- `titleValue` (`string`): Plain-text override of title, used for accessible naming when title is a node.
- `children` (`ReactNode`): Panel content for this tab.
- `href / target / rel / download / ping / referrerPolicy` (`string`): Renders the tab as a link when href is set.
- `isDisabled` (`boolean`, default false): Disables this specific tab.
- `shouldSelectOnPressUp` (`boolean`): Per-tab override of the Tabs-level setting.
### Drawer (`/components/drawer`)
- `title` (`ReactNode`): Header title.
- `children` (`ReactNode`): Body content.
- `actions` (`ReactNode`): Footer action buttons.
- `blur` (`boolean | "sm" | "md" | "lg" | number`): Backdrop blur amount.
- `backgroundOpacity` (`number`): Backdrop opacity (0-100).
- `position` (`"left" | "right" | "top" | "bottom"`, default right): Edge the drawer slides in from.
- `width` (`"xs" | "sm" | "md" | "lg" | "xl" | "full" | string | number`, default "420px"): Panel width, for left/right positions.
- `height` (`"xs" | "sm" | "md" | "lg" | "xl" | "full" | string | number`, default "360px"): Panel height, for top/bottom positions.
- `portal` (`boolean`, default true): Renders through a React portal.
- `container` (`Element | DocumentFragment | null`): Custom portal mount target.
- `zIndex` (`number`): Explicit stacking z-index; auto-computed when unset.
- `isOpen` (`boolean`): Controls whether the drawer is open (required).
- `ariaLabel` (`string`, default "Drawer"): Accessible name for the drawer region.
- `dismissible` (`boolean`, default true): Shows a close button in the header.
- `closeLabel` (`string`, default "Close drawer"): Accessible label for the close button.
- `closeOnOutsideClick` (`boolean`, default true): Closes on backdrop click.
- `closeOnEscape` (`boolean`, default true): Closes on Escape.
- `initialFocusRef` (`RefObject`): Element to focus when the drawer opens.
- `animationDuration` (`number`): Enter/exit animation duration in seconds.
- `easing` (`"ease" | "easeIn" | "easeOut" | "easeInOut"`): Animation easing curve.
- `onClose` (`() => void`): Called to close the drawer (required).
- `backdrop` (`Partial`): Extra props forwarded to the underlying Backdrop.
- `headers` (`Partial`): Extra props forwarded to the header's PageTitle.
- `divider` (`Partial`): Extra props for the header/body divider.
- `classNames` (`Partial>`): Per-slot class overrides (base/header/headerTitle/body/footer/closeButton).
- `className` (`string`): Class applied to the root drawer element.
- `style` (`CSSProperties`): Inline styles for the root element.
### Dropdown (`/components/dropdown`)
- `children` (`ReactNode`): A DropdownTrigger and a DropdownMenu.
- `placement` (`"bottom-start" | "bottom-end" | "top-start" | ... (12-way)`, default "bottom-start"): Menu position relative to the trigger.
- `offset` (`number`, default 8): Distance from the trigger.
- `containerPadding` (`number`, default 8): Minimum distance kept from the viewport edge.
- `shouldFlip` (`boolean`, default true): Flips placement to stay in the viewport.
- `portalContainer` (`Element | DocumentFragment | null`): Custom portal mount target.
- `isOpen` (`boolean`): Controlled open state.
- `defaultOpen` (`boolean`, default false): Uncontrolled initial open state.
- `isDismissable` (`boolean`, default true): Allows dismissing via outside click/Escape.
- `isKeyboardDismissDisabled` (`boolean`, default false): Disables closing via Escape.
- `shouldCloseOnInteractOutside` (`(target: Element) => boolean`): Custom predicate for outside-interaction dismissal.
- `closeOnSelect` (`boolean`, default true): Closes the menu after an item is selected.
- `onOpenChange` (`(isOpen: boolean) => void`): Called when open state changes.
- `classNames` (`Partial>`): Per-slot class overrides.
- `className` (`string`): Class applied to the root.
- `style` (`CSSProperties`): Inline styles for the root.
- `children` (`ReactElement`): The single element that opens the menu on press (required).
- `children` (`ReactNode | ((item: T) => ReactElement)`): Declarative DropdownItem/DropdownSection children, or a render function with items.
- `items` (`Iterable`): Dynamic items, used with a render-function children.
- `topContent / bottomContent` (`ReactNode`): Content rendered above/below the item list.
- `emptyContent` (`ReactNode`, default "No items."): Shown when there are no items.
- `variant` (`"solid" | "bordered" | "light" | "flat" | "faded" | "shadow"`, default solid): Visual style variant.
- `color` (`DropdownColor`, default default): Semantic color.
- `hideSelectedIcon` (`boolean`, default false): Hides the selected-item checkmark.
- `selectionMode` (`"none" | "single" | "multiple"`, default none): Item selection behavior.
- `selectedKeys` (`"all" | Iterable`): Controlled selected keys.
- `defaultSelectedKeys` (`"all" | Iterable`): Uncontrolled initial selected keys.
- `disabledKeys` (`Iterable`): Keys of items to disable.
- `disallowEmptySelection` (`boolean`, default false): Prevents deselecting the last selected item.
- `autoFocus` (`boolean | "first" | "last"`, default false): Focuses an item automatically when the menu opens.
- `hideEmptyContent` (`boolean`, default false): Hides the empty-state content entirely.
- `shouldFocusWrap` (`boolean`, default false): Wraps keyboard focus from the last item to the first.
- `closeOnSelect` (`boolean`, default parent Dropdown's value): Per-menu override of the root's closeOnSelect.
- `virtualization` (`{ itemHeight: number; overscan?: number }`): Enables fixed-height virtualized rendering for long lists.
- `disableAnimation` (`boolean`, default false): Disables the menu's open animation.
- `onAction` (`(key: Key) => void`): Called when an item is activated.
- `onSelectionChange` (`(keys) => void`): Called when selection changes.
- `onClose` (`() => void`): Called when the menu requests to close.
- `classNames` (`DropdownMenuClassNames`): Per-slot class overrides (base/list/emptyContent).
- `itemClasses` (`Partial>`): Per-slot class overrides applied to every item.
- `children / title` (`ReactNode`): Item label.
- `textValue` (`string`): Plain-text override for typeahead/accessible naming.
- `description` (`ReactNode`): Secondary text below the label.
- `shortcut` (`ReactNode`): Keyboard shortcut hint.
- `startContent / endContent` (`ReactNode`): Content rendered before/after the label.
- `selectedIcon` (`ReactNode`): Overrides the default selected checkmark.
- `submenuPlacement` (`DropdownPlacement`, default "right-start"): Position of a nested DropdownMenu, when this item has one.
- `showDivider` (`boolean`, default false): Shows a divider below this item.
- `href / target / rel / download / ping / referrerPolicy` (`string`): Renders the item as a link when href is set.
- `isDisabled` (`boolean`, default false): Disables this item.
- `isReadOnly` (`boolean`, default false): Not selectable, but not visually disabled.
- `isSelected` (`boolean`): Marks this item as selected.
- `closeOnSelect` (`boolean`): Per-item override of the menu's closeOnSelect.
- `itemKey` (`Key`): Explicit key, when not using items+render-function.
- `onAction / onClose / onClick / onPress / onPressStart / onPressEnd / onPressChange / onPressUp / onKeyDown / onKeyUp` (`callback`): Interaction callbacks.
### SteppedForm (`/components/stepped-form`)
- `steps` (`SteppedFormStep[]`): Ordered step definitions: { key, title, description?, fields?, content, isOptional?
- `backLabel / nextLabel / submitLabel` (`ReactNode`, default "Back" / "Next" / "Submit"): Footer action button labels.
- `headerVariant` (`"dots" | "progress" | "tabs" | "none"`, default "dots"): Built-in step-header style.
- `initialStep` (`number`, default 0): Uncontrolled initial step index.
- `stepIndex` (`number`): Controlled current step index.
- `disableHeaderNavigation` (`boolean`, default false): Prevents jumping steps by clicking the header.
- `renderHeader` (`(args) => ReactNode`): Fully custom header renderer, replacing headerVariant.
- `renderStepHeaderItem` (`(args) => ReactNode`): Custom renderer for a single step-header item.
- `validationMode / showErrorsOn / initialValues / ...` (`see Form props`, default see Form): All other Form props are inherited (steps replaces children).
- `onStepChange` (`(nextIndex: number) => void`): Called when the active step changes.
- `onSubmit` (`(formData: FormData) => void | Promise`): Inherited from Form — called on final-step submit (required).
- `classNames` (`Partial>`): Per-slot class overrides (11 slots: base/header/steps/stepButton/stepDot/stepLabel/stepDescription/progress/progressTrack/progressIndicator/content/footer/ac...
- `className` (`string`): Class applied to the root element.
- `style` (`CSSProperties`): Inline styles for the root element.
### Badge (`/components/badge`)
- `children` (`ReactNode`): Element the badge is anchored to.
- `content` (`string | number | ReactNode`): Badge content; omit with isDot for a plain dot.
- `max` (`number`): Caps a numeric content at max+ (e.g.
- `variant` (`"solid" | "soft" | "bordered"`, default solid): Visual style variant.
- `shadow` (`"none" | "xs" | "xs-sm" | "sm" | "md" | "lg"`, default none): Box-shadow depth.
- `color` (`"default" | "primary" | "secondary" | "info" | "success" | "warning" | "danger"`, default default): Semantic color.
- `size` (`"xs" | "xs-sm" | "sm" | "md" | "lg" | "xl"`, default md): Badge size.
- `shape` (`"circle" | "rectangle"`, default rectangle): Badge shape.
- `isOneChar` (`boolean`, default false): Forces a perfectly circular badge sized for one character.
- `placement` (`"top-start" | "top-end" | "bottom-start" | "bottom-end" | ...`, default "top-end"): Corner the badge anchors to, relative to children.
- `offset` (`number`, default 0): Extra offset along the placement's main axis.
- `crossOffset` (`number`, default 0): Extra offset along the placement's cross axis.
- `showOutline` (`boolean`, default true): Shows a ring around the badge separating it from its content.
- `disableOutline` (`boolean`, default false): Alias to force-disable the outline.
- `isInvisible` (`boolean`, default false): Hides the badge without unmounting it.
- `isDot` (`boolean`, default false): Renders a plain status dot instead of content.
- `ariaLabel` (`string`): Accessible label for the badge indicator.
- `disableAnimation` (`boolean`, default false): Disables the bump animation on content change.
- `classNames` (`Partial>`): Per-slot class overrides.
- `className` (`string`): Class applied to the root element.
- `style` (`CSSProperties`): Inline styles for the root element.
### Avatar (`/components/avatar`)
- `name` (`string`): Used to derive fallback initials.
- `src` (`string`): Image source URL.
- `icon` (`ReactNode`): Custom fallback icon, used when name/initials aren't available.
- `fallback` (`ReactNode`): Fully custom fallback content, overrides icon/initials.
- `showFallback` (`boolean`, default false): Forces the fallback (initials/icon) even while an image is loading.
- `size` (`"xs" | "xs-sm" | "sm" | "md" | "lg" | "xl" | number`, default md): Token size, or a number for an exact px size (font-size scales ~0.4x; the status Badge maps to the nearest token bucket).
- `color` (`"default" | "primary" | "secondary" | "info" | "success" | "warning" | "danger"`, default default): Semantic color for the fallback background.
- `radius` (`"none" | "xs" | "xs-sm" | "sm" | "md" | "lg" | "full"`, default full): Border radius.
- `colorDepth` (`50 | 100 | ... | 950`, default 500): Shade depth for the selected color.
- `isBordered` (`boolean`, default false): Adds a ring border around the avatar.
- `isDisabled` (`boolean`, default false): Dims the avatar and disables interaction.
- `isFocusable` (`boolean`, default false): Makes the avatar keyboard-focusable.
- `tooltip` (`ReactNode | boolean | (Omit & { content?: ReactNode })`, default false): Wraps the avatar in a Tooltip.
- `status` (`"online" | "offline" | "dnd"`): Status dot indicator.
- `ImgComponent` (`ElementType`, default "img"): Renders the image through a different component (e.g.
- `imgProps` (`ComponentPropsWithoutRef`): Extra props forwarded to the image element/component.
- `classNames` (`Partial>`): Per-slot class overrides (base/img/fallback/name/icon/status).
- `className` (`string`): Class applied to the root element.
- `AvatarGroup` (`{ max?, total?, size?, color?, radius?, isGrid?, isDisabled?, isBordered?, overlap?, renderCount?, classNames? }`): Stacks Avatar children and collapses whatever's past max (default 5) into a "+N" -- pass total instead of relying on children.length if you're not rendering ...
### Chip (`/components/chip`)
- `children` (`ReactNode`): Chip label content.
- `avatar` (`ReactNode`): Avatar rendered at the start of the chip.
- `startContent` (`ReactNode`): Content rendered before the label.
- `endContent` (`ReactNode`): Content rendered after the label, before the close button.
- `closeIcon` (`ReactNode`): Overrides the default × close icon.
- `variant` (`"solid" | "soft" | "bordered" | "dot"`, default solid): Visual style variant.
- `shadow` (`"none" | "xs" | "xs-sm" | "sm" | "md" | "lg"`, default none): Box-shadow depth.
- `size` (`"xs" | "xs-sm" | "sm" | "md" | "lg" | "xl"`, default md): Chip size.
- `color` (`"default" | "primary" | "secondary" | "info" | "success" | "warning" | "danger"`, default default): Semantic color.
- `radius` (`"none" | "xs" | "xs-sm" | "sm" | "md" | "lg" | "full"`, default full): Border radius.
- `colorDepth` (`50 | 100 | ... | 950`, default 500): Shade depth for the selected color.
- `isDisabled` (`boolean`, default false): Disables interaction.
- `selected` (`boolean`): Controlled selected state; renders as a toggleable role="button" chip.
- `defaultSelected` (`boolean`): Uncontrolled initial selected state.
- `onClose` (`(e: PressEvent) => void`): Shows a close button and is called when it's pressed.
- `onSelectedChange` (`(selected: boolean) => void`): Called when selected state changes.
- `classNames` (`Partial>`): Per-slot class overrides (base/content/dot/avatar/closeButton/endContent).
- `className` (`string`): Class applied to the root element.
- `style` (`CSSProperties`): Inline styles for the root element.
### Tooltip (`/components/tooltip`)
- `children` (`ReactNode`): The trigger element the tooltip attaches to.
- `content` (`ReactNode`): Tooltip content.
- `size` (`"xs" | "xs-sm" | "sm" | "md" | "lg" | "xl"`, default md): Tooltip size.
- `color` (`"default" | "primary" | "secondary" | "info" | "success" | "warning" | "danger"`, default default): Semantic color.
- `colorDepth` (`number`, default 100): Shade depth for the selected color.
- `radius` (`"none" | "xs" | "xs-sm" | "sm" | "md" | "lg" | "full"`, default md): Border radius.
- `shadow` (`"none" | "xs" | "xs-sm" | "sm" | "md" | "lg"`, default sm): Box-shadow depth.
- `showArrow` (`boolean`, default false): Shows a pointing arrow.
- `triggerScaleOnOpen` (`boolean`, default false): Slightly scales the trigger while the tooltip is open.
- `placement` (`"top" | "bottom" | "left" | "right" | ... (12-way)`, default top): Position relative to the trigger.
- `offset` (`number`, default 7): Distance from the trigger.
- `containerPadding` (`number`, default 12): Minimum distance kept from the viewport edge.
- `crossOffset` (`number`, default 0): Offset along the cross axis.
- `shouldFlip` (`boolean`, default true): Flips placement to stay in the viewport.
- `portalContainer` (`Element | DocumentFragment | null`): Custom portal mount target.
- `updatePositionDeps` (`unknown[]`): Extra dependencies that make the tooltip re-measure its position, for example when its content changes size while open.
- `delay` (`number`, default 0): Open delay in ms.
- `closeDelay` (`number`, default 500): Close delay in ms (also floors touch-triggered opens).
- `isOpen` (`boolean`): Controlled open state.
- `defaultOpen` (`boolean`, default false): Uncontrolled initial open state.
- `isKeyboardDismissDisabled` (`boolean`, default false): Disables closing via Escape.
- `isDismissable` (`boolean`, default false): Allows dismissing an isOpen-controlled tooltip via outside click/Escape.
- `shouldCloseOnBlur` (`boolean`, default true): Closes when the trigger loses focus.
- `shouldCloseOnInteractOutside` (`(element: HTMLElement) => boolean`): Custom predicate for outside-interaction dismissal.
- `isDisabled` (`boolean`, default false): Disables the tooltip entirely.
- `disableAnimation` (`boolean`, default false): Disables the enter/exit animation.
- `onOpenChange` (`(isOpen: boolean) => void`): Called when open state changes.
- `onClose` (`() => void`): Called when the tooltip closes.
- `className` (`string`): Class applied to the tooltip content.
- `classNames` (`{ base?; content?; arrow? }`): Per-slot class overrides.
### Line Chart (`/components/chart-line`)
- `data` (`Row[] | { categories, series }`): Row-based data array, or explicit categories/series (required).
- `x` (`keyof Row | ((row: Row) => ChartCategory)`): Category accessor, row-mode only.
- `series` (`ChartSeriesDef | ChartSeriesDef[]`): Series accessor(s), row-mode only.
- `title / description` (`ReactNode`): Chart heading text.
- `ariaLabel` (`string`): Accessible label for the chart.
- `dataFormat` (`ChartDataFormatOptions`): Value formatting (prefix/suffix/decimals) for labels/tooltips.
- `showLabels` (`ChartShowLabelsOptions`): Inline value-label visibility.
- `type` (`"line" | "area" | "bar" | "column" | "pie" | "donut" | "heatmap" | "sparkline" | "combo"`): Chart type (required).
- `background` (`string`): Chart background color.
- `unstyled` (`boolean`, default false): Drop the built-in
card frame (border / padding / radius / surface) — for a chart nested in a Card or a sparkline slot.
- `palette` (`{ colors?; colorShade?; roles? }`): Series color palette overrides.
- `line / bar / column / pieStyle / pie / heatmap` (`type-specific options`): Per-type rendering options.
- `axisY2` (`ChartAxisOptions`): type="combo": the right-hand value axis (show, tickCount, title) for series with axis: "right".
- `sparkline` (`{ kind?: "line" | "area" | "column" }`, default { kind: "line" }): type="sparkline" only: the shape of the small trend.
- `referenceLines` (`{ value, label?, color?, dashed? }[]`): Lines across a line, area, column or bar chart at fixed values (a target, a limit).
- `dataTable` (`boolean`, default true): Adds a visually hidden table of the values, so a screen reader can read the numbers.
- `labels` (`Partial`, default English): Translate or reword every text the chart adds: export, fullscreen, resetZoom, loading, noData, keyboardHint, filterAll, total and the data table headings.
- `height` (`number`, default 320): Chart height in pixels.
- `padding` (`{ top?; right?; bottom?; left?: number }`): Plot area padding.
- `axis / axisX / axisY` (`ChartAxisOptions`): Axis visibility, ticks, title (drawn under the axis) and, on axisX, scale (auto, category or time).
- `grid` (`ChartGridOptions`): Gridline configuration.
- `legend` (`boolean | ChartLegendOptions`, default true for multi-series): Legend visibility/position.
- `tooltip` (`boolean | ChartTooltipOptions`, default true): Hover/focus tooltip visibility and formatting.
- `zoom` (`false | { mode?: "x" | "xy"; wheel?; pan? }`): Enables zoom/pan on axis charts.
- `export` (`false | { formats?: ("svg" | "png")[]; filename? }`): Enables an export action (SVG/PNG).
- `fullscreen` (`false | { enabled?: boolean }`): Enables a fullscreen toggle action.
- `filters` (`false | ChartFiltersOptions`): Enables interactive data filters.
- `isLoading` (`boolean`): Shows a loading state instead of the chart.
- `error` (`ReactNode`): Shows an error state instead of the chart.
- `empty` (`ReactNode`): Shown when data resolves to nothing plottable.
- `onPointClick` (`(event: ChartPointEvent) => void`): Called when a data point is clicked or activated via keyboard.
- `onCellClick` (`(event: ChartHeatmapCellEvent) => void`): type="heatmap" — a cell was clicked or keyboard-activated.
- `onLegendChange` (`(hiddenSeriesIds: string[]) => void`): Called when series visibility toggles via the legend.
- `onSelectionChange` (`(selection: ChartSelection) => void`): Called when a zoom/brush selection changes.
- `className / classNames / style` (`string / ChartClassNames / CSSProperties`): Styling overrides (classNames covers base/header/title/description/actions/stage/svg/legend/filters).
### Divider (`/components/divider`)
- `children` (`ReactNode`): Optional inline label; renders the line in two segments around it.
- `orientation` (`"horizontal" | "vertical"`, default horizontal): Line direction.
- `variant` (`"fullWidth" | "inset" | "middle"`, default fullWidth): Inset behavior at the line's ends.
- `lineStyle` (`"solid" | "dashed" | "dotted"`, default solid): Line style.
- `color` (`"default" | "primary" | "secondary" | "info" | "success" | "warning" | "danger" | string`, default default): Line color.
- `colorDepth` (`50 | 100 | ... | 950`, default 300): Shade depth for the selected color.
- `thickness` (`number | string`): Line thickness override.
- `labelPlacement` (`"start" | "center" | "end"`, default center): Where a label renders along the line, when children are provided.
- `className` (`string`): Class applied to the root element.
### Backdrop (`/components/backdrop`)
- `children` (`ReactNode`): Content rendered above the backdrop.
- `blur` (`boolean | "sm" | "md" | "lg" | number`, default true (8px)): Backdrop blur amount.
- `backgroundColor` (`string`, default "var(--oks-palette-neutral-950, #000)"): Backdrop tint color.
- `backgroundOpacity` (`number`, default 80): Backdrop opacity (0-100).
- `zIndex` (`number`): Explicit stacking z-index; auto-computed per overlay depth when unset.
- `portal` (`boolean`, default true): Renders through a React portal.
- `container` (`Element | DocumentFragment | null`): Custom portal mount target.
- `contentFullSize` (`boolean`, default false): Stretches the content wrapper to fill the backdrop.
- `isOpen` (`boolean`): Controls whether the backdrop is open (required).
- `closeOnOutsideClick` (`boolean`, default true): Closes when clicking outside the content.
- `closeOnEscape` (`boolean`, default true): Closes on Escape.
- `lockScroll` (`boolean`, default true): Locks body scroll while open.
- `trapFocus` (`boolean`, default true): Traps keyboard focus within the content while open.
- `animationDuration` (`number`, default 0.3): Enter/exit animation duration in seconds.
- `animationType` (`"fade" | "zoom" | "slideUp" | "slideDown" | "slideLeft" | "slideRight"`, default fade): Entrance/exit animation.
- `easing` (`"ease" | "easeIn" | "easeOut" | "easeInOut"`, default ease): Animation easing curve.
- `onClose` (`() => void`): Called to close the backdrop (required).
- `className` (`string`): Class applied to the backdrop layer.
- `style` (`CSSProperties`): Inline styles for the backdrop layer.
- `contentClassName` (`string`): Class applied to the content wrapper.
- `contentStyle` (`CSSProperties`): Inline styles for the content wrapper.
### PageTitle (`/components/page-title`)
- `title` (`ReactNode`, default "Title"): Heading text/content.
- `icon` (`ReactNode`): Icon rendered beside the title.
- `subtitle` (`ReactNode`): Secondary text rendered below the title.
- `color` (`"default" | "primary" | "secondary" | "info" | "success" | "warning" | "danger" | "black" | "white" | string`): Text color; inherits currentColor when unset.
- `colorDepth` (`number`, default 500): Shade depth for the selected color.
- `iconPosition` (`"start" | "end"`, default start): Icon placement relative to the title.
- `as` (`"h1" | "h2" | "h3" | "h4" | "h5" | "h6"`, default "h4"): Semantic heading element rendered.
- `tooltip` (`ReactNode | boolean | (Omit & { content?: ReactNode })`): Wraps the title in a Tooltip.
- `onKeyDown` (`(e: KeyboardEvent) => void`): Keydown handler on the root element.
- `className` (`string`): Class applied to the root element.
- `classNames` (`Partial>`): Per-slot class overrides (base/title/icon/subtitle).
- `style` (`CSSProperties`): Inline styles for the root element.
### Card (`/components/card`)
- `children` (`ReactNode`): Card content — usually CardHeader / CardBody / CardFooter.
- `shadow` (`"none" | "xs" | "xs-sm" | "sm" | "md" | "lg"`, default xs): Elevation.
- `radius` (`"none" | "xs" | "xs-sm" | "sm" | "md" | "lg" | "full"`, default lg): Corner radius.
- `isBlurred` (`boolean`, default false): Translucent background + backdrop blur where supported.
- `isHoverable` (`boolean`, default false): Lift on hover without becoming a control.
- `isPressable` (`boolean`, default false): Whole card is one activatable control; fires onPress on click / Enter / Space.
- `isDisabled` (`boolean`, default false): Dim the card and block onPress.
- `fullWidth` (`boolean`, default false): width: 100%.
- `as` (`ElementType`, default div): Render as a different element/component (e.g.
- `onPress` (`(e) => void`): Called when isPressable and the card is activated.
- `classNames` (`{ base?: string }`): Slot class overrides.
- `CardHeader / CardBody / CardFooter` (`div props`): Padded regions inside a Card.
### Stat (`/components/stat`)
- `label` (`ReactNode`): Required.
- `value` (`ReactNode`): Required.
- `delta` (`ReactNode`): Change indicator — shown as a coloured pill.
- `trend` (`"up" | "down" | "flat"`): Colour + arrow for delta.
- `icon` (`ReactNode`): In a rounded tile, top-right.
- `spark` (`ReactNode`): A sparkline — pair with .
- `help` (`ReactNode`): Small helper line under the value.
- `size` (`"sm" | "md" | "lg"`, default md): Value size.
- `StatGroup columns` (`number`, default 4): Responsive grid — collapses to 2 / 1 columns.
### Timeline (`/components/timeline`)
- `Timeline children` (`TimelineItem[]`): Renders as an .
- `TimelineItem.title` (`ReactNode`): Shown at the top of the content.
- `TimelineItem.time` (`ReactNode`): Right-aligned timestamp.
- `TimelineItem.icon` (`ReactNode`): Rendered in the marker (replaces the dot).
- `TimelineItem.color` (`"default" | "primary" | "secondary" | "info" | "success" | "warning" | "danger"`, default default): Marker colour.
- `TimelineItem.children` (`ReactNode`): Body text.
### Calendar (`/components/calendar`)
- `selectionMode` (`"single" | "range"`, default single): Single-date or start/end range selection.
- `value / defaultValue` (`string | null · { start, end } | null`): Controlled / initial selection.
- `onChange` (`(value) => void`): Fires with null when a single selection is toggled off.
- `month / defaultMonth` (`string | Date`, default selection, else today): Displayed month.
- `onMonthChange` (`(month: Date) => void`): Fired when the visible month changes.
- `minValue / maxValue` (`string | Date`): Days outside the bound are disabled.
- `isDateUnavailable` (`(date: Date) => boolean`): Per-day disable predicate.
- `weekStartsOn` (`0 | 1`, default 0): Sunday or Monday.
- `showOutsideDays` (`boolean`, default true): Render leading/trailing days of adjacent months.
- `fixedWeeks` (`boolean`, default false): Always 6 rows so height doesn't jump between months.
- `renderDay` (`(ctx) => ReactNode`, default day number): Custom day content.
- `isDisabled` (`boolean`, default false): Disable the whole calendar.
- `size` (`"sm" | "md" | "lg"`, default md): Cell size.
- `ariaLabel` (`string`, default month name): Accessible label for the grid.
- `classNames` (`{ base?, header?, heading?, nav?, navButton?, grid?, weekday?, week?, day? }`): Slot classes.
### SplitLayout (`/components/split-layout`)
- `direction` (`"horizontal" | "vertical"`, default horizontal): Arrange panes as columns or rows.
- `sizes` (`Array`): Controlled pane sizes in px (null for the flex pane).
- `onResize` (`(sizes) => void`): Fires on drag, keyboard resize, or collapse.
- `keyboardStep` (`number`, default 24): px moved per arrow-key press on a handle.
- `classNames` (`{ base?, pane?, handle? }`): Slot classes.
- `aria-label` (`string`): Names the group.
- `defaultSize` (`number | string`): Initial size — px or a CSS length ("32%").
- `minSize / maxSize` (`number`, default 80 / —): px clamp while resizing.
- `isResizable` (`boolean`, default false): Show a drag handle on this pane's trailing edge.
- `isCollapsible` (`boolean`, default false): Collapse when dragged past ~60% of minSize, or on Enter/Space on the handle.
- `collapsedSize` (`number`, default 0): Size when collapsed.
- `isCollapsed / defaultCollapsed / onCollapsedChange` (`—`): Controlled / uncontrolled collapse.
- `label` (`string`): Accessible name for this pane's handle ("Resize