@@ -11,24 +11,42 @@ import { Icon } from "solid-heroicons";
1111interface ThemeOption {
1212 value : ThemeType | "system" ;
1313 label : string ;
14- icon : { path : JSX . Element ; outline : boolean ; mini : boolean } ;
14+ icon : ( cls : string ) => JSX . Element ;
1515}
1616
1717const THEME_OPTIONS : ThemeOption [ ] = [
1818 {
1919 value : "light" ,
2020 label : "Light" ,
21- icon : sun ,
21+ icon : ( cls : string ) => (
22+ < Icon
23+ class = { cls }
24+ path = { sun }
25+ aria-hidden
26+ />
27+ ) ,
2228 } ,
2329 {
2430 value : "dark" ,
2531 label : "Dark" ,
26- icon : moon ,
32+ icon : ( cls : string ) => (
33+ < Icon
34+ class = { cls }
35+ path = { moon }
36+ aria-hidden
37+ />
38+ ) ,
2739 } ,
2840 {
2941 value : "system" ,
3042 label : "System" ,
31- icon : computerDesktop ,
43+ icon : ( cls : string ) => (
44+ < Icon
45+ class = { cls }
46+ path = { computerDesktop }
47+ aria-hidden
48+ />
49+ ) ,
3250 } ,
3351] ;
3452
@@ -55,10 +73,7 @@ export const ThemeSelector: Component = () => {
5573 item = { props . item }
5674 >
5775 < Select . ItemLabel >
58- < Icon
59- class = "inline-block h-6 w-6 mr-2 rounded-md bg-white p-1 shadow ring-1 ring-slate-900/5 dark:bg-slate-700 dark:ring-inset dark:ring-white/5 fill-slate-700 dark:fill-slate-200 kb-selected:fill-slate-800 kb-selected:dark:fill-white"
60- path = { props . item . rawValue . icon }
61- />
76+ { props . item . rawValue . icon ( "inline-block h-6 w-6 mr-2 rounded-md bg-white p-1 shadow ring-1 ring-slate-900/5 dark:bg-slate-700 dark:ring-inset dark:ring-white/5 fill-slate-700 dark:fill-slate-200 kb-selected:fill-slate-800 kb-selected:dark:fill-white" ) }
6277 < span
6378 class = "prose prose-slate text-sm group-hover:dark:text-white text-slate-700 dark:text-slate-300 kb-selected:text-blue-500 kb-selected:group-hover:dark:text-white"
6479 >
@@ -72,10 +87,7 @@ export const ThemeSelector: Component = () => {
7287 < Select . Value < ThemeOption > >
7388 { ( state ) => (
7489 < RefreshOnMount aria-label = { state . selectedOption ( ) . label } >
75- < Icon
76- class = "w-4 h-4 fill-slate-700 dark:fill-slate-200"
77- path = { state . selectedOption ( ) . icon }
78- />
90+ { state . selectedOption ( ) . icon ( "w-4 h-4 fill-slate-700 dark:fill-slate-200" ) }
7991 </ RefreshOnMount >
8092 ) }
8193 </ Select . Value >
@@ -99,7 +111,7 @@ function RefreshOnMount(props: ComponentProps<"div">) {
99111 } ) ;
100112
101113 return (
102- < Show when = { refresh ( ) } fallback = { < div { ...props } > < div > { resolved ( ) } </ div > </ div > } keyed >
114+ < Show when = { refresh ( ) } fallback = { < div { ...props } > { resolved ( ) } </ div > } keyed >
103115 < div { ...props } > { resolved ( ) } </ div >
104116 </ Show >
105117 ) ;
0 commit comments