Source code for simvx.editor.panels.scene_tree

"""Scene Tree Panel package.

Split from the former flat ``scene_tree.py`` into:
- ``type_registry`` -- node type metadata (icons, categories, descriptions).
- ``dialogs`` -- Add Node popup and inline rename overlay.
- ``panel`` -- the main SceneTreePanel widget.

Public API is re-exported here so ``from simvx.editor.panels.scene_tree
import SceneTreePanel`` keeps working.
"""

from simvx.editor.project_classes import ProjectClass, ProjectClassIndex

from .panel import SceneTreePanel
from .type_registry import (
    _ADDABLE_TYPES,
    _DEFAULT_EXPANDED,
    _NODE_CATEGORIES,
    _NODE_DESCRIPTIONS,
    _NODE_ICONS,
    _RECENT_MAX,
    _RECENT_TYPES,
    _get_inheritance_chain,
    _get_node_icon,
    _get_source_file,
    _record_recent_type,
    is_composed_node,
    register_addable_type,
)

__all__ = [
    "ProjectClass",
    "ProjectClassIndex",
    "SceneTreePanel",
    "register_addable_type",
    "is_composed_node",
    # Internal-but-test-referenced symbols (leading underscore indicates
    # private API; re-exported here so test files keep their existing
    # import paths after the flat -> package refactor).
    "_ADDABLE_TYPES",
    "_DEFAULT_EXPANDED",
    "_NODE_CATEGORIES",
    "_NODE_DESCRIPTIONS",
    "_NODE_ICONS",
    "_RECENT_MAX",
    "_RECENT_TYPES",
    "_get_inheritance_chain",
    "_get_node_icon",
    "_get_source_file",
    "_record_recent_type",
]