UNPKG

react-native-unistyles

Version:
81 lines 2.99 kB
import { UnistylesEventType, ScreenOrientation, IOSContentSizeCategory, AndroidContentSizeCategory } from '../common'; import type { UnistylesThemes, UnistylesBreakpoints } from '../global'; import type { ScreenSize } from './core'; import type { UnistylesPlugin } from './plugin'; export type ColorSchemeName = 'light' | 'dark' | 'unspecified'; export type ScreenInsets = { top: number; right: number; bottom: number; left: number; }; export type ScreenDimensions = { height: number; width: number; }; export interface StatusBar extends ScreenDimensions { setColor(color?: string, alpha?: number): void; setHidden(hidden: boolean): void; } export interface NavigationBar extends ScreenDimensions { setColor(color?: string, alpha?: number): void; setHidden(hidden: boolean): void; } export type UnistylesConfig = { adaptiveThemes?: boolean; initialTheme?: keyof UnistylesThemes; plugins?: Array<UnistylesPlugin>; experimentalCSSMediaQueries?: boolean; windowResizeDebounceTimeMs?: number; disableAnimatedInsets?: boolean; }; export type UnistylesBridge = { screenWidth: number; screenHeight: number; enabledPlugins: Array<string>; hasAdaptiveThemes: boolean; themeName: keyof UnistylesThemes; breakpoint: keyof UnistylesBreakpoints; colorScheme: ColorSchemeName; contentSizeCategory: IOSContentSizeCategory | AndroidContentSizeCategory; sortedBreakpointPairs: Array<[keyof UnistylesBreakpoints, UnistylesBreakpoints[keyof UnistylesBreakpoints]]>; insets: ScreenInsets; statusBar: StatusBar; navigationBar: NavigationBar; pixelRatio: number; fontScale: number; rtl: boolean; themes: Array<keyof UnistylesThemes>; useBreakpoints(breakpoints: UnistylesBreakpoints): void; useTheme(name: keyof UnistylesThemes): void; updateTheme(name: keyof UnistylesThemes): void; useAdaptiveThemes(enable: boolean): void; addPlugin(pluginName: string, notify: boolean): void; removePlugin(pluginName: string): void; setRootViewBackgroundColor(color?: string, alpha?: number): void; setImmersiveMode(isEnabled: boolean): void; setWindowResizeDebounceTimeMs(timeMs: number): void; disableAnimatedInsets(): void; }; export type UnistylesThemeEvent = { type: UnistylesEventType.Theme; payload: { themeName: keyof UnistylesThemes; }; }; export type UnistylesMobileLayoutEvent = { type: UnistylesEventType.Layout; payload: { screen: ScreenSize; statusBar: ScreenDimensions; navigationBar: ScreenDimensions; insets: ScreenInsets; breakpoint: keyof UnistylesBreakpoints; orientation: typeof ScreenOrientation[keyof typeof ScreenOrientation]; }; }; export type UnistylesPluginEvent = { type: UnistylesEventType.Plugin; }; export type UnistylesEvents = UnistylesThemeEvent | UnistylesMobileLayoutEvent | UnistylesPluginEvent; //# sourceMappingURL=unistyles.d.ts.map