import * as react_jsx_runtime from 'react/jsx-runtime';
import React, { ReactNode } from 'react';
interface MenuItem {
id: string;
label: string;
link?: string;
onClick?: () => void;
icon?: React.ReactNode | string;
disabled?: boolean;
active?: boolean;
children?: MenuItem[];
className?: string;
style?: React.CSSProperties;
}
type DDMenuTheme = "light" | "dark" | "auto";
type DDMenuPlacement = "bottom" | "bottom-start" | "bottom-end" | "top" | "top-start" | "top-end" | "right" | "left";
type DDMenuVariant = "default" | "minimal" | "navbar" | "sidebar";
type DDMenuSize = "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
interface DDMenuProps {
items: MenuItem[];
theme?: "light" | "dark" | "auto";
variant?: DDMenuVariant;
size?: DDMenuSize;
className?: string;
style?: React.CSSProperties;
trigger?: React.ReactNode;
placement?: "bottom" | "bottom-start" | "bottom-end" | "top" | "top-start" | "top-end" | "right" | "left";
onItemClick?: (item: MenuItem) => void;
closeOnClick?: boolean;
disabled?: boolean;
hoverDelay?: number;
onHoverChange?: (isHovering: boolean) => void;
onFontSizeChange?: (fontSize: DDMenuSize) => void;
}
declare const DDMenu: ({ items, theme, variant, size, className, style, trigger, placement, onItemClick, closeOnClick, disabled, hoverDelay, onHoverChange, onFontSizeChange, }: DDMenuProps) => react_jsx_runtime.JSX.Element;
type DDSearchableVariant = "default" | "minimal" | "outlined" | "filled";
type DDSearchableSize = "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
interface DDSearchableProps {
items: MenuItem[];
theme?: "light" | "dark" | "auto";
variant?: DDSearchableVariant;
size?: DDSearchableSize;
className?: string;
style?: React.CSSProperties;
placeholder?: string;
onItemSelect?: (item: MenuItem) => void;
onSearchChange?: (searchTerm: string) => void;
disabled?: boolean;
clearable?: boolean;
maxHeight?: number;
noResultsText?: string;
searchKeys?: (keyof MenuItem)[];
caseSensitive?: boolean;
minSearchLength?: number;
debounceMs?: number;
selectedItem?: MenuItem | null;
allowCustomValue?: boolean;
onCustomValue?: (value: string) => void;
}
declare const DDSearchable: ({ items, theme, variant, size, className, style, placeholder, onItemSelect, onSearchChange, disabled, clearable, maxHeight, noResultsText, searchKeys, caseSensitive, minSearchLength, debounceMs, selectedItem, allowCustomValue, onCustomValue, }: DDSearchableProps) => react_jsx_runtime.JSX.Element;
interface DDMenuWrapperProps {
children: ReactNode;
className?: string;
style?: React.CSSProperties;
}
/**
* DDMenuWrapper - A component that creates an isolated styling context for DDMenu components
*
* This wrapper creates a boundary that prevents external styles from affecting the DDMenu
* component's appearance and positioning. Use this wrapper when integrating DDMenu in
* environments with conflicting styles (like complex navbars).
*
* @example
* ```tsx
*
*
*
* ```
*/
declare const DDMenuWrapper: React.FC;
export { DDMenu, DDMenu as DDMenuDefault, type DDMenuPlacement, type DDMenuSize, type DDMenuTheme, type DDMenuVariant, DDMenuWrapper, DDSearchable, DDSearchable as DDSearchableDefault, type DDSearchableSize, type DDSearchableVariant, type MenuItem, DDMenu as default };