@neynar/ui 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +195 -0
- package/dist/components/ui/accordion.d.ts +229 -0
- package/dist/components/ui/accordion.d.ts.map +1 -0
- package/dist/components/ui/alert-dialog.d.ts +247 -0
- package/dist/components/ui/alert-dialog.d.ts.map +1 -0
- package/dist/components/ui/alert.d.ts +187 -0
- package/dist/components/ui/alert.d.ts.map +1 -0
- package/dist/components/ui/aspect-ratio.d.ts +94 -0
- package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
- package/dist/components/ui/avatar.d.ts +244 -0
- package/dist/components/ui/avatar.d.ts.map +1 -0
- package/dist/components/ui/badge.d.ts +163 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/breadcrumb.d.ts +281 -0
- package/dist/components/ui/breadcrumb.d.ts.map +1 -0
- package/dist/components/ui/button.d.ts +129 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/calendar.d.ts +169 -0
- package/dist/components/ui/calendar.d.ts.map +1 -0
- package/dist/components/ui/card.d.ts +365 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/carousel.d.ts +369 -0
- package/dist/components/ui/carousel.d.ts.map +1 -0
- package/dist/components/ui/chart.d.ts +442 -0
- package/dist/components/ui/chart.d.ts.map +1 -0
- package/dist/components/ui/checkbox.d.ts +88 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -0
- package/dist/components/ui/collapsible.d.ts +182 -0
- package/dist/components/ui/collapsible.d.ts.map +1 -0
- package/dist/components/ui/combobox.d.ts +270 -0
- package/dist/components/ui/combobox.d.ts.map +1 -0
- package/dist/components/ui/command.d.ts +355 -0
- package/dist/components/ui/command.d.ts.map +1 -0
- package/dist/components/ui/container.d.ts +102 -0
- package/dist/components/ui/container.d.ts.map +1 -0
- package/dist/components/ui/context-menu.d.ts +339 -0
- package/dist/components/ui/context-menu.d.ts.map +1 -0
- package/dist/components/ui/date-picker.d.ts +145 -0
- package/dist/components/ui/date-picker.d.ts.map +1 -0
- package/dist/components/ui/dialog.d.ts +322 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/drawer.d.ts +154 -0
- package/dist/components/ui/drawer.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +349 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/empty-state.d.ts +133 -0
- package/dist/components/ui/empty-state.d.ts.map +1 -0
- package/dist/components/ui/hover-card.d.ts +109 -0
- package/dist/components/ui/hover-card.d.ts.map +1 -0
- package/dist/components/ui/input.d.ts +89 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/label.d.ts +93 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/menubar.d.ts +306 -0
- package/dist/components/ui/menubar.d.ts.map +1 -0
- package/dist/components/ui/navigation-menu.d.ts +318 -0
- package/dist/components/ui/navigation-menu.d.ts.map +1 -0
- package/dist/components/ui/pagination.d.ts +343 -0
- package/dist/components/ui/pagination.d.ts.map +1 -0
- package/dist/components/ui/popover.d.ts +178 -0
- package/dist/components/ui/popover.d.ts.map +1 -0
- package/dist/components/ui/progress.d.ts +64 -0
- package/dist/components/ui/progress.d.ts.map +1 -0
- package/dist/components/ui/radio-group.d.ts +144 -0
- package/dist/components/ui/radio-group.d.ts.map +1 -0
- package/dist/components/ui/resizable.d.ts +164 -0
- package/dist/components/ui/resizable.d.ts.map +1 -0
- package/dist/components/ui/scroll-area.d.ts +82 -0
- package/dist/components/ui/scroll-area.d.ts.map +1 -0
- package/dist/components/ui/select.d.ts +316 -0
- package/dist/components/ui/select.d.ts.map +1 -0
- package/dist/components/ui/separator.d.ts +80 -0
- package/dist/components/ui/separator.d.ts.map +1 -0
- package/dist/components/ui/sheet.d.ts +346 -0
- package/dist/components/ui/sheet.d.ts.map +1 -0
- package/dist/components/ui/sidebar.d.ts +1561 -0
- package/dist/components/ui/sidebar.d.ts.map +1 -0
- package/dist/components/ui/skeleton.d.ts +66 -0
- package/dist/components/ui/skeleton.d.ts.map +1 -0
- package/dist/components/ui/slider.d.ts +95 -0
- package/dist/components/ui/slider.d.ts.map +1 -0
- package/dist/components/ui/sonner.d.ts +101 -0
- package/dist/components/ui/sonner.d.ts.map +1 -0
- package/dist/components/ui/stack.d.ts +192 -0
- package/dist/components/ui/stack.d.ts.map +1 -0
- package/dist/components/ui/stories/accordion.stories.d.ts +71 -0
- package/dist/components/ui/stories/accordion.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/alert-dialog.stories.d.ts +39 -0
- package/dist/components/ui/stories/alert-dialog.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/alert.stories.d.ts +48 -0
- package/dist/components/ui/stories/alert.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/aspect-ratio.stories.d.ts +53 -0
- package/dist/components/ui/stories/aspect-ratio.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/avatar.stories.d.ts +49 -0
- package/dist/components/ui/stories/avatar.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/badge.stories.d.ts +64 -0
- package/dist/components/ui/stories/badge.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/breadcrumb.stories.d.ts +27 -0
- package/dist/components/ui/stories/breadcrumb.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/button.stories.d.ts +92 -0
- package/dist/components/ui/stories/button.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/calendar.stories.d.ts +94 -0
- package/dist/components/ui/stories/calendar.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/card.stories.d.ts +29 -0
- package/dist/components/ui/stories/card.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/carousel.stories.d.ts +42 -0
- package/dist/components/ui/stories/carousel.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/chart.stories.d.ts +51 -0
- package/dist/components/ui/stories/chart.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/checkbox.stories.d.ts +72 -0
- package/dist/components/ui/stories/checkbox.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/cn.stories.d.ts +19 -0
- package/dist/components/ui/stories/cn.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/collapsible.stories.d.ts +51 -0
- package/dist/components/ui/stories/collapsible.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/colors.stories.d.ts +31 -0
- package/dist/components/ui/stories/colors.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/combobox.stories.d.ts +89 -0
- package/dist/components/ui/stories/combobox.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/command.stories.d.ts +69 -0
- package/dist/components/ui/stories/command.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/container.stories.d.ts +42 -0
- package/dist/components/ui/stories/container.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/context-menu.stories.d.ts +32 -0
- package/dist/components/ui/stories/context-menu.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/date-picker.stories.d.ts +67 -0
- package/dist/components/ui/stories/date-picker.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/dialog.stories.d.ts +48 -0
- package/dist/components/ui/stories/dialog.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/drawer.stories.d.ts +33 -0
- package/dist/components/ui/stories/drawer.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/dropdown-menu.stories.d.ts +31 -0
- package/dist/components/ui/stories/dropdown-menu.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/empty-state.stories.d.ts +74 -0
- package/dist/components/ui/stories/empty-state.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/hover-card.stories.d.ts +35 -0
- package/dist/components/ui/stories/hover-card.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/input.stories.d.ts +69 -0
- package/dist/components/ui/stories/input.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/label.stories.d.ts +47 -0
- package/dist/components/ui/stories/label.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/menubar.stories.d.ts +39 -0
- package/dist/components/ui/stories/menubar.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/navigation-menu.stories.d.ts +44 -0
- package/dist/components/ui/stories/navigation-menu.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/pagination.stories.d.ts +33 -0
- package/dist/components/ui/stories/pagination.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/popover.stories.d.ts +36 -0
- package/dist/components/ui/stories/popover.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/progress.stories.d.ts +38 -0
- package/dist/components/ui/stories/progress.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/radio-group.stories.d.ts +76 -0
- package/dist/components/ui/stories/radio-group.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/resizable.stories.d.ts +49 -0
- package/dist/components/ui/stories/resizable.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/scroll-area.stories.d.ts +35 -0
- package/dist/components/ui/stories/scroll-area.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/select.stories.d.ts +51 -0
- package/dist/components/ui/stories/select.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/separator.stories.d.ts +58 -0
- package/dist/components/ui/stories/separator.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/sheet.stories.d.ts +43 -0
- package/dist/components/ui/stories/sheet.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/sidebar.stories.d.ts +60 -0
- package/dist/components/ui/stories/sidebar.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/skeleton.stories.d.ts +42 -0
- package/dist/components/ui/stories/skeleton.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/slider.stories.d.ts +99 -0
- package/dist/components/ui/stories/slider.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/sonner.stories.d.ts +9 -0
- package/dist/components/ui/stories/sonner.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/stack.stories.d.ts +39 -0
- package/dist/components/ui/stories/stack.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/switch.stories.d.ts +71 -0
- package/dist/components/ui/stories/switch.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/table.stories.d.ts +40 -0
- package/dist/components/ui/stories/table.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/tabs.stories.d.ts +62 -0
- package/dist/components/ui/stories/tabs.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/text-field.stories.d.ts +78 -0
- package/dist/components/ui/stories/text-field.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/textarea.stories.d.ts +57 -0
- package/dist/components/ui/stories/textarea.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/theme-toggle.stories.d.ts +71 -0
- package/dist/components/ui/stories/theme-toggle.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/theme.stories.d.ts +51 -0
- package/dist/components/ui/stories/theme.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/toggle-group.stories.d.ts +71 -0
- package/dist/components/ui/stories/toggle-group.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/toggle.stories.d.ts +78 -0
- package/dist/components/ui/stories/toggle.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/tooltip.stories.d.ts +37 -0
- package/dist/components/ui/stories/tooltip.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/typography.stories.d.ts +137 -0
- package/dist/components/ui/stories/typography.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/use-mobile.stories.d.ts +20 -0
- package/dist/components/ui/stories/use-mobile.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/use-theme.stories.d.ts +23 -0
- package/dist/components/ui/stories/use-theme.stories.d.ts.map +1 -0
- package/dist/components/ui/switch.d.ts +84 -0
- package/dist/components/ui/switch.d.ts.map +1 -0
- package/dist/components/ui/table.d.ts +321 -0
- package/dist/components/ui/table.d.ts.map +1 -0
- package/dist/components/ui/tabs.d.ts +260 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/text-field.d.ts +157 -0
- package/dist/components/ui/text-field.d.ts.map +1 -0
- package/dist/components/ui/textarea.d.ts +84 -0
- package/dist/components/ui/textarea.d.ts.map +1 -0
- package/dist/components/ui/theme-toggle.d.ts +105 -0
- package/dist/components/ui/theme-toggle.d.ts.map +1 -0
- package/dist/components/ui/theme.d.ts +110 -0
- package/dist/components/ui/theme.d.ts.map +1 -0
- package/dist/components/ui/toggle-group.d.ts +133 -0
- package/dist/components/ui/toggle-group.d.ts.map +1 -0
- package/dist/components/ui/toggle.d.ts +84 -0
- package/dist/components/ui/toggle.d.ts.map +1 -0
- package/dist/components/ui/tooltip.d.ts +202 -0
- package/dist/components/ui/tooltip.d.ts.map +1 -0
- package/dist/components/ui/typography.d.ts +287 -0
- package/dist/components/ui/typography.d.ts.map +1 -0
- package/dist/hooks/use-mobile.d.ts +74 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -0
- package/dist/hooks/use-theme.d.ts +142 -0
- package/dist/hooks/use-theme.d.ts.map +1 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27498 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/utils.d.ts +43 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/docs/llm/colors.md +273 -0
- package/docs/llm/components/buttons.md +68 -0
- package/docs/llm/components/cards.md +53 -0
- package/docs/llm/components/display.md +134 -0
- package/docs/llm/components/feedback.md +96 -0
- package/docs/llm/components/forms.md +90 -0
- package/docs/llm/components/layout.md +59 -0
- package/docs/llm/components/menus.md +70 -0
- package/docs/llm/components/navigation.md +80 -0
- package/docs/llm/components/overlays.md +83 -0
- package/docs/llm/components/tables.md +73 -0
- package/docs/llm/components/typography.md +199 -0
- package/docs/llm/components/utilities.md +114 -0
- package/docs/llm/guide.md +165 -0
- package/llms.txt +122 -0
- package/package.json +104 -0
- package/src/components/ui/accordion.tsx +285 -0
- package/src/components/ui/alert-dialog.tsx +387 -0
- package/src/components/ui/alert.tsx +243 -0
- package/src/components/ui/aspect-ratio.tsx +99 -0
- package/src/components/ui/avatar.tsx +288 -0
- package/src/components/ui/badge.tsx +205 -0
- package/src/components/ui/breadcrumb.tsx +378 -0
- package/src/components/ui/button.tsx +195 -0
- package/src/components/ui/calendar.tsx +371 -0
- package/src/components/ui/card.tsx +447 -0
- package/src/components/ui/carousel.tsx +624 -0
- package/src/components/ui/chart.tsx +802 -0
- package/src/components/ui/checkbox.tsx +113 -0
- package/src/components/ui/collapsible.tsx +207 -0
- package/src/components/ui/combobox.tsx +373 -0
- package/src/components/ui/command.tsx +518 -0
- package/src/components/ui/container.tsx +114 -0
- package/src/components/ui/context-menu.tsx +563 -0
- package/src/components/ui/date-picker.tsx +213 -0
- package/src/components/ui/dialog.tsx +447 -0
- package/src/components/ui/drawer.tsx +273 -0
- package/src/components/ui/dropdown-menu.tsx +578 -0
- package/src/components/ui/empty-state.tsx +145 -0
- package/src/components/ui/hover-card.tsx +144 -0
- package/src/components/ui/input.tsx +106 -0
- package/src/components/ui/label.tsx +110 -0
- package/src/components/ui/menubar.tsx +553 -0
- package/src/components/ui/navigation-menu.tsx +471 -0
- package/src/components/ui/pagination.tsx +456 -0
- package/src/components/ui/popover.tsx +216 -0
- package/src/components/ui/progress.tsx +88 -0
- package/src/components/ui/radio-group.tsx +183 -0
- package/src/components/ui/resizable.tsx +209 -0
- package/src/components/ui/scroll-area.tsx +132 -0
- package/src/components/ui/select.tsx +485 -0
- package/src/components/ui/separator.tsx +101 -0
- package/src/components/ui/sheet.tsx +495 -0
- package/src/components/ui/sidebar.tsx +2211 -0
- package/src/components/ui/skeleton.tsx +76 -0
- package/src/components/ui/slider.tsx +147 -0
- package/src/components/ui/sonner.tsx +120 -0
- package/src/components/ui/stack.tsx +180 -0
- package/src/components/ui/stories/accordion.stories.tsx +429 -0
- package/src/components/ui/stories/alert-dialog.stories.tsx +519 -0
- package/src/components/ui/stories/alert.stories.tsx +228 -0
- package/src/components/ui/stories/aspect-ratio.stories.tsx +200 -0
- package/src/components/ui/stories/avatar.stories.tsx +317 -0
- package/src/components/ui/stories/badge.stories.tsx +260 -0
- package/src/components/ui/stories/breadcrumb.stories.tsx +482 -0
- package/src/components/ui/stories/button.stories.tsx +266 -0
- package/src/components/ui/stories/calendar.stories.tsx +375 -0
- package/src/components/ui/stories/card.stories.tsx +308 -0
- package/src/components/ui/stories/carousel.stories.tsx +328 -0
- package/src/components/ui/stories/chart.stories.tsx +430 -0
- package/src/components/ui/stories/checkbox.stories.tsx +297 -0
- package/src/components/ui/stories/cn.stories.tsx +433 -0
- package/src/components/ui/stories/collapsible.stories.tsx +256 -0
- package/src/components/ui/stories/colors.stories.tsx +502 -0
- package/src/components/ui/stories/combobox.stories.tsx +301 -0
- package/src/components/ui/stories/command.stories.tsx +632 -0
- package/src/components/ui/stories/container.stories.tsx +250 -0
- package/src/components/ui/stories/context-menu.stories.tsx +446 -0
- package/src/components/ui/stories/date-picker.stories.tsx +378 -0
- package/src/components/ui/stories/dialog.stories.tsx +535 -0
- package/src/components/ui/stories/drawer.stories.tsx +364 -0
- package/src/components/ui/stories/dropdown-menu.stories.tsx +374 -0
- package/src/components/ui/stories/empty-state.stories.tsx +244 -0
- package/src/components/ui/stories/hover-card.stories.tsx +355 -0
- package/src/components/ui/stories/input.stories.tsx +289 -0
- package/src/components/ui/stories/label.stories.tsx +294 -0
- package/src/components/ui/stories/menubar.stories.tsx +764 -0
- package/src/components/ui/stories/navigation-menu.stories.tsx +539 -0
- package/src/components/ui/stories/pagination.stories.tsx +604 -0
- package/src/components/ui/stories/popover.stories.tsx +392 -0
- package/src/components/ui/stories/progress.stories.tsx +218 -0
- package/src/components/ui/stories/radio-group.stories.tsx +400 -0
- package/src/components/ui/stories/resizable.stories.tsx +417 -0
- package/src/components/ui/stories/scroll-area.stories.tsx +180 -0
- package/src/components/ui/stories/select.stories.tsx +389 -0
- package/src/components/ui/stories/separator.stories.tsx +192 -0
- package/src/components/ui/stories/sheet.stories.tsx +468 -0
- package/src/components/ui/stories/sidebar.stories.tsx +731 -0
- package/src/components/ui/stories/skeleton.stories.tsx +216 -0
- package/src/components/ui/stories/slider.stories.tsx +321 -0
- package/src/components/ui/stories/sonner.stories.tsx +373 -0
- package/src/components/ui/stories/stack.stories.tsx +222 -0
- package/src/components/ui/stories/switch.stories.tsx +202 -0
- package/src/components/ui/stories/table.stories.tsx +541 -0
- package/src/components/ui/stories/tabs.stories.tsx +544 -0
- package/src/components/ui/stories/text-field.stories.tsx +280 -0
- package/src/components/ui/stories/textarea.stories.tsx +245 -0
- package/src/components/ui/stories/theme-toggle.stories.tsx +275 -0
- package/src/components/ui/stories/theme.stories.tsx +412 -0
- package/src/components/ui/stories/toggle-group.stories.tsx +337 -0
- package/src/components/ui/stories/toggle.stories.tsx +325 -0
- package/src/components/ui/stories/tooltip.stories.tsx +444 -0
- package/src/components/ui/stories/typography.stories.tsx +1586 -0
- package/src/components/ui/stories/use-mobile.stories.tsx +420 -0
- package/src/components/ui/stories/use-theme.stories.tsx +531 -0
- package/src/components/ui/switch.tsx +106 -0
- package/src/components/ui/table.tsx +424 -0
- package/src/components/ui/tabs.tsx +316 -0
- package/src/components/ui/text-field.tsx +206 -0
- package/src/components/ui/textarea.tsx +98 -0
- package/src/components/ui/theme-toggle.tsx +185 -0
- package/src/components/ui/theme.tsx +148 -0
- package/src/components/ui/toggle-group.tsx +196 -0
- package/src/components/ui/toggle.tsx +115 -0
- package/src/components/ui/tooltip.tsx +253 -0
- package/src/components/ui/typography.tsx +468 -0
- package/src/hooks/use-mobile.ts +91 -0
- package/src/hooks/use-theme.ts +319 -0
- package/src/index.ts +77 -0
- package/src/lib/utils.ts +57 -0
- package/src/styles/globals.css +160 -0
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import useEmblaCarousel, { type UseEmblaCarouselType } from "embla-carousel-react";
|
|
3
|
+
import { Button } from "@/components/ui/button";
|
|
4
|
+
type CarouselApi = UseEmblaCarouselType[1];
|
|
5
|
+
type UseCarouselParameters = Parameters<typeof useEmblaCarousel>;
|
|
6
|
+
type CarouselOptions = UseCarouselParameters[0];
|
|
7
|
+
type CarouselPlugin = UseCarouselParameters[1];
|
|
8
|
+
type CarouselProps = {
|
|
9
|
+
opts?: CarouselOptions;
|
|
10
|
+
plugins?: CarouselPlugin;
|
|
11
|
+
orientation?: "horizontal" | "vertical";
|
|
12
|
+
setApi?: (api: CarouselApi) => void;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* A responsive carousel/slider component for content presentation
|
|
16
|
+
*
|
|
17
|
+
* The Carousel component provides a touch-friendly, keyboard-accessible way to
|
|
18
|
+
* browse through multiple items. Built on Embla Carousel, it supports various
|
|
19
|
+
* configurations including autoplay, loop, drag scrolling, and both horizontal
|
|
20
|
+
* and vertical orientations.
|
|
21
|
+
*
|
|
22
|
+
* @param opts - Embla Carousel configuration options (align, loop, etc.)
|
|
23
|
+
* @param plugins - Array of Embla Carousel plugins (autoplay, etc.)
|
|
24
|
+
* @param orientation - Layout direction: "horizontal" or "vertical" (default: "horizontal")
|
|
25
|
+
* @param setApi - Callback to receive the carousel API instance
|
|
26
|
+
* @param className - Additional CSS classes
|
|
27
|
+
* @param children - Carousel content (typically CarouselContent and navigation buttons)
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* // Basic image carousel
|
|
32
|
+
* <Carousel className="w-full max-w-xs">
|
|
33
|
+
* <CarouselContent>
|
|
34
|
+
* {images.map((src, index) => (
|
|
35
|
+
* <CarouselItem key={index}>
|
|
36
|
+
* <img src={src} alt={`Slide ${index + 1}`} className="w-full" />
|
|
37
|
+
* </CarouselItem>
|
|
38
|
+
* ))}
|
|
39
|
+
* </CarouselContent>
|
|
40
|
+
* <CarouselPrevious />
|
|
41
|
+
* <CarouselNext />
|
|
42
|
+
* </Carousel>
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```tsx
|
|
47
|
+
* // Multi-item responsive carousel
|
|
48
|
+
* <Carousel
|
|
49
|
+
* opts={{ align: "start", loop: true }}
|
|
50
|
+
* className="w-full"
|
|
51
|
+
* >
|
|
52
|
+
* <CarouselContent className="-ml-2 md:-ml-4">
|
|
53
|
+
* {products.map((product, index) => (
|
|
54
|
+
* <CarouselItem key={index} className="pl-2 md:pl-4 md:basis-1/2 lg:basis-1/3">
|
|
55
|
+
* <Card>
|
|
56
|
+
* <CardContent className="p-4">
|
|
57
|
+
* <h3>{product.name}</h3>
|
|
58
|
+
* <p>{product.price}</p>
|
|
59
|
+
* </CardContent>
|
|
60
|
+
* </Card>
|
|
61
|
+
* </CarouselItem>
|
|
62
|
+
* ))}
|
|
63
|
+
* </CarouselContent>
|
|
64
|
+
* <CarouselPrevious />
|
|
65
|
+
* <CarouselNext />
|
|
66
|
+
* </Carousel>
|
|
67
|
+
* ```
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```tsx
|
|
71
|
+
* // Vertical carousel with autoplay
|
|
72
|
+
* import Autoplay from "embla-carousel-autoplay";
|
|
73
|
+
*
|
|
74
|
+
* <Carousel
|
|
75
|
+
* orientation="vertical"
|
|
76
|
+
* plugins={[Autoplay({ delay: 3000, stopOnInteraction: true })]}
|
|
77
|
+
* className="h-[400px]"
|
|
78
|
+
* >
|
|
79
|
+
* <CarouselContent className="h-full">
|
|
80
|
+
* {testimonials.map((testimonial, index) => (
|
|
81
|
+
* <CarouselItem key={index} className="basis-1/2">
|
|
82
|
+
* <div className="p-6">
|
|
83
|
+
* <blockquote>{testimonial.quote}</blockquote>
|
|
84
|
+
* <cite>{testimonial.author}</cite>
|
|
85
|
+
* </div>
|
|
86
|
+
* </CarouselItem>
|
|
87
|
+
* ))}
|
|
88
|
+
* </CarouselContent>
|
|
89
|
+
* </Carousel>
|
|
90
|
+
* ```
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```tsx
|
|
94
|
+
* // Controlled carousel with custom indicators
|
|
95
|
+
* function ControlledCarousel() {
|
|
96
|
+
* const [api, setApi] = useState<CarouselApi>();
|
|
97
|
+
* const [current, setCurrent] = useState(0);
|
|
98
|
+
*
|
|
99
|
+
* useEffect(() => {
|
|
100
|
+
* if (!api) return;
|
|
101
|
+
* setCurrent(api.selectedScrollSnap());
|
|
102
|
+
* api.on('select', () => setCurrent(api.selectedScrollSnap()));
|
|
103
|
+
* }, [api]);
|
|
104
|
+
*
|
|
105
|
+
* return (
|
|
106
|
+
* <div>
|
|
107
|
+
* <Carousel setApi={setApi}>
|
|
108
|
+
* <CarouselContent>...</CarouselContent>
|
|
109
|
+
* </Carousel>
|
|
110
|
+
* <div className="flex justify-center gap-2 mt-4">
|
|
111
|
+
* {Array.from({ length: 5 }).map((_, i) => (
|
|
112
|
+
* <button
|
|
113
|
+
* key={i}
|
|
114
|
+
* className={current === i ? "bg-primary" : "bg-muted"}
|
|
115
|
+
* onClick={() => api?.scrollTo(i)}
|
|
116
|
+
* />
|
|
117
|
+
* ))}
|
|
118
|
+
* </div>
|
|
119
|
+
* </div>
|
|
120
|
+
* );
|
|
121
|
+
* }
|
|
122
|
+
* ```
|
|
123
|
+
*
|
|
124
|
+
* @accessibility
|
|
125
|
+
* - Keyboard navigation with arrow keys and tab focus
|
|
126
|
+
* - Touch/swipe gestures and mouse drag support
|
|
127
|
+
* - Screen reader announcements for slide changes
|
|
128
|
+
* - ARIA roles and labels for navigation elements
|
|
129
|
+
* - Focus management and visible focus indicators
|
|
130
|
+
* - Respects reduced motion preferences
|
|
131
|
+
* - RTL layout support
|
|
132
|
+
*
|
|
133
|
+
* @see {@link https://ui.shadcn.com/docs/components/carousel} shadcn/ui carousel documentation
|
|
134
|
+
* @see {@link https://www.embla-carousel.com/} Embla Carousel documentation
|
|
135
|
+
* @see {@link useCarousel} Hook for accessing carousel controls
|
|
136
|
+
* @see {@link CarouselContent} Container for carousel items
|
|
137
|
+
* @see {@link CarouselItem} Individual carousel slide
|
|
138
|
+
* @see {@link CarouselPrevious} Previous navigation button
|
|
139
|
+
* @see {@link CarouselNext} Next navigation button
|
|
140
|
+
* @since 1.0.0
|
|
141
|
+
*/
|
|
142
|
+
declare function Carousel({ orientation, opts, setApi, plugins, className, children, ...props }: React.ComponentProps<"div"> & CarouselProps): import("react/jsx-runtime").JSX.Element;
|
|
143
|
+
/**
|
|
144
|
+
* Container component for carousel items that handles the scrolling viewport
|
|
145
|
+
*
|
|
146
|
+
* Wraps all carousel items and manages the scrollable area. This component
|
|
147
|
+
* must be a direct child of Carousel and handles orientation-specific layouts
|
|
148
|
+
* and overflow behavior.
|
|
149
|
+
*
|
|
150
|
+
* @param className - Additional CSS classes for custom spacing and styling
|
|
151
|
+
* @param children - CarouselItem components
|
|
152
|
+
*
|
|
153
|
+
* @example
|
|
154
|
+
* ```tsx
|
|
155
|
+
* // Basic usage
|
|
156
|
+
* <CarouselContent>
|
|
157
|
+
* <CarouselItem>Slide 1</CarouselItem>
|
|
158
|
+
* <CarouselItem>Slide 2</CarouselItem>
|
|
159
|
+
* <CarouselItem>Slide 3</CarouselItem>
|
|
160
|
+
* </CarouselContent>
|
|
161
|
+
* ```
|
|
162
|
+
*
|
|
163
|
+
* @example
|
|
164
|
+
* ```tsx
|
|
165
|
+
* // With custom spacing (horizontal)
|
|
166
|
+
* <CarouselContent className="-ml-2 md:-ml-4">
|
|
167
|
+
* <CarouselItem className="pl-2 md:pl-4">Slide 1</CarouselItem>
|
|
168
|
+
* <CarouselItem className="pl-2 md:pl-4">Slide 2</CarouselItem>
|
|
169
|
+
* </CarouselContent>
|
|
170
|
+
* ```
|
|
171
|
+
*
|
|
172
|
+
* @example
|
|
173
|
+
* ```tsx
|
|
174
|
+
* // Vertical orientation spacing
|
|
175
|
+
* <CarouselContent className="-mt-4 h-[300px]">
|
|
176
|
+
* <CarouselItem className="pt-4">Slide 1</CarouselItem>
|
|
177
|
+
* <CarouselItem className="pt-4">Slide 2</CarouselItem>
|
|
178
|
+
* </CarouselContent>
|
|
179
|
+
* ```
|
|
180
|
+
*
|
|
181
|
+
* @accessibility
|
|
182
|
+
* - Provides scrollable container with proper overflow handling
|
|
183
|
+
* - Maintains responsive layout for horizontal/vertical orientations
|
|
184
|
+
* - Works with screen readers for content navigation
|
|
185
|
+
*
|
|
186
|
+
* @see {@link Carousel} Main carousel component
|
|
187
|
+
* @see {@link CarouselItem} Individual carousel slides
|
|
188
|
+
* @since 1.0.0
|
|
189
|
+
*/
|
|
190
|
+
declare function CarouselContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
191
|
+
/**
|
|
192
|
+
* Individual slide/item component within the carousel
|
|
193
|
+
*
|
|
194
|
+
* Represents a single slide in the carousel that can contain any content.
|
|
195
|
+
* Automatically handles sizing, spacing, and orientation-specific layouts
|
|
196
|
+
* based on the parent carousel configuration.
|
|
197
|
+
*
|
|
198
|
+
* @param className - Additional CSS classes for sizing (basis-*) and spacing
|
|
199
|
+
* @param children - Content to display within the slide
|
|
200
|
+
*
|
|
201
|
+
* @example
|
|
202
|
+
* ```tsx
|
|
203
|
+
* // Basic slide with content
|
|
204
|
+
* <CarouselItem>
|
|
205
|
+
* <div className="p-6">
|
|
206
|
+
* <h3 className="text-lg font-semibold">Slide Title</h3>
|
|
207
|
+
* <p className="text-muted-foreground">Slide description</p>
|
|
208
|
+
* </div>
|
|
209
|
+
* </CarouselItem>
|
|
210
|
+
* ```
|
|
211
|
+
*
|
|
212
|
+
* @example
|
|
213
|
+
* ```tsx
|
|
214
|
+
* // Card-based slide
|
|
215
|
+
* <CarouselItem>
|
|
216
|
+
* <Card>
|
|
217
|
+
* <CardHeader>
|
|
218
|
+
* <CardTitle>Product Name</CardTitle>
|
|
219
|
+
* </CardHeader>
|
|
220
|
+
* <CardContent>
|
|
221
|
+
* <img src="product.jpg" alt="Product" className="w-full" />
|
|
222
|
+
* <p className="mt-2">$99.99</p>
|
|
223
|
+
* </CardContent>
|
|
224
|
+
* </Card>
|
|
225
|
+
* </CarouselItem>
|
|
226
|
+
* ```
|
|
227
|
+
*
|
|
228
|
+
* @example
|
|
229
|
+
* ```tsx
|
|
230
|
+
* // Responsive sizing - multiple items visible
|
|
231
|
+
* <CarouselItem className="md:basis-1/2 lg:basis-1/3">
|
|
232
|
+
* <div className="aspect-square bg-muted rounded-lg" />
|
|
233
|
+
* </CarouselItem>
|
|
234
|
+
* ```
|
|
235
|
+
*
|
|
236
|
+
* @example
|
|
237
|
+
* ```tsx
|
|
238
|
+
* // Custom sizing with fixed width
|
|
239
|
+
* <CarouselItem className="basis-4/5">
|
|
240
|
+
* <div className="w-full h-48 bg-gradient-to-r from-blue-500 to-purple-600" />
|
|
241
|
+
* </CarouselItem>
|
|
242
|
+
* ```
|
|
243
|
+
*
|
|
244
|
+
* @accessibility
|
|
245
|
+
* - Labeled as a slide with proper ARIA role for screen readers
|
|
246
|
+
* - Maintains focus behavior and keyboard navigation
|
|
247
|
+
* - Preserves content structure for assistive technologies
|
|
248
|
+
*
|
|
249
|
+
* @see {@link Carousel} Main carousel component
|
|
250
|
+
* @see {@link CarouselContent} Container for carousel items
|
|
251
|
+
* @since 1.0.0
|
|
252
|
+
*/
|
|
253
|
+
declare function CarouselItem({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
254
|
+
/**
|
|
255
|
+
* Navigation button to go to the previous carousel slide
|
|
256
|
+
*
|
|
257
|
+
* Renders a previous navigation button that automatically handles disabled
|
|
258
|
+
* states when at the beginning of the carousel. Supports both horizontal
|
|
259
|
+
* and vertical orientations with appropriate positioning.
|
|
260
|
+
*
|
|
261
|
+
* @param className - Additional CSS classes for custom positioning and styling
|
|
262
|
+
* @param variant - Button variant (default: "outline")
|
|
263
|
+
* @param size - Button size (default: "icon")
|
|
264
|
+
*
|
|
265
|
+
* @example
|
|
266
|
+
* ```tsx
|
|
267
|
+
* // Basic usage
|
|
268
|
+
* <Carousel>
|
|
269
|
+
* <CarouselContent>
|
|
270
|
+
* <CarouselItem>Slide 1</CarouselItem>
|
|
271
|
+
* <CarouselItem>Slide 2</CarouselItem>
|
|
272
|
+
* </CarouselContent>
|
|
273
|
+
* <CarouselPrevious />
|
|
274
|
+
* <CarouselNext />
|
|
275
|
+
* </Carousel>
|
|
276
|
+
* ```
|
|
277
|
+
*
|
|
278
|
+
* @example
|
|
279
|
+
* ```tsx
|
|
280
|
+
* // Custom styling
|
|
281
|
+
* <CarouselPrevious
|
|
282
|
+
* className="-left-8 bg-background shadow-md"
|
|
283
|
+
* variant="ghost"
|
|
284
|
+
* size="sm"
|
|
285
|
+
* />
|
|
286
|
+
* ```
|
|
287
|
+
*
|
|
288
|
+
* @example
|
|
289
|
+
* ```tsx
|
|
290
|
+
* // Vertical carousel positioning
|
|
291
|
+
* <Carousel orientation="vertical">
|
|
292
|
+
* <CarouselContent>...</CarouselContent>
|
|
293
|
+
* <CarouselPrevious />
|
|
294
|
+
* <CarouselNext />
|
|
295
|
+
* </Carousel>
|
|
296
|
+
* ```
|
|
297
|
+
*
|
|
298
|
+
* @accessibility
|
|
299
|
+
* - Keyboard accessible with proper focus management
|
|
300
|
+
* - Screen reader label "Previous slide" for context
|
|
301
|
+
* - Automatically disabled when cannot scroll further
|
|
302
|
+
* - High contrast focus indicators
|
|
303
|
+
* - Supports reduced motion preferences
|
|
304
|
+
*
|
|
305
|
+
* @see {@link Carousel} Main carousel component
|
|
306
|
+
* @see {@link CarouselNext} Next navigation button
|
|
307
|
+
* @see {@link Button} Underlying button component
|
|
308
|
+
* @since 1.0.0
|
|
309
|
+
*/
|
|
310
|
+
declare function CarouselPrevious({ className, variant, size, ...props }: React.ComponentProps<typeof Button>): import("react/jsx-runtime").JSX.Element;
|
|
311
|
+
/**
|
|
312
|
+
* Navigation button to go to the next carousel slide
|
|
313
|
+
*
|
|
314
|
+
* Renders a next navigation button that automatically handles disabled
|
|
315
|
+
* states when at the end of the carousel. Supports both horizontal
|
|
316
|
+
* and vertical orientations with appropriate positioning.
|
|
317
|
+
*
|
|
318
|
+
* @param className - Additional CSS classes for custom positioning and styling
|
|
319
|
+
* @param variant - Button variant (default: "outline")
|
|
320
|
+
* @param size - Button size (default: "icon")
|
|
321
|
+
*
|
|
322
|
+
* @example
|
|
323
|
+
* ```tsx
|
|
324
|
+
* // Basic usage
|
|
325
|
+
* <Carousel>
|
|
326
|
+
* <CarouselContent>
|
|
327
|
+
* <CarouselItem>Slide 1</CarouselItem>
|
|
328
|
+
* <CarouselItem>Slide 2</CarouselItem>
|
|
329
|
+
* </CarouselContent>
|
|
330
|
+
* <CarouselPrevious />
|
|
331
|
+
* <CarouselNext />
|
|
332
|
+
* </Carousel>
|
|
333
|
+
* ```
|
|
334
|
+
*
|
|
335
|
+
* @example
|
|
336
|
+
* ```tsx
|
|
337
|
+
* // Custom styling
|
|
338
|
+
* <CarouselNext
|
|
339
|
+
* className="-right-8 bg-background shadow-md"
|
|
340
|
+
* variant="ghost"
|
|
341
|
+
* size="sm"
|
|
342
|
+
* />
|
|
343
|
+
* ```
|
|
344
|
+
*
|
|
345
|
+
* @example
|
|
346
|
+
* ```tsx
|
|
347
|
+
* // Vertical carousel positioning
|
|
348
|
+
* <Carousel orientation="vertical">
|
|
349
|
+
* <CarouselContent>...</CarouselContent>
|
|
350
|
+
* <CarouselPrevious />
|
|
351
|
+
* <CarouselNext />
|
|
352
|
+
* </Carousel>
|
|
353
|
+
* ```
|
|
354
|
+
*
|
|
355
|
+
* @accessibility
|
|
356
|
+
* - Keyboard accessible with proper focus management
|
|
357
|
+
* - Screen reader label "Next slide" for context
|
|
358
|
+
* - Automatically disabled when cannot scroll further
|
|
359
|
+
* - High contrast focus indicators
|
|
360
|
+
* - Supports reduced motion preferences
|
|
361
|
+
*
|
|
362
|
+
* @see {@link Carousel} Main carousel component
|
|
363
|
+
* @see {@link CarouselPrevious} Previous navigation button
|
|
364
|
+
* @see {@link Button} Underlying button component
|
|
365
|
+
* @since 1.0.0
|
|
366
|
+
*/
|
|
367
|
+
declare function CarouselNext({ className, variant, size, ...props }: React.ComponentProps<typeof Button>): import("react/jsx-runtime").JSX.Element;
|
|
368
|
+
export { type CarouselApi, Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext, };
|
|
369
|
+
//# sourceMappingURL=carousel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../../../src/components/ui/carousel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,gBAAgB,EAAE,EACvB,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,KAAK,WAAW,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAC3C,KAAK,qBAAqB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AACjE,KAAK,eAAe,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAChD,KAAK,cAAc,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAE/C,KAAK,aAAa,GAAG;IACnB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;CACrC,CAAC;AA6DF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+HG;AACH,iBAAS,QAAQ,CAAC,EAChB,WAA0B,EAC1B,IAAI,EACJ,MAAM,EACN,OAAO,EACP,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,aAAa,2CA6E7C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAmB5E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAgBzE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,OAAmB,EACnB,IAAa,EACb,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,2CAuBrC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,OAAmB,EACnB,IAAa,EACb,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,2CAuBrC;AAED,OAAO,EACL,KAAK,WAAW,EAChB,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,YAAY,GACb,CAAC"}
|