Bluesky's "Application Layout Framework"
1import {type ThemeName} from '../themes'
2
3export function select<T>(
4 name: ThemeName,
5 options:
6 | (Record<ThemeName, T> & {default?: undefined})
7 | (Partial<Record<ThemeName, T>> & {default: T}),
8): T {
9 switch (name) {
10 case 'light':
11 return options.light as T
12 case 'dark':
13 return options.dark as T
14 case 'dim':
15 return options.dim as T
16 default:
17 return options.default as T
18 }
19}