@neynar/ui 0.2.1 → 0.3.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/{llm-docs → .llm}/a.llm.md +2 -16
- package/{llm-docs → .llm}/badge.llm.md +16 -21
- package/{llm-docs → .llm}/blockquote.llm.md +1 -6
- package/.llm/button-group-separator.llm.md +53 -0
- package/.llm/button-group-text.llm.md +56 -0
- package/.llm/button-group.llm.md +81 -0
- package/{llm-docs → .llm}/button.llm.md +1 -1
- package/{llm-docs → .llm}/code.llm.md +1 -6
- package/.llm/empty-content.llm.md +103 -0
- package/.llm/empty-description.llm.md +70 -0
- package/.llm/empty-header.llm.md +64 -0
- package/.llm/empty-media.llm.md +81 -0
- package/.llm/empty-title.llm.md +54 -0
- package/.llm/empty.llm.md +158 -0
- package/.llm/field-content.llm.md +28 -0
- package/.llm/field-description.llm.md +28 -0
- package/.llm/field-error.llm.md +41 -0
- package/.llm/field-group.llm.md +84 -0
- package/.llm/field-label.llm.md +28 -0
- package/.llm/field-legend.llm.md +77 -0
- package/.llm/field-separator.llm.md +35 -0
- package/.llm/field-set.llm.md +80 -0
- package/.llm/field-title.llm.md +28 -0
- package/.llm/field.llm.md +35 -0
- package/{llm-docs → .llm}/h1.llm.md +2 -7
- package/{llm-docs → .llm}/h2.llm.md +2 -7
- package/{llm-docs → .llm}/h3.llm.md +2 -7
- package/{llm-docs → .llm}/h4.llm.md +2 -7
- package/{llm-docs → .llm}/h5.llm.md +2 -7
- package/{llm-docs → .llm}/h6.llm.md +1 -6
- package/.llm/input-group-addon.llm.md +91 -0
- package/.llm/input-group-button.llm.md +120 -0
- package/.llm/input-group-input.llm.md +145 -0
- package/.llm/input-group-text.llm.md +75 -0
- package/.llm/input-group-textarea.llm.md +157 -0
- package/.llm/input-group.llm.md +108 -0
- package/.llm/item-actions.llm.md +77 -0
- package/.llm/item-content.llm.md +73 -0
- package/.llm/item-description.llm.md +61 -0
- package/.llm/item-footer.llm.md +68 -0
- package/.llm/item-group.llm.md +73 -0
- package/.llm/item-header.llm.md +66 -0
- package/.llm/item-media.llm.md +75 -0
- package/.llm/item-separator.llm.md +80 -0
- package/.llm/item-title.llm.md +59 -0
- package/.llm/item.llm.md +115 -0
- package/.llm/kbd-group.llm.md +71 -0
- package/.llm/kbd.llm.md +71 -0
- package/{llm-docs → .llm}/lead.llm.md +1 -6
- package/{llm-docs → .llm}/p.llm.md +1 -6
- package/{llm-docs → .llm}/sdk-items-registry.json +390 -6
- package/{llm-docs → .llm}/small.llm.md +1 -6
- package/{llm-docs → .llm}/span.llm.md +2 -16
- package/.llm/spinner.llm.md +182 -0
- package/{llm-docs → .llm}/strong.llm.md +1 -6
- package/{llm-docs → .llm}/typography.llm.md +2 -16
- package/dist/components/ui/button-group.d.ts +448 -0
- package/dist/components/ui/button-group.d.ts.map +1 -0
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/empty-state.d.ts +1 -0
- package/dist/components/ui/empty-state.d.ts.map +1 -1
- package/dist/components/ui/empty.d.ts +630 -0
- package/dist/components/ui/empty.d.ts.map +1 -0
- package/dist/components/ui/field.d.ts +238 -0
- package/dist/components/ui/field.d.ts.map +1 -0
- package/dist/components/ui/input-group.d.ts +636 -0
- package/dist/components/ui/input-group.d.ts.map +1 -0
- package/dist/components/ui/item.d.ts +766 -0
- package/dist/components/ui/item.d.ts.map +1 -0
- package/dist/components/ui/kbd.d.ts +149 -0
- package/dist/components/ui/kbd.d.ts.map +1 -0
- package/dist/components/ui/scroll-area.d.ts +5 -5
- package/dist/components/ui/scroll-area.d.ts.map +1 -1
- package/dist/components/ui/spinner.d.ts +194 -0
- package/dist/components/ui/spinner.d.ts.map +1 -0
- package/dist/components/ui/stack.d.ts.map +1 -1
- package/dist/components/ui/stories/accordion.stories.d.ts +0 -1
- package/dist/components/ui/stories/accordion.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/alert-dialog.stories.d.ts +0 -1
- package/dist/components/ui/stories/alert-dialog.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/alert.stories.d.ts +0 -1
- package/dist/components/ui/stories/alert.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/aspect-ratio.stories.d.ts +0 -1
- package/dist/components/ui/stories/aspect-ratio.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/avatar.stories.d.ts +0 -1
- package/dist/components/ui/stories/avatar.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/badge.stories.d.ts +0 -1
- package/dist/components/ui/stories/badge.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/breadcrumb.stories.d.ts +0 -1
- package/dist/components/ui/stories/breadcrumb.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/button-group.stories.d.ts +48 -0
- package/dist/components/ui/stories/button-group.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/button.stories.d.ts +0 -1
- package/dist/components/ui/stories/button.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/calendar.stories.d.ts +0 -1
- package/dist/components/ui/stories/calendar.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/card.stories.d.ts +0 -1
- package/dist/components/ui/stories/card.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/carousel.stories.d.ts +0 -1
- package/dist/components/ui/stories/carousel.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/chart.stories.d.ts +0 -1
- package/dist/components/ui/stories/chart.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/checkbox.stories.d.ts +0 -1
- package/dist/components/ui/stories/checkbox.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/cn.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/collapsible.stories.d.ts +0 -1
- package/dist/components/ui/stories/collapsible.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/colors.stories.d.ts +0 -1
- package/dist/components/ui/stories/colors.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/combobox.stories.d.ts +0 -1
- package/dist/components/ui/stories/combobox.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/command.stories.d.ts +0 -1
- package/dist/components/ui/stories/command.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/container.stories.d.ts +0 -1
- package/dist/components/ui/stories/container.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/context-menu.stories.d.ts +0 -1
- package/dist/components/ui/stories/context-menu.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/date-picker.stories.d.ts +0 -1
- package/dist/components/ui/stories/date-picker.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/dialog.stories.d.ts +0 -1
- package/dist/components/ui/stories/dialog.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/drawer.stories.d.ts +0 -1
- package/dist/components/ui/stories/drawer.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/dropdown-menu.stories.d.ts +0 -1
- package/dist/components/ui/stories/dropdown-menu.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/empty-state.stories.d.ts +0 -1
- package/dist/components/ui/stories/empty-state.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/empty.stories.d.ts +38 -0
- package/dist/components/ui/stories/empty.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/field.stories.d.ts +48 -0
- package/dist/components/ui/stories/field.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/hover-card.stories.d.ts +0 -1
- package/dist/components/ui/stories/hover-card.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/input-group.stories.d.ts +37 -0
- package/dist/components/ui/stories/input-group.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/input.stories.d.ts +0 -1
- package/dist/components/ui/stories/input.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/item.stories.d.ts +61 -0
- package/dist/components/ui/stories/item.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/kbd.stories.d.ts +37 -0
- package/dist/components/ui/stories/kbd.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/label.stories.d.ts +0 -1
- package/dist/components/ui/stories/label.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/menubar.stories.d.ts +0 -1
- package/dist/components/ui/stories/menubar.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/navigation-menu.stories.d.ts +0 -1
- package/dist/components/ui/stories/navigation-menu.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/pagination.stories.d.ts +0 -1
- package/dist/components/ui/stories/pagination.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/popover.stories.d.ts +0 -1
- package/dist/components/ui/stories/popover.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/progress.stories.d.ts +0 -1
- package/dist/components/ui/stories/progress.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/radio-group.stories.d.ts +0 -1
- package/dist/components/ui/stories/radio-group.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/resizable.stories.d.ts +0 -1
- package/dist/components/ui/stories/resizable.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/scroll-area.stories.d.ts +1 -2
- package/dist/components/ui/stories/scroll-area.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/select.stories.d.ts +0 -1
- package/dist/components/ui/stories/select.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/separator.stories.d.ts +0 -1
- package/dist/components/ui/stories/separator.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/sheet.stories.d.ts +0 -1
- package/dist/components/ui/stories/sheet.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/sidebar.stories.d.ts +0 -1
- package/dist/components/ui/stories/sidebar.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/skeleton.stories.d.ts +0 -1
- package/dist/components/ui/stories/skeleton.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/slider.stories.d.ts +0 -1
- package/dist/components/ui/stories/slider.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/sonner.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/spinner.stories.d.ts +37 -0
- package/dist/components/ui/stories/spinner.stories.d.ts.map +1 -0
- package/dist/components/ui/stories/stack.stories.d.ts +0 -1
- package/dist/components/ui/stories/stack.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/switch.stories.d.ts +0 -1
- package/dist/components/ui/stories/switch.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/table.stories.d.ts +0 -1
- package/dist/components/ui/stories/table.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/tabs.stories.d.ts +0 -1
- package/dist/components/ui/stories/tabs.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/text-field.stories.d.ts +0 -1
- package/dist/components/ui/stories/text-field.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/textarea.stories.d.ts +0 -1
- package/dist/components/ui/stories/textarea.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/theme-toggle.stories.d.ts +0 -1
- package/dist/components/ui/stories/theme-toggle.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/theme.stories.d.ts +0 -1
- package/dist/components/ui/stories/theme.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/toggle-group.stories.d.ts +0 -1
- package/dist/components/ui/stories/toggle-group.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/toggle.stories.d.ts +0 -1
- package/dist/components/ui/stories/toggle.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/tooltip.stories.d.ts +0 -1
- package/dist/components/ui/stories/tooltip.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/typography.stories.d.ts +0 -1
- package/dist/components/ui/stories/typography.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/use-mobile.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/use-theme.stories.d.ts.map +1 -1
- package/dist/components/ui/theme-toggle.d.ts +0 -3
- package/dist/components/ui/theme-toggle.d.ts.map +1 -1
- package/dist/components/ui/theme.d.ts.map +1 -1
- package/dist/components/ui/typography.d.ts +12 -11
- package/dist/components/ui/typography.d.ts.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4973 -2353
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/docs/llm/components/display.md +125 -0
- package/docs/llm/components/feedback.md +0 -14
- package/docs/llm/components/forms.md +94 -0
- package/docs/llm/components/layout.md +169 -0
- package/llms.txt +18 -12
- package/package.json +7 -6
- package/src/components/ui/button-group.tsx +525 -0
- package/src/components/ui/button.tsx +9 -12
- package/src/components/ui/empty-state.tsx +1 -0
- package/src/components/ui/empty.tsx +793 -0
- package/src/components/ui/field.tsx +494 -0
- package/src/components/ui/input-group.tsx +801 -0
- package/src/components/ui/item.tsx +955 -0
- package/src/components/ui/kbd.tsx +175 -0
- package/src/components/ui/skeleton.tsx +1 -1
- package/src/components/ui/spinner.tsx +211 -0
- package/src/components/ui/stack.tsx +3 -1
- package/src/components/ui/stories/accordion.stories.tsx +0 -1
- package/src/components/ui/stories/alert-dialog.stories.tsx +0 -1
- package/src/components/ui/stories/alert.stories.tsx +0 -1
- package/src/components/ui/stories/aspect-ratio.stories.tsx +0 -1
- package/src/components/ui/stories/avatar.stories.tsx +0 -1
- package/src/components/ui/stories/badge.stories.tsx +0 -1
- package/src/components/ui/stories/breadcrumb.stories.tsx +0 -1
- package/src/components/ui/stories/button-group.stories.tsx +300 -0
- package/src/components/ui/stories/button.stories.tsx +0 -1
- package/src/components/ui/stories/calendar.stories.tsx +0 -1
- package/src/components/ui/stories/card.stories.tsx +0 -1
- package/src/components/ui/stories/carousel.stories.tsx +0 -1
- package/src/components/ui/stories/chart.stories.tsx +0 -1
- package/src/components/ui/stories/checkbox.stories.tsx +0 -1
- package/src/components/ui/stories/cn.stories.tsx +0 -1
- package/src/components/ui/stories/collapsible.stories.tsx +0 -1
- package/src/components/ui/stories/colors.stories.tsx +0 -1
- package/src/components/ui/stories/combobox.stories.tsx +0 -1
- package/src/components/ui/stories/command.stories.tsx +0 -1
- package/src/components/ui/stories/container.stories.tsx +0 -1
- package/src/components/ui/stories/context-menu.stories.tsx +0 -1
- package/src/components/ui/stories/date-picker.stories.tsx +0 -1
- package/src/components/ui/stories/dialog.stories.tsx +0 -1
- package/src/components/ui/stories/drawer.stories.tsx +0 -1
- package/src/components/ui/stories/dropdown-menu.stories.tsx +0 -1
- package/src/components/ui/stories/empty-state.stories.tsx +0 -1
- package/src/components/ui/stories/empty.stories.tsx +293 -0
- package/src/components/ui/stories/field.stories.tsx +470 -0
- package/src/components/ui/stories/hover-card.stories.tsx +0 -1
- package/src/components/ui/stories/input-group.stories.tsx +444 -0
- package/src/components/ui/stories/input.stories.tsx +0 -1
- package/src/components/ui/stories/item.stories.tsx +601 -0
- package/src/components/ui/stories/kbd.stories.tsx +462 -0
- package/src/components/ui/stories/label.stories.tsx +0 -1
- package/src/components/ui/stories/menubar.stories.tsx +0 -1
- package/src/components/ui/stories/navigation-menu.stories.tsx +0 -1
- package/src/components/ui/stories/pagination.stories.tsx +0 -1
- package/src/components/ui/stories/popover.stories.tsx +0 -1
- package/src/components/ui/stories/progress.stories.tsx +0 -1
- package/src/components/ui/stories/radio-group.stories.tsx +0 -1
- package/src/components/ui/stories/resizable.stories.tsx +0 -1
- package/src/components/ui/stories/scroll-area.stories.tsx +0 -1
- package/src/components/ui/stories/select.stories.tsx +0 -1
- package/src/components/ui/stories/separator.stories.tsx +0 -1
- package/src/components/ui/stories/sheet.stories.tsx +0 -1
- package/src/components/ui/stories/sidebar.stories.tsx +0 -1
- package/src/components/ui/stories/skeleton.stories.tsx +0 -1
- package/src/components/ui/stories/slider.stories.tsx +0 -1
- package/src/components/ui/stories/sonner.stories.tsx +0 -1
- package/src/components/ui/stories/spinner.stories.tsx +356 -0
- package/src/components/ui/stories/stack.stories.tsx +0 -1
- package/src/components/ui/stories/switch.stories.tsx +0 -1
- package/src/components/ui/stories/table.stories.tsx +0 -1
- package/src/components/ui/stories/tabs.stories.tsx +0 -1
- package/src/components/ui/stories/text-field.stories.tsx +0 -1
- package/src/components/ui/stories/textarea.stories.tsx +0 -1
- package/src/components/ui/stories/theme-toggle.stories.tsx +0 -1
- package/src/components/ui/stories/theme.stories.tsx +0 -1
- package/src/components/ui/stories/toggle-group.stories.tsx +0 -1
- package/src/components/ui/stories/toggle.stories.tsx +0 -1
- package/src/components/ui/stories/tooltip.stories.tsx +0 -1
- package/src/components/ui/stories/typography.stories.tsx +5 -2
- package/src/components/ui/stories/use-mobile.stories.tsx +0 -1
- package/src/components/ui/stories/use-theme.stories.tsx +0 -1
- package/src/components/ui/tabs.tsx +1 -1
- package/src/components/ui/theme-toggle.tsx +1 -3
- package/src/components/ui/theme.tsx +6 -1
- package/src/components/ui/typography.tsx +29 -129
- package/src/index.ts +7 -0
- package/src/styles/globals.css +82 -94
- /package/{llm-docs → .llm}/accordion-content.llm.md +0 -0
- /package/{llm-docs → .llm}/accordion-item.llm.md +0 -0
- /package/{llm-docs → .llm}/accordion-trigger.llm.md +0 -0
- /package/{llm-docs → .llm}/accordion.llm.md +0 -0
- /package/{llm-docs → .llm}/alert-description.llm.md +0 -0
- /package/{llm-docs → .llm}/alert-dialog-action.llm.md +0 -0
- /package/{llm-docs → .llm}/alert-dialog-cancel.llm.md +0 -0
- /package/{llm-docs → .llm}/alert-dialog-content.llm.md +0 -0
- /package/{llm-docs → .llm}/alert-dialog-description.llm.md +0 -0
- /package/{llm-docs → .llm}/alert-dialog-footer.llm.md +0 -0
- /package/{llm-docs → .llm}/alert-dialog-header.llm.md +0 -0
- /package/{llm-docs → .llm}/alert-dialog-overlay.llm.md +0 -0
- /package/{llm-docs → .llm}/alert-dialog-portal.llm.md +0 -0
- /package/{llm-docs → .llm}/alert-dialog-title.llm.md +0 -0
- /package/{llm-docs → .llm}/alert-dialog-trigger.llm.md +0 -0
- /package/{llm-docs → .llm}/alert-dialog.llm.md +0 -0
- /package/{llm-docs → .llm}/alert-title.llm.md +0 -0
- /package/{llm-docs → .llm}/alert.llm.md +0 -0
- /package/{llm-docs → .llm}/aspect-ratio.llm.md +0 -0
- /package/{llm-docs → .llm}/avatar-fallback.llm.md +0 -0
- /package/{llm-docs → .llm}/avatar-image.llm.md +0 -0
- /package/{llm-docs → .llm}/avatar.llm.md +0 -0
- /package/{llm-docs → .llm}/breadcrumb-ellipsis.llm.md +0 -0
- /package/{llm-docs → .llm}/breadcrumb-item.llm.md +0 -0
- /package/{llm-docs → .llm}/breadcrumb-link.llm.md +0 -0
- /package/{llm-docs → .llm}/breadcrumb-list.llm.md +0 -0
- /package/{llm-docs → .llm}/breadcrumb-page.llm.md +0 -0
- /package/{llm-docs → .llm}/breadcrumb-separator.llm.md +0 -0
- /package/{llm-docs → .llm}/breadcrumb.llm.md +0 -0
- /package/{llm-docs → .llm}/calendar-day-button.llm.md +0 -0
- /package/{llm-docs → .llm}/calendar.llm.md +0 -0
- /package/{llm-docs → .llm}/card-action.llm.md +0 -0
- /package/{llm-docs → .llm}/card-content.llm.md +0 -0
- /package/{llm-docs → .llm}/card-description.llm.md +0 -0
- /package/{llm-docs → .llm}/card-footer.llm.md +0 -0
- /package/{llm-docs → .llm}/card-header.llm.md +0 -0
- /package/{llm-docs → .llm}/card-title.llm.md +0 -0
- /package/{llm-docs → .llm}/card.llm.md +0 -0
- /package/{llm-docs → .llm}/carousel-content.llm.md +0 -0
- /package/{llm-docs → .llm}/carousel-item.llm.md +0 -0
- /package/{llm-docs → .llm}/carousel-next.llm.md +0 -0
- /package/{llm-docs → .llm}/carousel-previous.llm.md +0 -0
- /package/{llm-docs → .llm}/carousel.llm.md +0 -0
- /package/{llm-docs → .llm}/chart-config.llm.md +0 -0
- /package/{llm-docs → .llm}/chart-container.llm.md +0 -0
- /package/{llm-docs → .llm}/chart-legend-content.llm.md +0 -0
- /package/{llm-docs → .llm}/chart-legend.llm.md +0 -0
- /package/{llm-docs → .llm}/chart-style.llm.md +0 -0
- /package/{llm-docs → .llm}/chart-tooltip-content.llm.md +0 -0
- /package/{llm-docs → .llm}/chart-tooltip.llm.md +0 -0
- /package/{llm-docs → .llm}/checkbox.llm.md +0 -0
- /package/{llm-docs → .llm}/cn.llm.md +0 -0
- /package/{llm-docs → .llm}/collapsible-content.llm.md +0 -0
- /package/{llm-docs → .llm}/collapsible-trigger.llm.md +0 -0
- /package/{llm-docs → .llm}/collapsible.llm.md +0 -0
- /package/{llm-docs → .llm}/combobox-option.llm.md +0 -0
- /package/{llm-docs → .llm}/combobox.llm.md +0 -0
- /package/{llm-docs → .llm}/command-dialog.llm.md +0 -0
- /package/{llm-docs → .llm}/command-empty.llm.md +0 -0
- /package/{llm-docs → .llm}/command-group.llm.md +0 -0
- /package/{llm-docs → .llm}/command-input.llm.md +0 -0
- /package/{llm-docs → .llm}/command-item.llm.md +0 -0
- /package/{llm-docs → .llm}/command-list.llm.md +0 -0
- /package/{llm-docs → .llm}/command-loading.llm.md +0 -0
- /package/{llm-docs → .llm}/command-separator.llm.md +0 -0
- /package/{llm-docs → .llm}/command-shortcut.llm.md +0 -0
- /package/{llm-docs → .llm}/command.llm.md +0 -0
- /package/{llm-docs → .llm}/container.llm.md +0 -0
- /package/{llm-docs → .llm}/context-menu-checkbox-item.llm.md +0 -0
- /package/{llm-docs → .llm}/context-menu-content.llm.md +0 -0
- /package/{llm-docs → .llm}/context-menu-group.llm.md +0 -0
- /package/{llm-docs → .llm}/context-menu-item.llm.md +0 -0
- /package/{llm-docs → .llm}/context-menu-label.llm.md +0 -0
- /package/{llm-docs → .llm}/context-menu-portal.llm.md +0 -0
- /package/{llm-docs → .llm}/context-menu-radio-group.llm.md +0 -0
- /package/{llm-docs → .llm}/context-menu-radio-item.llm.md +0 -0
- /package/{llm-docs → .llm}/context-menu-separator.llm.md +0 -0
- /package/{llm-docs → .llm}/context-menu-shortcut.llm.md +0 -0
- /package/{llm-docs → .llm}/context-menu-sub-content.llm.md +0 -0
- /package/{llm-docs → .llm}/context-menu-sub-trigger.llm.md +0 -0
- /package/{llm-docs → .llm}/context-menu-sub.llm.md +0 -0
- /package/{llm-docs → .llm}/context-menu-trigger.llm.md +0 -0
- /package/{llm-docs → .llm}/context-menu.llm.md +0 -0
- /package/{llm-docs → .llm}/date-picker.llm.md +0 -0
- /package/{llm-docs → .llm}/dialog-close.llm.md +0 -0
- /package/{llm-docs → .llm}/dialog-content.llm.md +0 -0
- /package/{llm-docs → .llm}/dialog-description.llm.md +0 -0
- /package/{llm-docs → .llm}/dialog-footer.llm.md +0 -0
- /package/{llm-docs → .llm}/dialog-header.llm.md +0 -0
- /package/{llm-docs → .llm}/dialog-overlay.llm.md +0 -0
- /package/{llm-docs → .llm}/dialog-portal.llm.md +0 -0
- /package/{llm-docs → .llm}/dialog-title.llm.md +0 -0
- /package/{llm-docs → .llm}/dialog-trigger.llm.md +0 -0
- /package/{llm-docs → .llm}/dialog.llm.md +0 -0
- /package/{llm-docs → .llm}/drawer-close.llm.md +0 -0
- /package/{llm-docs → .llm}/drawer-content.llm.md +0 -0
- /package/{llm-docs → .llm}/drawer-description.llm.md +0 -0
- /package/{llm-docs → .llm}/drawer-footer.llm.md +0 -0
- /package/{llm-docs → .llm}/drawer-header.llm.md +0 -0
- /package/{llm-docs → .llm}/drawer-overlay.llm.md +0 -0
- /package/{llm-docs → .llm}/drawer-portal.llm.md +0 -0
- /package/{llm-docs → .llm}/drawer-title.llm.md +0 -0
- /package/{llm-docs → .llm}/drawer-trigger.llm.md +0 -0
- /package/{llm-docs → .llm}/drawer.llm.md +0 -0
- /package/{llm-docs → .llm}/dropdown-menu-checkbox-item.llm.md +0 -0
- /package/{llm-docs → .llm}/dropdown-menu-content.llm.md +0 -0
- /package/{llm-docs → .llm}/dropdown-menu-group.llm.md +0 -0
- /package/{llm-docs → .llm}/dropdown-menu-item.llm.md +0 -0
- /package/{llm-docs → .llm}/dropdown-menu-label.llm.md +0 -0
- /package/{llm-docs → .llm}/dropdown-menu-portal.llm.md +0 -0
- /package/{llm-docs → .llm}/dropdown-menu-radio-group.llm.md +0 -0
- /package/{llm-docs → .llm}/dropdown-menu-radio-item.llm.md +0 -0
- /package/{llm-docs → .llm}/dropdown-menu-separator.llm.md +0 -0
- /package/{llm-docs → .llm}/dropdown-menu-shortcut.llm.md +0 -0
- /package/{llm-docs → .llm}/dropdown-menu-sub-content.llm.md +0 -0
- /package/{llm-docs → .llm}/dropdown-menu-sub-trigger.llm.md +0 -0
- /package/{llm-docs → .llm}/dropdown-menu-sub.llm.md +0 -0
- /package/{llm-docs → .llm}/dropdown-menu-trigger.llm.md +0 -0
- /package/{llm-docs → .llm}/dropdown-menu.llm.md +0 -0
- /package/{llm-docs → .llm}/empty-state.llm.md +0 -0
- /package/{llm-docs → .llm}/hover-card-content.llm.md +0 -0
- /package/{llm-docs → .llm}/hover-card-trigger.llm.md +0 -0
- /package/{llm-docs → .llm}/hover-card.llm.md +0 -0
- /package/{llm-docs → .llm}/input.llm.md +0 -0
- /package/{llm-docs → .llm}/label.llm.md +0 -0
- /package/{llm-docs → .llm}/menubar-checkbox-item.llm.md +0 -0
- /package/{llm-docs → .llm}/menubar-content.llm.md +0 -0
- /package/{llm-docs → .llm}/menubar-group.llm.md +0 -0
- /package/{llm-docs → .llm}/menubar-item.llm.md +0 -0
- /package/{llm-docs → .llm}/menubar-label.llm.md +0 -0
- /package/{llm-docs → .llm}/menubar-menu.llm.md +0 -0
- /package/{llm-docs → .llm}/menubar-portal.llm.md +0 -0
- /package/{llm-docs → .llm}/menubar-radio-group.llm.md +0 -0
- /package/{llm-docs → .llm}/menubar-radio-item.llm.md +0 -0
- /package/{llm-docs → .llm}/menubar-separator.llm.md +0 -0
- /package/{llm-docs → .llm}/menubar-shortcut.llm.md +0 -0
- /package/{llm-docs → .llm}/menubar-sub-content.llm.md +0 -0
- /package/{llm-docs → .llm}/menubar-sub-trigger.llm.md +0 -0
- /package/{llm-docs → .llm}/menubar-sub.llm.md +0 -0
- /package/{llm-docs → .llm}/menubar-trigger.llm.md +0 -0
- /package/{llm-docs → .llm}/menubar.llm.md +0 -0
- /package/{llm-docs → .llm}/navigation-menu-content.llm.md +0 -0
- /package/{llm-docs → .llm}/navigation-menu-indicator.llm.md +0 -0
- /package/{llm-docs → .llm}/navigation-menu-item.llm.md +0 -0
- /package/{llm-docs → .llm}/navigation-menu-link.llm.md +0 -0
- /package/{llm-docs → .llm}/navigation-menu-list.llm.md +0 -0
- /package/{llm-docs → .llm}/navigation-menu-trigger-style.llm.md +0 -0
- /package/{llm-docs → .llm}/navigation-menu-trigger.llm.md +0 -0
- /package/{llm-docs → .llm}/navigation-menu-viewport.llm.md +0 -0
- /package/{llm-docs → .llm}/navigation-menu.llm.md +0 -0
- /package/{llm-docs → .llm}/pagination-content.llm.md +0 -0
- /package/{llm-docs → .llm}/pagination-ellipsis.llm.md +0 -0
- /package/{llm-docs → .llm}/pagination-item.llm.md +0 -0
- /package/{llm-docs → .llm}/pagination-link.llm.md +0 -0
- /package/{llm-docs → .llm}/pagination-next.llm.md +0 -0
- /package/{llm-docs → .llm}/pagination-previous.llm.md +0 -0
- /package/{llm-docs → .llm}/pagination.llm.md +0 -0
- /package/{llm-docs → .llm}/popover-anchor.llm.md +0 -0
- /package/{llm-docs → .llm}/popover-content.llm.md +0 -0
- /package/{llm-docs → .llm}/popover-trigger.llm.md +0 -0
- /package/{llm-docs → .llm}/popover.llm.md +0 -0
- /package/{llm-docs → .llm}/progress.llm.md +0 -0
- /package/{llm-docs → .llm}/radio-group-indicator.llm.md +0 -0
- /package/{llm-docs → .llm}/radio-group-item.llm.md +0 -0
- /package/{llm-docs → .llm}/radio-group.llm.md +0 -0
- /package/{llm-docs → .llm}/resizable-handle.llm.md +0 -0
- /package/{llm-docs → .llm}/resizable-panel-group.llm.md +0 -0
- /package/{llm-docs → .llm}/resizable-panel.llm.md +0 -0
- /package/{llm-docs → .llm}/scroll-area-corner.llm.md +0 -0
- /package/{llm-docs → .llm}/scroll-area-thumb.llm.md +0 -0
- /package/{llm-docs → .llm}/scroll-area-viewport.llm.md +0 -0
- /package/{llm-docs → .llm}/scroll-area.llm.md +0 -0
- /package/{llm-docs → .llm}/scroll-bar.llm.md +0 -0
- /package/{llm-docs → .llm}/select-content.llm.md +0 -0
- /package/{llm-docs → .llm}/select-group.llm.md +0 -0
- /package/{llm-docs → .llm}/select-item.llm.md +0 -0
- /package/{llm-docs → .llm}/select-label.llm.md +0 -0
- /package/{llm-docs → .llm}/select-scroll-down-button.llm.md +0 -0
- /package/{llm-docs → .llm}/select-scroll-up-button.llm.md +0 -0
- /package/{llm-docs → .llm}/select-separator.llm.md +0 -0
- /package/{llm-docs → .llm}/select-trigger.llm.md +0 -0
- /package/{llm-docs → .llm}/select-value.llm.md +0 -0
- /package/{llm-docs → .llm}/select.llm.md +0 -0
- /package/{llm-docs → .llm}/separator.llm.md +0 -0
- /package/{llm-docs → .llm}/sheet-close.llm.md +0 -0
- /package/{llm-docs → .llm}/sheet-content.llm.md +0 -0
- /package/{llm-docs → .llm}/sheet-description.llm.md +0 -0
- /package/{llm-docs → .llm}/sheet-footer.llm.md +0 -0
- /package/{llm-docs → .llm}/sheet-header.llm.md +0 -0
- /package/{llm-docs → .llm}/sheet-title.llm.md +0 -0
- /package/{llm-docs → .llm}/sheet-trigger.llm.md +0 -0
- /package/{llm-docs → .llm}/sheet.llm.md +0 -0
- /package/{llm-docs → .llm}/sidebar-content.llm.md +0 -0
- /package/{llm-docs → .llm}/sidebar-footer.llm.md +0 -0
- /package/{llm-docs → .llm}/sidebar-group-action.llm.md +0 -0
- /package/{llm-docs → .llm}/sidebar-group-content.llm.md +0 -0
- /package/{llm-docs → .llm}/sidebar-group-label.llm.md +0 -0
- /package/{llm-docs → .llm}/sidebar-group.llm.md +0 -0
- /package/{llm-docs → .llm}/sidebar-header.llm.md +0 -0
- /package/{llm-docs → .llm}/sidebar-input.llm.md +0 -0
- /package/{llm-docs → .llm}/sidebar-inset.llm.md +0 -0
- /package/{llm-docs → .llm}/sidebar-menu-action.llm.md +0 -0
- /package/{llm-docs → .llm}/sidebar-menu-badge.llm.md +0 -0
- /package/{llm-docs → .llm}/sidebar-menu-button.llm.md +0 -0
- /package/{llm-docs → .llm}/sidebar-menu-item.llm.md +0 -0
- /package/{llm-docs → .llm}/sidebar-menu-skeleton.llm.md +0 -0
- /package/{llm-docs → .llm}/sidebar-menu-sub-button.llm.md +0 -0
- /package/{llm-docs → .llm}/sidebar-menu-sub-item.llm.md +0 -0
- /package/{llm-docs → .llm}/sidebar-menu-sub.llm.md +0 -0
- /package/{llm-docs → .llm}/sidebar-menu.llm.md +0 -0
- /package/{llm-docs → .llm}/sidebar-provider.llm.md +0 -0
- /package/{llm-docs → .llm}/sidebar-rail.llm.md +0 -0
- /package/{llm-docs → .llm}/sidebar-separator.llm.md +0 -0
- /package/{llm-docs → .llm}/sidebar-trigger.llm.md +0 -0
- /package/{llm-docs → .llm}/sidebar.llm.md +0 -0
- /package/{llm-docs → .llm}/skeleton.llm.md +0 -0
- /package/{llm-docs → .llm}/slider.llm.md +0 -0
- /package/{llm-docs → .llm}/stack.llm.md +0 -0
- /package/{llm-docs → .llm}/switch.llm.md +0 -0
- /package/{llm-docs → .llm}/table-body.llm.md +0 -0
- /package/{llm-docs → .llm}/table-caption.llm.md +0 -0
- /package/{llm-docs → .llm}/table-cell.llm.md +0 -0
- /package/{llm-docs → .llm}/table-footer.llm.md +0 -0
- /package/{llm-docs → .llm}/table-head.llm.md +0 -0
- /package/{llm-docs → .llm}/table-header.llm.md +0 -0
- /package/{llm-docs → .llm}/table-row.llm.md +0 -0
- /package/{llm-docs → .llm}/table.llm.md +0 -0
- /package/{llm-docs → .llm}/tabs-content.llm.md +0 -0
- /package/{llm-docs → .llm}/tabs-list.llm.md +0 -0
- /package/{llm-docs → .llm}/tabs-trigger.llm.md +0 -0
- /package/{llm-docs → .llm}/tabs.llm.md +0 -0
- /package/{llm-docs → .llm}/text-field.llm.md +0 -0
- /package/{llm-docs → .llm}/textarea.llm.md +0 -0
- /package/{llm-docs → .llm}/theme-preference.llm.md +0 -0
- /package/{llm-docs → .llm}/theme-toggle.llm.md +0 -0
- /package/{llm-docs → .llm}/theme.llm.md +0 -0
- /package/{llm-docs → .llm}/toast.llm.md +0 -0
- /package/{llm-docs → .llm}/toaster.llm.md +0 -0
- /package/{llm-docs → .llm}/toggle-group-item.llm.md +0 -0
- /package/{llm-docs → .llm}/toggle-group.llm.md +0 -0
- /package/{llm-docs → .llm}/toggle.llm.md +0 -0
- /package/{llm-docs → .llm}/tooltip-content.llm.md +0 -0
- /package/{llm-docs → .llm}/tooltip-provider.llm.md +0 -0
- /package/{llm-docs → .llm}/tooltip-trigger.llm.md +0 -0
- /package/{llm-docs → .llm}/tooltip.llm.md +0 -0
- /package/{llm-docs → .llm}/use-carousel.llm.md +0 -0
- /package/{llm-docs → .llm}/use-command-state.llm.md +0 -0
- /package/{llm-docs → .llm}/use-is-mobile.llm.md +0 -0
- /package/{llm-docs → .llm}/use-sidebar.llm.md +0 -0
|
@@ -131,4 +131,129 @@ import { Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext
|
|
|
131
131
|
<CarouselPrevious />
|
|
132
132
|
<CarouselNext />
|
|
133
133
|
</Carousel>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Kbd and KbdGroup
|
|
137
|
+
|
|
138
|
+
Display keyboard shortcuts and key combinations with semantic HTML.
|
|
139
|
+
|
|
140
|
+
```tsx
|
|
141
|
+
import { Kbd, KbdGroup } from "@neynar/ui"
|
|
142
|
+
|
|
143
|
+
// Single key
|
|
144
|
+
<Kbd>Enter</Kbd>
|
|
145
|
+
<Kbd>Esc</Kbd>
|
|
146
|
+
<Kbd>⌘</Kbd>
|
|
147
|
+
|
|
148
|
+
// Key combinations
|
|
149
|
+
<KbdGroup>
|
|
150
|
+
<Kbd>⌘</Kbd>
|
|
151
|
+
<Kbd>K</Kbd>
|
|
152
|
+
</KbdGroup>
|
|
153
|
+
|
|
154
|
+
<KbdGroup>
|
|
155
|
+
<Kbd>⌘</Kbd>
|
|
156
|
+
<Kbd>⇧</Kbd>
|
|
157
|
+
<Kbd>P</Kbd>
|
|
158
|
+
</KbdGroup>
|
|
159
|
+
|
|
160
|
+
// In documentation
|
|
161
|
+
<p>
|
|
162
|
+
Press <KbdGroup><Kbd>⌘</Kbd><Kbd>K</Kbd></KbdGroup> to open the
|
|
163
|
+
command palette.
|
|
164
|
+
</p>
|
|
165
|
+
|
|
166
|
+
// In search interfaces
|
|
167
|
+
<div className="relative">
|
|
168
|
+
<Input placeholder="Search..." />
|
|
169
|
+
<div className="absolute right-3 top-1/2 -translate-y-1/2">
|
|
170
|
+
<KbdGroup>
|
|
171
|
+
<Kbd>⌘</Kbd>
|
|
172
|
+
<Kbd>K</Kbd>
|
|
173
|
+
</KbdGroup>
|
|
174
|
+
</div>
|
|
175
|
+
</div>
|
|
176
|
+
|
|
177
|
+
// In tooltips
|
|
178
|
+
<Tooltip>
|
|
179
|
+
<TooltipTrigger asChild>
|
|
180
|
+
<Button variant="ghost" size="icon">
|
|
181
|
+
<Settings className="h-4 w-4" />
|
|
182
|
+
</Button>
|
|
183
|
+
</TooltipTrigger>
|
|
184
|
+
<TooltipContent>
|
|
185
|
+
Open Settings <KbdGroup><Kbd>⌘</Kbd><Kbd>,</Kbd></KbdGroup>
|
|
186
|
+
</TooltipContent>
|
|
187
|
+
</Tooltip>
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Empty
|
|
191
|
+
|
|
192
|
+
Empty state placeholder for no data scenarios with optional icon, title, description, and actions.
|
|
193
|
+
|
|
194
|
+
```tsx
|
|
195
|
+
import { Empty } from "@neynar/ui"
|
|
196
|
+
import { Search, Inbox } from "lucide-react"
|
|
197
|
+
|
|
198
|
+
// Basic empty state
|
|
199
|
+
<Empty
|
|
200
|
+
icon={<Search className="h-8 w-8" />}
|
|
201
|
+
title="No results found"
|
|
202
|
+
description="Try adjusting your search criteria"
|
|
203
|
+
/>
|
|
204
|
+
|
|
205
|
+
// With action
|
|
206
|
+
<Empty
|
|
207
|
+
icon={<Inbox className="h-8 w-8" />}
|
|
208
|
+
title="No messages"
|
|
209
|
+
description="You don't have any messages yet"
|
|
210
|
+
action={<Button>Compose Message</Button>}
|
|
211
|
+
/>
|
|
212
|
+
|
|
213
|
+
// Multiple actions
|
|
214
|
+
<Empty
|
|
215
|
+
title="No data available"
|
|
216
|
+
description="Get started by uploading your first file"
|
|
217
|
+
actions={
|
|
218
|
+
<div className="flex gap-2">
|
|
219
|
+
<Button>Upload File</Button>
|
|
220
|
+
<Button variant="outline">Learn More</Button>
|
|
221
|
+
</div>
|
|
222
|
+
}
|
|
223
|
+
/>
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
## Spinner
|
|
227
|
+
|
|
228
|
+
Loading indicator for async operations with GPU-accelerated animation.
|
|
229
|
+
|
|
230
|
+
```tsx
|
|
231
|
+
import { Spinner } from "@neynar/ui"
|
|
232
|
+
|
|
233
|
+
// Basic spinner
|
|
234
|
+
<Spinner />
|
|
235
|
+
|
|
236
|
+
// Different sizes
|
|
237
|
+
<Spinner className="size-3" /> // Small
|
|
238
|
+
<Spinner className="size-4" /> // Default
|
|
239
|
+
<Spinner className="size-6" /> // Large
|
|
240
|
+
<Spinner className="size-8" /> // Extra large
|
|
241
|
+
|
|
242
|
+
// With color
|
|
243
|
+
<Spinner className="text-primary" />
|
|
244
|
+
<Spinner className="text-destructive" />
|
|
245
|
+
|
|
246
|
+
// In button
|
|
247
|
+
<Button disabled>
|
|
248
|
+
<Spinner className="mr-2 size-4" />
|
|
249
|
+
Loading...
|
|
250
|
+
</Button>
|
|
251
|
+
|
|
252
|
+
// Centered loading state
|
|
253
|
+
<div className="flex items-center justify-center p-8">
|
|
254
|
+
<Spinner className="size-6" />
|
|
255
|
+
</div>
|
|
256
|
+
|
|
257
|
+
// With custom aria-label
|
|
258
|
+
<Spinner aria-label="Loading user profile" />
|
|
134
259
|
```
|
|
@@ -64,20 +64,6 @@ import { Skeleton } from "@neynar/ui"
|
|
|
64
64
|
</div>
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
-
## EmptyState
|
|
68
|
-
|
|
69
|
-
Handle empty data scenarios with helpful messaging.
|
|
70
|
-
|
|
71
|
-
```tsx
|
|
72
|
-
import { EmptyState } from "@neynar/ui"
|
|
73
|
-
|
|
74
|
-
<EmptyState
|
|
75
|
-
title="No casts found"
|
|
76
|
-
description="Try adjusting your search criteria"
|
|
77
|
-
action={<Button>Refresh</Button>}
|
|
78
|
-
/>
|
|
79
|
-
```
|
|
80
|
-
|
|
81
67
|
## Sonner (Toast)
|
|
82
68
|
|
|
83
69
|
Non-blocking notifications for actions and events.
|
|
@@ -20,6 +20,100 @@ import { Input, Label, Textarea, TextField } from "@neynar/ui"
|
|
|
20
20
|
<TextField label="Username" placeholder="Enter username" required />
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
+
## Field
|
|
24
|
+
|
|
25
|
+
Flexible form field composition with label, description, error, and hint support.
|
|
26
|
+
|
|
27
|
+
```tsx
|
|
28
|
+
import { Field, Input } from "@neynar/ui"
|
|
29
|
+
|
|
30
|
+
// Basic field with label
|
|
31
|
+
<Field label="Email Address">
|
|
32
|
+
<Input type="email" placeholder="you@example.com" />
|
|
33
|
+
</Field>
|
|
34
|
+
|
|
35
|
+
// Field with description
|
|
36
|
+
<Field
|
|
37
|
+
label="Password"
|
|
38
|
+
description="Must be at least 8 characters"
|
|
39
|
+
>
|
|
40
|
+
<Input type="password" />
|
|
41
|
+
</Field>
|
|
42
|
+
|
|
43
|
+
// Field with error
|
|
44
|
+
<Field
|
|
45
|
+
label="Username"
|
|
46
|
+
error="Username is already taken"
|
|
47
|
+
>
|
|
48
|
+
<Input defaultValue="john" />
|
|
49
|
+
</Field>
|
|
50
|
+
|
|
51
|
+
// Field with hint
|
|
52
|
+
<Field
|
|
53
|
+
label="API Key"
|
|
54
|
+
hint="Keep this secret"
|
|
55
|
+
>
|
|
56
|
+
<Input type="password" />
|
|
57
|
+
</Field>
|
|
58
|
+
|
|
59
|
+
// Complete field with all features
|
|
60
|
+
<Field
|
|
61
|
+
label="Full Name"
|
|
62
|
+
description="Enter your legal name"
|
|
63
|
+
error={errors.name}
|
|
64
|
+
hint="This will appear on your profile"
|
|
65
|
+
required
|
|
66
|
+
>
|
|
67
|
+
<Input placeholder="John Doe" />
|
|
68
|
+
</Field>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## InputGroup
|
|
72
|
+
|
|
73
|
+
Input with left/right addons for icons, text, or buttons.
|
|
74
|
+
|
|
75
|
+
```tsx
|
|
76
|
+
import { InputGroup, Input } from "@neynar/ui"
|
|
77
|
+
import { Search, DollarSign, Send } from "lucide-react"
|
|
78
|
+
|
|
79
|
+
// Icon addon
|
|
80
|
+
<InputGroup>
|
|
81
|
+
<InputGroup.LeftAddon>
|
|
82
|
+
<Search className="h-4 w-4" />
|
|
83
|
+
</InputGroup.LeftAddon>
|
|
84
|
+
<Input placeholder="Search..." />
|
|
85
|
+
</InputGroup>
|
|
86
|
+
|
|
87
|
+
// Text addon
|
|
88
|
+
<InputGroup>
|
|
89
|
+
<InputGroup.LeftAddon>
|
|
90
|
+
https://
|
|
91
|
+
</InputGroup.LeftAddon>
|
|
92
|
+
<Input placeholder="example.com" />
|
|
93
|
+
</InputGroup>
|
|
94
|
+
|
|
95
|
+
// Currency input
|
|
96
|
+
<InputGroup>
|
|
97
|
+
<InputGroup.LeftAddon>
|
|
98
|
+
<DollarSign className="h-4 w-4" />
|
|
99
|
+
</InputGroup.LeftAddon>
|
|
100
|
+
<Input type="number" placeholder="0.00" />
|
|
101
|
+
<InputGroup.RightAddon>
|
|
102
|
+
USD
|
|
103
|
+
</InputGroup.RightAddon>
|
|
104
|
+
</InputGroup>
|
|
105
|
+
|
|
106
|
+
// With button
|
|
107
|
+
<InputGroup>
|
|
108
|
+
<Input placeholder="Enter email..." />
|
|
109
|
+
<InputGroup.RightAddon>
|
|
110
|
+
<Button size="sm">
|
|
111
|
+
<Send className="h-4 w-4" />
|
|
112
|
+
</Button>
|
|
113
|
+
</InputGroup.RightAddon>
|
|
114
|
+
</InputGroup>
|
|
115
|
+
```
|
|
116
|
+
|
|
23
117
|
## Selection Components
|
|
24
118
|
|
|
25
119
|
```tsx
|
|
@@ -56,4 +56,173 @@ import { AspectRatio } from "@neynar/ui";
|
|
|
56
56
|
<AspectRatio ratio={1} className="bg-muted">
|
|
57
57
|
<div className="flex items-center justify-center">1:1 Square</div>
|
|
58
58
|
</AspectRatio>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## ButtonGroup
|
|
62
|
+
|
|
63
|
+
Visual grouping for related buttons with flexible composition.
|
|
64
|
+
|
|
65
|
+
```tsx
|
|
66
|
+
import { ButtonGroup } from "@neynar/ui"
|
|
67
|
+
|
|
68
|
+
// Basic button group
|
|
69
|
+
<ButtonGroup>
|
|
70
|
+
<Button variant="outline">Left</Button>
|
|
71
|
+
<Button variant="outline">Middle</Button>
|
|
72
|
+
<Button variant="outline">Right</Button>
|
|
73
|
+
</ButtonGroup>
|
|
74
|
+
|
|
75
|
+
// Different orientations
|
|
76
|
+
<ButtonGroup orientation="vertical">
|
|
77
|
+
<Button>Top</Button>
|
|
78
|
+
<Button>Middle</Button>
|
|
79
|
+
<Button>Bottom</Button>
|
|
80
|
+
</ButtonGroup>
|
|
81
|
+
|
|
82
|
+
// Mixed button types
|
|
83
|
+
<ButtonGroup>
|
|
84
|
+
<Button variant="default">Primary</Button>
|
|
85
|
+
<Button variant="secondary">Secondary</Button>
|
|
86
|
+
<Button variant="outline" size="icon">
|
|
87
|
+
<MoreVertical className="h-4 w-4" />
|
|
88
|
+
</Button>
|
|
89
|
+
</ButtonGroup>
|
|
90
|
+
|
|
91
|
+
// Toolbar pattern
|
|
92
|
+
<ButtonGroup>
|
|
93
|
+
<Button variant="ghost" size="icon"><Bold className="h-4 w-4" /></Button>
|
|
94
|
+
<Button variant="ghost" size="icon"><Italic className="h-4 w-4" /></Button>
|
|
95
|
+
<Button variant="ghost" size="icon"><Underline className="h-4 w-4" /></Button>
|
|
96
|
+
</ButtonGroup>
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Item
|
|
100
|
+
|
|
101
|
+
Flexible list item composition with media, content, and actions following the compound component pattern.
|
|
102
|
+
|
|
103
|
+
```tsx
|
|
104
|
+
import {
|
|
105
|
+
Item,
|
|
106
|
+
ItemGroup,
|
|
107
|
+
ItemMedia,
|
|
108
|
+
ItemContent,
|
|
109
|
+
ItemTitle,
|
|
110
|
+
ItemDescription,
|
|
111
|
+
ItemHeader,
|
|
112
|
+
ItemFooter,
|
|
113
|
+
ItemActions,
|
|
114
|
+
ItemSeparator
|
|
115
|
+
} from "@neynar/ui"
|
|
116
|
+
|
|
117
|
+
// Basic list item
|
|
118
|
+
<ItemGroup>
|
|
119
|
+
<Item>
|
|
120
|
+
<ItemMedia variant="icon">
|
|
121
|
+
<FileText className="h-4 w-4" />
|
|
122
|
+
</ItemMedia>
|
|
123
|
+
<ItemContent>
|
|
124
|
+
<ItemTitle>Document.pdf</ItemTitle>
|
|
125
|
+
<ItemDescription>Last modified today</ItemDescription>
|
|
126
|
+
</ItemContent>
|
|
127
|
+
</Item>
|
|
128
|
+
</ItemGroup>
|
|
129
|
+
|
|
130
|
+
// File list with actions
|
|
131
|
+
<ItemGroup>
|
|
132
|
+
<Item asChild>
|
|
133
|
+
<a href="/documents/report.pdf">
|
|
134
|
+
<ItemMedia variant="icon">
|
|
135
|
+
<FileText className="h-4 w-4" />
|
|
136
|
+
</ItemMedia>
|
|
137
|
+
<ItemContent>
|
|
138
|
+
<ItemHeader>
|
|
139
|
+
<ItemTitle>Q4 Report.pdf</ItemTitle>
|
|
140
|
+
<Badge variant="secondary">PDF</Badge>
|
|
141
|
+
</ItemHeader>
|
|
142
|
+
<ItemDescription>Last modified today at 2:45 PM</ItemDescription>
|
|
143
|
+
<ItemFooter>
|
|
144
|
+
<span className="text-xs text-muted-foreground">2.4 MB</span>
|
|
145
|
+
</ItemFooter>
|
|
146
|
+
</ItemContent>
|
|
147
|
+
<ItemActions>
|
|
148
|
+
<Button variant="ghost" size="icon">
|
|
149
|
+
<MoreVertical className="h-4 w-4" />
|
|
150
|
+
</Button>
|
|
151
|
+
</ItemActions>
|
|
152
|
+
</a>
|
|
153
|
+
</Item>
|
|
154
|
+
</ItemGroup>
|
|
155
|
+
|
|
156
|
+
// User list with avatars
|
|
157
|
+
<ItemGroup>
|
|
158
|
+
<Item>
|
|
159
|
+
<ItemMedia variant="image">
|
|
160
|
+
<img src="/avatars/alice.jpg" alt="Alice" />
|
|
161
|
+
</ItemMedia>
|
|
162
|
+
<ItemContent>
|
|
163
|
+
<ItemTitle>Alice Johnson</ItemTitle>
|
|
164
|
+
<ItemDescription>Product Manager</ItemDescription>
|
|
165
|
+
</ItemContent>
|
|
166
|
+
<ItemActions>
|
|
167
|
+
<Button variant="outline" size="sm">Message</Button>
|
|
168
|
+
</ItemActions>
|
|
169
|
+
</Item>
|
|
170
|
+
<ItemSeparator />
|
|
171
|
+
<Item>
|
|
172
|
+
<ItemMedia variant="image">
|
|
173
|
+
<img src="/avatars/bob.jpg" alt="Bob" />
|
|
174
|
+
</ItemMedia>
|
|
175
|
+
<ItemContent>
|
|
176
|
+
<ItemTitle>Bob Smith</ItemTitle>
|
|
177
|
+
<ItemDescription>Engineer</ItemDescription>
|
|
178
|
+
</ItemContent>
|
|
179
|
+
<ItemActions>
|
|
180
|
+
<Button variant="outline" size="sm">Message</Button>
|
|
181
|
+
</ItemActions>
|
|
182
|
+
</Item>
|
|
183
|
+
</ItemGroup>
|
|
184
|
+
|
|
185
|
+
// Notification list with variants
|
|
186
|
+
<ItemGroup>
|
|
187
|
+
<Item variant="muted">
|
|
188
|
+
<ItemMedia variant="icon">
|
|
189
|
+
<User className="h-4 w-4" />
|
|
190
|
+
</ItemMedia>
|
|
191
|
+
<ItemContent>
|
|
192
|
+
<ItemHeader>
|
|
193
|
+
<ItemTitle>New follower</ItemTitle>
|
|
194
|
+
<Badge>New</Badge>
|
|
195
|
+
</ItemHeader>
|
|
196
|
+
<ItemDescription>John started following you</ItemDescription>
|
|
197
|
+
<ItemFooter>
|
|
198
|
+
<span className="text-xs text-muted-foreground">5 min ago</span>
|
|
199
|
+
</ItemFooter>
|
|
200
|
+
</ItemContent>
|
|
201
|
+
</Item>
|
|
202
|
+
</ItemGroup>
|
|
203
|
+
|
|
204
|
+
// Compact settings menu
|
|
205
|
+
<ItemGroup>
|
|
206
|
+
<Item asChild size="sm">
|
|
207
|
+
<a href="/settings/profile">
|
|
208
|
+
<ItemContent>
|
|
209
|
+
<ItemTitle>Profile</ItemTitle>
|
|
210
|
+
</ItemContent>
|
|
211
|
+
<ItemActions>
|
|
212
|
+
<ChevronRight className="h-4 w-4 text-muted-foreground" />
|
|
213
|
+
</ItemActions>
|
|
214
|
+
</a>
|
|
215
|
+
</Item>
|
|
216
|
+
<ItemSeparator />
|
|
217
|
+
<Item asChild size="sm">
|
|
218
|
+
<a href="/settings/notifications">
|
|
219
|
+
<ItemContent>
|
|
220
|
+
<ItemTitle>Notifications</ItemTitle>
|
|
221
|
+
</ItemContent>
|
|
222
|
+
<ItemActions>
|
|
223
|
+
<ChevronRight className="h-4 w-4 text-muted-foreground" />
|
|
224
|
+
</ItemActions>
|
|
225
|
+
</a>
|
|
226
|
+
</Item>
|
|
227
|
+
</ItemGroup>
|
|
59
228
|
```
|
package/llms.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @neynar/ui Component Library
|
|
2
2
|
|
|
3
|
-
A production-ready React component library with
|
|
3
|
+
A production-ready React component library with 272+ components, hooks, and utilities. Built on Radix UI primitives with Tailwind CSS v4, ensuring WCAG-compliant accessibility and zero runtime overhead.
|
|
4
4
|
|
|
5
5
|
## Quick Reference
|
|
6
6
|
|
|
@@ -11,21 +11,21 @@ import "@neynar/ui/styles"
|
|
|
11
11
|
|
|
12
12
|
## 🔍 How to Search Components
|
|
13
13
|
|
|
14
|
-
**IMPORTANT:** DO NOT load the entire
|
|
14
|
+
**IMPORTANT:** DO NOT load the entire `.llm/sdk-items-registry.json` file - it contains 265+ items and will exceed context limits.
|
|
15
15
|
|
|
16
16
|
Instead, search efficiently using these methods:
|
|
17
17
|
|
|
18
18
|
### Method 1: Search by Component Name (Recommended)
|
|
19
19
|
```bash
|
|
20
20
|
# Search for specific component documentation
|
|
21
|
-
cat llm
|
|
22
|
-
# Example: cat llm
|
|
21
|
+
cat .llm/{component-name}.llm.md
|
|
22
|
+
# Example: cat .llm/button.llm.md
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
### Method 2: Search Registry by Keywords
|
|
25
|
+
### Method 2: Search Registry by Keywords
|
|
26
26
|
```bash
|
|
27
27
|
# Use jq to search registry by keywords without loading entire file
|
|
28
|
-
jq 'to_entries[] | select(.value.keywords[]? | contains("button")) | {key: .key, description: .value.description}' llm
|
|
28
|
+
jq 'to_entries[] | select(.value.keywords[]? | contains("button")) | {key: .key, description: .value.description}' .llm/sdk-items-registry.json
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
### Method 3: List Components by Category
|
|
@@ -81,7 +81,7 @@ import { H1, H2, P, Span, Code, Stack, Badge } from "@neynar/ui"
|
|
|
81
81
|
|
|
82
82
|
## Registry Structure
|
|
83
83
|
|
|
84
|
-
The
|
|
84
|
+
The `.llm/sdk-items-registry.json` contains metadata for all components:
|
|
85
85
|
|
|
86
86
|
```json
|
|
87
87
|
{
|
|
@@ -99,9 +99,9 @@ The `llm-docs/sdk-items-registry.json` contains metadata for all components:
|
|
|
99
99
|
For component discovery, use this approach:
|
|
100
100
|
|
|
101
101
|
1. **Know what you need?** → Use Method 1 (direct file access)
|
|
102
|
-
2. **Searching by functionality?** → Use Method 2 (keyword search)
|
|
102
|
+
2. **Searching by functionality?** → Use Method 2 (keyword search)
|
|
103
103
|
3. **Browsing categories?** → Use Method 3 (category patterns)
|
|
104
|
-
4. **Need complete list?** → Use `jq 'keys' llm
|
|
104
|
+
4. **Need complete list?** → Use `jq 'keys' .llm/sdk-items-registry.json`
|
|
105
105
|
|
|
106
106
|
**Performance Tip:** Each .llm.md file contains complete documentation including props, examples, and TypeScript definitions. Only load what you need.
|
|
107
107
|
|
|
@@ -109,7 +109,9 @@ For component discovery, use this approach:
|
|
|
109
109
|
|
|
110
110
|
### Layout Components → [docs/llm/components/layout.md](docs/llm/components/layout.md)
|
|
111
111
|
- **Container** - Responsive container with max-width constraints
|
|
112
|
-
- **Stack** - Flexible vertical and horizontal layout primitive
|
|
112
|
+
- **Stack** - Flexible vertical and horizontal layout primitive
|
|
113
|
+
- **ButtonGroup** - Groups related buttons with consistent spacing
|
|
114
|
+
- **Item** + 9 sub-components - Flexible list item with media, content, and actions
|
|
113
115
|
- **Separator** - Visual content dividers
|
|
114
116
|
- **AspectRatio** - Responsive aspect ratio containers
|
|
115
117
|
- **ResizablePanelGroup**, **ResizablePanel**, **ResizableHandle** - Interactive resizable layouts
|
|
@@ -129,6 +131,8 @@ For component discovery, use this approach:
|
|
|
129
131
|
- **Input** - Text input fields with validation states
|
|
130
132
|
- **Textarea** - Multi-line text input with auto-resize
|
|
131
133
|
- **TextField** - Complete form field with label and validation
|
|
134
|
+
- **Field** - Flexible form field composition with label, description, error, and hint
|
|
135
|
+
- **InputGroup** - Input with left/right addons for icons, text, or buttons
|
|
132
136
|
- **Label** - Accessible form labels
|
|
133
137
|
- **Checkbox** - Boolean input with indeterminate state
|
|
134
138
|
- **RadioGroup**, **RadioGroupItem** - Single-choice selection
|
|
@@ -151,7 +155,9 @@ For component discovery, use this approach:
|
|
|
151
155
|
- **Progress** - Loading and completion indicators
|
|
152
156
|
- **Skeleton** - Loading state placeholders
|
|
153
157
|
- **Chart** + 5 sub-components - Data visualization
|
|
154
|
-
- **
|
|
158
|
+
- **Kbd**, **KbdGroup** - Keyboard shortcuts and key combinations display
|
|
159
|
+
- **Empty** - Empty state placeholder for no data scenarios
|
|
160
|
+
- **Spinner** - Loading indicator for async operations
|
|
155
161
|
|
|
156
162
|
### Table Components → [docs/llm/components/tables.md](docs/llm/components/tables.md)
|
|
157
163
|
- **Table** + 7 sub-components - Data tables
|
|
@@ -201,7 +207,7 @@ The typography system provides semantic HTML components with consistent styling:
|
|
|
201
207
|
#### Available Components
|
|
202
208
|
- **H1, H2, H3, H4, H5, H6** - Semantic headings with proper hierarchy
|
|
203
209
|
- **P** - Paragraph text with body variant styling
|
|
204
|
-
- **Span** - Inline text with default styling
|
|
210
|
+
- **Span** - Inline text with default styling
|
|
205
211
|
- **A** - Links with proper hover/focus states
|
|
206
212
|
- **Code** - Inline code with monospace styling
|
|
207
213
|
- **Small** - Small text for captions/metadata
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neynar/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Neynar Inc.",
|
|
6
6
|
"description": "React UI component library built on shadcn/ui and Tailwind CSS",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"README.md",
|
|
29
29
|
"llms.txt",
|
|
30
30
|
"docs/llm/**",
|
|
31
|
-
"llm
|
|
31
|
+
".llm/**"
|
|
32
32
|
],
|
|
33
33
|
"scripts": {
|
|
34
34
|
"build": "vite build && tsc --emitDeclarationOnly",
|
|
@@ -50,22 +50,22 @@
|
|
|
50
50
|
"@radix-ui/react-dialog": "1.1.14",
|
|
51
51
|
"@radix-ui/react-dropdown-menu": "2.1.15",
|
|
52
52
|
"@radix-ui/react-hover-card": "1.1.14",
|
|
53
|
-
"@radix-ui/react-label": "2.1.7",
|
|
53
|
+
"@radix-ui/react-label": "^2.1.7",
|
|
54
54
|
"@radix-ui/react-menubar": "1.1.15",
|
|
55
55
|
"@radix-ui/react-navigation-menu": "1.2.13",
|
|
56
56
|
"@radix-ui/react-popover": "1.1.14",
|
|
57
57
|
"@radix-ui/react-progress": "1.1.7",
|
|
58
58
|
"@radix-ui/react-radio-group": "1.3.7",
|
|
59
59
|
"@radix-ui/react-select": "2.2.5",
|
|
60
|
-
"@radix-ui/react-separator": "1.1.7",
|
|
60
|
+
"@radix-ui/react-separator": "^1.1.7",
|
|
61
61
|
"@radix-ui/react-slider": "1.3.5",
|
|
62
|
-
"@radix-ui/react-slot": "1.2.3",
|
|
62
|
+
"@radix-ui/react-slot": "^1.2.3",
|
|
63
63
|
"@radix-ui/react-switch": "1.2.5",
|
|
64
64
|
"@radix-ui/react-tabs": "1.1.12",
|
|
65
65
|
"@radix-ui/react-toggle": "1.1.9",
|
|
66
66
|
"@radix-ui/react-toggle-group": "1.1.10",
|
|
67
67
|
"@radix-ui/react-tooltip": "1.2.7",
|
|
68
|
-
"class-variance-authority": "0.7.1",
|
|
68
|
+
"class-variance-authority": "^0.7.1",
|
|
69
69
|
"clsx": "2.1.1",
|
|
70
70
|
"cmdk": "1.1.1",
|
|
71
71
|
"date-fns": "4.1.0",
|
|
@@ -94,6 +94,7 @@
|
|
|
94
94
|
"prettier": "3.6.2",
|
|
95
95
|
"react": "19.1.1",
|
|
96
96
|
"react-dom": "19.1.1",
|
|
97
|
+
"shadcn": "^3.4.0",
|
|
97
98
|
"storybook": "9.1.2",
|
|
98
99
|
"tailwindcss": "4.1.11",
|
|
99
100
|
"ts-morph": "^26.0.0",
|