@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,539 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react-vite";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import {
|
|
4
|
+
ChevronDown,
|
|
5
|
+
FileText,
|
|
6
|
+
Home,
|
|
7
|
+
Info,
|
|
8
|
+
Mail,
|
|
9
|
+
Settings,
|
|
10
|
+
User,
|
|
11
|
+
Zap,
|
|
12
|
+
} from "lucide-react";
|
|
13
|
+
import {
|
|
14
|
+
NavigationMenu,
|
|
15
|
+
NavigationMenuContent,
|
|
16
|
+
NavigationMenuItem,
|
|
17
|
+
NavigationMenuLink,
|
|
18
|
+
NavigationMenuList,
|
|
19
|
+
NavigationMenuTrigger,
|
|
20
|
+
navigationMenuTriggerStyle,
|
|
21
|
+
} from "../navigation-menu";
|
|
22
|
+
import { Button } from "../button";
|
|
23
|
+
|
|
24
|
+
const meta = {
|
|
25
|
+
title: "Navigation & Menus/NavigationMenu",
|
|
26
|
+
component: NavigationMenu,
|
|
27
|
+
parameters: {
|
|
28
|
+
layout: "padded",
|
|
29
|
+
docs: {
|
|
30
|
+
description: {
|
|
31
|
+
component:
|
|
32
|
+
"A collection of links for navigating websites. Built on Radix UI primitives with full keyboard navigation, accessibility compliance, and responsive design. Perfect for website headers and main navigation areas.",
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
tags: ["autodocs"],
|
|
37
|
+
argTypes: {
|
|
38
|
+
viewport: {
|
|
39
|
+
control: "boolean",
|
|
40
|
+
description: "Whether to render the navigation viewport container for dropdown positioning",
|
|
41
|
+
defaultValue: true,
|
|
42
|
+
},
|
|
43
|
+
className: {
|
|
44
|
+
control: "text",
|
|
45
|
+
description: "Additional CSS classes to apply to the navigation menu",
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
} satisfies Meta<typeof NavigationMenu>;
|
|
49
|
+
|
|
50
|
+
export default meta;
|
|
51
|
+
type Story = StoryObj<typeof meta>;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Interactive playground for testing all NavigationMenu features and configurations.
|
|
55
|
+
* Adjust the controls to explore different viewport settings and styling options.
|
|
56
|
+
*/
|
|
57
|
+
export const Interactive: Story = {
|
|
58
|
+
args: {
|
|
59
|
+
viewport: true,
|
|
60
|
+
},
|
|
61
|
+
render: (args) => (
|
|
62
|
+
<div className="flex justify-center w-full">
|
|
63
|
+
<NavigationMenu {...args}>
|
|
64
|
+
<NavigationMenuList>
|
|
65
|
+
<NavigationMenuItem>
|
|
66
|
+
<NavigationMenuTrigger>
|
|
67
|
+
<User className="mr-2 h-4 w-4" />
|
|
68
|
+
Products
|
|
69
|
+
</NavigationMenuTrigger>
|
|
70
|
+
<NavigationMenuContent>
|
|
71
|
+
<ul className="grid gap-3 p-6 md:w-[400px] lg:w-[500px] lg:grid-cols-[.75fr_1fr]">
|
|
72
|
+
<li className="row-span-3">
|
|
73
|
+
<NavigationMenuLink asChild>
|
|
74
|
+
<a
|
|
75
|
+
className="flex h-full w-full select-none flex-col justify-end rounded-md bg-gradient-to-b from-muted/50 to-muted p-6 no-underline outline-none focus:shadow-md"
|
|
76
|
+
href="#"
|
|
77
|
+
>
|
|
78
|
+
<Zap className="h-6 w-6" />
|
|
79
|
+
<div className="mb-2 mt-4 text-lg font-medium">
|
|
80
|
+
Enterprise Suite
|
|
81
|
+
</div>
|
|
82
|
+
<p className="text-sm leading-tight text-muted-foreground">
|
|
83
|
+
Complete business solution with advanced analytics and integrations.
|
|
84
|
+
</p>
|
|
85
|
+
</a>
|
|
86
|
+
</NavigationMenuLink>
|
|
87
|
+
</li>
|
|
88
|
+
<li>
|
|
89
|
+
<NavigationMenuLink asChild>
|
|
90
|
+
<a href="#" className="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground">
|
|
91
|
+
<div className="text-sm font-medium leading-none">Analytics</div>
|
|
92
|
+
<p className="line-clamp-2 text-sm leading-snug text-muted-foreground">
|
|
93
|
+
Advanced data insights and reporting tools.
|
|
94
|
+
</p>
|
|
95
|
+
</a>
|
|
96
|
+
</NavigationMenuLink>
|
|
97
|
+
</li>
|
|
98
|
+
<li>
|
|
99
|
+
<NavigationMenuLink asChild>
|
|
100
|
+
<a href="#" className="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground">
|
|
101
|
+
<div className="text-sm font-medium leading-none">Automation</div>
|
|
102
|
+
<p className="line-clamp-2 text-sm leading-snug text-muted-foreground">
|
|
103
|
+
Streamline workflows with intelligent automation.
|
|
104
|
+
</p>
|
|
105
|
+
</a>
|
|
106
|
+
</NavigationMenuLink>
|
|
107
|
+
</li>
|
|
108
|
+
<li>
|
|
109
|
+
<NavigationMenuLink asChild>
|
|
110
|
+
<a href="#" className="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground">
|
|
111
|
+
<div className="text-sm font-medium leading-none">Integration</div>
|
|
112
|
+
<p className="line-clamp-2 text-sm leading-snug text-muted-foreground">
|
|
113
|
+
Connect with your existing tools and services.
|
|
114
|
+
</p>
|
|
115
|
+
</a>
|
|
116
|
+
</NavigationMenuLink>
|
|
117
|
+
</li>
|
|
118
|
+
</ul>
|
|
119
|
+
</NavigationMenuContent>
|
|
120
|
+
</NavigationMenuItem>
|
|
121
|
+
<NavigationMenuItem>
|
|
122
|
+
<NavigationMenuTrigger>
|
|
123
|
+
<Settings className="mr-2 h-4 w-4" />
|
|
124
|
+
Solutions
|
|
125
|
+
</NavigationMenuTrigger>
|
|
126
|
+
<NavigationMenuContent>
|
|
127
|
+
<ul className="grid w-[400px] gap-3 p-4 md:w-[500px] md:grid-cols-2 lg:w-[600px]">
|
|
128
|
+
<li>
|
|
129
|
+
<NavigationMenuLink asChild>
|
|
130
|
+
<a href="#" className="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground">
|
|
131
|
+
<div className="text-sm font-medium leading-none">E-commerce</div>
|
|
132
|
+
<p className="line-clamp-2 text-sm leading-snug text-muted-foreground">
|
|
133
|
+
Complete online store solution with inventory management.
|
|
134
|
+
</p>
|
|
135
|
+
</a>
|
|
136
|
+
</NavigationMenuLink>
|
|
137
|
+
</li>
|
|
138
|
+
<li>
|
|
139
|
+
<NavigationMenuLink asChild>
|
|
140
|
+
<a href="#" className="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground">
|
|
141
|
+
<div className="text-sm font-medium leading-none">Healthcare</div>
|
|
142
|
+
<p className="line-clamp-2 text-sm leading-snug text-muted-foreground">
|
|
143
|
+
HIPAA-compliant patient management and scheduling system.
|
|
144
|
+
</p>
|
|
145
|
+
</a>
|
|
146
|
+
</NavigationMenuLink>
|
|
147
|
+
</li>
|
|
148
|
+
<li>
|
|
149
|
+
<NavigationMenuLink asChild>
|
|
150
|
+
<a href="#" className="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground">
|
|
151
|
+
<div className="text-sm font-medium leading-none">Education</div>
|
|
152
|
+
<p className="line-clamp-2 text-sm leading-snug text-muted-foreground">
|
|
153
|
+
Learning management system with student tracking.
|
|
154
|
+
</p>
|
|
155
|
+
</a>
|
|
156
|
+
</NavigationMenuLink>
|
|
157
|
+
</li>
|
|
158
|
+
<li>
|
|
159
|
+
<NavigationMenuLink asChild>
|
|
160
|
+
<a href="#" className="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground">
|
|
161
|
+
<div className="text-sm font-medium leading-none">Finance</div>
|
|
162
|
+
<p className="line-clamp-2 text-sm leading-snug text-muted-foreground">
|
|
163
|
+
Secure financial data processing and reporting tools.
|
|
164
|
+
</p>
|
|
165
|
+
</a>
|
|
166
|
+
</NavigationMenuLink>
|
|
167
|
+
</li>
|
|
168
|
+
</ul>
|
|
169
|
+
</NavigationMenuContent>
|
|
170
|
+
</NavigationMenuItem>
|
|
171
|
+
<NavigationMenuItem>
|
|
172
|
+
<NavigationMenuLink href="#" className={navigationMenuTriggerStyle()}>
|
|
173
|
+
<Mail className="mr-2 h-4 w-4" />
|
|
174
|
+
Contact
|
|
175
|
+
</NavigationMenuLink>
|
|
176
|
+
</NavigationMenuItem>
|
|
177
|
+
<NavigationMenuItem>
|
|
178
|
+
<NavigationMenuLink href="#" className={navigationMenuTriggerStyle()}>
|
|
179
|
+
<Info className="mr-2 h-4 w-4" />
|
|
180
|
+
About
|
|
181
|
+
</NavigationMenuLink>
|
|
182
|
+
</NavigationMenuItem>
|
|
183
|
+
</NavigationMenuList>
|
|
184
|
+
</NavigationMenu>
|
|
185
|
+
</div>
|
|
186
|
+
),
|
|
187
|
+
parameters: {
|
|
188
|
+
docs: {
|
|
189
|
+
description: {
|
|
190
|
+
story: "Interactive playground for testing NavigationMenu with full feature set including dropdown content, icons, and different link types. Use the controls to explore viewport settings and styling options.",
|
|
191
|
+
},
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Comprehensive showcase of all NavigationMenu variants and configurations.
|
|
198
|
+
* Demonstrates different navigation patterns and styling approaches.
|
|
199
|
+
*/
|
|
200
|
+
export const Variants: Story = {
|
|
201
|
+
render: () => (
|
|
202
|
+
<div className="space-y-8 w-full max-w-4xl">
|
|
203
|
+
{/* Basic Navigation with Dropdown */}
|
|
204
|
+
<div>
|
|
205
|
+
<h3 className="text-sm font-medium mb-4">With Dropdown Content</h3>
|
|
206
|
+
<NavigationMenu>
|
|
207
|
+
<NavigationMenuList>
|
|
208
|
+
<NavigationMenuItem>
|
|
209
|
+
<NavigationMenuTrigger>Getting Started</NavigationMenuTrigger>
|
|
210
|
+
<NavigationMenuContent>
|
|
211
|
+
<ul className="grid gap-3 p-6 w-[400px]">
|
|
212
|
+
<li>
|
|
213
|
+
<NavigationMenuLink asChild>
|
|
214
|
+
<a href="#" className="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground">
|
|
215
|
+
<div className="text-sm font-medium leading-none">Introduction</div>
|
|
216
|
+
<p className="line-clamp-2 text-sm leading-snug text-muted-foreground">
|
|
217
|
+
Re-usable components built using Radix UI and Tailwind CSS.
|
|
218
|
+
</p>
|
|
219
|
+
</a>
|
|
220
|
+
</NavigationMenuLink>
|
|
221
|
+
</li>
|
|
222
|
+
<li>
|
|
223
|
+
<NavigationMenuLink asChild>
|
|
224
|
+
<a href="#" className="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground">
|
|
225
|
+
<div className="text-sm font-medium leading-none">Installation</div>
|
|
226
|
+
<p className="line-clamp-2 text-sm leading-snug text-muted-foreground">
|
|
227
|
+
How to install dependencies and structure your app.
|
|
228
|
+
</p>
|
|
229
|
+
</a>
|
|
230
|
+
</NavigationMenuLink>
|
|
231
|
+
</li>
|
|
232
|
+
</ul>
|
|
233
|
+
</NavigationMenuContent>
|
|
234
|
+
</NavigationMenuItem>
|
|
235
|
+
<NavigationMenuItem>
|
|
236
|
+
<NavigationMenuLink href="#" className={navigationMenuTriggerStyle()}>
|
|
237
|
+
Documentation
|
|
238
|
+
</NavigationMenuLink>
|
|
239
|
+
</NavigationMenuItem>
|
|
240
|
+
</NavigationMenuList>
|
|
241
|
+
</NavigationMenu>
|
|
242
|
+
</div>
|
|
243
|
+
|
|
244
|
+
{/* Simple Horizontal Navigation */}
|
|
245
|
+
<div>
|
|
246
|
+
<h3 className="text-sm font-medium mb-4">Simple Horizontal</h3>
|
|
247
|
+
<NavigationMenu>
|
|
248
|
+
<NavigationMenuList>
|
|
249
|
+
<NavigationMenuItem>
|
|
250
|
+
<NavigationMenuLink href="#" className={navigationMenuTriggerStyle()}>
|
|
251
|
+
<Home className="mr-2 h-4 w-4" />
|
|
252
|
+
Home
|
|
253
|
+
</NavigationMenuLink>
|
|
254
|
+
</NavigationMenuItem>
|
|
255
|
+
<NavigationMenuItem>
|
|
256
|
+
<NavigationMenuLink href="#" className={navigationMenuTriggerStyle()}>
|
|
257
|
+
<Info className="mr-2 h-4 w-4" />
|
|
258
|
+
About
|
|
259
|
+
</NavigationMenuLink>
|
|
260
|
+
</NavigationMenuItem>
|
|
261
|
+
<NavigationMenuItem>
|
|
262
|
+
<NavigationMenuLink href="#" className={navigationMenuTriggerStyle()}>
|
|
263
|
+
<Mail className="mr-2 h-4 w-4" />
|
|
264
|
+
Contact
|
|
265
|
+
</NavigationMenuLink>
|
|
266
|
+
</NavigationMenuItem>
|
|
267
|
+
</NavigationMenuList>
|
|
268
|
+
</NavigationMenu>
|
|
269
|
+
</div>
|
|
270
|
+
|
|
271
|
+
{/* Without Viewport */}
|
|
272
|
+
<div>
|
|
273
|
+
<h3 className="text-sm font-medium mb-4">Without Viewport</h3>
|
|
274
|
+
<NavigationMenu viewport={false}>
|
|
275
|
+
<NavigationMenuList>
|
|
276
|
+
<NavigationMenuItem>
|
|
277
|
+
<NavigationMenuTrigger>Products</NavigationMenuTrigger>
|
|
278
|
+
<NavigationMenuContent>
|
|
279
|
+
<div className="grid gap-3 p-4 w-[300px]">
|
|
280
|
+
<NavigationMenuLink asChild>
|
|
281
|
+
<a href="#" className="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground">
|
|
282
|
+
<div className="text-sm font-medium leading-none">Analytics</div>
|
|
283
|
+
<p className="line-clamp-2 text-sm leading-snug text-muted-foreground">
|
|
284
|
+
Get insights into your business performance
|
|
285
|
+
</p>
|
|
286
|
+
</a>
|
|
287
|
+
</NavigationMenuLink>
|
|
288
|
+
<NavigationMenuLink asChild>
|
|
289
|
+
<a href="#" className="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground">
|
|
290
|
+
<div className="text-sm font-medium leading-none">Monitoring</div>
|
|
291
|
+
<p className="line-clamp-2 text-sm leading-snug text-muted-foreground">
|
|
292
|
+
Monitor your application health and performance
|
|
293
|
+
</p>
|
|
294
|
+
</a>
|
|
295
|
+
</NavigationMenuLink>
|
|
296
|
+
</div>
|
|
297
|
+
</NavigationMenuContent>
|
|
298
|
+
</NavigationMenuItem>
|
|
299
|
+
<NavigationMenuItem>
|
|
300
|
+
<NavigationMenuLink href="#" className={navigationMenuTriggerStyle()}>
|
|
301
|
+
Pricing
|
|
302
|
+
</NavigationMenuLink>
|
|
303
|
+
</NavigationMenuItem>
|
|
304
|
+
</NavigationMenuList>
|
|
305
|
+
</NavigationMenu>
|
|
306
|
+
</div>
|
|
307
|
+
|
|
308
|
+
{/* Custom Button Triggers */}
|
|
309
|
+
<div>
|
|
310
|
+
<h3 className="text-sm font-medium mb-4">Custom Button Triggers</h3>
|
|
311
|
+
<NavigationMenu>
|
|
312
|
+
<NavigationMenuList>
|
|
313
|
+
<NavigationMenuItem>
|
|
314
|
+
<NavigationMenuTrigger asChild>
|
|
315
|
+
<Button variant="outline">
|
|
316
|
+
<FileText className="mr-2 h-4 w-4" />
|
|
317
|
+
Documents
|
|
318
|
+
<ChevronDown className="ml-2 h-4 w-4" />
|
|
319
|
+
</Button>
|
|
320
|
+
</NavigationMenuTrigger>
|
|
321
|
+
<NavigationMenuContent>
|
|
322
|
+
<ul className="grid gap-3 p-4 w-[300px]">
|
|
323
|
+
<li>
|
|
324
|
+
<NavigationMenuLink asChild>
|
|
325
|
+
<a href="#" className="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground">
|
|
326
|
+
<div className="text-sm font-medium leading-none">Recent Files</div>
|
|
327
|
+
<p className="line-clamp-2 text-sm leading-snug text-muted-foreground">
|
|
328
|
+
Access your recently opened documents
|
|
329
|
+
</p>
|
|
330
|
+
</a>
|
|
331
|
+
</NavigationMenuLink>
|
|
332
|
+
</li>
|
|
333
|
+
</ul>
|
|
334
|
+
</NavigationMenuContent>
|
|
335
|
+
</NavigationMenuItem>
|
|
336
|
+
<NavigationMenuItem>
|
|
337
|
+
<NavigationMenuLink asChild>
|
|
338
|
+
<Button variant="ghost">
|
|
339
|
+
<Mail className="mr-2 h-4 w-4" />
|
|
340
|
+
Messages
|
|
341
|
+
</Button>
|
|
342
|
+
</NavigationMenuLink>
|
|
343
|
+
</NavigationMenuItem>
|
|
344
|
+
</NavigationMenuList>
|
|
345
|
+
</NavigationMenu>
|
|
346
|
+
</div>
|
|
347
|
+
</div>
|
|
348
|
+
),
|
|
349
|
+
parameters: {
|
|
350
|
+
docs: {
|
|
351
|
+
description: {
|
|
352
|
+
story: "Comprehensive showcase of all NavigationMenu variants including dropdown content, simple horizontal navigation, viewport configurations, and custom button styling.",
|
|
353
|
+
},
|
|
354
|
+
},
|
|
355
|
+
},
|
|
356
|
+
};
|
|
357
|
+
|
|
358
|
+
/**
|
|
359
|
+
* Real-world example showing NavigationMenu in a website header context.
|
|
360
|
+
* Demonstrates practical usage for business applications and design teams.
|
|
361
|
+
*/
|
|
362
|
+
export const InContext: Story = {
|
|
363
|
+
render: () => (
|
|
364
|
+
<div className="w-full max-w-6xl border rounded-lg bg-background">
|
|
365
|
+
{/* Header with Navigation */}
|
|
366
|
+
<header className="border-b px-6 py-4">
|
|
367
|
+
<div className="flex items-center justify-between">
|
|
368
|
+
{/* Logo */}
|
|
369
|
+
<div className="flex items-center space-x-2">
|
|
370
|
+
<Zap className="h-8 w-8 text-primary" />
|
|
371
|
+
<span className="text-xl font-bold">Acme Corp</span>
|
|
372
|
+
</div>
|
|
373
|
+
|
|
374
|
+
{/* Main Navigation */}
|
|
375
|
+
<NavigationMenu>
|
|
376
|
+
<NavigationMenuList>
|
|
377
|
+
<NavigationMenuItem>
|
|
378
|
+
<NavigationMenuTrigger>Products</NavigationMenuTrigger>
|
|
379
|
+
<NavigationMenuContent>
|
|
380
|
+
<div className="grid gap-6 p-6 w-[600px] grid-cols-3">
|
|
381
|
+
<div className="space-y-3">
|
|
382
|
+
<h4 className="text-sm font-medium leading-none">Analytics</h4>
|
|
383
|
+
<ul className="space-y-2">
|
|
384
|
+
<li>
|
|
385
|
+
<NavigationMenuLink asChild>
|
|
386
|
+
<a href="#" className="block text-sm text-muted-foreground hover:text-foreground">
|
|
387
|
+
Dashboard
|
|
388
|
+
</a>
|
|
389
|
+
</NavigationMenuLink>
|
|
390
|
+
</li>
|
|
391
|
+
<li>
|
|
392
|
+
<NavigationMenuLink asChild>
|
|
393
|
+
<a href="#" className="block text-sm text-muted-foreground hover:text-foreground">
|
|
394
|
+
Reports
|
|
395
|
+
</a>
|
|
396
|
+
</NavigationMenuLink>
|
|
397
|
+
</li>
|
|
398
|
+
<li>
|
|
399
|
+
<NavigationMenuLink asChild>
|
|
400
|
+
<a href="#" className="block text-sm text-muted-foreground hover:text-foreground">
|
|
401
|
+
Insights
|
|
402
|
+
</a>
|
|
403
|
+
</NavigationMenuLink>
|
|
404
|
+
</li>
|
|
405
|
+
</ul>
|
|
406
|
+
</div>
|
|
407
|
+
<div className="space-y-3">
|
|
408
|
+
<h4 className="text-sm font-medium leading-none">Tools</h4>
|
|
409
|
+
<ul className="space-y-2">
|
|
410
|
+
<li>
|
|
411
|
+
<NavigationMenuLink asChild>
|
|
412
|
+
<a href="#" className="block text-sm text-muted-foreground hover:text-foreground">
|
|
413
|
+
API Explorer
|
|
414
|
+
</a>
|
|
415
|
+
</NavigationMenuLink>
|
|
416
|
+
</li>
|
|
417
|
+
<li>
|
|
418
|
+
<NavigationMenuLink asChild>
|
|
419
|
+
<a href="#" className="block text-sm text-muted-foreground hover:text-foreground">
|
|
420
|
+
Webhooks
|
|
421
|
+
</a>
|
|
422
|
+
</NavigationMenuLink>
|
|
423
|
+
</li>
|
|
424
|
+
<li>
|
|
425
|
+
<NavigationMenuLink asChild>
|
|
426
|
+
<a href="#" className="block text-sm text-muted-foreground hover:text-foreground">
|
|
427
|
+
CLI
|
|
428
|
+
</a>
|
|
429
|
+
</NavigationMenuLink>
|
|
430
|
+
</li>
|
|
431
|
+
</ul>
|
|
432
|
+
</div>
|
|
433
|
+
<div className="space-y-3">
|
|
434
|
+
<h4 className="text-sm font-medium leading-none">Resources</h4>
|
|
435
|
+
<ul className="space-y-2">
|
|
436
|
+
<li>
|
|
437
|
+
<NavigationMenuLink asChild>
|
|
438
|
+
<a href="#" className="block text-sm text-muted-foreground hover:text-foreground">
|
|
439
|
+
Documentation
|
|
440
|
+
</a>
|
|
441
|
+
</NavigationMenuLink>
|
|
442
|
+
</li>
|
|
443
|
+
<li>
|
|
444
|
+
<NavigationMenuLink asChild>
|
|
445
|
+
<a href="#" className="block text-sm text-muted-foreground hover:text-foreground">
|
|
446
|
+
Tutorials
|
|
447
|
+
</a>
|
|
448
|
+
</NavigationMenuLink>
|
|
449
|
+
</li>
|
|
450
|
+
<li>
|
|
451
|
+
<NavigationMenuLink asChild>
|
|
452
|
+
<a href="#" className="block text-sm text-muted-foreground hover:text-foreground">
|
|
453
|
+
Support
|
|
454
|
+
</a>
|
|
455
|
+
</NavigationMenuLink>
|
|
456
|
+
</li>
|
|
457
|
+
</ul>
|
|
458
|
+
</div>
|
|
459
|
+
</div>
|
|
460
|
+
</NavigationMenuContent>
|
|
461
|
+
</NavigationMenuItem>
|
|
462
|
+
<NavigationMenuItem>
|
|
463
|
+
<NavigationMenuTrigger>Solutions</NavigationMenuTrigger>
|
|
464
|
+
<NavigationMenuContent>
|
|
465
|
+
<ul className="grid w-[400px] gap-3 p-4 md:w-[500px] md:grid-cols-2">
|
|
466
|
+
<li>
|
|
467
|
+
<NavigationMenuLink asChild>
|
|
468
|
+
<a href="#" className="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground">
|
|
469
|
+
<div className="text-sm font-medium leading-none">Enterprise</div>
|
|
470
|
+
<p className="line-clamp-2 text-sm leading-snug text-muted-foreground">
|
|
471
|
+
Scale your business with enterprise-grade features
|
|
472
|
+
</p>
|
|
473
|
+
</a>
|
|
474
|
+
</NavigationMenuLink>
|
|
475
|
+
</li>
|
|
476
|
+
<li>
|
|
477
|
+
<NavigationMenuLink asChild>
|
|
478
|
+
<a href="#" className="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground">
|
|
479
|
+
<div className="text-sm font-medium leading-none">Startup</div>
|
|
480
|
+
<p className="line-clamp-2 text-sm leading-snug text-muted-foreground">
|
|
481
|
+
Perfect for growing teams and early-stage companies
|
|
482
|
+
</p>
|
|
483
|
+
</a>
|
|
484
|
+
</NavigationMenuLink>
|
|
485
|
+
</li>
|
|
486
|
+
</ul>
|
|
487
|
+
</NavigationMenuContent>
|
|
488
|
+
</NavigationMenuItem>
|
|
489
|
+
<NavigationMenuItem>
|
|
490
|
+
<NavigationMenuLink href="#" className={navigationMenuTriggerStyle()}>
|
|
491
|
+
Pricing
|
|
492
|
+
</NavigationMenuLink>
|
|
493
|
+
</NavigationMenuItem>
|
|
494
|
+
<NavigationMenuItem>
|
|
495
|
+
<NavigationMenuLink href="#" className={navigationMenuTriggerStyle()}>
|
|
496
|
+
About
|
|
497
|
+
</NavigationMenuLink>
|
|
498
|
+
</NavigationMenuItem>
|
|
499
|
+
</NavigationMenuList>
|
|
500
|
+
</NavigationMenu>
|
|
501
|
+
|
|
502
|
+
{/* User Actions */}
|
|
503
|
+
<div className="flex items-center space-x-4">
|
|
504
|
+
<Button variant="ghost" size="sm">
|
|
505
|
+
Sign In
|
|
506
|
+
</Button>
|
|
507
|
+
<Button size="sm">
|
|
508
|
+
Get Started
|
|
509
|
+
</Button>
|
|
510
|
+
</div>
|
|
511
|
+
</div>
|
|
512
|
+
</header>
|
|
513
|
+
|
|
514
|
+
{/* Content Area */}
|
|
515
|
+
<div className="p-6">
|
|
516
|
+
<div className="text-center space-y-4">
|
|
517
|
+
<h1 className="text-3xl font-bold">Welcome to Acme Corp</h1>
|
|
518
|
+
<p className="text-muted-foreground max-w-2xl mx-auto">
|
|
519
|
+
This is an example of NavigationMenu used in a real website header context.
|
|
520
|
+
The navigation provides easy access to different product areas and solutions
|
|
521
|
+
while maintaining a clean, professional appearance.
|
|
522
|
+
</p>
|
|
523
|
+
<div className="flex justify-center space-x-4 pt-4">
|
|
524
|
+
<Button>Learn More</Button>
|
|
525
|
+
<Button variant="outline">View Demo</Button>
|
|
526
|
+
</div>
|
|
527
|
+
</div>
|
|
528
|
+
</div>
|
|
529
|
+
</div>
|
|
530
|
+
),
|
|
531
|
+
parameters: {
|
|
532
|
+
layout: "fullscreen",
|
|
533
|
+
docs: {
|
|
534
|
+
description: {
|
|
535
|
+
story: "Real-world example showing NavigationMenu integrated into a complete website header layout with logo, navigation, and user actions. Demonstrates practical usage patterns for business applications.",
|
|
536
|
+
},
|
|
537
|
+
},
|
|
538
|
+
},
|
|
539
|
+
};
|