@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,318 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
|
|
3
|
+
/**
|
|
4
|
+
* NavigationMenu - A collection of links for navigating websites
|
|
5
|
+
*
|
|
6
|
+
* A horizontal navigation component built on Radix UI primitives that provides
|
|
7
|
+
* flexible navigation patterns with dropdown content support. Features full
|
|
8
|
+
* keyboard navigation, accessibility compliance, and responsive design.
|
|
9
|
+
*
|
|
10
|
+
* @component
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* // Basic navigation with dropdown
|
|
14
|
+
* <NavigationMenu>
|
|
15
|
+
* <NavigationMenuList>
|
|
16
|
+
* <NavigationMenuItem>
|
|
17
|
+
* <NavigationMenuTrigger>Products</NavigationMenuTrigger>
|
|
18
|
+
* <NavigationMenuContent>
|
|
19
|
+
* <NavigationMenuLink href="/products">All Products</NavigationMenuLink>
|
|
20
|
+
* </NavigationMenuContent>
|
|
21
|
+
* </NavigationMenuItem>
|
|
22
|
+
* </NavigationMenuList>
|
|
23
|
+
* </NavigationMenu>
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```tsx
|
|
28
|
+
* // Simple navigation links
|
|
29
|
+
* <NavigationMenu>
|
|
30
|
+
* <NavigationMenuList>
|
|
31
|
+
* <NavigationMenuItem>
|
|
32
|
+
* <NavigationMenuLink href="/about">About</NavigationMenuLink>
|
|
33
|
+
* </NavigationMenuItem>
|
|
34
|
+
* <NavigationMenuItem>
|
|
35
|
+
* <NavigationMenuLink href="/contact">Contact</NavigationMenuLink>
|
|
36
|
+
* </NavigationMenuItem>
|
|
37
|
+
* </NavigationMenuList>
|
|
38
|
+
* </NavigationMenu>
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```tsx
|
|
43
|
+
* // With Next.js Link using asChild
|
|
44
|
+
* <NavigationMenu>
|
|
45
|
+
* <NavigationMenuList>
|
|
46
|
+
* <NavigationMenuItem>
|
|
47
|
+
* <NavigationMenuLink asChild>
|
|
48
|
+
* <Link href="/dashboard">Dashboard</Link>
|
|
49
|
+
* </NavigationMenuLink>
|
|
50
|
+
* </NavigationMenuItem>
|
|
51
|
+
* </NavigationMenuList>
|
|
52
|
+
* </NavigationMenu>
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```tsx
|
|
57
|
+
* // Without viewport for simpler styling
|
|
58
|
+
* <NavigationMenu viewport={false}>
|
|
59
|
+
* <NavigationMenuList>
|
|
60
|
+
* <NavigationMenuItem>
|
|
61
|
+
* <NavigationMenuTrigger>Features</NavigationMenuTrigger>
|
|
62
|
+
* <NavigationMenuContent>
|
|
63
|
+
* <div className="p-4 w-[300px]">
|
|
64
|
+
* <NavigationMenuLink href="/analytics">Analytics</NavigationMenuLink>
|
|
65
|
+
* </div>
|
|
66
|
+
* </NavigationMenuContent>
|
|
67
|
+
* </NavigationMenuItem>
|
|
68
|
+
* </NavigationMenuList>
|
|
69
|
+
* </NavigationMenu>
|
|
70
|
+
* ```
|
|
71
|
+
*
|
|
72
|
+
* @accessibility
|
|
73
|
+
* - Full keyboard navigation with arrow keys for menu traversal
|
|
74
|
+
* - Tab key moves between focusable menu items
|
|
75
|
+
* - Escape key closes open dropdown menus
|
|
76
|
+
* - Enter/Space activates triggers and links
|
|
77
|
+
* - ARIA attributes for proper screen reader support
|
|
78
|
+
* - Focus management with automatic focus trapping in dropdowns
|
|
79
|
+
* - Semantic HTML structure for navigation landmarks
|
|
80
|
+
*
|
|
81
|
+
* @see {@link https://ui.shadcn.com/docs/components/navigation-menu} shadcn/ui Navigation Menu
|
|
82
|
+
* @see {@link https://www.radix-ui.com/primitives/docs/components/navigation-menu} Radix UI Navigation Menu
|
|
83
|
+
* @since 1.0.0
|
|
84
|
+
*/
|
|
85
|
+
/**
|
|
86
|
+
* Main NavigationMenu component props
|
|
87
|
+
*
|
|
88
|
+
* @param viewport - Whether to render the navigation viewport container. Defaults to true.
|
|
89
|
+
* Set to false for simpler dropdown styling without viewport positioning.
|
|
90
|
+
* @param className - Additional CSS classes to apply to the navigation menu root
|
|
91
|
+
* @param children - NavigationMenuList and NavigationMenuViewport components
|
|
92
|
+
*/
|
|
93
|
+
declare function NavigationMenu({ className, children, viewport, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & {
|
|
94
|
+
/** Whether to render the navigation viewport container for dropdown positioning */
|
|
95
|
+
viewport?: boolean;
|
|
96
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
97
|
+
/**
|
|
98
|
+
* NavigationMenuList - Container for navigation menu items
|
|
99
|
+
*
|
|
100
|
+
* A horizontal list container that groups NavigationMenuItem components.
|
|
101
|
+
* Provides the foundational layout structure for the navigation menu.
|
|
102
|
+
*
|
|
103
|
+
* @component
|
|
104
|
+
* @example
|
|
105
|
+
* ```tsx
|
|
106
|
+
* <NavigationMenuList>
|
|
107
|
+
* <NavigationMenuItem>
|
|
108
|
+
* <NavigationMenuLink href="/home">Home</NavigationMenuLink>
|
|
109
|
+
* </NavigationMenuItem>
|
|
110
|
+
* <NavigationMenuItem>
|
|
111
|
+
* <NavigationMenuLink href="/about">About</NavigationMenuLink>
|
|
112
|
+
* </NavigationMenuItem>
|
|
113
|
+
* </NavigationMenuList>
|
|
114
|
+
* ```
|
|
115
|
+
*
|
|
116
|
+
* @param className - Additional CSS classes for styling
|
|
117
|
+
* @since 1.0.0
|
|
118
|
+
*/
|
|
119
|
+
declare function NavigationMenuList({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.List>): import("react/jsx-runtime").JSX.Element;
|
|
120
|
+
/**
|
|
121
|
+
* NavigationMenuItem - Individual navigation menu item container
|
|
122
|
+
*
|
|
123
|
+
* Wraps a single navigation item, which can contain either:
|
|
124
|
+
* - A NavigationMenuTrigger with NavigationMenuContent for dropdowns
|
|
125
|
+
* - A NavigationMenuLink for direct navigation
|
|
126
|
+
*
|
|
127
|
+
* @component
|
|
128
|
+
* @example
|
|
129
|
+
* ```tsx
|
|
130
|
+
* // With dropdown content
|
|
131
|
+
* <NavigationMenuItem>
|
|
132
|
+
* <NavigationMenuTrigger>Products</NavigationMenuTrigger>
|
|
133
|
+
* <NavigationMenuContent>
|
|
134
|
+
* <NavigationMenuLink href="/products/all">All Products</NavigationMenuLink>
|
|
135
|
+
* </NavigationMenuContent>
|
|
136
|
+
* </NavigationMenuItem>
|
|
137
|
+
* ```
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```tsx
|
|
141
|
+
* // Simple link
|
|
142
|
+
* <NavigationMenuItem>
|
|
143
|
+
* <NavigationMenuLink href="/contact">Contact</NavigationMenuLink>
|
|
144
|
+
* </NavigationMenuItem>
|
|
145
|
+
* ```
|
|
146
|
+
*
|
|
147
|
+
* @param className - Additional CSS classes for styling
|
|
148
|
+
* @since 1.0.0
|
|
149
|
+
*/
|
|
150
|
+
declare function NavigationMenuItem({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
|
|
151
|
+
declare const navigationMenuTriggerStyle: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
152
|
+
/**
|
|
153
|
+
* NavigationMenuTrigger - Button that opens dropdown navigation content
|
|
154
|
+
*
|
|
155
|
+
* An interactive trigger button that displays NavigationMenuContent when activated.
|
|
156
|
+
* Features automatic chevron icon rotation and hover/focus states. Supports the
|
|
157
|
+
* asChild prop for custom button styling.
|
|
158
|
+
*
|
|
159
|
+
* @component
|
|
160
|
+
* @example
|
|
161
|
+
* ```tsx
|
|
162
|
+
* <NavigationMenuTrigger>Features</NavigationMenuTrigger>
|
|
163
|
+
* ```
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* ```tsx
|
|
167
|
+
* // With custom button styling using asChild
|
|
168
|
+
* <NavigationMenuTrigger asChild>
|
|
169
|
+
* <Button variant="outline">Custom Trigger</Button>
|
|
170
|
+
* </NavigationMenuTrigger>
|
|
171
|
+
* ```
|
|
172
|
+
*
|
|
173
|
+
* @accessibility
|
|
174
|
+
* - Automatic ARIA expanded state management
|
|
175
|
+
* - Keyboard activation with Enter/Space keys
|
|
176
|
+
* - Focus visible indicator for keyboard navigation
|
|
177
|
+
* - Screen reader accessible button semantics
|
|
178
|
+
*
|
|
179
|
+
* @param className - Additional CSS classes for styling
|
|
180
|
+
* @param children - Button content (text, icons, etc.)
|
|
181
|
+
* @since 1.0.0
|
|
182
|
+
*/
|
|
183
|
+
declare function NavigationMenuTrigger({ className, children, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
|
|
184
|
+
/**
|
|
185
|
+
* NavigationMenuContent - Dropdown content panel for navigation menu
|
|
186
|
+
*
|
|
187
|
+
* The content container that appears when a NavigationMenuTrigger is activated.
|
|
188
|
+
* Supports enter/exit animations, responsive positioning, and flexible layouts.
|
|
189
|
+
* Can be styled differently based on the viewport prop setting.
|
|
190
|
+
*
|
|
191
|
+
* @component
|
|
192
|
+
* @example
|
|
193
|
+
* ```tsx
|
|
194
|
+
* <NavigationMenuContent>
|
|
195
|
+
* <div className="grid gap-3 p-6 w-[400px]">
|
|
196
|
+
* <NavigationMenuLink href="/feature1">Feature 1</NavigationMenuLink>
|
|
197
|
+
* <NavigationMenuLink href="/feature2">Feature 2</NavigationMenuLink>
|
|
198
|
+
* </div>
|
|
199
|
+
* </NavigationMenuContent>
|
|
200
|
+
* ```
|
|
201
|
+
*
|
|
202
|
+
* @example
|
|
203
|
+
* ```tsx
|
|
204
|
+
* // Complex layout with sections
|
|
205
|
+
* <NavigationMenuContent>
|
|
206
|
+
* <div className="grid gap-6 p-6 w-[600px] grid-cols-3">
|
|
207
|
+
* <div>
|
|
208
|
+
* <h4>Analytics</h4>
|
|
209
|
+
* <NavigationMenuLink href="/dashboard">Dashboard</NavigationMenuLink>
|
|
210
|
+
* </div>
|
|
211
|
+
* </div>
|
|
212
|
+
* </NavigationMenuContent>
|
|
213
|
+
* ```
|
|
214
|
+
*
|
|
215
|
+
* @accessibility
|
|
216
|
+
* - Automatic focus management when opened
|
|
217
|
+
* - Escape key support for closing
|
|
218
|
+
* - Proper ARIA labeling and relationships
|
|
219
|
+
*
|
|
220
|
+
* @param className - Additional CSS classes for styling
|
|
221
|
+
* @param children - Content to display in the dropdown (links, layouts, etc.)
|
|
222
|
+
* @since 1.0.0
|
|
223
|
+
*/
|
|
224
|
+
declare function NavigationMenuContent({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
|
|
225
|
+
/**
|
|
226
|
+
* NavigationMenuViewport - Viewport container for dropdown content positioning
|
|
227
|
+
*
|
|
228
|
+
* Manages the positioning, sizing, and animation of NavigationMenuContent panels.
|
|
229
|
+
* Automatically adjusts dimensions based on content size and provides smooth
|
|
230
|
+
* enter/exit animations. Only rendered when viewport prop is true on NavigationMenu.
|
|
231
|
+
*
|
|
232
|
+
* @component
|
|
233
|
+
* @internal This component is typically not used directly by consumers
|
|
234
|
+
*
|
|
235
|
+
* @accessibility
|
|
236
|
+
* - Handles focus containment for dropdown content
|
|
237
|
+
* - Manages viewport announcements for screen readers
|
|
238
|
+
*
|
|
239
|
+
* @param className - Additional CSS classes for styling
|
|
240
|
+
* @since 1.0.0
|
|
241
|
+
*/
|
|
242
|
+
declare function NavigationMenuViewport({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Viewport>): import("react/jsx-runtime").JSX.Element;
|
|
243
|
+
/**
|
|
244
|
+
* NavigationMenuLink - Styled link component for navigation menus
|
|
245
|
+
*
|
|
246
|
+
* A link component designed specifically for navigation menus. Supports active
|
|
247
|
+
* states, hover effects, and the asChild pattern for framework integration.
|
|
248
|
+
* Can be used both within dropdown content and as direct navigation items.
|
|
249
|
+
*
|
|
250
|
+
* @component
|
|
251
|
+
* @example
|
|
252
|
+
* ```tsx
|
|
253
|
+
* // Direct navigation link
|
|
254
|
+
* <NavigationMenuLink href="/about">About Us</NavigationMenuLink>
|
|
255
|
+
* ```
|
|
256
|
+
*
|
|
257
|
+
* @example
|
|
258
|
+
* ```tsx
|
|
259
|
+
* // With Next.js Link using asChild
|
|
260
|
+
* <NavigationMenuLink asChild>
|
|
261
|
+
* <Link href="/products">Products</Link>
|
|
262
|
+
* </NavigationMenuLink>
|
|
263
|
+
* ```
|
|
264
|
+
*
|
|
265
|
+
* @example
|
|
266
|
+
* ```tsx
|
|
267
|
+
* // In dropdown content with description
|
|
268
|
+
* <NavigationMenuLink href="/analytics">
|
|
269
|
+
* <div className="text-sm font-medium">Analytics</div>
|
|
270
|
+
* <p className="text-sm text-muted-foreground">View your data insights</p>
|
|
271
|
+
* </NavigationMenuLink>
|
|
272
|
+
* ```
|
|
273
|
+
*
|
|
274
|
+
* @example
|
|
275
|
+
* ```tsx
|
|
276
|
+
* // With trigger styling for direct navigation
|
|
277
|
+
* <NavigationMenuLink href="/docs" className={navigationMenuTriggerStyle()}>
|
|
278
|
+
* Documentation
|
|
279
|
+
* </NavigationMenuLink>
|
|
280
|
+
* ```
|
|
281
|
+
*
|
|
282
|
+
* @accessibility
|
|
283
|
+
* - Focus visible ring for keyboard navigation
|
|
284
|
+
* - Active state styling for current page indication
|
|
285
|
+
* - Proper link semantics and ARIA attributes
|
|
286
|
+
* - Keyboard activation support (Enter key)
|
|
287
|
+
* - Screen reader compatible text content
|
|
288
|
+
*
|
|
289
|
+
* @param className - Additional CSS classes for styling
|
|
290
|
+
* @param children - Link content (text, elements, descriptions)
|
|
291
|
+
* @since 1.0.0
|
|
292
|
+
*/
|
|
293
|
+
declare function NavigationMenuLink({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Link>): import("react/jsx-runtime").JSX.Element;
|
|
294
|
+
/**
|
|
295
|
+
* NavigationMenuIndicator - Visual indicator for active menu item
|
|
296
|
+
*
|
|
297
|
+
* Displays an animated arrow indicator that points to the currently active
|
|
298
|
+
* or hovered navigation menu item. Automatically transitions between positions
|
|
299
|
+
* as users navigate through menu items, providing visual feedback.
|
|
300
|
+
*
|
|
301
|
+
* @component
|
|
302
|
+
* @example
|
|
303
|
+
* ```tsx
|
|
304
|
+
* // Typically used automatically, but can be customized
|
|
305
|
+
* <NavigationMenuIndicator className="custom-indicator-styles" />
|
|
306
|
+
* ```
|
|
307
|
+
*
|
|
308
|
+
* @accessibility
|
|
309
|
+
* - Purely decorative visual element
|
|
310
|
+
* - Does not interfere with screen reader navigation
|
|
311
|
+
* - Hidden from assistive technologies (aria-hidden)
|
|
312
|
+
*
|
|
313
|
+
* @param className - Additional CSS classes for custom indicator styling
|
|
314
|
+
* @since 1.0.0
|
|
315
|
+
*/
|
|
316
|
+
declare function NavigationMenuIndicator({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>): import("react/jsx-runtime").JSX.Element;
|
|
317
|
+
export { NavigationMenu, NavigationMenuList, NavigationMenuItem, NavigationMenuContent, NavigationMenuTrigger, NavigationMenuLink, NavigationMenuIndicator, NavigationMenuViewport, navigationMenuTriggerStyle, };
|
|
318
|
+
//# sourceMappingURL=navigation-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation-menu.d.ts","sourceRoot":"","sources":["../../../src/components/ui/navigation-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,uBAAuB,MAAM,iCAAiC,CAAC;AAM3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiFG;AACH;;;;;;;GAOG;AACH,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,QAAQ,EACR,QAAe,EACf,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,IAAI,CAAC,GAAG;IAC7D,mFAAmF;IACnF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,2CAeA;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,IAAI,CAAC,2CAW3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,IAAI,CAAC,2CAQ3D;AAED,QAAA,MAAM,0BAA0B,oFAE/B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,iBAAS,qBAAqB,CAAC,EAC7B,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,OAAO,CAAC,2CAc9D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,iBAAS,qBAAqB,CAAC,EAC7B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,OAAO,CAAC,2CAY9D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,QAAQ,CAAC,2CAiB/D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,IAAI,CAAC,2CAW3D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,iBAAS,uBAAuB,CAAC,EAC/B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,uBAAuB,CAAC,SAAS,CAAC,2CAahE;AAED,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,GAC3B,CAAC"}
|
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Button } from "@/components/ui/button";
|
|
3
|
+
/**
|
|
4
|
+
* Pagination navigation component for large datasets
|
|
5
|
+
*
|
|
6
|
+
* A comprehensive pagination component built on shadcn/ui standards that provides
|
|
7
|
+
* intuitive navigation through pages of content. Features responsive design,
|
|
8
|
+
* accessibility compliance, and flexible composition patterns for different use cases.
|
|
9
|
+
*
|
|
10
|
+
* Ideal for data tables, search results, product listings, and any paginated content.
|
|
11
|
+
* Integrates seamlessly with React frameworks like Next.js through customizable link components.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* // Basic pagination with numbered pages
|
|
16
|
+
* <Pagination>
|
|
17
|
+
* <PaginationContent>
|
|
18
|
+
* <PaginationItem>
|
|
19
|
+
* <PaginationPrevious href="/page/1" />
|
|
20
|
+
* </PaginationItem>
|
|
21
|
+
* <PaginationItem>
|
|
22
|
+
* <PaginationLink href="/page/1">1</PaginationLink>
|
|
23
|
+
* </PaginationItem>
|
|
24
|
+
* <PaginationItem>
|
|
25
|
+
* <PaginationLink href="/page/2" isActive>2</PaginationLink>
|
|
26
|
+
* </PaginationItem>
|
|
27
|
+
* <PaginationItem>
|
|
28
|
+
* <PaginationLink href="/page/3">3</PaginationLink>
|
|
29
|
+
* </PaginationItem>
|
|
30
|
+
* <PaginationItem>
|
|
31
|
+
* <PaginationNext href="/page/3" />
|
|
32
|
+
* </PaginationItem>
|
|
33
|
+
* </PaginationContent>
|
|
34
|
+
* </Pagination>
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* // With ellipsis for large page ranges
|
|
40
|
+
* <Pagination>
|
|
41
|
+
* <PaginationContent>
|
|
42
|
+
* <PaginationItem>
|
|
43
|
+
* <PaginationPrevious href="/page/4" />
|
|
44
|
+
* </PaginationItem>
|
|
45
|
+
* <PaginationItem>
|
|
46
|
+
* <PaginationLink href="/page/1">1</PaginationLink>
|
|
47
|
+
* </PaginationItem>
|
|
48
|
+
* <PaginationItem>
|
|
49
|
+
* <PaginationEllipsis />
|
|
50
|
+
* </PaginationItem>
|
|
51
|
+
* <PaginationItem>
|
|
52
|
+
* <PaginationLink href="/page/5" isActive>5</PaginationLink>
|
|
53
|
+
* </PaginationItem>
|
|
54
|
+
* <PaginationItem>
|
|
55
|
+
* <PaginationEllipsis />
|
|
56
|
+
* </PaginationItem>
|
|
57
|
+
* <PaginationItem>
|
|
58
|
+
* <PaginationLink href="/page/50">50</PaginationLink>
|
|
59
|
+
* </PaginationItem>
|
|
60
|
+
* <PaginationItem>
|
|
61
|
+
* <PaginationNext href="/page/6" />
|
|
62
|
+
* </PaginationItem>
|
|
63
|
+
* </PaginationContent>
|
|
64
|
+
* </Pagination>
|
|
65
|
+
* ```
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```tsx
|
|
69
|
+
* // With Next.js Link integration
|
|
70
|
+
* <Pagination>
|
|
71
|
+
* <PaginationContent>
|
|
72
|
+
* <PaginationItem>
|
|
73
|
+
* <PaginationLink asChild>
|
|
74
|
+
* <Link href="/products?page=1">1</Link>
|
|
75
|
+
* </PaginationLink>
|
|
76
|
+
* </PaginationItem>
|
|
77
|
+
* </PaginationContent>
|
|
78
|
+
* </Pagination>
|
|
79
|
+
* ```
|
|
80
|
+
*
|
|
81
|
+
* @accessibility
|
|
82
|
+
* - Semantic nav element with role="navigation" and aria-label="pagination"
|
|
83
|
+
* - aria-current="page" automatically applied to active page links
|
|
84
|
+
* - Descriptive aria-labels on Previous/Next buttons for screen readers
|
|
85
|
+
* - Full keyboard navigation support with Tab and Enter keys
|
|
86
|
+
* - High contrast focus indicators and proper color contrast ratios
|
|
87
|
+
* - Screen reader friendly ellipsis with "More pages" hidden text
|
|
88
|
+
*
|
|
89
|
+
* @see {@link https://ui.shadcn.com/docs/components/pagination} shadcn/ui Pagination
|
|
90
|
+
* @see {@link PaginationContent} Container for pagination items
|
|
91
|
+
* @see {@link PaginationLink} Individual page number links
|
|
92
|
+
* @see {@link PaginationPrevious} Previous page navigation button
|
|
93
|
+
* @see {@link PaginationNext} Next page navigation button
|
|
94
|
+
* @see {@link PaginationEllipsis} Ellipsis indicator for omitted pages
|
|
95
|
+
* @since 1.0.0
|
|
96
|
+
*/
|
|
97
|
+
declare function Pagination({ className, ...props }: React.ComponentProps<"nav">): import("react/jsx-runtime").JSX.Element;
|
|
98
|
+
/**
|
|
99
|
+
* Container for pagination navigation items
|
|
100
|
+
*
|
|
101
|
+
* A semantic unordered list that houses all pagination controls in a
|
|
102
|
+
* responsive horizontal layout. Provides proper spacing and alignment
|
|
103
|
+
* for pagination items while maintaining accessibility standards.
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```tsx
|
|
107
|
+
* <PaginationContent>
|
|
108
|
+
* <PaginationItem>
|
|
109
|
+
* <PaginationPrevious href="/prev" />
|
|
110
|
+
* </PaginationItem>
|
|
111
|
+
* <PaginationItem>
|
|
112
|
+
* <PaginationLink href="/page/1">1</PaginationLink>
|
|
113
|
+
* </PaginationItem>
|
|
114
|
+
* </PaginationContent>
|
|
115
|
+
* ```
|
|
116
|
+
*
|
|
117
|
+
* @accessibility
|
|
118
|
+
* - Semantic ul element for proper list structure
|
|
119
|
+
* - Flexible gap spacing for touch-friendly interaction
|
|
120
|
+
* - Horizontal scrolling support on narrow viewports
|
|
121
|
+
*/
|
|
122
|
+
declare function PaginationContent({ className, ...props }: React.ComponentProps<"ul">): import("react/jsx-runtime").JSX.Element;
|
|
123
|
+
/**
|
|
124
|
+
* Individual list item wrapper for pagination controls
|
|
125
|
+
*
|
|
126
|
+
* A semantic list item that wraps pagination links, buttons, or ellipsis elements.
|
|
127
|
+
* Provides consistent structure and enables proper keyboard navigation between
|
|
128
|
+
* pagination controls.
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* ```tsx
|
|
132
|
+
* <PaginationItem>
|
|
133
|
+
* <PaginationLink href="/page/1">1</PaginationLink>
|
|
134
|
+
* </PaginationItem>
|
|
135
|
+
*
|
|
136
|
+
* <PaginationItem>
|
|
137
|
+
* <PaginationEllipsis />
|
|
138
|
+
* </PaginationItem>
|
|
139
|
+
* ```
|
|
140
|
+
*/
|
|
141
|
+
declare function PaginationItem({ ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
|
|
142
|
+
/**
|
|
143
|
+
* Props for pagination link components
|
|
144
|
+
*/
|
|
145
|
+
type PaginationLinkProps = {
|
|
146
|
+
/**
|
|
147
|
+
* Whether this link represents the currently active page
|
|
148
|
+
*
|
|
149
|
+
* When true, applies active styling and adds aria-current="page"
|
|
150
|
+
* for screen reader accessibility.
|
|
151
|
+
*
|
|
152
|
+
* @default false
|
|
153
|
+
*/
|
|
154
|
+
isActive?: boolean;
|
|
155
|
+
} & Pick<React.ComponentProps<typeof Button>, "size"> & React.ComponentProps<"a">;
|
|
156
|
+
/**
|
|
157
|
+
* Clickable link for individual page numbers
|
|
158
|
+
*
|
|
159
|
+
* Interactive link component that navigates to specific pages within
|
|
160
|
+
* paginated content. Features automatic active state styling and
|
|
161
|
+
* accessibility attributes. Can be used with framework routers like
|
|
162
|
+
* Next.js Link or React Router through the asChild pattern.
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* ```tsx
|
|
166
|
+
* // Basic page links
|
|
167
|
+
* <PaginationLink href="/products?page=1">1</PaginationLink>
|
|
168
|
+
* <PaginationLink href="/products?page=2" isActive>2</PaginationLink>
|
|
169
|
+
* <PaginationLink href="/products?page=3">3</PaginationLink>
|
|
170
|
+
* ```
|
|
171
|
+
*
|
|
172
|
+
* @example
|
|
173
|
+
* ```tsx
|
|
174
|
+
* // With Next.js Link
|
|
175
|
+
* <PaginationLink asChild>
|
|
176
|
+
* <Link href="/search?q=react&page=1">1</Link>
|
|
177
|
+
* </PaginationLink>
|
|
178
|
+
* ```
|
|
179
|
+
*
|
|
180
|
+
* @example
|
|
181
|
+
* ```tsx
|
|
182
|
+
* // With onClick handlers for client-side pagination
|
|
183
|
+
* <PaginationLink
|
|
184
|
+
* href="#"
|
|
185
|
+
* onClick={(e) => {
|
|
186
|
+
* e.preventDefault();
|
|
187
|
+
* onPageChange(1);
|
|
188
|
+
* }}
|
|
189
|
+
* >
|
|
190
|
+
* 1
|
|
191
|
+
* </PaginationLink>
|
|
192
|
+
* ```
|
|
193
|
+
*
|
|
194
|
+
* @accessibility
|
|
195
|
+
* - Automatically applies aria-current="page" when isActive is true
|
|
196
|
+
* - Button-style focus indicators for keyboard navigation
|
|
197
|
+
* - Sufficient color contrast for active/inactive states
|
|
198
|
+
* - Touch-friendly minimum 44px target size
|
|
199
|
+
*/
|
|
200
|
+
declare function PaginationLink({ className, isActive, size, ...props }: PaginationLinkProps): import("react/jsx-runtime").JSX.Element;
|
|
201
|
+
/**
|
|
202
|
+
* Previous page navigation button
|
|
203
|
+
*
|
|
204
|
+
* Navigates to the previous page in the pagination sequence. Features
|
|
205
|
+
* responsive design that shows only an icon on mobile devices and
|
|
206
|
+
* icon with text on larger screens for optimal user experience.
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* ```tsx
|
|
210
|
+
* // Basic previous button
|
|
211
|
+
* <PaginationPrevious href="/products?page=1" />
|
|
212
|
+
* ```
|
|
213
|
+
*
|
|
214
|
+
* @example
|
|
215
|
+
* ```tsx
|
|
216
|
+
* // With disabled state (typically for first page)
|
|
217
|
+
* <PaginationPrevious
|
|
218
|
+
* href="#"
|
|
219
|
+
* className="pointer-events-none opacity-50"
|
|
220
|
+
* aria-disabled="true"
|
|
221
|
+
* />
|
|
222
|
+
* ```
|
|
223
|
+
*
|
|
224
|
+
* @example
|
|
225
|
+
* ```tsx
|
|
226
|
+
* // With click handler for client-side navigation
|
|
227
|
+
* <PaginationPrevious
|
|
228
|
+
* href="#"
|
|
229
|
+
* onClick={(e) => {
|
|
230
|
+
* e.preventDefault();
|
|
231
|
+
* if (currentPage > 1) {
|
|
232
|
+
* onPageChange(currentPage - 1);
|
|
233
|
+
* }
|
|
234
|
+
* }}
|
|
235
|
+
* />
|
|
236
|
+
* ```
|
|
237
|
+
*
|
|
238
|
+
* @accessibility
|
|
239
|
+
* - Built-in aria-label="Go to previous page" for screen readers
|
|
240
|
+
* - Chevron icon provides visual direction context
|
|
241
|
+
* - Responsive text label appears on larger screens
|
|
242
|
+
* - Keyboard accessible through Tab navigation
|
|
243
|
+
* - Should be disabled on first page to prevent confusion
|
|
244
|
+
*/
|
|
245
|
+
declare function PaginationPrevious({ className, ...props }: React.ComponentProps<typeof PaginationLink>): import("react/jsx-runtime").JSX.Element;
|
|
246
|
+
/**
|
|
247
|
+
* Next page navigation button
|
|
248
|
+
*
|
|
249
|
+
* Navigates to the next page in the pagination sequence. Features
|
|
250
|
+
* responsive design that shows only an icon on mobile devices and
|
|
251
|
+
* text with icon on larger screens for optimal user experience.
|
|
252
|
+
*
|
|
253
|
+
* @example
|
|
254
|
+
* ```tsx
|
|
255
|
+
* // Basic next button
|
|
256
|
+
* <PaginationNext href="/products?page=3" />
|
|
257
|
+
* ```
|
|
258
|
+
*
|
|
259
|
+
* @example
|
|
260
|
+
* ```tsx
|
|
261
|
+
* // With disabled state (typically for last page)
|
|
262
|
+
* <PaginationNext
|
|
263
|
+
* href="#"
|
|
264
|
+
* className="pointer-events-none opacity-50"
|
|
265
|
+
* aria-disabled="true"
|
|
266
|
+
* />
|
|
267
|
+
* ```
|
|
268
|
+
*
|
|
269
|
+
* @example
|
|
270
|
+
* ```tsx
|
|
271
|
+
* // With click handler for client-side navigation
|
|
272
|
+
* <PaginationNext
|
|
273
|
+
* href="#"
|
|
274
|
+
* onClick={(e) => {
|
|
275
|
+
* e.preventDefault();
|
|
276
|
+
* if (currentPage < totalPages) {
|
|
277
|
+
* onPageChange(currentPage + 1);
|
|
278
|
+
* }
|
|
279
|
+
* }}
|
|
280
|
+
* />
|
|
281
|
+
* ```
|
|
282
|
+
*
|
|
283
|
+
* @accessibility
|
|
284
|
+
* - Built-in aria-label="Go to next page" for screen readers
|
|
285
|
+
* - Chevron icon provides visual direction context
|
|
286
|
+
* - Responsive text label appears on larger screens
|
|
287
|
+
* - Keyboard accessible through Tab navigation
|
|
288
|
+
* - Should be disabled on last page to prevent confusion
|
|
289
|
+
*/
|
|
290
|
+
declare function PaginationNext({ className, ...props }: React.ComponentProps<typeof PaginationLink>): import("react/jsx-runtime").JSX.Element;
|
|
291
|
+
/**
|
|
292
|
+
* Visual indicator for omitted page numbers
|
|
293
|
+
*
|
|
294
|
+
* Displays a horizontal ellipsis (three dots) to indicate that
|
|
295
|
+
* page numbers have been omitted from the pagination display.
|
|
296
|
+
* Used to maintain clean UI when dealing with large page ranges.
|
|
297
|
+
*
|
|
298
|
+
* @example
|
|
299
|
+
* ```tsx
|
|
300
|
+
* // Between page ranges
|
|
301
|
+
* <PaginationItem>
|
|
302
|
+
* <PaginationLink href="/page/1">1</PaginationLink>
|
|
303
|
+
* </PaginationItem>
|
|
304
|
+
* <PaginationItem>
|
|
305
|
+
* <PaginationEllipsis />
|
|
306
|
+
* </PaginationItem>
|
|
307
|
+
* <PaginationItem>
|
|
308
|
+
* <PaginationLink href="/page/25" isActive>25</PaginationLink>
|
|
309
|
+
* </PaginationItem>
|
|
310
|
+
* ```
|
|
311
|
+
*
|
|
312
|
+
* @example
|
|
313
|
+
* ```tsx
|
|
314
|
+
* // Common pagination pattern with ellipsis
|
|
315
|
+
* // 1 ... 23 24 [25] 26 27 ... 100
|
|
316
|
+
* <PaginationContent>
|
|
317
|
+
* <PaginationItem>
|
|
318
|
+
* <PaginationLink href="/page/1">1</PaginationLink>
|
|
319
|
+
* </PaginationItem>
|
|
320
|
+
* <PaginationItem>
|
|
321
|
+
* <PaginationEllipsis />
|
|
322
|
+
* </PaginationItem>
|
|
323
|
+
* <PaginationItem>
|
|
324
|
+
* <PaginationLink href="/page/25" isActive>25</PaginationLink>
|
|
325
|
+
* </PaginationItem>
|
|
326
|
+
* <PaginationItem>
|
|
327
|
+
* <PaginationEllipsis />
|
|
328
|
+
* </PaginationItem>
|
|
329
|
+
* <PaginationItem>
|
|
330
|
+
* <PaginationLink href="/page/100">100</PaginationLink>
|
|
331
|
+
* </PaginationItem>
|
|
332
|
+
* </PaginationContent>
|
|
333
|
+
* ```
|
|
334
|
+
*
|
|
335
|
+
* @accessibility
|
|
336
|
+
* - Visual element is aria-hidden from screen readers
|
|
337
|
+
* - Hidden "More pages" text provides context for assistive technology
|
|
338
|
+
* - Non-interactive, purely decorative indicator
|
|
339
|
+
* - Consistent sizing with pagination links for visual harmony
|
|
340
|
+
*/
|
|
341
|
+
declare function PaginationEllipsis({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
|
|
342
|
+
export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, };
|
|
343
|
+
//# sourceMappingURL=pagination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../../src/components/ui/pagination.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,MAAM,EAAkB,MAAM,wBAAwB,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6FG;AACH,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAUvE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAQ5B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,iBAAS,cAAc,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAE/D;AAED;;GAEG;AACH,KAAK,mBAAmB,GAAG;IACzB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,MAAM,CAAC,GACnD,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,QAAQ,EACR,IAAa,EACb,GAAG,KAAK,EACT,EAAE,mBAAmB,2CAgBrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,2CAY7C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,2CAY7C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,2CAY9B;AAED,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,CAAC"}
|