import { defineStore } from "pinia"; const themeMap = { "Sprinklers Northwest": { primary: "#75bdf1ff", primaryStrong: "#068ee9ff", secondary: "#2ca66f", accent: "#8fd9a8", primaryGradientStart: "#70b9e9ff", primaryGradientEnd: "#1390e0", primaryGradient: "linear-gradient(90deg, #a6d2f0ff 0%, #a1d7f8ff 100%)", secondaryGradientStart: "#2c9b64", secondaryGradientEnd: "#38c487", secondaryGradient: "linear-gradient(90deg, #2c9b64 0%, #38c487 100%)", backgroundGradient: "linear-gradient(90deg, #f0f8ff 0%, #e6f3ff 100%)", surface: "#cadcf1ff", surfaceAlt: "#dbfdefff", border: "#cfe5f7", hover: "#dcedf9", text: "#0f172a", textMuted: "#8798afff", textDark: "#0b1220", textLight: "#ffffff", textAlt: "#06274aff", }, "Nuco Yard Care": { primary: "#3b7f2f", primaryStrong: "#2f6425", secondary: "#f0c419", accent: "#f7de6d", primaryGradientStart: "#2f6425", primaryGradientEnd: "#4a9f3a", primaryGradient: "linear-gradient(90deg, #2f6425 0%, #4a9f3a 100%)", secondaryGradientStart: "#d2a106", secondaryGradientEnd: "#f7de6d", secondaryGradient: "linear-gradient(90deg, #d2a106 0%, #f7de6d 100%)", backgroundGradient: "linear-gradient(90deg, #f8fff0 0%, #f0f8e6 100%)", surface: "#f7fbe9", surfaceAlt: "#f1f4d6", border: "#dfe8b5", hover: "#e6efc7", text: "#1f2a1c", textMuted: "#4b5b35", textDark: "#192016", textLight: "#ffffff", textAlt: "#172519ff", }, "Lowe Fencing": { primary: "#2f3b52", primaryStrong: "#232d3f", secondary: "#5fa4ff", accent: "#9cc6ff", primaryGradientStart: "#232d3f", primaryGradientEnd: "#375073", primaryGradient: "linear-gradient(90deg, #232d3f 0%, #375073 100%)", secondaryGradientStart: "#4f8ee5", secondaryGradientEnd: "#5fa4ff", secondaryGradient: "linear-gradient(90deg, #4f8ee5 0%, #5fa4ff 100%)", backgroundGradient: "linear-gradient(90deg, #f5f7fb 0%, #e7ecf5 100%)", surface: "#f5f7fb", surfaceAlt: "#e7ecf5", border: "#ced6e5", hover: "#d8e1f0", text: "#0f172a", textMuted: "#42506a", textDark: "#0b1220", textLight: "#ffffff", textAlt: "#291d3aff", }, "Veritas Stone": { primary: "#7a6f63", primaryStrong: "#5e564d", secondary: "#c3b9ab", accent: "#d8d0c5", primaryGradientStart: "#5e564d", primaryGradientEnd: "#8a8073", primaryGradient: "linear-gradient(90deg, #5e564d 0%, #8a8073 100%)", secondaryGradientStart: "#b2a89c", secondaryGradientEnd: "#cfc6b8", secondaryGradient: "linear-gradient(90deg, #b2a89c 0%, #cfc6b8 100%)", backgroundGradient: "linear-gradient(90deg, #f7f5f2 0%, #ebe6df 100%)", surface: "#f7f5f2", surfaceAlt: "#ebe6df", border: "#d8d0c5", hover: "#e6dfd7", text: "#2d2620", textMuted: "#5a5047", textDark: "#231c16", textLight: "#ffffff", textAlt: "#25201bff", }, "Daniels Landscape Supplies": { primary: "#2f6b2f", primaryStrong: "#245224", secondary: "#f28c28", accent: "#ffc174", primaryGradientStart: "#245224", primaryGradientEnd: "#3a8a3a", primaryGradient: "linear-gradient(90deg, #245224 0%, #3a8a3a 100%)", secondaryGradientStart: "#f28c28", secondaryGradientEnd: "#ffc174", secondaryGradient: "linear-gradient(90deg, #f28c28 0%, #ffc174 100%)", backgroundGradient: "linear-gradient(90deg, #f8fbf4 0%, #f2f1e9 100%)", surface: "#f8fbf4", surfaceAlt: "#f2f1e9", border: "#d9e5cc", hover: "#e7f0d8", text: "#1f2a1f", textMuted: "#4f5b3f", textDark: "#162016", textLight: "#ffffff", textAlt: "#172519ff", }, }; export const useThemeStore = defineStore("theme", { state: () => ({ currentTheme: themeMap["Sprinklers Northwest"], }), actions: { applyTheme(companyName) { const theme = themeMap[companyName] || themeMap["Sprinklers Northwest"]; this.currentTheme = theme; if (typeof document === "undefined") return; const root = document.documentElement; root.style.setProperty("--theme-primary", theme.primary); root.style.setProperty("--theme-primary-strong", theme.primaryStrong); root.style.setProperty("--theme-secondary", theme.secondary); root.style.setProperty("--theme-accent", theme.accent); root.style.setProperty("--theme-gradient-start", theme.primaryGradientStart); root.style.setProperty("--theme-gradient-end", theme.primaryGradientEnd); root.style.setProperty("--theme-gradient", theme.primaryGradient); root.style.setProperty("--theme-secondary-gradient-start", theme.secondaryGradientStart); root.style.setProperty("--theme-secondary-gradient-end", theme.secondaryGradientEnd); root.style.setProperty("--theme-secondary-gradient", theme.secondaryGradient); root.style.setProperty("--theme-background-gradient", theme.backgroundGradient); root.style.setProperty("--theme-surface", theme.surface); root.style.setProperty("--theme-surface-alt", theme.surfaceAlt); root.style.setProperty("--theme-border", theme.border); root.style.setProperty("--theme-hover", theme.hover); root.style.setProperty("--theme-text", theme.text); root.style.setProperty("--theme-text-muted", theme.textMuted); root.style.setProperty("--theme-text-dark", theme.textDark); root.style.setProperty("--theme-text-light", theme.textLight); // Backwards-compatible overrides for existing CSS variables root.style.setProperty("--primary-color", theme.primary); root.style.setProperty("--primary-600", theme.primaryStrong); root.style.setProperty("--surface-card", theme.surface); root.style.setProperty("--surface-border", theme.border); root.style.setProperty("--surface-hover", theme.hover); root.style.setProperty("--text-color", theme.text); }, }, });