@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
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Neynar Inc.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
# @neynar/ui
|
|
2
|
+
|
|
3
|
+
A comprehensive, production-ready React component library built on **Radix UI** primitives and **Tailwind CSS v4**. Features 52 accessible components plus advanced hooks for building modern web applications with confidence.
|
|
4
|
+
|
|
5
|
+
## 🎯 Key Highlights
|
|
6
|
+
|
|
7
|
+
- **Over 50 Components, Hooks and Utilities** - Complete UI ecosystem for any application type
|
|
8
|
+
- **Accessibility-First** - WCAG 2.1 AA compliant with comprehensive keyboard navigation
|
|
9
|
+
- **TypeScript Native** - Full type safety with intelligent IntelliSense support
|
|
10
|
+
- **Advanced Theming** - OKLCH color space with system-aware custom themes
|
|
11
|
+
- **Framework Agnostic** - Seamless integration with Next.js, Vite, Remix, and more
|
|
12
|
+
- **Zero-Config Dark Mode** - Intelligent theme system with SSR-safe persistence
|
|
13
|
+
- **shadcn/ui Enhanced** - Extends shadcn/ui patterns with advanced features
|
|
14
|
+
- **Tree Shakeable** - Optimized bundle sizes with granular imports
|
|
15
|
+
|
|
16
|
+
## 🚀 Quick Installation
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npm install @neynar/ui
|
|
20
|
+
# or
|
|
21
|
+
yarn add @neynar/ui
|
|
22
|
+
# or
|
|
23
|
+
pnpm add @neynar/ui
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## ⚡ Get Started in 30 Seconds
|
|
27
|
+
|
|
28
|
+
```tsx
|
|
29
|
+
import { Button, Card, CardHeader, CardTitle, CardContent } from "@neynar/ui";
|
|
30
|
+
import "@neynar/ui/styles";
|
|
31
|
+
|
|
32
|
+
function App() {
|
|
33
|
+
return (
|
|
34
|
+
<Card className="max-w-md">
|
|
35
|
+
<CardHeader>
|
|
36
|
+
<CardTitle>@neynar/ui is Ready</CardTitle>
|
|
37
|
+
</CardHeader>
|
|
38
|
+
<CardContent className="space-y-4">
|
|
39
|
+
<Button>Primary Action</Button>
|
|
40
|
+
<Button variant="outline">Secondary Action</Button>
|
|
41
|
+
</CardContent>
|
|
42
|
+
</Card>
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## 🎨 Component Categories
|
|
48
|
+
|
|
49
|
+
| Category | Components | Description |
|
|
50
|
+
|----------|------------|-------------|
|
|
51
|
+
| 📝 **Forms & Input** | Button, Input, Textarea, TextField, Select, Combobox, Checkbox, Switch, RadioGroup, DatePicker, Calendar, Label, Slider | Essential form building blocks with validation support |
|
|
52
|
+
| 📱 **Layout & Structure** | Container, Stack, Card, Separator, AspectRatio, Accordion, Collapsible, Resizable, ScrollArea | Flexible components for responsive layouts |
|
|
53
|
+
| 🧭 **Navigation & Menus** | NavigationMenu, Tabs, Breadcrumb, Pagination, Sidebar, DropdownMenu, ContextMenu, Menubar, Command | Comprehensive navigation solutions |
|
|
54
|
+
| 💬 **Overlays & Dialogs** | Dialog, AlertDialog, Popover, Tooltip, Sheet, HoverCard, Drawer | Modal interactions with advanced positioning |
|
|
55
|
+
| ✍️ **Typography** | Typography (with H1-H6, P, A, Code, Label variants) | Consistent text styling with semantic HTML |
|
|
56
|
+
| 📊 **Data Display** | Table, Badge, Avatar, Alert, Progress, Skeleton, EmptyState, Chart, Carousel, Sonner | Rich components for presenting information |
|
|
57
|
+
| 🔧 **Interactive Controls** | Toggle, ToggleGroup, ThemeToggle | Advanced interaction components |
|
|
58
|
+
| 🪝 **Hooks** | useTheme, useIsMobile | React hooks for common functionality |
|
|
59
|
+
| 🛠️ **Utilities** | cn, Theme | Helper utilities and setup components |
|
|
60
|
+
|
|
61
|
+
## 🌙 Theming
|
|
62
|
+
|
|
63
|
+
Zero-config light/dark mode with FOUC prevention:
|
|
64
|
+
|
|
65
|
+
```tsx
|
|
66
|
+
// 1. Add Theme component early in your app (required for FOUC prevention)
|
|
67
|
+
import { Theme } from "@neynar/ui";
|
|
68
|
+
|
|
69
|
+
// Next.js App Router
|
|
70
|
+
export default function RootLayout({ children }) {
|
|
71
|
+
return (
|
|
72
|
+
<html lang="en" suppressHydrationWarning>
|
|
73
|
+
<head>
|
|
74
|
+
<Theme /> {/* Prevents flash of wrong theme */}
|
|
75
|
+
</head>
|
|
76
|
+
<body>{children}</body>
|
|
77
|
+
</html>
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Vite/React
|
|
82
|
+
function App() {
|
|
83
|
+
return (
|
|
84
|
+
<>
|
|
85
|
+
<Theme /> {/* Place at the top */}
|
|
86
|
+
<div className="app">
|
|
87
|
+
{/* Your app content */}
|
|
88
|
+
</div>
|
|
89
|
+
</>
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// 2. Add ThemeToggle anywhere for user control (optional)
|
|
94
|
+
import { ThemeToggle } from "@neynar/ui";
|
|
95
|
+
|
|
96
|
+
function Header() {
|
|
97
|
+
return (
|
|
98
|
+
<header>
|
|
99
|
+
<h1>My App</h1>
|
|
100
|
+
<ThemeToggle />
|
|
101
|
+
</header>
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**How it works:**
|
|
107
|
+
|
|
108
|
+
- **Theme component** - Injects a tiny script that runs before first paint
|
|
109
|
+
- **No FOUC** - Theme applied instantly on page load
|
|
110
|
+
- **Auto-detects** system preference (light/dark)
|
|
111
|
+
- **Persists** selection in cookies (SSR-safe)
|
|
112
|
+
- **Synchronized** - Multiple ThemeToggle instances stay in sync via events
|
|
113
|
+
- **Framework agnostic** - Works with Next.js, Vite, Remix, etc.
|
|
114
|
+
|
|
115
|
+
**[→ Complete Theming Guide](./docs/theming.md)** - Learn how to customize colors, create brand themes, and advanced theming patterns.
|
|
116
|
+
|
|
117
|
+
## 🔧 Framework Integration
|
|
118
|
+
|
|
119
|
+
@neynar/ui works seamlessly with all modern React frameworks:
|
|
120
|
+
|
|
121
|
+
- **[Next.js Integration →](./docs/integrations/nextjs.md)** - App Router, Pages Router, SSR, SSG, and custom Link components
|
|
122
|
+
- **[Vite + React Integration →](./docs/integrations/vite.md)** - SPA, React Router, and development setup
|
|
123
|
+
|
|
124
|
+
## 📈 Performance & Bundle Optimization
|
|
125
|
+
|
|
126
|
+
### Tree Shaking
|
|
127
|
+
|
|
128
|
+
Import only what you need for optimal bundle sizes:
|
|
129
|
+
|
|
130
|
+
```tsx
|
|
131
|
+
// ✅ Good - Import specific components
|
|
132
|
+
import { Button, Card, CardHeader, CardTitle, CardContent } from "@neynar/ui";
|
|
133
|
+
|
|
134
|
+
// ❌ Avoid - Imports entire library
|
|
135
|
+
import * as UI from "@neynar/ui";
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## 📚 Documentation
|
|
139
|
+
|
|
140
|
+
### 📖 Available Documentation
|
|
141
|
+
|
|
142
|
+
- **[Component Reference](./docs/components.md)** - Complete component catalog with usage examples
|
|
143
|
+
- **[Troubleshooting Guide](./docs/troubleshooting.md)** - Common issues and solutions
|
|
144
|
+
|
|
145
|
+
### 🤖 AI & Development Resources
|
|
146
|
+
|
|
147
|
+
- **[LLM Documentation](./docs/llm/)** - LLM-optimized component usage and templates
|
|
148
|
+
|
|
149
|
+
## 🛡️ Quality Assurance
|
|
150
|
+
|
|
151
|
+
### Accessibility Standards
|
|
152
|
+
|
|
153
|
+
- **WCAG 2.1 AA Compliance** - All components meet accessibility standards
|
|
154
|
+
- **Keyboard Navigation** - Full keyboard support across all interactive elements
|
|
155
|
+
- **Screen Reader Support** - Comprehensive ARIA implementation
|
|
156
|
+
- **Focus Management** - Intelligent focus trapping and restoration
|
|
157
|
+
- **Color Contrast** - Meets contrast requirements in all themes
|
|
158
|
+
|
|
159
|
+
## 🤝 Contributing & Support
|
|
160
|
+
|
|
161
|
+
### Community Resources
|
|
162
|
+
|
|
163
|
+
- **[Storybook Documentation](https://neynar-ui.vercel.app)** - Interactive component explorer
|
|
164
|
+
|
|
165
|
+
### Contributing Guidelines
|
|
166
|
+
|
|
167
|
+
- **[Contributing Guide](./CONTRIBUTING.md)** - Complete guide for adding new components
|
|
168
|
+
- **[LLM Prompts](./docs/llm-prompts/)** - Copy-paste prompts for creating shadcn-based and custom components
|
|
169
|
+
|
|
170
|
+
This library extends shadcn/ui patterns with Neynar-specific enhancements. When contributing:
|
|
171
|
+
|
|
172
|
+
- Follow our component categorization system (Buttons, Forms, Display, etc.)
|
|
173
|
+
- Include comprehensive TypeScript definitions and TSDoc documentation
|
|
174
|
+
- Create Storybook stories with proper category organization
|
|
175
|
+
- Update all documentation files (AI docs, component docs, exports)
|
|
176
|
+
- Ensure accessibility-first implementations with full keyboard support
|
|
177
|
+
- Pass all automated tests including accessibility compliance checks
|
|
178
|
+
|
|
179
|
+
## 📄 License
|
|
180
|
+
|
|
181
|
+
MIT License - see the [LICENSE](./LICENSE) file for complete details.
|
|
182
|
+
|
|
183
|
+
### Acknowledgments
|
|
184
|
+
|
|
185
|
+
This library is built on top of excellent open-source projects:
|
|
186
|
+
|
|
187
|
+
- **[shadcn/ui](https://ui.shadcn.com)** - Component patterns and design system foundation (MIT)
|
|
188
|
+
- **[Radix UI](https://www.radix-ui.com)** - Accessible component primitives (MIT)
|
|
189
|
+
- **[Tailwind CSS](https://tailwindcss.com)** - Utility-first CSS framework (MIT)
|
|
190
|
+
- **[Lucide Icons](https://lucide.dev)** - Beautiful open-source icons (ISC)
|
|
191
|
+
- **[class-variance-authority](https://cva.style)** - Component variant management (Apache-2.0)
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
**Built with ❤️ by the Neynar team**
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as AccordionPrimitive from "@radix-ui/react-accordion";
|
|
3
|
+
/**
|
|
4
|
+
* Accordion - Collapsible content panels for organizing information
|
|
5
|
+
*
|
|
6
|
+
* A vertically stacked set of interactive headings that each reveal a section of content.
|
|
7
|
+
* Built on Radix UI Accordion primitives with optimized animations and accessibility.
|
|
8
|
+
* Supports both single and multiple expanded items simultaneously based on the type prop.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* // Basic single accordion (only one item can be open)
|
|
13
|
+
* <Accordion type="single" collapsible>
|
|
14
|
+
* <AccordionItem value="item-1">
|
|
15
|
+
* <AccordionTrigger>Is it accessible?</AccordionTrigger>
|
|
16
|
+
* <AccordionContent>
|
|
17
|
+
* Yes. It adheres to the WAI-ARIA design pattern.
|
|
18
|
+
* </AccordionContent>
|
|
19
|
+
* </AccordionItem>
|
|
20
|
+
* </Accordion>
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```tsx
|
|
25
|
+
* // Multiple accordion (multiple items can be open)
|
|
26
|
+
* <Accordion type="multiple">
|
|
27
|
+
* <AccordionItem value="item-1">
|
|
28
|
+
* <AccordionTrigger>Section 1</AccordionTrigger>
|
|
29
|
+
* <AccordionContent>Content for section 1</AccordionContent>
|
|
30
|
+
* </AccordionItem>
|
|
31
|
+
* <AccordionItem value="item-2">
|
|
32
|
+
* <AccordionTrigger>Section 2</AccordionTrigger>
|
|
33
|
+
* <AccordionContent>Content for section 2</AccordionContent>
|
|
34
|
+
* </AccordionItem>
|
|
35
|
+
* </Accordion>
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```tsx
|
|
40
|
+
* // FAQ-style accordion with default open state
|
|
41
|
+
* <Accordion type="single" collapsible defaultValue="faq-1">
|
|
42
|
+
* <AccordionItem value="faq-1">
|
|
43
|
+
* <AccordionTrigger>How do I get started?</AccordionTrigger>
|
|
44
|
+
* <AccordionContent>
|
|
45
|
+
* Follow our quick start guide to set up your first project.
|
|
46
|
+
* </AccordionContent>
|
|
47
|
+
* </AccordionItem>
|
|
48
|
+
* </Accordion>
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* @param type - "single" allows one item open, "multiple" allows multiple items open
|
|
52
|
+
* @param collapsible - When type="single", allows closing the open item (optional)
|
|
53
|
+
* @param defaultValue - Initial value(s) for open items
|
|
54
|
+
* @param value - Controlled value(s) for open items
|
|
55
|
+
* @param onValueChange - Callback when accordion state changes
|
|
56
|
+
* @param className - Additional CSS classes for styling
|
|
57
|
+
* @param orientation - "horizontal" or "vertical" (default: "vertical")
|
|
58
|
+
* @param dir - Text direction "ltr" or "rtl" for internationalization
|
|
59
|
+
* @param disabled - Disables all accordion interactions
|
|
60
|
+
*
|
|
61
|
+
* @accessibility
|
|
62
|
+
* - Full keyboard navigation support (Arrow keys, Space, Enter, Home, End)
|
|
63
|
+
* - ARIA expanded/collapsed states automatically managed
|
|
64
|
+
* - Screen reader announcements for state changes
|
|
65
|
+
* - Focus management with visible focus indicators
|
|
66
|
+
* - Properly labeled regions with aria-labelledby
|
|
67
|
+
* - Meets WCAG 2.1 AA standards for interactive elements
|
|
68
|
+
*
|
|
69
|
+
* @see {@link https://www.w3.org/WAI/ARIA/apg/patterns/accordion/} WAI-ARIA Accordion Pattern
|
|
70
|
+
* @see {@link https://ui.shadcn.com/docs/components/accordion} shadcn/ui Accordion Documentation
|
|
71
|
+
* @see {@link AccordionItem} Individual accordion panel container
|
|
72
|
+
* @see {@link AccordionTrigger} Clickable header to expand/collapse content
|
|
73
|
+
* @see {@link AccordionContent} Collapsible content area with smooth animations
|
|
74
|
+
* @since 1.0.0
|
|
75
|
+
*/
|
|
76
|
+
declare function Accordion({ ...props }: React.ComponentProps<typeof AccordionPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
77
|
+
/**
|
|
78
|
+
* AccordionItem - Individual collapsible panel within an accordion
|
|
79
|
+
*
|
|
80
|
+
* A container component that wraps a single accordion section consisting of a trigger
|
|
81
|
+
* and collapsible content. Each item requires a unique value prop for identification
|
|
82
|
+
* and state management. Provides consistent spacing and border styling.
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```tsx
|
|
86
|
+
* <AccordionItem value="settings">
|
|
87
|
+
* <AccordionTrigger>Account Settings</AccordionTrigger>
|
|
88
|
+
* <AccordionContent>
|
|
89
|
+
* <p>Manage your account preferences and security settings.</p>
|
|
90
|
+
* </AccordionContent>
|
|
91
|
+
* </AccordionItem>
|
|
92
|
+
* ```
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```tsx
|
|
96
|
+
* // With custom styling
|
|
97
|
+
* <AccordionItem value="custom" className="border-l-4 border-blue-500">
|
|
98
|
+
* <AccordionTrigger>Custom Styled Item</AccordionTrigger>
|
|
99
|
+
* <AccordionContent>Content with custom left border</AccordionContent>
|
|
100
|
+
* </AccordionItem>
|
|
101
|
+
* ```
|
|
102
|
+
*
|
|
103
|
+
* @param value - Unique identifier for this accordion item (required)
|
|
104
|
+
* @param className - Additional CSS classes for custom styling
|
|
105
|
+
* @param disabled - Disables this specific accordion item
|
|
106
|
+
* @param children - Should contain AccordionTrigger and AccordionContent
|
|
107
|
+
*
|
|
108
|
+
* @accessibility
|
|
109
|
+
* - Manages expanded/collapsed state via ARIA attributes
|
|
110
|
+
* - Associates trigger with content using aria-controls and aria-labelledby
|
|
111
|
+
* - Provides proper focus management between items
|
|
112
|
+
* - Supports keyboard navigation within the accordion group
|
|
113
|
+
*
|
|
114
|
+
* @see {@link AccordionTrigger} The clickable header for this item
|
|
115
|
+
* @see {@link AccordionContent} The collapsible content for this item
|
|
116
|
+
*/
|
|
117
|
+
declare function AccordionItem({ className, ...props }: React.ComponentProps<typeof AccordionPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
|
|
118
|
+
/**
|
|
119
|
+
* AccordionTrigger - Clickable header that toggles accordion content visibility
|
|
120
|
+
*
|
|
121
|
+
* An interactive button element that users click or activate via keyboard to expand
|
|
122
|
+
* or collapse the associated accordion content. Features a rotating chevron icon
|
|
123
|
+
* for visual state indication and supports both text and custom content.
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```tsx
|
|
127
|
+
* // Simple text trigger
|
|
128
|
+
* <AccordionTrigger>
|
|
129
|
+
* Click to expand this section
|
|
130
|
+
* </AccordionTrigger>
|
|
131
|
+
* ```
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```tsx
|
|
135
|
+
* // With icon and custom styling
|
|
136
|
+
* <AccordionTrigger className="text-lg font-semibold">
|
|
137
|
+
* <User className="mr-2 h-4 w-4" />
|
|
138
|
+
* User Profile Settings
|
|
139
|
+
* </AccordionTrigger>
|
|
140
|
+
* ```
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* ```tsx
|
|
144
|
+
* // With complex content
|
|
145
|
+
* <AccordionTrigger>
|
|
146
|
+
* <div className="flex items-center justify-between w-full">
|
|
147
|
+
* <span>Section Title</span>
|
|
148
|
+
* <Badge variant="secondary">5 items</Badge>
|
|
149
|
+
* </div>
|
|
150
|
+
* </AccordionTrigger>
|
|
151
|
+
* ```
|
|
152
|
+
*
|
|
153
|
+
* @param className - Additional CSS classes for custom styling
|
|
154
|
+
* @param children - Content to display in the trigger (text, icons, or components)
|
|
155
|
+
* @param disabled - Disables the trigger interaction
|
|
156
|
+
* @param asChild - Renders the trigger as its child element when true
|
|
157
|
+
*
|
|
158
|
+
* @accessibility
|
|
159
|
+
* - Keyboard activated with Space, Enter, or Arrow keys
|
|
160
|
+
* - aria-expanded automatically indicates current expanded/collapsed state
|
|
161
|
+
* - Focus visible ring for keyboard navigation with proper contrast
|
|
162
|
+
* - Chevron icon rotation provides visual state feedback
|
|
163
|
+
* - Screen reader support with proper labeling and state announcements
|
|
164
|
+
* - Meets WCAG 2.1 AA interactive element requirements
|
|
165
|
+
*
|
|
166
|
+
* @see {@link AccordionContent} The content area controlled by this trigger
|
|
167
|
+
*/
|
|
168
|
+
declare function AccordionTrigger({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
|
|
169
|
+
/**
|
|
170
|
+
* AccordionContent - Collapsible content area of an accordion item
|
|
171
|
+
*
|
|
172
|
+
* The expandable content section that is revealed or hidden when the associated
|
|
173
|
+
* AccordionTrigger is activated. Features smooth height-based animations using
|
|
174
|
+
* Tailwind CSS keyframes and supports any React content including complex layouts.
|
|
175
|
+
*
|
|
176
|
+
* @example
|
|
177
|
+
* ```tsx
|
|
178
|
+
* // Simple text content
|
|
179
|
+
* <AccordionContent>
|
|
180
|
+
* <p>This content is revealed when the accordion is expanded.</p>
|
|
181
|
+
* <p>It can contain any React components or HTML elements.</p>
|
|
182
|
+
* </AccordionContent>
|
|
183
|
+
* ```
|
|
184
|
+
*
|
|
185
|
+
* @example
|
|
186
|
+
* ```tsx
|
|
187
|
+
* // Rich content with components
|
|
188
|
+
* <AccordionContent>
|
|
189
|
+
* <div className="space-y-4">
|
|
190
|
+
* <Alert>
|
|
191
|
+
* <InfoIcon className="h-4 w-4" />
|
|
192
|
+
* <AlertTitle>Important Note</AlertTitle>
|
|
193
|
+
* <AlertDescription>This is highlighted information.</AlertDescription>
|
|
194
|
+
* </Alert>
|
|
195
|
+
* <Button variant="outline">Take Action</Button>
|
|
196
|
+
* </div>
|
|
197
|
+
* </AccordionContent>
|
|
198
|
+
* ```
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* ```tsx
|
|
202
|
+
* // Content with custom padding
|
|
203
|
+
* <AccordionContent className="pt-6 pb-6">
|
|
204
|
+
* Content with extra vertical padding for better spacing.
|
|
205
|
+
* </AccordionContent>
|
|
206
|
+
* ```
|
|
207
|
+
*
|
|
208
|
+
* @param className - Additional CSS classes for custom styling (applied to inner div)
|
|
209
|
+
* @param children - Any React content to display when expanded
|
|
210
|
+
* @param forceMount - Forces content to remain mounted when collapsed (for animations)
|
|
211
|
+
*
|
|
212
|
+
* @accessibility
|
|
213
|
+
* - Hidden content is not focusable or accessible when collapsed
|
|
214
|
+
* - Smooth height animations enhance user experience without motion issues
|
|
215
|
+
* - Properly associated with trigger via ARIA attributes (aria-controls, aria-labelledby)
|
|
216
|
+
* - Content respects prefers-reduced-motion user preference
|
|
217
|
+
* - Focus moves naturally to content when expanded via keyboard
|
|
218
|
+
*
|
|
219
|
+
* @animation
|
|
220
|
+
* - Uses data-[state=open]:animate-accordion-down for expand animation
|
|
221
|
+
* - Uses data-[state=closed]:animate-accordion-up for collapse animation
|
|
222
|
+
* - Animations respect user's motion preferences
|
|
223
|
+
* - Smooth height transitions using Radix UI's --radix-accordion-content-height variable
|
|
224
|
+
*
|
|
225
|
+
* @see {@link AccordionTrigger} The trigger that controls this content's visibility
|
|
226
|
+
*/
|
|
227
|
+
declare function AccordionContent({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
|
|
228
|
+
export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
|
|
229
|
+
//# sourceMappingURL=accordion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/components/ui/accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAKhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AACH,iBAAS,SAAS,CAAC,EACjB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC,2CAEtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC,2CAQtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,2CAgBzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,2CAUzD;AAED,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC"}
|