|
|
|
@ -2,14 +2,25 @@ import { derived } from "svelte/store" |
|
|
|
import { appStore } from "./app" |
|
|
|
import { builderStore } from "./builder" |
|
|
|
|
|
|
|
// This is the good old acorn bug where having the word "g l o b a l" makes it
|
|
|
|
// think that this is not ES6 compatible and starts throwing errors when using
|
|
|
|
// optional chaining. Piss off acorn.
|
|
|
|
const defaultTheme = "spectrum--light" |
|
|
|
const defaultCustomTheme = { |
|
|
|
primaryColor: "var(--spectrum-glo" + "bal-color-blue-600)", |
|
|
|
primaryColorHover: "var(--spectrum-glo" + "bal-color-blue-500)", |
|
|
|
} |
|
|
|
|
|
|
|
const createThemeStore = () => { |
|
|
|
const store = derived( |
|
|
|
[builderStore, appStore], |
|
|
|
([$builderStore, $appStore]) => { |
|
|
|
const theme = |
|
|
|
$builderStore.theme || $appStore.application?.theme || "spectrum--light" |
|
|
|
const customTheme = |
|
|
|
$builderStore.customTheme || $appStore.application?.customTheme || {} |
|
|
|
$builderStore.theme || $appStore.application?.theme || defaultTheme |
|
|
|
const customTheme = { |
|
|
|
...defaultCustomTheme, |
|
|
|
...($builderStore.customTheme || $appStore.application?.customTheme), |
|
|
|
} |
|
|
|
let customThemeCss = "" |
|
|
|
Object.entries(customTheme).forEach(([key, value]) => { |
|
|
|
customThemeCss += `--${key}:${value};` |
|
|
|
|