@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
159 lines (158 loc) • 4 kB
text/typescript
import { Trigger } from "../types/trigger.mjs";
import "../types/index.mjs";
import { Placement } from "../utils/placement.mjs";
import { CSSProperties, ComponentPropsWithRef, ReactElement, ReactNode } from "react";
import { Popover, PopoverBackdropProps, PopoverPopupProps, PopoverPortalProps, PopoverPositionerProps, PopoverTriggerProps } from "@base-ui/react/popover";
//#region src/Popover/type.d.ts
type PopoverPlacement = Placement;
type PopoverTrigger = Trigger;
/**
* Base UI Positioner props that can be passed through
*/
type PopoverPositionerProps$1 = Omit<PopoverPositionerProps, 'className' | 'style' | 'children'>;
/**
* Base UI Trigger props that can be passed through
*/
type PopoverTriggerComponentProps = Omit<PopoverTriggerProps, 'className' | 'style' | 'children' | 'render' | 'nativeButton' | 'handle' | 'payload'>;
/**
* Base UI Popup props that can be passed through
*/
type PopoverPopupProps$1 = Omit<PopoverPopupProps, 'className' | 'style' | 'children'>;
/**
* Base UI Backdrop props that can be passed through
*/
type PopoverBackdropProps$1 = Omit<PopoverBackdropProps, 'className' | 'style'>;
/**
* Base UI Portal props that can be passed through
*/
type PopoverPortalProps$1 = Omit<PopoverPortalProps, 'children' | 'container'>;
interface PopoverProps {
/**
* 是否显示箭头, 在 `inset` 下无法使用
* @default false
*/
arrow?: boolean;
/**
* Base UI Backdrop 组件的 props
*/
backdropProps?: PopoverBackdropProps$1;
/**
* 触发元素
*/
children: ReactElement | ReactNode;
/**
* 弹出容器类名
*/
className?: string;
/**
* 自定义类名
*/
classNames?: {
arrow?: string;
content?: string;
root?: string;
trigger?: string;
};
/**
* 关闭延迟(毫秒),优先级高于 mouseLeaveDelay
*/
closeDelay?: number;
/**
* 弹出内容
*/
content: ReactNode;
/**
* 默认打开状态
* @default false
*/
defaultOpen?: boolean;
/**
* 是否禁用
* @default false
*/
disabled?: boolean;
/**
* 获取弹出容器
*/
getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
/**
* 是否嵌入 trigger 内部显示
* @default false
*/
inset?: boolean;
/**
* 鼠标移入延迟(秒)
* @default 0.1
*/
mouseEnterDelay?: number;
/**
* 鼠标移出延迟(秒)
* @default 0.1
*/
mouseLeaveDelay?: number;
/**
* 是否使用原生 button 元素作为触发器
*/
nativeButton?: boolean;
/**
* 打开状态变化回调
*/
onOpenChange?: (open: boolean) => void;
/**
* 受控的打开状态
*/
open?: boolean;
/**
* 打开延迟(毫秒),优先级高于 mouseEnterDelay
*/
openDelay?: number;
/**
* 弹出位置
* @default 'top'
*/
placement?: PopoverPlacement;
/**
* Base UI Popup 组件的 props
*/
popupProps?: PopoverPopupProps$1;
/**
* Base UI Portal 组件的 props
*/
portalProps?: PopoverPortalProps$1;
/**
* Base UI Positioner 组件的 props
*/
positionerProps?: PopoverPositionerProps$1;
/**
* ref
*/
ref?: ComponentPropsWithRef<typeof Popover.Trigger>['ref'];
/**
* 当设置为 true 时,即使在 PopoverGroup 内部也会独立渲染,忽略 group 单例行为
*/
standalone?: boolean;
/**
* 自定义样式
*/
styles?: {
arrow?: CSSProperties;
content?: CSSProperties;
root?: CSSProperties;
};
/**
* 触发方式
* @default 'hover'
*/
trigger?: Trigger;
/**
* Base UI Trigger 组件的 props
*/
triggerProps?: PopoverTriggerComponentProps;
/**
* z-index
*/
zIndex?: number;
}
//#endregion
export { PopoverBackdropProps$1 as PopoverBackdropProps, PopoverPlacement, PopoverPopupProps$1 as PopoverPopupProps, PopoverPortalProps$1 as PopoverPortalProps, PopoverPositionerProps$1 as PopoverPositionerProps, PopoverProps, PopoverTrigger, PopoverTriggerComponentProps };
//# sourceMappingURL=type.d.mts.map