/** * Bottom sheet 当前吸附点标识。 */ export type ShowtimeSheetSnap = string; /** * 单个吸附点配置。 */ export interface ShowtimeBottomSheetSnapPoint { /** 吸附点唯一标识。 */ key: ShowtimeSheetSnap; /** 吸附点纵向位置,单位为视口高度百分比。 */ position: number; } /** * 兼容旧版三档对象写法。 */ export interface ShowtimeBottomSheetLegacySnapPoints { peek: number; half: number; full: number; } /** * 对外支持的 snapPoints 输入。 * 推荐使用数组,兼容对象结构仅作为过渡层保留。 */ export type ShowtimeBottomSheetSnapPoints = ShowtimeBottomSheetSnapPoint[] | Partial; /** * Bottom sheet 对外暴露的 props。 */ export interface ShowtimeBottomSheetProps { /** 当前吸附点,通常通过 `v-model:snap` 控制。 */ snap?: ShowtimeSheetSnap; /** 自定义吸附点列表,兼容旧三档对象格式。 */ snapPoints?: ShowtimeBottomSheetSnapPoints; /** 触发吸附点切换的最小拖拽距离,单位为 px。 */ minDragDistance?: number; /** 松手位置接近 snap 时直接吸附到该 snap 的容差,单位为视口高度百分比。 */ snapSettleTolerance?: number; /** 追加到面板根节点上的类名。 */ contentClass?: string; /** 追加到 header 插槽容器上的类名。 */ headerClass?: string; /** 追加到默认内容容器上的类名。 */ bodyClass?: string; /** 是否启用首次挂载时的轻微上浮入场动画。 */ entranceAnimation?: boolean; /** 首次入场上浮偏移量,单位为 px。 */ entranceOffset?: number; /** 首次入场动画时长,单位为 ms。 */ entranceDuration?: number; /** 是否启用 snap 切换时的 spring 动画。 */ snapAnimation?: boolean; /** snap 弹簧动画刚度,值越大越利落。 */ snapAnimationStiffness?: number; /** snap 弹簧动画阻尼,值越大越稳。 */ snapAnimationDamping?: number; /** snap 弹簧动画质量,值越大越有惯性。 */ snapAnimationMass?: number; /** 是否只允许顶部 header 区域触发拖拽。开启时会关闭内容区边界联动。 */ headerDragOnly?: boolean; /** 是否显示默认拖拽把手。 */ handleVisible?: boolean; /** 默认拖拽把手宽度,单位为 px。 */ handleWidth?: number; /** 默认拖拽把手高度,单位为 px。 */ handleHeight?: number; /** 面板背景色。 */ panelBackground?: string; /** 面板顶部圆角半径,单位为 px。 */ panelRadius?: number; /** 是否允许内容区在滚动边界继续推动 snap 切换,仅在 `headerDragOnly=false` 时生效。 */ contentEdgeSnap?: boolean; /** 内容区边界联动触发阈值,单位为 px。 */ contentEdgeSnapThreshold?: number; } /** * 内容区滚动边界状态。 * 用来判断滚动意图是否应该升级为 snap 切换。 */ export interface ShowtimeBottomSheetScrollState { /** 内容区是否已经滚动到顶部。 */ isAtTop: boolean; /** 内容区是否已经滚动到底部。 */ isAtBottom: boolean; } /** * 顶部拖拽过程中对外暴露的位置状态。 */ export interface ShowtimeBottomSheetDragPayload { /** 当前面板相对视口顶部的 y 坐标,单位 px。 */ y: number; /** 本次拖拽累计位移,单位 px。 */ movementY: number; /** 当前手势是否仍在拖拽中。 */ isDragging: boolean; } /** * 组件默认的吸附点位置。 */ export declare const DEFAULT_SNAP_POINTS: ShowtimeBottomSheetSnapPoint[]; /** * 组件默认 props。 * 这里统一维护默认值,避免 `.vue`、文档和外部类型理解不一致。 */ export declare const DEFAULT_SHOWTIME_BOTTOM_SHEET_PROPS: Required>;