Source code for pipeworks_mud_mapper.callbacks

"""Callback modules for PipeWorks MUD Mapper.

This module provides Dash callbacks organized by functionality.
Callbacks are thin orchestrators that:

1. Extract data from component state
2. Call service functions for business logic
3. Return updated state to components

Architecture
------------
Callbacks are organized into functional modules:

**file_callbacks**
    File management: load, save, new map, export.
    Modal dialogs for zone creation.

**map_callbacks**
    Map visualization and interaction.
    Room selection via click events.

**room_callbacks**
    Room CRUD operations.
    Form population and validation.

**exit_callbacks**
    Exit checkbox handling.
    Bidirectional exit management.

**ollama_callbacks**
    LLM integration via local Ollama server.
    Model selection, prompt handling, description generation.

**validation_callbacks**
    Map validation checks.
    Results display and report generation.

**workspace_callbacks**
    Workspace panel utilities (SQLite overview, health, etc.).

Registration
------------
Callbacks are registered when their modules are imported.
The app.py module imports all callback modules after
initializing the Dash app::

    from pipeworks_mud_mapper.callbacks import register_callbacks

    app = dash.Dash(...)
    register_callbacks(app)

See Also
--------
- ``layout/``: UI components that callbacks interact with
- ``services/``: Business logic called by callbacks
- ``refactor_01.md``: Architecture decisions
"""

from pipeworks_mud_mapper.callbacks import (
    api_callbacks,  # noqa: F401
    exit_callbacks,  # noqa: F401
    file_callbacks,  # noqa: F401
    map_callbacks,  # noqa: F401
    ollama_callbacks,  # noqa: F401
    room_callbacks,  # noqa: F401
    theme_callbacks,  # noqa: F401
    validation_callbacks,  # noqa: F401
    workspace_callbacks,  # noqa: F401
)


[docs] def register_callbacks(app) -> None: """Register all callbacks with the Dash app. This function is called after app initialization to ensure all callbacks are properly registered. Parameters ---------- app : dash.Dash The Dash application instance. Notes ----- In Dash, callbacks are registered via the @callback decorator which uses the global app context. Importing the callback modules is sufficient to register them, but this function provides an explicit registration point for clarity. """ # Callbacks are registered on import via @callback decorators # This function exists to make registration explicit in app.py pass