UNPKG

@youwen/ai-design-system

Version:

Enterprise AI-driven design system with comprehensive design tokens

580 lines (579 loc) 18.5 kB
/** * 响应式断点系统 * 基于现代设备使用模式和企业应用场景 */ export declare const breakpoints: { readonly mobile: { readonly min: 0; readonly max: 767; readonly name: "mobile"; }; readonly tablet: { readonly min: 768; readonly max: 1023; readonly name: "tablet"; }; readonly desktop: { readonly min: 1024; readonly max: 1439; readonly name: "desktop"; }; readonly desktopLarge: { readonly min: 1440; readonly max: number; readonly name: "desktop-large"; }; }; export declare const tailwindBreakpoints: { readonly sm: "640px"; readonly md: "768px"; readonly lg: "1024px"; readonly xl: "1280px"; readonly '2xl': "1536px"; }; export declare const componentResponsiveRules: { readonly container: { readonly mobile: { readonly width: "100%"; readonly maxWidth: "350px"; readonly height: "auto"; readonly minHeight: "180px"; readonly padding: "12px"; readonly layout: "single-column"; }; readonly tablet: { readonly width: "100%"; readonly maxWidth: "430px"; readonly height: "225px"; readonly padding: "15px"; readonly layout: "dual-slot"; }; readonly desktop: { readonly width: "430px"; readonly height: "225px"; readonly padding: "15px"; readonly layout: "full-layout"; }; readonly desktopLarge: { readonly width: "430px"; readonly height: "225px"; readonly padding: "15px"; readonly layout: "full-layout"; }; }; readonly slot: { readonly mobile: { readonly width: "100%"; readonly height: "auto"; readonly minHeight: "60px"; readonly margin: "0 0 8px 0"; readonly display: "block"; }; readonly tablet: { readonly width: "195px"; readonly height: "97px"; readonly margin: "0"; readonly display: "flex"; }; readonly desktop: { readonly width: "195px"; readonly height: "97px"; readonly margin: "0"; readonly display: "flex"; }; readonly desktopLarge: { readonly width: "195px"; readonly height: "97px"; readonly margin: "0"; readonly display: "flex"; }; }; readonly typography: { readonly mobile: { readonly big: { readonly fontSize: "32px"; readonly lineHeight: "24px"; }; readonly medium: { readonly fontSize: "20px"; readonly lineHeight: "14px"; }; readonly small: { readonly fontSize: "14px"; readonly lineHeight: "10px"; }; readonly mini: { readonly fontSize: "10px"; readonly lineHeight: "7px"; }; }; readonly tablet: { readonly big: { readonly fontSize: "36px"; readonly lineHeight: "26px"; }; readonly medium: { readonly fontSize: "22px"; readonly lineHeight: "16px"; }; readonly small: { readonly fontSize: "15px"; readonly lineHeight: "11px"; }; readonly mini: { readonly fontSize: "10px"; readonly lineHeight: "7px"; }; }; readonly desktop: { readonly big: { readonly fontSize: "40px"; readonly lineHeight: "28px"; }; readonly medium: { readonly fontSize: "24px"; readonly lineHeight: "17px"; }; readonly small: { readonly fontSize: "16px"; readonly lineHeight: "11px"; }; readonly mini: { readonly fontSize: "10px"; readonly lineHeight: "7px"; }; }; readonly desktopLarge: { readonly big: { readonly fontSize: "40px"; readonly lineHeight: "28px"; }; readonly medium: { readonly fontSize: "24px"; readonly lineHeight: "17px"; }; readonly small: { readonly fontSize: "16px"; readonly lineHeight: "11px"; }; readonly mini: { readonly fontSize: "10px"; readonly lineHeight: "7px"; }; }; }; readonly spacing: { readonly mobile: { readonly containerPadding: "12px"; readonly textGap: "4px"; readonly elementMargin: "1px"; }; readonly tablet: { readonly containerPadding: "15px"; readonly textGap: "5px"; readonly elementMargin: "2px"; }; readonly desktop: { readonly containerPadding: "15px"; readonly textGap: "6px"; readonly elementMargin: "2px"; }; readonly desktopLarge: { readonly containerPadding: "15px"; readonly textGap: "6px"; readonly elementMargin: "2px"; }; }; }; export declare const layoutConstraints: { readonly mobile: { readonly allowedLayouts: readonly ["leftTop", "rightTop", "leftBottom", "rightBottom"]; readonly forceVerticalStack: true; readonly maxSlotsPerRow: 1; }; readonly tablet: { readonly allowedLayouts: readonly ["leftTop", "rightTop", "leftBottom", "rightBottom", "leftTop,rightTop", "leftBottom,rightBottom", "leftTop,leftBottom", "rightTop,rightBottom"]; readonly maxSlotsPerRow: 2; }; readonly desktop: { readonly allowedLayouts: "all"; readonly maxSlotsPerRow: 2; }; readonly desktopLarge: { readonly allowedLayouts: "all"; readonly maxSlotsPerRow: 2; }; }; export declare function generateMediaQueries(): { mobile: string; tablet: string; desktop: string; desktopLarge: string; mobileOnly: string; tabletUp: string; desktopUp: string; }; export declare class ResponsiveManager { private currentBreakpoint; getCurrentBreakpoint(): keyof typeof breakpoints; getResponsiveConfig<T extends keyof typeof componentResponsiveRules>(component: T): { readonly width: "100%"; readonly maxWidth: "350px"; readonly height: "auto"; readonly minHeight: "180px"; readonly padding: "12px"; readonly layout: "single-column"; } | { readonly width: "100%"; readonly maxWidth: "430px"; readonly height: "225px"; readonly padding: "15px"; readonly layout: "dual-slot"; } | { readonly width: "430px"; readonly height: "225px"; readonly padding: "15px"; readonly layout: "full-layout"; } | { readonly width: "430px"; readonly height: "225px"; readonly padding: "15px"; readonly layout: "full-layout"; } | { readonly width: "100%"; readonly height: "auto"; readonly minHeight: "60px"; readonly margin: "0 0 8px 0"; readonly display: "block"; } | { readonly width: "195px"; readonly height: "97px"; readonly margin: "0"; readonly display: "flex"; } | { readonly width: "195px"; readonly height: "97px"; readonly margin: "0"; readonly display: "flex"; } | { readonly width: "195px"; readonly height: "97px"; readonly margin: "0"; readonly display: "flex"; } | { readonly big: { readonly fontSize: "32px"; readonly lineHeight: "24px"; }; readonly medium: { readonly fontSize: "20px"; readonly lineHeight: "14px"; }; readonly small: { readonly fontSize: "14px"; readonly lineHeight: "10px"; }; readonly mini: { readonly fontSize: "10px"; readonly lineHeight: "7px"; }; } | { readonly big: { readonly fontSize: "36px"; readonly lineHeight: "26px"; }; readonly medium: { readonly fontSize: "22px"; readonly lineHeight: "16px"; }; readonly small: { readonly fontSize: "15px"; readonly lineHeight: "11px"; }; readonly mini: { readonly fontSize: "10px"; readonly lineHeight: "7px"; }; } | { readonly big: { readonly fontSize: "40px"; readonly lineHeight: "28px"; }; readonly medium: { readonly fontSize: "24px"; readonly lineHeight: "17px"; }; readonly small: { readonly fontSize: "16px"; readonly lineHeight: "11px"; }; readonly mini: { readonly fontSize: "10px"; readonly lineHeight: "7px"; }; } | { readonly big: { readonly fontSize: "40px"; readonly lineHeight: "28px"; }; readonly medium: { readonly fontSize: "24px"; readonly lineHeight: "17px"; }; readonly small: { readonly fontSize: "16px"; readonly lineHeight: "11px"; }; readonly mini: { readonly fontSize: "10px"; readonly lineHeight: "7px"; }; } | { readonly containerPadding: "12px"; readonly textGap: "4px"; readonly elementMargin: "1px"; } | { readonly containerPadding: "15px"; readonly textGap: "5px"; readonly elementMargin: "2px"; } | { readonly containerPadding: "15px"; readonly textGap: "6px"; readonly elementMargin: "2px"; } | { readonly containerPadding: "15px"; readonly textGap: "6px"; readonly elementMargin: "2px"; }; isAllowedLayout(layout: string): boolean; getOptimalLayout(preferredLayout: string): string; } export declare function generateTailwindConfig(): { screens: { readonly sm: "640px"; readonly md: "768px"; readonly lg: "1024px"; readonly xl: "1280px"; readonly '2xl': "1536px"; }; spacing: { 'container-padding-mobile': "12px"; 'container-padding-desktop': "15px"; 'text-gap-mobile': "4px"; 'text-gap-desktop': "6px"; }; fontSize: { 'widget-big-mobile': ("24px" | "32px")[]; 'widget-big-desktop': ("40px" | "28px")[]; }; }; export type BreakpointName = keyof typeof breakpoints; export type ComponentName = keyof typeof componentResponsiveRules; export type LayoutConstraint = typeof layoutConstraints[BreakpointName]; export declare const responsiveSystem: { breakpoints: { readonly mobile: { readonly min: 0; readonly max: 767; readonly name: "mobile"; }; readonly tablet: { readonly min: 768; readonly max: 1023; readonly name: "tablet"; }; readonly desktop: { readonly min: 1024; readonly max: 1439; readonly name: "desktop"; }; readonly desktopLarge: { readonly min: 1440; readonly max: number; readonly name: "desktop-large"; }; }; tailwindBreakpoints: { readonly sm: "640px"; readonly md: "768px"; readonly lg: "1024px"; readonly xl: "1280px"; readonly '2xl': "1536px"; }; componentResponsiveRules: { readonly container: { readonly mobile: { readonly width: "100%"; readonly maxWidth: "350px"; readonly height: "auto"; readonly minHeight: "180px"; readonly padding: "12px"; readonly layout: "single-column"; }; readonly tablet: { readonly width: "100%"; readonly maxWidth: "430px"; readonly height: "225px"; readonly padding: "15px"; readonly layout: "dual-slot"; }; readonly desktop: { readonly width: "430px"; readonly height: "225px"; readonly padding: "15px"; readonly layout: "full-layout"; }; readonly desktopLarge: { readonly width: "430px"; readonly height: "225px"; readonly padding: "15px"; readonly layout: "full-layout"; }; }; readonly slot: { readonly mobile: { readonly width: "100%"; readonly height: "auto"; readonly minHeight: "60px"; readonly margin: "0 0 8px 0"; readonly display: "block"; }; readonly tablet: { readonly width: "195px"; readonly height: "97px"; readonly margin: "0"; readonly display: "flex"; }; readonly desktop: { readonly width: "195px"; readonly height: "97px"; readonly margin: "0"; readonly display: "flex"; }; readonly desktopLarge: { readonly width: "195px"; readonly height: "97px"; readonly margin: "0"; readonly display: "flex"; }; }; readonly typography: { readonly mobile: { readonly big: { readonly fontSize: "32px"; readonly lineHeight: "24px"; }; readonly medium: { readonly fontSize: "20px"; readonly lineHeight: "14px"; }; readonly small: { readonly fontSize: "14px"; readonly lineHeight: "10px"; }; readonly mini: { readonly fontSize: "10px"; readonly lineHeight: "7px"; }; }; readonly tablet: { readonly big: { readonly fontSize: "36px"; readonly lineHeight: "26px"; }; readonly medium: { readonly fontSize: "22px"; readonly lineHeight: "16px"; }; readonly small: { readonly fontSize: "15px"; readonly lineHeight: "11px"; }; readonly mini: { readonly fontSize: "10px"; readonly lineHeight: "7px"; }; }; readonly desktop: { readonly big: { readonly fontSize: "40px"; readonly lineHeight: "28px"; }; readonly medium: { readonly fontSize: "24px"; readonly lineHeight: "17px"; }; readonly small: { readonly fontSize: "16px"; readonly lineHeight: "11px"; }; readonly mini: { readonly fontSize: "10px"; readonly lineHeight: "7px"; }; }; readonly desktopLarge: { readonly big: { readonly fontSize: "40px"; readonly lineHeight: "28px"; }; readonly medium: { readonly fontSize: "24px"; readonly lineHeight: "17px"; }; readonly small: { readonly fontSize: "16px"; readonly lineHeight: "11px"; }; readonly mini: { readonly fontSize: "10px"; readonly lineHeight: "7px"; }; }; }; readonly spacing: { readonly mobile: { readonly containerPadding: "12px"; readonly textGap: "4px"; readonly elementMargin: "1px"; }; readonly tablet: { readonly containerPadding: "15px"; readonly textGap: "5px"; readonly elementMargin: "2px"; }; readonly desktop: { readonly containerPadding: "15px"; readonly textGap: "6px"; readonly elementMargin: "2px"; }; readonly desktopLarge: { readonly containerPadding: "15px"; readonly textGap: "6px"; readonly elementMargin: "2px"; }; }; }; layoutConstraints: { readonly mobile: { readonly allowedLayouts: readonly ["leftTop", "rightTop", "leftBottom", "rightBottom"]; readonly forceVerticalStack: true; readonly maxSlotsPerRow: 1; }; readonly tablet: { readonly allowedLayouts: readonly ["leftTop", "rightTop", "leftBottom", "rightBottom", "leftTop,rightTop", "leftBottom,rightBottom", "leftTop,leftBottom", "rightTop,rightBottom"]; readonly maxSlotsPerRow: 2; }; readonly desktop: { readonly allowedLayouts: "all"; readonly maxSlotsPerRow: 2; }; readonly desktopLarge: { readonly allowedLayouts: "all"; readonly maxSlotsPerRow: 2; }; }; generateMediaQueries: typeof generateMediaQueries; generateTailwindConfig: typeof generateTailwindConfig; ResponsiveManager: typeof ResponsiveManager; };