@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,311 @@
|
|
|
1
|
+
# Textarea
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Textarea - Multi-line text input control for extended content entry A styled textarea component built on the native HTML textarea element for entering longer pieces of text that span multiple lines, such as comments, descriptions, messages, or any content that requires multiple lines of input. Features automatic content-based resizing using CSS field-sizing when supported by the browser. Built following shadcn/ui design patterns with consistent styling and behavior across form elements. Inherits all native HTML textarea functionality while providing enhanced visual design and better accessibility patterns.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { Textarea } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<Textarea
|
|
13
|
+
className="value"
|
|
14
|
+
placeholder="value"
|
|
15
|
+
disabled={true}
|
|
16
|
+
readOnly={true}
|
|
17
|
+
rows={0}
|
|
18
|
+
cols={0}
|
|
19
|
+
maxLength={0}
|
|
20
|
+
minLength={0}
|
|
21
|
+
required={true}
|
|
22
|
+
form="value"
|
|
23
|
+
name="value"
|
|
24
|
+
id="value"
|
|
25
|
+
value="value"
|
|
26
|
+
defaultValue="value"
|
|
27
|
+
wrap={value}
|
|
28
|
+
autoFocus={true}
|
|
29
|
+
autoComplete="value"
|
|
30
|
+
autoCapitalize={value}
|
|
31
|
+
spellCheck={true}
|
|
32
|
+
onChange={handleChange}
|
|
33
|
+
onFocus={handleFocus}
|
|
34
|
+
onBlur={handleBlur}
|
|
35
|
+
onKeyDown={handleKeyDown}
|
|
36
|
+
onKeyUp={handleKeyUp}
|
|
37
|
+
onKeyPress={handleKeyPress}
|
|
38
|
+
"aria-invalid"={value}
|
|
39
|
+
"aria-describedby"="value"
|
|
40
|
+
"aria-labelledby"="value"
|
|
41
|
+
"aria-label"="value"
|
|
42
|
+
tabIndex={0}
|
|
43
|
+
style={value}
|
|
44
|
+
/>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Component Props
|
|
48
|
+
|
|
49
|
+
### className
|
|
50
|
+
- **Type**: `string`
|
|
51
|
+
- **Required**: No
|
|
52
|
+
- **Description**: No description available
|
|
53
|
+
|
|
54
|
+
### placeholder
|
|
55
|
+
- **Type**: `string`
|
|
56
|
+
- **Required**: No
|
|
57
|
+
- **Description**: No description available
|
|
58
|
+
|
|
59
|
+
### disabled
|
|
60
|
+
- **Type**: `boolean`
|
|
61
|
+
- **Required**: No
|
|
62
|
+
- **Description**: No description available
|
|
63
|
+
|
|
64
|
+
### readOnly
|
|
65
|
+
- **Type**: `boolean`
|
|
66
|
+
- **Required**: No
|
|
67
|
+
- **Description**: No description available
|
|
68
|
+
|
|
69
|
+
### rows
|
|
70
|
+
- **Type**: `number`
|
|
71
|
+
- **Required**: No
|
|
72
|
+
- **Description**: No description available
|
|
73
|
+
|
|
74
|
+
### cols
|
|
75
|
+
- **Type**: `number`
|
|
76
|
+
- **Required**: No
|
|
77
|
+
- **Description**: No description available
|
|
78
|
+
|
|
79
|
+
### maxLength
|
|
80
|
+
- **Type**: `number`
|
|
81
|
+
- **Required**: No
|
|
82
|
+
- **Description**: No description available
|
|
83
|
+
|
|
84
|
+
### minLength
|
|
85
|
+
- **Type**: `number`
|
|
86
|
+
- **Required**: No
|
|
87
|
+
- **Description**: No description available
|
|
88
|
+
|
|
89
|
+
### required
|
|
90
|
+
- **Type**: `boolean`
|
|
91
|
+
- **Required**: No
|
|
92
|
+
- **Description**: No description available
|
|
93
|
+
|
|
94
|
+
### form
|
|
95
|
+
- **Type**: `string`
|
|
96
|
+
- **Required**: No
|
|
97
|
+
- **Description**: No description available
|
|
98
|
+
|
|
99
|
+
### name
|
|
100
|
+
- **Type**: `string`
|
|
101
|
+
- **Required**: No
|
|
102
|
+
- **Description**: No description available
|
|
103
|
+
|
|
104
|
+
### id
|
|
105
|
+
- **Type**: `string`
|
|
106
|
+
- **Required**: No
|
|
107
|
+
- **Description**: No description available
|
|
108
|
+
|
|
109
|
+
### value
|
|
110
|
+
- **Type**: `string`
|
|
111
|
+
- **Required**: No
|
|
112
|
+
- **Description**: No description available
|
|
113
|
+
|
|
114
|
+
### defaultValue
|
|
115
|
+
- **Type**: `string`
|
|
116
|
+
- **Required**: No
|
|
117
|
+
- **Description**: No description available
|
|
118
|
+
|
|
119
|
+
### wrap
|
|
120
|
+
- **Type**: `"soft" | "hard" | "off"`
|
|
121
|
+
- **Required**: No
|
|
122
|
+
- **Description**: No description available
|
|
123
|
+
|
|
124
|
+
### autoFocus
|
|
125
|
+
- **Type**: `boolean`
|
|
126
|
+
- **Required**: No
|
|
127
|
+
- **Description**: No description available
|
|
128
|
+
|
|
129
|
+
### autoComplete
|
|
130
|
+
- **Type**: `string`
|
|
131
|
+
- **Required**: No
|
|
132
|
+
- **Description**: No description available
|
|
133
|
+
|
|
134
|
+
### autoCapitalize
|
|
135
|
+
- **Type**: `"none" | "sentences" | "words" | "characters"`
|
|
136
|
+
- **Required**: No
|
|
137
|
+
- **Description**: No description available
|
|
138
|
+
|
|
139
|
+
### spellCheck
|
|
140
|
+
- **Type**: `boolean`
|
|
141
|
+
- **Required**: No
|
|
142
|
+
- **Description**: No description available
|
|
143
|
+
|
|
144
|
+
### onChange
|
|
145
|
+
- **Type**: `(event: React.ChangeEvent<HTMLTextAreaElement>) => void`
|
|
146
|
+
- **Required**: No
|
|
147
|
+
- **Description**: No description available
|
|
148
|
+
|
|
149
|
+
### onFocus
|
|
150
|
+
- **Type**: `(event: React.FocusEvent<HTMLTextAreaElement>) => void`
|
|
151
|
+
- **Required**: No
|
|
152
|
+
- **Description**: No description available
|
|
153
|
+
|
|
154
|
+
### onBlur
|
|
155
|
+
- **Type**: `(event: React.FocusEvent<HTMLTextAreaElement>) => void`
|
|
156
|
+
- **Required**: No
|
|
157
|
+
- **Description**: No description available
|
|
158
|
+
|
|
159
|
+
### onKeyDown
|
|
160
|
+
- **Type**: `(event: React.KeyboardEvent<HTMLTextAreaElement>) => void`
|
|
161
|
+
- **Required**: No
|
|
162
|
+
- **Description**: No description available
|
|
163
|
+
|
|
164
|
+
### onKeyUp
|
|
165
|
+
- **Type**: `(event: React.KeyboardEvent<HTMLTextAreaElement>) => void`
|
|
166
|
+
- **Required**: No
|
|
167
|
+
- **Description**: No description available
|
|
168
|
+
|
|
169
|
+
### onKeyPress
|
|
170
|
+
- **Type**: `(event: React.KeyboardEvent<HTMLTextAreaElement>) => void`
|
|
171
|
+
- **Required**: No
|
|
172
|
+
- **Description**: No description available
|
|
173
|
+
|
|
174
|
+
### "aria-invalid"
|
|
175
|
+
- **Type**: `boolean | "false" | "true" | "grammar" | "spelling"`
|
|
176
|
+
- **Required**: No
|
|
177
|
+
- **Description**: No description available
|
|
178
|
+
|
|
179
|
+
### "aria-describedby"
|
|
180
|
+
- **Type**: `string`
|
|
181
|
+
- **Required**: No
|
|
182
|
+
- **Description**: No description available
|
|
183
|
+
|
|
184
|
+
### "aria-labelledby"
|
|
185
|
+
- **Type**: `string`
|
|
186
|
+
- **Required**: No
|
|
187
|
+
- **Description**: No description available
|
|
188
|
+
|
|
189
|
+
### "aria-label"
|
|
190
|
+
- **Type**: `string`
|
|
191
|
+
- **Required**: No
|
|
192
|
+
- **Description**: No description available
|
|
193
|
+
|
|
194
|
+
### tabIndex
|
|
195
|
+
- **Type**: `number`
|
|
196
|
+
- **Required**: No
|
|
197
|
+
- **Description**: No description available
|
|
198
|
+
|
|
199
|
+
### style
|
|
200
|
+
- **Type**: `React.CSSProperties & {
|
|
201
|
+
resize?: "none" | "both" | "horizontal" | "vertical";
|
|
202
|
+
}`
|
|
203
|
+
- **Required**: No
|
|
204
|
+
- **Description**: No description available
|
|
205
|
+
|
|
206
|
+
## Examples
|
|
207
|
+
|
|
208
|
+
### Example 1
|
|
209
|
+
```tsx
|
|
210
|
+
// Basic usage
|
|
211
|
+
<Textarea placeholder="Type your message here..." />
|
|
212
|
+
```
|
|
213
|
+
### Example 2
|
|
214
|
+
```tsx
|
|
215
|
+
// With label and validation
|
|
216
|
+
<div className="space-y-2">
|
|
217
|
+
<Label htmlFor="description">Description</Label>
|
|
218
|
+
<Textarea
|
|
219
|
+
id="description"
|
|
220
|
+
placeholder="Enter a description..."
|
|
221
|
+
rows={4}
|
|
222
|
+
required
|
|
223
|
+
/>
|
|
224
|
+
</div>
|
|
225
|
+
```
|
|
226
|
+
### Example 3
|
|
227
|
+
```tsx
|
|
228
|
+
// Controlled with character limit and validation
|
|
229
|
+
const [bio, setBio] = useState("");
|
|
230
|
+
const [error, setError] = useState("");
|
|
231
|
+
const maxLength = 160;
|
|
232
|
+
<div className="space-y-2">
|
|
233
|
+
<Label htmlFor="bio">Bio</Label>
|
|
234
|
+
<Textarea
|
|
235
|
+
id="bio"
|
|
236
|
+
value={bio}
|
|
237
|
+
onChange={(e) => {
|
|
238
|
+
setBio(e.target.value);
|
|
239
|
+
if (e.target.value.length > maxLength) {
|
|
240
|
+
setError("Bio is too long");
|
|
241
|
+
} else {
|
|
242
|
+
setError("");
|
|
243
|
+
}
|
|
244
|
+
}}
|
|
245
|
+
placeholder="Tell us about yourself..."
|
|
246
|
+
maxLength={maxLength}
|
|
247
|
+
aria-invalid={!!error}
|
|
248
|
+
aria-describedby={error ? "bio-error" : "bio-count"}
|
|
249
|
+
/>
|
|
250
|
+
<div className="flex justify-between items-center">
|
|
251
|
+
<p id="bio-count" className="text-sm text-muted-foreground">
|
|
252
|
+
{bio.length}/{maxLength} characters
|
|
253
|
+
</p>
|
|
254
|
+
{error && (
|
|
255
|
+
<p id="bio-error" className="text-sm text-destructive">
|
|
256
|
+
{error}
|
|
257
|
+
</p>
|
|
258
|
+
)}
|
|
259
|
+
</div>
|
|
260
|
+
</div>
|
|
261
|
+
```
|
|
262
|
+
### Example 4
|
|
263
|
+
```tsx
|
|
264
|
+
// Auto-resizing with minimum height
|
|
265
|
+
<Textarea
|
|
266
|
+
placeholder="This textarea grows with content"
|
|
267
|
+
className="min-h-[100px] max-h-[300px]"
|
|
268
|
+
style={{ resize: "vertical" }}
|
|
269
|
+
/>
|
|
270
|
+
```
|
|
271
|
+
### Example 5
|
|
272
|
+
```tsx
|
|
273
|
+
// Form integration with validation
|
|
274
|
+
<form onSubmit={handleSubmit}>
|
|
275
|
+
<div className="space-y-2">
|
|
276
|
+
<Label htmlFor="feedback">Feedback</Label>
|
|
277
|
+
<Textarea
|
|
278
|
+
id="feedback"
|
|
279
|
+
name="feedback"
|
|
280
|
+
placeholder="Share your thoughts..."
|
|
281
|
+
required
|
|
282
|
+
minLength={10}
|
|
283
|
+
maxLength={500}
|
|
284
|
+
rows={3}
|
|
285
|
+
/>
|
|
286
|
+
</div>
|
|
287
|
+
<Button type="submit">Submit Feedback</Button>
|
|
288
|
+
</form>
|
|
289
|
+
```
|
|
290
|
+
### Example 6
|
|
291
|
+
```tsx
|
|
292
|
+
// Different wrap behaviors for code/text
|
|
293
|
+
<div className="space-y-4">
|
|
294
|
+
<div>
|
|
295
|
+
<Label>Code (no wrapping)</Label>
|
|
296
|
+
<Textarea
|
|
297
|
+
wrap="off"
|
|
298
|
+
placeholder="Enter code here..."
|
|
299
|
+
className="font-mono text-sm"
|
|
300
|
+
style={{ resize: "both" }}
|
|
301
|
+
/>
|
|
302
|
+
</div>
|
|
303
|
+
<div>
|
|
304
|
+
<Label>Text (soft wrapping)</Label>
|
|
305
|
+
<Textarea
|
|
306
|
+
wrap="soft"
|
|
307
|
+
placeholder="Enter text content..."
|
|
308
|
+
/>
|
|
309
|
+
</div>
|
|
310
|
+
</div>
|
|
311
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# ThemePreference
|
|
2
|
+
|
|
3
|
+
**Type**: type
|
|
4
|
+
|
|
5
|
+
Theme preference options for the theme system Controls how the application determines the active theme: - `"system"` - Automatically follows the user's OS preference - `"light"` - Forces light theme regardless of system preference - `"dark"` - Forces dark theme regardless of system preference
|
|
6
|
+
|
|
7
|
+
## Type Definition
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
import { ThemePreference } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
type ThemePreference = "system" | "light" | "dark"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Examples
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
const { preference, setPreference } = useTheme();
|
|
19
|
+
|
|
20
|
+
// Switch to dark mode
|
|
21
|
+
setPreference("dark");
|
|
22
|
+
|
|
23
|
+
// Follow system preference
|
|
24
|
+
setPreference("system");
|
|
25
|
+
```
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# ThemeToggle
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
ThemeToggle - A zero-configuration theme switcher with system, light, and dark modes A completely self-contained theme toggle component that provides an intuitive dropdown interface for switching between system preference, light mode, and dark mode. Works immediately without any provider setup, context configuration, or additional dependencies. Built on top of shadcn/ui components (Button + DropdownMenu) with the Neynar useTheme hook for state management. Handles theme persistence via cookies, system preference detection, real-time system changes, and synchronization across multiple instances. **Zero Configuration Design:** Just import and use - no providers, no setup, no configuration required. The component handles all theme management internally and provides a complete solution out of the box. **Perfect for:** - Application headers and navigation bars - Settings panels and preference screens - Toolbars and floating action areas - Any location where users need quick theme access
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { ThemeToggle } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<ThemeToggle
|
|
13
|
+
variant={value}
|
|
14
|
+
size={value}
|
|
15
|
+
className="value"
|
|
16
|
+
showLabel={true}
|
|
17
|
+
align={value}
|
|
18
|
+
asChild={true}
|
|
19
|
+
/>
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Component Props
|
|
23
|
+
|
|
24
|
+
### variant
|
|
25
|
+
- **Type**: `| "default"
|
|
26
|
+
| "destructive"
|
|
27
|
+
| "outline"
|
|
28
|
+
| "secondary"
|
|
29
|
+
| "ghost"
|
|
30
|
+
| "link"`
|
|
31
|
+
- **Required**: No
|
|
32
|
+
- **Description**: Visual style variant inherited from Button component (default: "outline")
|
|
33
|
+
|
|
34
|
+
### size
|
|
35
|
+
- **Type**: `"default" | "sm" | "lg" | "icon"`
|
|
36
|
+
- **Required**: No
|
|
37
|
+
- **Description**: Size variant inherited from Button component (default: "icon")
|
|
38
|
+
|
|
39
|
+
### className
|
|
40
|
+
- **Type**: `string`
|
|
41
|
+
- **Required**: No
|
|
42
|
+
- **Description**: Additional CSS classes for custom styling
|
|
43
|
+
|
|
44
|
+
### showLabel
|
|
45
|
+
- **Type**: `boolean`
|
|
46
|
+
- **Required**: No
|
|
47
|
+
- **Description**: Whether to show theme name text (auto-enabled for non-icon sizes)
|
|
48
|
+
|
|
49
|
+
### align
|
|
50
|
+
- **Type**: `"start" | "center" | "end"`
|
|
51
|
+
- **Required**: No
|
|
52
|
+
- **Description**: Dropdown menu alignment relative to trigger button (default: "end")
|
|
53
|
+
|
|
54
|
+
### asChild
|
|
55
|
+
- **Type**: `boolean`
|
|
56
|
+
- **Required**: No
|
|
57
|
+
- **Description**: No description available
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Theme
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Theme - Prevents flash of unstyled content (FOUC) during theme initialization A critical component that prevents the flash of incorrect theme styling by applying the user's preferred theme before the page renders. This component should be placed once at the root of your application, ideally in the document head or at the very beginning of the body. The component works by injecting a small inline script that: 1. Reads the stored theme preference from cookies 2. Detects system theme preference if set to "system" 3. Applies the appropriate theme class and color scheme immediately 4. Executes synchronously before first paint to prevent FOUC Built as a zero-configuration component that requires no props or setup. Simply drop it into your application's root layout and it will handle theme initialization automatically.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { Theme } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<Theme
|
|
13
|
+
/>
|
|
14
|
+
```
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
# Toaster
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Toast notification container component built on Sonner A feature-rich toast component that provides beautiful, accessible notifications with seamless theme integration and extensive customization options. Built on the popular Sonner library with enhanced theming that automatically synchronizes with the application's theme system using the useTheme hook. This component serves as the central toast container and should be placed once in your application root. It manages the display, positioning, and lifecycle of all toast notifications throughout your application. **Key Features:** - **Automatic theme synchronization** - Integrates with useTheme for consistent styling - **Flexible positioning** - Six different positions with smart stacking - **Rich accessibility** - Full keyboard navigation and screen reader support - **Promise integration** - Built-in loading/success/error states for async operations - **Gesture support** - Touch-friendly swipe-to-dismiss with configurable directions - **Performance optimized** - Efficient rendering with configurable limits - **Customizable styling** - Comprehensive theming and custom icon support
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { Toaster } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<Toaster
|
|
13
|
+
invert={true}
|
|
14
|
+
theme={value}
|
|
15
|
+
position={value}
|
|
16
|
+
hotkey={[]}
|
|
17
|
+
richColors={true}
|
|
18
|
+
expand={true}
|
|
19
|
+
duration={0}
|
|
20
|
+
gap={0}
|
|
21
|
+
visibleToasts={0}
|
|
22
|
+
closeButton={true}
|
|
23
|
+
toastOptions={value}
|
|
24
|
+
className="value"
|
|
25
|
+
style={value}
|
|
26
|
+
offset={value}
|
|
27
|
+
mobileOffset={value}
|
|
28
|
+
dir={value}
|
|
29
|
+
swipeDirections={[]}
|
|
30
|
+
icons={value}
|
|
31
|
+
containerAriaLabel="value"
|
|
32
|
+
/>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Component Props
|
|
36
|
+
|
|
37
|
+
### invert
|
|
38
|
+
- **Type**: `boolean`
|
|
39
|
+
- **Required**: No
|
|
40
|
+
- **Description**: No description available
|
|
41
|
+
|
|
42
|
+
### theme
|
|
43
|
+
- **Type**: `"light" | "dark" | "system"`
|
|
44
|
+
- **Required**: No
|
|
45
|
+
- **Description**: No description available
|
|
46
|
+
|
|
47
|
+
### position
|
|
48
|
+
- **Type**: `| "top-left"
|
|
49
|
+
| "top-right"
|
|
50
|
+
| "bottom-left"
|
|
51
|
+
| "bottom-right"
|
|
52
|
+
| "top-center"
|
|
53
|
+
| "bottom-center"`
|
|
54
|
+
- **Required**: No
|
|
55
|
+
- **Description**: No description available
|
|
56
|
+
|
|
57
|
+
### hotkey
|
|
58
|
+
- **Type**: `string[]`
|
|
59
|
+
- **Required**: No
|
|
60
|
+
- **Description**: No description available
|
|
61
|
+
|
|
62
|
+
### richColors
|
|
63
|
+
- **Type**: `boolean`
|
|
64
|
+
- **Required**: No
|
|
65
|
+
- **Description**: No description available
|
|
66
|
+
|
|
67
|
+
### expand
|
|
68
|
+
- **Type**: `boolean`
|
|
69
|
+
- **Required**: No
|
|
70
|
+
- **Description**: No description available
|
|
71
|
+
|
|
72
|
+
### duration
|
|
73
|
+
- **Type**: `number`
|
|
74
|
+
- **Required**: No
|
|
75
|
+
- **Description**: No description available
|
|
76
|
+
|
|
77
|
+
### gap
|
|
78
|
+
- **Type**: `number`
|
|
79
|
+
- **Required**: No
|
|
80
|
+
- **Description**: No description available
|
|
81
|
+
|
|
82
|
+
### visibleToasts
|
|
83
|
+
- **Type**: `number`
|
|
84
|
+
- **Required**: No
|
|
85
|
+
- **Description**: No description available
|
|
86
|
+
|
|
87
|
+
### closeButton
|
|
88
|
+
- **Type**: `boolean`
|
|
89
|
+
- **Required**: No
|
|
90
|
+
- **Description**: No description available
|
|
91
|
+
|
|
92
|
+
### toastOptions
|
|
93
|
+
- **Type**: `{
|
|
94
|
+
/** Additional CSS classes for toast elements */
|
|
95
|
+
className?: string;
|
|
96
|
+
/** Show close button for individual toasts @default false */
|
|
97
|
+
closeButton?: boolean;
|
|
98
|
+
/** CSS classes for description text */
|
|
99
|
+
descriptionClassName?: string;
|
|
100
|
+
/** Inline styles for toast container */
|
|
101
|
+
style?: React.CSSProperties;
|
|
102
|
+
/** Styles for cancel button */
|
|
103
|
+
cancelButtonStyle?: React.CSSProperties;
|
|
104
|
+
/** Styles for action button */
|
|
105
|
+
actionButtonStyle?: React.CSSProperties;
|
|
106
|
+
/** Duration before auto-dismiss in milliseconds */
|
|
107
|
+
duration?: number;
|
|
108
|
+
/** Remove default styling to allow full custom styling @default false */
|
|
109
|
+
unstyled?: boolean;
|
|
110
|
+
/** CSS class overrides for specific toast elements */
|
|
111
|
+
classNames?: {
|
|
112
|
+
toast?: string;
|
|
113
|
+
title?: string;
|
|
114
|
+
description?: string;
|
|
115
|
+
loader?: string;
|
|
116
|
+
closeButton?: string;
|
|
117
|
+
cancelButton?: string;
|
|
118
|
+
actionButton?: string;
|
|
119
|
+
success?: string;
|
|
120
|
+
error?: string;
|
|
121
|
+
info?: string;
|
|
122
|
+
warning?: string;
|
|
123
|
+
loading?: string;
|
|
124
|
+
default?: string;
|
|
125
|
+
content?: string;
|
|
126
|
+
icon?: string;
|
|
127
|
+
};
|
|
128
|
+
/** Accessible label for close button */
|
|
129
|
+
closeButtonAriaLabel?: string;
|
|
130
|
+
}`
|
|
131
|
+
- **Required**: No
|
|
132
|
+
- **Description**: No description available
|
|
133
|
+
|
|
134
|
+
### className
|
|
135
|
+
- **Type**: `string`
|
|
136
|
+
- **Required**: No
|
|
137
|
+
- **Description**: No description available
|
|
138
|
+
|
|
139
|
+
### style
|
|
140
|
+
- **Type**: `React.CSSProperties`
|
|
141
|
+
- **Required**: No
|
|
142
|
+
- **Description**: No description available
|
|
143
|
+
|
|
144
|
+
### offset
|
|
145
|
+
- **Type**: `| string
|
|
146
|
+
| number
|
|
147
|
+
| {
|
|
148
|
+
top?: string | number;
|
|
149
|
+
right?: string | number;
|
|
150
|
+
bottom?: string | number;
|
|
151
|
+
left?: string | number;
|
|
152
|
+
}`
|
|
153
|
+
- **Required**: No
|
|
154
|
+
- **Description**: No description available
|
|
155
|
+
|
|
156
|
+
### mobileOffset
|
|
157
|
+
- **Type**: `| string
|
|
158
|
+
| number
|
|
159
|
+
| {
|
|
160
|
+
top?: string | number;
|
|
161
|
+
right?: string | number;
|
|
162
|
+
bottom?: string | number;
|
|
163
|
+
left?: string | number;
|
|
164
|
+
}`
|
|
165
|
+
- **Required**: No
|
|
166
|
+
- **Description**: No description available
|
|
167
|
+
|
|
168
|
+
### dir
|
|
169
|
+
- **Type**: `"rtl" | "ltr" | "auto"`
|
|
170
|
+
- **Required**: No
|
|
171
|
+
- **Description**: No description available
|
|
172
|
+
|
|
173
|
+
### swipeDirections
|
|
174
|
+
- **Type**: `("top" | "right" | "bottom" | "left")[]`
|
|
175
|
+
- **Required**: No
|
|
176
|
+
- **Description**: No description available
|
|
177
|
+
|
|
178
|
+
### icons
|
|
179
|
+
- **Type**: `{
|
|
180
|
+
success?: React.ReactNode;
|
|
181
|
+
info?: React.ReactNode;
|
|
182
|
+
warning?: React.ReactNode;
|
|
183
|
+
error?: React.ReactNode;
|
|
184
|
+
loading?: React.ReactNode;
|
|
185
|
+
close?: React.ReactNode;
|
|
186
|
+
}`
|
|
187
|
+
- **Required**: No
|
|
188
|
+
- **Description**: No description available
|
|
189
|
+
|
|
190
|
+
### containerAriaLabel
|
|
191
|
+
- **Type**: `string`
|
|
192
|
+
- **Required**: No
|
|
193
|
+
- **Description**: No description available
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# ToggleGroupItem
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Toggle Group Item - Individual selectable item within a ToggleGroup Represents a single toggleable option within a ToggleGroup component. Each item automatically inherits variant and size styling from the parent ToggleGroup context through React Context, but these can be overridden for specific styling needs. Supports flexible content including icons, text, or mixed combinations. The component participates in the parent ToggleGroup's keyboard navigation and selection behavior, with proper ARIA attributes for accessibility. Focus management and selection state are handled automatically by the Radix UI primitive.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { ToggleGroupItem } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<ToggleGroupItem
|
|
13
|
+
className="value"
|
|
14
|
+
value="value"
|
|
15
|
+
disabled={true}
|
|
16
|
+
variant={value}
|
|
17
|
+
size={value}
|
|
18
|
+
asChild={true}
|
|
19
|
+
>
|
|
20
|
+
{/* Your content here */}
|
|
21
|
+
</ToggleGroupItem>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Component Props
|
|
25
|
+
|
|
26
|
+
### className
|
|
27
|
+
- **Type**: `string`
|
|
28
|
+
- **Required**: No
|
|
29
|
+
- **Description**: No description available
|
|
30
|
+
|
|
31
|
+
### value
|
|
32
|
+
- **Type**: `string`
|
|
33
|
+
- **Required**: Yes
|
|
34
|
+
- **Description**: No description available
|
|
35
|
+
|
|
36
|
+
### disabled
|
|
37
|
+
- **Type**: `boolean`
|
|
38
|
+
- **Required**: No
|
|
39
|
+
- **Description**: No description available
|
|
40
|
+
|
|
41
|
+
### variant
|
|
42
|
+
- **Type**: `"default" | "outline"`
|
|
43
|
+
- **Required**: No
|
|
44
|
+
- **Description**: No description available
|
|
45
|
+
|
|
46
|
+
### size
|
|
47
|
+
- **Type**: `"sm" | "default" | "lg"`
|
|
48
|
+
- **Required**: No
|
|
49
|
+
- **Description**: No description available
|
|
50
|
+
|
|
51
|
+
### asChild
|
|
52
|
+
- **Type**: `boolean`
|
|
53
|
+
- **Required**: No
|
|
54
|
+
- **Description**: No description available
|
|
55
|
+
|
|
56
|
+
### children
|
|
57
|
+
- **Type**: `React.ReactNode`
|
|
58
|
+
- **Required**: No
|
|
59
|
+
- **Description**: No description available
|