# Kivora

> React and React Native components with a shared visual language.

This documentation covers @kivora/nextjs and its published web API. The cross-platform guide explains differences from React Native. Run npx @kivora/init inside a compatible Next.js or React Native Community CLI application. React web without Next.js requires manual installation. The assistant does not create or migrate the framework. Examples are demos: the team is stored in sessionStorage and sends no emails.

Language: English. The same URLs serve English or Spanish based on Accept-Language; English is the default.

## Guides

- [Introduction](https://www.kivora.pro/docs-markdown/introduccion.md): Meet the components and discover what you can build.
- [Installation](https://www.kivora.pro/docs-markdown/instalacion.md): Assisted or manual installation in React with Next.js.
- [@kivora/init assistant](https://www.kivora.pro/docs-markdown/inicializador.md): One command to configure Kivora in Next.js or React Native.
- [React web installation](https://www.kivora.pro/docs-markdown/instalacion-react.md): Use web components in a React application without Next.js.
- [React Native installation](https://www.kivora.pro/docs-markdown/instalacion-react-native.md): Configure the native library, providers and dependencies.
- [Web and React Native](https://www.kivora.pro/docs-markdown/multiplataforma.md): One visual language across platforms.
- [Themes and colors](https://www.kivora.pro/docs-markdown/temas.md): One foundation. All your personality.
- [Composition and state](https://www.kivora.pro/docs-markdown/composicion.md): Connect components, data and behavior.
- [Animations](https://www.kivora.pro/docs-markdown/animaciones.md): Entrances, text, SVG, and loaders with reduced motion.
- [Accessibility](https://www.kivora.pro/docs-markdown/accesibilidad.md): Interfaces that more people can use in more ways.
- [Using agents](https://www.kivora.pro/docs-markdown/agentes.md): Install the Kivora skill and share its instructions with your agent.

## Components

- [AspectRatio](https://www.kivora.pro/docs-markdown/componentes/aspect-ratio.md): Keep stable proportions for images and visual content.
- [Avatar](https://www.kivora.pro/docs-markdown/componentes/avatar.md): Represent a person with an image or initials.
- [Badge](https://www.kivora.pro/docs-markdown/componentes/badge.md): A small label for statuses, categories and updates.
- [Button](https://www.kivora.pro/docs-markdown/componentes/button.md): A clear action at the right moment.
- [ButtonGroup](https://www.kivora.pro/docs-markdown/componentes/button-group.md): Group related actions in a single row.
- [Card](https://www.kivora.pro/docs-markdown/componentes/card.md): A container that gives content context and structure.
- [Code](https://www.kivora.pro/docs-markdown/componentes/code.md): Formatted code with line numbers and copying.
- [Icon](https://www.kivora.pro/docs-markdown/componentes/icon.md): Lucide icons with size, color and accessible labels.
- [Kbd](https://www.kivora.pro/docs-markdown/componentes/kbd.md): Display readable keyboard shortcuts.
- [Separator](https://www.kivora.pro/docs-markdown/componentes/separator.md): Subtly separate blocks of content.
- [Typography](https://www.kivora.pro/docs-markdown/componentes/typography.md): Typography with a shared visual language.
- [Calendar](https://www.kivora.pro/docs-markdown/componentes/calendar.md): Date selection in a calendar view.
- [Checkbox](https://www.kivora.pro/docs-markdown/componentes/checkbox.md): An independent choice or part of a multiple selection.
- [DatePicker](https://www.kivora.pro/docs-markdown/componentes/date-picker.md): A compact date picker with a dropdown calendar.
- [Field](https://www.kivora.pro/docs-markdown/componentes/field.md): Label, hint, control and error in one unit.
- [Input](https://www.kivora.pro/docs-markdown/componentes/input.md): Text input with sizes, validation and masks.
- [InputGroup](https://www.kivora.pro/docs-markdown/componentes/input-group.md): Add context and actions to an input.
- [InputOTP](https://www.kivora.pro/docs-markdown/componentes/input-otp.md): A verification code split into slots.
- [Label](https://www.kivora.pro/docs-markdown/componentes/label.md): A field's visible label.
- [Questionnaire](https://www.kivora.pro/docs-markdown/componentes/questionnaire.md): Sequential questions with structured answers.
- [RadioGroup](https://www.kivora.pro/docs-markdown/componentes/radio-group.md): One choice among several alternatives.
- [Select](https://www.kivora.pro/docs-markdown/componentes/select.md): Selection with search, groups, asynchronous loading and option creation.
- [Slider](https://www.kivora.pro/docs-markdown/componentes/slider.md): Precisely adjust a value or interval.
- [Switch](https://www.kivora.pro/docs-markdown/componentes/switch.md): Turn a preference on or off immediately.
- [Textarea](https://www.kivora.pro/docs-markdown/componentes/textarea.md): Free-form text with a counter and adaptive height.
- [Toggle](https://www.kivora.pro/docs-markdown/componentes/toggle.md): A button with a pressed state.
- [ToggleGroup](https://www.kivora.pro/docs-markdown/componentes/toggle-group.md): A toolbar for single or multiple selection.
- [Accordion](https://www.kivora.pro/docs-markdown/componentes/accordion.md): Content that expands when needed.
- [Breadcrumb](https://www.kivora.pro/docs-markdown/componentes/breadcrumb.md): Show the path to the current page.
- [Command](https://www.kivora.pro/docs-markdown/componentes/command.md): An action list that filters as you type.
- [NavigationMenu](https://www.kivora.pro/docs-markdown/componentes/navigation-menu.md): Main navigation with expandable content.
- [Pagination](https://www.kivora.pro/docs-markdown/componentes/pagination.md): Navigate paginated result sets.
- [Tabs](https://www.kivora.pro/docs-markdown/componentes/tabs.md): Related views within the same context.
- [ContextMenu](https://www.kivora.pro/docs-markdown/componentes/context-menu.md): Contextual actions on right-click.
- [Dialog](https://www.kivora.pro/docs-markdown/componentes/dialog.md): A focused conversation over your interface.
- [Drawer](https://www.kivora.pro/docs-markdown/componentes/drawer.md): A sliding panel for supporting content.
- [HoverCard](https://www.kivora.pro/docs-markdown/componentes/hover-card.md): A contextual preview on hover or focus.
- [Menu](https://www.kivora.pro/docs-markdown/componentes/menu.md): A dropdown action menu or menu bar.
- [Popover](https://www.kivora.pro/docs-markdown/componentes/popover.md): Information or controls beside their trigger.
- [Sheet](https://www.kivora.pro/docs-markdown/componentes/sheet.md): A side panel for tasks that need context.
- [Tooltip](https://www.kivora.pro/docs-markdown/componentes/tooltip.md): A brief explanation for a control.
- [Chart](https://www.kivora.pro/docs-markdown/componentes/chart.md): Recharts charts with Kivora colors and tooltips.
- [DataTable](https://www.kivora.pro/docs-markdown/componentes/data-table.md): Data with search, sorting, selection and pagination.
- [Table](https://www.kivora.pro/docs-markdown/componentes/table.md): Semantic tables with a consistent presentation.
- [Alert](https://www.kivora.pro/docs-markdown/componentes/alert.md): Information, success, warning or error messages.
- [Empty](https://www.kivora.pro/docs-markdown/componentes/empty.md): Provide context when there is no content yet.
- [Progress](https://www.kivora.pro/docs-markdown/componentes/progress.md): Show how much of a task is complete.
- [Skeleton](https://www.kivora.pro/docs-markdown/componentes/skeleton.md): Reserve space while content loads.
- [Spinner](https://www.kivora.pro/docs-markdown/componentes/spinner.md): An indicator for ongoing operations.
- [Toaster](https://www.kivora.pro/docs-markdown/componentes/toaster.md): Brief notifications that accompany an action.
- [Attachment](https://www.kivora.pro/docs-markdown/componentes/attachment.md): A file with description, actions and progress.
- [Bubble](https://www.kivora.pro/docs-markdown/componentes/bubble.md): A visual bubble for messages and short snippets.
- [Carousel](https://www.kivora.pro/docs-markdown/componentes/carousel.md): Content you can browse slide by slide.
- [Item](https://www.kivora.pro/docs-markdown/componentes/item.md): A content row with text, icons and actions.
- [Marker](https://www.kivora.pro/docs-markdown/componentes/marker.md): Highlight a note or feature.
- [Message](https://www.kivora.pro/docs-markdown/componentes/message.md): Conversation structure with author, body and status.
- [Resizable](https://www.kivora.pro/docs-markdown/componentes/resizable.md): Panels that users can resize.
- [ScrollArea](https://www.kivora.pro/docs-markdown/componentes/scroll-area.md): A scrolling region with consistent styling.
- [Barcode](https://www.kivora.pro/docs-markdown/componentes/barcode.md): Barcodes and QR codes in one component.
- [FileUpload](https://www.kivora.pro/docs-markdown/componentes/file-upload.md): File selection and transfers with progress.
- [Player](https://www.kivora.pro/docs-markdown/componentes/player.md): Video and audio with controls, tracks and adaptive playback.
- [AudioPlayerProvider](https://www.kivora.pro/docs-markdown/componentes/audio-player-provider.md): Keep an audio session across page changes.
- [DirectionProvider](https://www.kivora.pro/docs-markdown/componentes/direction-provider.md): Shared reading direction for LTR and RTL interfaces.
- [KivoraProvider](https://www.kivora.pro/docs-markdown/componentes/kivora-provider.md): Theme and color mode context for your application.
- [AnimatedLoader](https://www.kivora.pro/docs-markdown/componentes/animated-loader.md): Animated dots or bars while an operation is pending.
- [AnimatedPath](https://www.kivora.pro/docs-markdown/componentes/animated-path.md): Progressively draw an SVG path.
- [AnimatedText](https://www.kivora.pro/docs-markdown/componentes/animated-text.md): Text that appears by word or character while remaining accessible.
- [Animation](https://www.kivora.pro/docs-markdown/componentes/animation.md): Gentle entrances for cards and any content.

## Other resources

- [Full documentation](https://www.kivora.pro/llms-full.txt)
- [Interactive documentation](https://www.kivora.pro/docs)
- [@kivora/init](https://www.npmjs.com/package/@kivora/init): npx @kivora/init
- [@kivora/nextjs](https://www.npmjs.com/package/@kivora/nextjs): React web
- [@kivora/native](https://www.npmjs.com/package/@kivora/native): React Native


---

# Introduction

Meet the components and discover what you can build.

## The pieces for your next idea

Kivora is a TypeScript component library for Next.js and React. It brings forms, navigation, tables, panels and multimedia together under one visual language. Start with a button and compose an entire application using the same conventions.

The web package is @kivora/nextjs. The examples and properties in this documentation correspond to version 0.3.0 installed from npm.

## From an idea to an interface

Components provide the interface. Authentication, persistence, payments and upload services belong to your application.

- SaaS products: accounts, teams, visual permissions and validated forms.

- Internal tools: data tables, filters, selection and detail panels.

- Sites and experiences: navigation, cards, carousels and brand themes.

- Multimedia experiences: video and audio playback, file selection and QR codes.

## Documentation for experimenting

Open any component to try it. Change a property with the controls or edit the JSX directly: the preview updates as you type and displays syntax errors. Reset restores the original example.

The Copy button prepares a component with its imports. The API reference includes published properties and subcomponents; types are generated from npm TypeScript declarations.

## Your first component


```tsx
"use client";

import { Button } from "@kivora/nextjs";

export default function Example() {
  return <Button>Create my first idea</Button>;
}
```


Source: https://www.kivora.pro/docs/introduccion


---

# Installation

Assisted or manual installation in React with Next.js.

## Choose how to get started

This page explains web installation with Next.js. Use the assistant or follow the manual steps. React without Next.js and React Native have separate guides.

- [@kivora/init assistant](https://www.kivora.pro/docs/inicializador)

- [Install in React web without Next.js](https://www.kivora.pro/docs/instalacion-react)

- [Install in React Native](https://www.kivora.pro/docs/instalacion-react-native)


```bash
npx @kivora/init --framework nextjs
```


## Before you begin

Manual installation requires a Next.js project with React and React DOM 18 or later. Kivora includes compiled CSS, so this approach does not require Tailwind or PostCSS. The @kivora/init 0.1.1 assistant configures Tailwind 4.1–4.x and requires Node.js 20.19+ and Next.js 13+.

The following steps assume app/ is at the root. Preserve your existing plugins, styles and providers when integrating the configuration.

## 1. Install manually from npm

You can also use npx @kivora/init for assisted installation. Add --dry-run to review proposed changes before applying them. @kivora/theme is a transitive dependency; declare it as a direct dependency too if you import it in your code.


```bash
npm install @kivora/nextjs
```


## 2. Add the styles

The stylesheet includes component classes, tokens, base styles and bundled assets. Import it once. It needs no @source or PostCSS configuration. Use CSS or style for custom styles; new Tailwind classes need your own compiler.


```tsx
@import "@kivora/nextjs/styles.css";
```


## Optional: if your application already uses Tailwind

Use this entry instead of styles.css if you already have Tailwind 4.1+ and its compiler configured. It generates your own utilities and detects Kivora classes automatically. Do not import both entries.


```tsx
@import "@kivora/nextjs/tailwind.css";
```


## 3. Configure Next.js


```tsx
import type { NextConfig } from "next";

const config: NextConfig = {
  transpilePackages: ["@kivora/nextjs", "@kivora/theme"],
};

export default config;
```


## 4. Mount the provider


```tsx
"use client";

import type { ReactNode } from "react";
import { KivoraProvider } from "@kivora/nextjs";

export default function Providers({ children }: { children: ReactNode }) {
  return <KivoraProvider colorMode="system">{children}</KivoraProvider>;
}
```


## 5. Connect the layout

The layout can remain a Server Component. Use "use client" in components that manage state, events or browser APIs. You can now import Button and start composing.


```tsx
import type { ReactNode } from "react";
import Providers from "./providers";
import "./globals.css";

export default function RootLayout({ children }: { children: ReactNode }) {
  return (
    <html lang="es" suppressHydrationWarning>
      <body><Providers>{children}</Providers></body>
    </html>
  );
}
```


## If you use Pages Router

Keep your existing Next.js configuration. Import @kivora/nextjs/styles.css and mount KivoraProvider in pages/_app.tsx. You do not need Tailwind, PostCSS or @source.

Source: https://www.kivora.pro/docs/instalacion


---

# @kivora/init assistant

One command to configure Kivora in Next.js or React Native.

## Configure your project with one command

@kivora/init is the official setup assistant. Run the command inside an existing application's directory, alongside its package.json. It detects Next.js or React Native and proposes the required files and dependencies. It does not create an application or install or migrate the framework.

Use npx @kivora/init. npm install @kivora/init only adds the package to your dependencies; it does not run setup. You do not need to keep the assistant as an application dependency.

- [@kivora/init on npm](https://www.npmjs.com/package/@kivora/init)


```bash
npx @kivora/init
```


## Requirements and platforms

This guide covers @kivora/init 0.1.1. It requires Node.js 20.19 or later in addition to framework requirements. It detects npm, pnpm, Yarn or Bun from packageManager and lockfiles, including those in a parent workspace.

Next.js: version 13+, React and React DOM 18+, Tailwind >=4.1 <5. The assistant adds Tailwind and PostCSS if missing; it does not migrate Tailwind 3. Manual web installation can use compiled CSS without Tailwind.

React Native: Community CLI >=0.85.3 <0.86, React >=19.2 <20, NativeWind >=4.2.6 <5, Reanimated >=4.3.0 <4.4, Worklets >=0.8.3 <0.9 and Tailwind >=3.4.17 <4. Babel preset and Metro config must be from the 0.85 series.

There is no React/Vite option and it does not migrate Expo projects. If both frameworks or neither are detected, it asks you to choose; that choice does not turn a React web project into Next.js.

- [React web without Next.js: manual installation](https://www.kivora.pro/docs/instalacion-react)

- [Set up React Native](https://www.kivora.pro/docs/instalacion-react-native)

## Review the plan before applying it

--dry-run shows current and proposed content without writing files or installing packages. In a normal run, the assistant validates the plan and asks for confirmation before writing. It preserves declared versions and installs only missing dependencies.


```bash
npx @kivora/init --dry-run

# Aplicar con confirmación interactiva
npx @kivora/init
```


## Assistant options

- --cwd: application directory.

- --framework nextjs|native: framework already installed in the project.

- --dry-run: preview without changes.

- --skip-install: write configuration and show pending installation commands.

- --yes: accept the plan without confirmation; use deliberately in automation.

- --package-manager npm|pnpm|yarn|bun: choose a manager if none is defined. Does not replace an existing manager.


```bash
npx @kivora/init --help
npx @kivora/init --cwd ./apps/web --framework nextjs --dry-run
npx @kivora/init --framework native --skip-install

# Automatización: aplica el plan sin confirmación interactiva
npx @kivora/init --cwd ./apps/web --framework nextjs --yes
```


## What it configures

- Next.js: adds @kivora/nextjs, Tailwind and PostCSS if missing; configures transpilePackages and the PostCSS plugin; generates provider and CSS files and connects them to App Router or Pages Router.

- React Native: adds @kivora/native and native dependencies, configures Babel, Metro and Tailwind, and integrates gesture, safe area, keyboard and Kivora providers with their color variables.

- On Android it adds POST_NOTIFICATIONS when a manifest exists. It does not run native builds or change Gradle, Podfile or image assets.

## Compatibility and recovery

Dynamic configurations with functions, spreads or unrecognized options may require manual integration. Conflicting package managers or incompatible version ranges stop the plan before writing. Do not force another version without reviewing compatibility.

The assistant stores copies in .kivora/backups/<id>/ and a manifest.json mapping each file to its backup. Keep backups until you review the integration and do not publish them. If the package manager fails, it restores files and lockfiles, but node_modules changes and script side effects are not a reversible transaction.

After setup, review styles and run your application's checks. On native, install pods using your project workflow, restart Metro and rebuild. The installer's README states that its iOS integration has not been validated.

- [Assistant README and troubleshooting](https://www.npmjs.com/package/@kivora/init)

Source: https://www.kivora.pro/docs/inicializador


---

# React web installation

Use web components in a React application without Next.js.

## React web without Next.js

For a React application rendered in the browser, use @kivora/nextjs. Its peer dependencies require React and React DOM 18+. Use a bundler that can import CSS, such as the one in your existing React project.

@kivora/init 0.1.1 has no React/Vite option: do not select nextjs if your project does not use that framework. This integration is manual. You do not need @kivora/native for browser rendering.


```bash
npm install @kivora/nextjs
```


## Import styles and mount the provider

Import CSS once at your application's entry point and wrap App in KivoraProvider. Preserve existing providers. The example assumes index.html contains an element with id="root".

styles.css includes library utilities and tokens: you do not need Tailwind for these components. Add your styles after Kivora CSS. A client-only application does not need the use client directive.


```tsx
import { createRoot } from "react-dom/client";
import { KivoraProvider } from "@kivora/nextjs";
import "@kivora/nextjs/styles.css";
import App from "./App";

createRoot(document.getElementById("root")!).render(
  <KivoraProvider colorMode="system">
    <App />
  </KivoraProvider>
);
```


## Your first web component


```tsx
import { Button } from "@kivora/nextjs";

export default function App() {
  return <Button onClick={() => console.log("Create project")}>Create project</Button>;
}
```


## If you already use Tailwind

If your bundler already compiles Tailwind 4.1+, use @kivora/nextjs/tailwind.css instead of styles.css. Keep your bundler's compiler configuration. Do not import both stylesheets or copy next.config.ts into an application that does not use Next.js.

- [Installation with Next.js](https://www.kivora.pro/docs/instalacion)

- [Web package on npm](https://www.npmjs.com/package/@kivora/nextjs)


```tsx
@import "@kivora/nextjs/tailwind.css";
```


Source: https://www.kivora.pro/docs/instalacion-react


---

# React Native installation

Configure the native library, providers and dependencies.

## A separate installation for React Native

Use @kivora/native in your mobile application. It shares Kivora's visual language and themes but does not render HTML: its events, providers and dependencies are native. Do not install @kivora/nextjs or import its CSS in the mobile application.

Assisted setup with @kivora/init 0.1.1 targets React Native Community CLI without Expo. You need an existing native application and Node.js 20.19+.

- [@kivora/native on npm](https://www.npmjs.com/package/@kivora/native)

- [How @kivora/init works](https://www.kivora.pro/docs/inicializador)

## Check versions before installing

These are the assistant's limits, narrower than the native package's peer ranges. A range accepted by npm does not prove all combinations are tested. Do not mix these instructions with NativeWind 5, Reanimated 3 or Expo.

- React Native >=0.85.3 <0.86 and React >=19.2 <20.

- NativeWind >=4.2.6 <5 and Tailwind >=3.4.17 <4.

- Reanimated >=4.3.0 <4.4 and Worklets >=0.8.3 <0.9.

- @react-native/babel-preset and @react-native/metro-config from the 0.85 series.

## Install and configure with the assistant

The assistant prepares Babel, Metro, Tailwind, CSS and NativeWind types; connects App or src/App to GestureHandlerRootView, SafeAreaProvider, KeyboardProvider and KivoraProvider; and applies the required color variables. Review generated files before continuing.


```tsx
# Ejecuta desde la carpeta de tu aplicación nativa
npx @kivora/init --framework native --dry-run

# Revisa y confirma el plan
npx @kivora/init --framework native
```


## Use native components and events

This example is a screen inside the root already configured by the assistant. Keep its providers and NativeWind variables. In React Native, text goes inside Text and the press event is onPress.


```tsx
import { Text, View } from "react-native";
import { Button } from "@kivora/native";

export default function HomeScreen() {
  return (
    <View className="flex-1 justify-center bg-background p-6">
      <Button onPress={() => console.log("Create project")}>
        <Text className="text-primary-foreground">Create project</Text>
      </Button>
    </View>
  );
}
```


## Finish native integration

The @kivora/init 0.1.1 README states that the assistant's iOS integration is not validated. The native package describes checks in its reference environment on Android and an iOS simulator, plus a css-interop fix it does not distribute automatically. These do not guarantee every external installation.

- iOS: install pods using your project workflow and rebuild the application.

- Restart Metro with a cleared cache after changing Babel, Metro or Tailwind. Use your project scripts to rebuild Android or iOS.

- Notifications need an existing Android icon. The assistant adds the permission when it finds the manifest but does not create that asset.

- Multimedia components may require additional dependencies and configuration; consult the package notes for each feature.

## If you need manual installation

Manual installation requires integrating native dependencies, Babel, Metro, Tailwind, providers and variables. npm install @kivora/native alone does not finish setup. Follow the README for your chosen version and review existing dependencies before changing versions.

- [Manual installation and compatibility of @kivora/native](https://www.npmjs.com/package/@kivora/native#installation)

- [What to share between web and mobile](https://www.kivora.pro/docs/multiplataforma)

Source: https://www.kivora.pro/docs/instalacion-react-native


---

# Web and React Native

One visual language across platforms.

## One family, two renderers

@kivora/nextjs provides web components. @kivora/native targets React Native. Both share types and themes from @kivora/theme without requiring you to install both renderers.

- [Web installation](https://www.kivora.pro/docs/instalacion)

- [React Native installation](https://www.kivora.pro/docs/instalacion-react-native)


```tsx
# Dentro de tu aplicación Next.js
npx @kivora/init --framework nextjs

# Dentro de tu aplicación React Native compatible
npx @kivora/init --framework native
```


## What you can share

- Palettes and design decisions expressed through theme tokens.

- Equivalent names, states and interaction patterns when both platforms support them.

- Business logic, validation and data models independent of the interface.

## What you need to adapt

DOM attributes, table engines and react-slick options are not interchangeable with React Native. Resizable belongs to the web package; Menu is available on both platforms; the native library adds BottomSheet.

These pages document the @kivora/nextjs 0.3.0 API. Consult the README and types of your installed native version when building native components.

Source: https://www.kivora.pro/docs/multiplataforma


---

# Themes and colors

One foundation. All your personality.

## Light, dark or system mode

KivoraProvider accepts colorMode="light", "dark" or "system". The resolved mode updates the document's dark class. Mount a top-level provider to prevent competing modes.


```tsx
<KivoraProvider colorMode="system">
  {children}
</KivoraProvider>
```


## Colors with meaning

Use bg-background, text-foreground, bg-primary and border-border. Names describe each color's role, so the interface can switch themes without changing every component.

The home page and documentation share the same variables: violet in light mode, lavender in dark mode, pink and sage green. The header controls let you try all four palettes.


```tsx
:root {
  --color-primary: #6558e8;
  --color-primary-foreground: #ffffff;
  --color-background: #f7f8fc;
  --color-foreground: #25262c;
}

.dark {
  --color-primary: #a79bff;
  --color-primary-foreground: #201a3b;
  --color-background: #13141e;
  --color-foreground: #f0eef7;
}
```


## Give it your brand's colors

Customize token pairs: primary with primary-foreground, card with card-foreground, and so on. Check readability in hover, focus and disabled states.

Panels using portals may render under body. If you scope variables to a section, also configure the portal container or apply the palette at document level.


```tsx
.brand-rose {
  --color-primary: #a03872;
  --color-primary-foreground: #ffffff;
  --color-secondary: #f7e0eb;
  --color-secondary-foreground: #943564;
}

.brand-sage {
  --color-primary: #287c60;
  --color-primary-foreground: #ffffff;
  --color-secondary: #e2eee5;
  --color-secondary-foreground: #287c60;
}
```


## CSS variables and the theme object

themeOverrides changes the object returned by useKivoraTheme but does not generate CSS variables automatically. If you consume both the theme object and CSS classes, keep the two representations aligned.


```tsx
"use client";
import { useKivoraTheme } from "@kivora/nextjs";

export function CurrentTheme() {
  const { resolvedColorMode } = useKivoraTheme();
  return <span>Current mode: {resolvedColorMode}</span>;
}
```


## Your typography stays yours

Kivora does not require the typography used in these examples. This site keeps Geist and Geist Mono. Define font-family in your application and use typography components to organize the hierarchy.

Source: https://www.kivora.pro/docs/temas


---

# Composition and state

Connect components, data and behavior.

## Components that work together

Compound components expose small pieces: CardHeader, CardContent and CardFooter; DialogTrigger and DialogContent; TabsList and TabsContent. Preserve the required structure and adapt the content to your product.


```tsx
<Card>
  <CardHeader>
    <CardTitle>My team</CardTitle>
    <CardDescription>The people behind the idea.</CardDescription>
  </CardHeader>
  <CardContent><Input aria-label="Email" placeholder="name@team.com" /></CardContent>
  <CardFooter><Button>Invite</Button></CardFooter>
</Card>
```


## Your application owns the state

defaultValue, defaultChecked and defaultOpen set the initial state of an uncontrolled component. Use value/checked/open with the corresponding callback when state lives in React. Do not mix both strategies in the same control.


```tsx
"use client";
import { useState } from "react";
import { Switch } from "@kivora/nextjs";

export default function Preferences() {
  const [enabled, setEnabled] = useState(true);
  return <Switch aria-label="Notifications" checked={enabled} onCheckedChange={setEnabled} />;
}
```


## Compose with asChild

When a component supports asChild, it applies its behavior to a single compatible child instead of creating another element. Use it to turn a Button into a link or use a Button as a dialog trigger.

The child must accept props and ref. Do not nest buttons inside buttons or links inside links.


```tsx
import Link from "next/link";
import { Button } from "@kivora/nextjs";

<Button asChild>
  <Link href="/docs">Read documentation</Link>
</Button>
```


## Connect services when you need them

Forms collect information; your application validates and saves it. DataTable receives rows; your service fetches them. FileUpload needs a Tus endpoint or custom transport. Player needs media and, when applicable, license services.

Separate visual state from remote state: show when an operation is pending, confirm its result and allow recovery from errors.

Source: https://www.kivora.pro/docs/composicion


---

# Animations

Entrances, text, SVG, and loaders with reduced motion.

## Available since Kivora 0.3.0

Import Animation, AnimatedText, AnimatedPath, and AnimatedLoader from @kivora/nextjs. Update the package and keep the existing CSS and KivoraProvider. You do not need to install an additional animation engine: the web package includes Motion.


```bash
npm install @kivora/nextjs@^0.3.0
```


## Choose an animation component

Animation wraps content; AnimatedText receives a string; AnimatedPath draws a path; AnimatedLoader represents loading. This family does not include exits, scroll effects, morphing, or Jitter project imports.

- [Animation](https://www.kivora.pro/docs/componentes/animation)

- [AnimatedText](https://www.kivora.pro/docs/componentes/animated-text)

- [AnimatedPath](https://www.kivora.pro/docs/componentes/animated-path)

- [AnimatedLoader](https://www.kivora.pro/docs/componentes/animated-loader)

## Timing, replay, and state

duration, delay, and stagger are in milliseconds. Entrances run on mount and replay when replayKey changes. AnimatedLoader only offers duration for timing: its loop ends when unmounted or motion is disabled.


```tsx
"use client";

import { useState } from "react";
import { Animation, Button, Card, CardContent } from "@kivora/nextjs";

export default function Example() {
  const [replay, setReplay] = useState(0);
  return <div style={{ display: "grid", gap: 20 }}>
    <Animation preset="fade-up" duration={600} delay={0} replayKey={replay}>
      <Card><CardContent style={{ padding: 24 }}>A gentle entrance</CardContent></Card>
    </Animation>
    <Button type="button" variant="outline" onClick={() => setReplay(replay + 1)}>Replay animation</Button>
  </div>;
}
```


## Reduced motion and accessibility

All four components respect prefers-reduced-motion. disabled shows the final state without motion; a loader keeps its indicator. Do not hide essential information inside an animation.

AnimatedText preserves a complete accessible sentence. Use words for compound emoji and ligatures. AnimatedPath needs label when conveying information, and AnimatedLoader needs a translated label describing the operation.

## Web, native, and performance

In React Native, import from @kivora/native; the components use Reanimated. AnimatedPath needs pathLength; AnimatedText uses textStyle. Check each platform’s types before sharing code.

The target is 60 fps, not a guarantee for every device. Opacity and transform can be delegated to the browser; SVG paths can require repainting. Measure your actual screen and do not extrapolate a web benchmark to native devices.

- [Official animation documentation](https://github.com/kivora-ui/module/blob/main/docs/animations.md)

Source: https://www.kivora.pro/docs/animaciones


---

# Accessibility

Interfaces that more people can use in more ways.

## Start with clear names

Every control needs an accessible name. Associate Label and Input using htmlFor/id and add aria-label to icon-only buttons. Do not rely on placeholders to name fields.


```tsx
<Label htmlFor="email">Work email</Label>
<Input id="email" type="email" aria-describedby="email-help" />
<p id="email-help">We will use it to invite you to the team.</p>
```


## Navigate with the keyboard

Primitives provide keyboard behavior, but the final composition still needs testing. Custom styles must not hide focus or block controls.

- Tab and Shift+Tab should traverse controls in a logical order.

- Visible focus must retain sufficient contrast.

- Escape should close panels and return focus to their trigger.

- Tabs, menus and option groups should respond to the appropriate arrow keys.

## Structure before appearance

Respect heading hierarchy, use links for navigation and buttons for actions. Include DialogTitle and DialogDescription in panels and captions when a table needs context.

Color must not be the only signal for error, success or selection. Add text and relationships such as aria-describedby; announce relevant changes in status regions.

## Adaptation and motion

Test 200% zoom, mobile sizes and reduced-motion preferences. An attractive example does not replace reviewing the entire flow with a keyboard and screen reader.

Test theme variants separately: customizing tokens changes contrast and can affect text, borders and interactive states.

Source: https://www.kivora.pro/docs/accesibilidad


---

# Using agents

Install the Kivora skill and share its instructions with your agent.

## A skill for building with Kivora

kivora-ui teaches an agent to integrate @kivora/nextjs into React web and Next.js, compose components, and customize themes. It includes installation, API, and styling references and links to maintained documentation. For React Native it points to the native guide instead of applying web APIs.

npx skills runs the skills installer. skills add copies instructions into the agent environment; it does not install the Kivora library or configure your application. To install the library, follow the installation guide or use @kivora/init in a compatible project.

- [Install the library](https://www.kivora.pro/docs/instalacion)

## Install the skill in your project

You need Node.js with npm/npx and access to the repository. Run the command from your project root. The installer lets you choose target agents; project installation is the default.

The remote command becomes available when skills/kivora-ui is published on the default branch of kivora-ui/docs. If the repository is private, you need credentials with access.


```bash
npx skills add kivora-ui/docs --skill kivora-ui
```


## Choose agents and scope

Each line is an alternative: list without installing, install for a specific agent, or install globally across your projects. Use --skill with multiple names if the repository adds more skills; currently we distribute kivora-ui.


```bash
npx skills add kivora-ui/docs --list
npx skills add kivora-ui/docs --skill kivora-ui -a codex
npx skills add kivora-ui/docs --skill kivora-ui -a claude-code
npx skills add kivora-ui/docs --skill kivora-ui -g
```


## Ask for a concrete task

After installation, start an agent session that can discover the skill. Ask: “Use the kivora-ui skill to create a project form with validation and Kivora components.” Automatic selection depends on the agent and task; you can also invoke it explicitly using your tool’s mechanism.

The skill guides decisions and consults the installed version’s types. It does not guarantee that the agent uses it for every request. Review changes and check your application flows.

## Update and try it from the repository

skills update updates installed skills. The two local-path commands run from a kivora-ui/docs checkout and let you discover or install this skill before publication. Publishing changes on GitHub does not automatically update installed copies.


```bash
npx skills list
npx skills update
npx skills add ./skills/kivora-ui --list
npx skills add ./skills/kivora-ui
```


## Resources for users and agents

- [Skill source code](https://github.com/kivora-ui/docs/tree/main/skills/kivora-ui)

- [Skills installer reference](https://github.com/vercel-labs/skills)

- [Documentation index for agents](https://www.kivora.pro/llms.txt)

- [Full documentation as text](https://www.kivora.pro/llms-full.txt)

Source: https://www.kivora.pro/docs/agentes


---

# AspectRatio

Keep stable proportions for images and visual content.

## How to use it

Set ratio to width divided by height. Give the container a width so its height can be calculated.



## Import


```tsx
import { AspectRatio } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<div style={{ width: 360 }}><AspectRatio ratio={16 / 9} style={{ background: "linear-gradient(135deg, #6558e8, #dec5ef)", borderRadius: 12, display: "grid", placeItems: "center", color: "white" }}>16 : 9</AspectRatio></div>
```


## API: AspectRatio


```typescript
AspectRatio: React.ForwardRefExoticComponent<AspectRatioProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| ratio | number | No | Width-to-height ratio. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/aspect-ratio


---

# Avatar

Represent a person with an image or initials.

## How to use it

Provide alternative text for AvatarImage and an AvatarFallback while an image loads or is unavailable.



## Import


```tsx
import { Avatar, AvatarImage, AvatarFallback } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Avatar><AvatarFallback>SM</AvatarFallback></Avatar>
```


## Team

```tsx
<div style={{ display: "flex", alignItems: "center", gap: 12, flexWrap: "wrap" }}>
  {["SM", "LG", "EW"].map(name => <Avatar key={name}><AvatarFallback>{name}</AvatarFallback></Avatar>)}
</div>
```


## API: Avatar


```typescript
Avatar: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarProps & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLSpanElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLSpanElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLSpanElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: AvatarImage


```typescript
AvatarImage: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarImageProps & React.RefAttributes<HTMLImageElement>, "ref"> & React.RefAttributes<HTMLImageElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| alt | string | No | Alternative text for the image. |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLImageElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLImageElement> | No | Action performed when the element is activated. |
| onLoadingStatusChange | ((status: ImageLoadingStatus) => void) | No | See the published type. |
| onSubmit | SubmitEventHandler<HTMLImageElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| src | string | No | Resource path or URL. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: AvatarFallback


```typescript
AvatarFallback: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarFallbackProps & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| delayMs | number | No | See the published type. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLSpanElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLSpanElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLSpanElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/avatar


---

# Badge

A small label for statuses, categories and updates.

## How to use it

Convey status with text as well as color. Badge describes information; use Button to perform an action.



## Import


```tsx
import { Badge } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Badge variant="secondary">New</Badge>
```


## Statuses

```tsx
<div style={{ display: "flex", alignItems: "center", gap: 12, flexWrap: "wrap" }}>
  <Badge>Published</Badge><Badge variant="outline">Draft</Badge><Badge variant="destructive">Error</Badge>
</div>
```


## API: Badge


```typescript
Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| variant | "default" \| "destructive" \| "secondary" \| "outline" \| null | No | Visual variant. Use a value supported by this component. |

Source: https://www.kivora.pro/docs/componentes/badge


---

# Button

A clear action at the right moment.

## How to use it

Use Button for actions and asChild with a link for navigation. In forms, set type="button" when the action should not submit data.



## Import


```tsx
import { Button } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Button variant="default" size="default">Create project</Button>
```


## Variants

```tsx
<div style={{ display: "flex", alignItems: "center", gap: 12, flexWrap: "wrap" }}>
  {(["default", "secondary", "outline", "ghost", "destructive", "link"] as const).map(variant => <Button key={variant} variant={variant}>{variant}</Button>)}
</div>
```


## With state

```tsx
function Example() {
  const [saved, setSaved] = useState(false);
  return <Button onClick={() => setSaved(!saved)}>{saved ? "Saved ✓" : "Save changes"}</Button>;
}
```


## API: Button


```typescript
Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| size | "default" \| "sm" \| "lg" \| "icon" \| null | No | Visual size of the component. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |
| variant | "default" \| "link" \| "destructive" \| "secondary" \| "outline" \| "ghost" \| null | No | Visual variant. Use a value supported by this component. |

Source: https://www.kivora.pro/docs/componentes/button


---

# ButtonGroup

Group related actions in a single row.

## How to use it

Combine buttons with consistent variants. Use distinct labels so each action is recognizable.



## Import


```tsx
import { ButtonGroup } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<ButtonGroup><Button variant="outline">Previous</Button><Button>Next</Button></ButtonGroup>
```


## API: ButtonGroup


```typescript
ButtonGroup: React.ForwardRefExoticComponent<ButtonGroupProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| attached | boolean | No | See the published type. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| orientation | "horizontal" \| "vertical" | No | Horizontal or vertical axis. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/button-group


---

# Card

A container that gives content context and structure.

## How to use it

Compose the card with Header, Title, Description, Content and Footer. The container does not dictate how its actions behave.



## Import


```tsx
import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Card style={{ width: 320 }}><CardHeader><CardTitle>Your next project</CardTitle><CardDescription>A space for a great idea.</CardDescription></CardHeader><CardContent>Invite your team and start creating.</CardContent><CardFooter><Button>Create project</Button></CardFooter></Card>
```


## API: Card


```typescript
Card: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: CardHeader


```typescript
CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: CardTitle


```typescript
CardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLHeadingElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLHeadingElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLHeadingElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: CardDescription


```typescript
CardDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLParagraphElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLParagraphElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLParagraphElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: CardContent


```typescript
CardContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: CardFooter


```typescript
CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/card


---

# Code

Formatted code with line numbers and copying.

## How to use it

Set language for highlighting and filename to give the snippet context. Content must be a string.



## Import


```tsx
import { Code } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Code language="tsx" filename="example.tsx" copyable showLineNumbers>{`<Button>Hola, Kivora</Button>`}</Code>
```


## API: Code


```typescript
Code: React.ForwardRefExoticComponent<CodeProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | string | Yes | Content or child elements of the component. |
| aria-label | string | No | Accessible name of the control. |
| className | string | No | Additional CSS classes to customize the element. |
| copyable | boolean | No | Show the copy action. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| filename | string | No | Filename displayed in the header. |
| id | string | No | Element identifier; associates labels and descriptions. |
| inline | boolean | No | Display content inline. |
| language | string | No | Language used for code highlighting. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| showLineNumbers | boolean | No | Show line numbers. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| theme | "light" \| "dark" | No | Component theme or theme identifier, depending on the API. |
| title | string | No | Title or supplementary information. |
| wrapLongLines | boolean | No | Allow long lines to wrap. |

Source: https://www.kivora.pro/docs/componentes/code


---

# Icon

Lucide icons with size, color and accessible labels.

## How to use it

Import an icon from lucide-react and pass it as icon={Check}. On native, use lucide-react-native and Icon from @kivora/native inside KivoraProvider. size, color, strokeWidth and label work on both platforms. Omit label when text accompanies the icon; add it when the icon conveys information on its own. On web you can also use className.



## Import


```tsx
import { Icon } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Icon icon={Check} label="Completed" size={24} color="#16a34a" />
```


## Sizes

```tsx
<div style={{ display: "flex", alignItems: "center", gap: 12, flexWrap: "wrap" }}>
  <Icon icon={Heart} size={16} label="Small favorite" /><Icon icon={Heart} size={24} label="Medium favorite" /><Icon icon={Heart} size={40} label="Large favorite" />
</div>
```


## Color and stroke

```tsx
<div style={{ display: "flex", alignItems: "center", gap: 12, flexWrap: "wrap" }}>
  <Icon icon={Check} color="#16a34a" strokeWidth={3} label="Completed" /><Icon icon={Heart} className="text-destructive" strokeWidth={1} label="Favorite" />
</div>
```


## Inside a button

```tsx
<Button><Icon icon={Search} size={16} />Search</Button>
```


## API: Icon


```typescript
Icon: React.ForwardRefExoticComponent<IconProps & React.RefAttributes<SVGSVGElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| icon | LucideIcon | Yes | Lucide component to render, imported from lucide-react. |
| absoluteStrokeWidth | boolean | No | See the published type. |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| id | string | No | Element identifier; associates labels and descriptions. |
| label | string | No | Text or accessible label. |
| max | string \| number | No | Maximum allowed value. |
| min | string \| number | No | Minimum allowed value. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<SVGSVGElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<SVGSVGElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<SVGSVGElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| size | string \| number | No | Visual size of the component. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| type | string | No | Operation type or mode; values depend on the component. |

Source: https://www.kivora.pro/docs/componentes/icon


---

# Kbd

Display readable keyboard shortcuts.

## How to use it

Describe an existing shortcut in your application. Kbd only displays the keys; register the keyboard event in your own code.



## Import


```tsx
import { Kbd } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<div style={{ display: "flex", alignItems: "center", gap: 12, flexWrap: "wrap" }}>
  <Kbd>⌘</Kbd><Kbd>K</Kbd>
</div>
```


## API: Kbd


```typescript
Kbd: React.ForwardRefExoticComponent<KbdProps & React.RefAttributes<HTMLElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| size | "sm" \| "lg" \| "md" \| null | No | Visual size of the component. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| variant | "default" \| "outline" \| "solid" \| null | No | Visual variant. Use a value supported by this component. |

Source: https://www.kivora.pro/docs/componentes/kbd


---

# Separator

Subtly separate blocks of content.

## How to use it

Use orientation to change the axis. decorative indicates that the separator is purely visual.



## Import


```tsx
import { Separator } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<div style={{ display: "grid", gap: 16, width: "100%", maxWidth: 360 }}>
  <span>Your workspace</span><Separator /><span>Team settings</span>
</div>
```


## API: Separator


```typescript
Separator: React.ForwardRefExoticComponent<SeparatorProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| decorative | boolean | No | Whether or not the component is purely decorative. When true, accessibility-related attributes are updated so that that the rendered element is removed from the accessibility tree. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| orientation | "horizontal" \| "vertical" | No | Horizontal or vertical axis. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/separator


---

# Typography

Typography with a shared visual language.

## How to use it

Choose heading levels based on document structure. Keep one main h1 and use paragraphs for body content.



## Import


```tsx
import { TypographyH1, TypographyH2, TypographyH3, TypographyH4, TypographyP, TypographyLead, TypographyLarge, TypographySmall, TypographyMuted, TypographyBlockquote, TypographyList, TypographyInlineCode } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<div style={{ display: "grid", gap: 16, width: "100%", maxWidth: 360 }}>
  <TypographyH2>Ideas take shape.</TypographyH2><TypographyP>A consistent foundation for what you are building.</TypographyP><TypographyMuted>Small details matter too.</TypographyMuted>
</div>
```


## API: TypographyH1


```typescript
TypographyH1: React.ForwardRefExoticComponent<TypographyProps<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLHeadingElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLHeadingElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLHeadingElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: TypographyH2


```typescript
TypographyH2: React.ForwardRefExoticComponent<TypographyProps<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLHeadingElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLHeadingElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLHeadingElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: TypographyH3


```typescript
TypographyH3: React.ForwardRefExoticComponent<TypographyProps<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLHeadingElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLHeadingElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLHeadingElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: TypographyH4


```typescript
TypographyH4: React.ForwardRefExoticComponent<TypographyProps<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLHeadingElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLHeadingElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLHeadingElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: TypographyP


```typescript
TypographyP: React.ForwardRefExoticComponent<TypographyProps<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLParagraphElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLParagraphElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLParagraphElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: TypographyLead


```typescript
TypographyLead: React.ForwardRefExoticComponent<TypographyProps<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLParagraphElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLParagraphElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLParagraphElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: TypographyLarge


```typescript
TypographyLarge: React.ForwardRefExoticComponent<TypographyProps<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: TypographySmall


```typescript
TypographySmall: React.ForwardRefExoticComponent<TypographyProps<HTMLElement> & React.RefAttributes<HTMLElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: TypographyMuted


```typescript
TypographyMuted: React.ForwardRefExoticComponent<TypographyProps<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLParagraphElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLParagraphElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLParagraphElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: TypographyBlockquote


```typescript
TypographyBlockquote: React.ForwardRefExoticComponent<TypographyProps<HTMLQuoteElement> & React.RefAttributes<HTMLQuoteElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLQuoteElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLQuoteElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLQuoteElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: TypographyList


```typescript
TypographyList: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLUListElement> & React.RefAttributes<HTMLUListElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLUListElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLUListElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLUListElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: TypographyInlineCode


```typescript
TypographyInlineCode: React.ForwardRefExoticComponent<TypographyProps<HTMLElement> & React.RefAttributes<HTMLElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/typography


---

# Calendar

Date selection in a calendar view.

## How to use it

Based on DayPicker. Combine mode="single" with selected and onSelect; use mode="range" for date ranges.



## Import


```tsx
import { Calendar } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
function Example() {
 const [date, setDate] = useState<Date | undefined>(new Date(2026, 8, 9));
 return <Calendar mode="single" selected={date} onSelect={setDate} defaultMonth={new Date(2026, 8, 1)} />;
}
```


## API: Calendar


```typescript
declare function Calendar({ className, classNames, showOutsideDays, components, fullWidth, ...props }: CalendarProps): React.JSX.Element;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| selected | Date \| Date[] \| Date[] \| DateRange \| DateRange | Yes | Selected date or dates. |
| animate | boolean | No | Enable or disable animation. |
| aria-label | string | No | Accessible name of the control. |
| aria-labelledby | string | No | The aria-labelledby attribute to add to the container element. |
| autoFocus | boolean | No | When a selection mode is set, DayPicker will focus the first selected day (if set) or today's date (if not disabled).  Use this prop when you need to focus DayPicker after a user action, for improved accessibility. |
| broadcastCalendar | boolean | No | Display the weeks in the month following the broadcast calendar. Setting this prop will ignore {@link weekStartsOn} (always Monday) and {@link showOutsideDays} will default to true. |
| captionLayout | "label" \| "dropdown" \| "dropdown-months" \| "dropdown-years" | No | Show dropdowns to navigate between months or years.  - `label`: Displays the month and year as a label. Default value. - `dropdown`: Displays dropdowns for both month and year navigation. - `dropdown-months`: Displays a dropdown only for the month navigation. - `dropdown-years`: Displays a dropdown only for the year navigation.  **Note:** By default, showing the dropdown will set the {@link startMonth} to 100 years ago and {@link endMonth} to the end of the current year. You can override this behavior by explicitly setting `startMonth` and `endMonth`. |
| className | string | No | Additional CSS classes to customize the element. |
| classNames | Partial<ClassNames> | No | Change the class names used by DayPicker.  Use this prop when you need to change the default class names — for example, when importing the style via CSS modules or when using a CSS framework. |
| components | Partial<CustomComponents> | No | Change the components used for rendering the calendar elements. |
| dateLib | Partial<DateLib> | No | Replace the default date library with a custom one. Experimental: not guaranteed to be stable (may not respect semver). |
| defaultMonth | Date | No | The initial month to show in the calendar.  Use this prop to let DayPicker control the current month. If you need to set the month programmatically, use {@link month} and {@link onMonthChange}. |
| dir | string | No | Interface reading direction. |
| disabled | Matcher \| Matcher[] | No | Disable control interaction or animation motion. |
| disableNavigation | boolean | No | Disable the navigation between months. This prop won't hide the navigation: to hide the navigation, use {@link hideNavigation}. |
| endMonth | Date | No | The latest month to end the month navigation. |
| excludeDisabled | boolean | No | When `true`, the range will reset when including a disabled day. |
| firstWeekContainsDate | 1 \| 4 | No | The day of January that is always in the first week of the year. |
| fixedWeeks | boolean | No | Display always 6 weeks per each month, regardless of the month’s number of weeks. Weeks will be filled with the days from the next month. |
| footer | ReactNode | No | Add a footer to the calendar, acting as a live region.  Use this prop to communicate the calendar's status to screen readers. Prefer strings over complex UI elements. |
| formatters | Partial<Formatters> | No | Formatters used to format dates to strings. Use this prop to override the default functions. |
| fullWidth | boolean | No | See the published type. |
| hidden | Matcher \| Matcher[] | No | Apply the `hidden` modifier to the matching days. Will hide them from the calendar. |
| hideNavigation | boolean | No | Hide the navigation buttons. This prop won't disable the navigation: to disable the navigation, use {@link disableNavigation}. |
| hideWeekdays | boolean | No | Hide the row displaying the weekday row header. |
| id | string | No | Element identifier; associates labels and descriptions. |
| ISOWeek | boolean | No | Use ISO week dates instead of the locale setting. Setting this prop will ignore `weekStartsOn` and `firstWeekContainsDate`. |
| labels | Partial<Labels> | No | Labels creators to override the defaults. Use this prop to customize the aria-label attributes in DayPicker. |
| lang | string | No | Add the language tag to the container element.  When omitted, DayPicker uses the active locale code (`locale.code`). Set this prop to override the language tag. |
| locale | Partial<DayPickerLocale> | No | Localization in the format expected by the component. |
| max | number | No | Maximum allowed value. |
| min | number | No | Minimum allowed value. |
| mode | "single" \| "multiple" \| "multiple" \| "range" \| "range" \| undefined | No | Selection mode. |
| modifiers | Record<string, Matcher \| Matcher[]> | No | Add modifiers to the matching days. |
| modifiersClassNames | ModifiersClassNames | No | Change the class name for the day matching the `modifiers`. |
| modifiersStyles | ModifiersStyles | No | Change the class name for the day matching the {@link modifiers}. |
| month | Date | No | The month displayed in the calendar.  As opposed to `defaultMonth`, use this prop with `onMonthChange` to change the month programmatically. |
| navLayout | "around" \| "after" | No | Adjust the positioning of the navigation buttons.  - `around`: Displays the buttons on either side of the caption. - `after`: Displays the buttons after the caption. This ensures the tab order   matches the visual order.  If not set, DayPicker preserves its legacy layout, but the tab order may not align with the visual order when using `captionLayout="dropdown"`. |
| nonce | string | No | A cryptographic nonce ("number used once") which can be used by Content Security Policy for the inline `style` attributes. |
| noonSafe | boolean | No | Keep calendar math at noon in the configured {@link timeZone} to avoid historical second-level offsets drifting dates across midnight.  This prop sets the time of the dates to noon (12:00). |
| numberOfMonths | number | No | The number of displayed months. |
| numerals | "latn" \| "arab" \| "arabext" \| "deva" \| "geez" \| "beng" \| "guru" \| "gujr" \| "orya" \| "tamldec" \| "telu" \| "knda" \| "mlym" \| "thai" \| "mymr" \| "khmr" \| "laoo" \| "tibt" | No | The numeral system to use when formatting dates.  - `latn`: Latin (Western Arabic) - `arab`: Arabic-Indic - `arabext`: Eastern Arabic-Indic (Persian) - `deva`: Devanagari - `beng`: Bengali - `guru`: Gurmukhi - `gujr`: Gujarati - `orya`: Oriya - `tamldec`: Tamil - `telu`: Telugu - `knda`: Kannada - `mlym`: Malayalam |
| onDayBlur | DayEventHandler<FocusEvent<Element, Element>> | No | Event handler when a day is blurred. |
| onDayClick | DayEventHandler<MouseEvent<Element, MouseEvent>> | No | Event handler when a day is clicked. |
| onDayFocus | DayEventHandler<FocusEvent<Element, Element>> | No | Event handler when a day is focused. |
| onDayKeyDown | DayEventHandler<KeyboardEvent<Element>> | No | Event handler when a key is pressed on a day. |
| onDayMouseEnter | DayEventHandler<MouseEvent<Element, MouseEvent>> | No | Event handler when the mouse enters a day. |
| onDayMouseLeave | DayEventHandler<MouseEvent<Element, MouseEvent>> | No | Event handler when the mouse leaves a day. |
| onMonthChange | MonthChangeEventHandler | No | Event fired when the user navigates between months. |
| onNextClick | MonthChangeEventHandler | No | Event handler when the next month button is clicked. |
| onPrevClick | MonthChangeEventHandler | No | Event handler when the previous month button is clicked. |
| onSelect | OnSelectHandler<Date> \| OnSelectHandler<Date[]> \| OnSelectHandler<Date[]> \| OnSelectHandler<DateRange> \| OnSelectHandler<DateRange> | No | Action or selection made by the user. |
| pagedNavigation | boolean | No | Paginate the month navigation displaying the `numberOfMonths` at a time. |
| required | false \| true \| false \| true \| false \| true \| undefined | No | Indicates that a value is required. |
| resetOnSelect | boolean | No | When `true`, clicking a day starts a new range if there is no current start date or if a range is already complete. In those cases, the clicked day becomes the start of the new range. |
| reverseMonths | boolean | No | Render the months in reversed order (when {@link numberOfMonths} is set) to display the most recent month first. |
| reverseYears | boolean | No | Reverse the order of years in the dropdown when using `captionLayout="dropdown"` or `captionLayout="dropdown-years"`. |
| role | "dialog" \| "application" | No | Semantic role of the element. Keep the default role unless a change is justified. |
| showOutsideDays | boolean | No | Show the outside days (days falling in the next or the previous month).  **Note:** when a {@link broadcastCalendar} is set, this prop defaults to true. |
| showWeekNumber | boolean | No | Show the week numbers column. Weeks are numbered according to the local week index. |
| startMonth | Date | No | The earliest month to start the month navigation. |
| style | CSSProperties | No | React inline styles. |
| styles | Partial<Styles> | No | Change the inline styles of the HTML elements. |
| timeZone | string | No | The time zone (IANA or UTC offset) to use in the calendar (experimental).  See [Wikipedia](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) for the possible values. |
| title | string | No | Title or supplementary information. |
| today | Date | No | The today’s date. Default is the current date. This date will get the `today` modifier to style the day. |
| useAdditionalDayOfYearTokens | boolean | No | Enable `YY` and `YYYY` for day of year tokens when formatting or parsing dates. |
| useAdditionalWeekYearTokens | boolean | No | Enable `DD` and `DDDD` for week year tokens when formatting or parsing dates. |
| weekStartsOn | 0 \| 1 \| 2 \| 3 \| 4 \| 5 \| 6 | No | The index of the first day of the week (0 - Sunday). Overrides the locale's default. |

Source: https://www.kivora.pro/docs/componentes/calendar


---

# Checkbox

An independent choice or part of a multiple selection.

## How to use it

Use checked and onCheckedChange to control it from React. The value can also be indeterminate for a partial selection.



## Import


```tsx
import { Checkbox } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<div style={{ display: "flex", alignItems: "center", gap: 12, flexWrap: "wrap" }}>
  <Checkbox id="terms" defaultChecked /><Label htmlFor="terms">I accept the terms</Label>
</div>
```


## API: Checkbox


```typescript
Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| checked | CheckedState | No | Controlled selection state. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | CheckedState | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onCheckedChange | ((checked: CheckedState) => void) | No | Receives the new selection state. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| required | boolean | No | Indicates that a value is required. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |

Source: https://www.kivora.pro/docs/componentes/checkbox


---

# DatePicker

A compact date picker with a dropdown calendar.

## How to use it

Use value and onValueChange to integrate it into a form. mode supports date, range, month or year; withTime adds time selection.



## Import


```tsx
import { DatePicker } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<DatePicker placeholder="Choose a date" mode="single" localeCode="en" />
```


## With time

```tsx
<DatePicker placeholder="Date and time" withTime timeFormat="24h" localeCode="en" />
```


## API: DatePicker


```typescript
declare function DatePicker(props: DatePickerProps): React.JSX.Element;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| calendarClassName | string | No | See the published type. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultValue | DatePickerValue | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| locale | Locale | No | Localization in the format expected by the component. |
| localeCode | string | No | Language code for the picker. |
| mode | "single" \| "range" \| "month" \| "year" | No | Selection mode. |
| numberOfMonths | number | No | See the published type. |
| onValueChange | ((date: DatePickerValue) => void) | No | Receives the value after an interaction. |
| placeholder | string | No | Short hint displayed when there is no value. |
| presets | DatePickerPreset[] | No | See the published type. |
| showFooter | boolean | No | See the published type. |
| showPresets | boolean | No | See the published type. |
| startView | "month" \| "year" \| "calendar" | No | See the published type. |
| timeFormat | "12h" \| "24h" | No | 12-hour or 24-hour cycle. |
| value | DatePickerValue | No | Controlled value. Update it from the change callback. |
| withTime | boolean | No | Include time editing. |

Source: https://www.kivora.pro/docs/componentes/date-picker


---

# Field

Label, hint, control and error in one unit.

## How to use it

Group fields with FieldGroup or FieldSet. Use FieldDescription for instructions and FieldError for validation messages.



## Import


```tsx
import { Field, FieldSet, FieldLegend, FieldGroup, FieldLabel, FieldContent, FieldDescription, FieldError, FieldSeparator } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Field><FieldLabel htmlFor="field-name">Name</FieldLabel><Input id="field-name" placeholder="Your name" /><FieldDescription>How your team will see you.</FieldDescription></Field>
```


## API: Field


```typescript
Field: React.ForwardRefExoticComponent<FieldProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| orientation | "horizontal" \| "vertical" \| "responsive" | No | Horizontal or vertical axis. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: FieldSet


```typescript
FieldSet: React.ForwardRefExoticComponent<FieldSetProps & React.RefAttributes<HTMLFieldSetElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLFieldSetElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLFieldSetElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLFieldSetElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: FieldLegend


```typescript
FieldLegend: React.ForwardRefExoticComponent<FieldLegendProps & React.RefAttributes<HTMLLegendElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLLegendElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLLegendElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLLegendElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: FieldGroup


```typescript
FieldGroup: React.ForwardRefExoticComponent<FieldGroupProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: FieldLabel


```typescript
FieldLabel: React.ForwardRefExoticComponent<FieldLabelProps & React.RefAttributes<HTMLLabelElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| htmlFor | string | No | id of the control associated with the label. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLLabelElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLLabelElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLLabelElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: FieldContent


```typescript
FieldContent: React.ForwardRefExoticComponent<FieldContentProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: FieldDescription


```typescript
FieldDescription: React.ForwardRefExoticComponent<FieldDescriptionProps & React.RefAttributes<HTMLParagraphElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLParagraphElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLParagraphElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLParagraphElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: FieldError


```typescript
FieldError: React.ForwardRefExoticComponent<FieldErrorProps & React.RefAttributes<HTMLParagraphElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLParagraphElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLParagraphElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLParagraphElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: FieldSeparator


```typescript
FieldSeparator: React.ForwardRefExoticComponent<FieldSeparatorProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/field


---

# Input

Text input with sizes, validation and masks.

## How to use it

Associate a label using htmlFor and id. Use invalid for the visual error state and aria-describedby to explain how to fix it.



## Import


```tsx
import { Input } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<div style={{ display: "grid", gap: 16, width: "100%", maxWidth: 360 }}>
  <Label htmlFor="demo-email">Email</Label><Input id="demo-email" type="email" placeholder="you@example.com" />
</div>
```


## Mask

```tsx
<Input aria-label="Phone" mask="000 000 000" placeholder="600 000 000" />
```


## Error

```tsx
<div style={{ display: "grid", gap: 16, width: "100%", maxWidth: 360 }}>
  <Input aria-label="Email" invalid defaultValue="incomplete email" aria-describedby="email-error" /><p id="email-error">Enter a valid email.</p>
</div>
```


## API: Input


```typescript
Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| alt | string | No | Alternative text for the image. |
| aria-label | string | No | Accessible name of the control. |
| autoComplete | HTMLInputAutoCompleteAttribute | No | Tell the browser which autocomplete type to use. |
| checked | boolean | No | Controlled selection state. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| definitions | Record<string, RegExp> | No | See the published type. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| invalid | boolean | No | Enable the visual error state. |
| lazy | boolean | No | See the published type. |
| mask | string \| RegExp | No | Mask or regular expression applied to input. |
| max | string \| number | No | Maximum allowed value. |
| maxLength | number | No | Maximum number of characters. |
| min | string \| number | No | Minimum allowed value. |
| name | string | No | Name used to identify the control in forms. |
| onAccept | ((value: string, maskRef: unknown, event?: InputEvent) => void) | No | Receives changes accepted by the mask. |
| onChange | ChangeEventHandler<HTMLInputElement, HTMLInputElement> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLInputElement> | No | Action performed when the element is activated. |
| onComplete | ((value: string, maskRef: unknown, event?: InputEvent) => void) | No | Callback when input or an operation is complete. |
| onSubmit | SubmitEventHandler<HTMLInputElement> | No | Form submission event. |
| overwrite | boolean | No | See the published type. |
| placeholder | string | No | Short hint displayed when there is no value. |
| placeholderChar | string | No | See the published type. |
| required | boolean | No | Indicates that a value is required. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| size | "default" \| "sm" \| "lg" \| null | No | Visual size of the component. |
| src | string | No | Resource path or URL. |
| step | string \| number | No | Increment between values. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | HTMLInputTypeAttribute | No | Operation type or mode; values depend on the component. |
| unmask | boolean \| "typed" | No | Control the format of the value returned by the mask. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |

Source: https://www.kivora.pro/docs/componentes/input


---

# InputGroup

Add context and actions to an input.

## How to use it

Combine Input with adornments and buttons. Keep an accessible label for the field and for icon-only buttons.



## Import


```tsx
import { InputGroup, InputGroupAddon, InputGroupButton } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<InputGroup><InputGroupAddon>@</InputGroupAddon><Input aria-label="User" placeholder="usuario" /><InputGroupAddon><InputGroupButton aria-label="Search users">Search</InputGroupButton></InputGroupAddon></InputGroup>
```


## API: InputGroup


```typescript
InputGroup: React.ForwardRefExoticComponent<InputGroupProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| invalid | boolean | No | Enable the visual error state. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| size | "default" \| "sm" \| "lg" | No | Visual size of the component. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: InputGroupAddon


```typescript
InputGroupAddon: React.ForwardRefExoticComponent<InputGroupAddonProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| side | "left" \| "right" | No | Side from which the panel appears. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: InputGroupButton


```typescript
InputGroupButton: React.ForwardRefExoticComponent<InputGroupButtonProps & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| side | "left" \| "right" | No | Side from which the panel appears. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |

Source: https://www.kivora.pro/docs/componentes/input-group


---

# InputOTP

A verification code split into slots.

## How to use it

Set maxLength and an index for each slot. Your server must validate the code; the component only collects input.



## Import


```tsx
import { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<InputOTP maxLength={6} aria-label="Verification code"><InputOTPGroup>{[0,1,2,3,4,5].map(index => <InputOTPSlot key={index} index={index} />)}</InputOTPGroup></InputOTP>
```


## API: InputOTP


```typescript
InputOTP: React.ForwardRefExoticComponent<InputOTPProps & React.RefAttributes<HTMLInputElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | undefined \| ReactNode | Yes | Content or child elements of the component. |
| maxLength | number | Yes | Maximum number of characters. |
| alt | string | No | Alternative text for the image. |
| aria-label | string | No | Accessible name of the control. |
| autoComplete | HTMLInputAutoCompleteAttribute | No | Tell the browser which autocomplete type to use. |
| checked | boolean | No | Controlled selection state. |
| className | string | No | Additional CSS classes to customize the element. |
| containerClassName | string | No | See the published type. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| max | string \| number | No | Maximum allowed value. |
| min | string \| number | No | Minimum allowed value. |
| name | string | No | Name used to identify the control in forms. |
| nonce | string | No | See the published type. |
| noScriptCSSFallback | string \| null | No | See the published type. |
| onChange | ((newValue: string) => unknown) | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLInputElement> | No | Action performed when the element is activated. |
| onComplete | ((...args: any[]) => unknown) | No | Callback when input or an operation is complete. |
| onSubmit | SubmitEventHandler<HTMLInputElement> | No | Form submission event. |
| pasteTransformer | ((pasted: string) => string) | No | See the published type. |
| placeholder | string | No | Short hint displayed when there is no value. |
| pushPasswordManagerStrategy | "none" \| "increase-width" | No | See the published type. |
| render | InputOTPRenderFn \| undefined | No | See the published type. |
| required | boolean | No | Indicates that a value is required. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| src | string | No | Resource path or URL. |
| step | string \| number | No | Increment between values. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| textAlign | "center" \| "left" \| "right" | No | See the published type. |
| title | string | No | Title or supplementary information. |
| type | HTMLInputTypeAttribute | No | Operation type or mode; values depend on the component. |
| value | string | No | Controlled value. Update it from the change callback. |

## API: InputOTPGroup


```typescript
InputOTPGroup: React.ForwardRefExoticComponent<InputOTPGroupProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: InputOTPSlot


```typescript
InputOTPSlot: React.ForwardRefExoticComponent<InputOTPSlotProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| index | number | Yes | See the published type. |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: InputOTPSeparator


```typescript
InputOTPSeparator: React.ForwardRefExoticComponent<InputOTPSeparatorProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/input-otp


---

# Label

A field's visible label.

## How to use it

Connect htmlFor to the control's id. A placeholder complements the label but does not replace it.



## Import


```tsx
import { Label } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<div style={{ display: "grid", gap: 16, width: "100%", maxWidth: 360 }}>
  <Label htmlFor="project-name">Project name</Label><Input id="project-name" placeholder="My next idea" />
</div>
```


## API: Label


```typescript
Label: React.ForwardRefExoticComponent<LabelProps & React.RefAttributes<HTMLLabelElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| htmlFor | string | No | id of the control associated with the label. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLLabelElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLLabelElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLLabelElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/label


---

# Questionnaire

Sequential questions with structured answers.

## How to use it

Define a unique id per question and handle onComplete. Supports single, multiple and freeform; set optional for non-required questions.



## Import


```tsx
import { Questionnaire } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
function Example() {
 const [done, setDone] = useState(false);
 return done ? <Alert><AlertTitle>Thank you!</AlertTitle><AlertDescription>Answers received in this demo.</AlertDescription></Alert> : <Questionnaire questions={[{id:"role",title:"What are you creating?",type:"single",options:[{label:"A website",value:"web"},{label:"An app",value:"app"}]},{id:"idea",title:"Tell us about your idea",type:"freeform",optional:true}]} onComplete={() => setDone(true)} />;
}
```


## API: Questionnaire


```typescript
declare function Questionnaire({ className, defaultAnswers, onComplete, questions, ...props }: QuestionnaireProps): React.JSX.Element | null;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| questions | QuestionnaireQuestion[] | Yes | Questionnaire questions with unique identifiers. |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultAnswers | Record<string, QuestionnaireAnswer> | No | Initial answers by identifier. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onComplete | ((answers: Record<string, QuestionnaireAnswer>) => void) | No | Callback when input or an operation is complete. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/questionnaire


---

# RadioGroup

One choice among several alternatives.

## How to use it

Each RadioGroupItem needs a unique value and label. The group shares state through value and onValueChange.



## Import


```tsx
import { RadioGroup, RadioGroupItem } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<RadioGroup defaultValue="pro" aria-label="Plan"><div style={{display:"flex",gap:8}}><RadioGroupItem value="starter" id="starter" /><Label htmlFor="starter">Starter</Label></div><div style={{display:"flex",gap:8}}><RadioGroupItem value="pro" id="pro" /><Label htmlFor="pro">Pro</Label></div></RadioGroup>
```


## API: RadioGroup


```typescript
RadioGroup: React.ForwardRefExoticComponent<RadioGroupProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string | No | Initial value when the component manages its own state. |
| dir | "ltr" \| "rtl" | No | Interface reading direction. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| form | string | No | See the published type. |
| id | string | No | Element identifier; associates labels and descriptions. |
| loop | boolean | No | See the published type. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| onValueChange | ((value: string) => void) | No | Receives the value after an interaction. |
| orientation | "horizontal" \| "vertical" | No | Horizontal or vertical axis. |
| required | boolean | No | Indicates that a value is required. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| value | string \| null | No | Controlled value. Update it from the change callback. |

## API: RadioGroupItem


```typescript
RadioGroupItem: React.ForwardRefExoticComponent<RadioGroupItemProps & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| value | string | Yes | Controlled value. Update it from the change callback. |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| checked | boolean | No | Controlled selection state. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| invalid | boolean | No | Enable the visual error state. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| required | boolean | No | Indicates that a value is required. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |

Source: https://www.kivora.pro/docs/componentes/radio-group


---

# Select

Selection with search, groups, asynchronous loading and option creation.

## How to use it

The API uses options with label/value objects; onChange receives the selected object. loadOptions enables asynchronous loading; isCreatable allows new options and can be combined with loadOptions. Use defaultOptions for initial loading and cacheOptions to reuse searches. Do not compose SelectItem as a Radix Select: compatibility exports are HTML elements.



## Import


```tsx
import { Select, SelectTrigger, SelectValue, SelectContent, SelectGroup, SelectLabel, SelectItem, SelectSeparator, SelectScrollDownButton, SelectScrollUpButton } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Select aria-label="Framework" placeholder="Choose your framework" options={[{value:"next",label:"Next.js"},{value:"react",label:"React"},{value:"native",label:"React Native"}]} />
```


## Asynchronous loading

```tsx
<Select aria-label="Search frameworks" defaultOptions cacheOptions loadOptions={async (query) => [{value:"next",label:"Next.js"},{value:"react",label:"React"}].filter(option => option.label.toLowerCase().includes(query.toLowerCase()))} />
```


## Create options

```tsx
<Select isCreatable aria-label="Tags" isMulti placeholder="Select or create…" options={[{value:"design",label:"Design"},{value:"dev",label:"Development"}]} />
```


## Load and create

```tsx
<Select isCreatable isMulti aria-label="Search or create" defaultOptions loadOptions={async (query) => [{value:"react",label:"React"}].filter(option => option.label.toLowerCase().includes(query.toLowerCase()))} />
```


## Multiple selection

```tsx
<Select aria-label="Technologies" isMulti options={[{value:"ts",label:"TypeScript"},{value:"react",label:"React"},{value:"css",label:"CSS"}]} />
```


## API: Select


```typescript
Select: SelectCallable
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| allowCreateWhileLoading | boolean | No | Allow options to be created while the `isLoading` prop is true. Useful to prevent the "create new ..." option being displayed while async results are still being loaded. |
| aria-errormessage | string | No | HTML ID of an element containing an error message related to the input* |
| aria-invalid | boolean \| "true" \| "false" \| "grammar" \| "spelling" | No | Indicate if the value entered in the field is invalid * |
| aria-label | string | No | Accessible name of the control. |
| aria-labelledby | string | No | HTML ID of an element that should be used as the label (for assistive tech) |
| aria-live | "off" \| "assertive" \| "polite" | No | Used to set the priority with which screen reader should treat updates to live regions. The possible settings are: off, polite (default) or assertive |
| ariaLiveMessages | AriaLiveMessages<Option, IsMulti, Group> | No | Customise the messages used by the aria-live component |
| autoFocus | boolean | No | Focus the control when it is mounted |
| backspaceRemovesValue | boolean | No | Remove the currently focused option when the user presses backspace when Select isClearable or isMulti |
| blurInputOnSelect | boolean | No | Remove focus from the input when the user selects an option (handy for dismissing the keyboard on touch devices) |
| cacheOptions | any | No | Keep loaded options for reuse. |
| captureMenuScroll | boolean | No | When the user reaches the top/bottom of the menu, prevent scroll on the scroll-parent |
| className | string | No | Additional CSS classes to customize the element. |
| classNamePrefix | string \| null | No | If provided, all inner components will be given a prefixed className attribute.  This is useful when styling via CSS classes instead of the Styles API approach. |
| classNames | ClassNamesConfig<Option, IsMulti, Group> | No | Provide classNames based on state for each inner component |
| closeMenuOnScroll | boolean \| ((event: Event) => boolean) | No | If `true`, close the select menu when the user scrolls the document/body.  If a function, takes a standard javascript `ScrollEvent` you return a boolean:  `true` => The menu closes  `false` => The menu stays open  This is useful when you have a scrollable modal and want to portal the menu out, but want to avoid graphical issues. |
| closeMenuOnSelect | boolean | No | Close the select menu when the user selects an option |
| components | Partial<SelectComponents<Option, IsMulti, Group>> | No | This complex object includes all the compositional components that are used in `react-select`. If you wish to overwrite a component, pass in an object with the appropriate namespace.  If you only wish to restyle a component, we recommend using the `styles` prop instead. For a list of the components that can be passed in, and the shape that will be passed to them, see [the components docs](/components) |
| controlShouldRenderValue | boolean | No | Whether the value of the select, e.g. SingleValue, should be displayed in the control. |
| createOptionPosition | "first" \| "last" | No | Sets the position of the createOption element in your options list. Defaults to 'last' |
| defaultInputValue | string | No | See the published type. |
| defaultMenuIsOpen | boolean | No | See the published type. |
| defaultOptions | boolean \| OptionsOrGroups<Option, Group> | No | The default set of options to show before the user starts searching. When set to `true`, the results for loadOptions('') will be autoloaded. |
| defaultValue | PropsValue<Option> | No | Initial value when the component manages its own state. |
| delimiter | string | No | Delimiter used to join multiple values into a single HTML Input value |
| escapeClearsValue | boolean | No | Clear all values when the user presses escape AND the menu is closed |
| filterOption | ((option: FilterOptionOption<Option>, inputValue: string) => boolean) \| null | No | Custom method to filter whether an option should be displayed in the menu |
| form | string | No | Sets the form attribute on the input |
| formatCreateLabel | ((inputValue: string) => ReactNode) | No | Gets the label for the "create new ..." option in the menu. Is given the current input value. |
| formatGroupLabel | ((group: Group) => ReactNode) | No | Formats group labels in the menu as React components  An example can be found in the [Replacing builtins](/advanced#replacing-builtins) documentation. |
| formatOptionLabel | ((data: Option, formatOptionLabelMeta: FormatOptionLabelMeta<Option>) => ReactNode) | No | Formats option labels in the menu and control as React components |
| getNewOptionData | ((inputValue: string, optionLabel: ReactNode) => Option) | No | Returns the data for the new option when it is created. Used to display the value, and is passed to `onChange`. |
| getOptionLabel | GetOptionLabel<Option> | No | Resolves option data to a string to be displayed as the label by components  Note: Failure to resolve to a string type can interfere with filtering and screen reader support. |
| getOptionValue | GetOptionValue<Option> | No | Resolves option data to a string to compare options and specify value attributes |
| hideSelectedOptions | boolean | No | Hide the selected option from the menu |
| id | string | No | Element identifier; associates labels and descriptions. |
| inputId | string | No | The id of the search input |
| inputValue | string | No | The value of the search input |
| instanceId | string \| number | No | Define an id prefix for the select components e.g. {your-id}-value |
| isClearable | boolean | No | Is the select value clearable |
| isCreatable | boolean | No | Allow creating options. Can be combined with loadOptions. |
| isDisabled | boolean | No | Is the select disabled |
| isLoading | boolean | No | Is the select in a state of loading (async) Will cause the select to be displayed in the loading state, even if the Async select is not currently waiting for loadOptions to resolve |
| isMulti | IsMulti | No | Allow multiple option selection. |
| isOptionDisabled | ((option: Option, selectValue: Options<Option>) => boolean) | No | Override the built-in logic to detect whether an option is disabled  An example can be found in the [Replacing builtins](/advanced#replacing-builtins) documentation. |
| isOptionSelected | ((option: Option, selectValue: Options<Option>) => boolean) | No | Override the built-in logic to detect whether an option is selected |
| isRtl | boolean | No | Is the select direction right-to-left |
| isSearchable | boolean | No | Whether to enable search functionality |
| isValidNewOption | ((inputValue: string, value: Options<Option>, options: OptionsOrGroups<Option, Group>, accessors: Accessors<Option>) => boolean) | No | Determines whether the "create new ..." option should be displayed based on the current input value, select value and options array. |
| loadingMessage | ((obj: { inputValue: string; }) => ReactNode) | No | Async: Text to display when loading options |
| loadOptions | ((inputValue: string, callback: (options: OptionsOrGroups<Option, Group>) => void) => void \| Promise<OptionsOrGroups<Option, Group>>) | No | Load or filter options and return a promise or use the supported callback. |
| maxMenuHeight | number | No | Maximum height of the menu before scrolling |
| menuClassName | string | No | See the published type. |
| menuIsOpen | boolean | No | Whether the menu is open |
| menuPlacement | "auto" \| "top" \| "bottom" | No | Default placement of the menu in relation to the control. 'auto' will flip when there isn't enough space below the control. |
| menuPortalTarget | HTMLElement \| null | No | Whether the menu should use a portal, and where it should attach  An example can be found in the [Portaling](/advanced#portaling) documentation |
| menuPosition | "absolute" \| "fixed" | No | The CSS position value of the menu, when "fixed" extra layout management is required |
| menuShouldBlockScroll | boolean | No | Whether to block scroll events when the menu is open |
| menuShouldScrollIntoView | boolean | No | Whether the menu should be scrolled into view when it opens |
| minMenuHeight | number | No | Minimum height of the menu before flipping |
| mobileSheetOptions | OptionsOrGroups<Option, Group> | No | See the published type. |
| mobileSheetTitle | string | No | See the published type. |
| name | string | No | Name used to identify the control in forms. |
| noOptionsMessage | ((obj: { inputValue: string; }) => ReactNode) | No | Text to display when there are no options |
| onBlur | FocusEventHandler<HTMLInputElement> | No | Handle blur events on the control |
| onChange | ((newValue: OnChangeValue<Option, IsMulti>, actionMeta: ActionMeta<Option>) => void) | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onCreateOption | ((inputValue: string) => void) | No | If provided, this will be called with the input value when a new option is created, and `onChange` will **not** be called. Use this when you need more control over what happens when new options are created. |
| onFocus | FocusEventHandler<HTMLInputElement> | No | Handle focus events on the control |
| onInputChange | ((newValue: string, actionMeta: InputActionMeta) => void) | No | Handle change events on the input |
| onKeyDown | KeyboardEventHandler<HTMLDivElement> | No | Handle key down events on the select |
| onMenuClose | (() => void) | No | Handle the menu closing |
| onMenuOpen | (() => void) | No | Handle the menu opening |
| onMenuScrollToBottom | ((event: WheelEvent \| TouchEvent) => void) | No | Fired when the user scrolls to the bottom of the menu |
| onMenuScrollToTop | ((event: WheelEvent \| TouchEvent) => void) | No | Fired when the user scrolls to the top of the menu |
| openMenuOnClick | boolean | No | Allows control of whether the menu is opened when the Select is clicked |
| openMenuOnFocus | boolean | No | Allows control of whether the menu is opened when the Select is focused |
| optionClassName | string | No | See the published type. |
| options | OptionsOrGroups<Option, Group> | No | Component options or configuration. See the type structure. |
| pageSize | number | No | Number of rows per page. |
| placeholder | ReactNode | No | Short hint displayed when there is no value. |
| required | boolean | No | Indicates that a value is required. |
| screenReaderStatus | ((obj: { count: number; }) => string) | No | Status to relay to screen readers |
| styles | StylesConfig<Option, IsMulti, Group> | No | Style modifier methods  A basic example can be found at the bottom of the [Replacing builtins](/advanced#replacing-builtins) documentation. |
| tabIndex | number | No | Keyboard focus order and availability. |
| tabSelectsValue | boolean | No | Select the currently focused option when the user presses tab |
| theme | ThemeConfig | No | Component theme or theme identifier, depending on the API. |
| triggerClassName | string | No | See the published type. |
| value | PropsValue<Option> | No | Controlled value. Update it from the change callback. |

## API: SelectScrollDownButton


```typescript
SelectScrollDownButton: React.ExoticComponent<React.FragmentProps>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | ReactNode | No | Content or child elements of the component. |

## API: SelectScrollUpButton


```typescript
SelectScrollUpButton: React.ExoticComponent<React.FragmentProps>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | ReactNode | No | Content or child elements of the component. |

Source: https://www.kivora.pro/docs/componentes/select


---

# Slider

Precisely adjust a value or interval.

## How to use it

value and defaultValue are arrays. Use min, max and step to define the allowed range; add an accessible label.



## Import


```tsx
import { Slider } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Slider aria-label="Volume" defaultValue={[65]} min={0} max={100} step={5} showValue style={{width:280}} />
```


## Range

```tsx
<Slider aria-label="Price range" defaultValue={[25,75]} min={0} max={100} showValue style={{width:280}} />
```


## API: Slider


```typescript
Slider: React.ForwardRefExoticComponent<SliderProps & React.RefAttributes<HTMLSpanElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | number[] | No | Initial value when the component manages its own state. |
| dir | "ltr" \| "rtl" | No | Interface reading direction. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| form | string | No | See the published type. |
| formatValue | ((value: number, index: number, values: number[]) => ReactNode) | No | Format the value for display. |
| id | string | No | Element identifier; associates labels and descriptions. |
| inverted | boolean | No | See the published type. |
| max | number | No | Maximum allowed value. |
| min | number | No | Minimum allowed value. |
| minStepsBetweenThumbs | number | No | See the published type. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| onValueChange | ((value: number[]) => void) | No | Receives the value after an interaction. |
| onValueCommit | ((value: number[]) => void) | No | See the published type. |
| orientation | "horizontal" \| "vertical" | No | Horizontal or vertical axis. |
| rangeClassName | string | No | See the published type. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| showValue | boolean | No | Show the value label. |
| step | number | No | Increment between values. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| thumbClassName | string | No | See the published type. |
| title | string | No | Title or supplementary information. |
| trackClassName | string | No | See the published type. |
| value | number[] | No | Controlled value. Update it from the change callback. |
| valueLabelClassName | string | No | See the published type. |

Source: https://www.kivora.pro/docs/componentes/slider


---

# Switch

Turn a preference on or off immediately.

## How to use it

Reserve Switch for binary settings. In controlled mode connect checked and onCheckedChange without waiting for form submission.



## Import


```tsx
import { Switch } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<div style={{ display: "flex", alignItems: "center", gap: 12, flexWrap: "wrap" }}>
  <Switch id="notifications" defaultChecked /><Label htmlFor="notifications">Receive notifications</Label>
</div>
```


## Controlled

```tsx
function Example() {
 const [enabled, setEnabled] = useState(true);
 return <div style={{display: "flex", gap: 12, alignItems: "center"}}><Switch aria-label="Notifications" checked={enabled} onCheckedChange={setEnabled} /><span>{enabled ? "Enabled" : "Disabled"}</span></div>;
}
```


## API: Switch


```typescript
Switch: React.ForwardRefExoticComponent<SwitchProps & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| checked | boolean | No | Controlled selection state. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onCheckedChange | ((checked: boolean) => void) | No | Receives the new selection state. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| required | boolean | No | Indicates that a value is required. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |

Source: https://www.kivora.pro/docs/componentes/switch


---

# Textarea

Free-form text with a counter and adaptive height.

## How to use it

Combine minRows and maxRows with autoResize to fit the content. maxLength sets the field limit.



## Import


```tsx
import { Textarea } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Textarea aria-label="Project description" placeholder="Tell us about your idea…" autoResize minRows={3} maxRows={6} maxLength={200} showCount />
```


## API: Textarea


```typescript
Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| autoComplete | string | No | Tell the browser which autocomplete type to use. |
| autoResize | boolean | No | Adapt field height to its content. |
| autoResizeDirection | "down" \| "up" | No | See the published type. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| invalid | boolean | No | Enable the visual error state. |
| maxLength | number | No | Maximum number of characters. |
| maxRows | number | No | Maximum height in rows. |
| minRows | number | No | Minimum height in rows. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLTextAreaElement, HTMLTextAreaElement> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLTextAreaElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLTextAreaElement> | No | Form submission event. |
| placeholder | string | No | Short hint displayed when there is no value. |
| required | boolean | No | Indicates that a value is required. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| rows | number | No | Number of visible rows in the field. |
| showCount | boolean | No | Show the character counter. |
| size | "default" \| "sm" \| "lg" \| null | No | Visual size of the component. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |

Source: https://www.kivora.pro/docs/componentes/textarea


---

# Toggle

A button with a pressed state.

## How to use it

Use pressed and onPressedChange for formatting tools or preferences. Text or aria-label must explain the action.



## Import


```tsx
import { Toggle } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Toggle aria-label="Bold" variant="outline">B</Toggle>
```


## API: Toggle


```typescript
Toggle: React.ForwardRefExoticComponent<ToggleProps & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode \| ((pressed: boolean) => ReactNode) | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultPressed | boolean | No | Initial pressed state. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onPressedChange | ((pressed: boolean) => void) | No | Receives pressed-state changes. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| pressed | boolean | No | Controlled pressed state. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| size | "default" \| "sm" \| "lg" \| "icon" \| null | No | Visual size of the component. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |
| variant | "default" \| "outline" \| "ghost" \| null | No | Visual variant. Use a value supported by this component. |

Source: https://www.kivora.pro/docs/componentes/toggle


---

# ToggleGroup

A toolbar for single or multiple selection.

## How to use it

Set type="single" or type="multiple". Each ToggleGroupItem needs a stable value.



## Import


```tsx
import { ToggleGroup, ToggleGroupItem } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<ToggleGroup type="single" defaultValue="left" aria-label="Alignment"><ToggleGroupItem value="left">Left</ToggleGroupItem><ToggleGroupItem value="center">Center</ToggleGroupItem><ToggleGroupItem value="right">Right</ToggleGroupItem></ToggleGroup>
```


## API: ToggleGroup


```typescript
ToggleGroup: React.ForwardRefExoticComponent<ToggleGroupProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| type | "single" \| "multiple" | Yes | Operation type or mode; values depend on the component. |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| attached | boolean | No | See the published type. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| string[] | No | Initial value when the component manages its own state. |
| dir | "ltr" \| "rtl" | No | Interface reading direction. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| loop | boolean | No | See the published type. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| onValueChange | ((value: string) => void) \| ((value: string[]) => void) | No | Receives the value after an interaction. |
| orientation | "horizontal" \| "vertical" | No | Horizontal or vertical axis. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| rovingFocus | boolean | No | Whether the group should maintain roving focus of its buttons. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| value | string \| string[] | No | Controlled value. Update it from the change callback. |

## API: ToggleGroupItem


```typescript
ToggleGroupItem: React.ForwardRefExoticComponent<ToggleGroupItemProps & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| value | string | Yes | Controlled value. Update it from the change callback. |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| size | "default" \| "sm" \| "lg" \| "icon" \| null | No | Visual size of the component. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| variant | "default" \| "outline" \| "ghost" \| null | No | Visual variant. Use a value supported by this component. |

Source: https://www.kivora.pro/docs/componentes/toggle-group


---

# Accordion

Content that expands when needed.

## How to use it

Use type="single" to open one item or multiple for several. Each AccordionItem requires a unique value.



## Import


```tsx
import { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Accordion type="single" collapsible style={{width:360}}><AccordionItem value="one"><AccordionTrigger>What is Kivora?</AccordionTrigger><AccordionContent>Components to create your next interface.</AccordionContent></AccordionItem><AccordionItem value="two"><AccordionTrigger>Can I customize colors?</AccordionTrigger><AccordionContent>Yes. Use the theme's semantic variables.</AccordionContent></AccordionItem></Accordion>
```


## API: Accordion


```typescript
Accordion: React.ForwardRefExoticComponent<(AccordionPrimitive.AccordionSingleProps | AccordionPrimitive.AccordionMultipleProps) & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| type | "single" \| "multiple" | Yes | Operation type or mode; values depend on the component. |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| collapsible | boolean | No | Allow closing content or collapsing the panel. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| string[] | No | Initial value when the component manages its own state. |
| dir | "ltr" \| "rtl" | No | Interface reading direction. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| onValueChange | ((value: string) => void) \| ((value: string[]) => void) | No | Receives the value after an interaction. |
| orientation | "horizontal" \| "vertical" | No | Horizontal or vertical axis. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| value | string \| string[] | No | Controlled value. Update it from the change callback. |

## API: AccordionItem


```typescript
AccordionItem: React.ForwardRefExoticComponent<AccordionItemProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| value | string | Yes | Controlled value. Update it from the change callback. |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: AccordionTrigger


```typescript
AccordionTrigger: React.ForwardRefExoticComponent<AccordionTriggerProps & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |

## API: AccordionContent


```typescript
AccordionContent: React.ForwardRefExoticComponent<AccordionContentProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| forceMount | true | No | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/accordion


---

# Breadcrumb

Show the path to the current page.

## How to use it

Use links for previous levels and BreadcrumbPage for the current location. Keep separators decorative.



## Import


```tsx
import { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbSeparator, BreadcrumbEllipsis } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Breadcrumb><BreadcrumbList><BreadcrumbItem><BreadcrumbLink href="/">Home</BreadcrumbLink></BreadcrumbItem><BreadcrumbSeparator /><BreadcrumbItem><BreadcrumbLink href="/docs">Documentation</BreadcrumbLink></BreadcrumbItem><BreadcrumbSeparator /><BreadcrumbItem><BreadcrumbPage>Components</BreadcrumbPage></BreadcrumbItem></BreadcrumbList></Breadcrumb>
```


## API: Breadcrumb


```typescript
Breadcrumb: React.ForwardRefExoticComponent<BreadcrumbProps & React.RefAttributes<HTMLElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: BreadcrumbList


```typescript
BreadcrumbList: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.OlHTMLAttributes<HTMLOListElement>, HTMLOListElement>, "ref"> & React.RefAttributes<HTMLOListElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLOListElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLOListElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLOListElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "a" \| "i" \| "1" \| "A" \| "I" | No | Operation type or mode; values depend on the component. |

## API: BreadcrumbItem


```typescript
BreadcrumbItem: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & React.RefAttributes<HTMLLIElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLLIElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLLIElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLLIElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |

## API: BreadcrumbLink


```typescript
BreadcrumbLink: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref"> & React.RefAttributes<HTMLAnchorElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLAnchorElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLAnchorElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLAnchorElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | string | No | Operation type or mode; values depend on the component. |

## API: BreadcrumbPage


```typescript
BreadcrumbPage: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLSpanElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLSpanElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLSpanElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: BreadcrumbSeparator


```typescript
BreadcrumbSeparator: React.ForwardRefExoticComponent<BreadcrumbSeparatorProps & React.RefAttributes<HTMLLIElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLLIElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLLIElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLLIElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |

## API: BreadcrumbEllipsis


```typescript
BreadcrumbEllipsis: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLSpanElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLSpanElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLSpanElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/breadcrumb


---

# Command

An action list that filters as you type.

## How to use it

Set value on each action and handle onSelect. CommandDialog displays the search interface in a dialog.



## Import


```tsx
import { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandSeparator, CommandShortcut } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Command style={{width:360}}><CommandInput placeholder="Search for an action…" /><CommandList><CommandEmpty>No results.</CommandEmpty><CommandGroup heading="Actions"><CommandItem value="proyecto">Create project</CommandItem><CommandItem value="equipo">Invite to team</CommandItem></CommandGroup></CommandList></Command>
```


## API: Command


```typescript
Command: React.ForwardRefExoticComponent<CommandProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| (readonly string[] & string) | No | Initial value when the component manages its own state. |
| disablePointerSelection | boolean | No | Optionally set to `true` to disable selection via pointer events. |
| filter | CommandFilter | No | Custom filter function for whether each command menu item should matches the given search query. It should return a number between 0 and 1, with 1 being the best match and 0 being hidden entirely. By default, uses the `command-score` library. |
| id | string | No | Element identifier; associates labels and descriptions. |
| label | string | No | Text or accessible label. |
| loop | boolean | No | Optionally set to `true` to turn on looping around when using the arrow keys. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| onValueChange | ((value: string) => void) | No | Receives the value after an interaction. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| shouldFilter | boolean | No | Optionally set to `false` to turn off the automatic filtering and sorting. If `false`, you must conditionally render valid items based on the search query yourself. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| value | string | No | Controlled value. Update it from the change callback. |
| vimBindings | boolean | No | Set to `false` to disable ctrl+n/j/p/k shortcuts. Defaults to `true`. |

## API: CommandDialog


```typescript
declare function CommandDialog({ children, commandClassName, contentClassName, defaultOpen, onOpenChange, open, shortcut, shortcutKey, trigger, ...props }: CommandDialogProps): React.JSX.Element;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | ReactNode | No | Content or child elements of the component. |
| commandClassName | string | No | See the published type. |
| contentClassName | string | No | See the published type. |
| defaultOpen | boolean | No | Whether it starts open in uncontrolled mode. |
| modal | boolean | No | See the published type. |
| onOpenChange | ((open: boolean) => void) | No | Receives the new open state. |
| open | boolean | No | Controlled open state. |
| shortcut | boolean | No | See the published type. |
| shortcutKey | string | No | See the published type. |
| trigger | ReactNode | No | See the published type. |

## API: CommandInput


```typescript
CommandInput: React.ForwardRefExoticComponent<CommandInputProps & React.RefAttributes<HTMLInputElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| alt | string | No | Alternative text for the image. |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| autoComplete | HTMLInputAutoCompleteAttribute | No | Tell the browser which autocomplete type to use. |
| checked | boolean | No | Controlled selection state. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| max | string \| number | No | Maximum allowed value. |
| maxLength | number | No | Maximum number of characters. |
| min | string \| number | No | Minimum allowed value. |
| name | string | No | Name used to identify the control in forms. |
| onClick | MouseEventHandler<HTMLInputElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLInputElement> | No | Form submission event. |
| onValueChange | ((search: string) => void) | No | Receives the value after an interaction. |
| placeholder | string | No | Short hint displayed when there is no value. |
| required | boolean | No | Indicates that a value is required. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| src | string | No | Resource path or URL. |
| step | string \| number | No | Increment between values. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| value | string | No | Controlled value. Update it from the change callback. |

## API: CommandList


```typescript
CommandList: React.ForwardRefExoticComponent<CommandListProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| label | string | No | Text or accessible label. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: CommandEmpty


```typescript
CommandEmpty: React.ForwardRefExoticComponent<CommandEmptyProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: CommandGroup


```typescript
CommandGroup: React.ForwardRefExoticComponent<CommandGroupProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| forceMount | boolean | No | Whether this group is forcibly rendered regardless of filtering. |
| heading | ReactNode | No | Optional heading to render for this group. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| value | string | No | Controlled value. Update it from the change callback. |

## API: CommandItem


```typescript
CommandItem: React.ForwardRefExoticComponent<CommandItemProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| forceMount | boolean | No | Whether this item is forcibly rendered regardless of filtering. |
| id | string | No | Element identifier; associates labels and descriptions. |
| keywords | string[] | No | Optional keywords to match against when filtering. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSelect | ((value: string) => void) | No | Action or selection made by the user. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| value | string | No | Controlled value. Update it from the change callback. |

## API: CommandSeparator


```typescript
CommandSeparator: React.ForwardRefExoticComponent<CommandSeparatorProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| alwaysRender | boolean | No | Whether this separator should always be rendered. Useful if you disable automatic filtering. |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: CommandShortcut


```typescript
CommandShortcut: {
    ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): React.JSX.Element;
    displayName: string;
}
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLSpanElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLSpanElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLSpanElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/command


---

# NavigationMenu

Main navigation with expandable content.

## How to use it

Use NavigationMenuLink for destinations and Trigger with Content for groups. Keep clear names and keyboard navigation.



## Import


```tsx
import { NavigationMenu, NavigationMenuList, NavigationMenuItem, NavigationMenuLink, NavigationMenuTrigger, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuViewport } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<NavigationMenu><NavigationMenuList><NavigationMenuItem><NavigationMenuLink href="/docs">Documentation</NavigationMenuLink></NavigationMenuItem><NavigationMenuItem><NavigationMenuTrigger>Explore</NavigationMenuTrigger><NavigationMenuContent><NavigationMenuLink href="/docs/componentes/button" style={{display:"block",padding:24}}>Button →</NavigationMenuLink></NavigationMenuContent></NavigationMenuItem></NavigationMenuList></NavigationMenu>
```


## API: NavigationMenu


```typescript
NavigationMenu: React.ForwardRefExoticComponent<Omit<NavigationMenuPrimitive.NavigationMenuProps & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string | No | Initial value when the component manages its own state. |
| delayDuration | number | No | The duration from when the pointer enters the trigger until the tooltip gets opened. |
| dir | "ltr" \| "rtl" | No | Interface reading direction. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLElement> | No | Form submission event. |
| onValueChange | ((value: string) => void) | No | Receives the value after an interaction. |
| orientation | "horizontal" \| "vertical" | No | Horizontal or vertical axis. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| skipDelayDuration | number | No | How much time a user has to enter another trigger without incurring a delay again. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| value | string | No | Controlled value. Update it from the change callback. |

## API: NavigationMenuList


```typescript
NavigationMenuList: React.ForwardRefExoticComponent<Omit<NavigationMenuPrimitive.NavigationMenuListProps & React.RefAttributes<HTMLUListElement>, "ref"> & React.RefAttributes<HTMLUListElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLUListElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLUListElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLUListElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: NavigationMenuItem


```typescript
NavigationMenuItem: React.ForwardRefExoticComponent<NavigationMenuPrimitive.NavigationMenuItemProps & React.RefAttributes<HTMLLIElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLLIElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLLIElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLLIElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| value | string | No | Controlled value. Update it from the change callback. |

## API: NavigationMenuLink


```typescript
NavigationMenuLink: React.ForwardRefExoticComponent<NavigationMenuPrimitive.NavigationMenuLinkProps & React.RefAttributes<HTMLAnchorElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| active | boolean | No | See the published type. |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLAnchorElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLAnchorElement> | No | Action performed when the element is activated. |
| onSelect | ((event: Event) => void) | No | Action or selection made by the user. |
| onSubmit | SubmitEventHandler<HTMLAnchorElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | string | No | Operation type or mode; values depend on the component. |

## API: NavigationMenuTrigger


```typescript
NavigationMenuTrigger: React.ForwardRefExoticComponent<Omit<NavigationMenuPrimitive.NavigationMenuTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |

## API: NavigationMenuContent


```typescript
NavigationMenuContent: React.ForwardRefExoticComponent<Omit<NavigationMenuPrimitive.NavigationMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| deferPointerDownOutside | boolean | No | When `true`, a `'pointerdown'` event outside of the layered element will wait for the interaction's click event before dispatching, allowing third-party code to stop propagation of later events and cancel dismissal. |
| forceMount | true | No | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onEscapeKeyDown | ((event: KeyboardEvent) => void) | No | Event handler called when the escape key is down. Can be prevented. |
| onFocusOutside | ((event: FocusOutsideEvent) => void) | No | Event handler called when the focus moves outside of the `DismissableLayer`. Can be prevented. |
| onInteractOutside | ((event: PointerDownOutsideEvent \| FocusOutsideEvent) => void) | No | Event handler called when an interaction happens outside the `DismissableLayer`. Specifically, when a `pointerdown` event happens outside or focus moves outside of it. Can be prevented. |
| onPointerDownOutside | ((event: PointerDownOutsideEvent) => void) | No | Event handler called when the a `pointerdown` event happens outside of the `DismissableLayer`. Can be prevented. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: NavigationMenuIndicator


```typescript
NavigationMenuIndicator: React.ForwardRefExoticComponent<Omit<NavigationMenuPrimitive.NavigationMenuIndicatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| forceMount | true | No | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: NavigationMenuViewport


```typescript
NavigationMenuViewport: React.ForwardRefExoticComponent<Omit<NavigationMenuPrimitive.NavigationMenuViewportProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| forceMount | true | No | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/navigation-menu


---

# Pagination

Navigate paginated result sets.

## How to use it

Keep page state in your application and connect events. Mark the current link with isActive.



## Import


```tsx
import { Pagination, PaginationContent, PaginationItem, PaginationLink, PaginationButton, PaginationPrevious, PaginationNext, PaginationEllipsis } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
function Example() {
 const [page, setPage] = useState(1);
 return <Pagination><PaginationContent>{[1,2,3].map(value => <PaginationItem key={value}><PaginationLink href="#" isActive={page === value} onClick={event => {event.preventDefault();setPage(value)}}>{value}</PaginationLink></PaginationItem>)}</PaginationContent></Pagination>;
}
```


## API: Pagination


```typescript
Pagination: React.ForwardRefExoticComponent<PaginationProps & React.RefAttributes<HTMLElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: PaginationContent


```typescript
PaginationContent: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLUListElement>, HTMLUListElement>, "ref"> & React.RefAttributes<HTMLUListElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLUListElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLUListElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLUListElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: PaginationItem


```typescript
PaginationItem: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & React.RefAttributes<HTMLLIElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLLIElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLLIElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLLIElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |

## API: PaginationLink


```typescript
PaginationLink: React.ForwardRefExoticComponent<PaginationLinkProps & React.RefAttributes<HTMLAnchorElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| isActive | boolean | No | See the published type. |
| onChange | ChangeEventHandler<HTMLAnchorElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLAnchorElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLAnchorElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | string | No | Operation type or mode; values depend on the component. |

## API: PaginationButton


```typescript
PaginationButton: React.ForwardRefExoticComponent<PaginationButtonProps & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| isActive | boolean | No | See the published type. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |

## API: PaginationPrevious


```typescript
PaginationPrevious: React.ForwardRefExoticComponent<PaginationPreviousProps & React.RefAttributes<HTMLAnchorElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| isActive | boolean | No | See the published type. |
| label | string | No | Text or accessible label. |
| onChange | ChangeEventHandler<HTMLAnchorElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLAnchorElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLAnchorElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | string | No | Operation type or mode; values depend on the component. |

## API: PaginationNext


```typescript
PaginationNext: React.ForwardRefExoticComponent<PaginationNextProps & React.RefAttributes<HTMLAnchorElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| isActive | boolean | No | See the published type. |
| label | string | No | Text or accessible label. |
| onChange | ChangeEventHandler<HTMLAnchorElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLAnchorElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLAnchorElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | string | No | Operation type or mode; values depend on the component. |

## API: PaginationEllipsis


```typescript
PaginationEllipsis: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLSpanElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLSpanElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLSpanElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/pagination


---

# Tabs

Related views within the same context.

## How to use it

Match each TabsTrigger and TabsContent using the same value. Use tabs to switch content, not to replace links to other pages.



## Import


```tsx
import { Tabs, TabsList, TabsTrigger, TabsContent } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Tabs defaultValue="account" style={{width:360}}><TabsList><TabsTrigger value="account">Account</TabsTrigger><TabsTrigger value="team">Team</TabsTrigger></TabsList><TabsContent value="account">Your personal space.</TabsContent><TabsContent value="team">The people behind the idea.</TabsContent></Tabs>
```


## API: Tabs


```typescript
Tabs: React.ForwardRefExoticComponent<TabsPrimitive.TabsProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| activationMode | "manual" \| "automatic" | No | Whether a tab is activated automatically or manually. |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string | No | Initial value when the component manages its own state. |
| dir | "ltr" \| "rtl" | No | Interface reading direction. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| onValueChange | ((value: string) => void) | No | Receives the value after an interaction. |
| orientation | "horizontal" \| "vertical" | No | Horizontal or vertical axis. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| value | string | No | Controlled value. Update it from the change callback. |

## API: TabsList


```typescript
TabsList: React.ForwardRefExoticComponent<TabsListProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| fullWidth | boolean | No | See the published type. |
| id | string | No | Element identifier; associates labels and descriptions. |
| loop | boolean | No | See the published type. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| size | "sm" \| "lg" \| "md" | No | Visual size of the component. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| variant | "default" \| "underline" \| "pills" | No | Visual variant. Use a value supported by this component. |

## API: TabsTrigger


```typescript
TabsTrigger: React.ForwardRefExoticComponent<TabsTriggerProps & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| value | string | Yes | Controlled value. Update it from the change callback. |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| size | "sm" \| "lg" \| "md" | No | Visual size of the component. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| variant | "default" \| "underline" \| "pills" | No | Visual variant. Use a value supported by this component. |

## API: TabsContent


```typescript
TabsContent: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| value | string | Yes | Controlled value. Update it from the change callback. |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| forceMount | true | No | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/tabs


---

# ContextMenu

Contextual actions on right-click.

## How to use it

Connect onSelect on action items. Combine separators, groups, checkbox options and submenus.



## Import


```tsx
import { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuGroup, ContextMenuLabel, ContextMenuSeparator, ContextMenuCheckboxItem, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSub, ContextMenuSubTrigger, ContextMenuSubContent, ContextMenuShortcut, ContextMenuPortal } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<ContextMenu><ContextMenuTrigger style={{display:"block",padding:36,border:"1px dashed var(--color-border)",borderRadius:12}}>Right-click here</ContextMenuTrigger><ContextMenuContent><ContextMenuItem onSelect={() => window.alert("New demo project")}>New project</ContextMenuItem><ContextMenuSeparator /><ContextMenuItem disabled>Export (unavailable)</ContextMenuItem></ContextMenuContent></ContextMenu>
```


## API: ContextMenu


```typescript
ContextMenu: React.FC<ContextMenuPrimitive.ContextMenuProps>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | ReactNode | No | Content or child elements of the component. |
| dir | "ltr" \| "rtl" | No | Interface reading direction. |
| modal | boolean | No | See the published type. |
| onOpenChange | ((open: boolean) => void) | No | Receives the new open state. |
| open | boolean | No | Controlled open state. |

## API: ContextMenuTrigger


```typescript
ContextMenuTrigger: React.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuTriggerProps & React.RefAttributes<HTMLSpanElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLSpanElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLSpanElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLSpanElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: ContextMenuContent


```typescript
ContextMenuContent: React.ForwardRefExoticComponent<ContextMenuContentProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| alignOffset | number | No | Offset from the chosen alignment. |
| aria-label | string | No | Accessible name of the control. |
| arrowPadding | number | No | See the published type. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| avoidCollisions | boolean | No | See the published type. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| collisionBoundary | Boundary \| Boundary[] | No | See the published type. |
| collisionPadding | number \| Partial<Record<"left" \| "right" \| "top" \| "bottom", number>> | No | See the published type. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| forceMount | true | No | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. |
| hideWhenDetached | boolean | No | See the published type. |
| id | string | No | Element identifier; associates labels and descriptions. |
| loop | boolean | No | Whether keyboard navigation should loop around |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onCloseAutoFocus | ((event: Event) => void) | No | Event handler called when auto-focusing on close. Can be prevented. |
| onEscapeKeyDown | ((event: KeyboardEvent) => void) | No | See the published type. |
| onFocusOutside | ((event: FocusOutsideEvent) => void) | No | See the published type. |
| onInteractOutside | ((event: PointerDownOutsideEvent \| FocusOutsideEvent) => void) | No | See the published type. |
| onPointerDownOutside | ((event: PointerDownOutsideEvent) => void) | No | See the published type. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| sticky | "partial" \| "always" | No | See the published type. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| updatePositionStrategy | "always" \| "optimized" | No | See the published type. |

## API: ContextMenuItem


```typescript
ContextMenuItem: React.ForwardRefExoticComponent<ContextMenuItemProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| inset | boolean | No | See the published type. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSelect | ((event: Event) => void) | No | Action or selection made by the user. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| textValue | string | No | See the published type. |
| title | string | No | Title or supplementary information. |

## API: ContextMenuGroup


```typescript
ContextMenuGroup: React.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuGroupProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: ContextMenuLabel


```typescript
ContextMenuLabel: React.ForwardRefExoticComponent<ContextMenuLabelProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| inset | boolean | No | See the published type. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: ContextMenuSeparator


```typescript
ContextMenuSeparator: React.ForwardRefExoticComponent<ContextMenuSeparatorProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: ContextMenuCheckboxItem


```typescript
ContextMenuCheckboxItem: React.ForwardRefExoticComponent<ContextMenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| checked | CheckedState | No | Controlled selection state. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onCheckedChange | ((checked: boolean) => void) | No | Receives the new selection state. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSelect | ((event: Event) => void) | No | Action or selection made by the user. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| textValue | string | No | See the published type. |
| title | string | No | Title or supplementary information. |

## API: ContextMenuRadioGroup


```typescript
ContextMenuRadioGroup: React.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| onValueChange | ((value: string) => void) | No | Receives the value after an interaction. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| value | string | No | Controlled value. Update it from the change callback. |

## API: ContextMenuRadioItem


```typescript
ContextMenuRadioItem: React.ForwardRefExoticComponent<ContextMenuRadioItemProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| value | string | Yes | Controlled value. Update it from the change callback. |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSelect | ((event: Event) => void) | No | Action or selection made by the user. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| textValue | string | No | See the published type. |
| title | string | No | Title or supplementary information. |

## API: ContextMenuSub


```typescript
ContextMenuSub: React.FC<ContextMenuPrimitive.ContextMenuSubProps>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | ReactNode | No | Content or child elements of the component. |
| defaultOpen | boolean | No | Whether it starts open in uncontrolled mode. |
| onOpenChange | ((open: boolean) => void) | No | Receives the new open state. |
| open | boolean | No | Controlled open state. |

## API: ContextMenuSubTrigger


```typescript
ContextMenuSubTrigger: React.ForwardRefExoticComponent<ContextMenuSubTriggerProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| inset | boolean | No | See the published type. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| textValue | string | No | See the published type. |
| title | string | No | Title or supplementary information. |

## API: ContextMenuSubContent


```typescript
ContextMenuSubContent: React.ForwardRefExoticComponent<ContextMenuSubContentProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| align | "start" \| "end" | No | Content alignment. |
| alignOffset | number | No | Offset from the chosen alignment. |
| aria-label | string | No | Accessible name of the control. |
| arrowPadding | number | No | See the published type. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| avoidCollisions | boolean | No | See the published type. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| collisionBoundary | Boundary \| Boundary[] | No | See the published type. |
| collisionPadding | number \| Partial<Record<"left" \| "right" \| "top" \| "bottom", number>> | No | See the published type. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| forceMount | true | No | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. |
| hideWhenDetached | boolean | No | See the published type. |
| id | string | No | Element identifier; associates labels and descriptions. |
| loop | boolean | No | Whether keyboard navigation should loop around |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onEscapeKeyDown | ((event: KeyboardEvent) => void) | No | See the published type. |
| onFocusOutside | ((event: FocusOutsideEvent) => void) | No | See the published type. |
| onInteractOutside | ((event: PointerDownOutsideEvent \| FocusOutsideEvent) => void) | No | See the published type. |
| onPointerDownOutside | ((event: PointerDownOutsideEvent) => void) | No | See the published type. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| sideOffset | number | No | Distance between the trigger and content. |
| sticky | "partial" \| "always" | No | See the published type. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| updatePositionStrategy | "always" \| "optimized" | No | See the published type. |

## API: ContextMenuShortcut


```typescript
ContextMenuShortcut: {
    ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): React.JSX.Element;
    displayName: string;
}
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLSpanElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLSpanElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLSpanElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: ContextMenuPortal


```typescript
ContextMenuPortal: React.FC<ContextMenuPrimitive.ContextMenuPortalProps>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | ReactNode | No | Content or child elements of the component. |
| container | Element \| DocumentFragment \| null | No | Specify a container element to portal the content into. |
| forceMount | true | No | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. |

Source: https://www.kivora.pro/docs/componentes/context-menu


---

# Dialog

A focused conversation over your interface.

## How to use it

Always include Title and Description. The trigger opens the panel, Escape closes it and focus returns to the original control. You can manage open and onOpenChange.



## Import


```tsx
import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, DialogClose, DialogOverlay, DialogPortal } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Dialog><DialogTrigger asChild><Button>Open dialog</Button></DialogTrigger><DialogContent><DialogHeader><DialogTitle>A space for your idea</DialogTitle><DialogDescription>Review the details before continuing.</DialogDescription></DialogHeader><div style={{padding:"24px 0"}}><Input aria-label="Project name" placeholder="Project name" /></div><DialogFooter><DialogClose asChild><Button>Done</Button></DialogClose></DialogFooter></DialogContent></Dialog>
```


## API: Dialog


```typescript
declare function Dialog({ open, defaultOpen, onOpenChange, ...props }: DialogProps): React.JSX.Element;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | ReactNode | No | Content or child elements of the component. |
| defaultOpen | boolean | No | Whether it starts open in uncontrolled mode. |
| modal | boolean | No | See the published type. |
| onOpenChange | ((open: boolean) => void) | No | Receives the new open state. |
| open | boolean | No | Controlled open state. |

## API: DialogTrigger


```typescript
DialogTrigger: React.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |

## API: DialogContent


```typescript
DialogContent: React.ForwardRefExoticComponent<DialogContentProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| animation | "fade" \| "scale" \| "slide-up" \| "slide-down" | No | See the published type. |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| deferPointerDownOutside | boolean | No | When `true`, a `'pointerdown'` event outside of the layered element will wait for the interaction's click event before dispatching, allowing third-party code to stop propagation of later events and cancel dismissal. |
| forceMount | true | No | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onCloseAutoFocus | ((event: Event) => void) | No | Event handler called when auto-focusing on close. Can be prevented. |
| onEscapeKeyDown | ((event: KeyboardEvent) => void) | No | Event handler called when the escape key is down. Can be prevented. |
| onFocusOutside | ((event: FocusOutsideEvent) => void) | No | Event handler called when the focus moves outside of the `DismissableLayer`. Can be prevented. |
| onInteractOutside | ((event: PointerDownOutsideEvent \| FocusOutsideEvent) => void) | No | Event handler called when an interaction happens outside the `DismissableLayer`. Specifically, when a `pointerdown` event happens outside or focus moves outside of it. Can be prevented. |
| onOpenAutoFocus | ((event: Event) => void) | No | Event handler called when auto-focusing on open. Can be prevented. |
| onPointerDownOutside | ((event: PointerDownOutsideEvent) => void) | No | Event handler called when the a `pointerdown` event happens outside of the `DismissableLayer`. Can be prevented. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: DialogHeader


```typescript
DialogHeader: {
    ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
    displayName: string;
}
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: DialogTitle


```typescript
DialogTitle: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLHeadingElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLHeadingElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLHeadingElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: DialogDescription


```typescript
DialogDescription: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLParagraphElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLParagraphElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLParagraphElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: DialogFooter


```typescript
DialogFooter: {
    ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
    displayName: string;
}
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: DialogClose


```typescript
DialogClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |

## API: DialogOverlay


```typescript
DialogOverlay: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| forceMount | true | No | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: DialogPortal


```typescript
DialogPortal: React.FC<DialogPrimitive.DialogPortalProps>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | ReactNode | No | Content or child elements of the component. |
| container | Element \| DocumentFragment \| null | No | Specify a container element to portal the content into. |
| forceMount | true | No | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. |

Source: https://www.kivora.pro/docs/componentes/dialog


---

# Drawer

A sliding panel for supporting content.

## How to use it

Always include Title and Description. The trigger opens the panel, Escape closes it and focus returns to the original control. You can manage open and onOpenChange.



## Import


```tsx
import { Drawer, DrawerTrigger, DrawerContent, DrawerHeader, DrawerTitle, DrawerDescription, DrawerFooter, DrawerClose, DrawerOverlay, DrawerPortal } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Drawer><DrawerTrigger asChild><Button>Open drawer</Button></DrawerTrigger><DrawerContent><DrawerHeader><DrawerTitle>A space for your idea</DrawerTitle><DrawerDescription>Review the details before continuing.</DrawerDescription></DrawerHeader><div style={{padding:"24px 0"}}><Input aria-label="Project name" placeholder="Project name" /></div><DrawerFooter><DrawerClose asChild><Button>Done</Button></DrawerClose></DrawerFooter></DrawerContent></Drawer>
```


## API: Drawer


```typescript
declare function Drawer({ open, defaultOpen, onOpenChange, ...props }: DrawerProps): React.JSX.Element;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | ReactNode | No | Content or child elements of the component. |
| defaultOpen | boolean | No | Whether it starts open in uncontrolled mode. |
| modal | boolean | No | See the published type. |
| onOpenChange | ((open: boolean) => void) | No | Receives the new open state. |
| open | boolean | No | Controlled open state. |

## API: DrawerTrigger


```typescript
DrawerTrigger: React.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |

## API: DrawerContent


```typescript
DrawerContent: React.ForwardRefExoticComponent<DrawerContentProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| deferPointerDownOutside | boolean | No | When `true`, a `'pointerdown'` event outside of the layered element will wait for the interaction's click event before dispatching, allowing third-party code to stop propagation of later events and cancel dismissal. |
| forceMount | true | No | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onCloseAutoFocus | ((event: Event) => void) | No | Event handler called when auto-focusing on close. Can be prevented. |
| onEscapeKeyDown | ((event: KeyboardEvent) => void) | No | Event handler called when the escape key is down. Can be prevented. |
| onFocusOutside | ((event: FocusOutsideEvent) => void) | No | Event handler called when the focus moves outside of the `DismissableLayer`. Can be prevented. |
| onInteractOutside | ((event: PointerDownOutsideEvent \| FocusOutsideEvent) => void) | No | Event handler called when an interaction happens outside the `DismissableLayer`. Specifically, when a `pointerdown` event happens outside or focus moves outside of it. Can be prevented. |
| onOpenAutoFocus | ((event: Event) => void) | No | Event handler called when auto-focusing on open. Can be prevented. |
| onPointerDownOutside | ((event: PointerDownOutsideEvent) => void) | No | Event handler called when the a `pointerdown` event happens outside of the `DismissableLayer`. Can be prevented. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| showHandle | boolean | No | See the published type. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: DrawerHeader


```typescript
DrawerHeader: {
    ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
    displayName: string;
}
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: DrawerTitle


```typescript
DrawerTitle: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLHeadingElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLHeadingElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLHeadingElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: DrawerDescription


```typescript
DrawerDescription: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLParagraphElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLParagraphElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLParagraphElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: DrawerFooter


```typescript
DrawerFooter: {
    ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
    displayName: string;
}
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: DrawerClose


```typescript
DrawerClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |

## API: DrawerOverlay


```typescript
DrawerOverlay: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| forceMount | true | No | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: DrawerPortal


```typescript
DrawerPortal: React.FC<DialogPrimitive.DialogPortalProps>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | ReactNode | No | Content or child elements of the component. |
| container | Element \| DocumentFragment \| null | No | Specify a container element to portal the content into. |
| forceMount | true | No | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. |

Source: https://www.kivora.pro/docs/componentes/drawer


---

# HoverCard

A contextual preview on hover or focus.

## How to use it

The content is supplementary: essential information must also be available at the linked destination.



## Import


```tsx
import { HoverCard, HoverCardTrigger, HoverCardContent } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<HoverCard><HoverCardTrigger asChild><a href="/docs" style={{color:"var(--color-primary)"}}>@kivora</a></HoverCardTrigger><HoverCardContent>Components for the web and your next big idea.</HoverCardContent></HoverCard>
```


## API: HoverCard


```typescript
declare function HoverCard({ closeDelay, defaultOpen, open, onOpenChange, openDelay, ...props }: HoverCardProps): React.JSX.Element;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | ReactNode | No | Content or child elements of the component. |
| closeDelay | number | No | See the published type. |
| defaultOpen | boolean | No | Whether it starts open in uncontrolled mode. |
| onOpenChange | ((open: boolean) => void) | No | Receives the new open state. |
| open | boolean | No | Controlled open state. |
| openDelay | number | No | See the published type. |

## API: HoverCardTrigger


```typescript
HoverCardTrigger: React.ForwardRefExoticComponent<HoverCardPrimitive.HoverCardTriggerProps & React.RefAttributes<HTMLAnchorElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLAnchorElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLAnchorElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLAnchorElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | string | No | Operation type or mode; values depend on the component. |

## API: HoverCardContent


```typescript
HoverCardContent: React.ForwardRefExoticComponent<HoverCardContentProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| align | "center" \| "start" \| "end" | No | Content alignment. |
| alignOffset | number | No | Offset from the chosen alignment. |
| aria-label | string | No | Accessible name of the control. |
| arrowPadding | number | No | See the published type. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| avoidCollisions | boolean | No | See the published type. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| collisionBoundary | Boundary \| Boundary[] | No | See the published type. |
| collisionPadding | number \| Partial<Record<"left" \| "right" \| "top" \| "bottom", number>> | No | See the published type. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| forceMount | true | No | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. |
| hideWhenDetached | boolean | No | See the published type. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onEscapeKeyDown | ((event: KeyboardEvent) => void) | No | Event handler called when the escape key is down. Can be prevented. |
| onFocusOutside | ((event: FocusOutsideEvent) => void) | No | Event handler called when the focus moves outside of the `HoverCard`. Can be prevented. |
| onInteractOutside | ((event: PointerDownOutsideEvent \| FocusOutsideEvent) => void) | No | Event handler called when an interaction happens outside the `HoverCard`. Specifically, when a `pointerdown` event happens outside or focus moves outside of it. Can be prevented. |
| onPointerDownOutside | ((event: PointerDownOutsideEvent) => void) | No | Event handler called when the a `pointerdown` event happens outside of the `HoverCard`. Can be prevented. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| side | "left" \| "right" \| "top" \| "bottom" | No | Side from which the panel appears. |
| sideOffset | number | No | Distance between the trigger and content. |
| sticky | "partial" \| "always" | No | See the published type. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| updatePositionStrategy | "always" \| "optimized" | No | See the published type. |

Source: https://www.kivora.pro/docs/componentes/hover-card


---

# Menu

A dropdown action menu or menu bar.

## How to use it

Connect onSelect on action items. Combine separators, groups, checkbox options and submenus.



## Import


```tsx
import { Menu, MenuTrigger, MenuContent, MenuItem, MenuGroup, MenuLabel, MenuSeparator, MenuCheckboxItem, MenuRadioGroup, MenuRadioItem, MenuSub, MenuSubTrigger, MenuSubContent, MenuShortcut, MenuPortal, MenuDropdown } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Menu><MenuTrigger asChild><Button variant="outline">Actions</Button></MenuTrigger><MenuContent><MenuItem onSelect={() => window.alert("New demo project")}>New project</MenuItem><MenuSeparator /><MenuItem disabled>Export (unavailable)</MenuItem></MenuContent></Menu>
```


## Menu bar

```tsx
<Menu variant="bar"><MenuDropdown><MenuTrigger>File</MenuTrigger><MenuContent><MenuItem>New</MenuItem><MenuItem>Open</MenuItem></MenuContent></MenuDropdown><MenuDropdown><MenuTrigger>Edit</MenuTrigger><MenuContent><MenuItem>Copy</MenuItem><MenuItem>Paste</MenuItem></MenuContent></MenuDropdown></Menu>
```


## API: Menu


```typescript
Menu: React.ForwardRefExoticComponent<MenuProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| variant | "dropdown" \| "bar" | Yes | Visual variant. Use a value supported by this component. |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultOpen | boolean | No | Whether it starts open in uncontrolled mode. |
| defaultValue | string | No | Initial value when the component manages its own state. |
| dir | "ltr" \| "rtl" | No | Interface reading direction. |
| id | string | No | Element identifier; associates labels and descriptions. |
| loop | boolean | No | See the published type. |
| modal | boolean | No | See the published type. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onOpenChange | ((open: boolean) => void) | No | Receives the new open state. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| onValueChange | ((value: string) => void) | No | Receives the value after an interaction. |
| open | boolean | No | Controlled open state. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| value | string | No | Controlled value. Update it from the change callback. |

## API: MenuTrigger


```typescript
MenuTrigger: React.ForwardRefExoticComponent<Omit<Omit<DropdownPrimitive.DropdownMenuTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |

## API: MenuContent


```typescript
MenuContent: React.ForwardRefExoticComponent<MenuContentProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| align | "center" \| "start" \| "end" | No | Content alignment. |
| alignOffset | number | No | Offset from the chosen alignment. |
| aria-label | string | No | Accessible name of the control. |
| arrowPadding | number | No | See the published type. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| avoidCollisions | boolean | No | See the published type. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| collisionBoundary | Boundary \| Boundary[] | No | See the published type. |
| collisionPadding | number \| Partial<Record<"left" \| "right" \| "top" \| "bottom", number>> | No | See the published type. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| forceMount | true | No | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. |
| hideWhenDetached | boolean | No | See the published type. |
| id | string | No | Element identifier; associates labels and descriptions. |
| loop | boolean | No | Whether keyboard navigation should loop around |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onCloseAutoFocus | ((event: Event) => void) | No | Event handler called when auto-focusing on close. Can be prevented. |
| onEscapeKeyDown | ((event: KeyboardEvent) => void) | No | See the published type. |
| onFocusOutside | ((event: FocusOutsideEvent) => void) | No | See the published type. |
| onInteractOutside | ((event: PointerDownOutsideEvent \| FocusOutsideEvent) => void) | No | See the published type. |
| onPointerDownOutside | ((event: PointerDownOutsideEvent) => void) | No | See the published type. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| side | "left" \| "right" \| "top" \| "bottom" | No | Side from which the panel appears. |
| sideOffset | number | No | Distance between the trigger and content. |
| sticky | "partial" \| "always" | No | See the published type. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| updatePositionStrategy | "always" \| "optimized" | No | See the published type. |

## API: MenuItem


```typescript
MenuItem: React.ForwardRefExoticComponent<MenuItemProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| inset | boolean | No | See the published type. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSelect | ((event: Event) => void) | No | Action or selection made by the user. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| textValue | string | No | See the published type. |
| title | string | No | Title or supplementary information. |

## API: MenuGroup


```typescript
MenuGroup: React.ForwardRefExoticComponent<Omit<DropdownPrimitive.DropdownMenuGroupProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: MenuLabel


```typescript
MenuLabel: React.ForwardRefExoticComponent<MenuLabelProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| inset | boolean | No | See the published type. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: MenuSeparator


```typescript
MenuSeparator: React.ForwardRefExoticComponent<MenuSeparatorProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: MenuCheckboxItem


```typescript
MenuCheckboxItem: React.ForwardRefExoticComponent<MenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| checked | CheckedState | No | Controlled selection state. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onCheckedChange | ((checked: boolean) => void) | No | Receives the new selection state. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSelect | ((event: Event) => void) | No | Action or selection made by the user. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| textValue | string | No | See the published type. |
| title | string | No | Title or supplementary information. |

## API: MenuRadioGroup


```typescript
MenuRadioGroup: typeof RoutedRadioGroup
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| onValueChange | ((value: string) => void) | No | Receives the value after an interaction. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| value | string | No | Controlled value. Update it from the change callback. |

## API: MenuRadioItem


```typescript
MenuRadioItem: React.ForwardRefExoticComponent<MenuRadioItemProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| value | string | Yes | Controlled value. Update it from the change callback. |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSelect | ((event: Event) => void) | No | Action or selection made by the user. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| textValue | string | No | See the published type. |
| title | string | No | Title or supplementary information. |

## API: MenuSub


```typescript
MenuSub: typeof RoutedSub
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | ReactNode | No | Content or child elements of the component. |
| defaultOpen | boolean | No | Whether it starts open in uncontrolled mode. |
| onOpenChange | ((open: boolean) => void) | No | Receives the new open state. |
| open | boolean | No | Controlled open state. |

## API: MenuSubTrigger


```typescript
MenuSubTrigger: React.ForwardRefExoticComponent<MenuSubTriggerProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| inset | boolean | No | See the published type. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| textValue | string | No | See the published type. |
| title | string | No | Title or supplementary information. |

## API: MenuSubContent


```typescript
MenuSubContent: React.ForwardRefExoticComponent<MenuSubContentProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| align | "start" \| "end" | No | Content alignment. |
| alignOffset | number | No | Offset from the chosen alignment. |
| aria-label | string | No | Accessible name of the control. |
| arrowPadding | number | No | See the published type. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| avoidCollisions | boolean | No | See the published type. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| collisionBoundary | Boundary \| Boundary[] | No | See the published type. |
| collisionPadding | number \| Partial<Record<"left" \| "right" \| "top" \| "bottom", number>> | No | See the published type. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| forceMount | true | No | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. |
| hideWhenDetached | boolean | No | See the published type. |
| id | string | No | Element identifier; associates labels and descriptions. |
| loop | boolean | No | Whether keyboard navigation should loop around |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onEscapeKeyDown | ((event: KeyboardEvent) => void) | No | See the published type. |
| onFocusOutside | ((event: FocusOutsideEvent) => void) | No | See the published type. |
| onInteractOutside | ((event: PointerDownOutsideEvent \| FocusOutsideEvent) => void) | No | See the published type. |
| onPointerDownOutside | ((event: PointerDownOutsideEvent) => void) | No | See the published type. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| sideOffset | number | No | Distance between the trigger and content. |
| sticky | "partial" \| "always" | No | See the published type. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| updatePositionStrategy | "always" \| "optimized" | No | See the published type. |

## API: MenuShortcut


```typescript
MenuShortcut: {
    ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): React.JSX.Element;
    displayName: string;
}
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLSpanElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLSpanElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLSpanElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: MenuPortal


```typescript
MenuPortal: typeof RoutedPortal
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | ReactNode | No | Content or child elements of the component. |
| container | Element \| DocumentFragment \| null | No | Specify a container element to portal the content into. |
| forceMount | true | No | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. |

## API: MenuDropdown


```typescript
MenuDropdown: React.FC<React.ComponentPropsWithoutRef<typeof BarPrimitive.Menu>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| __scopeMenubar | Scope | No | See the published type. |
| children | ReactNode | No | Content or child elements of the component. |
| value | string | No | Controlled value. Update it from the change callback. |

Source: https://www.kivora.pro/docs/componentes/menu


---

# Popover

Information or controls beside their trigger.

## How to use it

Use Popover for short interactive content. Content supports alignment and distance from the trigger.



## Import


```tsx
import { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverClose } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Popover><PopoverTrigger asChild><Button variant="outline">Preferences</Button></PopoverTrigger><PopoverContent><Label htmlFor="popover-name">Display name</Label><Input id="popover-name" defaultValue="My project" /></PopoverContent></Popover>
```


## API: Popover


```typescript
declare function Popover({ defaultOpen, open, onOpenChange, ...props }: PopoverProps): React.JSX.Element;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | ReactNode | No | Content or child elements of the component. |
| defaultOpen | boolean | No | Whether it starts open in uncontrolled mode. |
| modal | boolean | No | See the published type. |
| onOpenChange | ((open: boolean) => void) | No | Receives the new open state. |
| open | boolean | No | Controlled open state. |

## API: PopoverTrigger


```typescript
PopoverTrigger: React.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |

## API: PopoverContent


```typescript
PopoverContent: React.ForwardRefExoticComponent<PopoverContentProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| align | "center" \| "start" \| "end" | No | Content alignment. |
| alignOffset | number | No | Offset from the chosen alignment. |
| aria-label | string | No | Accessible name of the control. |
| arrowPadding | number | No | See the published type. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| avoidCollisions | boolean | No | See the published type. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| collisionBoundary | Boundary \| Boundary[] | No | See the published type. |
| collisionPadding | number \| Partial<Record<"left" \| "right" \| "top" \| "bottom", number>> | No | See the published type. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| deferPointerDownOutside | boolean | No | When `true`, a `'pointerdown'` event outside of the layered element will wait for the interaction's click event before dispatching, allowing third-party code to stop propagation of later events and cancel dismissal. |
| forceMount | true | No | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. |
| hideWhenDetached | boolean | No | See the published type. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onCloseAutoFocus | ((event: Event) => void) | No | Event handler called when auto-focusing on close. Can be prevented. |
| onEscapeKeyDown | ((event: KeyboardEvent) => void) | No | Event handler called when the escape key is down. Can be prevented. |
| onFocusOutside | ((event: FocusOutsideEvent) => void) | No | Event handler called when the focus moves outside of the `DismissableLayer`. Can be prevented. |
| onInteractOutside | ((event: PointerDownOutsideEvent \| FocusOutsideEvent) => void) | No | Event handler called when an interaction happens outside the `DismissableLayer`. Specifically, when a `pointerdown` event happens outside or focus moves outside of it. Can be prevented. |
| onOpenAutoFocus | ((event: Event) => void) | No | Event handler called when auto-focusing on open. Can be prevented. |
| onPointerDownOutside | ((event: PointerDownOutsideEvent) => void) | No | Event handler called when the a `pointerdown` event happens outside of the `DismissableLayer`. Can be prevented. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| side | "left" \| "right" \| "top" \| "bottom" | No | Side from which the panel appears. |
| sideOffset | number | No | Distance between the trigger and content. |
| sticky | "partial" \| "always" | No | See the published type. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| updatePositionStrategy | "always" \| "optimized" | No | See the published type. |

## API: PopoverAnchor


```typescript
PopoverAnchor: React.ForwardRefExoticComponent<PopoverPrimitive.PopoverAnchorProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| virtualRef | RefObject<Measurable \| null> | No | See the published type. |

## API: PopoverClose


```typescript
PopoverClose: React.ForwardRefExoticComponent<PopoverPrimitive.PopoverCloseProps & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |

Source: https://www.kivora.pro/docs/componentes/popover


---

# Sheet

A side panel for tasks that need context.

## How to use it

Always include Title and Description. The trigger opens the panel, Escape closes it and focus returns to the original control. You can manage open and onOpenChange.



## Import


```tsx
import { Sheet, SheetTrigger, SheetContent, SheetHeader, SheetTitle, SheetDescription, SheetFooter, SheetClose, SheetOverlay, SheetPortal } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Sheet><SheetTrigger asChild><Button>Open panel</Button></SheetTrigger><SheetContent><SheetHeader><SheetTitle>A space for your idea</SheetTitle><SheetDescription>Review the details before continuing.</SheetDescription></SheetHeader><div style={{padding:"24px 0"}}><Input aria-label="Project name" placeholder="Project name" /></div><SheetFooter><SheetClose asChild><Button>Done</Button></SheetClose></SheetFooter></SheetContent></Sheet>
```


## API: Sheet


```typescript
declare function Sheet({ open, defaultOpen, onOpenChange, ...props }: SheetProps): React.JSX.Element;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | ReactNode | No | Content or child elements of the component. |
| defaultOpen | boolean | No | Whether it starts open in uncontrolled mode. |
| modal | boolean | No | See the published type. |
| onOpenChange | ((open: boolean) => void) | No | Receives the new open state. |
| open | boolean | No | Controlled open state. |

## API: SheetTrigger


```typescript
SheetTrigger: React.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |

## API: SheetContent


```typescript
SheetContent: React.ForwardRefExoticComponent<SheetContentProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| closeLabel | string | No | See the published type. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| deferPointerDownOutside | boolean | No | When `true`, a `'pointerdown'` event outside of the layered element will wait for the interaction's click event before dispatching, allowing third-party code to stop propagation of later events and cancel dismissal. |
| forceMount | true | No | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onCloseAutoFocus | ((event: Event) => void) | No | Event handler called when auto-focusing on close. Can be prevented. |
| onEscapeKeyDown | ((event: KeyboardEvent) => void) | No | Event handler called when the escape key is down. Can be prevented. |
| onFocusOutside | ((event: FocusOutsideEvent) => void) | No | Event handler called when the focus moves outside of the `DismissableLayer`. Can be prevented. |
| onInteractOutside | ((event: PointerDownOutsideEvent \| FocusOutsideEvent) => void) | No | Event handler called when an interaction happens outside the `DismissableLayer`. Specifically, when a `pointerdown` event happens outside or focus moves outside of it. Can be prevented. |
| onOpenAutoFocus | ((event: Event) => void) | No | Event handler called when auto-focusing on open. Can be prevented. |
| onPointerDownOutside | ((event: PointerDownOutsideEvent) => void) | No | Event handler called when the a `pointerdown` event happens outside of the `DismissableLayer`. Can be prevented. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| portalContainer | HTMLElement \| null | No | See the published type. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| side | "left" \| "right" \| "top" \| "bottom" | No | Side from which the panel appears. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: SheetHeader


```typescript
SheetHeader: {
    ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
    displayName: string;
}
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: SheetTitle


```typescript
SheetTitle: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLHeadingElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLHeadingElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLHeadingElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: SheetDescription


```typescript
SheetDescription: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLParagraphElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLParagraphElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLParagraphElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: SheetFooter


```typescript
SheetFooter: {
    ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
    displayName: string;
}
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: SheetClose


```typescript
SheetClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |

## API: SheetOverlay


```typescript
SheetOverlay: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| forceMount | true | No | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: SheetPortal


```typescript
SheetPortal: React.FC<DialogPrimitive.DialogPortalProps>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | ReactNode | No | Content or child elements of the component. |
| container | Element \| DocumentFragment \| null | No | Specify a container element to portal the content into. |
| forceMount | true | No | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. |

Source: https://www.kivora.pro/docs/componentes/sheet


---

# Tooltip

A brief explanation for a control.

## How to use it

Wrap tooltips in TooltipProvider. Avoid interactive controls inside tooltips; use Popover instead.



## Import


```tsx
import { Tooltip, TooltipProvider, TooltipTrigger, TooltipContent } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<TooltipProvider><Tooltip><TooltipTrigger asChild><Button variant="outline" aria-label="Add project">+</Button></TooltipTrigger><TooltipContent>Create a new project</TooltipContent></Tooltip></TooltipProvider>
```


## API: Tooltip


```typescript
Tooltip: React.FC<TooltipPrimitive.TooltipProps>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | ReactNode | No | Content or child elements of the component. |
| defaultOpen | boolean | No | Whether it starts open in uncontrolled mode. |
| delayDuration | number | No | The duration from when the pointer enters the trigger until the tooltip gets opened. This will override the prop with the same name passed to Provider. |
| disableHoverableContent | boolean | No | When `true`, trying to hover the content will result in the tooltip closing as the pointer leaves the trigger. |
| onOpenChange | ((open: boolean) => void) | No | Receives the new open state. |
| open | boolean | No | Controlled open state. |

## API: TooltipProvider


```typescript
TooltipProvider: React.FC<TooltipPrimitive.TooltipProviderProps>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | ReactNode | Yes | Content or child elements of the component. |
| delayDuration | number | No | The duration from when the pointer enters the trigger until the tooltip gets opened. |
| disableHoverableContent | boolean | No | When `true`, trying to hover the content will result in the tooltip closing as the pointer leaves the trigger. |
| skipDelayDuration | number | No | How much time a user has to enter another trigger without incurring a delay again. |

## API: TooltipTrigger


```typescript
TooltipTrigger: React.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |

## API: TooltipContent


```typescript
TooltipContent: React.ForwardRefExoticComponent<TooltipContentProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| align | "center" \| "start" \| "end" | No | Content alignment. |
| alignOffset | number | No | Offset from the chosen alignment. |
| aria-label | string | No | Accessible name of the control. |
| arrowPadding | number | No | See the published type. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| avoidCollisions | boolean | No | See the published type. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| collisionBoundary | Boundary \| Boundary[] | No | See the published type. |
| collisionPadding | number \| Partial<Record<"left" \| "right" \| "top" \| "bottom", number>> | No | See the published type. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| forceMount | true | No | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. |
| hideWhenDetached | boolean | No | See the published type. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onEscapeKeyDown | ((event: KeyboardEvent) => void) | No | Event handler called when the escape key is down. Can be prevented. |
| onPointerDownOutside | ((event: PointerDownOutsideEvent) => void) | No | Event handler called when the a `pointerdown` event happens outside of the `Tooltip`. Can be prevented. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| showArrow | boolean | No | See the published type. |
| side | "left" \| "right" \| "top" \| "bottom" | No | Side from which the panel appears. |
| sideOffset | number | No | Distance between the trigger and content. |
| size | "sm" \| "lg" \| "md" | No | Visual size of the component. |
| sticky | "partial" \| "always" | No | See the published type. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| updatePositionStrategy | "always" \| "optimized" | No | See the published type. |
| variant | "default" \| "destructive" \| "secondary" | No | Visual variant. Use a value supported by this component. |

Source: https://www.kivora.pro/docs/componentes/tooltip


---

# Chart

Recharts charts with Kivora colors and tooltips.

## How to use it

ChartContainer provides visual context; configure series using label and color. Give the chart an explicit height.

BarChart, Bar and XAxis come from recharts. Install recharts as a direct dependency if you import them in your application.

## Import


```tsx
import { ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<ChartContainer config={{visits:{label:"Visits",color:"#6558e8"}}} style={{width:"100%",height:240}}><BarChart data={[{day:"Mon",visits:120},{day:"Tue",visits:180},{day:"Wed",visits:145},{day:"Thu",visits:240},{day:"Fri",visits:310}]}><XAxis dataKey="day" /><ChartTooltip content={<ChartTooltipContent />} /><Bar dataKey="visits" fill="var(--color-visits)" radius={6} /></BarChart></ChartContainer>
```


## API: ChartContainer


```typescript
ChartContainer: React.ForwardRefExoticComponent<ChartContainerProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| config | ChartConfig | No | Associate chart series with labels and colors. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: ChartTooltip


```typescript
ChartTooltip: typeof RechartsPrimitive.Tooltip
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| active | boolean | No | If true, then Tooltip is always displayed, once an activeIndex is set by mouse over, or programmatically. If false, then Tooltip is never displayed. If undefined, Recharts will control when the Tooltip displays. This includes mouse and keyboard controls. |
| allowEscapeViewBox | AllowInDimension | No | This option allows the tooltip to extend beyond the viewBox of the chart itself. |
| animationDuration | number | No | Specifies the duration of animation, the unit of this option is ms. |
| animationEasing | EasingInput | No | The type of easing function. |
| axisId | AxisId | No | Tooltip always attaches itself to the "Tooltip" axis. Which axis is it? Depends on the layout: - horizontal layout -> X axis - vertical layout -> Y axis - radial layout -> radial axis - centric layout -> angle axis  Tooltip will use the default axis for the layout, unless you specify an axisId. |
| content | ContentType<ValueType, NameType> | No | Renders the content of the tooltip.  This should return HTML elements, not SVG elements.  - If not set, the {@link DefaultTooltipContent } component is used. - If set to a React element, this element will be cloned and extra props will be passed in. - If set to a function, the function will be called and should return HTML elements. |
| contentStyle | CSSProperties | No | CSS styles to be applied to the wrapper `div` element. |
| cursor | CursorDefinition | No | If set false, no cursor will be drawn when tooltip is active. If set a object, the option is the configuration of cursor. If set a React element, the option is the custom react element of drawing cursor. |
| defaultIndex | number \| TooltipIndex | No | See the published type. |
| filterNull | boolean | No | When an item of the payload has value null or undefined, this item won't be displayed. |
| formatter | (Formatter<ValueType, NameType> & ((value: ValueType, name: NameType, item: TooltipPayloadEntry, index: number, payload: TooltipPayload) => ReactNode \| [ReactNode, ReactNode])) | No | Function to customize the value in the tooltip. If you return an array, the first entry will be the formatted "value", and the second entry will be the formatted "name" |
| includeHidden | boolean | No | If true, the tooltip will display information about hidden series. Defaults to false. Interacting with the hide property of Area, Bar, Line, Scatter. |
| isAnimationActive | boolean \| "auto" | No | If set false, animation of tooltip will be disabled. If set "auto", the animation will be disabled in SSR and will respect the user's prefers-reduced-motion system preference for accessibility. |
| itemSorter | (TooltipItemSorter<ValueType, NameType> & TooltipItemSorter) | No | Sorts tooltip items. Defaults to 'name' which means it sorts alphabetically by graphical item `name` property. |
| itemStyle | CSSProperties | No | Style of individual items inside the tooltip, a `<li>` element. These show the data label (name, or dataKey) and value.  If a chart has multiple graphical items then the Tooltip renders multiple item and each of them gets this itemStyle applied. |
| labelClassName | string | No | See the published type. |
| labelFormatter | (((label: ReactNode, payload: readonly Payload<ValueType, NameType>[]) => ReactNode) & ((label: ReactNode, payload: TooltipPayload) => ReactNode)) | No | The formatter function of label in tooltip. |
| labelStyle | CSSProperties | No | "Label" is the tooltip title. Renders once on the top of tooltip and shows categorical axis value.  Even if there are multiple graphical items in the chart, only one label gets rendered.  Note that "Label" in tooltip is the header, which is different from {@link Legend } where "labelStyle" are the individual items. |
| offset | number \| Coordinate | No | The offset size between the position of tooltip and the mouse cursor position. When a number is provided, the same offset is applied to both x and y axes.  When a Coordinate object is provided, you can specify different offsets for each axis (x and y as numbers) |
| payloadUniqBy | UniqueOption<TooltipPayloadEntry> | No | See the published type. |
| portal | HTMLElement \| null | No | If portal is defined, then Tooltip will use this element as a target for rendering using React Portal: https://react.dev/reference/react-dom/createPortal  If this is undefined then Tooltip renders inside the recharts-wrapper element. |
| position | Partial<Coordinate> | No | If this field is set, the tooltip will be displayed at the specified position regardless of the mouse position.  You can set a single field (x or y) and let the other field be calculated automatically based on the mouse position. |
| reverseDirection | AllowInDimension | No | See the published type. |
| separator | string | No | The separator between name and value. |
| shared | boolean | No | Defines whether the tooltip is reacting to the current data point, or to all data points at the current axis coordinate.  - `true`: tooltip will appear on top of all bars on an axis tick. - `false`: tooltip will appear on individual bars.  Different chart types allow different modes, and have different defaults. |
| trigger | "hover" \| "click" | No | If `hover` then the Tooltip shows on mouse enter and hides on mouse leave.  If `click` then the Tooltip shows after clicking and stays active. |
| useTranslate3d | boolean | No | See the published type. |
| wrapperClassName | string | No | See the published type. |
| wrapperStyle | CSSProperties | No | CSS styles to be applied to the wrapper `div` element. |

## API: ChartTooltipContent


```typescript
declare function ChartTooltipContent({ active, className, formatter, label, payload, ...props }: ChartTooltipContentProps): React.JSX.Element | null;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| active | boolean | No | See the published type. |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| formatter | ((value: unknown, name: string) => ReactNode) | No | See the published type. |
| id | string | No | Element identifier; associates labels and descriptions. |
| label | ReactNode | No | Text or accessible label. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| payload | { color?: string; dataKey?: string \| number; name?: string; value?: unknown; }[] | No | See the published type. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: ChartLegend


```typescript
ChartLegend: React.MemoExoticComponent<(outsideProps: RechartsPrimitive.LegendProps) => React.ReactPortal | null>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| align | "center" \| "left" \| "right" | No | Content alignment. |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| content | ContentType | No | Renders the content of the legend.  This should return HTML elements, not SVG elements.  - If not set, the {@link DefaultLegendContent } component is used. - If set to a React element, this element will be cloned and extra props will be passed in. - If set to a function, the function will be called and should return HTML elements. |
| dangerouslySetInnerHTML | { __html: string; } | No | See the published type. |
| formatter | Formatter | No | Function to customize how content is serialized before rendering.  This should return HTML elements, or strings. |
| height | string \| number | No | Output height. |
| iconSize | number | No | The size of icon in each legend item. |
| iconType | "circle" \| "line" \| "rect" \| "none" \| "cross" \| "diamond" \| "plainline" \| "square" \| "star" \| "triangle" \| "wye" | No | The type of icon in each legend item. |
| inactiveColor | string | No | The color of the icon when the item is inactive. |
| itemSorter | LegendItemSorter \| null | No | Sorts Legend items. Defaults to `value` which means it will sort alphabetically by the label.  If `null` is provided then the payload is not sorted. Be aware that without sort, the order of items may change between renders! |
| labelStyle | CSSProperties | No | Style of individual items inside the Legend, a `<span>` element. These show the data label (name, or dataKey) and value.  If a chart has multiple graphical items then the Legend renders multiple item and each of them gets this itemStyle applied.  Pie charts render multiple labels from a single data series.  Note that this is different from {@link Tooltip }: - in Tooltip: "labelStyle" styles the title / header - in Tooltip: "itemStyle" styles the individual data points - in Legend: "labelStyle" styles the individual data points  Beware of the naming inconsistency! |
| layout | "auto" \| "horizontal" \| "vertical" | No | The layout of legend items inside the legend container.  When `auto` then the layout is decided based on the `position` prop: - in `left`\|`right` positions, the layout is vertical - otherwise horizontal - if position is undefined, also horizontal  `auto` value is new since 3.10 |
| offset | number | No | The offset to the specified `position`. Direction of the offset depends on the position. |
| onAbort | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onAbortCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onAnimationEnd | AdaptChildAnimationEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onAnimationEndCapture | AdaptChildAnimationEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onAnimationIteration | AdaptChildAnimationEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onAnimationIterationCapture | AdaptChildAnimationEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onAnimationStart | AdaptChildAnimationEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onAnimationStartCapture | AdaptChildAnimationEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onAuxClick | AdaptChildMouseEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onAuxClickCapture | AdaptChildMouseEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onBBoxUpdate | ((box: ElementOffset \| null) => void) | No | See the published type. |
| onBeforeInput | AdaptChildFormEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onBeforeInputCapture | AdaptChildFormEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onBlur | AdaptChildFocusEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onBlurCapture | AdaptChildFocusEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onCanPlay | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onCanPlayCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onCanPlayThrough | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onCanPlayThroughCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onChange | AdaptChildFormEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onChangeCapture | AdaptChildFormEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onClick | ((data: LegendPayload, index: number, event: MouseEvent<HTMLElement, MouseEvent>) => void) | No | Action performed when the element is activated. |
| onClickCapture | AdaptChildMouseEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onCompositionEnd | AdaptChildCompositionEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onCompositionEndCapture | AdaptChildCompositionEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onCompositionStart | AdaptChildCompositionEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onCompositionStartCapture | AdaptChildCompositionEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onCompositionUpdate | AdaptChildCompositionEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onCompositionUpdateCapture | AdaptChildCompositionEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onContextMenu | AdaptChildMouseEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onContextMenuCapture | AdaptChildMouseEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onCopy | AdaptChildClipboardEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onCopyCapture | AdaptChildClipboardEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onCut | AdaptChildClipboardEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onCutCapture | AdaptChildClipboardEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onDoubleClick | AdaptChildMouseEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onDoubleClickCapture | AdaptChildMouseEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onDrag | AdaptChildDragEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onDragCapture | AdaptChildDragEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onDragEnd | AdaptChildDragEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onDragEndCapture | AdaptChildDragEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onDragEnter | AdaptChildDragEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onDragEnterCapture | AdaptChildDragEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onDragExit | AdaptChildDragEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onDragExitCapture | AdaptChildDragEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onDragLeave | AdaptChildDragEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onDragLeaveCapture | AdaptChildDragEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onDragOver | AdaptChildDragEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onDragOverCapture | AdaptChildDragEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onDragStart | AdaptChildDragEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onDragStartCapture | AdaptChildDragEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onDrop | AdaptChildDragEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onDropCapture | AdaptChildDragEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onDurationChange | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onDurationChangeCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onEmptied | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onEmptiedCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onEncrypted | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onEncryptedCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onEnded | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onEndedCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onError | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | Receives errors for the application to handle. |
| onErrorCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onFocus | AdaptChildFocusEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onFocusCapture | AdaptChildFocusEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onGotPointerCapture | AdaptChildPointerEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onGotPointerCaptureCapture | AdaptChildPointerEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onInput | AdaptChildFormEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onInputCapture | AdaptChildFormEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onInvalid | AdaptChildFormEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onInvalidCapture | AdaptChildFormEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onKeyDown | AdaptChildKeyboardEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onKeyDownCapture | AdaptChildKeyboardEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onKeyPress | AdaptChildKeyboardEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onKeyPressCapture | AdaptChildKeyboardEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onKeyUp | AdaptChildKeyboardEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onKeyUpCapture | AdaptChildKeyboardEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onLoad | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onLoadCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onLoadedData | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onLoadedDataCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onLoadedMetadata | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onLoadedMetadataCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onLoadStart | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onLoadStartCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onLostPointerCapture | AdaptChildPointerEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onLostPointerCaptureCapture | AdaptChildPointerEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onMouseDown | AdaptChildMouseEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onMouseDownCapture | AdaptChildMouseEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onMouseEnter | ((data: LegendPayload, index: number, event: MouseEvent<HTMLElement, MouseEvent>) => void) | No | The customized event handler of mouseenter on the items in this group |
| onMouseLeave | ((data: LegendPayload, index: number, event: MouseEvent<HTMLElement, MouseEvent>) => void) | No | The customized event handler of mouseleave on the items in this group |
| onMouseMove | AdaptChildMouseEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onMouseMoveCapture | AdaptChildMouseEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onMouseOut | AdaptChildMouseEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onMouseOutCapture | AdaptChildMouseEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onMouseOver | AdaptChildMouseEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onMouseOverCapture | AdaptChildMouseEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onMouseUp | AdaptChildMouseEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onMouseUpCapture | AdaptChildMouseEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPaste | AdaptChildClipboardEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPasteCapture | AdaptChildClipboardEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPause | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPauseCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPlay | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPlayCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPlaying | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPlayingCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPointerCancel | AdaptChildPointerEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPointerCancelCapture | AdaptChildPointerEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPointerDown | AdaptChildPointerEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPointerDownCapture | AdaptChildPointerEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPointerEnter | AdaptChildPointerEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPointerEnterCapture | AdaptChildPointerEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPointerLeave | AdaptChildPointerEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPointerLeaveCapture | AdaptChildPointerEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPointerMove | AdaptChildPointerEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPointerMoveCapture | AdaptChildPointerEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPointerOut | AdaptChildPointerEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPointerOutCapture | AdaptChildPointerEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPointerOver | AdaptChildPointerEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPointerOverCapture | AdaptChildPointerEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPointerUp | AdaptChildPointerEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onPointerUpCapture | AdaptChildPointerEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onProgress | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onProgressCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onRateChange | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onRateChangeCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onReset | AdaptChildFormEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onResetCapture | AdaptChildFormEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onScroll | AdaptChildUIEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onScrollCapture | AdaptChildUIEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onSeeked | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onSeekedCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onSeeking | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onSeekingCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onSelect | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | Action or selection made by the user. |
| onSelectCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onStalled | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onStalledCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onSubmit | AdaptChildFormEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | Form submission event. |
| onSubmitCapture | AdaptChildFormEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onSuspend | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onSuspendCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onTimeUpdate | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onTimeUpdateCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onTouchCancel | AdaptChildTouchEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onTouchCancelCapture | AdaptChildTouchEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onTouchEnd | AdaptChildTouchEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onTouchEndCapture | AdaptChildTouchEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onTouchMove | AdaptChildTouchEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onTouchMoveCapture | AdaptChildTouchEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onTouchStart | AdaptChildTouchEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onTouchStartCapture | AdaptChildTouchEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onTransitionEnd | AdaptChildTransitionEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onTransitionEndCapture | AdaptChildTransitionEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onVolumeChange | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onVolumeChangeCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onWaiting | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onWaitingCapture | AdaptChildReactEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onWheel | AdaptChildWheelEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| onWheelCapture | AdaptChildWheelEventHandler<LegendPayload, ReactElement<unknown, string \| JSXElementConstructor<any>>> | No | See the published type. |
| payloadUniqBy | UniqueOption<LegendPayload> | No | See the published type. |
| portal | HTMLElement \| null | No | If portal is defined, then Legend will use this element as a target for rendering using React Portal.  If this is undefined then Legend renders inside the recharts-wrapper element. |
| position | CartesianPosition | No | The position of the legend relative to the chart. If this is defined, it overrides `align` and `verticalAlign`. |
| verticalAlign | "top" \| "bottom" \| "middle" | No | See the published type. |
| width | string \| number | No | Output width. |
| wrapperStyle | CSSProperties | No | CSS styles to be applied to the wrapper `div` element. |

Source: https://www.kivora.pro/docs/componentes/chart


---

# DataTable

Data with search, sorting, selection and pagination.

## How to use it

Define columns using accessorKey and header and pass data as an array. Columns use LegacyColumnDef from the TanStack version included in Kivora.



## Import


```tsx
import { DataTable } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<DataTable columns={[{accessorKey:"name",header:"Name"},{accessorKey:"role",header:"Role"}]} data={[{name:"Sofía Martín",role:"Design"},{name:"Lucas García",role:"Development"},{name:"Emma Wilson",role:"Product"}]} searchable paginated pageSize={2} />
```


## API: DataTable


```typescript
declare function DataTable<TData extends RowData>({ advanced, columns, data, emptyMessage, filterable, filters, filterMenuOpen, className, multiSelect, onFilterMenuOpenChange, pageSize, pageSizeOptions, paginated, paginationVariant, renderRowActions, rowActions, bulkActions, searchable, searchPlaceholder, selectable, ...props }: DataTableProps<TData>): React.JSX.Element;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| columns | LegacyColumnDef<TData, unknown>[] | Yes | Column definitions, data access and presentation. |
| data | TData[] | Yes | Rows to display. |
| advanced | boolean | No | See the published type. |
| aria-label | string | No | Accessible name of the control. |
| bulkActions | DataTableBulkAction<TData>[] | No | See the published type. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| emptyMessage | ReactNode | No | Content when there are no results. |
| filterable | boolean | No | Enable filters. |
| filterMenuOpen | boolean | No | See the published type. |
| filters | DataTableFilter[] | No | Definition of available filters. |
| id | string | No | Element identifier; associates labels and descriptions. |
| multiSelect | boolean | No | Allow multiple row selection. |
| onChange | ChangeEventHandler<HTMLTableElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLTableElement> | No | Action performed when the element is activated. |
| onFilterMenuOpenChange | ((open: boolean) => void) | No | See the published type. |
| onSubmit | SubmitEventHandler<HTMLTableElement> | No | Form submission event. |
| pageSize | number | No | Number of rows per page. |
| pageSizeOptions | number[] | No | Available page sizes. |
| paginated | boolean | No | Enable pagination. |
| paginationVariant | "buttons" \| "numbers" | No | See the published type. |
| renderRowActions | ((row: TData) => ReactNode) | No | See the published type. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| rowActions | DataTableAction<TData>[] | No | See the published type. |
| searchable | boolean | No | Enable built-in search. |
| searchPlaceholder | string | No | Search hint text. |
| selectable | boolean | No | Allow row selection. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/data-table


---

# Table

Semantic tables with a consistent presentation.

## How to use it

Use TableHead for headings and TableCaption to describe the dataset. Use DataTable for sorting, filtering and pagination.



## Import


```tsx
import { Table, TableHeader, TableBody, TableFooter, TableRow, TableHead, TableCell, TableCaption } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Table><TableCaption>Your team</TableCaption><TableHeader><TableRow><TableHead>Name</TableHead><TableHead>Role</TableHead></TableRow></TableHeader><TableBody><TableRow><TableCell>Sofía Martín</TableCell><TableCell>Design</TableCell></TableRow><TableRow><TableCell>Lucas García</TableCell><TableCell>Development</TableCell></TableRow></TableBody></Table>
```


## API: Table


```typescript
Table: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableElement> & React.RefAttributes<HTMLTableElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLTableElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLTableElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLTableElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: TableHeader


```typescript
TableHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLTableSectionElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLTableSectionElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLTableSectionElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: TableBody


```typescript
TableBody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLTableSectionElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLTableSectionElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLTableSectionElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: TableFooter


```typescript
TableFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLTableSectionElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLTableSectionElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLTableSectionElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: TableRow


```typescript
TableRow: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableRowElement> & React.RefAttributes<HTMLTableRowElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLTableRowElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLTableRowElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLTableRowElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: TableHead


```typescript
TableHead: React.ForwardRefExoticComponent<React.ThHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLTableCellElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLTableCellElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLTableCellElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: TableCell


```typescript
TableCell: React.ForwardRefExoticComponent<React.TdHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLTableCellElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLTableCellElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLTableCellElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: TableCaption


```typescript
TableCaption: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableCaptionElement> & React.RefAttributes<HTMLTableCaptionElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLTableCaptionElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLTableCaptionElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLTableCaptionElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/table


---

# Alert

Information, success, warning or error messages.

## How to use it

Combine AlertTitle with AlertDescription. Choose a variant based on meaning and add instructions if the user needs to act.



## Import


```tsx
import { Alert, AlertTitle, AlertDescription } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Alert variant="success"><AlertTitle>All set</AlertTitle><AlertDescription>Your changes have been saved.</AlertDescription></Alert>
```


## Warning

```tsx
<Alert variant="warning"><AlertTitle>Review your information</AlertTitle><AlertDescription>Complete the required fields.</AlertDescription></Alert>
```


## API: Alert


```typescript
Alert: React.ForwardRefExoticComponent<AlertProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| variant | "default" \| "destructive" \| "success" \| "warning" \| null | No | Visual variant. Use a value supported by this component. |

## API: AlertTitle


```typescript
AlertTitle: React.ForwardRefExoticComponent<AlertTitleProps & React.RefAttributes<HTMLParagraphElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLHeadingElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLHeadingElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLHeadingElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: AlertDescription


```typescript
AlertDescription: React.ForwardRefExoticComponent<AlertDescriptionProps & React.RefAttributes<HTMLParagraphElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLParagraphElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLParagraphElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLParagraphElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/alert


---

# Empty

Provide context when there is no content yet.

## How to use it

Explain why it is empty and offer a useful action. Use different messages for no data and no search results.



## Import


```tsx
import { Empty, EmptyHeader, EmptyIcon, EmptyTitle, EmptyDescription, EmptyContent, EmptyFooter } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Empty><EmptyHeader><EmptyTitle>It all starts here</EmptyTitle><EmptyDescription>You have no projects yet.</EmptyDescription></EmptyHeader><EmptyContent><Button>Create my first project</Button></EmptyContent></Empty>
```


## API: Empty


```typescript
Empty: React.ForwardRefExoticComponent<EmptyProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| size | "sm" \| "lg" \| "md" | No | Visual size of the component. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: EmptyHeader


```typescript
EmptyHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: EmptyIcon


```typescript
EmptyIcon: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: EmptyTitle


```typescript
EmptyTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLHeadingElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLHeadingElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLHeadingElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: EmptyDescription


```typescript
EmptyDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLParagraphElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLParagraphElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLParagraphElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: EmptyContent


```typescript
EmptyContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: EmptyFooter


```typescript
EmptyFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/empty


---

# Progress

Show how much of a task is complete.

## How to use it

Use a value between 0 and max. Progress must represent real data; do not use it as a simulated timer.



## Import


```tsx
import { Progress } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Progress value={65} max={100} aria-label="Project progress" style={{width:320}} />
```


## API: Progress


```typescript
Progress: React.ForwardRefExoticComponent<ProgressProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| getValueLabel | ((value: number, max: number) => string) | No | See the published type. |
| id | string | No | Element identifier; associates labels and descriptions. |
| indicatorClassName | string | No | See the published type. |
| max | number | No | Maximum allowed value. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| size | "default" \| "sm" \| "lg" | No | Visual size of the component. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| value | number \| null | No | Controlled value. Update it from the change callback. |

Source: https://www.kivora.pro/docs/componentes/progress


---

# Skeleton

Reserve space while content loads.

## How to use it

Approximate the final structure to reduce layout shifts. Respect the user's motion preferences.



## Import


```tsx
import { Skeleton } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<div style={{ display: "grid", gap: 16, width: "100%", maxWidth: 360 }}>
  <Skeleton style={{height:24,width:"60%"}} /><Skeleton style={{height:14}} /><Skeleton style={{height:14,width:"80%"}} />
</div>
```


## API: Skeleton


```typescript
Skeleton: React.ForwardRefExoticComponent<SkeletonProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| animate | boolean | No | Enable or disable animation. |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/skeleton


---

# Spinner

An indicator for ongoing operations.

## How to use it

Use label to describe what is loading. Change size and variant to fit the available space.



## Import


```tsx
import { Spinner } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Spinner size="lg" variant="primary" label="Loading project" />
```


## API: Spinner


```typescript
Spinner: React.ForwardRefExoticComponent<SpinnerProps & React.RefAttributes<HTMLSpanElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| label | string | No | Text or accessible label. |
| onChange | ChangeEventHandler<HTMLSpanElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLSpanElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLSpanElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| size | "sm" \| "lg" \| "md" | No | Visual size of the component. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| variant | "default" \| "destructive" \| "muted" \| "primary" | No | Visual variant. Use a value supported by this component. |

Source: https://www.kivora.pro/docs/componentes/spinner


---

# Toaster

Brief notifications that accompany an action.

## How to use it

Mount one Toaster in your application and call toast from event handlers. Do not use toasts as the only place for errors that require correction.



## Import


```tsx
import { Toaster } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<><Toaster /><Button onClick={() => toast.success("Project saved")}>Show notification</Button></>
```


## API: Toaster


```typescript
declare function Toaster({ className, toastOptions, ...props }: ToasterProps): React.JSX.Element;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| className | string | No | Additional CSS classes to customize the element. |
| closeButton | boolean | No | See the published type. |
| containerAriaLabel | string | No | See the published type. |
| customAriaLabel | string | No | See the published type. |
| dir | "auto" \| "ltr" \| "rtl" | No | Interface reading direction. |
| duration | number | No | Animation duration in milliseconds. |
| expand | boolean | No | See the published type. |
| gap | number | No | See the published type. |
| hotkey | string[] | No | See the published type. |
| icons | ToastIcons | No | See the published type. |
| id | string | No | Element identifier; associates labels and descriptions. |
| invert | boolean | No | See the published type. |
| mobileOffset | Offset | No | See the published type. |
| offset | Offset | No | See the published type. |
| position | "top-left" \| "top-right" \| "bottom-left" \| "bottom-right" \| "top-center" \| "bottom-center" | No | See the published type. |
| richColors | boolean | No | See the published type. |
| style | CSSProperties | No | React inline styles. |
| swipeDirections | SwipeDirection[] | No | See the published type. |
| theme | "light" \| "dark" \| "system" | No | Component theme or theme identifier, depending on the API. |
| toastOptions | ToastOptions | No | See the published type. |
| visibleToasts | number | No | See the published type. |

Source: https://www.kivora.pro/docs/componentes/toaster


---

# Attachment

A file with description, actions and progress.

## How to use it

The component represents a file; it does not upload it. Use FileUpload to transfer data.



## Import


```tsx
import { Attachment, AttachmentContent, AttachmentTitle, AttachmentDescription, AttachmentMedia, AttachmentActions, AttachmentProgress } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Attachment><AttachmentContent><AttachmentTitle>brand-guidelines.pdf</AttachmentTitle><AttachmentDescription>PDF · 2.4 MB</AttachmentDescription></AttachmentContent><AttachmentActions><Badge>Done</Badge></AttachmentActions></Attachment>
```


## API: Attachment


```typescript
Attachment: React.ForwardRefExoticComponent<AttachmentProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| progress | number | No | Operation progress. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: AttachmentContent


```typescript
AttachmentContent: React.ForwardRefExoticComponent<AttachmentContentProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: AttachmentTitle


```typescript
AttachmentTitle: React.ForwardRefExoticComponent<AttachmentTitleProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: AttachmentDescription


```typescript
AttachmentDescription: React.ForwardRefExoticComponent<AttachmentDescriptionProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: AttachmentMedia


```typescript
AttachmentMedia: React.ForwardRefExoticComponent<AttachmentMediaProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: AttachmentActions


```typescript
AttachmentActions: React.ForwardRefExoticComponent<AttachmentActionsProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: AttachmentProgress


```typescript
AttachmentProgress: React.ForwardRefExoticComponent<AttachmentProgressProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| value | number | No | Controlled value. Update it from the change callback. |

Source: https://www.kivora.pro/docs/componentes/attachment


---

# Bubble

A visual bubble for messages and short snippets.

## How to use it

Use variant to distinguish messages and keep conversation state in your application.



## Import


```tsx
import { Bubble, BubbleContent } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Bubble variant="primary"><BubbleContent>Your next idea starts here.</BubbleContent></Bubble>
```


## API: Bubble


```typescript
Bubble: React.ForwardRefExoticComponent<BubbleProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| variant | "default" \| "outline" \| "ghost" \| "primary" \| null | No | Visual variant. Use a value supported by this component. |

## API: BubbleContent


```typescript
BubbleContent: React.ForwardRefExoticComponent<BubbleContentProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/bubble


---

# Carousel

Content you can browse slide by slide.

## How to use it

Options come from react-slick. Use settings or opts and provide controls so navigation does not depend on gestures or autoplay.



## Import


```tsx
import { Carousel, CarouselContent, CarouselItem, CarouselControls, CarouselPrevious, CarouselNext, CarouselPlay, CarouselPause } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Carousel style={{width:320}} settings={{dots:true,infinite:false}}><CarouselContent>{["An idea", "A team", "A project"].map(title => <CarouselItem key={title}><Card style={{padding:48,textAlign:"center"}}>{title}</Card></CarouselItem>)}</CarouselContent><CarouselControls><CarouselPrevious aria-label="Previous" /><CarouselNext aria-label="Next" /></CarouselControls></Carousel>
```


## API: Carousel


```typescript
Carousel: React.ForwardRefExoticComponent<CarouselProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| opts | any | No | See the published type. |
| orientation | "horizontal" \| "vertical" | No | Horizontal or vertical axis. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| setApi | ((api: any) => void) | No | See the published type. |
| settings | any | No | See the published type. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: CarouselContent


```typescript
declare function CarouselContent({ children }: CarouselContentProps): React.JSX.Element;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |

## API: CarouselItem


```typescript
CarouselItem: React.ForwardRefExoticComponent<CarouselItemProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: CarouselControls


```typescript
CarouselControls: React.ForwardRefExoticComponent<CarouselControlsProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: CarouselPrevious


```typescript
CarouselPrevious: React.ForwardRefExoticComponent<Omit<ButtonProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| size | "default" \| "sm" \| "lg" \| "icon" \| null | No | Visual size of the component. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |
| variant | "default" \| "link" \| "destructive" \| "secondary" \| "outline" \| "ghost" \| null | No | Visual variant. Use a value supported by this component. |

## API: CarouselNext


```typescript
CarouselNext: React.ForwardRefExoticComponent<Omit<ButtonProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| size | "default" \| "sm" \| "lg" \| "icon" \| null | No | Visual size of the component. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |
| variant | "default" \| "link" \| "destructive" \| "secondary" \| "outline" \| "ghost" \| null | No | Visual variant. Use a value supported by this component. |

## API: CarouselPlay


```typescript
CarouselPlay: React.ForwardRefExoticComponent<Omit<ButtonProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| size | "default" \| "sm" \| "lg" \| "icon" \| null | No | Visual size of the component. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |
| variant | "default" \| "link" \| "destructive" \| "secondary" \| "outline" \| "ghost" \| null | No | Visual variant. Use a value supported by this component. |

## API: CarouselPause


```typescript
CarouselPause: React.ForwardRefExoticComponent<Omit<ButtonProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| id | string | No | Element identifier; associates labels and descriptions. |
| name | string | No | Name used to identify the control in forms. |
| onChange | ChangeEventHandler<HTMLButtonElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLButtonElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLButtonElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| size | "default" \| "sm" \| "lg" \| "icon" \| null | No | Visual size of the component. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "button" \| "submit" \| "reset" | No | Operation type or mode; values depend on the component. |
| value | string \| number \| readonly string[] | No | Controlled value. Update it from the change callback. |
| variant | "default" \| "link" \| "destructive" \| "secondary" \| "outline" \| "ghost" \| null | No | Visual variant. Use a value supported by this component. |

Source: https://www.kivora.pro/docs/componentes/carousel


---

# Item

A content row with text, icons and actions.

## How to use it

Compose ItemMedia, ItemContent and ItemActions for lists. ItemGroup groups related items.



## Import


```tsx
import { Item, ItemGroup, ItemHeader, ItemMedia, ItemContent, ItemTitle, ItemDescription, ItemActions, ItemFooter } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Item variant="outline"><ItemContent><ItemTitle>Website design</ItemTitle><ItemDescription>Updated just now.</ItemDescription></ItemContent><ItemActions><Badge variant="secondary">In progress</Badge></ItemActions></Item>
```


## API: Item


```typescript
Item: React.ForwardRefExoticComponent<ItemProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| variant | "default" \| "outline" \| "ghost" | No | Visual variant. Use a value supported by this component. |

## API: ItemGroup


```typescript
ItemGroup: React.ForwardRefExoticComponent<ItemGroupProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: ItemHeader


```typescript
ItemHeader: React.ForwardRefExoticComponent<ItemHeaderProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: ItemMedia


```typescript
ItemMedia: React.ForwardRefExoticComponent<ItemMediaProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| variant | "default" \| "icon" \| "avatar" | No | Visual variant. Use a value supported by this component. |

## API: ItemContent


```typescript
ItemContent: React.ForwardRefExoticComponent<ItemContentProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: ItemTitle


```typescript
ItemTitle: React.ForwardRefExoticComponent<ItemTitleProps & React.RefAttributes<HTMLHeadingElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLHeadingElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLHeadingElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLHeadingElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: ItemDescription


```typescript
ItemDescription: React.ForwardRefExoticComponent<ItemDescriptionProps & React.RefAttributes<HTMLParagraphElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLParagraphElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLParagraphElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLParagraphElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: ItemActions


```typescript
ItemActions: React.ForwardRefExoticComponent<ItemActionsProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: ItemFooter


```typescript
ItemFooter: React.ForwardRefExoticComponent<ItemFooterProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/item


---

# Marker

Highlight a note or feature.

## How to use it

Combine MarkerIcon and MarkerContent. Use variants to adapt borders or spacing to the context.



## Import


```tsx
import { Marker, MarkerIcon, MarkerContent } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Marker variant="border"><MarkerIcon>✦</MarkerIcon><MarkerContent>Made with Kivora</MarkerContent></Marker>
```


## API: Marker


```typescript
Marker: React.ForwardRefExoticComponent<MarkerProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| variant | "default" \| "separator" \| "border" \| null | No | Visual variant. Use a value supported by this component. |

## API: MarkerIcon


```typescript
MarkerIcon: React.ForwardRefExoticComponent<MarkerIconProps & React.RefAttributes<HTMLSpanElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLSpanElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLSpanElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLSpanElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: MarkerContent


```typescript
MarkerContent: React.ForwardRefExoticComponent<MarkerContentProps & React.RefAttributes<HTMLSpanElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLSpanElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLSpanElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLSpanElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/marker


---

# Message

Conversation structure with author, body and status.

## How to use it

Use align to distinguish sender and recipient. MessageScroller can follow new messages when follow is enabled.



## Import


```tsx
import { Message, MessageGroup, MessageAvatar, MessageContent, MessageHeader, MessageFooter, MessageScroller } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<MessageGroup><Message align="start"><MessageContent><MessageHeader>Sofía</MessageHeader><Bubble><BubbleContent>Shall we bring this idea to life?</BubbleContent></Bubble><MessageFooter>09:41</MessageFooter></MessageContent></Message></MessageGroup>
```


## API: Message


```typescript
Message: React.ForwardRefExoticComponent<MessageProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| align | "start" \| "end" | No | Content alignment. |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: MessageGroup


```typescript
MessageGroup: React.ForwardRefExoticComponent<MessageGroupProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: MessageAvatar


```typescript
MessageAvatar: React.ForwardRefExoticComponent<MessageAvatarProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: MessageContent


```typescript
MessageContent: React.ForwardRefExoticComponent<MessageContentProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: MessageHeader


```typescript
MessageHeader: React.ForwardRefExoticComponent<MessageHeaderProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: MessageFooter


```typescript
MessageFooter: React.ForwardRefExoticComponent<MessageFooterProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

## API: MessageScroller


```typescript
MessageScroller: React.ForwardRefExoticComponent<MessageScrollerProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| dir | "ltr" \| "rtl" | No | Interface reading direction. |
| follow | boolean | No | Follow new messages when appropriate. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| scrollHideDelay | number | No | See the published type. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "auto" \| "hover" \| "always" \| "scroll" | No | Operation type or mode; values depend on the component. |
| viewportClassName | string | No | See the published type. |
| virtualized | false | No | See the published type. |

Source: https://www.kivora.pro/docs/componentes/message


---

# Resizable

Panels that users can resize.

## How to use it

Set direction on the group and minSize/maxSize on panels. ResizableHandle supports keyboard interaction.



## Import


```tsx
import { ResizablePanelGroup, ResizablePanel, ResizableHandle } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<ResizablePanelGroup direction="horizontal" style={{height:200,width:380,border:"1px solid var(--color-border)",borderRadius:8}}><ResizablePanel defaultSize={40} minSize={20}><div style={{padding:20}}>Navigation</div></ResizablePanel><ResizableHandle withHandle /><ResizablePanel minSize={20}><div style={{padding:20}}>Your workspace</div></ResizablePanel></ResizablePanelGroup>
```


## API: ResizablePanelGroup


```typescript
ResizablePanelGroup: ({ className, ...props }: ResizablePanelGroupProps) => React.JSX.Element
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| direction | "horizontal" \| "vertical" | Yes | Axis along which panels are arranged. |
| aria-label | string | No | Accessible name of the control. |
| autoSaveId | string \| null | No | See the published type. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| dir | "auto" \| "ltr" \| "rtl" | No | Interface reading direction. |
| id | string \| null | No | Element identifier; associates labels and descriptions. |
| keyboardResizeBy | number \| null | No | See the published type. |
| onChange | ChangeEventHandler<keyof HTMLElementTagNameMap, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<keyof HTMLElementTagNameMap> | No | Action performed when the element is activated. |
| onLayout | PanelGroupOnLayout \| null | No | See the published type. |
| onSubmit | SubmitEventHandler<keyof HTMLElementTagNameMap> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| storage | PanelGroupStorage | No | See the published type. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| tagName | "object" \| "a" \| "button" \| "div" \| "form" \| "h2" \| "h3" \| "img" \| "input" \| "label" \| "li" \| "nav" \| "ol" \| "p" \| "select" \| "span" \| "ul" \| "abbr" \| "address" \| "area" \| "article" \| "aside" \| "audio" \| "b" \| "base" \| "bdi" \| "bdo" \| "blockquote" \| "body" \| "br" \| "canvas" \| "caption" \| "cite" \| "code" \| "col" \| "colgroup" \| "data" \| "datalist" \| "dd" \| "del" \| "details" \| "dfn" \| "dialog" \| "dl" \| "dt" \| "em" \| "embed" \| "fieldset" \| "figcaption" \| "figure" \| "footer" \| "h1" \| "h4" \| "h5" \| "h6" \| "head" \| "header" \| "hgroup" \| "hr" \| "html" \| "i" \| "iframe" \| "ins" \| "kbd" \| "legend" \| "link" \| "main" \| "map" \| "mark" \| "menu" \| "meta" \| "meter" \| "noscript" \| "optgroup" \| "option" \| "output" \| "picture" \| "pre" \| "progress" \| "q" \| "rp" \| "rt" \| "ruby" \| "s" \| "samp" \| "search" \| "slot" \| "script" \| "section" \| "small" \| "source" \| "strong" \| "style" \| "sub" \| "summary" \| "sup" \| "table" \| "template" \| "tbody" \| "td" \| "textarea" \| "tfoot" \| "th" \| "thead" \| "time" \| "title" \| "tr" \| "track" \| "u" \| "var" \| "video" \| "wbr" | No | See the published type. |
| title | string | No | Title or supplementary information. |

## API: ResizablePanel


```typescript
ResizablePanel: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLElement | HTMLDivElement | HTMLObjectElement | HTMLLinkElement | HTMLInputElement | HTMLBaseElement | HTMLMapElement | HTMLProgressElement | HTMLSelectElement | HTMLAnchorElement | HTMLButtonElement | HTMLFormElement | HTMLHeadingElement | HTMLImageElement | HTMLLabelElement | HTMLLIElement | HTMLOListElement | HTMLParagraphElement | HTMLSpanElement | HTMLUListElement | HTMLAreaElement | HTMLAudioElement | HTMLQuoteElement | HTMLBodyElement | HTMLBRElement | HTMLCanvasElement | HTMLTableColElement | HTMLDataElement | HTMLDataListElement | HTMLModElement | HTMLDetailsElement | HTMLDialogElement | HTMLDListElement | HTMLEmbedElement | HTMLFieldSetElement | HTMLHeadElement | HTMLHRElement | HTMLHtmlElement | HTMLIFrameElement | HTMLLegendElement | HTMLMetaElement | HTMLMeterElement | HTMLOptGroupElement | HTMLOptionElement | HTMLOutputElement | HTMLPreElement | HTMLSlotElement | HTMLScriptElement | HTMLSourceElement | HTMLStyleElement | HTMLTableElement | HTMLTemplateElement | HTMLTableSectionElement | HTMLTableCellElement | HTMLTextAreaElement | HTMLTimeElement | HTMLTitleElement | HTMLTableRowElement | HTMLTrackElement | HTMLVideoElement | HTMLTableCaptionElement | HTMLMenuElement | HTMLPictureElement>, "id" | "onResize"> & {
    className?: string;
    collapsedSize?: number | undefined;
    collapsible?: boolean | undefined;
    defaultSize?: number | undefined;
    id?: string;
    maxSize?: number | undefined;
    minSize?: number | undefined;
    onCollapse?: ResizablePrimitive.PanelOnCollapse;
    onExpand?: ResizablePrimitive.PanelOnExpand;
    onResize?: ResizablePrimitive.PanelOnResize;
    order?: number;
    style?: object;
    tagName?: keyof HTMLElementTagNameMap | undefined;
} & {
    children?: React.ReactNode | undefined;
} & React.RefAttributes<ResizablePrimitive.ImperativePanelHandle>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| collapsedSize | number | No | See the published type. |
| collapsible | boolean | No | Allow closing content or collapsing the panel. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultSize | number | No | Initial panel size. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| maxSize | number | No | Maximum panel size. |
| minSize | number | No | Minimum panel size. |
| onChange | ChangeEventHandler<HTMLDivElement \| HTMLElement \| HTMLButtonElement \| HTMLParagraphElement \| HTMLHeadingElement \| HTMLSpanElement \| HTMLImageElement \| HTMLLIElement \| HTMLAnchorElement \| HTMLOListElement \| HTMLInputElement \| HTMLTableElement \| HTMLLabelElement \| HTMLLegendElement \| HTMLFieldSetElement \| HTMLUListElement \| HTMLObjectElement \| HTMLLinkElement \| HTMLBaseElement \| HTMLMapElement \| HTMLProgressElement \| HTMLSelectElement \| HTMLFormElement \| HTMLAreaElement \| HTMLAudioElement \| HTMLQuoteElement \| HTMLBodyElement \| HTMLBRElement \| HTMLCanvasElement \| HTMLTableColElement \| HTMLDataElement \| HTMLDataListElement \| HTMLModElement \| HTMLDetailsElement \| HTMLDialogElement \| HTMLDListElement \| HTMLEmbedElement \| HTMLHeadElement \| HTMLHRElement \| HTMLHtmlElement \| HTMLIFrameElement \| HTMLMetaElement \| HTMLMeterElement \| HTMLOptGroupElement \| HTMLOptionElement \| HTMLOutputElement \| HTMLPreElement \| HTMLSlotElement \| HTMLScriptElement \| HTMLSourceElement \| HTMLStyleElement \| HTMLTemplateElement \| HTMLTableSectionElement \| HTMLTableCellElement \| HTMLTextAreaElement \| HTMLTimeElement \| HTMLTitleElement \| HTMLTableRowElement \| HTMLTrackElement \| HTMLVideoElement \| HTMLTableCaptionElement \| HTMLMenuElement \| HTMLPictureElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement \| HTMLElement \| HTMLButtonElement \| HTMLParagraphElement \| HTMLHeadingElement \| HTMLSpanElement \| HTMLImageElement \| HTMLLIElement \| HTMLAnchorElement \| HTMLOListElement \| HTMLInputElement \| HTMLTableElement \| HTMLLabelElement \| HTMLLegendElement \| HTMLFieldSetElement \| HTMLUListElement \| HTMLObjectElement \| HTMLLinkElement \| HTMLBaseElement \| HTMLMapElement \| HTMLProgressElement \| HTMLSelectElement \| HTMLFormElement \| HTMLAreaElement \| HTMLAudioElement \| HTMLQuoteElement \| HTMLBodyElement \| HTMLBRElement \| HTMLCanvasElement \| HTMLTableColElement \| HTMLDataElement \| HTMLDataListElement \| HTMLModElement \| HTMLDetailsElement \| HTMLDialogElement \| HTMLDListElement \| HTMLEmbedElement \| HTMLHeadElement \| HTMLHRElement \| HTMLHtmlElement \| HTMLIFrameElement \| HTMLMetaElement \| HTMLMeterElement \| HTMLOptGroupElement \| HTMLOptionElement \| HTMLOutputElement \| HTMLPreElement \| HTMLSlotElement \| HTMLScriptElement \| HTMLSourceElement \| HTMLStyleElement \| HTMLTemplateElement \| HTMLTableSectionElement \| HTMLTableCellElement \| HTMLTextAreaElement \| HTMLTimeElement \| HTMLTitleElement \| HTMLTableRowElement \| HTMLTrackElement \| HTMLVideoElement \| HTMLTableCaptionElement \| HTMLMenuElement \| HTMLPictureElement> | No | Action performed when the element is activated. |
| onCollapse | PanelOnCollapse | No | See the published type. |
| onExpand | PanelOnExpand | No | See the published type. |
| onResize | PanelOnResize | No | See the published type. |
| onSubmit | SubmitEventHandler<HTMLDivElement \| HTMLElement \| HTMLButtonElement \| HTMLParagraphElement \| HTMLHeadingElement \| HTMLSpanElement \| HTMLImageElement \| HTMLLIElement \| HTMLAnchorElement \| HTMLOListElement \| HTMLInputElement \| HTMLTableElement \| HTMLLabelElement \| HTMLLegendElement \| HTMLFieldSetElement \| HTMLUListElement \| HTMLObjectElement \| HTMLLinkElement \| HTMLBaseElement \| HTMLMapElement \| HTMLProgressElement \| HTMLSelectElement \| HTMLFormElement \| HTMLAreaElement \| HTMLAudioElement \| HTMLQuoteElement \| HTMLBodyElement \| HTMLBRElement \| HTMLCanvasElement \| HTMLTableColElement \| HTMLDataElement \| HTMLDataListElement \| HTMLModElement \| HTMLDetailsElement \| HTMLDialogElement \| HTMLDListElement \| HTMLEmbedElement \| HTMLHeadElement \| HTMLHRElement \| HTMLHtmlElement \| HTMLIFrameElement \| HTMLMetaElement \| HTMLMeterElement \| HTMLOptGroupElement \| HTMLOptionElement \| HTMLOutputElement \| HTMLPreElement \| HTMLSlotElement \| HTMLScriptElement \| HTMLSourceElement \| HTMLStyleElement \| HTMLTemplateElement \| HTMLTableSectionElement \| HTMLTableCellElement \| HTMLTextAreaElement \| HTMLTimeElement \| HTMLTitleElement \| HTMLTableRowElement \| HTMLTrackElement \| HTMLVideoElement \| HTMLTableCaptionElement \| HTMLMenuElement \| HTMLPictureElement> | No | Form submission event. |
| order | number | No | See the published type. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | (CSSProperties & object) | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| tagName | "object" \| "a" \| "button" \| "div" \| "form" \| "h2" \| "h3" \| "img" \| "input" \| "label" \| "li" \| "nav" \| "ol" \| "p" \| "select" \| "span" \| "ul" \| "abbr" \| "address" \| "area" \| "article" \| "aside" \| "audio" \| "b" \| "base" \| "bdi" \| "bdo" \| "blockquote" \| "body" \| "br" \| "canvas" \| "caption" \| "cite" \| "code" \| "col" \| "colgroup" \| "data" \| "datalist" \| "dd" \| "del" \| "details" \| "dfn" \| "dialog" \| "dl" \| "dt" \| "em" \| "embed" \| "fieldset" \| "figcaption" \| "figure" \| "footer" \| "h1" \| "h4" \| "h5" \| "h6" \| "head" \| "header" \| "hgroup" \| "hr" \| "html" \| "i" \| "iframe" \| "ins" \| "kbd" \| "legend" \| "link" \| "main" \| "map" \| "mark" \| "menu" \| "meta" \| "meter" \| "noscript" \| "optgroup" \| "option" \| "output" \| "picture" \| "pre" \| "progress" \| "q" \| "rp" \| "rt" \| "ruby" \| "s" \| "samp" \| "search" \| "slot" \| "script" \| "section" \| "small" \| "source" \| "strong" \| "style" \| "sub" \| "summary" \| "sup" \| "table" \| "template" \| "tbody" \| "td" \| "textarea" \| "tfoot" \| "th" \| "thead" \| "time" \| "title" \| "tr" \| "track" \| "u" \| "var" \| "video" \| "wbr" | No | See the published type. |
| title | string | No | Title or supplementary information. |

## API: ResizableHandle


```typescript
declare function ResizableHandle({ className, withHandle, ...props }: ResizableHandleProps): React.JSX.Element;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| hitAreaMargins | PointerHitAreaMargins | No | See the published type. |
| id | string \| null | No | Element identifier; associates labels and descriptions. |
| onBlur | (() => void) | No | See the published type. |
| onChange | ChangeEventHandler<keyof HTMLElementTagNameMap, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | (() => void) | No | Action performed when the element is activated. |
| onDragging | PanelResizeHandleOnDragging | No | See the published type. |
| onFocus | (() => void) | No | See the published type. |
| onPointerDown | (() => void) | No | See the published type. |
| onPointerUp | (() => void) | No | See the published type. |
| onSubmit | SubmitEventHandler<keyof HTMLElementTagNameMap> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| tagName | "object" \| "a" \| "button" \| "div" \| "form" \| "h2" \| "h3" \| "img" \| "input" \| "label" \| "li" \| "nav" \| "ol" \| "p" \| "select" \| "span" \| "ul" \| "abbr" \| "address" \| "area" \| "article" \| "aside" \| "audio" \| "b" \| "base" \| "bdi" \| "bdo" \| "blockquote" \| "body" \| "br" \| "canvas" \| "caption" \| "cite" \| "code" \| "col" \| "colgroup" \| "data" \| "datalist" \| "dd" \| "del" \| "details" \| "dfn" \| "dialog" \| "dl" \| "dt" \| "em" \| "embed" \| "fieldset" \| "figcaption" \| "figure" \| "footer" \| "h1" \| "h4" \| "h5" \| "h6" \| "head" \| "header" \| "hgroup" \| "hr" \| "html" \| "i" \| "iframe" \| "ins" \| "kbd" \| "legend" \| "link" \| "main" \| "map" \| "mark" \| "menu" \| "meta" \| "meter" \| "noscript" \| "optgroup" \| "option" \| "output" \| "picture" \| "pre" \| "progress" \| "q" \| "rp" \| "rt" \| "ruby" \| "s" \| "samp" \| "search" \| "slot" \| "script" \| "section" \| "small" \| "source" \| "strong" \| "style" \| "sub" \| "summary" \| "sup" \| "table" \| "template" \| "tbody" \| "td" \| "textarea" \| "tfoot" \| "th" \| "thead" \| "time" \| "title" \| "tr" \| "track" \| "u" \| "var" \| "video" \| "wbr" | No | See the published type. |
| title | string | No | Title or supplementary information. |
| withHandle | boolean | No | Show a visual grip on the separator. |

Source: https://www.kivora.pro/docs/componentes/resizable


---

# ScrollArea

A scrolling region with consistent styling.

## How to use it

Set a height and make the area's purpose clear. Content remains keyboard accessible. virtualized enables large lists: items, renderItem and estimateSize on web; FlatList data and renderItem on native.



## Import


```tsx
import { ScrollArea, ScrollBar } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<ScrollArea style={{height:180,width:320}}>{Array.from({length:15}, (_,i) => <p key={i} style={{padding:12,borderBottom:"1px solid var(--color-border)"}}>Project {i + 1}</p>)}</ScrollArea>
```


## Virtualized list

```tsx
<ScrollArea virtualized style={{height:220,width:320}} items={Array.from({length:1000}, (_,i) => `Proyecto ${i + 1}`)} estimateSize={() => 44} renderItem={item => <div style={{padding:12}}>{item}</div>} />
```


## API: ScrollArea


```typescript
ScrollArea: <TItem = unknown>(props: ScrollAreaProps<TItem> & React.RefAttributes<HTMLDivElement>) => React.ReactElement
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| estimateSize | (index: number) => number | Yes | Estimate each row's size for virtualization. |
| items | TItem[] | Yes | Collection of items to render. |
| renderItem | (item: TItem, index: number) => ReactNode | Yes | Function building each item's view. |
| virtualized | false \| true | Yes | See the published type. |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| dir | "ltr" \| "rtl" | No | Interface reading direction. |
| getItemKey | ((index: number) => Key) | No | Return a stable key for each item. |
| horizontal | boolean | No | See the published type. |
| id | string | No | Element identifier; associates labels and descriptions. |
| initialRect | Rect | No | See the published type. |
| itemClassName | string \| ((item: TItem, index: number) => string) | No | See the published type. |
| measureItems | boolean | No | See the published type. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| overscan | number | No | Extra items mounted outside the visible area. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| scrollHideDelay | number | No | See the published type. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| type | "auto" \| "hover" \| "always" \| "scroll" | No | Operation type or mode; values depend on the component. |
| viewportClassName | string | No | See the published type. |

## API: ScrollBar


```typescript
ScrollBar: React.ForwardRefExoticComponent<ScrollBarProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| asChild | boolean | No | Apply props and behavior to a single compatible child element. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| forceMount | true | No | See the published type. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| orientation | "horizontal" \| "vertical" | No | Horizontal or vertical axis. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/scroll-area


---

# Barcode

Barcodes and QR codes in one component.

## How to use it

format defines the encoding. EAN and UPC require valid values and check digits. onError and fallback handle invalid input.



## Import


```tsx
import { Barcode } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Barcode value="KIVORA-2026" format="code128" width={280} displayValue />
```


## QR code

```tsx
<Barcode format="qrcode" value="https://kivora.pro" width={180} height={180} />
```


## EAN-13

```tsx
<Barcode value="5901234123457" format="ean13" width={280} displayValue />
```


## API: Barcode


```typescript
Barcode: React.ForwardRefExoticComponent<BarcodeProps & React.RefAttributes<HTMLDivElement>>
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| value | string | Yes | Controlled value. Update it from the change callback. |
| aria-label | string | No | Accessible name of the control. |
| background | string | No | Opaque #RRGGBB background color. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| displayValue | boolean | No | Show the code's readable value. |
| errorCorrectionLevel | "L" \| "M" \| "Q" \| "H" | No | QR error correction level. |
| fallback | ReactNode | No | Alternative content when the main content cannot be displayed. |
| foreground | string | No | Opaque #RRGGBB color for modules. |
| format | "qrcode" \| "code128" \| "code39" \| "ean13" \| "ean8" \| "upca" \| "interleaved2of5" \| "datamatrix" \| "pdf417" \| "azteccode" | No | Barcode format. |
| height | number | No | Output height. |
| id | string | No | Element identifier; associates labels and descriptions. |
| margin | number | No | Code margin. Keep a sufficient quiet zone. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onError | ((error: Error) => void) | No | Receives errors for the application to handle. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |
| width | number | No | Output width. |

Source: https://www.kivora.pro/docs/componentes/barcode


---

# FileUpload

File selection and transfers with progress.

## How to use it

Create a stable UploadController and release its resources on unmount. Simple mode supports custom transport; advanced uses a Tus endpoint and confirms uploads from the dashboard.

Opening the modal and selecting, editing or removing files do not require a server. Advanced mode does not support createTask: it uses Tus transport and starts transfers only when Upload is pressed. /api/uploads is an example path, not a configured server. Remote sources require Companion and its server credentials.

## Import


```tsx
import { FileUpload, FileUploadStatus } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
function Example() {
 const [controller] = useState(() => new UploadController({
   endpoint: "/api/uploads",
   autoStart: false
 }));
 useEffect(() => () => { void controller.dispose(); }, [controller]);
 return <div><Toaster /><FileUpload variant="advanced" controller={controller} locale="en" /><p style={{fontSize:12,marginTop:16}}>Select, edit and remove files locally. To upload them, connect a Tus endpoint at /api/uploads.</p></div>;
}
```


## API: FileUpload


```typescript
declare function FileUpload(props: FileUploadProps): React.JSX.Element;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| controller | UploadController | Yes | Stable instance managing the session and its resources. |
| accept | string | No | Accepted file types. |
| camera | boolean | No | Enable supported camera sources. |
| dashboard | UploadDashboardOptions | No | Configure advanced dashboard sources and options. |
| locale | string | No | Localization in the format expected by the component. |
| messages | Partial<{ uploadedFiles: string; startUpload: string; remove: string; clearAll: string; reviewHint: string; grid: string; list: string; retry: string; edit: string; addMore: string; choose: string; title: string; sources: string; files: string; camera: string; hint: string; drop: string; back: string; close: string; open: string; loading: string; cancel: string; photo: string; cameraPreview: string; cameraError: string; captureError: string; selectionError: string; ready: string; uploading: string; paused: string; success: string; error: string; canceled: string; upload: string; dismiss: string; preview: string; }> | No | Localized messages replacing the defaults. |
| showStatus | boolean | No | Show built-in upload status. |
| sources | FileUploadSource[] | No | See the published type. |
| variant | "simple" \| "advanced" | No | Visual variant. Use a value supported by this component. |

## API: FileUploadStatus


```typescript
declare function FileUploadStatus({ controller, locale, messages }: {
    controller: UploadController;
} & UploadLocaleOptions): null;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| controller | UploadController | Yes | Stable instance managing the session and its resources. |
| locale | string | No | Localization in the format expected by the component. |
| messages | Partial<{ uploadedFiles: string; startUpload: string; remove: string; clearAll: string; reviewHint: string; grid: string; list: string; retry: string; edit: string; addMore: string; choose: string; title: string; sources: string; files: string; camera: string; hint: string; drop: string; back: string; close: string; open: string; loading: string; cancel: string; photo: string; cameraPreview: string; cameraError: string; captureError: string; selectionError: string; ready: string; uploading: string; paused: string; success: string; error: string; canceled: string; upload: string; dismiss: string; preview: string; }> | No | Localized messages replacing the defaults. |

Source: https://www.kivora.pro/docs/componentes/file-upload


---

# Player

Video and audio with controls, tracks and adaptive playback.

## How to use it

Pass source with id and src. Use a supported media URL with CORS when necessary. Configure controls and advanced features through props.

The demo uses a local site video. DRM requires a license server; HLS/DASH sources, ads and downloads depend on service and browser configuration.

## Import


```tsx
import { Player } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<Player source={{id:"demo",src:"/truck.mp4",type:"video",title:"Kivora · In motion"}} style={{width:"100%",maxWidth:520}} />
```


## API: Player


```typescript
declare function Player({ source, controller: provided, options, locale, messages, overlays, controlsVariant, program, queue, activeQueueId, onQueueSelect, presentation, autoPlay, settingsLayout, muted, className, ...props }: PlayerProps): React.JSX.Element;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| source | PlayerSource | Yes | Media source with id, src, title and playback options. |
| activeQueueId | string | No | See the published type. |
| aria-label | string | No | Accessible name of the control. |
| autoPlay | boolean | No | Request automatic playback; subject to browser policies. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| controller | PlayerController | No | Stable instance managing the session and its resources. |
| controlsVariant | "standard" \| "compact" \| "cinema" \| "series" | No | Presentation of player controls. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| locale | string | No | Localization in the format expected by the component. |
| messages | Partial<{ play: string; pause: string; seek: string; volume: string; mute: string; unmute: string; fullscreen: string; exitFullscreen: string; pip: string; settings: string; quality: string; audio: string; subtitles: string; speed: string; auto: string; off: string; live: string; goLive: string; loading: string; splash: string; ad: string; containsAds: string; skipAd: string; error: string; retry: string; download: string; cancelDownload: string; downloads: string; remove: string; playOffline: string; downloading: string; close: string; expand: string; collapse: string; exportFile: string; emptyDownloads: string; expired: string; back: string; forward: string; downloadError: string; actionError: string; upNext: string; nowPlaying: string; episodes: string; previous: string; next: string; }> | No | Localized messages replacing the defaults. |
| muted | boolean | No | Start or keep playback muted. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onQueueSelect | ((item: PlayerQueueItem) => void) | No | See the published type. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| options | PlayerControllerOptions | No | Component options or configuration. See the type structure. |
| overlays | PlayerOverlay[] | No | See the published type. |
| presentation | "footer" \| "inline" \| "sheet" | No | Audio players can live in the footer and expand into a bottom sheet. |
| program | PlayerProgram | No | See the published type. |
| queue | PlayerQueueItem[] | No | See the published type. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| settingsLayout | "list" \| "tabs" | No | Mobile settings presentation; list preserves the previous layout. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/player


---

# AudioPlayerProvider

Keep an audio session across page changes.

## How to use it

Mount it in a persistent layout. useAudioPlayer returns play and close to control the session from descendants.

To start audio, call play({ id: "track", src: "/audio.mp3", type: "audio", title: "My track" }) with an existing file. The provider must sit above pages that share playback.

## Import


```tsx
import { AudioPlayerProvider } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
function Example() {
 function Controls() {
 const { close } = useAudioPlayer();
 return <Button variant="outline" onClick={close}>Close audio session</Button>;
 }
 return <AudioPlayerProvider><Controls /></AudioPlayerProvider>;
}
```


## API: AudioPlayerProvider


```typescript
declare function AudioPlayerProvider({ children, ...props }: React.PropsWithChildren<Omit<PlayerProps, 'source' | 'controller' | 'autoPlay'>>): React.JSX.Element;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| activeQueueId | string | No | See the published type. |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| controlsVariant | "standard" \| "compact" \| "cinema" \| "series" | No | Presentation of player controls. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| id | string | No | Element identifier; associates labels and descriptions. |
| locale | string | No | Localization in the format expected by the component. |
| messages | Partial<{ play: string; pause: string; seek: string; volume: string; mute: string; unmute: string; fullscreen: string; exitFullscreen: string; pip: string; settings: string; quality: string; audio: string; subtitles: string; speed: string; auto: string; off: string; live: string; goLive: string; loading: string; splash: string; ad: string; containsAds: string; skipAd: string; error: string; retry: string; download: string; cancelDownload: string; downloads: string; remove: string; playOffline: string; downloading: string; close: string; expand: string; collapse: string; exportFile: string; emptyDownloads: string; expired: string; back: string; forward: string; downloadError: string; actionError: string; upNext: string; nowPlaying: string; episodes: string; previous: string; next: string; }> | No | Localized messages replacing the defaults. |
| muted | boolean | No | Start or keep playback muted. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onQueueSelect | ((item: PlayerQueueItem) => void) | No | See the published type. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| options | PlayerControllerOptions | No | Component options or configuration. See the type structure. |
| overlays | PlayerOverlay[] | No | See the published type. |
| presentation | "footer" \| "inline" \| "sheet" | No | Audio players can live in the footer and expand into a bottom sheet. |
| program | PlayerProgram | No | See the published type. |
| queue | PlayerQueueItem[] | No | See the published type. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| settingsLayout | "list" \| "tabs" | No | Mobile settings presentation; list preserves the previous layout. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/audio-player-provider


---

# DirectionProvider

Shared reading direction for LTR and RTL interfaces.

## How to use it

Use dir="rtl" for right-to-left languages. Your application must translate the content.



## Import


```tsx
import { DirectionProvider } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<DirectionProvider dir="rtl"><div dir="rtl" style={{width:320}}><Button>مرحبا</Button><p style={{marginTop:12}}>واجهة من اليمين إلى اليسار</p></div></DirectionProvider>
```


## API: DirectionProvider


```typescript
declare function DirectionProvider({ children, className, dir }: DirectionProviderProps): React.JSX.Element;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| dir | "ltr" \| "rtl" | No | Interface reading direction. |

Source: https://www.kivora.pro/docs/componentes/direction-provider


---

# KivoraProvider

Theme and color mode context for your application.

## How to use it

Mount it in a layout Client Component. colorMode updates the document's dark class. themeOverrides changes the context object; customize CSS colors with variables.

The provider is already mounted in this documentation. Avoid nesting providers with different color modes: both update the document's dark class.

## Import


```tsx
import { KivoraProvider } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
<div><Badge variant="secondary">Shared theme</Badge><p style={{marginTop:16}}>This playground is already inside KivoraProvider. Change the theme using the controls above.</p></div>
```


## API: KivoraProvider


```typescript
declare function KivoraProvider({ children, colorMode, theme, themeOverrides }: KivoraProviderProps): React.JSX.Element;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | ReactNode | Yes | Content or child elements of the component. |
| colorMode | "light" \| "dark" \| "system" | No | Light, dark or system preference mode. |
| theme | string | No | Component theme or theme identifier, depending on the API. |
| themeOverrides | { color?: { background?: string; foreground?: string; card?: string; cardForeground?: string; popover?: string; popoverForeground?: string; primary?: string; primaryForeground?: string; secondary?: string; secondaryForeground?: string; muted?: string; mutedForeground?: string; accent?: string; accentForeground?: string; destructive?: string; destructiveForeground?: string; border?: string; input?: string; ring?: string; }; radius?: { sm?: string; md?: string; lg?: string; xl?: string; }; spacing?: { xs?: number; sm?: number; md?: number; lg?: number; xl?: number; }; fontSize?: { sm?: number; base?: number; lg?: number; }; } | No | Changes to the theme object; does not generate CSS variables. |

Source: https://www.kivora.pro/docs/componentes/kivora-provider


---

# AnimatedLoader

Animated dots or bars while an operation is pending.

## How to use it

Choose dots or bars and configure duration, size, color, and label. It loops while mounted and active. Render it conditionally from loading state; disabled stops motion but keeps the indicator visible.

It exposes role="status" and label as its accessible name. Translate label in your application. It does not accept delay, stagger, or replayKey; duration is in milliseconds.

## Import


```tsx
import { AnimatedLoader } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
function Example() {
  const [loading, setLoading] = useState(true);
  return <div style={{ display: "grid", gap: 20 }}>
    {loading ? <AnimatedLoader variant="dots" duration={700} size={8} label="Saving" /> : <p role="status">Loading complete</p>}
    <Button type="button" variant="outline" onClick={() => setLoading(!loading)}>{loading ? "Finish loading" : "Start loading"}</Button>
  </div>;
}
```


## Bars

```tsx
<AnimatedLoader variant="bars" duration={900} size={10} label="Saving" />
```


## Without motion

```tsx
<AnimatedLoader variant="dots" disabled label="Saving" />
```


## API: AnimatedLoader


```typescript
declare function AnimatedLoader({ variant, label, color, size, duration, disabled }: AnimatedLoaderProps): React.JSX.Element;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| color | string | No | See the published type. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| duration | number | No | Animation duration in milliseconds. |
| label | string | No | Text or accessible label. |
| size | number | No | Visual size of the component. |
| variant | "dots" \| "bars" | No | Visual variant. Use a value supported by this component. |

Source: https://www.kivora.pro/docs/componentes/animated-loader


---

# AnimatedPath

Progressively draw an SVG path.

## How to use it

Provide d and a viewBox containing the path. size controls the SVG size; color and strokeWidth control the stroke. Add label when it conveys information; without label it is decorative. Web calculates the length automatically.

It does not perform morphing. React Native requires pathLength with the full path length in SVG units; that property is not part of the web API.

## Import


```tsx
import { AnimatedPath } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
function Example() {
  const [replay, setReplay] = useState(0);
  return <div style={{ display: "grid", gap: 20 }}>
    <AnimatedPath d="M5 12 L10 17 L20 7" label="Completed" size={64} duration={1000} replayKey={replay} />
    <Button type="button" variant="outline" onClick={() => setReplay(replay + 1)}>Replay animation</Button>
  </div>;
}
```


## Decorative path

```tsx
<AnimatedPath d="M2 12 Q12 2 22 12 T42 12" viewBox="0 0 44 24" size={96} duration={1400} />
```


## Without motion

```tsx
<AnimatedPath d="M5 12 L10 17 L20 7" label="Completed" disabled />
```


## API: AnimatedPath


```typescript
declare function AnimatedPath({ d, viewBox, size, color, strokeWidth, label, duration, delay, replayKey, disabled }: AnimatedPathProps): React.JSX.Element;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| d | string | Yes | SVG path commands to draw. |
| color | string | No | See the published type. |
| delay | number | No | Delay before the entrance, in milliseconds. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| duration | number | No | Animation duration in milliseconds. |
| label | string | No | Text or accessible label. |
| replayKey | string \| number | No | Change this value to replay the entrance animation. |
| size | number | No | Visual size of the component. |
| strokeWidth | number | No | See the published type. |
| viewBox | string | No | SVG coordinate system and bounds. |

Source: https://www.kivora.pro/docs/componentes/animated-path


---

# AnimatedText

Text that appears by word or character while remaining accessible.

## How to use it

children must be a string. split="words" is the default; stagger sets the timing offset in milliseconds. Use replayKey to replay. The complete sentence is exposed to accessibility while visual fragments are hidden from screen readers.

Character splitting uses Unicode code points, not graphemes. Use words for compound emoji or scripts with ligatures. Keep a semantic heading or paragraph around the component.

## Import


```tsx
import { AnimatedText } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
function Example() {
  const [replay, setReplay] = useState(0);
  return <div style={{ display: "grid", gap: 20 }}>
    <h2><AnimatedText split="words" preset="fade-up" duration={400} stagger={80} replayKey={replay}>Your next idea, in motion.</AnimatedText></h2>
    <Button type="button" variant="outline" onClick={() => setReplay(replay + 1)}>Replay animation</Button>
  </div>;
}
```


## By characters

```tsx
function Example() {
  const [replay, setReplay] = useState(0);
  return <div style={{ display: "grid", gap: 20 }}>
    <h2><AnimatedText split="characters" preset="fade-up" duration={400} stagger={40} replayKey={replay}>Your next idea, in motion.</AnimatedText></h2>
    <Button type="button" variant="outline" onClick={() => setReplay(replay + 1)}>Replay animation</Button>
  </div>;
}
```


## Without motion

```tsx
<AnimatedText disabled>Visible content without motion</AnimatedText>
```


## API: AnimatedText


```typescript
declare function AnimatedText({ children, split, preset, stagger, duration, delay, replayKey, disabled, ...props }: AnimatedTextProps): React.JSX.Element;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| children | string | Yes | Content or child elements of the component. |
| aria-label | string | No | Accessible name of the control. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| delay | number | No | Delay before the entrance, in milliseconds. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| duration | number | No | Animation duration in milliseconds. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLSpanElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLSpanElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLSpanElement> | No | Form submission event. |
| preset | "fade" \| "fade-up" \| "fade-down" \| "scale" | No | Entrance effect: fade, fade-up, fade-down, or scale. |
| replayKey | string \| number | No | Change this value to replay the entrance animation. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| split | "words" \| "characters" | No | Split text into words or Unicode code points. |
| stagger | number | No | Timing offset between text fragments, in milliseconds. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/animated-text


---

# Animation

Gentle entrances for cards and any content.

## How to use it

Choose fade, fade-up, fade-down, or scale. duration and delay are in milliseconds. The entrance runs on mount; change replayKey to replay it. Styles apply to the outer wrapper and motion to the inner wrapper.

disabled and the reduced-motion preference show the final state. This API covers entrances, not exits or scroll-driven animations.

## Import


```tsx
import { Animation } from "@kivora/nextjs";
```


Examples run in a Client Component. Also import the hooks, icons and dependencies used. This is the web API; consult the native guide for React Native.

## Example


```tsx
function Example() {
  const [replay, setReplay] = useState(0);
  return <div style={{ display: "grid", gap: 20 }}>
    <Animation preset="fade-up" duration={600} delay={0} replayKey={replay}>
      <Card><CardContent style={{ padding: 24 }}>A gentle entrance</CardContent></Card>
    </Animation>
    <Button type="button" variant="outline" onClick={() => setReplay(replay + 1)}>Replay animation</Button>
  </div>;
}
```


## Entrance presets

```tsx
<div style={{ display: "grid", gap: 16 }}>{(["fade", "fade-up", "fade-down", "scale"] as const).map(preset => <Animation key={preset} preset={preset} duration={800}><Badge variant="secondary">{preset}</Badge></Animation>)}</div>
```


## Without motion

```tsx
<Animation disabled><Card><CardContent style={{ padding: 24 }}>Visible content without motion</CardContent></Card></Animation>
```


## API: Animation


```typescript
declare function Animation({ preset, duration, delay, replayKey, disabled, children, ...props }: AnimationProps): React.JSX.Element;
```


| Property | Type | Required | Description |
| --- | --- | --- | --- |
| aria-label | string | No | Accessible name of the control. |
| children | ReactNode | No | Content or child elements of the component. |
| className | string | No | Additional CSS classes to customize the element. |
| defaultChecked | boolean | No | Initial selection of the control. |
| defaultValue | string \| number \| readonly string[] | No | Initial value when the component manages its own state. |
| delay | number | No | Delay before the entrance, in milliseconds. |
| disabled | boolean | No | Disable control interaction or animation motion. |
| duration | number | No | Animation duration in milliseconds. |
| id | string | No | Element identifier; associates labels and descriptions. |
| onChange | ChangeEventHandler<HTMLDivElement, Element> | No | Change event. Check the type: some controls return an object, others a DOM event. |
| onClick | MouseEventHandler<HTMLDivElement> | No | Action performed when the element is activated. |
| onSubmit | SubmitEventHandler<HTMLDivElement> | No | Form submission event. |
| preset | "fade" \| "fade-up" \| "fade-down" \| "scale" | No | Entrance effect: fade, fade-up, fade-down, or scale. |
| replayKey | string \| number | No | Change this value to replay the entrance animation. |
| role | AriaRole | No | Semantic role of the element. Keep the default role unless a change is justified. |
| style | CSSProperties | No | React inline styles. |
| tabIndex | number | No | Keyboard focus order and availability. |
| title | string | No | Title or supplementary information. |

Source: https://www.kivora.pro/docs/componentes/animation
