@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,321 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Table - A responsive data table component for displaying structured information
|
|
4
|
+
*
|
|
5
|
+
* Built on semantic HTML table elements with responsive scrolling and proper accessibility.
|
|
6
|
+
* Follows shadcn/ui patterns for data presentation and can be enhanced with TanStack Table
|
|
7
|
+
* for sorting, filtering, and pagination. Perfect for dashboards, data management, and
|
|
8
|
+
* structured content display.
|
|
9
|
+
*
|
|
10
|
+
* @component
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* // Basic table with Farcaster user data
|
|
14
|
+
* <Table>
|
|
15
|
+
* <TableCaption>Recent casts from your network</TableCaption>
|
|
16
|
+
* <TableHeader>
|
|
17
|
+
* <TableRow>
|
|
18
|
+
* <TableHead>User</TableHead>
|
|
19
|
+
* <TableHead>Channel</TableHead>
|
|
20
|
+
* <TableHead>Content</TableHead>
|
|
21
|
+
* <TableHead className="text-right">Reactions</TableHead>
|
|
22
|
+
* </TableRow>
|
|
23
|
+
* </TableHeader>
|
|
24
|
+
* <TableBody>
|
|
25
|
+
* <TableRow>
|
|
26
|
+
* <TableCell className="font-medium">@dwr.eth</TableCell>
|
|
27
|
+
* <TableCell>/farcaster</TableCell>
|
|
28
|
+
* <TableCell>Announcing Farcaster v2...</TableCell>
|
|
29
|
+
* <TableCell className="text-right">1,234</TableCell>
|
|
30
|
+
* </TableRow>
|
|
31
|
+
* </TableBody>
|
|
32
|
+
* </Table>
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```tsx
|
|
37
|
+
* // Table with selection and actions
|
|
38
|
+
* <Table>
|
|
39
|
+
* <TableHeader>
|
|
40
|
+
* <TableRow>
|
|
41
|
+
* <TableHead className="w-[50px]">
|
|
42
|
+
* <Checkbox />
|
|
43
|
+
* </TableHead>
|
|
44
|
+
* <TableHead>User</TableHead>
|
|
45
|
+
* <TableHead>FID</TableHead>
|
|
46
|
+
* <TableHead className="text-right">Actions</TableHead>
|
|
47
|
+
* </TableRow>
|
|
48
|
+
* </TableHeader>
|
|
49
|
+
* <TableBody>
|
|
50
|
+
* <TableRow data-state="selected">
|
|
51
|
+
* <TableCell><Checkbox checked /></TableCell>
|
|
52
|
+
* <TableCell>@vitalik.eth</TableCell>
|
|
53
|
+
* <TableCell>5650</TableCell>
|
|
54
|
+
* <TableCell className="text-right">
|
|
55
|
+
* <Button variant="ghost" size="sm">Edit</Button>
|
|
56
|
+
* </TableCell>
|
|
57
|
+
* </TableRow>
|
|
58
|
+
* </TableBody>
|
|
59
|
+
* </Table>
|
|
60
|
+
* ```
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```tsx
|
|
64
|
+
* // Table with footer totals
|
|
65
|
+
* <Table>
|
|
66
|
+
* <TableBody>
|
|
67
|
+
* <TableRow>
|
|
68
|
+
* <TableCell>/farcaster</TableCell>
|
|
69
|
+
* <TableCell className="text-right">5,234</TableCell>
|
|
70
|
+
* </TableRow>
|
|
71
|
+
* </TableBody>
|
|
72
|
+
* <TableFooter>
|
|
73
|
+
* <TableRow>
|
|
74
|
+
* <TableCell>Total</TableCell>
|
|
75
|
+
* <TableCell className="text-right">15,767</TableCell>
|
|
76
|
+
* </TableRow>
|
|
77
|
+
* </TableFooter>
|
|
78
|
+
* </Table>
|
|
79
|
+
* ```
|
|
80
|
+
*
|
|
81
|
+
* @accessibility
|
|
82
|
+
* - Semantic HTML table structure with thead, tbody, tfoot elements
|
|
83
|
+
* - Screen reader navigation with proper table headers and data relationships
|
|
84
|
+
* - Responsive horizontal scrolling container for mobile devices
|
|
85
|
+
* - Caption support for table descriptions and context
|
|
86
|
+
* - Selection states communicated via data-state attributes
|
|
87
|
+
* - Keyboard navigation support for interactive elements
|
|
88
|
+
*
|
|
89
|
+
* @see {@link https://ui.shadcn.com/docs/components/table} shadcn/ui Table documentation
|
|
90
|
+
* @see {@link https://ui.shadcn.com/docs/components/data-table} TanStack Table integration
|
|
91
|
+
* @see {@link TableHeader} Table header container component
|
|
92
|
+
* @see {@link TableBody} Table body container component
|
|
93
|
+
* @see {@link TableRow} Table row component with hover and selection states
|
|
94
|
+
* @see {@link TableCell} Table data cell component
|
|
95
|
+
* @see {@link TableHead} Table header cell component
|
|
96
|
+
* @since 1.0.0
|
|
97
|
+
*/
|
|
98
|
+
declare function Table({ className, ...props }: React.ComponentProps<"table">): import("react/jsx-runtime").JSX.Element;
|
|
99
|
+
/**
|
|
100
|
+
* TableHeader - Container for table header rows
|
|
101
|
+
*
|
|
102
|
+
* Groups header rows and applies consistent styling with bottom borders.
|
|
103
|
+
* Contains TableRow components with TableHead cells for column definitions.
|
|
104
|
+
* Essential for accessibility and proper table structure.
|
|
105
|
+
*
|
|
106
|
+
* @component
|
|
107
|
+
* @example
|
|
108
|
+
* ```tsx
|
|
109
|
+
* <TableHeader>
|
|
110
|
+
* <TableRow>
|
|
111
|
+
* <TableHead>Username</TableHead>
|
|
112
|
+
* <TableHead>FID</TableHead>
|
|
113
|
+
* <TableHead className="text-right">Actions</TableHead>
|
|
114
|
+
* </TableRow>
|
|
115
|
+
* </TableHeader>
|
|
116
|
+
* ```
|
|
117
|
+
*
|
|
118
|
+
* @accessibility
|
|
119
|
+
* - Semantic thead element for proper table structure
|
|
120
|
+
* - Screen readers identify this as the table header section
|
|
121
|
+
* - Provides context for data columns below
|
|
122
|
+
* @since 1.0.0
|
|
123
|
+
*/
|
|
124
|
+
declare function TableHeader({ className, ...props }: React.ComponentProps<"thead">): import("react/jsx-runtime").JSX.Element;
|
|
125
|
+
/**
|
|
126
|
+
* TableBody - Container for table data rows
|
|
127
|
+
*
|
|
128
|
+
* Main content area of the table containing all data rows.
|
|
129
|
+
* Applies border styling where the last row has no bottom border.
|
|
130
|
+
* Contains TableRow components with TableCell elements.
|
|
131
|
+
*
|
|
132
|
+
* @component
|
|
133
|
+
* @example
|
|
134
|
+
* ```tsx
|
|
135
|
+
* <TableBody>
|
|
136
|
+
* <TableRow>
|
|
137
|
+
* <TableCell>@dwr.eth</TableCell>
|
|
138
|
+
* <TableCell>3</TableCell>
|
|
139
|
+
* <TableCell>45.2k followers</TableCell>
|
|
140
|
+
* </TableRow>
|
|
141
|
+
* <TableRow>
|
|
142
|
+
* <TableCell>@vitalik.eth</TableCell>
|
|
143
|
+
* <TableCell>5650</TableCell>
|
|
144
|
+
* <TableCell>112.3k followers</TableCell>
|
|
145
|
+
* </TableRow>
|
|
146
|
+
* </TableBody>
|
|
147
|
+
* ```
|
|
148
|
+
*
|
|
149
|
+
* @accessibility
|
|
150
|
+
* - Semantic tbody element for data rows
|
|
151
|
+
* - Supports keyboard navigation through rows
|
|
152
|
+
* - Screen readers navigate row by row through content
|
|
153
|
+
* @since 1.0.0
|
|
154
|
+
*/
|
|
155
|
+
declare function TableBody({ className, ...props }: React.ComponentProps<"tbody">): import("react/jsx-runtime").JSX.Element;
|
|
156
|
+
/**
|
|
157
|
+
* TableFooter - Container for table footer rows
|
|
158
|
+
*
|
|
159
|
+
* Used for summary rows, totals, or additional table information.
|
|
160
|
+
* Styled with a muted background and top border to distinguish from data rows.
|
|
161
|
+
* Typically contains aggregated data or table-wide information.
|
|
162
|
+
*
|
|
163
|
+
* @component
|
|
164
|
+
* @example
|
|
165
|
+
* ```tsx
|
|
166
|
+
* <TableFooter>
|
|
167
|
+
* <TableRow>
|
|
168
|
+
* <TableCell>Total Users</TableCell>
|
|
169
|
+
* <TableCell>15,767</TableCell>
|
|
170
|
+
* <TableCell className="text-right">+9.25%</TableCell>
|
|
171
|
+
* </TableRow>
|
|
172
|
+
* </TableFooter>
|
|
173
|
+
* ```
|
|
174
|
+
*
|
|
175
|
+
* @accessibility
|
|
176
|
+
* - Semantic tfoot element for summary data
|
|
177
|
+
* - Screen readers announce as table footer section
|
|
178
|
+
* - Distinguished visually and semantically from body content
|
|
179
|
+
* @since 1.0.0
|
|
180
|
+
*/
|
|
181
|
+
declare function TableFooter({ className, ...props }: React.ComponentProps<"tfoot">): import("react/jsx-runtime").JSX.Element;
|
|
182
|
+
/**
|
|
183
|
+
* TableRow - A table row component with interactive states
|
|
184
|
+
*
|
|
185
|
+
* Represents a single row in the table with hover effects and selection support.
|
|
186
|
+
* Supports data-state attributes for visual feedback and proper border styling.
|
|
187
|
+
* Essential building block for all table content areas.
|
|
188
|
+
*
|
|
189
|
+
* @component
|
|
190
|
+
* @example
|
|
191
|
+
* ```tsx
|
|
192
|
+
* // Basic row
|
|
193
|
+
* <TableRow>
|
|
194
|
+
* <TableCell>@dwr.eth</TableCell>
|
|
195
|
+
* <TableCell>/farcaster</TableCell>
|
|
196
|
+
* </TableRow>
|
|
197
|
+
*
|
|
198
|
+
* // Selected row
|
|
199
|
+
* <TableRow data-state="selected">
|
|
200
|
+
* <TableCell>@vitalik.eth</TableCell>
|
|
201
|
+
* <TableCell>/ethereum</TableCell>
|
|
202
|
+
* </TableRow>
|
|
203
|
+
* ```
|
|
204
|
+
*
|
|
205
|
+
* @accessibility
|
|
206
|
+
* - Supports data-state="selected" for selection indication
|
|
207
|
+
* - Hover state enhances interactivity and focus
|
|
208
|
+
* - Semantic tr element maintains table structure
|
|
209
|
+
* - Visual feedback for user interactions
|
|
210
|
+
* @since 1.0.0
|
|
211
|
+
*/
|
|
212
|
+
declare function TableRow({ className, ...props }: React.ComponentProps<"tr">): import("react/jsx-runtime").JSX.Element;
|
|
213
|
+
/**
|
|
214
|
+
* TableHead - Table header cell component for column definitions
|
|
215
|
+
*
|
|
216
|
+
* Used for column headers with medium font weight and proper text alignment.
|
|
217
|
+
* Includes special styling for checkbox columns and interactive elements.
|
|
218
|
+
* Essential for screen reader navigation and table accessibility.
|
|
219
|
+
*
|
|
220
|
+
* @component
|
|
221
|
+
* @example
|
|
222
|
+
* ```tsx
|
|
223
|
+
* // Text headers
|
|
224
|
+
* <TableHead>Username</TableHead>
|
|
225
|
+
* <TableHead className="text-right">Followers</TableHead>
|
|
226
|
+
*
|
|
227
|
+
* // Checkbox header
|
|
228
|
+
* <TableHead className="w-[50px]">
|
|
229
|
+
* <Checkbox />
|
|
230
|
+
* </TableHead>
|
|
231
|
+
*
|
|
232
|
+
* // Sortable header
|
|
233
|
+
* <TableHead>
|
|
234
|
+
* <Button variant="ghost">FID ↕</Button>
|
|
235
|
+
* </TableHead>
|
|
236
|
+
* ```
|
|
237
|
+
*
|
|
238
|
+
* @accessibility
|
|
239
|
+
* - Semantic th element for column headers
|
|
240
|
+
* - Screen readers announce as column headers for navigation
|
|
241
|
+
* - Supports scope attribute for complex table relationships
|
|
242
|
+
* - Special checkbox styling maintains proper alignment
|
|
243
|
+
* @since 1.0.0
|
|
244
|
+
*/
|
|
245
|
+
declare function TableHead({ className, ...props }: React.ComponentProps<"th">): import("react/jsx-runtime").JSX.Element;
|
|
246
|
+
/**
|
|
247
|
+
* TableCell - Table data cell component for content display
|
|
248
|
+
*
|
|
249
|
+
* Used for data cells within table rows with consistent padding and alignment.
|
|
250
|
+
* Supports custom styling, truncation, and special handling for interactive elements
|
|
251
|
+
* like checkboxes and buttons.
|
|
252
|
+
*
|
|
253
|
+
* @component
|
|
254
|
+
* @example
|
|
255
|
+
* ```tsx
|
|
256
|
+
* // Basic data cells
|
|
257
|
+
* <TableCell>@dwr.eth</TableCell>
|
|
258
|
+
* <TableCell className="text-right">1,234</TableCell>
|
|
259
|
+
* <TableCell className="font-medium">Active</TableCell>
|
|
260
|
+
*
|
|
261
|
+
* // Cell with checkbox
|
|
262
|
+
* <TableCell>
|
|
263
|
+
* <Checkbox checked />
|
|
264
|
+
* </TableCell>
|
|
265
|
+
*
|
|
266
|
+
* // Cell with truncated content
|
|
267
|
+
* <TableCell className="max-w-[200px] truncate">
|
|
268
|
+
* This is a very long piece of content...
|
|
269
|
+
* </TableCell>
|
|
270
|
+
*
|
|
271
|
+
* // Cell spanning multiple columns
|
|
272
|
+
* <TableCell colSpan={3} className="text-center">
|
|
273
|
+
* No data available
|
|
274
|
+
* </TableCell>
|
|
275
|
+
* ```
|
|
276
|
+
*
|
|
277
|
+
* @accessibility
|
|
278
|
+
* - Semantic td element for data cells
|
|
279
|
+
* - Supports checkbox cells with proper alignment adjustments
|
|
280
|
+
* - Screen readers navigate cell by cell for data comprehension
|
|
281
|
+
* - ColSpan support for empty states and grouped content
|
|
282
|
+
* @since 1.0.0
|
|
283
|
+
*/
|
|
284
|
+
declare function TableCell({ className, ...props }: React.ComponentProps<"td">): import("react/jsx-runtime").JSX.Element;
|
|
285
|
+
/**
|
|
286
|
+
* TableCaption - Table caption for describing table content and context
|
|
287
|
+
*
|
|
288
|
+
* Provides a description, title, or additional context for the table.
|
|
289
|
+
* Displayed with muted styling and proper spacing. Essential for accessibility
|
|
290
|
+
* as screen readers announce the caption to provide table context.
|
|
291
|
+
*
|
|
292
|
+
* @component
|
|
293
|
+
* @example
|
|
294
|
+
* ```tsx
|
|
295
|
+
* <Table>
|
|
296
|
+
* <TableCaption>Recent casts from your network</TableCaption>
|
|
297
|
+
* <TableHeader>...</TableHeader>
|
|
298
|
+
* <TableBody>...</TableBody>
|
|
299
|
+
* </Table>
|
|
300
|
+
*
|
|
301
|
+
* // Caption with additional context
|
|
302
|
+
* <Table>
|
|
303
|
+
* <TableCaption>
|
|
304
|
+
* Channel analytics for the last 30 days.
|
|
305
|
+
* Data updated every hour.
|
|
306
|
+
* </TableCaption>
|
|
307
|
+
* <TableHeader>...</TableHeader>
|
|
308
|
+
* <TableBody>...</TableBody>
|
|
309
|
+
* </Table>
|
|
310
|
+
* ```
|
|
311
|
+
*
|
|
312
|
+
* @accessibility
|
|
313
|
+
* - Semantic caption element positioned according to HTML standards
|
|
314
|
+
* - Screen readers announce caption before table content
|
|
315
|
+
* - Provides essential context for understanding table data
|
|
316
|
+
* - Helps users understand table purpose and scope
|
|
317
|
+
* @since 1.0.0
|
|
318
|
+
*/
|
|
319
|
+
declare function TableCaption({ className, ...props }: React.ComponentProps<"caption">): import("react/jsx-runtime").JSX.Element;
|
|
320
|
+
export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption, };
|
|
321
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/components/ui/table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+FG;AACH,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAapE;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAQ1E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAQxE;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAW1E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAWpE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAWrE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAWrE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,2CAQjC;AAED,OAAO,EACL,KAAK,EACL,WAAW,EACX,SAAS,EACT,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACT,YAAY,GACb,CAAC"}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
3
|
+
/**
|
|
4
|
+
* A tabbed interface component for organizing content into multiple sections.
|
|
5
|
+
*
|
|
6
|
+
* Tabs provide an intuitive way to organize and display content in separate panels,
|
|
7
|
+
* with only one panel visible at a time. Built on Radix UI's robust accessibility
|
|
8
|
+
* foundation with full keyboard navigation, focus management, and screen reader support.
|
|
9
|
+
*
|
|
10
|
+
* The component supports both controlled and uncontrolled usage patterns, allowing
|
|
11
|
+
* for flexible integration in various application contexts. Each tab consists of a
|
|
12
|
+
* trigger (button) that activates its corresponding content panel.
|
|
13
|
+
*
|
|
14
|
+
* @example Basic uncontrolled tabs
|
|
15
|
+
* ```tsx
|
|
16
|
+
* <Tabs defaultValue="account" className="w-[400px]">
|
|
17
|
+
* <TabsList>
|
|
18
|
+
* <TabsTrigger value="account">Account</TabsTrigger>
|
|
19
|
+
* <TabsTrigger value="password">Password</TabsTrigger>
|
|
20
|
+
* </TabsList>
|
|
21
|
+
* <TabsContent value="account">
|
|
22
|
+
* <Card>
|
|
23
|
+
* <CardContent>
|
|
24
|
+
* <p>Manage your account settings here.</p>
|
|
25
|
+
* </CardContent>
|
|
26
|
+
* </Card>
|
|
27
|
+
* </TabsContent>
|
|
28
|
+
* <TabsContent value="password">
|
|
29
|
+
* <Card>
|
|
30
|
+
* <CardContent>
|
|
31
|
+
* <p>Change your password here.</p>
|
|
32
|
+
* </CardContent>
|
|
33
|
+
* </Card>
|
|
34
|
+
* </TabsContent>
|
|
35
|
+
* </Tabs>
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @example Controlled tabs with external state management
|
|
39
|
+
* ```tsx
|
|
40
|
+
* const [activeTab, setActiveTab] = useState("overview");
|
|
41
|
+
*
|
|
42
|
+
* // External controls can change the active tab
|
|
43
|
+
* const handleQuickNav = (tab: string) => {
|
|
44
|
+
* setActiveTab(tab);
|
|
45
|
+
* };
|
|
46
|
+
*
|
|
47
|
+
* <Tabs value={activeTab} onValueChange={setActiveTab}>
|
|
48
|
+
* <TabsList>
|
|
49
|
+
* <TabsTrigger value="overview">Overview</TabsTrigger>
|
|
50
|
+
* <TabsTrigger value="analytics">Analytics</TabsTrigger>
|
|
51
|
+
* <TabsTrigger value="reports">Reports</TabsTrigger>
|
|
52
|
+
* </TabsList>
|
|
53
|
+
* <TabsContent value="overview">
|
|
54
|
+
* <DashboardOverview />
|
|
55
|
+
* </TabsContent>
|
|
56
|
+
* <TabsContent value="analytics">
|
|
57
|
+
* <AnalyticsPanel />
|
|
58
|
+
* </TabsContent>
|
|
59
|
+
* <TabsContent value="reports">
|
|
60
|
+
* <ReportsPanel />
|
|
61
|
+
* </TabsContent>
|
|
62
|
+
* </Tabs>
|
|
63
|
+
* ```
|
|
64
|
+
*
|
|
65
|
+
* @example Vertical orientation
|
|
66
|
+
* ```tsx
|
|
67
|
+
* <Tabs defaultValue="general" orientation="vertical" className="flex gap-4">
|
|
68
|
+
* <TabsList className="flex-col h-auto">
|
|
69
|
+
* <TabsTrigger value="general">General</TabsTrigger>
|
|
70
|
+
* <TabsTrigger value="security">Security</TabsTrigger>
|
|
71
|
+
* <TabsTrigger value="notifications">Notifications</TabsTrigger>
|
|
72
|
+
* </TabsList>
|
|
73
|
+
* <div className="flex-1">
|
|
74
|
+
* <TabsContent value="general">
|
|
75
|
+
* <SettingsGeneral />
|
|
76
|
+
* </TabsContent>
|
|
77
|
+
* <TabsContent value="security">
|
|
78
|
+
* <SettingsSecurity />
|
|
79
|
+
* </TabsContent>
|
|
80
|
+
* <TabsContent value="notifications">
|
|
81
|
+
* <SettingsNotifications />
|
|
82
|
+
* </TabsContent>
|
|
83
|
+
* </div>
|
|
84
|
+
* </Tabs>
|
|
85
|
+
* ```
|
|
86
|
+
*
|
|
87
|
+
* @param defaultValue - The initial active tab (uncontrolled usage)
|
|
88
|
+
* @param value - The currently active tab (controlled usage)
|
|
89
|
+
* @param onValueChange - Callback fired when the active tab changes
|
|
90
|
+
* @param orientation - Layout direction: "horizontal" (default) or "vertical"
|
|
91
|
+
* @param dir - Text direction for RTL support: "ltr" or "rtl"
|
|
92
|
+
* @param activationMode - When tabs activate: "automatic" (on focus) or "manual" (on click/enter)
|
|
93
|
+
* @param className - Additional CSS classes to apply
|
|
94
|
+
* @param children - Tab list, content panels, and other child elements
|
|
95
|
+
*
|
|
96
|
+
* @accessibility
|
|
97
|
+
* - **Keyboard Navigation**: Arrow keys navigate between tabs, Tab/Shift+Tab moves focus into/out of tab list
|
|
98
|
+
* - **Focus Management**: Home/End keys jump to first/last tab, proper focus visible indicators
|
|
99
|
+
* - **Screen Readers**: Proper ARIA roles (tablist, tab, tabpanel), labels, and state announcements
|
|
100
|
+
* - **Touch Support**: Touch-friendly trigger areas with appropriate spacing
|
|
101
|
+
* - **RTL Support**: Respects text direction for proper layout in right-to-left languages
|
|
102
|
+
*
|
|
103
|
+
* @see {@link https://ui.shadcn.com/docs/components/tabs} shadcn/ui tabs documentation
|
|
104
|
+
* @see {@link https://www.radix-ui.com/primitives/docs/components/tabs} Radix UI tabs primitive
|
|
105
|
+
* @see {@link TabsList} - Container component for tab triggers
|
|
106
|
+
* @see {@link TabsTrigger} - Individual clickable tab button
|
|
107
|
+
* @see {@link TabsContent} - Content panel associated with each tab
|
|
108
|
+
* @since 1.0.0
|
|
109
|
+
*/
|
|
110
|
+
declare function Tabs({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
111
|
+
/**
|
|
112
|
+
* Container component that groups all tab trigger buttons together.
|
|
113
|
+
*
|
|
114
|
+
* Provides consistent styling and layout for tab triggers with a unified
|
|
115
|
+
* background and proper spacing. The list maintains the tab order and
|
|
116
|
+
* handles focus management within the tabbed interface.
|
|
117
|
+
*
|
|
118
|
+
* @example Standard horizontal layout
|
|
119
|
+
* ```tsx
|
|
120
|
+
* <TabsList>
|
|
121
|
+
* <TabsTrigger value="home">Home</TabsTrigger>
|
|
122
|
+
* <TabsTrigger value="about">About</TabsTrigger>
|
|
123
|
+
* <TabsTrigger value="contact">Contact</TabsTrigger>
|
|
124
|
+
* </TabsList>
|
|
125
|
+
* ```
|
|
126
|
+
*
|
|
127
|
+
* @example Grid layout for equal-width tabs
|
|
128
|
+
* ```tsx
|
|
129
|
+
* <TabsList className="grid w-full grid-cols-3">
|
|
130
|
+
* <TabsTrigger value="tab1">Tab 1</TabsTrigger>
|
|
131
|
+
* <TabsTrigger value="tab2">Tab 2</TabsTrigger>
|
|
132
|
+
* <TabsTrigger value="tab3">Tab 3</TabsTrigger>
|
|
133
|
+
* </TabsList>
|
|
134
|
+
* ```
|
|
135
|
+
*
|
|
136
|
+
* @example Vertical orientation
|
|
137
|
+
* ```tsx
|
|
138
|
+
* <TabsList className="flex-col h-auto w-[200px]">
|
|
139
|
+
* <TabsTrigger value="settings" className="w-full justify-start">
|
|
140
|
+
* Settings
|
|
141
|
+
* </TabsTrigger>
|
|
142
|
+
* <TabsTrigger value="profile" className="w-full justify-start">
|
|
143
|
+
* Profile
|
|
144
|
+
* </TabsTrigger>
|
|
145
|
+
* </TabsList>
|
|
146
|
+
* ```
|
|
147
|
+
*
|
|
148
|
+
* @param className - Additional CSS classes for custom styling
|
|
149
|
+
* @param children - TabsTrigger components to be grouped
|
|
150
|
+
*
|
|
151
|
+
* @accessibility
|
|
152
|
+
* - Implements ARIA tablist role for screen readers
|
|
153
|
+
* - Maintains proper tab order and focus management
|
|
154
|
+
* - Supports keyboard navigation between triggers
|
|
155
|
+
*
|
|
156
|
+
* @since 1.0.0
|
|
157
|
+
*/
|
|
158
|
+
declare function TabsList({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.List>): import("react/jsx-runtime").JSX.Element;
|
|
159
|
+
/**
|
|
160
|
+
* Individual clickable button that activates its associated tab content.
|
|
161
|
+
*
|
|
162
|
+
* Each trigger is associated with a specific tab panel via the `value` prop.
|
|
163
|
+
* The component automatically handles active states, focus management, and
|
|
164
|
+
* accessibility attributes. Supports icons, text, and custom content.
|
|
165
|
+
*
|
|
166
|
+
* @example Basic text trigger
|
|
167
|
+
* ```tsx
|
|
168
|
+
* <TabsTrigger value="dashboard">Dashboard</TabsTrigger>
|
|
169
|
+
* ```
|
|
170
|
+
*
|
|
171
|
+
* @example Trigger with icon
|
|
172
|
+
* ```tsx
|
|
173
|
+
* <TabsTrigger value="settings">
|
|
174
|
+
* <Settings className="h-4 w-4" />
|
|
175
|
+
* Settings
|
|
176
|
+
* </TabsTrigger>
|
|
177
|
+
* ```
|
|
178
|
+
*
|
|
179
|
+
* @example Disabled trigger
|
|
180
|
+
* ```tsx
|
|
181
|
+
* <TabsTrigger value="premium" disabled>
|
|
182
|
+
* Premium Features
|
|
183
|
+
* </TabsTrigger>
|
|
184
|
+
* ```
|
|
185
|
+
*
|
|
186
|
+
* @param value - Unique identifier that associates this trigger with its content panel
|
|
187
|
+
* @param disabled - When true, prevents interaction and shows disabled styling
|
|
188
|
+
* @param className - Additional CSS classes for custom styling
|
|
189
|
+
* @param children - Content to display within the trigger (text, icons, etc.)
|
|
190
|
+
*
|
|
191
|
+
* @accessibility
|
|
192
|
+
* - Implements ARIA tab role with proper attributes
|
|
193
|
+
* - Announces selected state to screen readers
|
|
194
|
+
* - Supports keyboard activation (Space, Enter)
|
|
195
|
+
* - Shows focus visible indicators for keyboard users
|
|
196
|
+
* - Respects disabled state for assistive technology
|
|
197
|
+
*
|
|
198
|
+
* @since 1.0.0
|
|
199
|
+
*/
|
|
200
|
+
declare function TabsTrigger({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
|
|
201
|
+
/**
|
|
202
|
+
* Content panel that displays when its associated tab trigger is active.
|
|
203
|
+
*
|
|
204
|
+
* Each content panel is linked to a specific trigger via the `value` prop.
|
|
205
|
+
* Only one content panel is visible at a time, creating a clean tabbed
|
|
206
|
+
* interface. The component handles enter/exit animations and proper
|
|
207
|
+
* focus management when tabs change.
|
|
208
|
+
*
|
|
209
|
+
* @example Basic content panel
|
|
210
|
+
* ```tsx
|
|
211
|
+
* <TabsContent value="profile">
|
|
212
|
+
* <Card>
|
|
213
|
+
* <CardHeader>
|
|
214
|
+
* <CardTitle>Profile Settings</CardTitle>
|
|
215
|
+
* </CardHeader>
|
|
216
|
+
* <CardContent>
|
|
217
|
+
* <ProfileForm />
|
|
218
|
+
* </CardContent>
|
|
219
|
+
* </Card>
|
|
220
|
+
* </TabsContent>
|
|
221
|
+
* ```
|
|
222
|
+
*
|
|
223
|
+
* @example Content with loading state
|
|
224
|
+
* ```tsx
|
|
225
|
+
* <TabsContent value="analytics">
|
|
226
|
+
* {isLoading ? (
|
|
227
|
+
* <div className="flex items-center justify-center p-8">
|
|
228
|
+
* <Spinner className="h-6 w-6" />
|
|
229
|
+
* </div>
|
|
230
|
+
* ) : (
|
|
231
|
+
* <AnalyticsCharts data={analyticsData} />
|
|
232
|
+
* )}
|
|
233
|
+
* </TabsContent>
|
|
234
|
+
* ```
|
|
235
|
+
*
|
|
236
|
+
* @example Lazy-loaded content
|
|
237
|
+
* ```tsx
|
|
238
|
+
* <TabsContent value="reports" className="space-y-4">
|
|
239
|
+
* <Suspense fallback={<ReportsSkeleton />}>
|
|
240
|
+
* <ReportsPanel />
|
|
241
|
+
* </Suspense>
|
|
242
|
+
* </TabsContent>
|
|
243
|
+
* ```
|
|
244
|
+
*
|
|
245
|
+
* @param value - Unique identifier that associates this content with its trigger
|
|
246
|
+
* @param forceMount - When true, content stays mounted even when inactive (useful for preserving state)
|
|
247
|
+
* @param className - Additional CSS classes for custom styling
|
|
248
|
+
* @param children - The content to display when this tab is active
|
|
249
|
+
*
|
|
250
|
+
* @accessibility
|
|
251
|
+
* - Implements ARIA tabpanel role with proper labeling
|
|
252
|
+
* - Hidden from screen readers when inactive
|
|
253
|
+
* - Receives focus when tab is activated via keyboard
|
|
254
|
+
* - Maintains focus within panel content
|
|
255
|
+
*
|
|
256
|
+
* @since 1.0.0
|
|
257
|
+
*/
|
|
258
|
+
declare function TabsContent({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
|
|
259
|
+
export { Tabs, TabsList, TabsTrigger, TabsContent };
|
|
260
|
+
//# sourceMappingURL=tabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/components/ui/tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AAItD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0GG;AACH,iBAAS,IAAI,CAAC,EACZ,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,2CAQjD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,2CAWjD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,2CAWpD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,2CAQpD;AAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC"}
|