UNPKG

@lobehub/editor

Version:

A powerful and extensible rich text editor built on Meta's Lexical framework, providing a modern editing experience with React integration.

41 lines (40 loc) 1.41 kB
import type { FlexboxProps, MenuInfo, MenuItemType, TooltipProps } from '@lobehub/ui'; import type { ReactNode } from 'react'; export type ChatInputActionEvent = Pick<MenuInfo, 'key' | 'keyPath' | 'domEvent'>; export interface ActionItem extends MenuItemType { active?: boolean; alwaysDisplay?: boolean; children?: ReactNode; tooltipProps?: TooltipProps; wrapper?: (dom: ReactNode) => ReactNode; } export type DividerItem = { type: 'divider'; }; export type CollapseItem = { children: (ActionItem | DividerItem)[]; type: 'collapse'; }; export type DropdownItem = Omit<ActionItem, 'children' | 'type'> & { children: MenuItemType[]; type: 'dropdown'; }; export type ChatInputActionItem = ActionItem | DividerItem | CollapseItem | DropdownItem; export interface ChatInputActionsProps extends Omit<FlexboxProps, 'children'> { autoCollapse?: boolean; collapseOffset?: number; defaultGroupCollapse?: boolean; disabled?: boolean; groupCollapse?: boolean; items?: ChatInputActionItem[]; onActionClick?: (action: ChatInputActionEvent) => void; onGroupCollapseChange?: (collapse: boolean) => void; } export interface ChatInputActionsCollapseProps { children?: ReactNode; collapse?: boolean; gap?: FlexboxProps['gap']; groupCollapse?: boolean; mode?: 'default' | 'popup'; onGroupCollapseChange?: (collapse: boolean) => void; }