Source code for simvx.editor.panels.inspector_sections

"""Inspector sections package.

Split into one private leaf module per section type:
- ``_base`` -- InspectorContext, InspectorSection base class, the
  section registry, theme/layout helpers, widget factories.
- ``_mesh_section`` -- MeshSection
- ``_material_section`` -- MaterialSection
- ``_audio_section`` -- AudioStreamSection
- ``_collision_section`` -- CollisionShapeSection
- ``_post_process_section`` -- PostProcessToggleSection
- ``_camera_section`` -- CameraPreviewSection (+ _CameraPreview)
- ``_particle_section`` -- ParticlePreviewSection (+ _EmissionShapePreview)
- ``_sprite_section`` -- SpriteAnimationSection
- ``_path_section`` -- PathCurveSection

Each concrete section registers itself via @register_inspector_section at
import time; this package imports every leaf so those side effects fire.

Public API is re-exported so
``from simvx.editor.panels.inspector_sections import
InspectorContext, get_sections_for_node`` keeps working.
"""

# Side-effect imports: importing each leaf runs its @register_inspector_section
# decorators so every section type is registered.
from . import (  # noqa: F401
    _audio_section,
    _camera_section,
    _collision_section,
    _material_section,
    _mesh_section,
    _particle_section,
    _path_section,
    _post_process_section,
    _sprite_section,
)

# Re-export the private mutation helpers that editor tests reach for
# (tests treat them as inspectable internals, not private-to-module).
# Leading underscores document "not for new consumers," not "must not
# be imported."
from ._audio_section import _set_audio_stream
from ._base import (
    InspectorContext,
    InspectorSection,
    get_sections_for_node,
    register_inspector_section,
)
from ._collision_section import (
    _change_box_extents,
    _change_capsule_param,
    _change_shape_type,
)
from ._mesh_section import _set_mesh
from ._path_section import _curve_add_point, _curve_clear_points
from ._sprite_section import (
    _set_animation,
    _set_fps,
    _set_frame,
    _toggle_playing,
)

__all__ = [
    "InspectorContext",
    "InspectorSection",
    "get_sections_for_node",
    "register_inspector_section",
    "_change_box_extents",
    "_change_capsule_param",
    "_change_shape_type",
    "_curve_add_point",
    "_curve_clear_points",
    "_set_animation",
    "_set_audio_stream",
    "_set_fps",
    "_set_frame",
    "_set_mesh",
    "_toggle_playing",
]