@neynar/ui 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.llm/a.llm.md +131 -0
- package/.llm/accordion-content.llm.md +67 -0
- package/.llm/accordion-item.llm.md +61 -0
- package/.llm/accordion-trigger.llm.md +69 -0
- package/.llm/accordion.llm.md +88 -0
- package/.llm/alert-description.llm.md +78 -0
- package/.llm/alert-dialog-action.llm.md +51 -0
- package/.llm/alert-dialog-cancel.llm.md +48 -0
- package/.llm/alert-dialog-content.llm.md +88 -0
- package/.llm/alert-dialog-description.llm.md +53 -0
- package/.llm/alert-dialog-footer.llm.md +41 -0
- package/.llm/alert-dialog-header.llm.md +39 -0
- package/.llm/alert-dialog-overlay.llm.md +44 -0
- package/.llm/alert-dialog-portal.llm.md +41 -0
- package/.llm/alert-dialog-title.llm.md +46 -0
- package/.llm/alert-dialog-trigger.llm.md +40 -0
- package/.llm/alert-dialog.llm.md +80 -0
- package/.llm/alert-title.llm.md +48 -0
- package/.llm/alert.llm.md +92 -0
- package/.llm/aspect-ratio.llm.md +41 -0
- package/.llm/avatar-fallback.llm.md +41 -0
- package/.llm/avatar-image.llm.md +48 -0
- package/.llm/avatar.llm.md +35 -0
- package/.llm/badge.llm.md +117 -0
- package/.llm/blockquote.llm.md +117 -0
- package/.llm/breadcrumb-ellipsis.llm.md +73 -0
- package/.llm/breadcrumb-item.llm.md +53 -0
- package/.llm/breadcrumb-link.llm.md +84 -0
- package/.llm/breadcrumb-list.llm.md +54 -0
- package/.llm/breadcrumb-page.llm.md +52 -0
- package/.llm/breadcrumb-separator.llm.md +60 -0
- package/.llm/breadcrumb.llm.md +110 -0
- package/.llm/button-group-separator.llm.md +53 -0
- package/.llm/button-group-text.llm.md +56 -0
- package/.llm/button-group.llm.md +81 -0
- package/.llm/button.llm.md +281 -0
- package/.llm/calendar-day-button.llm.md +57 -0
- package/.llm/calendar.llm.md +340 -0
- package/.llm/card-action.llm.md +64 -0
- package/.llm/card-content.llm.md +48 -0
- package/.llm/card-description.llm.md +46 -0
- package/.llm/card-footer.llm.md +56 -0
- package/.llm/card-header.llm.md +53 -0
- package/.llm/card-title.llm.md +43 -0
- package/.llm/card.llm.md +100 -0
- package/.llm/carousel-content.llm.md +77 -0
- package/.llm/carousel-item.llm.md +96 -0
- package/.llm/carousel-next.llm.md +95 -0
- package/.llm/carousel-previous.llm.md +95 -0
- package/.llm/carousel.llm.md +211 -0
- package/.llm/chart-config.llm.md +71 -0
- package/.llm/chart-container.llm.md +148 -0
- package/.llm/chart-legend-content.llm.md +85 -0
- package/.llm/chart-legend.llm.md +144 -0
- package/.llm/chart-style.llm.md +28 -0
- package/.llm/chart-tooltip-content.llm.md +149 -0
- package/.llm/chart-tooltip.llm.md +184 -0
- package/.llm/checkbox.llm.md +100 -0
- package/.llm/cn.llm.md +46 -0
- package/.llm/code.llm.md +103 -0
- package/.llm/collapsible-content.llm.md +109 -0
- package/.llm/collapsible-trigger.llm.md +75 -0
- package/.llm/collapsible.llm.md +109 -0
- package/.llm/combobox-option.llm.md +53 -0
- package/.llm/combobox.llm.md +208 -0
- package/.llm/command-dialog.llm.md +112 -0
- package/.llm/command-empty.llm.md +63 -0
- package/.llm/command-group.llm.md +83 -0
- package/.llm/command-input.llm.md +82 -0
- package/.llm/command-item.llm.md +97 -0
- package/.llm/command-list.llm.md +53 -0
- package/.llm/command-loading.llm.md +48 -0
- package/.llm/command-separator.llm.md +44 -0
- package/.llm/command-shortcut.llm.md +63 -0
- package/.llm/command.llm.md +147 -0
- package/.llm/container.llm.md +236 -0
- package/.llm/context-menu-checkbox-item.llm.md +97 -0
- package/.llm/context-menu-content.llm.md +91 -0
- package/.llm/context-menu-group.llm.md +61 -0
- package/.llm/context-menu-item.llm.md +94 -0
- package/.llm/context-menu-label.llm.md +60 -0
- package/.llm/context-menu-portal.llm.md +49 -0
- package/.llm/context-menu-radio-group.llm.md +66 -0
- package/.llm/context-menu-radio-item.llm.md +76 -0
- package/.llm/context-menu-separator.llm.md +51 -0
- package/.llm/context-menu-shortcut.llm.md +57 -0
- package/.llm/context-menu-sub-content.llm.md +90 -0
- package/.llm/context-menu-sub-trigger.llm.md +73 -0
- package/.llm/context-menu-sub.llm.md +61 -0
- package/.llm/context-menu-trigger.llm.md +53 -0
- package/.llm/context-menu.llm.md +103 -0
- package/.llm/date-picker.llm.md +90 -0
- package/.llm/dialog-close.llm.md +61 -0
- package/.llm/dialog-content.llm.md +128 -0
- package/.llm/dialog-description.llm.md +44 -0
- package/.llm/dialog-footer.llm.md +38 -0
- package/.llm/dialog-header.llm.md +40 -0
- package/.llm/dialog-overlay.llm.md +57 -0
- package/.llm/dialog-portal.llm.md +47 -0
- package/.llm/dialog-title.llm.md +41 -0
- package/.llm/dialog-trigger.llm.md +51 -0
- package/.llm/dialog.llm.md +113 -0
- package/.llm/drawer-close.llm.md +53 -0
- package/.llm/drawer-content.llm.md +58 -0
- package/.llm/drawer-description.llm.md +54 -0
- package/.llm/drawer-footer.llm.md +67 -0
- package/.llm/drawer-header.llm.md +60 -0
- package/.llm/drawer-overlay.llm.md +40 -0
- package/.llm/drawer-portal.llm.md +42 -0
- package/.llm/drawer-title.llm.md +51 -0
- package/.llm/drawer-trigger.llm.md +44 -0
- package/.llm/drawer.llm.md +194 -0
- package/.llm/dropdown-menu-checkbox-item.llm.md +111 -0
- package/.llm/dropdown-menu-content.llm.md +109 -0
- package/.llm/dropdown-menu-group.llm.md +38 -0
- package/.llm/dropdown-menu-item.llm.md +94 -0
- package/.llm/dropdown-menu-label.llm.md +66 -0
- package/.llm/dropdown-menu-portal.llm.md +32 -0
- package/.llm/dropdown-menu-radio-group.llm.md +73 -0
- package/.llm/dropdown-menu-radio-item.llm.md +92 -0
- package/.llm/dropdown-menu-separator.llm.md +55 -0
- package/.llm/dropdown-menu-shortcut.llm.md +74 -0
- package/.llm/dropdown-menu-sub-content.llm.md +80 -0
- package/.llm/dropdown-menu-sub-trigger.llm.md +84 -0
- package/.llm/dropdown-menu-sub.llm.md +74 -0
- package/.llm/dropdown-menu-trigger.llm.md +48 -0
- package/.llm/dropdown-menu.llm.md +120 -0
- package/.llm/empty-content.llm.md +103 -0
- package/.llm/empty-description.llm.md +70 -0
- package/.llm/empty-header.llm.md +64 -0
- package/.llm/empty-media.llm.md +81 -0
- package/.llm/empty-state.llm.md +174 -0
- package/.llm/empty-title.llm.md +54 -0
- package/.llm/empty.llm.md +158 -0
- package/.llm/field-content.llm.md +28 -0
- package/.llm/field-description.llm.md +28 -0
- package/.llm/field-error.llm.md +41 -0
- package/.llm/field-group.llm.md +84 -0
- package/.llm/field-label.llm.md +28 -0
- package/.llm/field-legend.llm.md +77 -0
- package/.llm/field-separator.llm.md +35 -0
- package/.llm/field-set.llm.md +80 -0
- package/.llm/field-title.llm.md +28 -0
- package/.llm/field.llm.md +35 -0
- package/.llm/h1.llm.md +108 -0
- package/.llm/h2.llm.md +108 -0
- package/.llm/h3.llm.md +106 -0
- package/.llm/h4.llm.md +104 -0
- package/.llm/h5.llm.md +105 -0
- package/.llm/h6.llm.md +105 -0
- package/.llm/hover-card-content.llm.md +167 -0
- package/.llm/hover-card-trigger.llm.md +65 -0
- package/.llm/hover-card.llm.md +121 -0
- package/.llm/input-group-addon.llm.md +91 -0
- package/.llm/input-group-button.llm.md +120 -0
- package/.llm/input-group-input.llm.md +145 -0
- package/.llm/input-group-text.llm.md +75 -0
- package/.llm/input-group-textarea.llm.md +157 -0
- package/.llm/input-group.llm.md +108 -0
- package/.llm/input.llm.md +319 -0
- package/.llm/item-actions.llm.md +77 -0
- package/.llm/item-content.llm.md +73 -0
- package/.llm/item-description.llm.md +61 -0
- package/.llm/item-footer.llm.md +68 -0
- package/.llm/item-group.llm.md +73 -0
- package/.llm/item-header.llm.md +66 -0
- package/.llm/item-media.llm.md +75 -0
- package/.llm/item-separator.llm.md +80 -0
- package/.llm/item-title.llm.md +59 -0
- package/.llm/item.llm.md +115 -0
- package/.llm/kbd-group.llm.md +71 -0
- package/.llm/kbd.llm.md +71 -0
- package/.llm/label.llm.md +145 -0
- package/.llm/lead.llm.md +114 -0
- package/.llm/menubar-checkbox-item.llm.md +66 -0
- package/.llm/menubar-content.llm.md +128 -0
- package/.llm/menubar-group.llm.md +40 -0
- package/.llm/menubar-item.llm.md +62 -0
- package/.llm/menubar-label.llm.md +40 -0
- package/.llm/menubar-menu.llm.md +32 -0
- package/.llm/menubar-portal.llm.md +38 -0
- package/.llm/menubar-radio-group.llm.md +39 -0
- package/.llm/menubar-radio-item.llm.md +59 -0
- package/.llm/menubar-separator.llm.md +35 -0
- package/.llm/menubar-shortcut.llm.md +37 -0
- package/.llm/menubar-sub-content.llm.md +127 -0
- package/.llm/menubar-sub-trigger.llm.md +51 -0
- package/.llm/menubar-sub.llm.md +53 -0
- package/.llm/menubar-trigger.llm.md +37 -0
- package/.llm/menubar.llm.md +115 -0
- package/.llm/navigation-menu-content.llm.md +116 -0
- package/.llm/navigation-menu-indicator.llm.md +68 -0
- package/.llm/navigation-menu-item.llm.md +62 -0
- package/.llm/navigation-menu-link.llm.md +109 -0
- package/.llm/navigation-menu-list.llm.md +52 -0
- package/.llm/navigation-menu-trigger-style.llm.md +22 -0
- package/.llm/navigation-menu-trigger.llm.md +57 -0
- package/.llm/navigation-menu-viewport.llm.md +51 -0
- package/.llm/navigation-menu.llm.md +184 -0
- package/.llm/p.llm.md +110 -0
- package/.llm/pagination-content.llm.md +60 -0
- package/.llm/pagination-ellipsis.llm.md +107 -0
- package/.llm/pagination-item.llm.md +59 -0
- package/.llm/pagination-link.llm.md +150 -0
- package/.llm/pagination-next.llm.md +115 -0
- package/.llm/pagination-previous.llm.md +115 -0
- package/.llm/pagination.llm.md +190 -0
- package/.llm/popover-anchor.llm.md +53 -0
- package/.llm/popover-content.llm.md +109 -0
- package/.llm/popover-trigger.llm.md +54 -0
- package/.llm/popover.llm.md +116 -0
- package/.llm/progress.llm.md +76 -0
- package/.llm/radio-group-indicator.llm.md +28 -0
- package/.llm/radio-group-item.llm.md +40 -0
- package/.llm/radio-group.llm.md +76 -0
- package/.llm/resizable-handle.llm.md +156 -0
- package/.llm/resizable-panel-group.llm.md +149 -0
- package/.llm/resizable-panel.llm.md +157 -0
- package/.llm/scroll-area-corner.llm.md +41 -0
- package/.llm/scroll-area-thumb.llm.md +39 -0
- package/.llm/scroll-area-viewport.llm.md +60 -0
- package/.llm/scroll-area.llm.md +125 -0
- package/.llm/scroll-bar.llm.md +78 -0
- package/.llm/sdk-items-registry.json +3022 -0
- package/.llm/select-content.llm.md +139 -0
- package/.llm/select-group.llm.md +60 -0
- package/.llm/select-item.llm.md +75 -0
- package/.llm/select-label.llm.md +62 -0
- package/.llm/select-scroll-down-button.llm.md +45 -0
- package/.llm/select-scroll-up-button.llm.md +45 -0
- package/.llm/select-separator.llm.md +59 -0
- package/.llm/select-trigger.llm.md +66 -0
- package/.llm/select-value.llm.md +67 -0
- package/.llm/select.llm.md +159 -0
- package/.llm/separator.llm.md +129 -0
- package/.llm/sheet-close.llm.md +49 -0
- package/.llm/sheet-content.llm.md +115 -0
- package/.llm/sheet-description.llm.md +62 -0
- package/.llm/sheet-footer.llm.md +64 -0
- package/.llm/sheet-header.llm.md +52 -0
- package/.llm/sheet-title.llm.md +53 -0
- package/.llm/sheet-trigger.llm.md +46 -0
- package/.llm/sheet.llm.md +126 -0
- package/.llm/sidebar-content.llm.md +63 -0
- package/.llm/sidebar-footer.llm.md +50 -0
- package/.llm/sidebar-group-action.llm.md +60 -0
- package/.llm/sidebar-group-content.llm.md +64 -0
- package/.llm/sidebar-group-label.llm.md +53 -0
- package/.llm/sidebar-group.llm.md +56 -0
- package/.llm/sidebar-header.llm.md +67 -0
- package/.llm/sidebar-input.llm.md +50 -0
- package/.llm/sidebar-inset.llm.md +52 -0
- package/.llm/sidebar-menu-action.llm.md +84 -0
- package/.llm/sidebar-menu-badge.llm.md +60 -0
- package/.llm/sidebar-menu-button.llm.md +103 -0
- package/.llm/sidebar-menu-item.llm.md +75 -0
- package/.llm/sidebar-menu-skeleton.llm.md +76 -0
- package/.llm/sidebar-menu-sub-button.llm.md +85 -0
- package/.llm/sidebar-menu-sub-item.llm.md +54 -0
- package/.llm/sidebar-menu-sub.llm.md +74 -0
- package/.llm/sidebar-menu.llm.md +65 -0
- package/.llm/sidebar-provider.llm.md +79 -0
- package/.llm/sidebar-rail.llm.md +34 -0
- package/.llm/sidebar-separator.llm.md +57 -0
- package/.llm/sidebar-trigger.llm.md +49 -0
- package/.llm/sidebar.llm.md +129 -0
- package/.llm/skeleton.llm.md +134 -0
- package/.llm/slider.llm.md +173 -0
- package/.llm/small.llm.md +110 -0
- package/.llm/span.llm.md +118 -0
- package/.llm/spinner.llm.md +182 -0
- package/.llm/stack.llm.md +28 -0
- package/.llm/strong.llm.md +110 -0
- package/.llm/switch.llm.md +76 -0
- package/.llm/table-body.llm.md +36 -0
- package/.llm/table-caption.llm.md +48 -0
- package/.llm/table-cell.llm.md +53 -0
- package/.llm/table-footer.llm.md +41 -0
- package/.llm/table-head.llm.md +69 -0
- package/.llm/table-header.llm.md +41 -0
- package/.llm/table-row.llm.md +42 -0
- package/.llm/table.llm.md +123 -0
- package/.llm/tabs-content.llm.md +47 -0
- package/.llm/tabs-list.llm.md +41 -0
- package/.llm/tabs-trigger.llm.md +47 -0
- package/.llm/tabs.llm.md +71 -0
- package/.llm/text-field.llm.md +327 -0
- package/.llm/textarea.llm.md +311 -0
- package/.llm/theme-preference.llm.md +25 -0
- package/.llm/theme-toggle.llm.md +57 -0
- package/.llm/theme.llm.md +14 -0
- package/.llm/toast.llm.md +32 -0
- package/.llm/toaster.llm.md +193 -0
- package/.llm/toggle-group-item.llm.md +59 -0
- package/.llm/toggle-group.llm.md +101 -0
- package/.llm/toggle.llm.md +40 -0
- package/.llm/tooltip-content.llm.md +185 -0
- package/.llm/tooltip-provider.llm.md +68 -0
- package/.llm/tooltip-trigger.llm.md +70 -0
- package/.llm/tooltip.llm.md +129 -0
- package/.llm/typography.llm.md +161 -0
- package/.llm/use-carousel.llm.md +55 -0
- package/.llm/use-command-state.llm.md +32 -0
- package/.llm/use-is-mobile.llm.md +73 -0
- package/.llm/use-sidebar.llm.md +61 -0
- package/dist/components/ui/scroll-area.d.ts +5 -5
- package/dist/components/ui/scroll-area.d.ts.map +1 -1
- package/dist/components/ui/stack.d.ts.map +1 -1
- package/dist/components/ui/stories/scroll-area.stories.d.ts +1 -1
- package/dist/components/ui/theme-toggle.d.ts +0 -3
- package/dist/components/ui/theme-toggle.d.ts.map +1 -1
- package/dist/components/ui/theme.d.ts.map +1 -1
- package/dist/index.js +4972 -9636
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/components/ui/stack.tsx +3 -1
- package/src/components/ui/theme-toggle.tsx +1 -3
- package/src/components/ui/theme.tsx +6 -1
- package/src/styles/globals.css +57 -85
|
@@ -0,0 +1,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,32 @@
|
|
|
1
|
+
# toast
|
|
2
|
+
|
|
3
|
+
**Type**: function
|
|
4
|
+
|
|
5
|
+
toast function
|
|
6
|
+
|
|
7
|
+
## API Surface
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
import { toast } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
export const toast: ((message: titleT, data?: ExternalToast) => string | number) & {
|
|
13
|
+
success: (message: titleT | React.ReactNode, data?: ExternalToast) => string | number;
|
|
14
|
+
info: (message: titleT | React.ReactNode, data?: ExternalToast) => string | number;
|
|
15
|
+
warning: (message: titleT | React.ReactNode, data?: ExternalToast) => string | number;
|
|
16
|
+
error: (message: titleT | React.ReactNode, data?: ExternalToast) => string | number;
|
|
17
|
+
custom: (jsx: (id: number | string) => React.ReactElement, data?: ExternalToast) => string | number;
|
|
18
|
+
message: (message: titleT | React.ReactNode, data?: ExternalToast) => string | number;
|
|
19
|
+
promise: <ToastData>(promise: PromiseT<ToastData>, data?: PromiseData<ToastData>) => (string & {
|
|
20
|
+
unwrap: () => Promise<ToastData>;
|
|
21
|
+
}) | (number & {
|
|
22
|
+
unwrap: () => Promise<ToastData>;
|
|
23
|
+
}) | {
|
|
24
|
+
unwrap: () => Promise<ToastData>;
|
|
25
|
+
};
|
|
26
|
+
dismiss: (id?: number | string) => string | number;
|
|
27
|
+
loading: (message: titleT | React.ReactNode, data?: ExternalToast) => string | number;
|
|
28
|
+
} & {
|
|
29
|
+
getHistory: () => (ToastT | ToastToDismiss)[];
|
|
30
|
+
getToasts: () => (ToastT | ToastToDismiss)[];
|
|
31
|
+
}
|
|
32
|
+
```
|
|
@@ -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
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# ToggleGroup
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
Toggle Group - A group of toggle buttons with single or multiple selection ToggleGroup provides a way to group related toggle buttons together, allowing users to select from a set of mutually exclusive options (single selection) or independent options (multiple selection). Built on Radix UI Toggle Group primitive with enhanced styling through CVA variants and full accessibility support including keyboard navigation. The component supports both controlled and uncontrolled usage patterns, with automatic focus management and roving tabindex behavior. Visual variants are inherited by all child items but can be overridden per item if needed.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { ToggleGroup } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<ToggleGroup
|
|
13
|
+
className="value"
|
|
14
|
+
type={value}
|
|
15
|
+
variant={value}
|
|
16
|
+
size={value}
|
|
17
|
+
defaultValue={[]}
|
|
18
|
+
value={[]}
|
|
19
|
+
onValueChange={handleValueChange}
|
|
20
|
+
disabled={true}
|
|
21
|
+
rovingFocus={true}
|
|
22
|
+
orientation={value}
|
|
23
|
+
dir={value}
|
|
24
|
+
loop={true}
|
|
25
|
+
asChild={true}
|
|
26
|
+
>
|
|
27
|
+
{/* Your content here */}
|
|
28
|
+
</ToggleGroup>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Component Props
|
|
32
|
+
|
|
33
|
+
### className
|
|
34
|
+
- **Type**: `string`
|
|
35
|
+
- **Required**: No
|
|
36
|
+
- **Description**: No description available
|
|
37
|
+
|
|
38
|
+
### type
|
|
39
|
+
- **Type**: `"single" | "multiple"`
|
|
40
|
+
- **Required**: Yes
|
|
41
|
+
- **Description**: No description available
|
|
42
|
+
|
|
43
|
+
### variant
|
|
44
|
+
- **Type**: `"default" | "outline"`
|
|
45
|
+
- **Required**: No
|
|
46
|
+
- **Description**: No description available
|
|
47
|
+
|
|
48
|
+
### size
|
|
49
|
+
- **Type**: `"sm" | "default" | "lg"`
|
|
50
|
+
- **Required**: No
|
|
51
|
+
- **Description**: No description available
|
|
52
|
+
|
|
53
|
+
### defaultValue
|
|
54
|
+
- **Type**: `string | string[]`
|
|
55
|
+
- **Required**: No
|
|
56
|
+
- **Description**: No description available
|
|
57
|
+
|
|
58
|
+
### value
|
|
59
|
+
- **Type**: `string | string[]`
|
|
60
|
+
- **Required**: No
|
|
61
|
+
- **Description**: No description available
|
|
62
|
+
|
|
63
|
+
### onValueChange
|
|
64
|
+
- **Type**: `(value: string | string[]) => void`
|
|
65
|
+
- **Required**: No
|
|
66
|
+
- **Description**: No description available
|
|
67
|
+
|
|
68
|
+
### disabled
|
|
69
|
+
- **Type**: `boolean`
|
|
70
|
+
- **Required**: No
|
|
71
|
+
- **Description**: No description available
|
|
72
|
+
|
|
73
|
+
### rovingFocus
|
|
74
|
+
- **Type**: `boolean`
|
|
75
|
+
- **Required**: No
|
|
76
|
+
- **Description**: No description available
|
|
77
|
+
|
|
78
|
+
### orientation
|
|
79
|
+
- **Type**: `"horizontal" | "vertical"`
|
|
80
|
+
- **Required**: No
|
|
81
|
+
- **Description**: No description available
|
|
82
|
+
|
|
83
|
+
### dir
|
|
84
|
+
- **Type**: `"ltr" | "rtl"`
|
|
85
|
+
- **Required**: No
|
|
86
|
+
- **Description**: No description available
|
|
87
|
+
|
|
88
|
+
### loop
|
|
89
|
+
- **Type**: `boolean`
|
|
90
|
+
- **Required**: No
|
|
91
|
+
- **Description**: No description available
|
|
92
|
+
|
|
93
|
+
### asChild
|
|
94
|
+
- **Type**: `boolean`
|
|
95
|
+
- **Required**: No
|
|
96
|
+
- **Description**: No description available
|
|
97
|
+
|
|
98
|
+
### children
|
|
99
|
+
- **Type**: `React.ReactNode`
|
|
100
|
+
- **Required**: No
|
|
101
|
+
- **Description**: No description available
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Toggle
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
A two-state button that can be either on or off The Toggle component provides an accessible button with on/off state functionality. Built on Radix UI Toggle primitives with customizable variants and sizes. Perfect for text formatting controls, feature toggles, and any binary state controls. Automatically manages ARIA attributes and provides keyboard navigation.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { Toggle } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<Toggle
|
|
13
|
+
className={value}
|
|
14
|
+
variant={value}
|
|
15
|
+
size={value}
|
|
16
|
+
...props={value}
|
|
17
|
+
/>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Component Props
|
|
21
|
+
|
|
22
|
+
### className
|
|
23
|
+
- **Type**: `unknown`
|
|
24
|
+
- **Required**: Yes
|
|
25
|
+
- **Description**: No description available
|
|
26
|
+
|
|
27
|
+
### variant
|
|
28
|
+
- **Type**: `unknown`
|
|
29
|
+
- **Required**: Yes
|
|
30
|
+
- **Description**: No description available
|
|
31
|
+
|
|
32
|
+
### size
|
|
33
|
+
- **Type**: `unknown`
|
|
34
|
+
- **Required**: Yes
|
|
35
|
+
- **Description**: No description available
|
|
36
|
+
|
|
37
|
+
### ...props
|
|
38
|
+
- **Type**: `unknown`
|
|
39
|
+
- **Required**: Yes
|
|
40
|
+
- **Description**: No description available
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# TooltipContent
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
TooltipContent - The floating tooltip content container Contains the content displayed in the tooltip popup. Automatically positioned relative to the trigger element with intelligent collision detection to ensure the tooltip stays within the viewport. Includes smooth animations and an arrow pointer for visual connection to the trigger. The content component handles complex positioning logic, including collision detection, viewport boundaries, and responsive positioning. It supports rich content including text, images, and interactive elements while maintaining accessibility standards.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { TooltipContent } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<TooltipContent
|
|
13
|
+
asChild={true}
|
|
14
|
+
"aria-label"="value"
|
|
15
|
+
onEscapeKeyDown={handleEscapeKeyDown}
|
|
16
|
+
onPointerDownOutside={handlePointerDownOutside}
|
|
17
|
+
forceMount={true}
|
|
18
|
+
side={value}
|
|
19
|
+
sideOffset={0}
|
|
20
|
+
align={value}
|
|
21
|
+
alignOffset={0}
|
|
22
|
+
avoidCollisions={true}
|
|
23
|
+
collisionBoundary={[]}
|
|
24
|
+
collisionPadding={value}
|
|
25
|
+
arrowPadding={0}
|
|
26
|
+
sticky={value}
|
|
27
|
+
hideWhenDetached={true}
|
|
28
|
+
className="value"
|
|
29
|
+
>
|
|
30
|
+
{/* Your content here */}
|
|
31
|
+
</TooltipContent>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Component Props
|
|
35
|
+
|
|
36
|
+
### asChild
|
|
37
|
+
- **Type**: `boolean`
|
|
38
|
+
- **Required**: No
|
|
39
|
+
- **Description**: No description available
|
|
40
|
+
|
|
41
|
+
### "aria-label"
|
|
42
|
+
- **Type**: `string`
|
|
43
|
+
- **Required**: No
|
|
44
|
+
- **Description**: No description available
|
|
45
|
+
|
|
46
|
+
### onEscapeKeyDown
|
|
47
|
+
- **Type**: `(event: KeyboardEvent) => void`
|
|
48
|
+
- **Required**: No
|
|
49
|
+
- **Description**: No description available
|
|
50
|
+
|
|
51
|
+
### onPointerDownOutside
|
|
52
|
+
- **Type**: `(event: PointerEvent) => void`
|
|
53
|
+
- **Required**: No
|
|
54
|
+
- **Description**: No description available
|
|
55
|
+
|
|
56
|
+
### forceMount
|
|
57
|
+
- **Type**: `boolean`
|
|
58
|
+
- **Required**: No
|
|
59
|
+
- **Description**: No description available
|
|
60
|
+
|
|
61
|
+
### side
|
|
62
|
+
- **Type**: `"top" | "right" | "bottom" | "left"`
|
|
63
|
+
- **Required**: No
|
|
64
|
+
- **Description**: No description available
|
|
65
|
+
|
|
66
|
+
### sideOffset
|
|
67
|
+
- **Type**: `number`
|
|
68
|
+
- **Required**: No
|
|
69
|
+
- **Description**: No description available
|
|
70
|
+
|
|
71
|
+
### align
|
|
72
|
+
- **Type**: `"start" | "center" | "end"`
|
|
73
|
+
- **Required**: No
|
|
74
|
+
- **Description**: No description available
|
|
75
|
+
|
|
76
|
+
### alignOffset
|
|
77
|
+
- **Type**: `number`
|
|
78
|
+
- **Required**: No
|
|
79
|
+
- **Description**: No description available
|
|
80
|
+
|
|
81
|
+
### avoidCollisions
|
|
82
|
+
- **Type**: `boolean`
|
|
83
|
+
- **Required**: No
|
|
84
|
+
- **Description**: No description available
|
|
85
|
+
|
|
86
|
+
### collisionBoundary
|
|
87
|
+
- **Type**: `Element | Element[]`
|
|
88
|
+
- **Required**: No
|
|
89
|
+
- **Description**: No description available
|
|
90
|
+
|
|
91
|
+
### collisionPadding
|
|
92
|
+
- **Type**: `| number
|
|
93
|
+
| { top?: number; right?: number; bottom?: number; left?: number }`
|
|
94
|
+
- **Required**: No
|
|
95
|
+
- **Description**: No description available
|
|
96
|
+
|
|
97
|
+
### arrowPadding
|
|
98
|
+
- **Type**: `number`
|
|
99
|
+
- **Required**: No
|
|
100
|
+
- **Description**: No description available
|
|
101
|
+
|
|
102
|
+
### sticky
|
|
103
|
+
- **Type**: `"partial" | "always"`
|
|
104
|
+
- **Required**: No
|
|
105
|
+
- **Description**: No description available
|
|
106
|
+
|
|
107
|
+
### hideWhenDetached
|
|
108
|
+
- **Type**: `boolean`
|
|
109
|
+
- **Required**: No
|
|
110
|
+
- **Description**: No description available
|
|
111
|
+
|
|
112
|
+
### className
|
|
113
|
+
- **Type**: `string`
|
|
114
|
+
- **Required**: No
|
|
115
|
+
- **Description**: No description available
|
|
116
|
+
|
|
117
|
+
### children
|
|
118
|
+
- **Type**: `React.ReactNode`
|
|
119
|
+
- **Required**: No
|
|
120
|
+
- **Description**: No description available
|
|
121
|
+
|
|
122
|
+
## Examples
|
|
123
|
+
|
|
124
|
+
### Example 1
|
|
125
|
+
```tsx
|
|
126
|
+
// Simple text tooltip
|
|
127
|
+
<TooltipContent>
|
|
128
|
+
<p>This is helpful information</p>
|
|
129
|
+
</TooltipContent>
|
|
130
|
+
```
|
|
131
|
+
### Example 2
|
|
132
|
+
```tsx
|
|
133
|
+
// Positioned tooltip with custom offset
|
|
134
|
+
<TooltipContent
|
|
135
|
+
side="left"
|
|
136
|
+
sideOffset={12}
|
|
137
|
+
align="start"
|
|
138
|
+
alignOffset={-4}
|
|
139
|
+
>
|
|
140
|
+
<p>Precisely positioned tooltip</p>
|
|
141
|
+
</TooltipContent>
|
|
142
|
+
```
|
|
143
|
+
### Example 3
|
|
144
|
+
```tsx
|
|
145
|
+
// Rich content with custom styling
|
|
146
|
+
<TooltipContent className="max-w-[320px] p-4">
|
|
147
|
+
<div className="space-y-2">
|
|
148
|
+
<div className="flex items-center gap-2">
|
|
149
|
+
<InfoIcon className="h-4 w-4 text-blue-500" />
|
|
150
|
+
<p className="font-semibold">Pro Feature</p>
|
|
151
|
+
</div>
|
|
152
|
+
<p className="text-sm text-gray-600">
|
|
153
|
+
This feature is available in Pro plans. Upgrade to unlock
|
|
154
|
+
advanced functionality and premium support.
|
|
155
|
+
</p>
|
|
156
|
+
<Button size="sm" className="mt-2">Upgrade Now</Button>
|
|
157
|
+
</div>
|
|
158
|
+
</TooltipContent>
|
|
159
|
+
```
|
|
160
|
+
### Example 4
|
|
161
|
+
```tsx
|
|
162
|
+
// Tooltip with collision boundary
|
|
163
|
+
<TooltipContent
|
|
164
|
+
collisionPadding={{ top: 10, bottom: 10 }}
|
|
165
|
+
hideWhenDetached
|
|
166
|
+
sticky="always"
|
|
167
|
+
>
|
|
168
|
+
<p>Stays within safe boundaries</p>
|
|
169
|
+
</TooltipContent>
|
|
170
|
+
```
|
|
171
|
+
### Example 5
|
|
172
|
+
```tsx
|
|
173
|
+
// Controlled tooltip with escape handling
|
|
174
|
+
<TooltipContent
|
|
175
|
+
onEscapeKeyDown={(e) => {
|
|
176
|
+
console.log('Tooltip dismissed with Escape');
|
|
177
|
+
// Custom handling if needed
|
|
178
|
+
}}
|
|
179
|
+
onPointerDownOutside={(e) => {
|
|
180
|
+
console.log('Clicked outside tooltip');
|
|
181
|
+
}}
|
|
182
|
+
>
|
|
183
|
+
<p>Interactive tooltip with event handlers</p>
|
|
184
|
+
</TooltipContent>
|
|
185
|
+
```
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# TooltipProvider
|
|
2
|
+
|
|
3
|
+
**Type**: component
|
|
4
|
+
|
|
5
|
+
TooltipProvider - Global context provider for tooltip functionality Wraps your application or component tree to enable tooltip functionality. Controls global tooltip behavior such as delay duration before showing tooltips. Required for tooltip components to function properly across your app. The provider manages global settings that affect all tooltips within its tree, including timing behavior and accessibility features. Individual tooltips can override these settings as needed.
|
|
6
|
+
|
|
7
|
+
## JSX Usage
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
import { TooltipProvider } from '@neynar/ui';
|
|
11
|
+
|
|
12
|
+
<TooltipProvider
|
|
13
|
+
delayDuration={0}
|
|
14
|
+
skipDelayDuration={0}
|
|
15
|
+
disableHoverableContent={true}
|
|
16
|
+
>
|
|
17
|
+
{/* Your content here */}
|
|
18
|
+
</TooltipProvider>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Component Props
|
|
22
|
+
|
|
23
|
+
### delayDuration
|
|
24
|
+
- **Type**: `number`
|
|
25
|
+
- **Required**: No
|
|
26
|
+
- **Description**: No description available
|
|
27
|
+
|
|
28
|
+
### skipDelayDuration
|
|
29
|
+
- **Type**: `number`
|
|
30
|
+
- **Required**: No
|
|
31
|
+
- **Description**: No description available
|
|
32
|
+
|
|
33
|
+
### disableHoverableContent
|
|
34
|
+
- **Type**: `boolean`
|
|
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
|
+
// Wrap your entire app
|
|
48
|
+
<TooltipProvider>
|
|
49
|
+
<App />
|
|
50
|
+
</TooltipProvider>
|
|
51
|
+
```
|
|
52
|
+
### Example 2
|
|
53
|
+
```tsx
|
|
54
|
+
// With custom delay and skip behavior
|
|
55
|
+
<TooltipProvider
|
|
56
|
+
delayDuration={500}
|
|
57
|
+
skipDelayDuration={200}
|
|
58
|
+
>
|
|
59
|
+
<MyComponent />
|
|
60
|
+
</TooltipProvider>
|
|
61
|
+
```
|
|
62
|
+
### Example 3
|
|
63
|
+
```tsx
|
|
64
|
+
// Disable hoverable content for stricter accessibility
|
|
65
|
+
<TooltipProvider disableHoverableContent>
|
|
66
|
+
<Form />
|
|
67
|
+
</TooltipProvider>
|
|
68
|
+
```
|