/** * State Manager Module * * Provides centralized, reactive state management for client-side state. * * Usage: * - Add data-module="state-manager" to enable global state management * - Or import and use directly: import { StateManager } from './modules/state-manager/index.js' * * Features: * - Reactive state store * - State persistence (localStorage, sessionStorage) * - Cross-tab synchronization * - Integration with LiveComponents * - Time-travel debugging */ import { Logger } from '../../core/logger.js'; import { StateManager, getGlobalStateManager, createScopedStateManager } from './StateManager.js'; const StateManagerModule = { name: 'state-manager', stateManager: null, init(config = {}, state = null) { Logger.info('[StateManagerModule] Module initialized'); // Create global state manager this.stateManager = getGlobalStateManager(config); // Expose globally for easy access if (typeof window !== 'undefined') { window.StateManager = this.stateManager; } return this; }, /** * Get state manager instance */ getStateManager() { return this.stateManager || getGlobalStateManager(); }, /** * Create a scoped state manager */ createScoped(config = {}) { return createScopedStateManager(config); }, destroy() { if (this.stateManager) { this.stateManager.destroy(); this.stateManager = null; } if (typeof window !== 'undefined' && window.StateManager) { delete window.StateManager; } Logger.info('[StateManagerModule] Module destroyed'); } }; // Export for direct usage export { StateManager, getGlobalStateManager, createScopedStateManager }; // Export as default for module system export default StateManagerModule; // Export init function for module system export const init = StateManagerModule.init.bind(StateManagerModule);