@neynar/ui 0.3.0 → 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/a.llm.md +131 -0
- package/.llm/accordion-content.llm.md +67 -0
- package/.llm/accordion-item.llm.md +61 -0
- package/.llm/accordion-trigger.llm.md +69 -0
- package/.llm/accordion.llm.md +88 -0
- package/.llm/alert-description.llm.md +78 -0
- package/.llm/alert-dialog-action.llm.md +51 -0
- package/.llm/alert-dialog-cancel.llm.md +48 -0
- package/.llm/alert-dialog-content.llm.md +88 -0
- package/.llm/alert-dialog-description.llm.md +53 -0
- package/.llm/alert-dialog-footer.llm.md +41 -0
- package/.llm/alert-dialog-header.llm.md +39 -0
- package/.llm/alert-dialog-overlay.llm.md +44 -0
- package/.llm/alert-dialog-portal.llm.md +41 -0
- package/.llm/alert-dialog-title.llm.md +46 -0
- package/.llm/alert-dialog-trigger.llm.md +40 -0
- package/.llm/alert-dialog.llm.md +80 -0
- package/.llm/alert-title.llm.md +48 -0
- package/.llm/alert.llm.md +92 -0
- package/.llm/aspect-ratio.llm.md +41 -0
- package/.llm/avatar-fallback.llm.md +41 -0
- package/.llm/avatar-image.llm.md +48 -0
- package/.llm/avatar.llm.md +35 -0
- package/.llm/badge.llm.md +117 -0
- package/.llm/blockquote.llm.md +117 -0
- package/.llm/breadcrumb-ellipsis.llm.md +73 -0
- package/.llm/breadcrumb-item.llm.md +53 -0
- package/.llm/breadcrumb-link.llm.md +84 -0
- package/.llm/breadcrumb-list.llm.md +54 -0
- package/.llm/breadcrumb-page.llm.md +52 -0
- package/.llm/breadcrumb-separator.llm.md +60 -0
- package/.llm/breadcrumb.llm.md +110 -0
- 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/button.llm.md +281 -0
- package/.llm/calendar-day-button.llm.md +57 -0
- package/.llm/calendar.llm.md +340 -0
- package/.llm/card-action.llm.md +64 -0
- package/.llm/card-content.llm.md +48 -0
- package/.llm/card-description.llm.md +46 -0
- package/.llm/card-footer.llm.md +56 -0
- package/.llm/card-header.llm.md +53 -0
- package/.llm/card-title.llm.md +43 -0
- package/.llm/card.llm.md +100 -0
- package/.llm/carousel-content.llm.md +77 -0
- package/.llm/carousel-item.llm.md +96 -0
- package/.llm/carousel-next.llm.md +95 -0
- package/.llm/carousel-previous.llm.md +95 -0
- package/.llm/carousel.llm.md +211 -0
- package/.llm/chart-config.llm.md +71 -0
- package/.llm/chart-container.llm.md +148 -0
- package/.llm/chart-legend-content.llm.md +85 -0
- package/.llm/chart-legend.llm.md +144 -0
- package/.llm/chart-style.llm.md +28 -0
- package/.llm/chart-tooltip-content.llm.md +149 -0
- package/.llm/chart-tooltip.llm.md +184 -0
- package/.llm/checkbox.llm.md +100 -0
- package/.llm/cn.llm.md +46 -0
- package/.llm/code.llm.md +103 -0
- package/.llm/collapsible-content.llm.md +109 -0
- package/.llm/collapsible-trigger.llm.md +75 -0
- package/.llm/collapsible.llm.md +109 -0
- package/.llm/combobox-option.llm.md +53 -0
- package/.llm/combobox.llm.md +208 -0
- package/.llm/command-dialog.llm.md +112 -0
- package/.llm/command-empty.llm.md +63 -0
- package/.llm/command-group.llm.md +83 -0
- package/.llm/command-input.llm.md +82 -0
- package/.llm/command-item.llm.md +97 -0
- package/.llm/command-list.llm.md +53 -0
- package/.llm/command-loading.llm.md +48 -0
- package/.llm/command-separator.llm.md +44 -0
- package/.llm/command-shortcut.llm.md +63 -0
- package/.llm/command.llm.md +147 -0
- package/.llm/container.llm.md +236 -0
- package/.llm/context-menu-checkbox-item.llm.md +97 -0
- package/.llm/context-menu-content.llm.md +91 -0
- package/.llm/context-menu-group.llm.md +61 -0
- package/.llm/context-menu-item.llm.md +94 -0
- package/.llm/context-menu-label.llm.md +60 -0
- package/.llm/context-menu-portal.llm.md +49 -0
- package/.llm/context-menu-radio-group.llm.md +66 -0
- package/.llm/context-menu-radio-item.llm.md +76 -0
- package/.llm/context-menu-separator.llm.md +51 -0
- package/.llm/context-menu-shortcut.llm.md +57 -0
- package/.llm/context-menu-sub-content.llm.md +90 -0
- package/.llm/context-menu-sub-trigger.llm.md +73 -0
- package/.llm/context-menu-sub.llm.md +61 -0
- package/.llm/context-menu-trigger.llm.md +53 -0
- package/.llm/context-menu.llm.md +103 -0
- package/.llm/date-picker.llm.md +90 -0
- package/.llm/dialog-close.llm.md +61 -0
- package/.llm/dialog-content.llm.md +128 -0
- package/.llm/dialog-description.llm.md +44 -0
- package/.llm/dialog-footer.llm.md +38 -0
- package/.llm/dialog-header.llm.md +40 -0
- package/.llm/dialog-overlay.llm.md +57 -0
- package/.llm/dialog-portal.llm.md +47 -0
- package/.llm/dialog-title.llm.md +41 -0
- package/.llm/dialog-trigger.llm.md +51 -0
- package/.llm/dialog.llm.md +113 -0
- package/.llm/drawer-close.llm.md +53 -0
- package/.llm/drawer-content.llm.md +58 -0
- package/.llm/drawer-description.llm.md +54 -0
- package/.llm/drawer-footer.llm.md +67 -0
- package/.llm/drawer-header.llm.md +60 -0
- package/.llm/drawer-overlay.llm.md +40 -0
- package/.llm/drawer-portal.llm.md +42 -0
- package/.llm/drawer-title.llm.md +51 -0
- package/.llm/drawer-trigger.llm.md +44 -0
- package/.llm/drawer.llm.md +194 -0
- package/.llm/dropdown-menu-checkbox-item.llm.md +111 -0
- package/.llm/dropdown-menu-content.llm.md +109 -0
- package/.llm/dropdown-menu-group.llm.md +38 -0
- package/.llm/dropdown-menu-item.llm.md +94 -0
- package/.llm/dropdown-menu-label.llm.md +66 -0
- package/.llm/dropdown-menu-portal.llm.md +32 -0
- package/.llm/dropdown-menu-radio-group.llm.md +73 -0
- package/.llm/dropdown-menu-radio-item.llm.md +92 -0
- package/.llm/dropdown-menu-separator.llm.md +55 -0
- package/.llm/dropdown-menu-shortcut.llm.md +74 -0
- package/.llm/dropdown-menu-sub-content.llm.md +80 -0
- package/.llm/dropdown-menu-sub-trigger.llm.md +84 -0
- package/.llm/dropdown-menu-sub.llm.md +74 -0
- package/.llm/dropdown-menu-trigger.llm.md +48 -0
- package/.llm/dropdown-menu.llm.md +120 -0
- 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-state.llm.md +174 -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/h1.llm.md +108 -0
- package/.llm/h2.llm.md +108 -0
- package/.llm/h3.llm.md +106 -0
- package/.llm/h4.llm.md +104 -0
- package/.llm/h5.llm.md +105 -0
- package/.llm/h6.llm.md +105 -0
- package/.llm/hover-card-content.llm.md +167 -0
- package/.llm/hover-card-trigger.llm.md +65 -0
- package/.llm/hover-card.llm.md +121 -0
- 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/input.llm.md +319 -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/label.llm.md +145 -0
- package/.llm/lead.llm.md +114 -0
- package/.llm/menubar-checkbox-item.llm.md +66 -0
- package/.llm/menubar-content.llm.md +128 -0
- package/.llm/menubar-group.llm.md +40 -0
- package/.llm/menubar-item.llm.md +62 -0
- package/.llm/menubar-label.llm.md +40 -0
- package/.llm/menubar-menu.llm.md +32 -0
- package/.llm/menubar-portal.llm.md +38 -0
- package/.llm/menubar-radio-group.llm.md +39 -0
- package/.llm/menubar-radio-item.llm.md +59 -0
- package/.llm/menubar-separator.llm.md +35 -0
- package/.llm/menubar-shortcut.llm.md +37 -0
- package/.llm/menubar-sub-content.llm.md +127 -0
- package/.llm/menubar-sub-trigger.llm.md +51 -0
- package/.llm/menubar-sub.llm.md +53 -0
- package/.llm/menubar-trigger.llm.md +37 -0
- package/.llm/menubar.llm.md +115 -0
- package/.llm/navigation-menu-content.llm.md +116 -0
- package/.llm/navigation-menu-indicator.llm.md +68 -0
- package/.llm/navigation-menu-item.llm.md +62 -0
- package/.llm/navigation-menu-link.llm.md +109 -0
- package/.llm/navigation-menu-list.llm.md +52 -0
- package/.llm/navigation-menu-trigger-style.llm.md +22 -0
- package/.llm/navigation-menu-trigger.llm.md +57 -0
- package/.llm/navigation-menu-viewport.llm.md +51 -0
- package/.llm/navigation-menu.llm.md +184 -0
- package/.llm/p.llm.md +110 -0
- package/.llm/pagination-content.llm.md +60 -0
- package/.llm/pagination-ellipsis.llm.md +107 -0
- package/.llm/pagination-item.llm.md +59 -0
- package/.llm/pagination-link.llm.md +150 -0
- package/.llm/pagination-next.llm.md +115 -0
- package/.llm/pagination-previous.llm.md +115 -0
- package/.llm/pagination.llm.md +190 -0
- package/.llm/popover-anchor.llm.md +53 -0
- package/.llm/popover-content.llm.md +109 -0
- package/.llm/popover-trigger.llm.md +54 -0
- package/.llm/popover.llm.md +116 -0
- package/.llm/progress.llm.md +76 -0
- package/.llm/radio-group-indicator.llm.md +28 -0
- package/.llm/radio-group-item.llm.md +40 -0
- package/.llm/radio-group.llm.md +76 -0
- package/.llm/resizable-handle.llm.md +156 -0
- package/.llm/resizable-panel-group.llm.md +149 -0
- package/.llm/resizable-panel.llm.md +157 -0
- package/.llm/scroll-area-corner.llm.md +41 -0
- package/.llm/scroll-area-thumb.llm.md +39 -0
- package/.llm/scroll-area-viewport.llm.md +60 -0
- package/.llm/scroll-area.llm.md +125 -0
- package/.llm/scroll-bar.llm.md +78 -0
- package/.llm/sdk-items-registry.json +3022 -0
- package/.llm/select-content.llm.md +139 -0
- package/.llm/select-group.llm.md +60 -0
- package/.llm/select-item.llm.md +75 -0
- package/.llm/select-label.llm.md +62 -0
- package/.llm/select-scroll-down-button.llm.md +45 -0
- package/.llm/select-scroll-up-button.llm.md +45 -0
- package/.llm/select-separator.llm.md +59 -0
- package/.llm/select-trigger.llm.md +66 -0
- package/.llm/select-value.llm.md +67 -0
- package/.llm/select.llm.md +159 -0
- package/.llm/separator.llm.md +129 -0
- package/.llm/sheet-close.llm.md +49 -0
- package/.llm/sheet-content.llm.md +115 -0
- package/.llm/sheet-description.llm.md +62 -0
- package/.llm/sheet-footer.llm.md +64 -0
- package/.llm/sheet-header.llm.md +52 -0
- package/.llm/sheet-title.llm.md +53 -0
- package/.llm/sheet-trigger.llm.md +46 -0
- package/.llm/sheet.llm.md +126 -0
- package/.llm/sidebar-content.llm.md +63 -0
- package/.llm/sidebar-footer.llm.md +50 -0
- package/.llm/sidebar-group-action.llm.md +60 -0
- package/.llm/sidebar-group-content.llm.md +64 -0
- package/.llm/sidebar-group-label.llm.md +53 -0
- package/.llm/sidebar-group.llm.md +56 -0
- package/.llm/sidebar-header.llm.md +67 -0
- package/.llm/sidebar-input.llm.md +50 -0
- package/.llm/sidebar-inset.llm.md +52 -0
- package/.llm/sidebar-menu-action.llm.md +84 -0
- package/.llm/sidebar-menu-badge.llm.md +60 -0
- package/.llm/sidebar-menu-button.llm.md +103 -0
- package/.llm/sidebar-menu-item.llm.md +75 -0
- package/.llm/sidebar-menu-skeleton.llm.md +76 -0
- package/.llm/sidebar-menu-sub-button.llm.md +85 -0
- package/.llm/sidebar-menu-sub-item.llm.md +54 -0
- package/.llm/sidebar-menu-sub.llm.md +74 -0
- package/.llm/sidebar-menu.llm.md +65 -0
- package/.llm/sidebar-provider.llm.md +79 -0
- package/.llm/sidebar-rail.llm.md +34 -0
- package/.llm/sidebar-separator.llm.md +57 -0
- package/.llm/sidebar-trigger.llm.md +49 -0
- package/.llm/sidebar.llm.md +129 -0
- package/.llm/skeleton.llm.md +134 -0
- package/.llm/slider.llm.md +173 -0
- package/.llm/small.llm.md +110 -0
- package/.llm/span.llm.md +118 -0
- package/.llm/spinner.llm.md +182 -0
- package/.llm/stack.llm.md +28 -0
- package/.llm/strong.llm.md +110 -0
- package/.llm/switch.llm.md +76 -0
- package/.llm/table-body.llm.md +36 -0
- package/.llm/table-caption.llm.md +48 -0
- package/.llm/table-cell.llm.md +53 -0
- package/.llm/table-footer.llm.md +41 -0
- package/.llm/table-head.llm.md +69 -0
- package/.llm/table-header.llm.md +41 -0
- package/.llm/table-row.llm.md +42 -0
- package/.llm/table.llm.md +123 -0
- package/.llm/tabs-content.llm.md +47 -0
- package/.llm/tabs-list.llm.md +41 -0
- package/.llm/tabs-trigger.llm.md +47 -0
- package/.llm/tabs.llm.md +71 -0
- package/.llm/text-field.llm.md +327 -0
- package/.llm/textarea.llm.md +311 -0
- package/.llm/theme-preference.llm.md +25 -0
- package/.llm/theme-toggle.llm.md +57 -0
- package/.llm/theme.llm.md +14 -0
- package/.llm/toast.llm.md +32 -0
- package/.llm/toaster.llm.md +193 -0
- package/.llm/toggle-group-item.llm.md +59 -0
- package/.llm/toggle-group.llm.md +101 -0
- package/.llm/toggle.llm.md +40 -0
- package/.llm/tooltip-content.llm.md +185 -0
- package/.llm/tooltip-provider.llm.md +68 -0
- package/.llm/tooltip-trigger.llm.md +70 -0
- package/.llm/tooltip.llm.md +129 -0
- package/.llm/typography.llm.md +161 -0
- package/.llm/use-carousel.llm.md +55 -0
- package/.llm/use-command-state.llm.md +32 -0
- package/.llm/use-is-mobile.llm.md +73 -0
- package/.llm/use-sidebar.llm.md +61 -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/stack.d.ts.map +1 -1
- package/dist/components/ui/stories/scroll-area.stories.d.ts +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/index.js +4972 -9636
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/components/ui/stack.tsx +3 -1
- package/src/components/ui/theme-toggle.tsx +1 -3
- package/src/components/ui/theme.tsx +6 -1
- package/src/styles/globals.css +57 -85
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Avatar
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Avatar - A flexible container for displaying user profile images with graceful fallback support The Avatar component is built on Radix UI's Avatar primitive and provides a robust solution for displaying user profile pictures throughout your application. It automatically handles image loading states and displays fallback content when images fail to load or are unavailable. This component follows the shadcn/ui design system principles and provides a consistent approach to user representation across all applications. ## Features - **Automatic loading states**: Seamlessly handles image loading and error states - **Graceful fallbacks**: Shows fallback content when images are unavailable - **Flexible sizing**: Easy customization through Tailwind CSS size utilities - **Shape variants**: Circular by default with support for rounded corners - **Accessibility first**: Built-in ARIA attributes and keyboard navigation - **Composable design**: Works with AvatarImage and AvatarFallback sub-components - **Polymorphic rendering**: Supports asChild prop for custom element rendering ## Common Use Cases - User profile displays in headers and navigation - Comment sections and author attribution - Team member listings and directories - Avatar groups with overlapping layouts - Organization logos and brand representation - Loading states and placeholder content ## Size Variants - `size-6` (24px) - Small avatars for dense layouts - `size-8` (32px) - Default size for most use cases - `size-10` (40px) - Medium avatars for lists - `size-12` (48px) - Large avatars for profiles - `size-16` (64px) - Extra large for main profile displays
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { Avatar } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<Avatar
|
|
13
|
+
className="value"
|
|
14
|
+
asChild={true}
|
|
15
|
+
>
|
|
16
|
+
{/* Your content here */}
|
|
17
|
+
</Avatar>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Component Props
|
|
21
|
+
|
|
22
|
+
### className
|
|
23
|
+
- **Type**: `string`
|
|
24
|
+
- **Required**: No
|
|
25
|
+
- **Description**: Additional CSS classes for styling. Common patterns include size utilities (size-6, size-8, size-10, size-12, size-16) and border radius overrides (rounded-lg, rounded-md, rounded-none)
|
|
26
|
+
|
|
27
|
+
### children
|
|
28
|
+
- **Type**: `React.ReactNode`
|
|
29
|
+
- **Required**: No
|
|
30
|
+
- **Description**: Should contain AvatarImage and AvatarFallback components for proper functionality
|
|
31
|
+
|
|
32
|
+
### asChild
|
|
33
|
+
- **Type**: `boolean`
|
|
34
|
+
- **Required**: No
|
|
35
|
+
- **Description**: Change the default rendered element for the one passed as a child, merging their props and behavior
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Badge
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Badge - Versatile status indicator component for labels, counts, and notifications A small status descriptor component that provides visual feedback about state, category, or importance of content. Built on Radix UI Slot primitives with accessibility-first design and support for multiple semantic variants and interactive states.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { Badge } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<Badge
|
|
13
|
+
variant={value}
|
|
14
|
+
className="value"
|
|
15
|
+
asChild={true}
|
|
16
|
+
>
|
|
17
|
+
{/* Your content here */}
|
|
18
|
+
</Badge>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Component Props
|
|
22
|
+
|
|
23
|
+
### variant
|
|
24
|
+
- **Type**: `| "default"
|
|
25
|
+
| "secondary"
|
|
26
|
+
| "destructive"
|
|
27
|
+
| "success"
|
|
28
|
+
| "warning"
|
|
29
|
+
| "info"
|
|
30
|
+
| "outline"`
|
|
31
|
+
- **Required**: No
|
|
32
|
+
- **Description**: No description available
|
|
33
|
+
|
|
34
|
+
### className
|
|
35
|
+
- **Type**: `string`
|
|
36
|
+
- **Required**: No
|
|
37
|
+
- **Description**: No description available
|
|
38
|
+
|
|
39
|
+
### children
|
|
40
|
+
- **Type**: `React.ReactNode`
|
|
41
|
+
- **Required**: No
|
|
42
|
+
- **Description**: No description available
|
|
43
|
+
|
|
44
|
+
### asChild
|
|
45
|
+
- **Type**: `boolean`
|
|
46
|
+
- **Required**: No
|
|
47
|
+
- **Description**: No description available
|
|
48
|
+
|
|
49
|
+
## Examples
|
|
50
|
+
|
|
51
|
+
### Example 1
|
|
52
|
+
```tsx
|
|
53
|
+
// Basic status badges
|
|
54
|
+
<Badge>New</Badge>
|
|
55
|
+
<Badge variant="secondary">Draft</Badge>
|
|
56
|
+
<Badge variant="destructive">Error</Badge>
|
|
57
|
+
<Badge variant="success">Success</Badge>
|
|
58
|
+
<Badge variant="warning">Warning</Badge>
|
|
59
|
+
<Badge variant="info">Info</Badge>
|
|
60
|
+
<Badge variant="outline">Pending</Badge>
|
|
61
|
+
```
|
|
62
|
+
### Example 2
|
|
63
|
+
```tsx
|
|
64
|
+
// Badge with icon content
|
|
65
|
+
import { Check, AlertTriangle } from "lucide-react";
|
|
66
|
+
<Badge>
|
|
67
|
+
<Check className="mr-1" />
|
|
68
|
+
Completed
|
|
69
|
+
</Badge>
|
|
70
|
+
<Badge variant="destructive">
|
|
71
|
+
<AlertTriangle className="mr-1" />
|
|
72
|
+
Failed
|
|
73
|
+
</Badge>
|
|
74
|
+
```
|
|
75
|
+
### Example 3
|
|
76
|
+
```tsx
|
|
77
|
+
// Notification count badge
|
|
78
|
+
<div className="relative inline-block">
|
|
79
|
+
<Bell className="h-6 w-6" />
|
|
80
|
+
<Badge className="absolute -top-2 -right-2 h-5 w-5 p-0 text-xs flex items-center justify-center">
|
|
81
|
+
3
|
|
82
|
+
</Badge>
|
|
83
|
+
</div>
|
|
84
|
+
```
|
|
85
|
+
### Example 4
|
|
86
|
+
```tsx
|
|
87
|
+
// Interactive badge as link using asChild
|
|
88
|
+
import Link from "next/link";
|
|
89
|
+
<Badge asChild>
|
|
90
|
+
<Link href="/notifications" className="cursor-pointer">
|
|
91
|
+
3 new messages
|
|
92
|
+
</Link>
|
|
93
|
+
</Badge>
|
|
94
|
+
```
|
|
95
|
+
### Example 5
|
|
96
|
+
```tsx
|
|
97
|
+
// Interactive badge as button
|
|
98
|
+
<Badge asChild>
|
|
99
|
+
<button onClick={handleDismiss} className="cursor-pointer">
|
|
100
|
+
Dismiss Alert
|
|
101
|
+
</button>
|
|
102
|
+
</Badge>
|
|
103
|
+
```
|
|
104
|
+
### Example 6
|
|
105
|
+
```tsx
|
|
106
|
+
// Removable tag badge with close button
|
|
107
|
+
<Badge className="pr-1 gap-1">
|
|
108
|
+
React
|
|
109
|
+
<button
|
|
110
|
+
onClick={handleRemove}
|
|
111
|
+
className="ml-1 hover:bg-primary-foreground/20 rounded-full p-0.5"
|
|
112
|
+
aria-label="Remove React tag"
|
|
113
|
+
>
|
|
114
|
+
<X className="h-3 w-3" />
|
|
115
|
+
</button>
|
|
116
|
+
</Badge>
|
|
117
|
+
```
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Blockquote
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Blockquote - Quoted text component for citations and excerpts Semantic blockquote element for extended quotations, testimonials, and excerpts. Features italic styling and left border for visual distinction.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { Blockquote } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<Blockquote
|
|
13
|
+
color={value}
|
|
14
|
+
align={value}
|
|
15
|
+
transform={value}
|
|
16
|
+
weight={value}
|
|
17
|
+
htmlFor="value"
|
|
18
|
+
asChild={true}
|
|
19
|
+
italic={true}
|
|
20
|
+
underline={true}
|
|
21
|
+
strikethrough={true}
|
|
22
|
+
truncate={true}
|
|
23
|
+
srOnly={true}
|
|
24
|
+
className="value"
|
|
25
|
+
>
|
|
26
|
+
{/* Your content here */}
|
|
27
|
+
</Blockquote>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Component Props
|
|
31
|
+
|
|
32
|
+
### color
|
|
33
|
+
- **Type**: `TypographyColor`
|
|
34
|
+
- **Required**: No
|
|
35
|
+
- **Description**: No description available
|
|
36
|
+
|
|
37
|
+
### align
|
|
38
|
+
- **Type**: `"left" | "center" | "right" | "justify"`
|
|
39
|
+
- **Required**: No
|
|
40
|
+
- **Description**: No description available
|
|
41
|
+
|
|
42
|
+
### transform
|
|
43
|
+
- **Type**: `"uppercase" | "lowercase" | "capitalize"`
|
|
44
|
+
- **Required**: No
|
|
45
|
+
- **Description**: No description available
|
|
46
|
+
|
|
47
|
+
### weight
|
|
48
|
+
- **Type**: `"normal" | "medium" | "semibold" | "bold"`
|
|
49
|
+
- **Required**: No
|
|
50
|
+
- **Description**: No description available
|
|
51
|
+
|
|
52
|
+
### htmlFor
|
|
53
|
+
- **Type**: `string`
|
|
54
|
+
- **Required**: No
|
|
55
|
+
- **Description**: No description available
|
|
56
|
+
|
|
57
|
+
### asChild
|
|
58
|
+
- **Type**: `boolean`
|
|
59
|
+
- **Required**: No
|
|
60
|
+
- **Description**: No description available
|
|
61
|
+
|
|
62
|
+
### italic
|
|
63
|
+
- **Type**: `boolean`
|
|
64
|
+
- **Required**: No
|
|
65
|
+
- **Description**: No description available
|
|
66
|
+
|
|
67
|
+
### underline
|
|
68
|
+
- **Type**: `boolean`
|
|
69
|
+
- **Required**: No
|
|
70
|
+
- **Description**: No description available
|
|
71
|
+
|
|
72
|
+
### strikethrough
|
|
73
|
+
- **Type**: `boolean`
|
|
74
|
+
- **Required**: No
|
|
75
|
+
- **Description**: No description available
|
|
76
|
+
|
|
77
|
+
### truncate
|
|
78
|
+
- **Type**: `boolean`
|
|
79
|
+
- **Required**: No
|
|
80
|
+
- **Description**: No description available
|
|
81
|
+
|
|
82
|
+
### srOnly
|
|
83
|
+
- **Type**: `boolean`
|
|
84
|
+
- **Required**: No
|
|
85
|
+
- **Description**: No description available
|
|
86
|
+
|
|
87
|
+
### className
|
|
88
|
+
- **Type**: `string`
|
|
89
|
+
- **Required**: No
|
|
90
|
+
- **Description**: No description available
|
|
91
|
+
|
|
92
|
+
### children
|
|
93
|
+
- **Type**: `React.ReactNode`
|
|
94
|
+
- **Required**: No
|
|
95
|
+
- **Description**: No description available
|
|
96
|
+
|
|
97
|
+
## Examples
|
|
98
|
+
|
|
99
|
+
```tsx
|
|
100
|
+
// Simple quote
|
|
101
|
+
<Blockquote>
|
|
102
|
+
"The best way to predict the future is to invent it."
|
|
103
|
+
</Blockquote>
|
|
104
|
+
// With attribution
|
|
105
|
+
<div>
|
|
106
|
+
<Blockquote className="mb-2">
|
|
107
|
+
"Building great products requires deep understanding of user needs
|
|
108
|
+
and technical excellence in equal measure."
|
|
109
|
+
</Blockquote>
|
|
110
|
+
<Small>— Product Engineering Team</Small>
|
|
111
|
+
</div>
|
|
112
|
+
// Customer testimonial
|
|
113
|
+
<Blockquote color="muted" className="bg-muted/50 p-4 rounded-lg">
|
|
114
|
+
"Neynar's APIs have transformed how we build social features.
|
|
115
|
+
The developer experience is exceptional."
|
|
116
|
+
</Blockquote>
|
|
117
|
+
```
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# BreadcrumbEllipsis
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Ellipsis indicator for collapsed breadcrumb items Shows a horizontal ellipsis icon (MoreHorizontal) to indicate hidden or collapsed middle items in a long breadcrumb trail. Essential for deep navigation hierarchies where space is limited or mobile responsive design. Commonly used in combination with dropdown menus, popovers, or expandable sections to reveal the collapsed breadcrumb items on user interaction. The component provides a consistent 36px (9 × 4px) clickable area for better touch interaction when used as a trigger for dropdown menus. Includes hidden screen reader text to provide context about the collapsed content.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { BreadcrumbEllipsis } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<BreadcrumbEllipsis
|
|
13
|
+
className="value"
|
|
14
|
+
>
|
|
15
|
+
{/* Your content here */}
|
|
16
|
+
</BreadcrumbEllipsis>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Component Props
|
|
20
|
+
|
|
21
|
+
### className
|
|
22
|
+
- **Type**: `string`
|
|
23
|
+
- **Required**: No
|
|
24
|
+
- **Description**: Additional CSS classes to apply to the ellipsis container
|
|
25
|
+
|
|
26
|
+
### children
|
|
27
|
+
- **Type**: `React.ReactNode`
|
|
28
|
+
- **Required**: No
|
|
29
|
+
- **Description**: Custom content to display instead of the default MoreHorizontal icon (rarely needed)
|
|
30
|
+
|
|
31
|
+
## Examples
|
|
32
|
+
|
|
33
|
+
### Example 1
|
|
34
|
+
```tsx
|
|
35
|
+
// Simple static ellipsis
|
|
36
|
+
<BreadcrumbEllipsis />
|
|
37
|
+
```
|
|
38
|
+
### Example 2
|
|
39
|
+
```tsx
|
|
40
|
+
// Interactive ellipsis with dropdown menu
|
|
41
|
+
<BreadcrumbItem>
|
|
42
|
+
<DropdownMenu>
|
|
43
|
+
<DropdownMenuTrigger asChild>
|
|
44
|
+
<BreadcrumbEllipsis className="hover:bg-muted cursor-pointer" />
|
|
45
|
+
</DropdownMenuTrigger>
|
|
46
|
+
<DropdownMenuContent>
|
|
47
|
+
<DropdownMenuItem>
|
|
48
|
+
<BreadcrumbLink href="/level1">Level 1</BreadcrumbLink>
|
|
49
|
+
</DropdownMenuItem>
|
|
50
|
+
<DropdownMenuItem>
|
|
51
|
+
<BreadcrumbLink href="/level1/level2">Level 2</BreadcrumbLink>
|
|
52
|
+
</DropdownMenuItem>
|
|
53
|
+
</DropdownMenuContent>
|
|
54
|
+
</DropdownMenu>
|
|
55
|
+
</BreadcrumbItem>
|
|
56
|
+
```
|
|
57
|
+
### Example 3
|
|
58
|
+
```tsx
|
|
59
|
+
// With popover for collapsed items
|
|
60
|
+
<BreadcrumbItem>
|
|
61
|
+
<Popover>
|
|
62
|
+
<PopoverTrigger asChild>
|
|
63
|
+
<BreadcrumbEllipsis className="hover:bg-accent" />
|
|
64
|
+
</PopoverTrigger>
|
|
65
|
+
<PopoverContent>
|
|
66
|
+
<div className="space-y-2">
|
|
67
|
+
<BreadcrumbLink href="/hidden1">Hidden Item 1</BreadcrumbLink>
|
|
68
|
+
<BreadcrumbLink href="/hidden2">Hidden Item 2</BreadcrumbLink>
|
|
69
|
+
</div>
|
|
70
|
+
</PopoverContent>
|
|
71
|
+
</Popover>
|
|
72
|
+
</BreadcrumbItem>
|
|
73
|
+
```
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# BreadcrumbItem
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Individual breadcrumb list item container Wraps breadcrumb content (links, pages, separators) in a semantic list item. Provides consistent alignment and spacing for breadcrumb elements with inline flex layout for proper icon and text alignment.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { BreadcrumbItem } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<BreadcrumbItem
|
|
13
|
+
className="value"
|
|
14
|
+
>
|
|
15
|
+
{/* Your content here */}
|
|
16
|
+
</BreadcrumbItem>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Component Props
|
|
20
|
+
|
|
21
|
+
### className
|
|
22
|
+
- **Type**: `string`
|
|
23
|
+
- **Required**: No
|
|
24
|
+
- **Description**: Additional CSS classes to apply to the list item element
|
|
25
|
+
|
|
26
|
+
### children
|
|
27
|
+
- **Type**: `React.ReactNode`
|
|
28
|
+
- **Required**: No
|
|
29
|
+
- **Description**: Content to display within the item (links, pages, separators, ellipsis)
|
|
30
|
+
|
|
31
|
+
## Examples
|
|
32
|
+
|
|
33
|
+
### Example 1
|
|
34
|
+
```tsx
|
|
35
|
+
// With link
|
|
36
|
+
<BreadcrumbItem>
|
|
37
|
+
<BreadcrumbLink href="/products">Products</BreadcrumbLink>
|
|
38
|
+
</BreadcrumbItem>
|
|
39
|
+
```
|
|
40
|
+
### Example 2
|
|
41
|
+
```tsx
|
|
42
|
+
// With current page
|
|
43
|
+
<BreadcrumbItem>
|
|
44
|
+
<BreadcrumbPage>Current Page</BreadcrumbPage>
|
|
45
|
+
</BreadcrumbItem>
|
|
46
|
+
```
|
|
47
|
+
### Example 3
|
|
48
|
+
```tsx
|
|
49
|
+
// With separator
|
|
50
|
+
<BreadcrumbItem>
|
|
51
|
+
<BreadcrumbSeparator />
|
|
52
|
+
</BreadcrumbItem>
|
|
53
|
+
```
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# BreadcrumbLink
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Navigable link within breadcrumb trail Represents a clickable parent page in the breadcrumb hierarchy with smooth hover effects and transition animations. Supports composition via the `asChild` prop for seamless integration with routing libraries like Next.js Link, React Router, or Reach Router using the Radix UI Slot primitive for prop merging. Built on Radix UI Slot primitive which enables the asChild pattern - when asChild is true, the component merges its props with the immediate child element instead of rendering its own anchor tag. This allows for flexible composition while maintaining consistent styling and behavior.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { BreadcrumbLink } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<BreadcrumbLink
|
|
13
|
+
asChild={true}
|
|
14
|
+
className="value"
|
|
15
|
+
href="value"
|
|
16
|
+
onClick={handleClick}
|
|
17
|
+
>
|
|
18
|
+
{/* Your content here */}
|
|
19
|
+
</BreadcrumbLink>
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Component Props
|
|
23
|
+
|
|
24
|
+
### asChild
|
|
25
|
+
- **Type**: `boolean`
|
|
26
|
+
- **Required**: No
|
|
27
|
+
- **Description**: When true, merges props with child element instead of rendering anchor. Enables composition with routing components
|
|
28
|
+
|
|
29
|
+
### className
|
|
30
|
+
- **Type**: `string`
|
|
31
|
+
- **Required**: No
|
|
32
|
+
- **Description**: Additional CSS classes to apply to the link element
|
|
33
|
+
|
|
34
|
+
### href
|
|
35
|
+
- **Type**: `string`
|
|
36
|
+
- **Required**: No
|
|
37
|
+
- **Description**: Link destination URL (when asChild is false)
|
|
38
|
+
|
|
39
|
+
### children
|
|
40
|
+
- **Type**: `React.ReactNode`
|
|
41
|
+
- **Required**: No
|
|
42
|
+
- **Description**: Link content to display (text, icons, etc.)
|
|
43
|
+
|
|
44
|
+
### onClick
|
|
45
|
+
- **Type**: `(event: React.MouseEvent<HTMLAnchorElement>) => void`
|
|
46
|
+
- **Required**: No
|
|
47
|
+
- **Description**: Click handler for the link interaction
|
|
48
|
+
|
|
49
|
+
## Examples
|
|
50
|
+
|
|
51
|
+
### Example 1
|
|
52
|
+
```tsx
|
|
53
|
+
// Standard anchor link
|
|
54
|
+
<BreadcrumbLink href="/products">Products</BreadcrumbLink>
|
|
55
|
+
```
|
|
56
|
+
### Example 2
|
|
57
|
+
```tsx
|
|
58
|
+
// With Next.js Link using asChild
|
|
59
|
+
import { Link } from "next/link"
|
|
60
|
+
<BreadcrumbLink asChild>
|
|
61
|
+
<Link href="/products">Products</Link>
|
|
62
|
+
</BreadcrumbLink>
|
|
63
|
+
```
|
|
64
|
+
### Example 3
|
|
65
|
+
```tsx
|
|
66
|
+
// With React Router Link
|
|
67
|
+
import { Link } from "react-router-dom"
|
|
68
|
+
<BreadcrumbLink asChild>
|
|
69
|
+
<Link to="/products">Products</Link>
|
|
70
|
+
</BreadcrumbLink>
|
|
71
|
+
```
|
|
72
|
+
### Example 4
|
|
73
|
+
```tsx
|
|
74
|
+
// With click handler
|
|
75
|
+
<BreadcrumbLink
|
|
76
|
+
href="/products"
|
|
77
|
+
onClick={(e) => {
|
|
78
|
+
e.preventDefault();
|
|
79
|
+
navigate('/products');
|
|
80
|
+
}}
|
|
81
|
+
>
|
|
82
|
+
Products
|
|
83
|
+
</BreadcrumbLink>
|
|
84
|
+
```
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# BreadcrumbList
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Ordered list container for breadcrumb items Provides the structured list layout for breadcrumb navigation items with responsive spacing and text overflow handling. Uses semantic `ol` element for proper accessibility and screen reader navigation. Contains flexible layout with word breaking and responsive gap adjustments.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { BreadcrumbList } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<BreadcrumbList
|
|
13
|
+
className="value"
|
|
14
|
+
>
|
|
15
|
+
{/* Your content here */}
|
|
16
|
+
</BreadcrumbList>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Component Props
|
|
20
|
+
|
|
21
|
+
### className
|
|
22
|
+
- **Type**: `string`
|
|
23
|
+
- **Required**: No
|
|
24
|
+
- **Description**: Additional CSS classes to apply to the ordered list element
|
|
25
|
+
|
|
26
|
+
### children
|
|
27
|
+
- **Type**: `React.ReactNode`
|
|
28
|
+
- **Required**: No
|
|
29
|
+
- **Description**: Child breadcrumb items (BreadcrumbItem elements)
|
|
30
|
+
|
|
31
|
+
## Examples
|
|
32
|
+
|
|
33
|
+
### Example 1
|
|
34
|
+
```tsx
|
|
35
|
+
// Basic list with multiple items
|
|
36
|
+
<BreadcrumbList>
|
|
37
|
+
<BreadcrumbItem>
|
|
38
|
+
<BreadcrumbLink href="/">Home</BreadcrumbLink>
|
|
39
|
+
</BreadcrumbItem>
|
|
40
|
+
<BreadcrumbSeparator />
|
|
41
|
+
<BreadcrumbItem>
|
|
42
|
+
<BreadcrumbPage>Current</BreadcrumbPage>
|
|
43
|
+
</BreadcrumbItem>
|
|
44
|
+
</BreadcrumbList>
|
|
45
|
+
```
|
|
46
|
+
### Example 2
|
|
47
|
+
```tsx
|
|
48
|
+
// With custom styling
|
|
49
|
+
<BreadcrumbList className="gap-4 text-base">
|
|
50
|
+
<BreadcrumbItem>
|
|
51
|
+
<BreadcrumbLink href="/">Home</BreadcrumbLink>
|
|
52
|
+
</BreadcrumbItem>
|
|
53
|
+
</BreadcrumbList>
|
|
54
|
+
```
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# BreadcrumbPage
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Current page indicator in breadcrumb trail Represents the current page (non-clickable) at the end of the breadcrumb trail. Styled with prominent text color and marked with comprehensive accessibility attributes including `aria-current="page"` for precise screen reader identification of the user's current location within the site hierarchy. This component uses specific ARIA attributes to indicate it represents a link-like element that is disabled, providing semantic meaning while maintaining the visual breadcrumb structure. The `aria-current="page"` attribute is the standard way to identify the current page in navigation components.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { BreadcrumbPage } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<BreadcrumbPage
|
|
13
|
+
className="value"
|
|
14
|
+
>
|
|
15
|
+
{/* Your content here */}
|
|
16
|
+
</BreadcrumbPage>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Component Props
|
|
20
|
+
|
|
21
|
+
### className
|
|
22
|
+
- **Type**: `string`
|
|
23
|
+
- **Required**: No
|
|
24
|
+
- **Description**: Additional CSS classes to apply to the span element
|
|
25
|
+
|
|
26
|
+
### children
|
|
27
|
+
- **Type**: `React.ReactNode`
|
|
28
|
+
- **Required**: No
|
|
29
|
+
- **Description**: Current page name or content to display
|
|
30
|
+
|
|
31
|
+
## Examples
|
|
32
|
+
|
|
33
|
+
### Example 1
|
|
34
|
+
```tsx
|
|
35
|
+
// Simple page name
|
|
36
|
+
<BreadcrumbPage>Current Page Name</BreadcrumbPage>
|
|
37
|
+
```
|
|
38
|
+
### Example 2
|
|
39
|
+
```tsx
|
|
40
|
+
// With icon and text
|
|
41
|
+
<BreadcrumbPage>
|
|
42
|
+
<FileIcon className="mr-1" />
|
|
43
|
+
Document.pdf
|
|
44
|
+
</BreadcrumbPage>
|
|
45
|
+
```
|
|
46
|
+
### Example 3
|
|
47
|
+
```tsx
|
|
48
|
+
// With custom styling
|
|
49
|
+
<BreadcrumbPage className="font-semibold text-primary">
|
|
50
|
+
Important Page
|
|
51
|
+
</BreadcrumbPage>
|
|
52
|
+
```
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# BreadcrumbSeparator
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Visual separator between breadcrumb items Displays a separator icon (default: ChevronRight) between breadcrumb items to provide visual hierarchy and direction in the breadcrumb trail. Supports complete customization with any icon or content. Properly hidden from assistive technologies with accessibility attributes for clean screen reader navigation experience. The component uses CSS sizing constraints to ensure consistent icon sizing across different separator types and maintains visual alignment within the breadcrumb flow.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { BreadcrumbSeparator } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<BreadcrumbSeparator
|
|
13
|
+
className="value"
|
|
14
|
+
>
|
|
15
|
+
{/* Your content here */}
|
|
16
|
+
</BreadcrumbSeparator>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Component Props
|
|
20
|
+
|
|
21
|
+
### children
|
|
22
|
+
- **Type**: `React.ReactNode`
|
|
23
|
+
- **Required**: No
|
|
24
|
+
- **Description**: Custom separator icon or content to display instead of default ChevronRight. Typically Lucide icons like Slash, ArrowRight, etc.
|
|
25
|
+
|
|
26
|
+
### className
|
|
27
|
+
- **Type**: `string`
|
|
28
|
+
- **Required**: No
|
|
29
|
+
- **Description**: Additional CSS classes to apply to the list item container
|
|
30
|
+
|
|
31
|
+
## Examples
|
|
32
|
+
|
|
33
|
+
### Example 1
|
|
34
|
+
```tsx
|
|
35
|
+
// Default ChevronRight separator
|
|
36
|
+
<BreadcrumbSeparator />
|
|
37
|
+
```
|
|
38
|
+
### Example 2
|
|
39
|
+
```tsx
|
|
40
|
+
// Custom Slash separator
|
|
41
|
+
import { Slash } from "lucide-react"
|
|
42
|
+
<BreadcrumbSeparator>
|
|
43
|
+
<Slash />
|
|
44
|
+
</BreadcrumbSeparator>
|
|
45
|
+
```
|
|
46
|
+
### Example 3
|
|
47
|
+
```tsx
|
|
48
|
+
// Arrow right separator
|
|
49
|
+
import { ArrowRight } from "lucide-react"
|
|
50
|
+
<BreadcrumbSeparator>
|
|
51
|
+
<ArrowRight />
|
|
52
|
+
</BreadcrumbSeparator>
|
|
53
|
+
```
|
|
54
|
+
### Example 4
|
|
55
|
+
```tsx
|
|
56
|
+
// Text separator
|
|
57
|
+
<BreadcrumbSeparator>
|
|
58
|
+
<span className="text-muted-foreground">/</span>
|
|
59
|
+
</BreadcrumbSeparator>
|
|
60
|
+
```
|