UNPKG

@geekyhawks/react-native-ui-components

Version:

Lightweight, reusable React Native UI components with built-in theming — including Text, TextInput, FloatingLabelTextInput, Button, and more. Fully typed with TypeScript and easy to integrate into any 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