@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,84 @@
|
|
|
1
|
+
# SidebarMenuAction
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Secondary action button for sidebar menu items A compact action button positioned on the right side of menu items, providing secondary actions like edit, delete, or more options. Can be configured to show only on hover for cleaner interfaces or remain always visible for important actions.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { SidebarMenuAction } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<SidebarMenuAction
|
|
13
|
+
className="value"
|
|
14
|
+
asChild={true}
|
|
15
|
+
showOnHover={true}
|
|
16
|
+
/>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Component Props
|
|
20
|
+
|
|
21
|
+
### className
|
|
22
|
+
- **Type**: `string`
|
|
23
|
+
- **Required**: No
|
|
24
|
+
- **Description**: No description available
|
|
25
|
+
|
|
26
|
+
### asChild
|
|
27
|
+
- **Type**: `boolean`
|
|
28
|
+
- **Required**: No
|
|
29
|
+
- **Description**: No description available
|
|
30
|
+
|
|
31
|
+
### showOnHover
|
|
32
|
+
- **Type**: `boolean`
|
|
33
|
+
- **Required**: No
|
|
34
|
+
- **Description**: No description available
|
|
35
|
+
|
|
36
|
+
## Examples
|
|
37
|
+
|
|
38
|
+
### Example 1
|
|
39
|
+
```tsx
|
|
40
|
+
// Always visible action button
|
|
41
|
+
<SidebarMenuItem>
|
|
42
|
+
<SidebarMenuButton>
|
|
43
|
+
<Folder />
|
|
44
|
+
<span>Projects</span>
|
|
45
|
+
</SidebarMenuButton>
|
|
46
|
+
<SidebarMenuAction>
|
|
47
|
+
<MoreHorizontal className="h-4 w-4" />
|
|
48
|
+
</SidebarMenuAction>
|
|
49
|
+
</SidebarMenuItem>
|
|
50
|
+
```
|
|
51
|
+
### Example 2
|
|
52
|
+
```tsx
|
|
53
|
+
// Show only on hover
|
|
54
|
+
<SidebarMenuItem>
|
|
55
|
+
<SidebarMenuButton>
|
|
56
|
+
<File />
|
|
57
|
+
<span>Document</span>
|
|
58
|
+
</SidebarMenuButton>
|
|
59
|
+
<SidebarMenuAction showOnHover>
|
|
60
|
+
<Trash2 className="h-4 w-4" />
|
|
61
|
+
</SidebarMenuAction>
|
|
62
|
+
</SidebarMenuItem>
|
|
63
|
+
```
|
|
64
|
+
### Example 3
|
|
65
|
+
```tsx
|
|
66
|
+
// Custom action with asChild
|
|
67
|
+
<SidebarMenuItem>
|
|
68
|
+
<SidebarMenuButton>
|
|
69
|
+
<Star />
|
|
70
|
+
<span>Favorites</span>
|
|
71
|
+
</SidebarMenuButton>
|
|
72
|
+
<SidebarMenuAction asChild>
|
|
73
|
+
<DropdownMenu>
|
|
74
|
+
<DropdownMenuTrigger>
|
|
75
|
+
<MoreVertical className="h-4 w-4" />
|
|
76
|
+
</DropdownMenuTrigger>
|
|
77
|
+
<DropdownMenuContent>
|
|
78
|
+
<DropdownMenuItem>Edit</DropdownMenuItem>
|
|
79
|
+
<DropdownMenuItem>Delete</DropdownMenuItem>
|
|
80
|
+
</DropdownMenuContent>
|
|
81
|
+
</DropdownMenu>
|
|
82
|
+
</SidebarMenuAction>
|
|
83
|
+
</SidebarMenuItem>
|
|
84
|
+
```
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# SidebarMenuBadge
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Badge indicator component for menu items Displays count indicators, status badges, or notification markers on menu items. Positioned on the right side of menu items and automatically coordinates with menu button states and sidebar collapse behavior.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { SidebarMenuBadge } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<SidebarMenuBadge
|
|
13
|
+
className="value"
|
|
14
|
+
/>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Component Props
|
|
18
|
+
|
|
19
|
+
### className
|
|
20
|
+
- **Type**: `string`
|
|
21
|
+
- **Required**: No
|
|
22
|
+
- **Description**: No description available
|
|
23
|
+
|
|
24
|
+
## Examples
|
|
25
|
+
|
|
26
|
+
### Example 1
|
|
27
|
+
```tsx
|
|
28
|
+
// Unread count badge
|
|
29
|
+
<SidebarMenuItem>
|
|
30
|
+
<SidebarMenuButton>
|
|
31
|
+
<Inbox />
|
|
32
|
+
<span>Messages</span>
|
|
33
|
+
</SidebarMenuButton>
|
|
34
|
+
<SidebarMenuBadge>12</SidebarMenuBadge>
|
|
35
|
+
</SidebarMenuItem>
|
|
36
|
+
```
|
|
37
|
+
### Example 2
|
|
38
|
+
```tsx
|
|
39
|
+
// Status indicator
|
|
40
|
+
<SidebarMenuItem>
|
|
41
|
+
<SidebarMenuButton>
|
|
42
|
+
<Activity />
|
|
43
|
+
<span>System Status</span>
|
|
44
|
+
</SidebarMenuButton>
|
|
45
|
+
<SidebarMenuBadge className="bg-green-500">●</SidebarMenuBadge>
|
|
46
|
+
</SidebarMenuItem>
|
|
47
|
+
```
|
|
48
|
+
### Example 3
|
|
49
|
+
```tsx
|
|
50
|
+
// Dynamic badge with state
|
|
51
|
+
<SidebarMenuItem>
|
|
52
|
+
<SidebarMenuButton>
|
|
53
|
+
<Bell />
|
|
54
|
+
<span>Notifications</span>
|
|
55
|
+
</SidebarMenuButton>
|
|
56
|
+
{notificationCount > 0 && (
|
|
57
|
+
<SidebarMenuBadge>{notificationCount}</SidebarMenuBadge>
|
|
58
|
+
)}
|
|
59
|
+
</SidebarMenuItem>
|
|
60
|
+
```
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# SidebarMenuButton
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Interactive navigation button for sidebar menu items The primary interactive element for sidebar navigation, offering a flexible button component that supports active states, multiple visual variants, tooltip integration for collapsed modes, and composition patterns through the asChild prop. Automatically adapts its appearance based on sidebar state and provides smooth hover/focus transitions.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { SidebarMenuButton } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<SidebarMenuButton
|
|
13
|
+
asChild={true}
|
|
14
|
+
isActive={true}
|
|
15
|
+
variant={value}
|
|
16
|
+
size={value}
|
|
17
|
+
tooltip={value}
|
|
18
|
+
className="value"
|
|
19
|
+
/>
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Component Props
|
|
23
|
+
|
|
24
|
+
### asChild
|
|
25
|
+
- **Type**: `boolean`
|
|
26
|
+
- **Required**: No
|
|
27
|
+
- **Description**: No description available
|
|
28
|
+
|
|
29
|
+
### isActive
|
|
30
|
+
- **Type**: `boolean`
|
|
31
|
+
- **Required**: No
|
|
32
|
+
- **Description**: No description available
|
|
33
|
+
|
|
34
|
+
### variant
|
|
35
|
+
- **Type**: `"default" | "outline"`
|
|
36
|
+
- **Required**: No
|
|
37
|
+
- **Description**: No description available
|
|
38
|
+
|
|
39
|
+
### size
|
|
40
|
+
- **Type**: `"default" | "sm" | "lg"`
|
|
41
|
+
- **Required**: No
|
|
42
|
+
- **Description**: No description available
|
|
43
|
+
|
|
44
|
+
### tooltip
|
|
45
|
+
- **Type**: `string | React.ComponentProps<typeof TooltipContent>`
|
|
46
|
+
- **Required**: No
|
|
47
|
+
- **Description**: No description available
|
|
48
|
+
|
|
49
|
+
### className
|
|
50
|
+
- **Type**: `string`
|
|
51
|
+
- **Required**: No
|
|
52
|
+
- **Description**: No description available
|
|
53
|
+
|
|
54
|
+
## Examples
|
|
55
|
+
|
|
56
|
+
### Example 1
|
|
57
|
+
```tsx
|
|
58
|
+
// Basic navigation button
|
|
59
|
+
<SidebarMenuButton>
|
|
60
|
+
<Home className="h-4 w-4" />
|
|
61
|
+
<span>Dashboard</span>
|
|
62
|
+
</SidebarMenuButton>
|
|
63
|
+
```
|
|
64
|
+
### Example 2
|
|
65
|
+
```tsx
|
|
66
|
+
// Active state with Link composition
|
|
67
|
+
<SidebarMenuButton asChild isActive={pathname === '/dashboard'}>
|
|
68
|
+
<Link href="/dashboard">
|
|
69
|
+
<Home className="h-4 w-4" />
|
|
70
|
+
<span>Dashboard</span>
|
|
71
|
+
</Link>
|
|
72
|
+
</SidebarMenuButton>
|
|
73
|
+
```
|
|
74
|
+
### Example 3
|
|
75
|
+
```tsx
|
|
76
|
+
// With tooltip for collapsed mode
|
|
77
|
+
<SidebarMenuButton tooltip="Go to Dashboard">
|
|
78
|
+
<Home className="h-4 w-4" />
|
|
79
|
+
<span>Dashboard</span>
|
|
80
|
+
</SidebarMenuButton>
|
|
81
|
+
```
|
|
82
|
+
### Example 4
|
|
83
|
+
```tsx
|
|
84
|
+
// Different variants and sizes
|
|
85
|
+
<SidebarMenuButton variant="outline" size="lg">
|
|
86
|
+
<Settings className="h-4 w-4" />
|
|
87
|
+
<span>Settings</span>
|
|
88
|
+
</SidebarMenuButton>
|
|
89
|
+
```
|
|
90
|
+
### Example 5
|
|
91
|
+
```tsx
|
|
92
|
+
// Custom tooltip with props
|
|
93
|
+
<SidebarMenuButton
|
|
94
|
+
tooltip={{
|
|
95
|
+
children: "Dashboard Overview",
|
|
96
|
+
side: "right",
|
|
97
|
+
sideOffset: 10
|
|
98
|
+
}}
|
|
99
|
+
>
|
|
100
|
+
<Home className="h-4 w-4" />
|
|
101
|
+
<span>Dashboard</span>
|
|
102
|
+
</SidebarMenuButton>
|
|
103
|
+
```
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# SidebarMenuItem
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Individual menu item container for sidebar navigation A list item container that wraps a single navigation item, typically containing a SidebarMenuButton along with optional components like SidebarMenuAction, SidebarMenuBadge, or SidebarMenuSub for hierarchical navigation.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { SidebarMenuItem } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<SidebarMenuItem
|
|
13
|
+
className="value"
|
|
14
|
+
/>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Component Props
|
|
18
|
+
|
|
19
|
+
### className
|
|
20
|
+
- **Type**: `string`
|
|
21
|
+
- **Required**: No
|
|
22
|
+
- **Description**: No description available
|
|
23
|
+
|
|
24
|
+
## Examples
|
|
25
|
+
|
|
26
|
+
### Example 1
|
|
27
|
+
```tsx
|
|
28
|
+
// Simple menu item with button
|
|
29
|
+
<SidebarMenuItem>
|
|
30
|
+
<SidebarMenuButton>
|
|
31
|
+
<Home />
|
|
32
|
+
<span>Dashboard</span>
|
|
33
|
+
</SidebarMenuButton>
|
|
34
|
+
</SidebarMenuItem>
|
|
35
|
+
```
|
|
36
|
+
### Example 2
|
|
37
|
+
```tsx
|
|
38
|
+
// Menu item with badge
|
|
39
|
+
<SidebarMenuItem>
|
|
40
|
+
<SidebarMenuButton>
|
|
41
|
+
<Inbox />
|
|
42
|
+
<span>Messages</span>
|
|
43
|
+
</SidebarMenuButton>
|
|
44
|
+
<SidebarMenuBadge>5</SidebarMenuBadge>
|
|
45
|
+
</SidebarMenuItem>
|
|
46
|
+
```
|
|
47
|
+
### Example 3
|
|
48
|
+
```tsx
|
|
49
|
+
// Menu item with action button
|
|
50
|
+
<SidebarMenuItem>
|
|
51
|
+
<SidebarMenuButton>
|
|
52
|
+
<Folder />
|
|
53
|
+
<span>Projects</span>
|
|
54
|
+
</SidebarMenuButton>
|
|
55
|
+
<SidebarMenuAction showOnHover>
|
|
56
|
+
<Plus />
|
|
57
|
+
</SidebarMenuAction>
|
|
58
|
+
</SidebarMenuItem>
|
|
59
|
+
```
|
|
60
|
+
### Example 4
|
|
61
|
+
```tsx
|
|
62
|
+
// Menu item with submenu
|
|
63
|
+
<SidebarMenuItem>
|
|
64
|
+
<SidebarMenuButton>
|
|
65
|
+
<Folder />
|
|
66
|
+
<span>Projects</span>
|
|
67
|
+
<ChevronRight className="ml-auto" />
|
|
68
|
+
</SidebarMenuButton>
|
|
69
|
+
<SidebarMenuSub>
|
|
70
|
+
<SidebarMenuSubItem>
|
|
71
|
+
<SidebarMenuSubButton>Web App</SidebarMenuSubButton>
|
|
72
|
+
</SidebarMenuSubItem>
|
|
73
|
+
</SidebarMenuSub>
|
|
74
|
+
</SidebarMenuItem>
|
|
75
|
+
```
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# SidebarMenuSkeleton
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Loading skeleton placeholder for menu items Displays an animated loading placeholder while menu items are being fetched or loaded. Features random width variation to simulate realistic content and optional icon placeholder for more accurate representation.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { SidebarMenuSkeleton } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<SidebarMenuSkeleton
|
|
13
|
+
className="value"
|
|
14
|
+
showIcon={true}
|
|
15
|
+
/>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Component Props
|
|
19
|
+
|
|
20
|
+
### className
|
|
21
|
+
- **Type**: `string`
|
|
22
|
+
- **Required**: No
|
|
23
|
+
- **Description**: No description available
|
|
24
|
+
|
|
25
|
+
### showIcon
|
|
26
|
+
- **Type**: `boolean`
|
|
27
|
+
- **Required**: No
|
|
28
|
+
- **Description**: No description available
|
|
29
|
+
|
|
30
|
+
## Examples
|
|
31
|
+
|
|
32
|
+
### Example 1
|
|
33
|
+
```tsx
|
|
34
|
+
// Basic skeleton without icon
|
|
35
|
+
<SidebarMenu>
|
|
36
|
+
<SidebarMenuItem>
|
|
37
|
+
<SidebarMenuSkeleton />
|
|
38
|
+
</SidebarMenuItem>
|
|
39
|
+
<SidebarMenuItem>
|
|
40
|
+
<SidebarMenuSkeleton />
|
|
41
|
+
</SidebarMenuItem>
|
|
42
|
+
</SidebarMenu>
|
|
43
|
+
```
|
|
44
|
+
### Example 2
|
|
45
|
+
```tsx
|
|
46
|
+
// Skeleton with icon placeholder
|
|
47
|
+
<SidebarMenu>
|
|
48
|
+
{Array.from({ length: 5 }).map((_, index) => (
|
|
49
|
+
<SidebarMenuItem key={index}>
|
|
50
|
+
<SidebarMenuSkeleton showIcon />
|
|
51
|
+
</SidebarMenuItem>
|
|
52
|
+
))}
|
|
53
|
+
</SidebarMenu>
|
|
54
|
+
```
|
|
55
|
+
### Example 3
|
|
56
|
+
```tsx
|
|
57
|
+
// Loading state with React Suspense
|
|
58
|
+
<SidebarGroup>
|
|
59
|
+
<SidebarGroupLabel>Projects</SidebarGroupLabel>
|
|
60
|
+
<SidebarGroupContent>
|
|
61
|
+
<SidebarMenu>
|
|
62
|
+
<React.Suspense
|
|
63
|
+
fallback={
|
|
64
|
+
<>
|
|
65
|
+
<SidebarMenuItem><SidebarMenuSkeleton showIcon /></SidebarMenuItem>
|
|
66
|
+
<SidebarMenuItem><SidebarMenuSkeleton showIcon /></SidebarMenuItem>
|
|
67
|
+
<SidebarMenuItem><SidebarMenuSkeleton showIcon /></SidebarMenuItem>
|
|
68
|
+
</>
|
|
69
|
+
}
|
|
70
|
+
>
|
|
71
|
+
<ProjectsList />
|
|
72
|
+
</React.Suspense>
|
|
73
|
+
</SidebarMenu>
|
|
74
|
+
</SidebarGroupContent>
|
|
75
|
+
</SidebarGroup>
|
|
76
|
+
```
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# SidebarMenuSubButton
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Interactive button component for submenu navigation The primary interactive element for nested navigation items within submenus, featuring support for active states, different sizes, and composition patterns. Designed specifically for hierarchical navigation with appropriate styling and spacing.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { SidebarMenuSubButton } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<SidebarMenuSubButton
|
|
13
|
+
asChild={true}
|
|
14
|
+
size={value}
|
|
15
|
+
isActive={true}
|
|
16
|
+
className="value"
|
|
17
|
+
/>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Component Props
|
|
21
|
+
|
|
22
|
+
### asChild
|
|
23
|
+
- **Type**: `boolean`
|
|
24
|
+
- **Required**: No
|
|
25
|
+
- **Description**: No description available
|
|
26
|
+
|
|
27
|
+
### size
|
|
28
|
+
- **Type**: `"sm" | "md"`
|
|
29
|
+
- **Required**: No
|
|
30
|
+
- **Description**: No description available
|
|
31
|
+
|
|
32
|
+
### isActive
|
|
33
|
+
- **Type**: `boolean`
|
|
34
|
+
- **Required**: No
|
|
35
|
+
- **Description**: No description available
|
|
36
|
+
|
|
37
|
+
### className
|
|
38
|
+
- **Type**: `string`
|
|
39
|
+
- **Required**: No
|
|
40
|
+
- **Description**: No description available
|
|
41
|
+
|
|
42
|
+
## Examples
|
|
43
|
+
|
|
44
|
+
### Example 1
|
|
45
|
+
```tsx
|
|
46
|
+
// Basic submenu button
|
|
47
|
+
<SidebarMenuSubItem>
|
|
48
|
+
<SidebarMenuSubButton>
|
|
49
|
+
<span>Documentation</span>
|
|
50
|
+
</SidebarMenuSubButton>
|
|
51
|
+
</SidebarMenuSubItem>
|
|
52
|
+
```
|
|
53
|
+
### Example 2
|
|
54
|
+
```tsx
|
|
55
|
+
// Link composition with active state
|
|
56
|
+
<SidebarMenuSubItem>
|
|
57
|
+
<SidebarMenuSubButton
|
|
58
|
+
asChild
|
|
59
|
+
isActive={pathname === '/projects/mobile'}
|
|
60
|
+
>
|
|
61
|
+
<Link href="/projects/mobile">
|
|
62
|
+
<span>Mobile Application</span>
|
|
63
|
+
</Link>
|
|
64
|
+
</SidebarMenuSubButton>
|
|
65
|
+
</SidebarMenuSubItem>
|
|
66
|
+
```
|
|
67
|
+
### Example 3
|
|
68
|
+
```tsx
|
|
69
|
+
// Small size variant
|
|
70
|
+
<SidebarMenuSubItem>
|
|
71
|
+
<SidebarMenuSubButton size="sm">
|
|
72
|
+
<span>API Reference</span>
|
|
73
|
+
</SidebarMenuSubButton>
|
|
74
|
+
</SidebarMenuSubItem>
|
|
75
|
+
```
|
|
76
|
+
### Example 4
|
|
77
|
+
```tsx
|
|
78
|
+
// With icon and custom styling
|
|
79
|
+
<SidebarMenuSubItem>
|
|
80
|
+
<SidebarMenuSubButton className="gap-3">
|
|
81
|
+
<File className="h-3 w-3" />
|
|
82
|
+
<span>README.md</span>
|
|
83
|
+
</SidebarMenuSubButton>
|
|
84
|
+
</SidebarMenuSubItem>
|
|
85
|
+
```
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# SidebarMenuSubItem
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Individual item container within submenu navigation A list item container for single nested navigation items within a submenu, providing the structural foundation for hierarchical navigation elements.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { SidebarMenuSubItem } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<SidebarMenuSubItem
|
|
13
|
+
className="value"
|
|
14
|
+
/>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Component Props
|
|
18
|
+
|
|
19
|
+
### className
|
|
20
|
+
- **Type**: `string`
|
|
21
|
+
- **Required**: No
|
|
22
|
+
- **Description**: No description available
|
|
23
|
+
|
|
24
|
+
## Examples
|
|
25
|
+
|
|
26
|
+
### Example 1
|
|
27
|
+
```tsx
|
|
28
|
+
// Basic submenu item
|
|
29
|
+
<SidebarMenuSub>
|
|
30
|
+
<SidebarMenuSubItem>
|
|
31
|
+
<SidebarMenuSubButton asChild>
|
|
32
|
+
<Link href="/projects/web-app">
|
|
33
|
+
<span>Web Application</span>
|
|
34
|
+
</Link>
|
|
35
|
+
</SidebarMenuSubButton>
|
|
36
|
+
</SidebarMenuSubItem>
|
|
37
|
+
</SidebarMenuSub>
|
|
38
|
+
```
|
|
39
|
+
### Example 2
|
|
40
|
+
```tsx
|
|
41
|
+
// Submenu item with active state
|
|
42
|
+
<SidebarMenuSub>
|
|
43
|
+
<SidebarMenuSubItem>
|
|
44
|
+
<SidebarMenuSubButton
|
|
45
|
+
isActive={pathname === '/settings/general'}
|
|
46
|
+
asChild
|
|
47
|
+
>
|
|
48
|
+
<Link href="/settings/general">
|
|
49
|
+
<span>General Settings</span>
|
|
50
|
+
</Link>
|
|
51
|
+
</SidebarMenuSubButton>
|
|
52
|
+
</SidebarMenuSubItem>
|
|
53
|
+
</SidebarMenuSub>
|
|
54
|
+
```
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# SidebarMenuSub
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Submenu container for hierarchical navigation A specialized container for nested navigation items that provides visual hierarchy through indentation and connecting border lines. Perfect for organizing complex navigation structures with parent-child relationships.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { SidebarMenuSub } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<SidebarMenuSub
|
|
13
|
+
className="value"
|
|
14
|
+
/>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Component Props
|
|
18
|
+
|
|
19
|
+
### className
|
|
20
|
+
- **Type**: `string`
|
|
21
|
+
- **Required**: No
|
|
22
|
+
- **Description**: No description available
|
|
23
|
+
|
|
24
|
+
## Examples
|
|
25
|
+
|
|
26
|
+
### Example 1
|
|
27
|
+
```tsx
|
|
28
|
+
// Collapsible submenu with parent item
|
|
29
|
+
<SidebarMenuItem>
|
|
30
|
+
<Collapsible>
|
|
31
|
+
<CollapsibleTrigger asChild>
|
|
32
|
+
<SidebarMenuButton>
|
|
33
|
+
<Folder />
|
|
34
|
+
<span>Projects</span>
|
|
35
|
+
<ChevronRight className="ml-auto transition-transform group-data-[state=open]:rotate-90" />
|
|
36
|
+
</SidebarMenuButton>
|
|
37
|
+
</CollapsibleTrigger>
|
|
38
|
+
<CollapsibleContent>
|
|
39
|
+
<SidebarMenuSub>
|
|
40
|
+
<SidebarMenuSubItem>
|
|
41
|
+
<SidebarMenuSubButton>Web Application</SidebarMenuSubButton>
|
|
42
|
+
</SidebarMenuSubItem>
|
|
43
|
+
<SidebarMenuSubItem>
|
|
44
|
+
<SidebarMenuSubButton>Mobile App</SidebarMenuSubButton>
|
|
45
|
+
</SidebarMenuSubItem>
|
|
46
|
+
<SidebarMenuSubItem>
|
|
47
|
+
<SidebarMenuSubButton>Documentation</SidebarMenuSubButton>
|
|
48
|
+
</SidebarMenuSubItem>
|
|
49
|
+
</SidebarMenuSub>
|
|
50
|
+
</CollapsibleContent>
|
|
51
|
+
</Collapsible>
|
|
52
|
+
</SidebarMenuItem>
|
|
53
|
+
```
|
|
54
|
+
### Example 2
|
|
55
|
+
```tsx
|
|
56
|
+
// Always expanded submenu
|
|
57
|
+
<SidebarMenuItem>
|
|
58
|
+
<SidebarMenuButton>
|
|
59
|
+
<Settings />
|
|
60
|
+
<span>Settings</span>
|
|
61
|
+
</SidebarMenuButton>
|
|
62
|
+
<SidebarMenuSub>
|
|
63
|
+
<SidebarMenuSubItem>
|
|
64
|
+
<SidebarMenuSubButton>General</SidebarMenuSubButton>
|
|
65
|
+
</SidebarMenuSubItem>
|
|
66
|
+
<SidebarMenuSubItem>
|
|
67
|
+
<SidebarMenuSubButton>Privacy</SidebarMenuSubButton>
|
|
68
|
+
</SidebarMenuSubItem>
|
|
69
|
+
<SidebarMenuSubItem>
|
|
70
|
+
<SidebarMenuSubButton>Security</SidebarMenuSubButton>
|
|
71
|
+
</SidebarMenuSubItem>
|
|
72
|
+
</SidebarMenuSub>
|
|
73
|
+
</SidebarMenuItem>
|
|
74
|
+
```
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# SidebarMenu
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Navigation menu container for organizing sidebar items An unordered list container that holds and organizes SidebarMenuItem components. Provides consistent spacing, layout, and semantic structure for navigation items within sidebar groups or sections.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { SidebarMenu } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<SidebarMenu
|
|
13
|
+
className="value"
|
|
14
|
+
/>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Component Props
|
|
18
|
+
|
|
19
|
+
### className
|
|
20
|
+
- **Type**: `string`
|
|
21
|
+
- **Required**: No
|
|
22
|
+
- **Description**: No description available
|
|
23
|
+
|
|
24
|
+
## Examples
|
|
25
|
+
|
|
26
|
+
### Example 1
|
|
27
|
+
```tsx
|
|
28
|
+
// Basic navigation menu
|
|
29
|
+
<SidebarMenu>
|
|
30
|
+
<SidebarMenuItem>
|
|
31
|
+
<SidebarMenuButton>
|
|
32
|
+
<Home />
|
|
33
|
+
<span>Dashboard</span>
|
|
34
|
+
</SidebarMenuButton>
|
|
35
|
+
</SidebarMenuItem>
|
|
36
|
+
<SidebarMenuItem>
|
|
37
|
+
<SidebarMenuButton>
|
|
38
|
+
<Settings />
|
|
39
|
+
<span>Settings</span>
|
|
40
|
+
</SidebarMenuButton>
|
|
41
|
+
</SidebarMenuItem>
|
|
42
|
+
</SidebarMenu>
|
|
43
|
+
```
|
|
44
|
+
### Example 2
|
|
45
|
+
```tsx
|
|
46
|
+
// Menu with badges and actions
|
|
47
|
+
<SidebarMenu>
|
|
48
|
+
<SidebarMenuItem>
|
|
49
|
+
<SidebarMenuButton>
|
|
50
|
+
<Inbox />
|
|
51
|
+
<span>Messages</span>
|
|
52
|
+
</SidebarMenuButton>
|
|
53
|
+
<SidebarMenuBadge>3</SidebarMenuBadge>
|
|
54
|
+
</SidebarMenuItem>
|
|
55
|
+
<SidebarMenuItem>
|
|
56
|
+
<SidebarMenuButton>
|
|
57
|
+
<Archive />
|
|
58
|
+
<span>Archive</span>
|
|
59
|
+
</SidebarMenuButton>
|
|
60
|
+
<SidebarMenuAction>
|
|
61
|
+
<MoreHorizontal />
|
|
62
|
+
</SidebarMenuAction>
|
|
63
|
+
</SidebarMenuItem>
|
|
64
|
+
</SidebarMenu>
|
|
65
|
+
```
|