File tree Expand file tree Collapse file tree
components/ui/theme-selector Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ export { default as ThemeSelector } from './theme-selector.svelte'
Original file line number Diff line number Diff line change 1+ <script lang =" ts" >
2+ import Sun from ' lucide-svelte/icons/sun'
3+ import Moon from ' lucide-svelte/icons/moon'
4+ import Computer from ' lucide-svelte/icons/computer'
5+
6+ import { ModeWatcher , mode , setMode } from ' mode-watcher'
7+ let currentMode: ' dark' | ' light' | ' system' = $mode || ' system'
8+
9+ $ : {
10+ setMode (currentMode )
11+ }
12+ </script >
13+
14+ <ModeWatcher />
15+
16+ <div class =" inline-flex w-auto items-center rounded-full border border-primary" >
17+ <input
18+ type =" radio"
19+ id =" system"
20+ name =" mode"
21+ class =" hidden"
22+ value ={' system' }
23+ bind:group ={currentMode }
24+ />
25+ <label
26+ for =" system"
27+ class ="flex h-8 w-8 cursor-pointer items-center justify-center rounded-full {currentMode ===
28+ ' system'
29+ ? ' selected'
30+ : ' ' }"
31+ >
32+ <Computer class =" h-[1.2rem] w-[1.2rem]" />
33+ </label >
34+
35+ <input
36+ type =" radio"
37+ id =" light"
38+ name =" mode"
39+ class =" hidden"
40+ value ={' light' }
41+ bind:group ={currentMode }
42+ />
43+ <label
44+ for =" light"
45+ class ="flex h-8 w-8 cursor-pointer items-center justify-center rounded-full {currentMode ===
46+ ' light'
47+ ? ' selected'
48+ : ' ' }"
49+ >
50+ <Sun class =" h-[1.2rem] w-[1.2rem]" />
51+ </label >
52+
53+ <input
54+ type =" radio"
55+ id =" dark"
56+ name =" mode"
57+ class =" hidden"
58+ value ={' dark' }
59+ bind:group ={currentMode }
60+ />
61+ <label
62+ for =" dark"
63+ class ="flex h-8 w-8 cursor-pointer items-center justify-center rounded-full {currentMode ===
64+ ' dark'
65+ ? ' selected'
66+ : ' ' }"
67+ >
68+ <Moon class =" h-[1.2rem] w-[1.2rem]" />
69+ </label >
70+ </div >
71+
72+ <!--
73+ This is obviously not a sound implementation of the selected attribute, but I do not get it to work so this is fine until I get it to work.
74+ -->
75+ <style lang =" pcss" >
76+ .selected {
77+ @apply border border-primary ;
78+ }
79+ </style >
Original file line number Diff line number Diff line change 11<script lang =" ts" >
22 import Check from ' lucide-svelte/icons/check'
3+
4+ import { ThemeSelector } from ' $components/ui/theme-selector'
35 </script >
46
57<div class =" flex h-screen" >
1315
1416 <!-- Middle Section -->
1517 <div
16- class =" flex flex-grow flex-col items-start justify-center space-y-4 p-6 text-2xl font-bold "
18+ class =" flex flex-grow flex-col items-start justify-center space-y-4 p-6 text-2xl font-semibold "
1719 >
1820 <div class =" flex items-center" >
19- <span class =" mr-2 rounded-full bg-background p-1" ><Check /></span >
21+ <span class ="mr-2.5 rounded-full bg-background p-1.5 " ><Check strokeWidth ={ 1 } /></span >
2022 <span >Efficiently translate your content</span >
2123 </div >
2224 <div class =" flex items-center" >
23- <span class =" mr-2 rounded-full bg-background p-1" ><Check /></span >
25+ <span class ="mr-2.5 rounded-full bg-background p-1.5 " ><Check strokeWidth ={ 1 } /></span >
2426 <span >Open source and self hosting</span >
2527 </div >
2628 <div class =" flex items-center" >
27- <span class =" mr-2 rounded-full bg-background p-1" ><Check /></span >
29+ <span class ="mr-2.5 rounded-full bg-background p-1.5 " ><Check strokeWidth ={ 1 } /></span >
2830 <span >Seamless AI-Autocompletion integrations</span >
2931 </div >
3032 </div >
3638 <p >Not for everyone, but for most.</p >
3739 </div >
3840 </div >
41+ <div class =" p-6" >
42+ <ThemeSelector />
43+ </div >
3944 </div >
4045
4146 <div class =" my-auto w-1/2" ><slot ></slot ></div >
Original file line number Diff line number Diff line change 11<script >
22 import ' ../app.pcss'
3- import { ModeWatcher } from ' mode-watcher'
4-
5- import Sun from ' lucide-svelte/icons/sun'
6- import Moon from ' lucide-svelte/icons/moon'
7-
8- import { toggleMode } from ' mode-watcher'
9- import { Button } from ' $components/ui/button/index'
10-
113 import { Toaster } from ' $components/ui/sonner'
124 </script >
135
146<main class =" h-screen w-screen" >
15- <ModeWatcher />
16-
17- <Button on:click ={toggleMode } variant =" outline" size =" icon" >
18- <Sun
19- class =" h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0"
20- />
21- <Moon
22- class =" absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100"
23- />
24- <span class =" sr-only" >Toggle theme</span >
25- </Button >
26-
277 <slot ></slot >
288
299 <Toaster />
You can’t perform that action at this time.
0 commit comments