@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,57 @@
|
|
|
1
|
+
# DialogOverlay
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
DialogOverlay - The backdrop overlay behind the dialog Provides a semi-transparent background that covers the main content. Clicking the overlay will close the dialog by default. Features smooth fade animations using Tailwind CSS and proper z-index stacking.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { DialogOverlay } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<DialogOverlay
|
|
13
|
+
asChild={true}
|
|
14
|
+
forceMount={true}
|
|
15
|
+
className="value"
|
|
16
|
+
>
|
|
17
|
+
{/* Your content here */}
|
|
18
|
+
</DialogOverlay>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Component Props
|
|
22
|
+
|
|
23
|
+
### asChild
|
|
24
|
+
- **Type**: `boolean`
|
|
25
|
+
- **Required**: No
|
|
26
|
+
- **Description**: No description available
|
|
27
|
+
|
|
28
|
+
### forceMount
|
|
29
|
+
- **Type**: `boolean`
|
|
30
|
+
- **Required**: No
|
|
31
|
+
- **Description**: No description available
|
|
32
|
+
|
|
33
|
+
### className
|
|
34
|
+
- **Type**: `string`
|
|
35
|
+
- **Required**: No
|
|
36
|
+
- **Description**: No description available
|
|
37
|
+
|
|
38
|
+
### children
|
|
39
|
+
- **Type**: `React.ReactNode`
|
|
40
|
+
- **Required**: No
|
|
41
|
+
- **Description**: No description available
|
|
42
|
+
|
|
43
|
+
## Examples
|
|
44
|
+
|
|
45
|
+
### Example 1
|
|
46
|
+
```tsx
|
|
47
|
+
// Custom overlay styling
|
|
48
|
+
<DialogOverlay className="bg-red-500/20 backdrop-blur-sm" />
|
|
49
|
+
```
|
|
50
|
+
### Example 2
|
|
51
|
+
```tsx
|
|
52
|
+
// Typically used automatically within DialogContent
|
|
53
|
+
<DialogContent>
|
|
54
|
+
// DialogOverlay is included automatically
|
|
55
|
+
<DialogTitle>Dialog content</DialogTitle>
|
|
56
|
+
</DialogContent>
|
|
57
|
+
```
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# DialogPortal
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
DialogPortal - Portal container for dialog content Renders dialog content in a React portal at the end of the document body. This ensures proper stacking context and prevents z-index issues. Rarely used directly - typically included automatically by DialogContent.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { DialogPortal } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<DialogPortal
|
|
13
|
+
forceMount={true}
|
|
14
|
+
container={value}
|
|
15
|
+
>
|
|
16
|
+
{/* Your content here */}
|
|
17
|
+
</DialogPortal>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Component Props
|
|
21
|
+
|
|
22
|
+
### forceMount
|
|
23
|
+
- **Type**: `boolean`
|
|
24
|
+
- **Required**: No
|
|
25
|
+
- **Description**: No description available
|
|
26
|
+
|
|
27
|
+
### container
|
|
28
|
+
- **Type**: `HTMLElement`
|
|
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
|
+
```tsx
|
|
40
|
+
// Custom portal container
|
|
41
|
+
const [container, setContainer] = useState(null);
|
|
42
|
+
<DialogPortal container={container}>
|
|
43
|
+
<DialogOverlay />
|
|
44
|
+
<DialogContent>Portal content</DialogContent>
|
|
45
|
+
</DialogPortal>
|
|
46
|
+
<div ref={setContainer} />
|
|
47
|
+
```
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# DialogTitle
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
DialogTitle - The main heading of the dialog Provides the accessible name for the dialog. Should clearly describe the dialog's purpose or the action being performed.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { DialogTitle } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<DialogTitle
|
|
13
|
+
asChild={true}
|
|
14
|
+
className="value"
|
|
15
|
+
>
|
|
16
|
+
{/* Your content here */}
|
|
17
|
+
</DialogTitle>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Component Props
|
|
21
|
+
|
|
22
|
+
### asChild
|
|
23
|
+
- **Type**: `boolean`
|
|
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
|
+
```tsx
|
|
40
|
+
<DialogTitle>Delete Account</DialogTitle>
|
|
41
|
+
```
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# DialogTrigger
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
DialogTrigger - The element that opens the dialog when clicked Typically wraps a button or other interactive element. Use asChild prop to render as the child element instead of a button. The trigger automatically receives focus management and ARIA attributes.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { DialogTrigger } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<DialogTrigger
|
|
13
|
+
asChild={true}
|
|
14
|
+
className="value"
|
|
15
|
+
>
|
|
16
|
+
{/* Your content here */}
|
|
17
|
+
</DialogTrigger>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Component Props
|
|
21
|
+
|
|
22
|
+
### asChild
|
|
23
|
+
- **Type**: `boolean`
|
|
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
|
+
<DialogTrigger asChild>
|
|
42
|
+
<Button>Open Dialog</Button>
|
|
43
|
+
</DialogTrigger>
|
|
44
|
+
```
|
|
45
|
+
### Example 2
|
|
46
|
+
```tsx
|
|
47
|
+
// Direct button without asChild
|
|
48
|
+
<DialogTrigger className="custom-trigger-style">
|
|
49
|
+
Click to open
|
|
50
|
+
</DialogTrigger>
|
|
51
|
+
```
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Dialog
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Dialog - A modal dialog component for important content or actions A modal window overlay component built on Radix UI Dialog primitives that interrupts the user's workflow to capture their attention for important interactions. Dialogs render content in a layer above the main application with proper focus management and accessibility. Use dialogs for critical interactions, confirmations, forms, or detailed information that requires user focus and prevents interaction with the background content.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { Dialog } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<Dialog
|
|
13
|
+
open={true}
|
|
14
|
+
defaultOpen={true}
|
|
15
|
+
onOpenChange={handleOpenChange}
|
|
16
|
+
modal={true}
|
|
17
|
+
>
|
|
18
|
+
{/* Your content here */}
|
|
19
|
+
</Dialog>
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Component Props
|
|
23
|
+
|
|
24
|
+
### open
|
|
25
|
+
- **Type**: `boolean`
|
|
26
|
+
- **Required**: No
|
|
27
|
+
- **Description**: No description available
|
|
28
|
+
|
|
29
|
+
### defaultOpen
|
|
30
|
+
- **Type**: `boolean`
|
|
31
|
+
- **Required**: No
|
|
32
|
+
- **Description**: No description available
|
|
33
|
+
|
|
34
|
+
### onOpenChange
|
|
35
|
+
- **Type**: `(open: boolean) => void`
|
|
36
|
+
- **Required**: No
|
|
37
|
+
- **Description**: No description available
|
|
38
|
+
|
|
39
|
+
### modal
|
|
40
|
+
- **Type**: `boolean`
|
|
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 confirmation dialog
|
|
54
|
+
<Dialog>
|
|
55
|
+
<DialogTrigger asChild>
|
|
56
|
+
<Button>Open Dialog</Button>
|
|
57
|
+
</DialogTrigger>
|
|
58
|
+
<DialogContent>
|
|
59
|
+
<DialogHeader>
|
|
60
|
+
<DialogTitle>Are you sure?</DialogTitle>
|
|
61
|
+
<DialogDescription>
|
|
62
|
+
This action cannot be undone.
|
|
63
|
+
</DialogDescription>
|
|
64
|
+
</DialogHeader>
|
|
65
|
+
<DialogFooter>
|
|
66
|
+
<Button variant="outline">Cancel</Button>
|
|
67
|
+
<Button>Continue</Button>
|
|
68
|
+
</DialogFooter>
|
|
69
|
+
</DialogContent>
|
|
70
|
+
</Dialog>
|
|
71
|
+
```
|
|
72
|
+
### Example 2
|
|
73
|
+
```tsx
|
|
74
|
+
// Controlled dialog with form handling
|
|
75
|
+
const [open, setOpen] = useState(false);
|
|
76
|
+
<Dialog open={open} onOpenChange={setOpen}>
|
|
77
|
+
<DialogTrigger asChild>
|
|
78
|
+
<Button>Edit Profile</Button>
|
|
79
|
+
</DialogTrigger>
|
|
80
|
+
<DialogContent className="sm:max-w-[425px]">
|
|
81
|
+
<DialogHeader>
|
|
82
|
+
<DialogTitle>Edit profile</DialogTitle>
|
|
83
|
+
<DialogDescription>
|
|
84
|
+
Make changes to your profile here. Click save when you're done.
|
|
85
|
+
</DialogDescription>
|
|
86
|
+
</DialogHeader>
|
|
87
|
+
<form onSubmit={handleSubmit}>
|
|
88
|
+
<div className="grid gap-4 py-4">
|
|
89
|
+
<Input label="Name" defaultValue="John Doe" />
|
|
90
|
+
<Input label="Username" defaultValue="
|
|
91
|
+
### Example 3
|
|
92
|
+
```tsx
|
|
93
|
+
// Custom close behavior
|
|
94
|
+
<Dialog>
|
|
95
|
+
<DialogTrigger asChild>
|
|
96
|
+
<Button>Share Link</Button>
|
|
97
|
+
</DialogTrigger>
|
|
98
|
+
<DialogContent showCloseButton={false}>
|
|
99
|
+
<DialogHeader>
|
|
100
|
+
<DialogTitle>Share this link</DialogTitle>
|
|
101
|
+
</DialogHeader>
|
|
102
|
+
<div className="flex items-center space-x-2">
|
|
103
|
+
<Input value="https://example.com" readOnly />
|
|
104
|
+
<Button size="sm"><Copy className="h-4 w-4" /></Button>
|
|
105
|
+
</div>
|
|
106
|
+
<DialogFooter>
|
|
107
|
+
<DialogClose asChild>
|
|
108
|
+
<Button variant="secondary">Done</Button>
|
|
109
|
+
</DialogClose>
|
|
110
|
+
</DialogFooter>
|
|
111
|
+
</DialogContent>
|
|
112
|
+
</Dialog>
|
|
113
|
+
```
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# DrawerClose
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
DrawerClose - Interactive element that closes the drawer Trigger element that closes the drawer when activated. Can be placed anywhere within the drawer content. By default renders as a button but can be composed with other elements using asChild. Multiple close triggers can exist within a single drawer.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { DrawerClose } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<DrawerClose
|
|
13
|
+
asChild={true}
|
|
14
|
+
>
|
|
15
|
+
{/* Your content here */}
|
|
16
|
+
</DrawerClose>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Component Props
|
|
20
|
+
|
|
21
|
+
### asChild
|
|
22
|
+
- **Type**: `boolean`
|
|
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
|
+
// Default close button
|
|
36
|
+
<DrawerClose>Close</DrawerClose>
|
|
37
|
+
```
|
|
38
|
+
### Example 2
|
|
39
|
+
```tsx
|
|
40
|
+
// Composed with custom button
|
|
41
|
+
<DrawerClose asChild>
|
|
42
|
+
<Button variant="ghost">Cancel</Button>
|
|
43
|
+
</DrawerClose>
|
|
44
|
+
```
|
|
45
|
+
### Example 3
|
|
46
|
+
```tsx
|
|
47
|
+
// Icon-only close button
|
|
48
|
+
<DrawerClose asChild>
|
|
49
|
+
<Button size="icon" variant="ghost">
|
|
50
|
+
<X className="h-4 w-4" />
|
|
51
|
+
</Button>
|
|
52
|
+
</DrawerClose>
|
|
53
|
+
```
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# DrawerContent
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
DrawerContent - Main container for drawer content with responsive positioning The primary content container that holds all drawer elements. Automatically handles portal rendering, overlay display, and responsive positioning based on the drawer direction. Includes a drag handle for bottom drawers and responsive styling for all four directions. Supports flexible layouts with proper spacing for headers, content areas, and footers. Automatically constrains height/width based on direction and viewport size.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { DrawerContent } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<DrawerContent
|
|
13
|
+
className="value"
|
|
14
|
+
>
|
|
15
|
+
{/* Your content here */}
|
|
16
|
+
</DrawerContent>
|
|
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 content structure
|
|
36
|
+
<DrawerContent>
|
|
37
|
+
<DrawerHeader>
|
|
38
|
+
<DrawerTitle>Title</DrawerTitle>
|
|
39
|
+
<DrawerDescription>Description</DrawerDescription>
|
|
40
|
+
</DrawerHeader>
|
|
41
|
+
<div className="p-4">
|
|
42
|
+
Main content area
|
|
43
|
+
</div>
|
|
44
|
+
<DrawerFooter>
|
|
45
|
+
<Button>Action</Button>
|
|
46
|
+
</DrawerFooter>
|
|
47
|
+
</DrawerContent>
|
|
48
|
+
```
|
|
49
|
+
### Example 2
|
|
50
|
+
```tsx
|
|
51
|
+
// Custom styled content
|
|
52
|
+
<DrawerContent className="max-w-md mx-auto">
|
|
53
|
+
<div className="flex-1 overflow-y-auto p-6">
|
|
54
|
+
<h2>Custom Layout</h2>
|
|
55
|
+
<p>Scrollable content area</p>
|
|
56
|
+
</div>
|
|
57
|
+
</DrawerContent>
|
|
58
|
+
```
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# DrawerDescription
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
DrawerDescription - Optional description providing additional context Supplementary text element that provides additional information about the drawer's content, purpose, or instructions. Enhances accessibility by giving users more context about what they'll find in the drawer. Styled with muted colors and smaller text to maintain visual hierarchy.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { DrawerDescription } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<DrawerDescription
|
|
13
|
+
className="value"
|
|
14
|
+
>
|
|
15
|
+
{/* Your content here */}
|
|
16
|
+
</DrawerDescription>
|
|
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 description
|
|
36
|
+
<DrawerDescription>
|
|
37
|
+
Manage your account preferences and privacy settings
|
|
38
|
+
</DrawerDescription>
|
|
39
|
+
```
|
|
40
|
+
### Example 2
|
|
41
|
+
```tsx
|
|
42
|
+
// Description with instructions
|
|
43
|
+
<DrawerDescription>
|
|
44
|
+
Select the options below to customize your experience.
|
|
45
|
+
Changes will be saved automatically.
|
|
46
|
+
</DrawerDescription>
|
|
47
|
+
```
|
|
48
|
+
### Example 3
|
|
49
|
+
```tsx
|
|
50
|
+
// Custom styled description
|
|
51
|
+
<DrawerDescription className="text-xs text-orange-600">
|
|
52
|
+
Warning: These changes cannot be undone
|
|
53
|
+
</DrawerDescription>
|
|
54
|
+
```
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# DrawerFooter
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
DrawerFooter - Footer section for action buttons and controls Standardized footer area positioned at the bottom of the drawer with automatic top margin to push content down. Typically contains primary actions, secondary actions, and DrawerClose triggers. Uses flexbox column layout with consistent spacing between elements.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { DrawerFooter } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<DrawerFooter
|
|
13
|
+
className="value"
|
|
14
|
+
>
|
|
15
|
+
{/* Your content here */}
|
|
16
|
+
</DrawerFooter>
|
|
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
|
+
// Standard footer with primary and secondary actions
|
|
36
|
+
<DrawerFooter>
|
|
37
|
+
<Button>Save Changes</Button>
|
|
38
|
+
<DrawerClose asChild>
|
|
39
|
+
<Button variant="outline">Cancel</Button>
|
|
40
|
+
</DrawerClose>
|
|
41
|
+
</DrawerFooter>
|
|
42
|
+
```
|
|
43
|
+
### Example 2
|
|
44
|
+
```tsx
|
|
45
|
+
// Footer with multiple action groups
|
|
46
|
+
<DrawerFooter>
|
|
47
|
+
<div className="flex gap-2">
|
|
48
|
+
<Button className="flex-1">Save</Button>
|
|
49
|
+
<Button variant="outline" className="flex-1">Save as Draft</Button>
|
|
50
|
+
</div>
|
|
51
|
+
<DrawerClose asChild>
|
|
52
|
+
<Button variant="ghost" size="sm">Cancel</Button>
|
|
53
|
+
</DrawerClose>
|
|
54
|
+
</DrawerFooter>
|
|
55
|
+
```
|
|
56
|
+
### Example 3
|
|
57
|
+
```tsx
|
|
58
|
+
// Footer with text and actions
|
|
59
|
+
<DrawerFooter>
|
|
60
|
+
<p className="text-sm text-muted-foreground text-center">
|
|
61
|
+
Changes will be saved automatically
|
|
62
|
+
</p>
|
|
63
|
+
<DrawerClose asChild>
|
|
64
|
+
<Button>Done</Button>
|
|
65
|
+
</DrawerClose>
|
|
66
|
+
</DrawerFooter>
|
|
67
|
+
```
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# DrawerHeader
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
DrawerHeader - Header section containing title and description Standardized header area for drawer content with proper spacing and responsive text alignment. Centers text for bottom/top drawers on mobile and left-aligns on larger screens. Should contain DrawerTitle and optionally DrawerDescription for accessibility compliance.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { DrawerHeader } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<DrawerHeader
|
|
13
|
+
className="value"
|
|
14
|
+
>
|
|
15
|
+
{/* Your content here */}
|
|
16
|
+
</DrawerHeader>
|
|
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
|
+
// Standard header with title and description
|
|
36
|
+
<DrawerHeader>
|
|
37
|
+
<DrawerTitle>Settings</DrawerTitle>
|
|
38
|
+
<DrawerDescription>
|
|
39
|
+
Manage your account preferences and settings
|
|
40
|
+
</DrawerDescription>
|
|
41
|
+
</DrawerHeader>
|
|
42
|
+
```
|
|
43
|
+
### Example 2
|
|
44
|
+
```tsx
|
|
45
|
+
// Title-only header
|
|
46
|
+
<DrawerHeader>
|
|
47
|
+
<DrawerTitle>Notifications</DrawerTitle>
|
|
48
|
+
</DrawerHeader>
|
|
49
|
+
```
|
|
50
|
+
### Example 3
|
|
51
|
+
```tsx
|
|
52
|
+
// Custom header with additional content
|
|
53
|
+
<DrawerHeader className="border-b">
|
|
54
|
+
<DrawerTitle>Profile</DrawerTitle>
|
|
55
|
+
<DrawerDescription>Update your profile information</DrawerDescription>
|
|
56
|
+
<div className="mt-2">
|
|
57
|
+
<Badge variant="outline">Pro User</Badge>
|
|
58
|
+
</div>
|
|
59
|
+
</DrawerHeader>
|
|
60
|
+
```
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# DrawerOverlay
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
DrawerOverlay - Semi-transparent backdrop behind the drawer Creates a semi-transparent overlay that covers the entire viewport behind the drawer content. Provides visual separation and can be clicked to close the drawer (when dismissible is true). Automatically fades in/out with smooth animations.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { DrawerOverlay } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<DrawerOverlay
|
|
13
|
+
className="value"
|
|
14
|
+
/>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Component Props
|
|
18
|
+
|
|
19
|
+
### className
|
|
20
|
+
- **Type**: `string`
|
|
21
|
+
- **Required**: No
|
|
22
|
+
- **Description**: No description available
|
|
23
|
+
|
|
24
|
+
## Examples
|
|
25
|
+
|
|
26
|
+
### Example 1
|
|
27
|
+
```tsx
|
|
28
|
+
// Default overlay with standard opacity
|
|
29
|
+
<DrawerOverlay />
|
|
30
|
+
```
|
|
31
|
+
### Example 2
|
|
32
|
+
```tsx
|
|
33
|
+
// Custom overlay with different opacity
|
|
34
|
+
<DrawerOverlay className="bg-black/30" />
|
|
35
|
+
```
|
|
36
|
+
### Example 3
|
|
37
|
+
```tsx
|
|
38
|
+
// Overlay with blur effect
|
|
39
|
+
<DrawerOverlay className="bg-black/20 backdrop-blur-sm" />
|
|
40
|
+
```
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# DrawerPortal
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
DrawerPortal - Portal component for rendering drawer outside DOM hierarchy Renders the drawer content into a different part of the DOM tree, typically document.body, to ensure proper stacking context and avoid z-index issues. Automatically used by DrawerContent but can be used manually for custom layouts.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { DrawerPortal } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<DrawerPortal
|
|
13
|
+
container={value}
|
|
14
|
+
>
|
|
15
|
+
{/* Your content here */}
|
|
16
|
+
</DrawerPortal>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Component Props
|
|
20
|
+
|
|
21
|
+
### container
|
|
22
|
+
- **Type**: `HTMLElement`
|
|
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
|
+
```tsx
|
|
34
|
+
// Custom portal container
|
|
35
|
+
const portalContainer = document.getElementById('drawer-root')
|
|
36
|
+
<DrawerPortal container={portalContainer}>
|
|
37
|
+
<DrawerOverlay />
|
|
38
|
+
<DrawerContent>
|
|
39
|
+
Drawer content
|
|
40
|
+
</DrawerContent>
|
|
41
|
+
</DrawerPortal>
|
|
42
|
+
```
|