@neynar/ui 0.1.1 → 0.1.3
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/dist/components/ui/accordion.d.ts +1 -25
- package/dist/components/ui/accordion.d.ts.map +1 -1
- package/dist/components/ui/alert-dialog.d.ts +240 -46
- package/dist/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/components/ui/alert.d.ts +73 -11
- package/dist/components/ui/alert.d.ts.map +1 -1
- package/dist/components/ui/aspect-ratio.d.ts +44 -10
- package/dist/components/ui/aspect-ratio.d.ts.map +1 -1
- package/dist/components/ui/avatar.d.ts +117 -33
- package/dist/components/ui/avatar.d.ts.map +1 -1
- package/dist/components/ui/badge.d.ts +50 -71
- package/dist/components/ui/badge.d.ts.map +1 -1
- package/dist/components/ui/breadcrumb.d.ts +231 -49
- package/dist/components/ui/breadcrumb.d.ts.map +1 -1
- package/dist/components/ui/button.d.ts +189 -71
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/calendar.d.ts +197 -40
- package/dist/components/ui/calendar.d.ts.map +1 -1
- package/dist/components/ui/card.d.ts +7 -22
- package/dist/components/ui/card.d.ts.map +1 -1
- package/dist/components/ui/carousel.d.ts +369 -99
- package/dist/components/ui/carousel.d.ts.map +1 -1
- package/dist/components/ui/chart.d.ts.map +1 -1
- package/dist/components/ui/checkbox.d.ts +110 -38
- package/dist/components/ui/checkbox.d.ts.map +1 -1
- package/dist/components/ui/collapsible.d.ts +246 -61
- package/dist/components/ui/collapsible.d.ts.map +1 -1
- package/dist/components/ui/combobox.d.ts +207 -159
- package/dist/components/ui/combobox.d.ts.map +1 -1
- package/dist/components/ui/command.d.ts +336 -67
- package/dist/components/ui/command.d.ts.map +1 -1
- package/dist/components/ui/container.d.ts +159 -64
- package/dist/components/ui/container.d.ts.map +1 -1
- package/dist/components/ui/context-menu.d.ts +321 -39
- package/dist/components/ui/context-menu.d.ts.map +1 -1
- package/dist/components/ui/date-picker.d.ts +113 -86
- package/dist/components/ui/date-picker.d.ts.map +1 -1
- package/dist/components/ui/dialog.d.ts +106 -25
- package/dist/components/ui/dialog.d.ts.map +1 -1
- package/dist/components/ui/drawer.d.ts +388 -59
- package/dist/components/ui/drawer.d.ts.map +1 -1
- package/dist/components/ui/dropdown-menu.d.ts +521 -74
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/components/ui/empty-state.d.ts +148 -76
- package/dist/components/ui/empty-state.d.ts.map +1 -1
- package/dist/components/ui/hover-card.d.ts +253 -34
- package/dist/components/ui/hover-card.d.ts.map +1 -1
- package/dist/components/ui/input.d.ts +143 -44
- package/dist/components/ui/input.d.ts.map +1 -1
- package/dist/components/ui/label.d.ts +0 -8
- package/dist/components/ui/label.d.ts.map +1 -1
- package/dist/components/ui/menubar.d.ts +288 -46
- package/dist/components/ui/menubar.d.ts.map +1 -1
- package/dist/components/ui/navigation-menu.d.ts +444 -127
- package/dist/components/ui/navigation-menu.d.ts.map +1 -1
- package/dist/components/ui/pagination.d.ts +342 -66
- package/dist/components/ui/pagination.d.ts.map +1 -1
- package/dist/components/ui/popover.d.ts +0 -8
- package/dist/components/ui/popover.d.ts.map +1 -1
- package/dist/components/ui/progress.d.ts +88 -30
- package/dist/components/ui/progress.d.ts.map +1 -1
- package/dist/components/ui/radio-group.d.ts +189 -45
- package/dist/components/ui/radio-group.d.ts.map +1 -1
- package/dist/components/ui/resizable.d.ts +178 -62
- package/dist/components/ui/resizable.d.ts.map +1 -1
- package/dist/components/ui/scroll-area.d.ts +180 -21
- package/dist/components/ui/scroll-area.d.ts.map +1 -1
- package/dist/components/ui/select.d.ts +382 -60
- package/dist/components/ui/select.d.ts.map +1 -1
- package/dist/components/ui/separator.d.ts +52 -39
- package/dist/components/ui/separator.d.ts.map +1 -1
- package/dist/components/ui/sheet.d.ts +144 -27
- package/dist/components/ui/sheet.d.ts.map +1 -1
- package/dist/components/ui/sidebar.d.ts +81 -31
- package/dist/components/ui/sidebar.d.ts.map +1 -1
- package/dist/components/ui/skeleton.d.ts +94 -32
- package/dist/components/ui/skeleton.d.ts.map +1 -1
- package/dist/components/ui/slider.d.ts +37 -31
- package/dist/components/ui/slider.d.ts.map +1 -1
- package/dist/components/ui/sonner.d.ts +280 -46
- package/dist/components/ui/sonner.d.ts.map +1 -1
- package/dist/components/ui/stack.d.ts +289 -148
- package/dist/components/ui/stack.d.ts.map +1 -1
- package/dist/components/ui/stories/aspect-ratio.stories.d.ts +1 -2
- package/dist/components/ui/stories/aspect-ratio.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/container.stories.d.ts +2 -3
- package/dist/components/ui/stories/container.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/empty-state.stories.d.ts +2 -2
- package/dist/components/ui/stories/scroll-area.stories.d.ts +1 -2
- package/dist/components/ui/stories/scroll-area.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/stack.stories.d.ts +1 -1
- package/dist/components/ui/stories/text-field.stories.d.ts +7 -1
- package/dist/components/ui/stories/text-field.stories.d.ts.map +1 -1
- package/dist/components/ui/switch.d.ts +44 -38
- package/dist/components/ui/switch.d.ts.map +1 -1
- package/dist/components/ui/table.d.ts +33 -0
- package/dist/components/ui/table.d.ts.map +1 -1
- package/dist/components/ui/tabs.d.ts +4 -22
- package/dist/components/ui/tabs.d.ts.map +1 -1
- package/dist/components/ui/text-field.d.ts +170 -84
- package/dist/components/ui/text-field.d.ts.map +1 -1
- package/dist/components/ui/textarea.d.ts +106 -29
- package/dist/components/ui/textarea.d.ts.map +1 -1
- package/dist/components/ui/theme-toggle.d.ts +190 -65
- package/dist/components/ui/theme-toggle.d.ts.map +1 -1
- package/dist/components/ui/theme.d.ts +107 -23
- package/dist/components/ui/theme.d.ts.map +1 -1
- package/dist/components/ui/toggle-group.d.ts +143 -67
- package/dist/components/ui/toggle-group.d.ts.map +1 -1
- package/dist/components/ui/toggle.d.ts +118 -30
- package/dist/components/ui/toggle.d.ts.map +1 -1
- package/dist/components/ui/tooltip.d.ts +152 -28
- package/dist/components/ui/tooltip.d.ts.map +1 -1
- package/dist/components/ui/typography.d.ts +452 -134
- package/dist/components/ui/typography.d.ts.map +1 -1
- package/dist/index.js +9388 -8281
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/llm-docs/a.llm.md +145 -0
- package/llm-docs/accordion-content.llm.md +67 -0
- package/llm-docs/accordion-item.llm.md +61 -0
- package/llm-docs/accordion-trigger.llm.md +69 -0
- package/llm-docs/accordion.llm.md +88 -0
- package/llm-docs/alert-description.llm.md +78 -0
- package/llm-docs/alert-dialog-action.llm.md +51 -0
- package/llm-docs/alert-dialog-cancel.llm.md +48 -0
- package/llm-docs/alert-dialog-content.llm.md +88 -0
- package/llm-docs/alert-dialog-description.llm.md +53 -0
- package/llm-docs/alert-dialog-footer.llm.md +41 -0
- package/llm-docs/alert-dialog-header.llm.md +39 -0
- package/llm-docs/alert-dialog-overlay.llm.md +44 -0
- package/llm-docs/alert-dialog-portal.llm.md +41 -0
- package/llm-docs/alert-dialog-title.llm.md +46 -0
- package/llm-docs/alert-dialog-trigger.llm.md +40 -0
- package/llm-docs/alert-dialog.llm.md +80 -0
- package/llm-docs/alert-title.llm.md +48 -0
- package/llm-docs/alert.llm.md +92 -0
- package/llm-docs/aspect-ratio.llm.md +41 -0
- package/llm-docs/avatar-fallback.llm.md +41 -0
- package/llm-docs/avatar-image.llm.md +48 -0
- package/llm-docs/avatar.llm.md +35 -0
- package/llm-docs/badge.llm.md +108 -0
- package/llm-docs/blockquote.llm.md +122 -0
- package/llm-docs/breadcrumb-ellipsis.llm.md +73 -0
- package/llm-docs/breadcrumb-item.llm.md +53 -0
- package/llm-docs/breadcrumb-link.llm.md +84 -0
- package/llm-docs/breadcrumb-list.llm.md +54 -0
- package/llm-docs/breadcrumb-page.llm.md +52 -0
- package/llm-docs/breadcrumb-separator.llm.md +60 -0
- package/llm-docs/breadcrumb.llm.md +110 -0
- package/llm-docs/button.llm.md +281 -0
- package/llm-docs/calendar-day-button.llm.md +57 -0
- package/llm-docs/calendar.llm.md +340 -0
- package/llm-docs/card-action.llm.md +64 -0
- package/llm-docs/card-content.llm.md +48 -0
- package/llm-docs/card-description.llm.md +46 -0
- package/llm-docs/card-footer.llm.md +56 -0
- package/llm-docs/card-header.llm.md +53 -0
- package/llm-docs/card-title.llm.md +43 -0
- package/llm-docs/card.llm.md +100 -0
- package/llm-docs/carousel-content.llm.md +77 -0
- package/llm-docs/carousel-item.llm.md +96 -0
- package/llm-docs/carousel-next.llm.md +95 -0
- package/llm-docs/carousel-previous.llm.md +95 -0
- package/llm-docs/carousel.llm.md +211 -0
- package/llm-docs/chart-config.llm.md +71 -0
- package/llm-docs/chart-container.llm.md +148 -0
- package/llm-docs/chart-legend-content.llm.md +85 -0
- package/llm-docs/chart-legend.llm.md +144 -0
- package/llm-docs/chart-style.llm.md +28 -0
- package/llm-docs/chart-tooltip-content.llm.md +149 -0
- package/llm-docs/chart-tooltip.llm.md +184 -0
- package/llm-docs/checkbox.llm.md +100 -0
- package/llm-docs/cn.llm.md +46 -0
- package/llm-docs/code.llm.md +108 -0
- package/llm-docs/collapsible-content.llm.md +109 -0
- package/llm-docs/collapsible-trigger.llm.md +75 -0
- package/llm-docs/collapsible.llm.md +109 -0
- package/llm-docs/combobox-option.llm.md +53 -0
- package/llm-docs/combobox.llm.md +208 -0
- package/llm-docs/command-dialog.llm.md +112 -0
- package/llm-docs/command-empty.llm.md +63 -0
- package/llm-docs/command-group.llm.md +83 -0
- package/llm-docs/command-input.llm.md +82 -0
- package/llm-docs/command-item.llm.md +97 -0
- package/llm-docs/command-list.llm.md +53 -0
- package/llm-docs/command-loading.llm.md +48 -0
- package/llm-docs/command-separator.llm.md +44 -0
- package/llm-docs/command-shortcut.llm.md +63 -0
- package/llm-docs/command.llm.md +147 -0
- package/llm-docs/container.llm.md +236 -0
- package/llm-docs/context-menu-checkbox-item.llm.md +97 -0
- package/llm-docs/context-menu-content.llm.md +91 -0
- package/llm-docs/context-menu-group.llm.md +61 -0
- package/llm-docs/context-menu-item.llm.md +94 -0
- package/llm-docs/context-menu-label.llm.md +60 -0
- package/llm-docs/context-menu-portal.llm.md +49 -0
- package/llm-docs/context-menu-radio-group.llm.md +66 -0
- package/llm-docs/context-menu-radio-item.llm.md +76 -0
- package/llm-docs/context-menu-separator.llm.md +51 -0
- package/llm-docs/context-menu-shortcut.llm.md +57 -0
- package/llm-docs/context-menu-sub-content.llm.md +90 -0
- package/llm-docs/context-menu-sub-trigger.llm.md +73 -0
- package/llm-docs/context-menu-sub.llm.md +61 -0
- package/llm-docs/context-menu-trigger.llm.md +53 -0
- package/llm-docs/context-menu.llm.md +103 -0
- package/llm-docs/date-picker.llm.md +90 -0
- package/llm-docs/dialog-close.llm.md +61 -0
- package/llm-docs/dialog-content.llm.md +128 -0
- package/llm-docs/dialog-description.llm.md +44 -0
- package/llm-docs/dialog-footer.llm.md +38 -0
- package/llm-docs/dialog-header.llm.md +40 -0
- package/llm-docs/dialog-overlay.llm.md +57 -0
- package/llm-docs/dialog-portal.llm.md +47 -0
- package/llm-docs/dialog-title.llm.md +41 -0
- package/llm-docs/dialog-trigger.llm.md +51 -0
- package/llm-docs/dialog.llm.md +113 -0
- package/llm-docs/drawer-close.llm.md +53 -0
- package/llm-docs/drawer-content.llm.md +58 -0
- package/llm-docs/drawer-description.llm.md +54 -0
- package/llm-docs/drawer-footer.llm.md +67 -0
- package/llm-docs/drawer-header.llm.md +60 -0
- package/llm-docs/drawer-overlay.llm.md +40 -0
- package/llm-docs/drawer-portal.llm.md +42 -0
- package/llm-docs/drawer-title.llm.md +51 -0
- package/llm-docs/drawer-trigger.llm.md +44 -0
- package/llm-docs/drawer.llm.md +194 -0
- package/llm-docs/dropdown-menu-checkbox-item.llm.md +111 -0
- package/llm-docs/dropdown-menu-content.llm.md +109 -0
- package/llm-docs/dropdown-menu-group.llm.md +38 -0
- package/llm-docs/dropdown-menu-item.llm.md +94 -0
- package/llm-docs/dropdown-menu-label.llm.md +66 -0
- package/llm-docs/dropdown-menu-portal.llm.md +32 -0
- package/llm-docs/dropdown-menu-radio-group.llm.md +73 -0
- package/llm-docs/dropdown-menu-radio-item.llm.md +92 -0
- package/llm-docs/dropdown-menu-separator.llm.md +55 -0
- package/llm-docs/dropdown-menu-shortcut.llm.md +74 -0
- package/llm-docs/dropdown-menu-sub-content.llm.md +80 -0
- package/llm-docs/dropdown-menu-sub-trigger.llm.md +84 -0
- package/llm-docs/dropdown-menu-sub.llm.md +74 -0
- package/llm-docs/dropdown-menu-trigger.llm.md +48 -0
- package/llm-docs/dropdown-menu.llm.md +120 -0
- package/llm-docs/empty-state.llm.md +174 -0
- package/llm-docs/h1.llm.md +113 -0
- package/llm-docs/h2.llm.md +113 -0
- package/llm-docs/h3.llm.md +111 -0
- package/llm-docs/h4.llm.md +109 -0
- package/llm-docs/h5.llm.md +110 -0
- package/llm-docs/h6.llm.md +110 -0
- package/llm-docs/hover-card-content.llm.md +167 -0
- package/llm-docs/hover-card-trigger.llm.md +65 -0
- package/llm-docs/hover-card.llm.md +121 -0
- package/llm-docs/input.llm.md +319 -0
- package/llm-docs/label.llm.md +145 -0
- package/llm-docs/lead.llm.md +119 -0
- package/llm-docs/menubar-checkbox-item.llm.md +66 -0
- package/llm-docs/menubar-content.llm.md +128 -0
- package/llm-docs/menubar-group.llm.md +40 -0
- package/llm-docs/menubar-item.llm.md +62 -0
- package/llm-docs/menubar-label.llm.md +40 -0
- package/llm-docs/menubar-menu.llm.md +32 -0
- package/llm-docs/menubar-portal.llm.md +38 -0
- package/llm-docs/menubar-radio-group.llm.md +39 -0
- package/llm-docs/menubar-radio-item.llm.md +59 -0
- package/llm-docs/menubar-separator.llm.md +35 -0
- package/llm-docs/menubar-shortcut.llm.md +37 -0
- package/llm-docs/menubar-sub-content.llm.md +127 -0
- package/llm-docs/menubar-sub-trigger.llm.md +51 -0
- package/llm-docs/menubar-sub.llm.md +53 -0
- package/llm-docs/menubar-trigger.llm.md +37 -0
- package/llm-docs/menubar.llm.md +115 -0
- package/llm-docs/navigation-menu-content.llm.md +116 -0
- package/llm-docs/navigation-menu-indicator.llm.md +68 -0
- package/llm-docs/navigation-menu-item.llm.md +62 -0
- package/llm-docs/navigation-menu-link.llm.md +109 -0
- package/llm-docs/navigation-menu-list.llm.md +52 -0
- package/llm-docs/navigation-menu-trigger-style.llm.md +22 -0
- package/llm-docs/navigation-menu-trigger.llm.md +57 -0
- package/llm-docs/navigation-menu-viewport.llm.md +51 -0
- package/llm-docs/navigation-menu.llm.md +184 -0
- package/llm-docs/p.llm.md +115 -0
- package/llm-docs/pagination-content.llm.md +60 -0
- package/llm-docs/pagination-ellipsis.llm.md +107 -0
- package/llm-docs/pagination-item.llm.md +59 -0
- package/llm-docs/pagination-link.llm.md +150 -0
- package/llm-docs/pagination-next.llm.md +115 -0
- package/llm-docs/pagination-previous.llm.md +115 -0
- package/llm-docs/pagination.llm.md +190 -0
- package/llm-docs/popover-anchor.llm.md +53 -0
- package/llm-docs/popover-content.llm.md +109 -0
- package/llm-docs/popover-trigger.llm.md +54 -0
- package/llm-docs/popover.llm.md +116 -0
- package/llm-docs/progress.llm.md +76 -0
- package/llm-docs/radio-group-indicator.llm.md +28 -0
- package/llm-docs/radio-group-item.llm.md +40 -0
- package/llm-docs/radio-group.llm.md +76 -0
- package/llm-docs/resizable-handle.llm.md +156 -0
- package/llm-docs/resizable-panel-group.llm.md +149 -0
- package/llm-docs/resizable-panel.llm.md +157 -0
- package/llm-docs/scroll-area-corner.llm.md +41 -0
- package/llm-docs/scroll-area-thumb.llm.md +39 -0
- package/llm-docs/scroll-area-viewport.llm.md +60 -0
- package/llm-docs/scroll-area.llm.md +125 -0
- package/llm-docs/scroll-bar.llm.md +78 -0
- package/llm-docs/sdk-items-registry.json +2638 -0
- package/llm-docs/select-content.llm.md +139 -0
- package/llm-docs/select-group.llm.md +60 -0
- package/llm-docs/select-item.llm.md +75 -0
- package/llm-docs/select-label.llm.md +62 -0
- package/llm-docs/select-scroll-down-button.llm.md +45 -0
- package/llm-docs/select-scroll-up-button.llm.md +45 -0
- package/llm-docs/select-separator.llm.md +59 -0
- package/llm-docs/select-trigger.llm.md +66 -0
- package/llm-docs/select-value.llm.md +67 -0
- package/llm-docs/select.llm.md +159 -0
- package/llm-docs/separator.llm.md +129 -0
- package/llm-docs/sheet-close.llm.md +49 -0
- package/llm-docs/sheet-content.llm.md +115 -0
- package/llm-docs/sheet-description.llm.md +62 -0
- package/llm-docs/sheet-footer.llm.md +64 -0
- package/llm-docs/sheet-header.llm.md +52 -0
- package/llm-docs/sheet-title.llm.md +53 -0
- package/llm-docs/sheet-trigger.llm.md +46 -0
- package/llm-docs/sheet.llm.md +126 -0
- package/llm-docs/sidebar-content.llm.md +63 -0
- package/llm-docs/sidebar-footer.llm.md +50 -0
- package/llm-docs/sidebar-group-action.llm.md +60 -0
- package/llm-docs/sidebar-group-content.llm.md +64 -0
- package/llm-docs/sidebar-group-label.llm.md +53 -0
- package/llm-docs/sidebar-group.llm.md +56 -0
- package/llm-docs/sidebar-header.llm.md +67 -0
- package/llm-docs/sidebar-input.llm.md +50 -0
- package/llm-docs/sidebar-inset.llm.md +52 -0
- package/llm-docs/sidebar-menu-action.llm.md +84 -0
- package/llm-docs/sidebar-menu-badge.llm.md +60 -0
- package/llm-docs/sidebar-menu-button.llm.md +103 -0
- package/llm-docs/sidebar-menu-item.llm.md +75 -0
- package/llm-docs/sidebar-menu-skeleton.llm.md +76 -0
- package/llm-docs/sidebar-menu-sub-button.llm.md +85 -0
- package/llm-docs/sidebar-menu-sub-item.llm.md +54 -0
- package/llm-docs/sidebar-menu-sub.llm.md +74 -0
- package/llm-docs/sidebar-menu.llm.md +65 -0
- package/llm-docs/sidebar-provider.llm.md +79 -0
- package/llm-docs/sidebar-rail.llm.md +34 -0
- package/llm-docs/sidebar-separator.llm.md +57 -0
- package/llm-docs/sidebar-trigger.llm.md +49 -0
- package/llm-docs/sidebar.llm.md +129 -0
- package/llm-docs/skeleton.llm.md +134 -0
- package/llm-docs/slider.llm.md +173 -0
- package/llm-docs/small.llm.md +115 -0
- package/llm-docs/span.llm.md +132 -0
- package/llm-docs/stack.llm.md +28 -0
- package/llm-docs/strong.llm.md +115 -0
- package/llm-docs/switch.llm.md +76 -0
- package/llm-docs/table-body.llm.md +36 -0
- package/llm-docs/table-caption.llm.md +48 -0
- package/llm-docs/table-cell.llm.md +53 -0
- package/llm-docs/table-footer.llm.md +41 -0
- package/llm-docs/table-head.llm.md +69 -0
- package/llm-docs/table-header.llm.md +41 -0
- package/llm-docs/table-row.llm.md +42 -0
- package/llm-docs/table.llm.md +123 -0
- package/llm-docs/tabs-content.llm.md +47 -0
- package/llm-docs/tabs-list.llm.md +41 -0
- package/llm-docs/tabs-trigger.llm.md +47 -0
- package/llm-docs/tabs.llm.md +71 -0
- package/llm-docs/text-field.llm.md +327 -0
- package/llm-docs/textarea.llm.md +311 -0
- package/llm-docs/theme-preference.llm.md +25 -0
- package/llm-docs/theme-toggle.llm.md +57 -0
- package/llm-docs/theme.llm.md +14 -0
- package/llm-docs/toast.llm.md +32 -0
- package/llm-docs/toaster.llm.md +193 -0
- package/llm-docs/toggle-group-item.llm.md +59 -0
- package/llm-docs/toggle-group.llm.md +101 -0
- package/llm-docs/toggle.llm.md +40 -0
- package/llm-docs/tooltip-content.llm.md +185 -0
- package/llm-docs/tooltip-provider.llm.md +68 -0
- package/llm-docs/tooltip-trigger.llm.md +70 -0
- package/llm-docs/tooltip.llm.md +129 -0
- package/llm-docs/typography.llm.md +175 -0
- package/llm-docs/use-carousel.llm.md +55 -0
- package/llm-docs/use-command-state.llm.md +32 -0
- package/llm-docs/use-is-mobile.llm.md +73 -0
- package/llm-docs/use-sidebar.llm.md +61 -0
- package/llms.txt +173 -3
- package/package.json +7 -3
- package/src/components/ui/accordion.tsx +112 -27
- package/src/components/ui/alert-dialog.tsx +401 -46
- package/src/components/ui/alert.tsx +114 -11
- package/src/components/ui/aspect-ratio.tsx +69 -14
- package/src/components/ui/avatar.tsx +179 -33
- package/src/components/ui/badge.tsx +74 -75
- package/src/components/ui/breadcrumb.tsx +335 -50
- package/src/components/ui/button.tsx +198 -90
- package/src/components/ui/calendar.tsx +867 -43
- package/src/components/ui/card.tsx +140 -33
- package/src/components/ui/carousel.tsx +529 -98
- package/src/components/ui/chart.tsx +222 -1
- package/src/components/ui/checkbox.tsx +176 -38
- package/src/components/ui/collapsible.tsx +321 -67
- package/src/components/ui/combobox.tsx +284 -83
- package/src/components/ui/command.tsx +527 -67
- package/src/components/ui/container.tsx +217 -65
- package/src/components/ui/context-menu.tsx +716 -51
- package/src/components/ui/date-picker.tsx +228 -38
- package/src/components/ui/dialog.tsx +270 -33
- package/src/components/ui/drawer.tsx +546 -67
- package/src/components/ui/dropdown-menu.tsx +657 -74
- package/src/components/ui/empty-state.tsx +241 -82
- package/src/components/ui/hover-card.tsx +328 -39
- package/src/components/ui/input.tsx +207 -44
- package/src/components/ui/label.tsx +98 -8
- package/src/components/ui/menubar.tsx +587 -54
- package/src/components/ui/navigation-menu.tsx +557 -128
- package/src/components/ui/pagination.tsx +561 -79
- package/src/components/ui/popover.tsx +119 -8
- package/src/components/ui/progress.tsx +131 -29
- package/src/components/ui/radio-group.tsx +260 -51
- package/src/components/ui/resizable.tsx +289 -63
- package/src/components/ui/scroll-area.tsx +377 -66
- package/src/components/ui/select.tsx +545 -60
- package/src/components/ui/separator.tsx +146 -40
- package/src/components/ui/sheet.tsx +348 -31
- package/src/components/ui/sidebar.tsx +471 -29
- package/src/components/ui/skeleton.tsx +114 -32
- package/src/components/ui/slider.tsx +77 -31
- package/src/components/ui/sonner.tsx +574 -46
- package/src/components/ui/stack.tsx +423 -101
- package/src/components/ui/switch.tsx +78 -39
- package/src/components/ui/table.tsx +170 -4
- package/src/components/ui/tabs.tsx +108 -22
- package/src/components/ui/text-field.tsx +226 -81
- package/src/components/ui/textarea.tsx +180 -29
- package/src/components/ui/theme-toggle.tsx +313 -65
- package/src/components/ui/theme.tsx +117 -23
- package/src/components/ui/toggle-group.tsx +280 -69
- package/src/components/ui/toggle.tsx +124 -35
- package/src/components/ui/tooltip.tsx +239 -29
- package/src/components/ui/typography.tsx +1115 -165
|
@@ -7,10 +7,15 @@ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
|
7
7
|
* They're typically triggered by a button and appear as a floating panel with full
|
|
8
8
|
* keyboard navigation support, submenus, and various interactive item types.
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
10
|
+
* Built on Radix UI's DropdownMenu primitive with enhanced styling and type safety.
|
|
11
|
+
* Follows the WAI-ARIA Menu Button pattern for accessibility compliance.
|
|
12
|
+
*
|
|
13
|
+
* @param defaultOpen - Whether the dropdown is initially open (uncontrolled mode)
|
|
14
|
+
* @param open - Whether the dropdown is open (controlled mode)
|
|
15
|
+
* @param onOpenChange - Callback fired when the open state changes
|
|
16
|
+
* @param modal - Whether the dropdown should be modal (blocks interaction with outside elements)
|
|
17
|
+
* @param dir - The reading direction of the dropdown menu
|
|
12
18
|
*
|
|
13
|
-
* @component
|
|
14
19
|
* @example
|
|
15
20
|
* ```tsx
|
|
16
21
|
* // Basic dropdown menu
|
|
@@ -29,8 +34,10 @@ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
|
29
34
|
*
|
|
30
35
|
* @example
|
|
31
36
|
* ```tsx
|
|
32
|
-
* //
|
|
33
|
-
*
|
|
37
|
+
* // Controlled dropdown with alignment
|
|
38
|
+
* const [open, setOpen] = useState(false);
|
|
39
|
+
*
|
|
40
|
+
* <DropdownMenu open={open} onOpenChange={setOpen}>
|
|
34
41
|
* <DropdownMenuTrigger asChild>
|
|
35
42
|
* <Button variant="ghost" size="icon">
|
|
36
43
|
* <MoreHorizontal />
|
|
@@ -48,6 +55,9 @@ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
|
48
55
|
* @example
|
|
49
56
|
* ```tsx
|
|
50
57
|
* // Complex menu with checkboxes, radio groups, and submenus
|
|
58
|
+
* const [showPanel, setShowPanel] = useState(true);
|
|
59
|
+
* const [position, setPosition] = useState("top");
|
|
60
|
+
*
|
|
51
61
|
* <DropdownMenu>
|
|
52
62
|
* <DropdownMenuTrigger asChild>
|
|
53
63
|
* <Button>Advanced Menu</Button>
|
|
@@ -78,17 +88,19 @@ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
|
78
88
|
* @accessibility
|
|
79
89
|
* - Full keyboard navigation with arrow keys (Up/Down for navigation)
|
|
80
90
|
* - Enter/Space to activate items
|
|
81
|
-
* - Escape key closes the menu and restores focus
|
|
91
|
+
* - Escape key closes the menu and restores focus to the trigger
|
|
82
92
|
* - Home/End keys navigate to first/last item
|
|
83
93
|
* - Type-ahead search to jump to items by first letter
|
|
84
94
|
* - Left/Right arrow keys for submenu navigation
|
|
85
95
|
* - Proper ARIA roles (menu, menuitem, menuitemcheckbox, menuitemradio)
|
|
86
96
|
* - Focus management with focus trapping and restoration
|
|
87
97
|
* - Screen reader announcements for state changes
|
|
98
|
+
* - Supports roving tabindex for focus movement
|
|
88
99
|
*
|
|
89
100
|
* @see {@link ContextMenu} - For right-click context menus
|
|
90
101
|
* @see {@link Popover} - For rich content overlays
|
|
91
102
|
* @see {@link Select} - For single selection dropdowns
|
|
103
|
+
* @see {@link https://www.radix-ui.com/primitives/docs/components/dropdown-menu} - Radix UI documentation
|
|
92
104
|
* @see {@link https://ui.shadcn.com/docs/components/dropdown-menu} - shadcn/ui documentation
|
|
93
105
|
* @since 1.0.0
|
|
94
106
|
*/
|
|
@@ -98,68 +110,168 @@ declare function DropdownMenu({ ...props }: React.ComponentProps<typeof Dropdown
|
|
|
98
110
|
*
|
|
99
111
|
* Renders dropdown content outside of the normal DOM hierarchy to avoid
|
|
100
112
|
* z-index and overflow issues. Automatically used by DropdownMenuContent
|
|
101
|
-
* but can be used explicitly for
|
|
113
|
+
* but can be used explicitly for advanced positioning scenarios.
|
|
114
|
+
*
|
|
115
|
+
* @param container - Optional container element for portal rendering. If not provided, portals to document.body
|
|
102
116
|
*
|
|
103
|
-
* @
|
|
104
|
-
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```tsx
|
|
119
|
+
* <DropdownMenuPortal container={customContainer}>
|
|
120
|
+
* <DropdownMenuContent>
|
|
121
|
+
* <DropdownMenuItem>Item</DropdownMenuItem>
|
|
122
|
+
* </DropdownMenuContent>
|
|
123
|
+
* </DropdownMenuPortal>
|
|
124
|
+
* ```
|
|
105
125
|
* @since 1.0.0
|
|
106
126
|
*/
|
|
107
127
|
declare function DropdownMenuPortal({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>): import("react/jsx-runtime").JSX.Element;
|
|
108
128
|
/**
|
|
109
|
-
*
|
|
129
|
+
* The element that triggers the dropdown menu
|
|
130
|
+
*
|
|
131
|
+
* Renders the interactive element that opens and closes the dropdown menu.
|
|
132
|
+
* Typically wraps a button or other interactive element using the asChild prop.
|
|
133
|
+
* Automatically receives proper ARIA attributes and keyboard event handlers.
|
|
134
|
+
*
|
|
135
|
+
* @param asChild - Merge props onto the immediate child instead of rendering a wrapper element
|
|
110
136
|
*
|
|
111
|
-
* @component
|
|
112
137
|
* @example
|
|
113
138
|
* ```tsx
|
|
139
|
+
* // Basic trigger with button
|
|
114
140
|
* <DropdownMenuTrigger asChild>
|
|
115
|
-
* <Button>Menu</Button>
|
|
141
|
+
* <Button variant="outline">Open Menu</Button>
|
|
142
|
+
* </DropdownMenuTrigger>
|
|
143
|
+
* ```
|
|
144
|
+
*
|
|
145
|
+
* @example
|
|
146
|
+
* ```tsx
|
|
147
|
+
* // Icon button trigger
|
|
148
|
+
* <DropdownMenuTrigger asChild>
|
|
149
|
+
* <Button variant="ghost" size="icon" aria-label="More options">
|
|
150
|
+
* <MoreVertical className="h-4 w-4" />
|
|
151
|
+
* </Button>
|
|
116
152
|
* </DropdownMenuTrigger>
|
|
117
153
|
* ```
|
|
118
154
|
* @since 1.0.0
|
|
119
155
|
*/
|
|
120
156
|
declare function DropdownMenuTrigger({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
|
|
121
157
|
/**
|
|
122
|
-
*
|
|
158
|
+
* The content container for dropdown menu items
|
|
159
|
+
*
|
|
160
|
+
* Contains all menu items and handles positioning relative to the trigger.
|
|
161
|
+
* Automatically portals content to avoid z-index issues and includes sophisticated
|
|
162
|
+
* collision detection to keep the menu visible within viewport boundaries.
|
|
163
|
+
*
|
|
164
|
+
* @param side - The preferred side of the trigger to render against
|
|
165
|
+
* @param sideOffset - Distance in pixels from the trigger
|
|
166
|
+
* @param align - The preferred alignment against the trigger
|
|
167
|
+
* @param alignOffset - Distance in pixels from the align point
|
|
168
|
+
* @param avoidCollisions - Whether to avoid collisions with viewport boundaries
|
|
169
|
+
* @param loop - When true, keyboard navigation will loop from last to first item
|
|
170
|
+
* @param sticky - Element positioning behavior relative to the viewport
|
|
171
|
+
* @param hideWhenDetached - Whether to hide the content when the reference element is fully occluded
|
|
123
172
|
*
|
|
124
|
-
* @component
|
|
125
173
|
* @example
|
|
126
174
|
* ```tsx
|
|
127
|
-
*
|
|
128
|
-
*
|
|
175
|
+
* // Basic content with default positioning
|
|
176
|
+
* <DropdownMenuContent>
|
|
177
|
+
* <DropdownMenuItem>Profile</DropdownMenuItem>
|
|
178
|
+
* <DropdownMenuItem>Settings</DropdownMenuItem>
|
|
179
|
+
* </DropdownMenuContent>
|
|
180
|
+
* ```
|
|
181
|
+
*
|
|
182
|
+
* @example
|
|
183
|
+
* ```tsx
|
|
184
|
+
* // Content with custom alignment and offset
|
|
185
|
+
* <DropdownMenuContent align="end" sideOffset={8}>
|
|
186
|
+
* <DropdownMenuItem>Edit</DropdownMenuItem>
|
|
187
|
+
* <DropdownMenuItem variant="destructive">Delete</DropdownMenuItem>
|
|
188
|
+
* </DropdownMenuContent>
|
|
189
|
+
* ```
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
* ```tsx
|
|
193
|
+
* // Content with collision avoidance disabled
|
|
194
|
+
* <DropdownMenuContent avoidCollisions={false} side="top">
|
|
195
|
+
* <DropdownMenuItem>Always above trigger</DropdownMenuItem>
|
|
129
196
|
* </DropdownMenuContent>
|
|
130
197
|
* ```
|
|
131
198
|
* @since 1.0.0
|
|
132
199
|
*/
|
|
133
|
-
declare function DropdownMenuContent({ className, sideOffset, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Content>
|
|
200
|
+
declare function DropdownMenuContent({ className, sideOffset, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Content> & {
|
|
201
|
+
className?: string;
|
|
202
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
134
203
|
/**
|
|
135
204
|
* Groups related dropdown menu items together
|
|
136
205
|
*
|
|
137
206
|
* Used to create logical groupings of menu items, typically separated by
|
|
138
207
|
* DropdownMenuSeparator components. Helps with semantic organization and
|
|
139
|
-
*
|
|
208
|
+
* improves accessibility by providing proper group semantics to screen readers.
|
|
209
|
+
*
|
|
210
|
+
* @param asChild - Merge props onto the immediate child instead of rendering a wrapper element
|
|
140
211
|
*
|
|
141
|
-
* @component
|
|
142
212
|
* @example
|
|
143
213
|
* ```tsx
|
|
144
|
-
* <
|
|
145
|
-
* <
|
|
146
|
-
*
|
|
147
|
-
* </
|
|
214
|
+
* <DropdownMenuContent>
|
|
215
|
+
* <DropdownMenuGroup>
|
|
216
|
+
* <DropdownMenuItem>Profile</DropdownMenuItem>
|
|
217
|
+
* <DropdownMenuItem>Account Settings</DropdownMenuItem>
|
|
218
|
+
* </DropdownMenuGroup>
|
|
219
|
+
* <DropdownMenuSeparator />
|
|
220
|
+
* <DropdownMenuGroup>
|
|
221
|
+
* <DropdownMenuItem>Help</DropdownMenuItem>
|
|
222
|
+
* <DropdownMenuItem>Support</DropdownMenuItem>
|
|
223
|
+
* </DropdownMenuGroup>
|
|
224
|
+
* </DropdownMenuContent>
|
|
148
225
|
* ```
|
|
149
226
|
* @since 1.0.0
|
|
150
227
|
*/
|
|
151
228
|
declare function DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>): import("react/jsx-runtime").JSX.Element;
|
|
152
229
|
/**
|
|
153
|
-
*
|
|
230
|
+
* A single interactive item in the dropdown menu
|
|
231
|
+
*
|
|
232
|
+
* Renders a clickable menu item with proper focus management and keyboard navigation.
|
|
233
|
+
* Supports different visual variants for semantic meaning (e.g., destructive actions).
|
|
234
|
+
* Includes built-in styling for icons, disabled states, and focus indicators.
|
|
235
|
+
*
|
|
236
|
+
* @param disabled - Whether the item is disabled and cannot be selected
|
|
237
|
+
* @param onSelect - Callback fired when the item is selected via click or keyboard
|
|
238
|
+
* @param textValue - Optional text value used for typeahead search functionality
|
|
239
|
+
* @param inset - Whether to add extra left padding to align with items that have icons
|
|
240
|
+
* @param variant - Visual variant of the menu item for semantic distinction
|
|
241
|
+
*
|
|
242
|
+
* @example
|
|
243
|
+
* ```tsx
|
|
244
|
+
* // Basic menu item with click handler
|
|
245
|
+
* <DropdownMenuItem onSelect={() => console.log('Profile clicked')}>
|
|
246
|
+
* <User className="mr-2 h-4 w-4" />
|
|
247
|
+
* Profile
|
|
248
|
+
* </DropdownMenuItem>
|
|
249
|
+
* ```
|
|
250
|
+
*
|
|
251
|
+
* @example
|
|
252
|
+
* ```tsx
|
|
253
|
+
* // Destructive action item
|
|
254
|
+
* <DropdownMenuItem variant="destructive" onSelect={handleDelete}>
|
|
255
|
+
* <Trash className="mr-2 h-4 w-4" />
|
|
256
|
+
* Delete Account
|
|
257
|
+
* </DropdownMenuItem>
|
|
258
|
+
* ```
|
|
154
259
|
*
|
|
155
|
-
* @component
|
|
156
260
|
* @example
|
|
157
261
|
* ```tsx
|
|
158
|
-
*
|
|
159
|
-
*
|
|
262
|
+
* // Disabled item
|
|
263
|
+
* <DropdownMenuItem disabled>
|
|
264
|
+
* <Settings className="mr-2 h-4 w-4" />
|
|
265
|
+
* Settings (Coming Soon)
|
|
160
266
|
* </DropdownMenuItem>
|
|
161
|
-
*
|
|
162
|
-
*
|
|
267
|
+
* ```
|
|
268
|
+
*
|
|
269
|
+
* @example
|
|
270
|
+
* ```tsx
|
|
271
|
+
* // Item with keyboard shortcut
|
|
272
|
+
* <DropdownMenuItem onSelect={handleSave}>
|
|
273
|
+
* Save Document
|
|
274
|
+
* <DropdownMenuShortcut>⌘S</DropdownMenuShortcut>
|
|
163
275
|
* </DropdownMenuItem>
|
|
164
276
|
* ```
|
|
165
277
|
* @since 1.0.0
|
|
@@ -167,51 +279,117 @@ declare function DropdownMenuGroup({ ...props }: React.ComponentProps<typeof Dro
|
|
|
167
279
|
declare function DropdownMenuItem({ className, inset, variant, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {
|
|
168
280
|
inset?: boolean;
|
|
169
281
|
variant?: "default" | "destructive";
|
|
282
|
+
className?: string;
|
|
170
283
|
}): import("react/jsx-runtime").JSX.Element;
|
|
171
284
|
/**
|
|
172
285
|
* A checkable menu item with visual state indication
|
|
173
286
|
*
|
|
174
287
|
* Displays a checkbox that can be toggled on/off. The checked state is
|
|
175
|
-
* visually indicated with a checkmark icon.
|
|
176
|
-
*
|
|
288
|
+
* visually indicated with a checkmark icon. Supports indeterminate state
|
|
289
|
+
* for partial selections. Ideal for menu options that represent toggleable
|
|
290
|
+
* settings, features, or multi-selection scenarios.
|
|
177
291
|
*
|
|
178
|
-
* @
|
|
179
|
-
* @param
|
|
180
|
-
* @param
|
|
181
|
-
* @param
|
|
292
|
+
* @param checked - The checked state of the checkbox item (boolean or "indeterminate")
|
|
293
|
+
* @param onCheckedChange - Callback fired when the checked state changes
|
|
294
|
+
* @param disabled - Whether the item is disabled and cannot be interacted with
|
|
295
|
+
* @param onSelect - Callback fired when the item is selected via click or keyboard
|
|
296
|
+
* @param textValue - Optional text value used for typeahead search functionality
|
|
297
|
+
* @param inset - Whether to add extra left padding to align with items that have icons
|
|
182
298
|
*
|
|
183
299
|
* @example
|
|
184
300
|
* ```tsx
|
|
301
|
+
* // Basic checkbox item with state
|
|
185
302
|
* const [showSidebar, setShowSidebar] = useState(true);
|
|
186
303
|
*
|
|
187
304
|
* <DropdownMenuCheckboxItem
|
|
188
305
|
* checked={showSidebar}
|
|
189
306
|
* onCheckedChange={setShowSidebar}
|
|
190
307
|
* >
|
|
308
|
+
* <Sidebar className="mr-2 h-4 w-4" />
|
|
191
309
|
* Show Sidebar
|
|
192
310
|
* </DropdownMenuCheckboxItem>
|
|
193
311
|
* ```
|
|
312
|
+
*
|
|
313
|
+
* @example
|
|
314
|
+
* ```tsx
|
|
315
|
+
* // Multiple checkbox items for feature toggles
|
|
316
|
+
* const [features, setFeatures] = useState({
|
|
317
|
+
* notifications: true,
|
|
318
|
+
* autoSave: false,
|
|
319
|
+
* darkMode: true
|
|
320
|
+
* });
|
|
321
|
+
*
|
|
322
|
+
* <DropdownMenuCheckboxItem
|
|
323
|
+
* checked={features.notifications}
|
|
324
|
+
* onCheckedChange={(checked) => setFeatures(prev => ({ ...prev, notifications: checked }))}
|
|
325
|
+
* >
|
|
326
|
+
* Enable Notifications
|
|
327
|
+
* </DropdownMenuCheckboxItem>
|
|
328
|
+
* <DropdownMenuCheckboxItem
|
|
329
|
+
* checked={features.autoSave}
|
|
330
|
+
* onCheckedChange={(checked) => setFeatures(prev => ({ ...prev, autoSave: checked }))}
|
|
331
|
+
* >
|
|
332
|
+
* Auto-save Changes
|
|
333
|
+
* </DropdownMenuCheckboxItem>
|
|
334
|
+
* ```
|
|
335
|
+
*
|
|
336
|
+
* @example
|
|
337
|
+
* ```tsx
|
|
338
|
+
* // Indeterminate state for partial selections
|
|
339
|
+
* <DropdownMenuCheckboxItem
|
|
340
|
+
* checked="indeterminate"
|
|
341
|
+
* onCheckedChange={handleSelectAll}
|
|
342
|
+
* >
|
|
343
|
+
* Select All Items (Some selected)
|
|
344
|
+
* </DropdownMenuCheckboxItem>
|
|
345
|
+
* ```
|
|
194
346
|
* @since 1.0.0
|
|
195
347
|
*/
|
|
196
|
-
declare function DropdownMenuCheckboxItem({ className, children, checked, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>
|
|
348
|
+
declare function DropdownMenuCheckboxItem({ className, children, checked, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem> & {
|
|
349
|
+
className?: string;
|
|
350
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
197
351
|
/**
|
|
198
352
|
* Groups radio items for single selection
|
|
199
353
|
*
|
|
200
354
|
* Creates a group where only one radio item can be selected at a time.
|
|
201
|
-
*
|
|
355
|
+
* Manages the selection state and ensures mutual exclusivity between options.
|
|
356
|
+
* Use with DropdownMenuRadioItem components to create single-choice scenarios
|
|
357
|
+
* like theme selection, sorting options, or view modes.
|
|
202
358
|
*
|
|
203
|
-
* @
|
|
204
|
-
* @param
|
|
205
|
-
* @param
|
|
359
|
+
* @param value - The currently selected value in the radio group
|
|
360
|
+
* @param onValueChange - Callback fired when the selection changes to a different value
|
|
361
|
+
* @param disabled - Whether the entire radio group is disabled
|
|
206
362
|
*
|
|
207
363
|
* @example
|
|
208
364
|
* ```tsx
|
|
365
|
+
* // Theme selection with radio group
|
|
209
366
|
* const [theme, setTheme] = useState("light");
|
|
210
367
|
*
|
|
211
368
|
* <DropdownMenuRadioGroup value={theme} onValueChange={setTheme}>
|
|
212
|
-
* <DropdownMenuRadioItem value="light">
|
|
213
|
-
*
|
|
214
|
-
*
|
|
369
|
+
* <DropdownMenuRadioItem value="light">
|
|
370
|
+
* <Sun className="mr-2 h-4 w-4" />
|
|
371
|
+
* Light Theme
|
|
372
|
+
* </DropdownMenuRadioItem>
|
|
373
|
+
* <DropdownMenuRadioItem value="dark">
|
|
374
|
+
* <Moon className="mr-2 h-4 w-4" />
|
|
375
|
+
* Dark Theme
|
|
376
|
+
* </DropdownMenuRadioItem>
|
|
377
|
+
* <DropdownMenuRadioItem value="system">
|
|
378
|
+
* <Monitor className="mr-2 h-4 w-4" />
|
|
379
|
+
* System Theme
|
|
380
|
+
* </DropdownMenuRadioItem>
|
|
381
|
+
* </DropdownMenuRadioGroup>
|
|
382
|
+
* ```
|
|
383
|
+
*
|
|
384
|
+
* @example
|
|
385
|
+
* ```tsx
|
|
386
|
+
* // Sorting options
|
|
387
|
+
* const [sortBy, setSortBy] = useState("name");
|
|
388
|
+
*
|
|
389
|
+
* <DropdownMenuRadioGroup value={sortBy} onValueChange={setSortBy}>
|
|
390
|
+
* <DropdownMenuRadioItem value="name">Sort by Name</DropdownMenuRadioItem>
|
|
391
|
+
* <DropdownMenuRadioItem value="date">Sort by Date</DropdownMenuRadioItem>
|
|
392
|
+
* <DropdownMenuRadioItem value="size">Sort by Size</DropdownMenuRadioItem>
|
|
215
393
|
* </DropdownMenuRadioGroup>
|
|
216
394
|
* ```
|
|
217
395
|
* @since 1.0.0
|
|
@@ -221,129 +399,398 @@ declare function DropdownMenuRadioGroup({ ...props }: React.ComponentProps<typeo
|
|
|
221
399
|
* A radio button menu item for single selection within a group
|
|
222
400
|
*
|
|
223
401
|
* Must be used within a DropdownMenuRadioGroup. Shows a filled circle
|
|
224
|
-
* indicator when selected. Only one radio item can be selected per group
|
|
402
|
+
* indicator when selected. Only one radio item can be selected per group,
|
|
403
|
+
* ensuring mutually exclusive selection behavior.
|
|
225
404
|
*
|
|
226
|
-
* @
|
|
227
|
-
* @param
|
|
228
|
-
* @param
|
|
405
|
+
* @param value - The unique value this radio item represents
|
|
406
|
+
* @param disabled - Whether the item is disabled and cannot be selected
|
|
407
|
+
* @param onSelect - Callback fired when the item is selected via click or keyboard
|
|
408
|
+
* @param textValue - Optional text value used for typeahead search functionality
|
|
409
|
+
* @param inset - Whether to add extra left padding to align with items that have icons
|
|
229
410
|
*
|
|
230
411
|
* @example
|
|
231
412
|
* ```tsx
|
|
413
|
+
* // Basic radio group for theme selection
|
|
232
414
|
* <DropdownMenuRadioGroup value={selectedTheme} onValueChange={setSelectedTheme}>
|
|
233
415
|
* <DropdownMenuRadioItem value="light">
|
|
416
|
+
* <Sun className="mr-2 h-4 w-4" />
|
|
234
417
|
* Light Theme
|
|
235
418
|
* </DropdownMenuRadioItem>
|
|
236
419
|
* <DropdownMenuRadioItem value="dark">
|
|
420
|
+
* <Moon className="mr-2 h-4 w-4" />
|
|
237
421
|
* Dark Theme
|
|
238
422
|
* </DropdownMenuRadioItem>
|
|
423
|
+
* <DropdownMenuRadioItem value="system">
|
|
424
|
+
* <Monitor className="mr-2 h-4 w-4" />
|
|
425
|
+
* System Theme
|
|
426
|
+
* </DropdownMenuRadioItem>
|
|
427
|
+
* </DropdownMenuRadioGroup>
|
|
428
|
+
* ```
|
|
429
|
+
*
|
|
430
|
+
* @example
|
|
431
|
+
* ```tsx
|
|
432
|
+
* // Priority selection with disabled option
|
|
433
|
+
* <DropdownMenuRadioGroup value={priority} onValueChange={setPriority}>
|
|
434
|
+
* <DropdownMenuRadioItem value="low">Low Priority</DropdownMenuRadioItem>
|
|
435
|
+
* <DropdownMenuRadioItem value="medium">Medium Priority</DropdownMenuRadioItem>
|
|
436
|
+
* <DropdownMenuRadioItem value="high">High Priority</DropdownMenuRadioItem>
|
|
437
|
+
* <DropdownMenuRadioItem value="urgent" disabled>
|
|
438
|
+
* Urgent (Premium Only)
|
|
439
|
+
* </DropdownMenuRadioItem>
|
|
239
440
|
* </DropdownMenuRadioGroup>
|
|
240
441
|
* ```
|
|
241
442
|
* @since 1.0.0
|
|
242
443
|
*/
|
|
243
|
-
declare function DropdownMenuRadioItem({ className, children, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>
|
|
444
|
+
declare function DropdownMenuRadioItem({ className, children, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem> & {
|
|
445
|
+
className?: string;
|
|
446
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
244
447
|
/**
|
|
245
|
-
*
|
|
448
|
+
* A non-interactive label for grouping and organizing menu items
|
|
449
|
+
*
|
|
450
|
+
* Used to provide semantic headers for groups of related menu items.
|
|
451
|
+
* Labels are not focusable and serve as visual and accessibility landmarks
|
|
452
|
+
* within the menu structure. Helps users understand the organization of menu options.
|
|
453
|
+
*
|
|
454
|
+
* @param asChild - Merge props onto the immediate child instead of rendering a wrapper element
|
|
455
|
+
* @param inset - Whether to add extra left padding to align with items that have icons
|
|
456
|
+
*
|
|
457
|
+
* @example
|
|
458
|
+
* ```tsx
|
|
459
|
+
* // Basic label for menu section
|
|
460
|
+
* <DropdownMenuContent>
|
|
461
|
+
* <DropdownMenuLabel>Account Actions</DropdownMenuLabel>
|
|
462
|
+
* <DropdownMenuSeparator />
|
|
463
|
+
* <DropdownMenuItem>View Profile</DropdownMenuItem>
|
|
464
|
+
* <DropdownMenuItem>Account Settings</DropdownMenuItem>
|
|
465
|
+
*
|
|
466
|
+
* <DropdownMenuSeparator />
|
|
467
|
+
* <DropdownMenuLabel>Preferences</DropdownMenuLabel>
|
|
468
|
+
* <DropdownMenuItem>Theme Settings</DropdownMenuItem>
|
|
469
|
+
* <DropdownMenuItem>Notification Settings</DropdownMenuItem>
|
|
470
|
+
* </DropdownMenuContent>
|
|
471
|
+
* ```
|
|
246
472
|
*
|
|
247
|
-
* @component
|
|
248
473
|
* @example
|
|
249
474
|
* ```tsx
|
|
250
|
-
*
|
|
475
|
+
* // Label with inset alignment
|
|
476
|
+
* <DropdownMenuContent>
|
|
477
|
+
* <DropdownMenuLabel inset>File Operations</DropdownMenuLabel>
|
|
478
|
+
* <DropdownMenuItem>
|
|
479
|
+
* <Download className="mr-2 h-4 w-4" />
|
|
480
|
+
* Download
|
|
481
|
+
* </DropdownMenuItem>
|
|
482
|
+
* <DropdownMenuItem>
|
|
483
|
+
* <Upload className="mr-2 h-4 w-4" />
|
|
484
|
+
* Upload
|
|
485
|
+
* </DropdownMenuItem>
|
|
486
|
+
* </DropdownMenuContent>
|
|
251
487
|
* ```
|
|
252
488
|
* @since 1.0.0
|
|
253
489
|
*/
|
|
254
490
|
declare function DropdownMenuLabel({ className, inset, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {
|
|
255
491
|
inset?: boolean;
|
|
492
|
+
className?: string;
|
|
256
493
|
}): import("react/jsx-runtime").JSX.Element;
|
|
257
494
|
/**
|
|
258
|
-
*
|
|
495
|
+
* A visual separator between menu items or groups
|
|
496
|
+
*
|
|
497
|
+
* Renders a thin horizontal line to visually separate different sections
|
|
498
|
+
* of menu items. Improves visual hierarchy and helps users understand
|
|
499
|
+
* the logical grouping of menu options. Commonly used after labels
|
|
500
|
+
* or between different types of actions.
|
|
501
|
+
*
|
|
502
|
+
* @param asChild - Merge props onto the immediate child instead of rendering a wrapper element
|
|
503
|
+
*
|
|
504
|
+
* @example
|
|
505
|
+
* ```tsx
|
|
506
|
+
* // Separating different action groups
|
|
507
|
+
* <DropdownMenuContent>
|
|
508
|
+
* <DropdownMenuItem>View</DropdownMenuItem>
|
|
509
|
+
* <DropdownMenuItem>Edit</DropdownMenuItem>
|
|
510
|
+
* <DropdownMenuSeparator />
|
|
511
|
+
* <DropdownMenuItem variant="destructive">Delete</DropdownMenuItem>
|
|
512
|
+
* </DropdownMenuContent>
|
|
513
|
+
* ```
|
|
259
514
|
*
|
|
260
|
-
* @
|
|
515
|
+
* @example
|
|
516
|
+
* ```tsx
|
|
517
|
+
* // Separating sections with labels
|
|
518
|
+
* <DropdownMenuContent>
|
|
519
|
+
* <DropdownMenuLabel>User Actions</DropdownMenuLabel>
|
|
520
|
+
* <DropdownMenuSeparator />
|
|
521
|
+
* <DropdownMenuItem>Profile</DropdownMenuItem>
|
|
522
|
+
* <DropdownMenuItem>Settings</DropdownMenuItem>
|
|
523
|
+
*
|
|
524
|
+
* <DropdownMenuSeparator />
|
|
525
|
+
* <DropdownMenuLabel>System</DropdownMenuLabel>
|
|
526
|
+
* <DropdownMenuSeparator />
|
|
527
|
+
* <DropdownMenuItem>Logout</DropdownMenuItem>
|
|
528
|
+
* </DropdownMenuContent>
|
|
529
|
+
* ```
|
|
261
530
|
* @since 1.0.0
|
|
262
531
|
*/
|
|
263
|
-
declare function DropdownMenuSeparator({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>
|
|
532
|
+
declare function DropdownMenuSeparator({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Separator> & {
|
|
533
|
+
className?: string;
|
|
534
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
264
535
|
/**
|
|
265
536
|
* Displays keyboard shortcut hints in menu items
|
|
266
537
|
*
|
|
267
538
|
* Shows keyboard shortcut text aligned to the right side of menu items.
|
|
268
|
-
* Purely visual - does not implement the actual keyboard functionality.
|
|
269
|
-
* Use standard keyboard shortcut notation (⌘, ⌃, ⌥,
|
|
539
|
+
* Purely visual component - does not implement the actual keyboard functionality.
|
|
540
|
+
* Use standard keyboard shortcut notation and symbols (⌘, ⌃, ⌥, ⇧, Ctrl, Alt, Shift).
|
|
541
|
+
* Helps users discover and remember keyboard shortcuts for menu actions.
|
|
270
542
|
*
|
|
271
|
-
* @component
|
|
272
543
|
* @example
|
|
273
544
|
* ```tsx
|
|
274
|
-
*
|
|
545
|
+
* // macOS style shortcuts
|
|
546
|
+
* <DropdownMenuItem onSelect={handleSave}>
|
|
275
547
|
* Save Document
|
|
276
548
|
* <DropdownMenuShortcut>⌘S</DropdownMenuShortcut>
|
|
277
549
|
* </DropdownMenuItem>
|
|
278
550
|
* ```
|
|
551
|
+
*
|
|
552
|
+
* @example
|
|
553
|
+
* ```tsx
|
|
554
|
+
* // Windows/Linux style shortcuts
|
|
555
|
+
* <DropdownMenuItem onSelect={handleCopy}>
|
|
556
|
+
* Copy
|
|
557
|
+
* <DropdownMenuShortcut>Ctrl+C</DropdownMenuShortcut>
|
|
558
|
+
* </DropdownMenuItem>
|
|
559
|
+
* ```
|
|
560
|
+
*
|
|
561
|
+
* @example
|
|
562
|
+
* ```tsx
|
|
563
|
+
* // Complex shortcuts with multiple modifiers
|
|
564
|
+
* <DropdownMenuItem onSelect={handleForceRefresh}>
|
|
565
|
+
* Force Refresh
|
|
566
|
+
* <DropdownMenuShortcut>⌘⇧R</DropdownMenuShortcut>
|
|
567
|
+
* </DropdownMenuItem>
|
|
568
|
+
* ```
|
|
569
|
+
*
|
|
570
|
+
* @example
|
|
571
|
+
* ```tsx
|
|
572
|
+
* // Multiple menu items with shortcuts
|
|
573
|
+
* <DropdownMenuContent>
|
|
574
|
+
* <DropdownMenuItem>
|
|
575
|
+
* New File <DropdownMenuShortcut>⌘N</DropdownMenuShortcut>
|
|
576
|
+
* </DropdownMenuItem>
|
|
577
|
+
* <DropdownMenuItem>
|
|
578
|
+
* Open File <DropdownMenuShortcut>⌘O</DropdownMenuShortcut>
|
|
579
|
+
* </DropdownMenuItem>
|
|
580
|
+
* <DropdownMenuSeparator />
|
|
581
|
+
* <DropdownMenuItem>
|
|
582
|
+
* Save <DropdownMenuShortcut>⌘S</DropdownMenuShortcut>
|
|
583
|
+
* </DropdownMenuItem>
|
|
584
|
+
* <DropdownMenuItem>
|
|
585
|
+
* Save As <DropdownMenuShortcut>⌘⇧S</DropdownMenuShortcut>
|
|
586
|
+
* </DropdownMenuItem>
|
|
587
|
+
* </DropdownMenuContent>
|
|
588
|
+
* ```
|
|
279
589
|
* @since 1.0.0
|
|
280
590
|
*/
|
|
281
|
-
declare function DropdownMenuShortcut({ className, ...props }: React.ComponentProps<"span">
|
|
591
|
+
declare function DropdownMenuShortcut({ className, ...props }: React.ComponentProps<"span"> & {
|
|
592
|
+
className?: string;
|
|
593
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
282
594
|
/**
|
|
283
595
|
* Container for creating nested submenus
|
|
284
596
|
*
|
|
285
597
|
* Wraps a submenu trigger and content to create hierarchical menu structures.
|
|
286
|
-
*
|
|
598
|
+
* Enables multi-level navigation within dropdown menus. Use with
|
|
599
|
+
* DropdownMenuSubTrigger and DropdownMenuSubContent to build complex
|
|
600
|
+
* menu hierarchies with proper focus management and keyboard navigation.
|
|
601
|
+
*
|
|
602
|
+
* @param defaultOpen - Whether the submenu is initially open (uncontrolled mode)
|
|
603
|
+
* @param open - Whether the submenu is open (controlled mode)
|
|
604
|
+
* @param onOpenChange - Callback fired when the submenu open state changes
|
|
287
605
|
*
|
|
288
|
-
* @component
|
|
289
606
|
* @example
|
|
290
607
|
* ```tsx
|
|
608
|
+
* // Basic submenu structure
|
|
291
609
|
* <DropdownMenuSub>
|
|
610
|
+
* <DropdownMenuSubTrigger>
|
|
611
|
+
* <Share className="mr-2 h-4 w-4" />
|
|
612
|
+
* Share Options
|
|
613
|
+
* </DropdownMenuSubTrigger>
|
|
614
|
+
* <DropdownMenuSubContent>
|
|
615
|
+
* <DropdownMenuItem>Email Link</DropdownMenuItem>
|
|
616
|
+
* <DropdownMenuItem>Copy to Clipboard</DropdownMenuItem>
|
|
617
|
+
* <DropdownMenuItem>Generate QR Code</DropdownMenuItem>
|
|
618
|
+
* </DropdownMenuSubContent>
|
|
619
|
+
* </DropdownMenuSub>
|
|
620
|
+
* ```
|
|
621
|
+
*
|
|
622
|
+
* @example
|
|
623
|
+
* ```tsx
|
|
624
|
+
* // Controlled submenu with state management
|
|
625
|
+
* const [isShareOpen, setIsShareOpen] = useState(false);
|
|
626
|
+
*
|
|
627
|
+
* <DropdownMenuSub open={isShareOpen} onOpenChange={setIsShareOpen}>
|
|
292
628
|
* <DropdownMenuSubTrigger>Share</DropdownMenuSubTrigger>
|
|
293
629
|
* <DropdownMenuSubContent>
|
|
294
|
-
* <DropdownMenuItem>Email</DropdownMenuItem>
|
|
295
|
-
* <DropdownMenuItem>Copy Link</DropdownMenuItem>
|
|
630
|
+
* <DropdownMenuItem onSelect={() => handleShare('email')}>Email</DropdownMenuItem>
|
|
631
|
+
* <DropdownMenuItem onSelect={() => handleShare('link')}>Copy Link</DropdownMenuItem>
|
|
296
632
|
* </DropdownMenuSubContent>
|
|
297
633
|
* </DropdownMenuSub>
|
|
298
634
|
* ```
|
|
635
|
+
*
|
|
636
|
+
* @example
|
|
637
|
+
* ```tsx
|
|
638
|
+
* // Complex nested menu structure
|
|
639
|
+
* <DropdownMenuContent>
|
|
640
|
+
* <DropdownMenuItem>Edit</DropdownMenuItem>
|
|
641
|
+
* <DropdownMenuSeparator />
|
|
642
|
+
* <DropdownMenuSub>
|
|
643
|
+
* <DropdownMenuSubTrigger>Export</DropdownMenuSubTrigger>
|
|
644
|
+
* <DropdownMenuSubContent>
|
|
645
|
+
* <DropdownMenuItem>Export as PDF</DropdownMenuItem>
|
|
646
|
+
* <DropdownMenuItem>Export as PNG</DropdownMenuItem>
|
|
647
|
+
* <DropdownMenuSub>
|
|
648
|
+
* <DropdownMenuSubTrigger>Advanced Export</DropdownMenuSubTrigger>
|
|
649
|
+
* <DropdownMenuSubContent>
|
|
650
|
+
* <DropdownMenuItem>Custom Resolution</DropdownMenuItem>
|
|
651
|
+
* <DropdownMenuItem>Batch Export</DropdownMenuItem>
|
|
652
|
+
* </DropdownMenuSubContent>
|
|
653
|
+
* </DropdownMenuSub>
|
|
654
|
+
* </DropdownMenuSubContent>
|
|
655
|
+
* </DropdownMenuSub>
|
|
656
|
+
* </DropdownMenuContent>
|
|
657
|
+
* ```
|
|
299
658
|
* @since 1.0.0
|
|
300
659
|
*/
|
|
301
660
|
declare function DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>): import("react/jsx-runtime").JSX.Element;
|
|
302
661
|
/**
|
|
303
662
|
* Trigger element for opening a submenu
|
|
304
663
|
*
|
|
305
|
-
* Displays an arrow indicator and opens the associated submenu on hover or
|
|
306
|
-
* Must be used within a DropdownMenuSub component.
|
|
664
|
+
* Displays an arrow indicator and opens the associated submenu on hover or keyboard
|
|
665
|
+
* navigation. Must be used within a DropdownMenuSub component. Automatically
|
|
666
|
+
* includes a chevron icon to indicate submenu availability and handles focus states.
|
|
307
667
|
*
|
|
308
|
-
* @
|
|
668
|
+
* @param asChild - Merge props onto the immediate child instead of rendering a wrapper element
|
|
669
|
+
* @param disabled - Whether the trigger is disabled and cannot open the submenu
|
|
670
|
+
* @param textValue - Optional text value used for typeahead search functionality
|
|
309
671
|
* @param inset - Whether to add left padding to align with items that have icons
|
|
310
672
|
*
|
|
311
673
|
* @example
|
|
312
674
|
* ```tsx
|
|
675
|
+
* // Basic submenu trigger with icon
|
|
313
676
|
* <DropdownMenuSub>
|
|
314
677
|
* <DropdownMenuSubTrigger>
|
|
315
678
|
* <Share className="mr-2 h-4 w-4" />
|
|
316
679
|
* Share Options
|
|
317
680
|
* </DropdownMenuSubTrigger>
|
|
318
681
|
* <DropdownMenuSubContent>
|
|
319
|
-
* <DropdownMenuItem>Email</DropdownMenuItem>
|
|
320
|
-
* <DropdownMenuItem>Copy
|
|
682
|
+
* <DropdownMenuItem>Email Link</DropdownMenuItem>
|
|
683
|
+
* <DropdownMenuItem>Copy to Clipboard</DropdownMenuItem>
|
|
321
684
|
* </DropdownMenuSubContent>
|
|
322
685
|
* </DropdownMenuSub>
|
|
323
686
|
* ```
|
|
687
|
+
*
|
|
688
|
+
* @example
|
|
689
|
+
* ```tsx
|
|
690
|
+
* // Submenu trigger with inset alignment
|
|
691
|
+
* <DropdownMenuContent>
|
|
692
|
+
* <DropdownMenuItem>
|
|
693
|
+
* <FileText className="mr-2 h-4 w-4" />
|
|
694
|
+
* Open File
|
|
695
|
+
* </DropdownMenuItem>
|
|
696
|
+
* <DropdownMenuSub>
|
|
697
|
+
* <DropdownMenuSubTrigger inset>
|
|
698
|
+
* Recent Files
|
|
699
|
+
* </DropdownMenuSubTrigger>
|
|
700
|
+
* <DropdownMenuSubContent>
|
|
701
|
+
* <DropdownMenuItem>Document.pdf</DropdownMenuItem>
|
|
702
|
+
* <DropdownMenuItem>Presentation.pptx</DropdownMenuItem>
|
|
703
|
+
* </DropdownMenuSubContent>
|
|
704
|
+
* </DropdownMenuSub>
|
|
705
|
+
* </DropdownMenuContent>
|
|
706
|
+
* ```
|
|
707
|
+
*
|
|
708
|
+
* @example
|
|
709
|
+
* ```tsx
|
|
710
|
+
* // Disabled submenu trigger
|
|
711
|
+
* <DropdownMenuSubTrigger disabled>
|
|
712
|
+
* Advanced Options (Pro Only)
|
|
713
|
+
* </DropdownMenuSubTrigger>
|
|
714
|
+
* ```
|
|
324
715
|
* @since 1.0.0
|
|
325
716
|
*/
|
|
326
717
|
declare function DropdownMenuSubTrigger({ className, inset, children, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {
|
|
327
718
|
inset?: boolean;
|
|
719
|
+
className?: string;
|
|
328
720
|
}): import("react/jsx-runtime").JSX.Element;
|
|
329
721
|
/**
|
|
330
722
|
* Content container for submenu items
|
|
331
723
|
*
|
|
332
724
|
* Contains the items displayed when a submenu is opened. Positioned relative
|
|
333
|
-
* to the trigger
|
|
725
|
+
* to the submenu trigger with intelligent collision detection. Supports all
|
|
726
|
+
* the same item types as the main menu content, enabling complex nested
|
|
727
|
+
* menu structures with consistent behavior and styling.
|
|
728
|
+
*
|
|
729
|
+
* @param asChild - Merge props onto the immediate child instead of rendering a wrapper element
|
|
730
|
+
* @param loop - When true, keyboard navigation will loop from last to first item
|
|
731
|
+
* @param side - The preferred side of the trigger to render against
|
|
732
|
+
* @param sideOffset - Distance in pixels from the trigger
|
|
733
|
+
* @param align - The preferred alignment against the trigger
|
|
734
|
+
* @param alignOffset - Distance in pixels from the align point
|
|
735
|
+
* @param avoidCollisions - Whether to avoid collisions with viewport boundaries
|
|
736
|
+
* @param sticky - Element positioning behavior relative to the viewport
|
|
737
|
+
* @param hideWhenDetached - Whether to hide content when reference element is occluded
|
|
334
738
|
*
|
|
335
|
-
* @component
|
|
336
739
|
* @example
|
|
337
740
|
* ```tsx
|
|
741
|
+
* // Basic submenu content with various item types
|
|
338
742
|
* <DropdownMenuSubContent>
|
|
339
|
-
* <DropdownMenuItem>
|
|
340
|
-
*
|
|
743
|
+
* <DropdownMenuItem>
|
|
744
|
+
* <Mail className="mr-2 h-4 w-4" />
|
|
745
|
+
* Send via Email
|
|
746
|
+
* </DropdownMenuItem>
|
|
747
|
+
* <DropdownMenuItem>
|
|
748
|
+
* <Link className="mr-2 h-4 w-4" />
|
|
749
|
+
* Copy Share Link
|
|
750
|
+
* </DropdownMenuItem>
|
|
341
751
|
* <DropdownMenuSeparator />
|
|
342
|
-
* <DropdownMenuItem>
|
|
752
|
+
* <DropdownMenuItem>
|
|
753
|
+
* <QrCode className="mr-2 h-4 w-4" />
|
|
754
|
+
* Generate QR Code
|
|
755
|
+
* </DropdownMenuItem>
|
|
756
|
+
* </DropdownMenuSubContent>
|
|
757
|
+
* ```
|
|
758
|
+
*
|
|
759
|
+
* @example
|
|
760
|
+
* ```tsx
|
|
761
|
+
* // Submenu with checkbox items for multi-selection
|
|
762
|
+
* <DropdownMenuSubContent>
|
|
763
|
+
* <DropdownMenuLabel>Export Options</DropdownMenuLabel>
|
|
764
|
+
* <DropdownMenuSeparator />
|
|
765
|
+
* <DropdownMenuCheckboxItem checked={includeMetadata} onCheckedChange={setIncludeMetadata}>
|
|
766
|
+
* Include Metadata
|
|
767
|
+
* </DropdownMenuCheckboxItem>
|
|
768
|
+
* <DropdownMenuCheckboxItem checked={compressFile} onCheckedChange={setCompressFile}>
|
|
769
|
+
* Compress File
|
|
770
|
+
* </DropdownMenuCheckboxItem>
|
|
771
|
+
* <DropdownMenuSeparator />
|
|
772
|
+
* <DropdownMenuItem>Export Now</DropdownMenuItem>
|
|
773
|
+
* </DropdownMenuSubContent>
|
|
774
|
+
* ```
|
|
775
|
+
*
|
|
776
|
+
* @example
|
|
777
|
+
* ```tsx
|
|
778
|
+
* // Nested submenu structure
|
|
779
|
+
* <DropdownMenuSubContent>
|
|
780
|
+
* <DropdownMenuItem>Basic Export</DropdownMenuItem>
|
|
781
|
+
* <DropdownMenuSub>
|
|
782
|
+
* <DropdownMenuSubTrigger>Advanced Settings</DropdownMenuSubTrigger>
|
|
783
|
+
* <DropdownMenuSubContent>
|
|
784
|
+
* <DropdownMenuItem>High Quality</DropdownMenuItem>
|
|
785
|
+
* <DropdownMenuItem>Custom Resolution</DropdownMenuItem>
|
|
786
|
+
* </DropdownMenuSubContent>
|
|
787
|
+
* </DropdownMenuSub>
|
|
343
788
|
* </DropdownMenuSubContent>
|
|
344
789
|
* ```
|
|
345
790
|
* @since 1.0.0
|
|
346
791
|
*/
|
|
347
|
-
declare function DropdownMenuSubContent({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>
|
|
792
|
+
declare function DropdownMenuSubContent({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent> & {
|
|
793
|
+
className?: string;
|
|
794
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
348
795
|
export { DropdownMenu, DropdownMenuPortal, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuGroup, DropdownMenuLabel, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent, };
|
|
349
796
|
//# sourceMappingURL=dropdown-menu.d.ts.map
|