UNPKG

yugrid

Version:

yugrid 现代化响应式 Grid 布局系统,支持 ES Module 和 CommonJS

146 lines (124 loc) 3.49 kB
/** * YuGrid TypeScript 类型定义 * 响应式 Grid 布局系统 */ // 断点类型 export type Breakpoint = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'; // 断点配置 export interface BreakpointConfig { xs: number; sm: number; md: number; lg: number; xl: number; xxl: number; } // 容器最大宽度配置 export interface ContainerMaxWidths { sm?: number; md?: number; lg?: number; xl?: number; xxl?: number; } // 对齐方式 export type JustifyContent = 'start' | 'end' | 'center' | 'space-around' | 'space-between' | 'space-evenly'; export type AlignItems = 'top' | 'middle' | 'bottom' | 'stretch'; // 列配置 export interface ColConfig { span?: number; offset?: number; push?: number; pull?: number; order?: number; flex?: string | number; } // 响应式列配置 export interface ResponsiveColConfig { xs?: ColConfig; sm?: ColConfig; md?: ColConfig; lg?: ColConfig; xl?: ColConfig; xxl?: ColConfig; } // Container 选项 export interface ContainerOptions { fluid?: boolean; maxWidths?: ContainerMaxWidths; breakpoints?: BreakpointConfig; } // Row 选项 export interface RowOptions { gutter?: number; justify?: JustifyContent; align?: AlignItems; wrap?: boolean; } // Col 选项 export interface ColOptions extends ColConfig { breakpoints?: BreakpointConfig; responsive?: ResponsiveColConfig; } // Container 类 export declare class YuContainer { element: HTMLElement; options: ContainerOptions; constructor(element: string | HTMLElement, options?: ContainerOptions); init(): void; updateStyles(): void; bindEvents(): void; } // Row 类 export declare class YuRow { element: HTMLElement; options: RowOptions; constructor(element: string | HTMLElement, options?: RowOptions); init(): void; updateGutter(): void; setGutter(gutter: number): void; } // Col 类 export declare class YuCol { element: HTMLElement; options: ColOptions; constructor(element: string | HTMLElement, options?: ColOptions); init(): void; updateClasses(): void; getConfigForBreakpoint(breakpoint: Breakpoint): ColOptions; bindEvents(): void; setSpan(span: number, breakpoint?: Breakpoint): void; } // 工厂函数 export declare function createContainer(element: string | HTMLElement, options?: ContainerOptions): YuContainer; export declare function createRow(element: string | HTMLElement, options?: RowOptions): YuRow; export declare function createCol(element: string | HTMLElement, options?: ColOptions): YuCol; // 批量初始化 export declare function initGrid(selector?: string): Array<YuContainer | YuRow | YuCol>; // 工具函数 export declare function getCurrentBreakpoint(breakpoints?: BreakpointConfig): Breakpoint; // 常量 export declare const DEFAULT_BREAKPOINTS: BreakpointConfig; export declare const DEFAULT_CONTAINER_MAX_WIDTHS: ContainerMaxWidths; // 主要导出接口 export interface YuGridInterface { Container: typeof YuContainer; Row: typeof YuRow; Col: typeof YuCol; createContainer: typeof createContainer; createRow: typeof createRow; createCol: typeof createCol; initGrid: typeof initGrid; DEFAULT_BREAKPOINTS: BreakpointConfig; DEFAULT_CONTAINER_MAX_WIDTHS: ContainerMaxWidths; getCurrentBreakpoint: typeof getCurrentBreakpoint; } // 默认导出 declare const YuGrid: YuGridInterface; export default YuGrid; // 全局声明(用于浏览器环境) declare global { interface Window { YuGrid: YuGridInterface; } }