import type { OutlineToken, ThemeColorTokens, ThemeConfigTokens } from '@helpwave/hightide-design/theme-tokens' import type { HightideComponentThemes } from './components/hightide' import type { HightideIcongraphy } from './icongraphy' import type { HightideBorderRadius, HightideBorderWidth, HightideElevation, HightideMotion, HightidePadding, HightideShadow, HightideSize, HightideSpacing } from './layout' import type { HightideThemeSemantics } from './semantics' import type { HightideFontFamilies, HightideFontSizing, HightideFontWeights, HightideTypography } from './typography' export type Theme = { colors: Record, fontFamilies: Record, fontWeights: Record, fontSizing: Record, typography: Record, icongraphy: Record, size: Record, spacing: Record, padding: Record, borderRadius: Record, borderWidth: Record, elevation: Record, shadow: Record, motion: Record, focusOutline: Record, config: Record, semantics: Record, components: Record, } export type HightideTheme = Theme & { colors: ThemeColorTokens & Theme['colors'], fontFamilies: HightideFontFamilies & Theme['fontFamilies'], fontWeights: HightideFontWeights & Theme['fontWeights'], fontSizing: HightideFontSizing & Theme['fontSizing'], typography: HightideTypography & Theme['typography'], icongraphy: HightideIcongraphy & Theme['icongraphy'], size: HightideSize & Theme['size'], spacing: HightideSpacing & Theme['spacing'], padding: HightidePadding & Theme['padding'], borderRadius: HightideBorderRadius & Theme['borderRadius'], borderWidth: HightideBorderWidth & Theme['borderWidth'], elevation: HightideElevation & Theme['elevation'], shadow: HightideShadow & Theme['shadow'], motion: HightideMotion & Theme['motion'], focusOutline: OutlineToken & Theme['focusOutline'], config: ThemeConfigTokens & Theme['config'], semantics: HightideThemeSemantics & Theme['semantics'], components: HightideComponentThemes & Theme['components'], }