UNPKG

@spark-web/theme

Version:

--- title: Theme isExperimentalPackage: true ---

166 lines (165 loc) 8 kB
import type { PropsWithChildren } from 'react'; import type { SparkTheme, SparkThemeName } from "./make-theme.js"; export declare const defaultTheme: { backgroundLightness: { [x: string]: "light" | "dark"; infoLight: "light" | "dark"; criticalLight: "light" | "dark"; positiveLight: "light" | "dark"; cautionLight: "light" | "dark"; }; utils: { mapResponsiveProp: <Value>(value?: import("@spark-web/design-system").ResponsiveProp<Value>) => Value | (NonNullable<Value> | null)[] | undefined; mapResponsiveScale: <KeyOrBreakpointMap extends keyof ScaleDefinition, ScaleDefinition>(value: import("@spark-web/design-system").ResponsiveProp<KeyOrBreakpointMap> | undefined, scaleDefinition: ScaleDefinition) => ScaleDefinition[KeyOrBreakpointMap] | (ScaleDefinition[KeyOrBreakpointMap] | null)[] | undefined; optimizeResponsiveArray: <Value extends string | number>(value: readonly (Value | null)[] & { length: 2 | 3 | 4; } & { 0: Value | null; }) => readonly (Value | null)[] & { length: 2 | 3 | 4; } & { 0: Value | null; }; responsiveRange: (props: import("@spark-web/design-system").ResponsiveRangeProps) => [boolean, boolean, boolean, boolean]; responsiveStyles: ({ mobile, tablet, desktop, wide, }: import("./theme-utils.js").ResponsiveStyle) => import("@emotion/serialize").CSSObject | undefined; resolveResponsiveProps: import("facepaint").DynamicStyleFunction; }; color: import("./themes/_types/index.js").Tokens["color"] & { background: import("./themes/_types/index.js").Tokens["color"]["background"] & { infoLight: string; criticalLight: string; positiveLight: string; cautionLight: string; }; }; animation: { standard: { duration: number; easing: string; }; }; border: import("./themes/_types/index.js").Tokens["border"] & { radius: import("./themes/_types/index.js").Tokens["border"]["radius"] & { full: number; }; }; name: string; backgroundInteractions: { [key: string]: string; }; contentWidth: Record<Exclude<import("./themes/_types/sizing.js").Sizing, "xxsmall" | "xxlarge" | "xxxlarge">, number>; contentHeight: Record<Extract<import("./themes/_types/sizing.js").Sizing, "medium" | "large"> | "full", number>; elevation: { dropdownBlanket: number; dropdown: number; sticky: number; modalBlanket: number; modal: number; notification: number; }; spacing: import("./themes/_types/index.js").Tokens["spacing"] & { none: number; }; sizing: import("./themes/_types/index.js").Tokens["sizing"] & { none: number; full: string; }; shadow: Record<Extract<import("./themes/_types/sizing.js").Sizing, "small" | "medium" | "large">, string>; components: { buttons: import("./themes/_types/components/button.js").ButtonTokens; checkbox?: import("./themes/_types/components/checkbox.js").CheckboxTokens; contentDialog?: import("./themes/_types/components/content-dialog.js").ContentDialogTokens; radio?: import("./themes/_types/components/radio.js").RadioTokens; textInput?: import("./themes/_types/components/text-input.js").TextInputTokens; textLink?: import("./themes/_types/components/text-link.js").TextLinkTokens; tabs?: import("./themes/_types/components/tabs.js").TabsToken; }; breakpoint: typeof import("./themes/default/breakpoints.js").breakpoints; typography: import("./themes/_types/index.js").DecoratedTypography; }; export declare const GlobalThemeContext: import("react").Context<"brighte" | "pantheon" | "bravo">; export declare const ThemeContext: import("react").Context<{ backgroundLightness: { [x: string]: "light" | "dark"; infoLight: "light" | "dark"; criticalLight: "light" | "dark"; positiveLight: "light" | "dark"; cautionLight: "light" | "dark"; }; utils: { mapResponsiveProp: <Value>(value?: import("@spark-web/design-system").ResponsiveProp<Value>) => Value | (NonNullable<Value> | null)[] | undefined; mapResponsiveScale: <KeyOrBreakpointMap extends keyof ScaleDefinition, ScaleDefinition>(value: import("@spark-web/design-system").ResponsiveProp<KeyOrBreakpointMap> | undefined, scaleDefinition: ScaleDefinition) => ScaleDefinition[KeyOrBreakpointMap] | (ScaleDefinition[KeyOrBreakpointMap] | null)[] | undefined; optimizeResponsiveArray: <Value extends string | number>(value: readonly (Value | null)[] & { length: 2 | 3 | 4; } & { 0: Value | null; }) => readonly (Value | null)[] & { length: 2 | 3 | 4; } & { 0: Value | null; }; responsiveRange: (props: import("@spark-web/design-system").ResponsiveRangeProps) => [boolean, boolean, boolean, boolean]; responsiveStyles: ({ mobile, tablet, desktop, wide, }: import("./theme-utils.js").ResponsiveStyle) => import("@emotion/serialize").CSSObject | undefined; resolveResponsiveProps: import("facepaint").DynamicStyleFunction; }; color: import("./themes/_types/index.js").Tokens["color"] & { background: import("./themes/_types/index.js").Tokens["color"]["background"] & { infoLight: string; criticalLight: string; positiveLight: string; cautionLight: string; }; }; animation: { standard: { duration: number; easing: string; }; }; border: import("./themes/_types/index.js").Tokens["border"] & { radius: import("./themes/_types/index.js").Tokens["border"]["radius"] & { full: number; }; }; name: string; backgroundInteractions: { [key: string]: string; }; contentWidth: Record<Exclude<import("./themes/_types/sizing.js").Sizing, "xxsmall" | "xxlarge" | "xxxlarge">, number>; contentHeight: Record<Extract<import("./themes/_types/sizing.js").Sizing, "medium" | "large"> | "full", number>; elevation: { dropdownBlanket: number; dropdown: number; sticky: number; modalBlanket: number; modal: number; notification: number; }; spacing: import("./themes/_types/index.js").Tokens["spacing"] & { none: number; }; sizing: import("./themes/_types/index.js").Tokens["sizing"] & { none: number; full: string; }; shadow: Record<Extract<import("./themes/_types/sizing.js").Sizing, "small" | "medium" | "large">, string>; components: { buttons: import("./themes/_types/components/button.js").ButtonTokens; checkbox?: import("./themes/_types/components/checkbox.js").CheckboxTokens; contentDialog?: import("./themes/_types/components/content-dialog.js").ContentDialogTokens; radio?: import("./themes/_types/components/radio.js").RadioTokens; textInput?: import("./themes/_types/components/text-input.js").TextInputTokens; textLink?: import("./themes/_types/components/text-link.js").TextLinkTokens; tabs?: import("./themes/_types/components/tabs.js").TabsToken; }; breakpoint: typeof import("./themes/default/breakpoints.js").breakpoints; typography: import("./themes/_types/index.js").DecoratedTypography; }>; export declare const useGlobalTheme: () => SparkThemeName; export declare const useTheme: () => SparkTheme; export declare const GlobalThemeProvider: import("react").Provider<"brighte" | "pantheon" | "bravo">; type ThemeProviderProps = PropsWithChildren & { theme?: SparkThemeName; }; export declare const ThemeProvider: ({ children, theme: themeName, }: ThemeProviderProps) => import("@emotion/react/jsx-runtime").JSX.Element; export {};