Dev Build / cleanup (push) Canceled after 0s
Dev Build / typecheck (push) Canceled after 0s
Dev Build / build (linux-arm64, ubuntu-24.04-arm, linux-arm64) (push) Canceled after 0s
Dev Build / build (linux-x64, ubuntu-latest, linux-x64) (push) Canceled after 0s
Dev Build / build (win-x64, windows-latest, win32-x64) (push) Canceled after 0s
Dev Build / dispatch-dev-docker (push) Canceled after 0s
18 lines
624 B
Plaintext
18 lines
624 B
Plaintext
import { DefaultThemeGroupIds, NoInfer, ThemeGetter, ThemeObject } from './types'
|
|
|
|
const fallbackThemeArr: ThemeObject<DefaultThemeGroupIds>[DefaultThemeGroupIds] = []
|
|
|
|
export const fromTheme = <
|
|
AdditionalThemeGroupIds extends string = never,
|
|
DefaultThemeGroupIdsInner extends string = DefaultThemeGroupIds,
|
|
>(
|
|
key: NoInfer<DefaultThemeGroupIdsInner | AdditionalThemeGroupIds>,
|
|
): ThemeGetter => {
|
|
const themeGetter = (theme: ThemeObject<DefaultThemeGroupIdsInner | AdditionalThemeGroupIds>) =>
|
|
theme[key] || fallbackThemeArr
|
|
|
|
themeGetter.isThemeGetter = true as const
|
|
|
|
return themeGetter
|
|
}
|