@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
package/.llm/item.llm.md
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Item
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Item - Flexible container for displaying structured content A composable component for creating rich list items, cards, and data displays. Built with a slot-based architecture allowing flexible combinations of media, content, actions, headers, and footers. Supports rendering as any HTML element via the asChild prop for semantic flexibility (e.g., links, buttons).
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { Item } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<Item
|
|
13
|
+
variant={value}
|
|
14
|
+
size={value}
|
|
15
|
+
asChild={true}
|
|
16
|
+
className="value"
|
|
17
|
+
>
|
|
18
|
+
{/* Your content here */}
|
|
19
|
+
</Item>
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Component Props
|
|
23
|
+
|
|
24
|
+
### variant
|
|
25
|
+
- **Type**: `"default" | "outline" | "muted"`
|
|
26
|
+
- **Required**: No
|
|
27
|
+
- **Description**: No description available
|
|
28
|
+
|
|
29
|
+
### size
|
|
30
|
+
- **Type**: `"default" | "sm"`
|
|
31
|
+
- **Required**: No
|
|
32
|
+
- **Description**: No description available
|
|
33
|
+
|
|
34
|
+
### asChild
|
|
35
|
+
- **Type**: `boolean`
|
|
36
|
+
- **Required**: No
|
|
37
|
+
- **Description**: No description available
|
|
38
|
+
|
|
39
|
+
### className
|
|
40
|
+
- **Type**: `string`
|
|
41
|
+
- **Required**: No
|
|
42
|
+
- **Description**: No description available
|
|
43
|
+
|
|
44
|
+
### children
|
|
45
|
+
- **Type**: `React.ReactNode`
|
|
46
|
+
- **Required**: No
|
|
47
|
+
- **Description**: No description available
|
|
48
|
+
|
|
49
|
+
## Examples
|
|
50
|
+
|
|
51
|
+
### Example 1
|
|
52
|
+
```tsx
|
|
53
|
+
// Basic item with icon and content
|
|
54
|
+
<Item>
|
|
55
|
+
<ItemMedia variant="icon">
|
|
56
|
+
<FileText />
|
|
57
|
+
</ItemMedia>
|
|
58
|
+
<ItemContent>
|
|
59
|
+
<ItemTitle>Document.pdf</ItemTitle>
|
|
60
|
+
<ItemDescription>Last modified today</ItemDescription>
|
|
61
|
+
</ItemContent>
|
|
62
|
+
</Item>
|
|
63
|
+
```
|
|
64
|
+
### Example 2
|
|
65
|
+
```tsx
|
|
66
|
+
// Item as a clickable link with asChild
|
|
67
|
+
<Item asChild>
|
|
68
|
+
<a href="/dashboard">
|
|
69
|
+
<ItemMedia variant="icon">
|
|
70
|
+
<Home />
|
|
71
|
+
</ItemMedia>
|
|
72
|
+
<ItemContent>
|
|
73
|
+
<ItemTitle>Dashboard</ItemTitle>
|
|
74
|
+
<ItemDescription>View your account overview</ItemDescription>
|
|
75
|
+
</ItemContent>
|
|
76
|
+
<ItemActions>
|
|
77
|
+
<ChevronRight />
|
|
78
|
+
</ItemActions>
|
|
79
|
+
</a>
|
|
80
|
+
</Item>
|
|
81
|
+
```
|
|
82
|
+
### Example 3
|
|
83
|
+
```tsx
|
|
84
|
+
// Rich item with header, footer, and actions
|
|
85
|
+
<Item variant="outline">
|
|
86
|
+
<ItemMedia variant="image">
|
|
87
|
+
<img src="/avatar.jpg" alt="User" />
|
|
88
|
+
</ItemMedia>
|
|
89
|
+
<ItemContent>
|
|
90
|
+
<ItemHeader>
|
|
91
|
+
<ItemTitle>John Doe</ItemTitle>
|
|
92
|
+
<Badge>Pro</Badge>
|
|
93
|
+
</ItemHeader>
|
|
94
|
+
<ItemDescription>Product Manager</ItemDescription>
|
|
95
|
+
<ItemFooter>
|
|
96
|
+
<span className="text-xs">Last active 5m ago</span>
|
|
97
|
+
</ItemFooter>
|
|
98
|
+
</ItemContent>
|
|
99
|
+
<ItemActions>
|
|
100
|
+
<Button size="sm">Message</Button>
|
|
101
|
+
</ItemActions>
|
|
102
|
+
</Item>
|
|
103
|
+
```
|
|
104
|
+
### Example 4
|
|
105
|
+
```tsx
|
|
106
|
+
// Small size variant for compact layouts
|
|
107
|
+
<Item size="sm">
|
|
108
|
+
<ItemContent>
|
|
109
|
+
<ItemTitle>Settings</ItemTitle>
|
|
110
|
+
</ItemContent>
|
|
111
|
+
<ItemActions>
|
|
112
|
+
<ChevronRight className="size-4" />
|
|
113
|
+
</ItemActions>
|
|
114
|
+
</Item>
|
|
115
|
+
```
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# KbdGroup
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
KbdGroup - Group multiple keyboard keys together A container component for grouping multiple Kbd components to represent complex keyboard shortcuts or key combinations. Automatically handles spacing between individual keys and provides semantic grouping. Useful for displaying shortcuts like "Ctrl+Shift+P" or "Cmd+K".
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { KbdGroup } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<KbdGroup
|
|
13
|
+
className="value"
|
|
14
|
+
>
|
|
15
|
+
{/* Your content here */}
|
|
16
|
+
</KbdGroup>
|
|
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
|
+
// Basic keyboard shortcut
|
|
36
|
+
<KbdGroup>
|
|
37
|
+
<Kbd>Ctrl</Kbd>
|
|
38
|
+
<Kbd>C</Kbd>
|
|
39
|
+
</KbdGroup>
|
|
40
|
+
```
|
|
41
|
+
### Example 2
|
|
42
|
+
```tsx
|
|
43
|
+
// Multiple modifier keys
|
|
44
|
+
<KbdGroup>
|
|
45
|
+
<Kbd>⌘</Kbd>
|
|
46
|
+
<Kbd>⇧</Kbd>
|
|
47
|
+
<Kbd>P</Kbd>
|
|
48
|
+
</KbdGroup>
|
|
49
|
+
```
|
|
50
|
+
### Example 3
|
|
51
|
+
```tsx
|
|
52
|
+
// With custom separators using text
|
|
53
|
+
<KbdGroup>
|
|
54
|
+
<Kbd>Ctrl</Kbd>
|
|
55
|
+
<span className="text-muted-foreground">+</span>
|
|
56
|
+
<Kbd>Alt</Kbd>
|
|
57
|
+
<span className="text-muted-foreground">+</span>
|
|
58
|
+
<Kbd>Delete</Kbd>
|
|
59
|
+
</KbdGroup>
|
|
60
|
+
```
|
|
61
|
+
### Example 4
|
|
62
|
+
```tsx
|
|
63
|
+
// In a command palette or menu item
|
|
64
|
+
<div className="flex items-center justify-between">
|
|
65
|
+
<span>Open command palette</span>
|
|
66
|
+
<KbdGroup>
|
|
67
|
+
<Kbd>⌘</Kbd>
|
|
68
|
+
<Kbd>K</Kbd>
|
|
69
|
+
</KbdGroup>
|
|
70
|
+
</div>
|
|
71
|
+
```
|
package/.llm/kbd.llm.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Kbd
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Kbd - Display keyboard input and shortcuts A semantic component for representing keyboard keys, shortcuts, and input in documentation, tutorials, and UI instructions. Uses the HTML kbd element with consistent styling for monospace text, subtle background, and appropriate sizing. Supports icons, text, and modifier keys like Cmd, Shift, Ctrl, and Alt.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { Kbd } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<Kbd
|
|
13
|
+
className="value"
|
|
14
|
+
>
|
|
15
|
+
{/* Your content here */}
|
|
16
|
+
</Kbd>
|
|
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
|
+
// Display a single keyboard key
|
|
36
|
+
<Kbd>K</Kbd>
|
|
37
|
+
```
|
|
38
|
+
### Example 2
|
|
39
|
+
```tsx
|
|
40
|
+
// Display keyboard shortcuts with modifiers
|
|
41
|
+
<KbdGroup>
|
|
42
|
+
<Kbd>⌘</Kbd>
|
|
43
|
+
<Kbd>K</Kbd>
|
|
44
|
+
</KbdGroup>
|
|
45
|
+
```
|
|
46
|
+
### Example 3
|
|
47
|
+
```tsx
|
|
48
|
+
// Display keyboard shortcuts in help text
|
|
49
|
+
<p>
|
|
50
|
+
Press <Kbd>Ctrl</Kbd> + <Kbd>S</Kbd> to save your work
|
|
51
|
+
</p>
|
|
52
|
+
```
|
|
53
|
+
### Example 4
|
|
54
|
+
```tsx
|
|
55
|
+
// Complex keyboard shortcut with multiple modifiers
|
|
56
|
+
<KbdGroup>
|
|
57
|
+
<Kbd>Ctrl</Kbd>
|
|
58
|
+
<Kbd>Shift</Kbd>
|
|
59
|
+
<Kbd>P</Kbd>
|
|
60
|
+
</KbdGroup>
|
|
61
|
+
```
|
|
62
|
+
### Example 5
|
|
63
|
+
```tsx
|
|
64
|
+
// Display keyboard shortcuts with icons
|
|
65
|
+
<KbdGroup>
|
|
66
|
+
<Kbd>
|
|
67
|
+
<Command className="h-3 w-3" />
|
|
68
|
+
</Kbd>
|
|
69
|
+
<Kbd>K</Kbd>
|
|
70
|
+
</KbdGroup>
|
|
71
|
+
```
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# Label
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Label component for form controls with full accessibility support A fundamental form component that provides accessible text labels for form controls. Built on Radix UI Label primitive, it automatically associates with form elements and expands their clickable area for improved usability and accessibility. Essential for creating accessible forms that meet WCAG guidelines.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { Label } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<Label
|
|
13
|
+
className="value"
|
|
14
|
+
htmlFor="value"
|
|
15
|
+
asChild={true}
|
|
16
|
+
onClick={handleClick}
|
|
17
|
+
onKeyDown={handleKeyDown}
|
|
18
|
+
id="value"
|
|
19
|
+
style={value}
|
|
20
|
+
tabIndex={0}
|
|
21
|
+
"aria-label"="value"
|
|
22
|
+
"aria-describedby"="value"
|
|
23
|
+
"aria-invalid"={true}
|
|
24
|
+
"aria-required"={true}
|
|
25
|
+
>
|
|
26
|
+
{/* Your content here */}
|
|
27
|
+
</Label>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Component Props
|
|
31
|
+
|
|
32
|
+
### className
|
|
33
|
+
- **Type**: `string`
|
|
34
|
+
- **Required**: No
|
|
35
|
+
- **Description**: No description available
|
|
36
|
+
|
|
37
|
+
### htmlFor
|
|
38
|
+
- **Type**: `string`
|
|
39
|
+
- **Required**: No
|
|
40
|
+
- **Description**: No description available
|
|
41
|
+
|
|
42
|
+
### children
|
|
43
|
+
- **Type**: `React.ReactNode`
|
|
44
|
+
- **Required**: No
|
|
45
|
+
- **Description**: No description available
|
|
46
|
+
|
|
47
|
+
### asChild
|
|
48
|
+
- **Type**: `boolean`
|
|
49
|
+
- **Required**: No
|
|
50
|
+
- **Description**: No description available
|
|
51
|
+
|
|
52
|
+
### onClick
|
|
53
|
+
- **Type**: `React.MouseEventHandler<HTMLLabelElement>`
|
|
54
|
+
- **Required**: No
|
|
55
|
+
- **Description**: No description available
|
|
56
|
+
|
|
57
|
+
### onKeyDown
|
|
58
|
+
- **Type**: `React.KeyboardEventHandler<HTMLLabelElement>`
|
|
59
|
+
- **Required**: No
|
|
60
|
+
- **Description**: No description available
|
|
61
|
+
|
|
62
|
+
### id
|
|
63
|
+
- **Type**: `string`
|
|
64
|
+
- **Required**: No
|
|
65
|
+
- **Description**: No description available
|
|
66
|
+
|
|
67
|
+
### style
|
|
68
|
+
- **Type**: `React.CSSProperties`
|
|
69
|
+
- **Required**: No
|
|
70
|
+
- **Description**: No description available
|
|
71
|
+
|
|
72
|
+
### tabIndex
|
|
73
|
+
- **Type**: `number`
|
|
74
|
+
- **Required**: No
|
|
75
|
+
- **Description**: No description available
|
|
76
|
+
|
|
77
|
+
### "aria-label"
|
|
78
|
+
- **Type**: `string`
|
|
79
|
+
- **Required**: No
|
|
80
|
+
- **Description**: No description available
|
|
81
|
+
|
|
82
|
+
### "aria-describedby"
|
|
83
|
+
- **Type**: `string`
|
|
84
|
+
- **Required**: No
|
|
85
|
+
- **Description**: No description available
|
|
86
|
+
|
|
87
|
+
### "aria-invalid"
|
|
88
|
+
- **Type**: `boolean`
|
|
89
|
+
- **Required**: No
|
|
90
|
+
- **Description**: No description available
|
|
91
|
+
|
|
92
|
+
### "aria-required"
|
|
93
|
+
- **Type**: `boolean`
|
|
94
|
+
- **Required**: No
|
|
95
|
+
- **Description**: No description available
|
|
96
|
+
|
|
97
|
+
## Examples
|
|
98
|
+
|
|
99
|
+
### Example 1
|
|
100
|
+
```tsx
|
|
101
|
+
// Basic label with input
|
|
102
|
+
<div className="space-y-2">
|
|
103
|
+
<Label htmlFor="email">Email address</Label>
|
|
104
|
+
<Input id="email" type="email" placeholder="Enter your email" />
|
|
105
|
+
</div>
|
|
106
|
+
```
|
|
107
|
+
### Example 2
|
|
108
|
+
```tsx
|
|
109
|
+
// Required field with indicator
|
|
110
|
+
<Label htmlFor="username">
|
|
111
|
+
Username <span className="text-destructive">*</span>
|
|
112
|
+
</Label>
|
|
113
|
+
<Input id="username" required />
|
|
114
|
+
```
|
|
115
|
+
### Example 3
|
|
116
|
+
```tsx
|
|
117
|
+
// Checkbox with label
|
|
118
|
+
<div className="flex items-center space-x-2">
|
|
119
|
+
<Checkbox id="terms" />
|
|
120
|
+
<Label htmlFor="terms" className="text-sm font-normal">
|
|
121
|
+
I agree to the terms and conditions
|
|
122
|
+
</Label>
|
|
123
|
+
</div>
|
|
124
|
+
```
|
|
125
|
+
### Example 4
|
|
126
|
+
```tsx
|
|
127
|
+
// Label with helper text
|
|
128
|
+
<div className="space-y-1">
|
|
129
|
+
<Label htmlFor="password">Password</Label>
|
|
130
|
+
<Input id="password" type="password" />
|
|
131
|
+
<p className="text-sm text-muted-foreground">
|
|
132
|
+
Must be at least 8 characters long
|
|
133
|
+
</p>
|
|
134
|
+
</div>
|
|
135
|
+
```
|
|
136
|
+
### Example 5
|
|
137
|
+
```tsx
|
|
138
|
+
// Complex label with nested content
|
|
139
|
+
<Label htmlFor="plan" className="flex flex-col space-y-1 cursor-pointer">
|
|
140
|
+
<span className="font-semibold">Choose your plan</span>
|
|
141
|
+
<span className="text-sm text-muted-foreground">
|
|
142
|
+
You can upgrade or downgrade anytime
|
|
143
|
+
</span>
|
|
144
|
+
</Label>
|
|
145
|
+
```
|
package/.llm/lead.llm.md
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Lead
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Lead - Introductory paragraph component for article openings Lead paragraph for article introductions, page descriptions, and summary content. Uses "subheading" variant with muted color for visual hierarchy.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { Lead } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<Lead
|
|
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
|
+
</Lead>
|
|
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
|
+
// Article introduction
|
|
101
|
+
<Lead>
|
|
102
|
+
This comprehensive guide covers everything you need to know about
|
|
103
|
+
building modern web applications with React and TypeScript.
|
|
104
|
+
</Lead>
|
|
105
|
+
// Page description
|
|
106
|
+
<Lead className="mb-8">
|
|
107
|
+
Discover powerful APIs and tools to build the next generation
|
|
108
|
+
of social applications on Farcaster.
|
|
109
|
+
</Lead>
|
|
110
|
+
// With custom color
|
|
111
|
+
<Lead color="default">
|
|
112
|
+
This lead paragraph uses the default text color for more prominence.
|
|
113
|
+
</Lead>
|
|
114
|
+
```
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# MenubarCheckboxItem
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
A menu item that can be checked/unchecked. Perfect for toggle options like "Show Toolbar", "Enable Feature", or any binary setting that can be turned on/off. Displays a checkmark icon when checked.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { MenubarCheckboxItem } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<MenubarCheckboxItem
|
|
13
|
+
className="value"
|
|
14
|
+
checked={value}
|
|
15
|
+
onCheckedChange={handleCheckedChange}
|
|
16
|
+
disabled={true}
|
|
17
|
+
onSelect={handleSelect}
|
|
18
|
+
textValue="value"
|
|
19
|
+
>
|
|
20
|
+
{/* Your content here */}
|
|
21
|
+
</MenubarCheckboxItem>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Component Props
|
|
25
|
+
|
|
26
|
+
### className
|
|
27
|
+
- **Type**: `string`
|
|
28
|
+
- **Required**: No
|
|
29
|
+
- **Description**: Additional CSS classes to apply to the checkbox item
|
|
30
|
+
|
|
31
|
+
### checked
|
|
32
|
+
- **Type**: `boolean | "indeterminate"`
|
|
33
|
+
- **Required**: No
|
|
34
|
+
- **Description**: The controlled checked state of the item. Must be used in conjunction with onCheckedChange
|
|
35
|
+
|
|
36
|
+
### onCheckedChange
|
|
37
|
+
- **Type**: `(checked: boolean) => void`
|
|
38
|
+
- **Required**: No
|
|
39
|
+
- **Description**: Event handler called when the checked state changes
|
|
40
|
+
|
|
41
|
+
### disabled
|
|
42
|
+
- **Type**: `boolean`
|
|
43
|
+
- **Required**: No
|
|
44
|
+
- **Description**: When true, prevents the user from interacting with the item
|
|
45
|
+
|
|
46
|
+
### onSelect
|
|
47
|
+
- **Type**: `(event: Event) => void`
|
|
48
|
+
- **Required**: No
|
|
49
|
+
- **Description**: Event handler called when the user selects an item (via mouse or keyboard)
|
|
50
|
+
|
|
51
|
+
### textValue
|
|
52
|
+
- **Type**: `string`
|
|
53
|
+
- **Required**: No
|
|
54
|
+
- **Description**: Optional text used for typeahead purposes when content is complex
|
|
55
|
+
|
|
56
|
+
## Examples
|
|
57
|
+
|
|
58
|
+
```tsx
|
|
59
|
+
<MenubarCheckboxItem
|
|
60
|
+
checked={showLineNumbers}
|
|
61
|
+
onCheckedChange={setShowLineNumbers}
|
|
62
|
+
>
|
|
63
|
+
Show Line Numbers
|
|
64
|
+
</MenubarCheckboxItem>
|
|
65
|
+
```
|
|
66
|
+
/
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# MenubarContent
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Dropdown content container for menu items. Contains the actual menu items, separators, and submenus that appear when a MenubarTrigger is activated. Automatically portaled and positioned.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { MenubarContent } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<MenubarContent
|
|
13
|
+
className="value"
|
|
14
|
+
align={value}
|
|
15
|
+
alignOffset={0}
|
|
16
|
+
sideOffset={0}
|
|
17
|
+
side={value}
|
|
18
|
+
avoidCollisions={true}
|
|
19
|
+
collisionBoundary={value}
|
|
20
|
+
arrowPadding={0}
|
|
21
|
+
sticky={value}
|
|
22
|
+
hideWhenDetached={true}
|
|
23
|
+
loop={true}
|
|
24
|
+
onEscapeKeyDown={handleEscapeKeyDown}
|
|
25
|
+
onPointerDownOutside={handlePointerDownOutside}
|
|
26
|
+
onFocusOutside={handleFocusOutside}
|
|
27
|
+
onInteractOutside={handleInteractOutside}
|
|
28
|
+
forceMount={value}
|
|
29
|
+
/>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Component Props
|
|
33
|
+
|
|
34
|
+
### className
|
|
35
|
+
- **Type**: `string`
|
|
36
|
+
- **Required**: No
|
|
37
|
+
- **Description**: Additional CSS classes to apply to the content container
|
|
38
|
+
|
|
39
|
+
### align
|
|
40
|
+
- **Type**: `"start" | "center" | "end"`
|
|
41
|
+
- **Required**: No
|
|
42
|
+
- **Description**: The preferred alignment against the trigger. May change when collisions occur
|
|
43
|
+
|
|
44
|
+
### alignOffset
|
|
45
|
+
- **Type**: `number`
|
|
46
|
+
- **Required**: No
|
|
47
|
+
- **Description**: An offset in pixels from the "start" or "end" alignment options
|
|
48
|
+
|
|
49
|
+
### sideOffset
|
|
50
|
+
- **Type**: `number`
|
|
51
|
+
- **Required**: No
|
|
52
|
+
- **Description**: The distance in pixels from the trigger
|
|
53
|
+
|
|
54
|
+
### side
|
|
55
|
+
- **Type**: `"top" | "right" | "bottom" | "left"`
|
|
56
|
+
- **Required**: No
|
|
57
|
+
- **Description**: The preferred side of the trigger to render against when open
|
|
58
|
+
|
|
59
|
+
### avoidCollisions
|
|
60
|
+
- **Type**: `boolean`
|
|
61
|
+
- **Required**: No
|
|
62
|
+
- **Description**: When true, overrides the side and align preferences to prevent collisions with viewport edges
|
|
63
|
+
|
|
64
|
+
### collisionBoundary
|
|
65
|
+
- **Type**: `Element | null | Array<Element | null>`
|
|
66
|
+
- **Required**: No
|
|
67
|
+
- **Description**: The element used as the collision boundary for positioning
|
|
68
|
+
|
|
69
|
+
### arrowPadding
|
|
70
|
+
- **Type**: `number`
|
|
71
|
+
- **Required**: No
|
|
72
|
+
- **Description**: No description available
|
|
73
|
+
|
|
74
|
+
### sticky
|
|
75
|
+
- **Type**: `"partial" | "always"`
|
|
76
|
+
- **Required**: No
|
|
77
|
+
- **Description**: No description available
|
|
78
|
+
|
|
79
|
+
### hideWhenDetached
|
|
80
|
+
- **Type**: `boolean`
|
|
81
|
+
- **Required**: No
|
|
82
|
+
- **Description**: No description available
|
|
83
|
+
|
|
84
|
+
### loop
|
|
85
|
+
- **Type**: `boolean`
|
|
86
|
+
- **Required**: No
|
|
87
|
+
- **Description**: Whether keyboard navigation should loop from last item to first, and vice versa
|
|
88
|
+
|
|
89
|
+
### onEscapeKeyDown
|
|
90
|
+
- **Type**: `(event: KeyboardEvent) => void`
|
|
91
|
+
- **Required**: No
|
|
92
|
+
- **Description**: Event handler called when the escape key is down
|
|
93
|
+
|
|
94
|
+
### onPointerDownOutside
|
|
95
|
+
- **Type**: `(
|
|
96
|
+
event: CustomEvent<{ originalEvent: PointerEvent }>,
|
|
97
|
+
) => void`
|
|
98
|
+
- **Required**: No
|
|
99
|
+
- **Description**: Event handler called when a pointerdown event happens outside of the component
|
|
100
|
+
|
|
101
|
+
### onFocusOutside
|
|
102
|
+
- **Type**: `(event: CustomEvent<{ originalEvent: FocusEvent }>) => void`
|
|
103
|
+
- **Required**: No
|
|
104
|
+
- **Description**: Event handler called when focus moves outside of the component
|
|
105
|
+
|
|
106
|
+
### onInteractOutside
|
|
107
|
+
- **Type**: `(
|
|
108
|
+
event: CustomEvent<{ originalEvent: PointerEvent | FocusEvent }>,
|
|
109
|
+
) => void`
|
|
110
|
+
- **Required**: No
|
|
111
|
+
- **Description**: Event handler called when an interaction happens outside the component
|
|
112
|
+
|
|
113
|
+
### forceMount
|
|
114
|
+
- **Type**: `true`
|
|
115
|
+
- **Required**: No
|
|
116
|
+
- **Description**: No description available
|
|
117
|
+
|
|
118
|
+
## Examples
|
|
119
|
+
|
|
120
|
+
```tsx
|
|
121
|
+
<MenubarContent align="center" sideOffset={12}>
|
|
122
|
+
<MenubarItem>New File</MenubarItem>
|
|
123
|
+
<MenubarItem>Open File</MenubarItem>
|
|
124
|
+
<MenubarSeparator />
|
|
125
|
+
<MenubarItem>Exit</MenubarItem>
|
|
126
|
+
</MenubarContent>
|
|
127
|
+
```
|
|
128
|
+
/
|