---
name: "@kanpeki"
slug: "kanpeki"
description: "Kanpeki is a copy-paste component collection (not an npm package) built on React Aria Components and styled with Tailwind CSS, following the same ethos as shadcn/ui but replacing Radix UI with React Aria for superior accessibility. Ships 50+ components including Accordion, Autocomplete, Calendar, Chart, Combobox, Data Table, Date Picker, Dropzone, Input OTP, List Box, Pagination, Toast, and Toggle Group, plus full form-builder support and dark mode. Beta stage. Use for: projects that require WCAG-compliant, keyboard-navigable components grounded in React Aria rather than Radix, while keeping the shadcn copy-paste ownership model."
category: "Component library (general)"
tags: ["accessibility", "aesthetic", "animation", "auth", "buttons", "cards", "charts", "components", "dashboard", "forms", "hooks", "icons", "loaders", "media", "mobile", "navigation", "overlays", "tables", "theming"]
framework: "react"
license: "MIT"
author: "fellipeutaka"
website: "https://kanpeki.vercel.app"
github: "https://github.com/fellipeutaka/kanpeki"
registry: "https://kanpeki.vercel.app/r/registry.json"
pro: false
pro_url: null
github_stars: 33
component_count: 250
generated_at: "2026-07-28T08:59:05.895Z"
---

# @kanpeki

Kanpeki is a copy-paste component collection (not an npm package) built on React Aria Components and styled with Tailwind CSS, following the same ethos as shadcn/ui but replacing Radix UI with React Aria for superior accessibility. Ships 50+ components including Accordion, Autocomplete, Calendar, Chart, Combobox, Data Table, Date Picker, Dropzone, Input OTP, List Box, Pagination, Toast, and Toggle Group, plus full form-builder support and dark mode. Beta stage. Use for: projects that require WCAG-compliant, keyboard-navigable components grounded in React Aria rather than Radix, while keeping the shadcn copy-paste ownership model.

## Links

- Website: https://kanpeki.vercel.app
- GitHub: https://github.com/fellipeutaka/kanpeki
- Registry JSON: https://kanpeki.vercel.app/r/registry.json
- Directory page: https://sh4dcn.vercel.app/registry/kanpeki
- This file: https://sh4dcn.vercel.app/md/kanpeki.md

## Install

```sh
# add the whole registry (shadcn CLI)
npx shadcn@latest add https://kanpeki.vercel.app/r/registry.json
pnpm dlx shadcn@latest add https://kanpeki.vercel.app/r/registry.json
bunx shadcn@latest add https://kanpeki.vercel.app/r/registry.json
# clone the source repo
git clone https://github.com/fellipeutaka/kanpeki.git
# fetch the raw registry index
curl -s https://kanpeki.vercel.app/r/registry.json
```

## Components (250)

