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