export const ACTIVE_PLUGINS_KEY = 'SCOREODONTO_ACTIVE_PLUGINS'; export const PLUGIN_CONFIG_KEY = 'SCOREODONTO_PLUGIN_CONFIG'; export const getActivePlugins = (): string[] => { try { return JSON.parse(localStorage.getItem(ACTIVE_PLUGINS_KEY) || '[]'); } catch { return []; } }; export const isPluginActive = (id: string): boolean => getActivePlugins().includes(id); export const togglePlugin = (id: string): boolean => { const active = getActivePlugins(); const wasActive = active.includes(id); const next = wasActive ? active.filter(p => p !== id) : [...active, id]; localStorage.setItem(ACTIVE_PLUGINS_KEY, JSON.stringify(next)); return !wasActive; }; export const getPluginConfig = (id: string): Record => { try { const all = JSON.parse(localStorage.getItem(PLUGIN_CONFIG_KEY) || '{}'); return all[id] || {}; } catch { return {}; } }; export const savePluginConfig = (id: string, config: Record) => { try { const all = JSON.parse(localStorage.getItem(PLUGIN_CONFIG_KEY) || '{}'); localStorage.setItem(PLUGIN_CONFIG_KEY, JSON.stringify({ ...all, [id]: config })); } catch {} };