| name | type | description | install |
| --- | --- | --- | --- |
| accordion | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/accordion.json` |
| alert | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/alert.json` |
| aspect-ratio | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/aspect-ratio.json` |
| autocomplete | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/autocomplete.json` |
| avatar | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/avatar.json` |
| badge | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/badge.json` |
| breadcrumb | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/breadcrumb.json` |
| button | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/button.json` |
| button-group | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/button-group.json` |
| calendar | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/calendar.json` |
| card | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/card.json` |
| carousel | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/carousel.json` |
| chart | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/chart.json` |
| checkbox | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/checkbox.json` |
| collapsible | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/collapsible.json` |
| combobox | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/combobox.json` |
| date-field | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/date-field.json` |
| date-picker | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/date-picker.json` |
| dialog | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/dialog.json` |
| drawer | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/drawer.json` |
| dropzone | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/dropzone.json` |
| field | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/field.json` |
| form | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/form.json` |
| input | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/input.json` |
| input-group | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/input-group.json` |
| input-otp | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/input-otp.json` |
| keyboard | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/keyboard.json` |
| label | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/label.json` |
| link | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/link.json` |
| link-button | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/link-button.json` |
| list-box | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/list-box.json` |
| menu | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/menu.json` |
| number-field | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/number-field.json` |
| pagination | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/pagination.json` |
| popover | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/popover.json` |
| progress | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/progress.json` |
| radio-group | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/radio-group.json` |
| resizable | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/resizable.json` |
| scroll-area | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/scroll-area.json` |
| search-field | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/search-field.json` |
| select | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/select.json` |
| separator | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/separator.json` |
| sheet | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/sheet.json` |
| sidebar | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/sidebar.json` |
| skeleton | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/skeleton.json` |
| slider | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/slider.json` |
| spinner | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/spinner.json` |
| switch | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/switch.json` |
| table | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/table.json` |
| tabs | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/tabs.json` |
| textarea | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/textarea.json` |
| text-field | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/text-field.json` |
| toast | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/toast.json` |
| toggle | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/toggle.json` |
| toggle-group | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/toggle-group.json` |
| tooltip | registry:ui | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/tooltip.json` |
| cva | registry:lib | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/cva.json` |
| use-is-mobile | registry:hook | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/use-is-mobile.json` |
| accordion-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/accordion-demo.json` |
| alert-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/alert-demo.json` |
| alert-destructive-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/alert-destructive-demo.json` |
| alert-warning-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/alert-warning-demo.json` |
| aspect-ratio-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/aspect-ratio-demo.json` |
| aspect-ratio-square | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/aspect-ratio-square.json` |
| aspect-ratio-portrait | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/aspect-ratio-portrait.json` |
| autocomplete-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/autocomplete-demo.json` |
| autocomplete-dialog-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/autocomplete-dialog-demo.json` |
| avatar-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/avatar-demo.json` |
| avatar-group-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/avatar-group-demo.json` |
| badge-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/badge-demo.json` |
| badge-destructive-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/badge-destructive-demo.json` |
| badge-outline-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/badge-outline-demo.json` |
| badge-secondary-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/badge-secondary-demo.json` |
| breadcrumb-collapsed-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/breadcrumb-collapsed-demo.json` |
| breadcrumb-custom-separator-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/breadcrumb-custom-separator-demo.json` |
| breadcrumb-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/breadcrumb-demo.json` |
| breadcrumb-dropdown-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/breadcrumb-dropdown-demo.json` |
| button-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/button-demo.json` |
| button-icon-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/button-icon-demo.json` |
| button-sizes-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/button-sizes-demo.json` |
| button-variants-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/button-variants-demo.json` |
| button-group-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/button-group-demo.json` |
| button-group-orientation-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/button-group-orientation-demo.json` |
| button-group-size-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/button-group-size-demo.json` |
| button-group-nested-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/button-group-nested-demo.json` |
| button-group-separator-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/button-group-separator-demo.json` |
| button-group-split-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/button-group-split-demo.json` |
| button-group-input-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/button-group-input-demo.json` |
| button-group-input-group-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/button-group-input-group-demo.json` |
| button-group-dropdown-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/button-group-dropdown-demo.json` |
| button-group-select-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/button-group-select-demo.json` |
| button-group-popover-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/button-group-popover-demo.json` |
| calendar-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/calendar-demo.json` |
| calendar-range-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/calendar-range-demo.json` |
| card-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/card-demo.json` |
| carousel-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/carousel-demo.json` |
| carousel-size-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/carousel-size-demo.json` |
| carousel-spacing-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/carousel-spacing-demo.json` |
| carousel-orientation-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/carousel-orientation-demo.json` |
| carousel-api-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/carousel-api-demo.json` |
| carousel-plugin-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/carousel-plugin-demo.json` |
| chart-area-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/chart-area-demo.json` |
| chart-bar-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/chart-bar-demo.json` |
| chart-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/chart-demo.json` |
| chart-line-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/chart-line-demo.json` |
| checkbox-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/checkbox-demo.json` |
| checkbox-disabled-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/checkbox-disabled-demo.json` |
| checkbox-group-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/checkbox-group-demo.json` |
| collapsible-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/collapsible-demo.json` |
| combobox-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/combobox-demo.json` |
| date-field-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/date-field-demo.json` |
| date-field-disabled-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/date-field-disabled-demo.json` |
| date-picker-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/date-picker-demo.json` |
| dialog-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/dialog-demo.json` |
| dialog-scrollable-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/dialog-scrollable-demo.json` |
| alert-dialog-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/alert-dialog-demo.json` |
| drawer-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/drawer-demo.json` |
| dropzone-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/dropzone-demo.json` |
| dropzone-clickable-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/dropzone-clickable-demo.json` |
| dropzone-with-file-trigger-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/dropzone-with-file-trigger-demo.json` |
| field-checkbox-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/field-checkbox-demo.json` |
| field-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/field-demo.json` |
| field-fieldset-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/field-fieldset-demo.json` |
| field-group-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/field-group-demo.json` |
| field-input-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/field-input-demo.json` |
| field-radio-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/field-radio-demo.json` |
| field-responsive-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/field-responsive-demo.json` |
| field-select-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/field-select-demo.json` |
| field-switch-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/field-switch-demo.json` |
| field-textarea-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/field-textarea-demo.json` |
| tanstack-form-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/tanstack-form-demo.json` |
| tanstack-form-input-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/tanstack-form-input-demo.json` |
| tanstack-form-textarea-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/tanstack-form-textarea-demo.json` |
| tanstack-form-select-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/tanstack-form-select-demo.json` |
| tanstack-form-checkbox-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/tanstack-form-checkbox-demo.json` |
| tanstack-form-switch-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/tanstack-form-switch-demo.json` |
| tanstack-form-array-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/tanstack-form-array-demo.json` |
| tanstack-form-linked-fields-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/tanstack-form-linked-fields-demo.json` |
| react-aria-form-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/react-aria-form-demo.json` |
| react-aria-form-input-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/react-aria-form-input-demo.json` |
| react-aria-form-textarea-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/react-aria-form-textarea-demo.json` |
| react-aria-form-select-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/react-aria-form-select-demo.json` |
| react-aria-form-checkbox-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/react-aria-form-checkbox-demo.json` |
| react-aria-form-switch-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/react-aria-form-switch-demo.json` |
| react-aria-form-server-validation-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/react-aria-form-server-validation-demo.json` |
| react-hook-form-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/react-hook-form-demo.json` |
| react-hook-form-input-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/react-hook-form-input-demo.json` |
| react-hook-form-textarea-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/react-hook-form-textarea-demo.json` |
| react-hook-form-select-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/react-hook-form-select-demo.json` |
| react-hook-form-checkbox-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/react-hook-form-checkbox-demo.json` |
| react-hook-form-switch-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/react-hook-form-switch-demo.json` |
| react-hook-form-array-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/react-hook-form-array-demo.json` |
| react-hook-form-linked-fields-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/react-hook-form-linked-fields-demo.json` |
| hover-card-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/hover-card-demo.json` |
| input-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/input-demo.json` |
| input-file-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/input-file-demo.json` |
| input-disabled-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/input-disabled-demo.json` |
| input-with-label-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/input-with-label-demo.json` |
| input-with-button-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/input-with-button-demo.json` |
| input-group-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/input-group-demo.json` |
| input-group-icon-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/input-group-icon-demo.json` |
| input-group-text-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/input-group-text-demo.json` |
| input-group-button-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/input-group-button-demo.json` |
| input-group-tooltip-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/input-group-tooltip-demo.json` |
| input-group-textarea-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/input-group-textarea-demo.json` |
| input-group-spinner-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/input-group-spinner-demo.json` |
| input-group-label-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/input-group-label-demo.json` |
| input-group-dropdown-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/input-group-dropdown-demo.json` |
| input-group-button-group-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/input-group-button-group-demo.json` |
| input-otp-controlled-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/input-otp-controlled-demo.json` |
| input-otp-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/input-otp-demo.json` |
| input-otp-pattern-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/input-otp-pattern-demo.json` |
| input-otp-separator-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/input-otp-separator-demo.json` |
| label-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/label-demo.json` |
| link-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/link-demo.json` |
| list-box-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/list-box-demo.json` |
| menu-checkboxes-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/menu-checkboxes-demo.json` |
| menu-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/menu-demo.json` |
| menu-radio-group-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/menu-radio-group-demo.json` |
| number-field-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/number-field-demo.json` |
| pagination-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/pagination-demo.json` |
| pagination-simple-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/pagination-simple-demo.json` |
| pagination-icons-only-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/pagination-icons-only-demo.json` |
| popover-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/popover-demo.json` |
| popover-with-arrow-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/popover-with-arrow-demo.json` |
| progress-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/progress-demo.json` |
| radio-group-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/radio-group-demo.json` |
| radio-group-disabled-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/radio-group-disabled-demo.json` |
| radio-group-with-description-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/radio-group-with-description-demo.json` |
| resizable-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/resizable-demo.json` |
| resizable-vertical-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/resizable-vertical-demo.json` |
| resizable-handle-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/resizable-handle-demo.json` |
| scroll-area-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/scroll-area-demo.json` |
| scroll-area-horizontal-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/scroll-area-horizontal-demo.json` |
| select-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/select-demo.json` |
| select-infinite-scroll-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/select-infinite-scroll-demo.json` |
| select-scrollable-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/select-scrollable-demo.json` |
| select-with-label-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/select-with-label-demo.json` |
| separator-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/separator-demo.json` |
| separator-vertical-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/separator-vertical-demo.json` |
| sheet-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/sheet-demo.json` |
| sheet-side-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/sheet-side-demo.json` |
| skeleton-card-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/skeleton-card-demo.json` |
| skeleton-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/skeleton-demo.json` |
| slider-custom-stepping-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/slider-custom-stepping-demo.json` |
| slider-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/slider-demo.json` |
| slider-multiple-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/slider-multiple-demo.json` |
| slider-vertical-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/slider-vertical-demo.json` |
| slider-with-label-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/slider-with-label-demo.json` |
| spinner-color-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/spinner-color-demo.json` |
| spinner-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/spinner-demo.json` |
| spinner-size-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/spinner-size-demo.json` |
| switch-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/switch-demo.json` |
| switch-group-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/switch-group-demo.json` |
| table-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/table-demo.json` |
| tabs-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/tabs-demo.json` |
| tabs-disabled-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/tabs-disabled-demo.json` |
| tabs-vertical-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/tabs-vertical-demo.json` |
| textarea-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/textarea-demo.json` |
| textarea-disabled-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/textarea-disabled-demo.json` |
| textarea-with-label-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/textarea-with-label-demo.json` |
| textarea-with-text-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/textarea-with-text-demo.json` |
| textarea-auto-resize-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/textarea-auto-resize-demo.json` |
| textfield-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/textfield-demo.json` |
| textfield-form-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/textfield-form-demo.json` |
| textfield-password-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/textfield-password-demo.json` |
| textfield-validation-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/textfield-validation-demo.json` |
| textfield-with-description-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/textfield-with-description-demo.json` |
| textfield-with-icon-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/textfield-with-icon-demo.json` |
| toast-custom-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/toast-custom-demo.json` |
| toast-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/toast-demo.json` |
| toast-promise-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/toast-promise-demo.json` |
| toast-status-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/toast-status-demo.json` |
| toast-with-description-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/toast-with-description-demo.json` |
| toggle-custom-fill-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/toggle-custom-fill-demo.json` |
| toggle-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/toggle-demo.json` |
| toggle-disabled-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/toggle-disabled-demo.json` |
| toggle-group-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/toggle-group-demo.json` |
| toggle-large-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/toggle-large-demo.json` |
| toggle-outline-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/toggle-outline-demo.json` |
| toggle-small-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/toggle-small-demo.json` |
| toggle-group-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/toggle-group-demo.json` |
| toggle-group-outline-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/toggle-group-outline-demo.json` |
| toggle-group-single-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/toggle-group-single-demo.json` |
| toggle-group-sm-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/toggle-group-sm-demo.json` |
| toggle-group-lg-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/toggle-group-lg-demo.json` |
| toggle-group-disabled-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/toggle-group-disabled-demo.json` |
| toggle-group-spacing-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/toggle-group-spacing-demo.json` |
| tooltip-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/tooltip-demo.json` |
| tooltip-hover-card-demo | registry:example | — | `npx shadcn@latest add https://kanpeki.vercel.app/r/tooltip-hover-card-demo.json` |

## For AI agents

```text
You are adding components from @kanpeki to a shadcn-compatible project.
1. Read this file (https://sh4dcn.vercel.app/md/kanpeki.md) for the component list.
2. Fetch the machine-readable index: https://kanpeki.vercel.app/r/registry.json
3. Install a single component with its install command from the table above.
4. Full structured record: https://sh4dcn.vercel.app/json (library slug: kanpeki).
```
