Source code for phenotypic.gui.components

"""Reusable GUI components for PhenoTypic.

This module provides modular Panel components that can be composed
for different UIs (PipelineBuilder, SweepExecutor, etc.).
"""

from __future__ import annotations

# Components will be imported as needed (lazy imports to avoid Panel dependency)
__all__ = [
    "ParamEditor",
    "OperationCard",
    "EmbeddedPipelineEditor",
    "AddOperationMenu",
    "PreviewPanel",
]


[docs] def __getattr__(name: str): """Lazy import components to avoid Panel dependency at module level.""" if name == "ParamEditor": from ._param_editor import ParamEditor return ParamEditor elif name == "OperationCard": from ._operation_card import OperationCard return OperationCard elif name == "EmbeddedPipelineEditor": from ._embedded_pipeline import EmbeddedPipelineEditor return EmbeddedPipelineEditor elif name == "AddOperationMenu": from ._add_operation_menu import AddOperationMenu return AddOperationMenu elif name == "PreviewPanel": from ._preview_panel import PreviewPanel return PreviewPanel raise AttributeError(f"module {__name__!r} has no attribute {name!r}")