1from __future__ import annotations
 2
 3from typing import TYPE_CHECKING, TypeVar
 4
 5if TYPE_CHECKING:
 6    from .toolbar import ToolbarItem
 7
 8
 9T = TypeVar("T", bound=type["ToolbarItem"])
10
11
12class ToolbarItemRegistry:
13    def __init__(self) -> None:
14        self._items: dict[str, type[ToolbarItem]] = {}
15
16    def register_item(self, item_class: type[ToolbarItem]) -> None:
17        self._items[item_class.name] = item_class
18
19    def get_items(self) -> list[type[ToolbarItem]]:
20        return list(self._items.values())
21
22
23# Global registry instance
24registry = ToolbarItemRegistry()
25
26
27def register_toolbar_item(item_class: T) -> T:
28    """Decorator to register a toolbar item."""
29    registry.register_item(item_class)
30    return item_class