import * as foundation from './default-theme/foundational-styles'; import * as constants from './default-theme/constants'; import * as React from 'react'; import { O } from 'ts-toolbelt'; import { themedProperty } from './utils/themed-property'; import { useDefaults } from './utils/use-defaults'; import { DefaultTheme } from 'styled-components'; import { getTextSizeForControlHeight, getBorderRadiusForControlHeight } from './utils/get-text-size-for-control-height'; export declare const theme: DefaultTheme; export { constants }; export declare type DeepPartial = { [P in keyof T]?: T[P] extends Array ? Array> : T[P] extends ReadonlyArray ? ReadonlyArray> : DeepPartial; }; export declare type OptionalTheme = DeepPartial; export declare type RequiredTheme = O.Required; /** * Create a theme with TypeScript schema * @example * const darkTheme = createTheme(theme) */ export declare const createTheme: (theme?: DeepPartial) => DeepPartial; export declare const SmashingThemeProvider: React.FC<{ theme?: OptionalTheme; }>; export declare const SmashingThemeModifier: ({ theme: modifiedTheme, children }: { children: React.ReactChild; theme: DeepPartial; }) => JSX.Element; declare const useTheme: () => DefaultTheme; declare const getValueWithUnit: (value: React.ReactText) => string; /** * Call function if it's defined */ declare const safeInvoke: (fn: any, ...args: any[]) => any; export { safeInvoke, useTheme, themedProperty, useDefaults, getTextSizeForControlHeight, getBorderRadiusForControlHeight, getValueWithUnit }; export declare type I = T; declare module 'styled-components' { interface SmashingThemeFontFamilies extends I { } interface SmashingThemeFills extends I { } interface SmashingThemeElevation extends I { } interface SmashingThemeScales extends I { } interface SmashingThemePalette extends I { } interface SmashingThemeColors extends I { } interface SmashingThemeSpacing extends I { } interface SmashingButtonDefaults { } interface SmashingCheckboxDefaults { } interface SmashingTextInputDefaults { } interface SmashingTextareaDefaults { } interface SmashingAlertDefaults { } interface SmashingSelectDefaults { } interface SmashingFormFieldDefaults { } interface SmashingAvatarDefaults { } interface SmashingSpinnerDefaults { } interface SmashingBarChartDefaults { } interface SmashingListDefaults { } interface SmashingCalendarInputDefaults { } interface SmashingPieChartDefaults { } interface SmashingProgressBarChartDefaults { } interface SmashingSpiderChartDefaults { } interface SmashingRadialProgressDefaults { } interface SmashingSideSheetDefaults { } interface SmashingMenuDefaults { } interface SmashingSelectMenuDefaults { } interface SmashingControlGroupDefaults { } interface SmashingDefaults extends SmashingAlertDefaults, SmashingAvatarDefaults, SmashingBarChartDefaults, SmashingButtonDefaults, SmashingCalendarInputDefaults, SmashingCheckboxDefaults, SmashingControlGroupDefaults, SmashingFormFieldDefaults, SmashingListDefaults, SmashingMenuDefaults, SmashingPieChartDefaults, SmashingProgressBarChartDefaults, SmashingRadialProgressDefaults, SmashingSelectDefaults, SmashingSelectMenuDefaults, SmashingSideSheetDefaults, SmashingSpiderChartDefaults, SmashingSpinnerDefaults, SmashingTextareaDefaults, SmashingTextInputDefaults { } interface DefaultTheme { radius: string; elevation: SmashingThemeElevation; palette: SmashingThemePalette; scales: SmashingThemeScales; fills: SmashingThemeFills; colors: SmashingThemeColors; spacing: SmashingThemeSpacing; fontFamilies: SmashingThemeFontFamilies; defaults?: SmashingDefaults; } }