UNPKG

@geekyhawks/react-native-ui-components

Version:

A lightweight and reusable React Native UI components library with customizable Text, TextInput, FloatingLabelTextInput, Button, and more. Built with TypeScript, fully typed, and designed for easy integration into any React Native project.

72 lines 3.08 kB
/** * Theme Provider and Context * * Exposes a React Context for the theme and a ThemeProvider component. * Allows library users to wrap their app and provide custom themes or use defaults. * Includes a `useTheme` hook for easy access to theme properties inside components. * * Author: Geeky Hawks FZE LLC */ import React from "react"; import { Theme } from "./Theme"; import { ActivityIndicatorVariants, AppBarVariants, ButtonShapeVariants, ButtonSizeVariants, CheckBoxColorVariants, CheckBoxSizeVariants, FloatingLabelTextInputSizeVariants, FloatingLabelTextInputStyleVariants, LoaderModalVariants, RadioColorVariants, RadioSizeVariants, StatusBarVariants, SwitchColorVariants, TextInputSizeVariants, TextInputStyleVariants, TextVariants } from "./variants"; /** * ThemeContextType * * Contains theme and textVariants for consumption in components. */ type ThemeContextType = { activityIndicatorVariants: ActivityIndicatorVariants; appBarVariants: AppBarVariants; buttonShapeVariants: ButtonShapeVariants; buttonSizeVariants: ButtonSizeVariants; checkBoxColorVariants: CheckBoxColorVariants; checkBoxSizeVariants: CheckBoxSizeVariants; floatingLabelTextInputSizeVariants: FloatingLabelTextInputSizeVariants; floatingLabelTextInputStyleVariants: FloatingLabelTextInputStyleVariants; loaderModalVariants: LoaderModalVariants; radioColorVariants: RadioColorVariants; radioSizeVariants: RadioSizeVariants; statusBarVariants: StatusBarVariants; switchColorVariants: SwitchColorVariants; textInputSizeVariants: TextInputSizeVariants; textInputStyleVariants: TextInputStyleVariants; textVariants: TextVariants; theme: Theme; }; /** * useTheme * * Hook to access theme and textVariants in components. */ export declare const useTheme: () => ThemeContextType; type ThemeProviderProps = { activityIndicatorVariants?: ActivityIndicatorVariants; appBarVariants?: AppBarVariants; buttonShapeVariants?: ButtonShapeVariants; buttonSizeVariants?: ButtonSizeVariants; checkBoxColorVariants?: CheckBoxColorVariants; checkBoxSizeVariants?: CheckBoxSizeVariants; children: React.ReactNode; floatingLabelTextInputSizeVariants?: FloatingLabelTextInputSizeVariants; floatingLabelTextInputStyleVariants?: FloatingLabelTextInputStyleVariants; loaderModalVariants?: LoaderModalVariants; radioColorVariants?: RadioColorVariants; radioSizeVariants?: RadioSizeVariants; statusBarVariants?: StatusBarVariants; switchColorVariants?: SwitchColorVariants; textInputSizeVariants?: TextInputSizeVariants; textInputStyleVariants?: TextInputStyleVariants; textVariants?: TextVariants; theme?: Theme; }; /** * ThemeProvider * * Wrap your app and optionally pass a custom theme, variants, or spacing. * Only **replaces** the default values — no automatic merging. * If users want defaults, they need to explicitly spread them. */ export declare const ThemeProvider: React.FC<ThemeProviderProps>; export {}; //# sourceMappingURL=ThemeContext.d.ts.map