@neynar/ui 0.3.0 → 0.4.0
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/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 +55 -0
- package/.llm/body-text-large.llm.md +49 -0
- package/.llm/body-text-small.llm.md +49 -0
- package/.llm/body-text.llm.md +52 -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/caption.llm.md +48 -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 +45 -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/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/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/overline.llm.md +51 -0
- package/.llm/page-title.llm.md +52 -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 +2984 -0
- package/.llm/section-title.llm.md +48 -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/spinner.llm.md +182 -0
- package/.llm/stack.llm.md +28 -0
- package/.llm/subsection-title.llm.md +46 -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/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/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/stories/typography.stories.d.ts +8 -108
- package/dist/components/ui/stories/typography.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 +211 -474
- package/dist/components/ui/typography.d.ts.map +1 -1
- package/dist/index.js +5160 -9875
- 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/stories/typography.stories.tsx +261 -1512
- package/src/components/ui/theme-toggle.tsx +1 -3
- package/src/components/ui/theme.tsx +6 -1
- package/src/components/ui/typography.tsx +416 -1136
- package/src/styles/globals.css +57 -106
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# ItemActions
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
ItemActions - Container for action buttons and icons Positioned at the end of an item for displaying interactive elements like buttons, icons, or dropdown triggers. Flexbox layout with consistent gap spacing ensures proper alignment of multiple actions.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { ItemActions } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<ItemActions
|
|
13
|
+
className="value"
|
|
14
|
+
>
|
|
15
|
+
{/* Your content here */}
|
|
16
|
+
</ItemActions>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Component Props
|
|
20
|
+
|
|
21
|
+
### className
|
|
22
|
+
- **Type**: `string`
|
|
23
|
+
- **Required**: No
|
|
24
|
+
- **Description**: No description available
|
|
25
|
+
|
|
26
|
+
### children
|
|
27
|
+
- **Type**: `React.ReactNode`
|
|
28
|
+
- **Required**: No
|
|
29
|
+
- **Description**: No description available
|
|
30
|
+
|
|
31
|
+
## Examples
|
|
32
|
+
|
|
33
|
+
### Example 1
|
|
34
|
+
```tsx
|
|
35
|
+
<Item>
|
|
36
|
+
<ItemContent>
|
|
37
|
+
<ItemTitle>Document</ItemTitle>
|
|
38
|
+
</ItemContent>
|
|
39
|
+
<ItemActions>
|
|
40
|
+
<Button variant="ghost" size="icon">
|
|
41
|
+
<MoreVertical />
|
|
42
|
+
</Button>
|
|
43
|
+
</ItemActions>
|
|
44
|
+
</Item>
|
|
45
|
+
```
|
|
46
|
+
### Example 2
|
|
47
|
+
```tsx
|
|
48
|
+
// Multiple action buttons
|
|
49
|
+
<Item>
|
|
50
|
+
<ItemContent>
|
|
51
|
+
<ItemTitle>Task Item</ItemTitle>
|
|
52
|
+
</ItemContent>
|
|
53
|
+
<ItemActions>
|
|
54
|
+
<Button variant="ghost" size="icon">
|
|
55
|
+
<Star />
|
|
56
|
+
</Button>
|
|
57
|
+
<Button variant="ghost" size="icon">
|
|
58
|
+
<CheckCircle2 />
|
|
59
|
+
</Button>
|
|
60
|
+
<Button variant="ghost" size="icon">
|
|
61
|
+
<MoreVertical />
|
|
62
|
+
</Button>
|
|
63
|
+
</ItemActions>
|
|
64
|
+
</Item>
|
|
65
|
+
```
|
|
66
|
+
### Example 3
|
|
67
|
+
```tsx
|
|
68
|
+
// Text button with chevron
|
|
69
|
+
<Item>
|
|
70
|
+
<ItemContent>
|
|
71
|
+
<ItemTitle>Settings</ItemTitle>
|
|
72
|
+
</ItemContent>
|
|
73
|
+
<ItemActions>
|
|
74
|
+
<ChevronRight className="size-4 text-muted-foreground" />
|
|
75
|
+
</ItemActions>
|
|
76
|
+
</Item>
|
|
77
|
+
```
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# ItemContent
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
ItemContent - Main content container for item text Flexible container that holds ItemTitle, ItemDescription, ItemHeader, and ItemFooter. Automatically grows to fill available space (flex-1) and provides consistent gap spacing (gap-1) between children. Multiple ItemContent containers can be used, with subsequent ones not growing (flex-none).
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { ItemContent } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<ItemContent
|
|
13
|
+
className="value"
|
|
14
|
+
>
|
|
15
|
+
{/* Your content here */}
|
|
16
|
+
</ItemContent>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Component Props
|
|
20
|
+
|
|
21
|
+
### className
|
|
22
|
+
- **Type**: `string`
|
|
23
|
+
- **Required**: No
|
|
24
|
+
- **Description**: No description available
|
|
25
|
+
|
|
26
|
+
### children
|
|
27
|
+
- **Type**: `React.ReactNode`
|
|
28
|
+
- **Required**: No
|
|
29
|
+
- **Description**: No description available
|
|
30
|
+
|
|
31
|
+
## Examples
|
|
32
|
+
|
|
33
|
+
### Example 1
|
|
34
|
+
```tsx
|
|
35
|
+
<Item>
|
|
36
|
+
<ItemContent>
|
|
37
|
+
<ItemTitle>Document Name</ItemTitle>
|
|
38
|
+
<ItemDescription>Additional details</ItemDescription>
|
|
39
|
+
</ItemContent>
|
|
40
|
+
</Item>
|
|
41
|
+
```
|
|
42
|
+
### Example 2
|
|
43
|
+
```tsx
|
|
44
|
+
// Content with header and footer
|
|
45
|
+
<Item>
|
|
46
|
+
<ItemMedia variant="icon">
|
|
47
|
+
<FileText />
|
|
48
|
+
</ItemMedia>
|
|
49
|
+
<ItemContent>
|
|
50
|
+
<ItemHeader>
|
|
51
|
+
<ItemTitle>Meeting Notes</ItemTitle>
|
|
52
|
+
<Badge>New</Badge>
|
|
53
|
+
</ItemHeader>
|
|
54
|
+
<ItemDescription>Notes from the team sync</ItemDescription>
|
|
55
|
+
<ItemFooter>
|
|
56
|
+
<span className="text-xs">Updated 5m ago</span>
|
|
57
|
+
</ItemFooter>
|
|
58
|
+
</ItemContent>
|
|
59
|
+
</Item>
|
|
60
|
+
```
|
|
61
|
+
### Example 3
|
|
62
|
+
```tsx
|
|
63
|
+
// Multiple content containers
|
|
64
|
+
<Item>
|
|
65
|
+
<ItemContent>
|
|
66
|
+
<ItemTitle>Primary Content</ItemTitle>
|
|
67
|
+
<ItemDescription>Main information</ItemDescription>
|
|
68
|
+
</ItemContent>
|
|
69
|
+
<ItemContent>
|
|
70
|
+
<span className="text-xs text-muted-foreground">Metadata</span>
|
|
71
|
+
</ItemContent>
|
|
72
|
+
</Item>
|
|
73
|
+
```
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# ItemDescription
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
ItemDescription - Secondary descriptive text Displays supplementary information below the item title. Automatically limits to 2 lines with text-balance for optimal wrapping. Includes special styling for inline links with hover states. Text color is muted for visual hierarchy.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { ItemDescription } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<ItemDescription
|
|
13
|
+
className="value"
|
|
14
|
+
>
|
|
15
|
+
{/* Your content here */}
|
|
16
|
+
</ItemDescription>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Component Props
|
|
20
|
+
|
|
21
|
+
### className
|
|
22
|
+
- **Type**: `string`
|
|
23
|
+
- **Required**: No
|
|
24
|
+
- **Description**: No description available
|
|
25
|
+
|
|
26
|
+
### children
|
|
27
|
+
- **Type**: `React.ReactNode`
|
|
28
|
+
- **Required**: No
|
|
29
|
+
- **Description**: No description available
|
|
30
|
+
|
|
31
|
+
## Examples
|
|
32
|
+
|
|
33
|
+
### Example 1
|
|
34
|
+
```tsx
|
|
35
|
+
<ItemContent>
|
|
36
|
+
<ItemTitle>Project Documentation</ItemTitle>
|
|
37
|
+
<ItemDescription>
|
|
38
|
+
Complete guide to project setup and configuration
|
|
39
|
+
</ItemDescription>
|
|
40
|
+
</ItemContent>
|
|
41
|
+
```
|
|
42
|
+
### Example 2
|
|
43
|
+
```tsx
|
|
44
|
+
// Description with link
|
|
45
|
+
<ItemContent>
|
|
46
|
+
<ItemTitle>Update Available</ItemTitle>
|
|
47
|
+
<ItemDescription>
|
|
48
|
+
A new version is available. <a href="#">Learn more</a>
|
|
49
|
+
</ItemDescription>
|
|
50
|
+
</ItemContent>
|
|
51
|
+
```
|
|
52
|
+
### Example 3
|
|
53
|
+
```tsx
|
|
54
|
+
// Description with metadata
|
|
55
|
+
<ItemContent>
|
|
56
|
+
<ItemTitle>Team Meeting</ItemTitle>
|
|
57
|
+
<ItemDescription>
|
|
58
|
+
Discuss Q4 planning and resource allocation
|
|
59
|
+
</ItemDescription>
|
|
60
|
+
</ItemContent>
|
|
61
|
+
```
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# ItemFooter
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
ItemFooter - Layout container for bottom metadata Creates a horizontal layout at the bottom of ItemContent, spanning full width with space-between distribution. Use for timestamps, file sizes, counts, or other supplementary information that should appear below the main content.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { ItemFooter } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<ItemFooter
|
|
13
|
+
className="value"
|
|
14
|
+
>
|
|
15
|
+
{/* Your content here */}
|
|
16
|
+
</ItemFooter>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Component Props
|
|
20
|
+
|
|
21
|
+
### className
|
|
22
|
+
- **Type**: `string`
|
|
23
|
+
- **Required**: No
|
|
24
|
+
- **Description**: No description available
|
|
25
|
+
|
|
26
|
+
### children
|
|
27
|
+
- **Type**: `React.ReactNode`
|
|
28
|
+
- **Required**: No
|
|
29
|
+
- **Description**: No description available
|
|
30
|
+
|
|
31
|
+
## Examples
|
|
32
|
+
|
|
33
|
+
### Example 1
|
|
34
|
+
```tsx
|
|
35
|
+
<ItemContent>
|
|
36
|
+
<ItemTitle>Document.pdf</ItemTitle>
|
|
37
|
+
<ItemDescription>Project documentation</ItemDescription>
|
|
38
|
+
<ItemFooter>
|
|
39
|
+
<span className="text-xs text-muted-foreground">2.4 MB</span>
|
|
40
|
+
<span className="text-xs text-muted-foreground">Modified today</span>
|
|
41
|
+
</ItemFooter>
|
|
42
|
+
</ItemContent>
|
|
43
|
+
```
|
|
44
|
+
### Example 2
|
|
45
|
+
```tsx
|
|
46
|
+
// Footer with single metadata
|
|
47
|
+
<ItemContent>
|
|
48
|
+
<ItemTitle>Team Meeting</ItemTitle>
|
|
49
|
+
<ItemDescription>Discuss Q4 planning</ItemDescription>
|
|
50
|
+
<ItemFooter>
|
|
51
|
+
<span className="text-xs text-muted-foreground">
|
|
52
|
+
Updated 5 minutes ago
|
|
53
|
+
</span>
|
|
54
|
+
</ItemFooter>
|
|
55
|
+
</ItemContent>
|
|
56
|
+
```
|
|
57
|
+
### Example 3
|
|
58
|
+
```tsx
|
|
59
|
+
// Footer with multiple metadata items
|
|
60
|
+
<ItemContent>
|
|
61
|
+
<ItemTitle>Project Report</ItemTitle>
|
|
62
|
+
<ItemDescription>Q4 Financial Analysis</ItemDescription>
|
|
63
|
+
<ItemFooter>
|
|
64
|
+
<span className="text-xs text-muted-foreground">5.8 MB</span>
|
|
65
|
+
<span className="text-xs text-muted-foreground">Shared with 12</span>
|
|
66
|
+
</ItemFooter>
|
|
67
|
+
</ItemContent>
|
|
68
|
+
```
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# ItemGroup
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
ItemGroup - Container for grouping multiple Item components Provides a semantic list container for organizing related items with consistent spacing and layout. Automatically applies role="list" for proper ARIA semantics. Use with ItemSeparator to visually separate items within the group.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { ItemGroup } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<ItemGroup
|
|
13
|
+
className="value"
|
|
14
|
+
>
|
|
15
|
+
{/* Your content here */}
|
|
16
|
+
</ItemGroup>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Component Props
|
|
20
|
+
|
|
21
|
+
### className
|
|
22
|
+
- **Type**: `string`
|
|
23
|
+
- **Required**: No
|
|
24
|
+
- **Description**: No description available
|
|
25
|
+
|
|
26
|
+
### children
|
|
27
|
+
- **Type**: `React.ReactNode`
|
|
28
|
+
- **Required**: No
|
|
29
|
+
- **Description**: No description available
|
|
30
|
+
|
|
31
|
+
## Examples
|
|
32
|
+
|
|
33
|
+
### Example 1
|
|
34
|
+
```tsx
|
|
35
|
+
<ItemGroup>
|
|
36
|
+
<Item>
|
|
37
|
+
<ItemContent>
|
|
38
|
+
<ItemTitle>First Item</ItemTitle>
|
|
39
|
+
</ItemContent>
|
|
40
|
+
</Item>
|
|
41
|
+
<ItemSeparator />
|
|
42
|
+
<Item>
|
|
43
|
+
<ItemContent>
|
|
44
|
+
<ItemTitle>Second Item</ItemTitle>
|
|
45
|
+
</ItemContent>
|
|
46
|
+
</Item>
|
|
47
|
+
</ItemGroup>
|
|
48
|
+
```
|
|
49
|
+
### Example 2
|
|
50
|
+
```tsx
|
|
51
|
+
// Notification list with grouped items
|
|
52
|
+
<ItemGroup>
|
|
53
|
+
<Item variant="muted">
|
|
54
|
+
<ItemMedia variant="icon">
|
|
55
|
+
<Bell />
|
|
56
|
+
</ItemMedia>
|
|
57
|
+
<ItemContent>
|
|
58
|
+
<ItemTitle>New notification</ItemTitle>
|
|
59
|
+
<ItemDescription>You have a new message</ItemDescription>
|
|
60
|
+
</ItemContent>
|
|
61
|
+
</Item>
|
|
62
|
+
<ItemSeparator />
|
|
63
|
+
<Item>
|
|
64
|
+
<ItemMedia variant="icon">
|
|
65
|
+
<Clock />
|
|
66
|
+
</ItemMedia>
|
|
67
|
+
<ItemContent>
|
|
68
|
+
<ItemTitle>Reminder</ItemTitle>
|
|
69
|
+
<ItemDescription>Meeting in 30 minutes</ItemDescription>
|
|
70
|
+
</ItemContent>
|
|
71
|
+
</Item>
|
|
72
|
+
</ItemGroup>
|
|
73
|
+
```
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# ItemHeader
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
ItemHeader - Layout container for title and metadata Creates a horizontal layout spanning the full width of ItemContent, positioning content at the start and end (justify-between). Perfect for pairing ItemTitle with badges, timestamps, or other metadata that should appear on the same line.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { ItemHeader } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<ItemHeader
|
|
13
|
+
className="value"
|
|
14
|
+
>
|
|
15
|
+
{/* Your content here */}
|
|
16
|
+
</ItemHeader>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Component Props
|
|
20
|
+
|
|
21
|
+
### className
|
|
22
|
+
- **Type**: `string`
|
|
23
|
+
- **Required**: No
|
|
24
|
+
- **Description**: No description available
|
|
25
|
+
|
|
26
|
+
### children
|
|
27
|
+
- **Type**: `React.ReactNode`
|
|
28
|
+
- **Required**: No
|
|
29
|
+
- **Description**: No description available
|
|
30
|
+
|
|
31
|
+
## Examples
|
|
32
|
+
|
|
33
|
+
### Example 1
|
|
34
|
+
```tsx
|
|
35
|
+
<ItemContent>
|
|
36
|
+
<ItemHeader>
|
|
37
|
+
<ItemTitle>Meeting Notes</ItemTitle>
|
|
38
|
+
<Badge variant="secondary">New</Badge>
|
|
39
|
+
</ItemHeader>
|
|
40
|
+
<ItemDescription>Notes from team sync</ItemDescription>
|
|
41
|
+
</ItemContent>
|
|
42
|
+
```
|
|
43
|
+
### Example 2
|
|
44
|
+
```tsx
|
|
45
|
+
// Header with timestamp
|
|
46
|
+
<ItemContent>
|
|
47
|
+
<ItemHeader>
|
|
48
|
+
<ItemTitle>System Update</ItemTitle>
|
|
49
|
+
<span className="text-xs text-muted-foreground">2h ago</span>
|
|
50
|
+
</ItemHeader>
|
|
51
|
+
</ItemContent>
|
|
52
|
+
```
|
|
53
|
+
### Example 3
|
|
54
|
+
```tsx
|
|
55
|
+
// Header with multiple badges
|
|
56
|
+
<ItemContent>
|
|
57
|
+
<ItemHeader>
|
|
58
|
+
<ItemTitle>Premium Feature</ItemTitle>
|
|
59
|
+
<div className="flex gap-1">
|
|
60
|
+
<Badge>Pro</Badge>
|
|
61
|
+
<Badge variant="secondary">Beta</Badge>
|
|
62
|
+
</div>
|
|
63
|
+
</ItemHeader>
|
|
64
|
+
<ItemDescription>Advanced analytics and reporting</ItemDescription>
|
|
65
|
+
</ItemContent>
|
|
66
|
+
```
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# ItemMedia
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
ItemMedia - Media container for icons, images, or avatars Flexible media slot that appears at the start of an item. Supports three display modes: transparent (default), bordered icon container, or image container with object-fit styling. Automatically adjusts alignment when descriptions are present.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { ItemMedia } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<ItemMedia
|
|
13
|
+
variant={value}
|
|
14
|
+
className="value"
|
|
15
|
+
>
|
|
16
|
+
{/* Your content here */}
|
|
17
|
+
</ItemMedia>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Component Props
|
|
21
|
+
|
|
22
|
+
### variant
|
|
23
|
+
- **Type**: `"default" | "icon" | "image"`
|
|
24
|
+
- **Required**: No
|
|
25
|
+
- **Description**: No description available
|
|
26
|
+
|
|
27
|
+
### className
|
|
28
|
+
- **Type**: `string`
|
|
29
|
+
- **Required**: No
|
|
30
|
+
- **Description**: No description available
|
|
31
|
+
|
|
32
|
+
### children
|
|
33
|
+
- **Type**: `React.ReactNode`
|
|
34
|
+
- **Required**: No
|
|
35
|
+
- **Description**: No description available
|
|
36
|
+
|
|
37
|
+
## Examples
|
|
38
|
+
|
|
39
|
+
### Example 1
|
|
40
|
+
```tsx
|
|
41
|
+
// Icon variant with automatic sizing
|
|
42
|
+
<Item>
|
|
43
|
+
<ItemMedia variant="icon">
|
|
44
|
+
<FileText />
|
|
45
|
+
</ItemMedia>
|
|
46
|
+
<ItemContent>
|
|
47
|
+
<ItemTitle>Document</ItemTitle>
|
|
48
|
+
</ItemContent>
|
|
49
|
+
</Item>
|
|
50
|
+
```
|
|
51
|
+
### Example 2
|
|
52
|
+
```tsx
|
|
53
|
+
// Image variant for avatars or thumbnails
|
|
54
|
+
<Item>
|
|
55
|
+
<ItemMedia variant="image">
|
|
56
|
+
<img src="/avatar.jpg" alt="User avatar" />
|
|
57
|
+
</ItemMedia>
|
|
58
|
+
<ItemContent>
|
|
59
|
+
<ItemTitle>John Doe</ItemTitle>
|
|
60
|
+
<ItemDescription>Product Manager</ItemDescription>
|
|
61
|
+
</ItemContent>
|
|
62
|
+
</Item>
|
|
63
|
+
```
|
|
64
|
+
### Example 3
|
|
65
|
+
```tsx
|
|
66
|
+
// Default variant for custom content
|
|
67
|
+
<Item>
|
|
68
|
+
<ItemMedia>
|
|
69
|
+
<div className="size-12 rounded-full bg-gradient-to-br from-purple-400 to-pink-400" />
|
|
70
|
+
</ItemMedia>
|
|
71
|
+
<ItemContent>
|
|
72
|
+
<ItemTitle>Custom Media</ItemTitle>
|
|
73
|
+
</ItemContent>
|
|
74
|
+
</Item>
|
|
75
|
+
```
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# ItemSeparator
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
ItemSeparator - Horizontal divider for separating items Provides a visual separator between items in an ItemGroup. Built on the Separator component with optimized spacing (my-0) to work seamlessly with item layouts. Always renders horizontally for consistent item list styling.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { ItemSeparator } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<ItemSeparator
|
|
13
|
+
className="value"
|
|
14
|
+
orientation={value}
|
|
15
|
+
decorative={true}
|
|
16
|
+
/>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Component Props
|
|
20
|
+
|
|
21
|
+
### className
|
|
22
|
+
- **Type**: `string`
|
|
23
|
+
- **Required**: No
|
|
24
|
+
- **Description**: No description available
|
|
25
|
+
|
|
26
|
+
### orientation
|
|
27
|
+
- **Type**: `"horizontal" | "vertical"`
|
|
28
|
+
- **Required**: No
|
|
29
|
+
- **Description**: No description available
|
|
30
|
+
|
|
31
|
+
### decorative
|
|
32
|
+
- **Type**: `boolean`
|
|
33
|
+
- **Required**: No
|
|
34
|
+
- **Description**: No description available
|
|
35
|
+
|
|
36
|
+
## Examples
|
|
37
|
+
|
|
38
|
+
### Example 1
|
|
39
|
+
```tsx
|
|
40
|
+
<ItemGroup>
|
|
41
|
+
<Item>
|
|
42
|
+
<ItemContent>
|
|
43
|
+
<ItemTitle>First Item</ItemTitle>
|
|
44
|
+
</ItemContent>
|
|
45
|
+
</Item>
|
|
46
|
+
<ItemSeparator />
|
|
47
|
+
<Item>
|
|
48
|
+
<ItemContent>
|
|
49
|
+
<ItemTitle>Second Item</ItemTitle>
|
|
50
|
+
</ItemContent>
|
|
51
|
+
</Item>
|
|
52
|
+
</ItemGroup>
|
|
53
|
+
```
|
|
54
|
+
### Example 2
|
|
55
|
+
```tsx
|
|
56
|
+
// File list with separators
|
|
57
|
+
<ItemGroup>
|
|
58
|
+
<Item asChild>
|
|
59
|
+
<a href="#">
|
|
60
|
+
<ItemMedia variant="icon">
|
|
61
|
+
<FileText />
|
|
62
|
+
</ItemMedia>
|
|
63
|
+
<ItemContent>
|
|
64
|
+
<ItemTitle>Document.pdf</ItemTitle>
|
|
65
|
+
</ItemContent>
|
|
66
|
+
</a>
|
|
67
|
+
</Item>
|
|
68
|
+
<ItemSeparator />
|
|
69
|
+
<Item asChild>
|
|
70
|
+
<a href="#">
|
|
71
|
+
<ItemMedia variant="icon">
|
|
72
|
+
<FileText />
|
|
73
|
+
</ItemMedia>
|
|
74
|
+
<ItemContent>
|
|
75
|
+
<ItemTitle>Report.docx</ItemTitle>
|
|
76
|
+
</ItemContent>
|
|
77
|
+
</a>
|
|
78
|
+
</Item>
|
|
79
|
+
</ItemGroup>
|
|
80
|
+
```
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# ItemTitle
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
ItemTitle - Title text for an item Displays the primary title or heading text for an item. Uses medium font weight and tight line spacing for a prominent yet compact appearance. Inline-flex layout allows badges or icons to be positioned next to the title.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { ItemTitle } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<ItemTitle
|
|
13
|
+
className="value"
|
|
14
|
+
>
|
|
15
|
+
{/* Your content here */}
|
|
16
|
+
</ItemTitle>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Component Props
|
|
20
|
+
|
|
21
|
+
### className
|
|
22
|
+
- **Type**: `string`
|
|
23
|
+
- **Required**: No
|
|
24
|
+
- **Description**: No description available
|
|
25
|
+
|
|
26
|
+
### children
|
|
27
|
+
- **Type**: `React.ReactNode`
|
|
28
|
+
- **Required**: No
|
|
29
|
+
- **Description**: No description available
|
|
30
|
+
|
|
31
|
+
## Examples
|
|
32
|
+
|
|
33
|
+
### Example 1
|
|
34
|
+
```tsx
|
|
35
|
+
<ItemContent>
|
|
36
|
+
<ItemTitle>Document.pdf</ItemTitle>
|
|
37
|
+
<ItemDescription>Last modified today</ItemDescription>
|
|
38
|
+
</ItemContent>
|
|
39
|
+
```
|
|
40
|
+
### Example 2
|
|
41
|
+
```tsx
|
|
42
|
+
// Title with inline badge
|
|
43
|
+
<ItemContent>
|
|
44
|
+
<ItemTitle>
|
|
45
|
+
Premium Feature
|
|
46
|
+
<Badge variant="secondary">Pro</Badge>
|
|
47
|
+
</ItemTitle>
|
|
48
|
+
</ItemContent>
|
|
49
|
+
```
|
|
50
|
+
### Example 3
|
|
51
|
+
```tsx
|
|
52
|
+
// Title with icon
|
|
53
|
+
<ItemContent>
|
|
54
|
+
<ItemTitle>
|
|
55
|
+
<Lock className="size-3" />
|
|
56
|
+
Private Document
|
|
57
|
+
</ItemTitle>
|
|
58
|
+
</ItemContent>
|
|
59
|
+
```
|