1import { create } from "zustand"
2import { Theme } from "./create_theme"
3
4type ThemeState = {
5 theme: Theme | undefined
6 setTheme: (theme: Theme) => void
7}
8
9export const useThemeStore = create<ThemeState>((set) => ({
10 theme: undefined,
11 setTheme: (theme) => set(() => ({ theme })),
12}))
13
14export const useTheme = (): Theme => {
15 const { theme } = useThemeStore.getState()
16
17 if (!theme) throw new Error("Tried to use theme before it was loaded")
18
19 return theme
20}
21
22export * from "./create_theme"
23export * from "./ramps"
24export * from "./syntax"
25export * from "./theme_config"
26export * from "./color"