import { startStimulusApp } from 'vite-plugin-symfony/stimulus/helpers'; import DropdownController from './controllers/dropdown_controller.js'; import ImportModalController from './controllers/import_modal_controller.js'; import ImportStatusController from './controllers/import_status_controller.js'; import ImportHelpController from './controllers/import_help_controller.js'; import GameConfigController from './controllers/game_config_controller.js'; const app = startStimulusApp(); app.register('dropdown', DropdownController); app.register('import-modal', ImportModalController); app.register('import-status', ImportStatusController); app.register('import-help', ImportHelpController); app.register('game-config', GameConfigController); // Register React components for {{ react_component() }} Twig function. // We register them manually because @symfony/ux-react's registerReactControllerComponents // expects Webpack's require.context API, which is not available in Vite. const reactControllers = import.meta.glob('./react/controllers/**/*.jsx', { eager: true }); window.resolveReactComponent = (name) => { const key = `./react/controllers/${name}.jsx`; const module = reactControllers[key]; if (!module) { const available = Object.keys(reactControllers) .map(k => k.replace('./react/controllers/', '').replace('.jsx', '')); throw new Error(`React controller "${name}" does not exist. Possible values: ${available.join(', ')}`); } return module; };