Bluesky's "Application Layout Framework"
at main 19 lines 428 B view raw
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}