diff --git a/django_components/types.py b/django_components/types.py index bd9eac7d..ed753884 100644 --- a/django_components/types.py +++ b/django_components/types.py @@ -1,9 +1,21 @@ try: from typing import Annotated except ImportError: - from typing_extensions import Annotated -html = Annotated[str, "html"] + class Annotated: + def __init__(self, type_, *args, **kwargs): + self.type_ = type_ + self.metadata = args, kwargs + + def __repr__(self): + return f"Annotated[{self.type_}, {self.metadata[0]!r}, {self.metadata[1]!r}]" + + def __getitem__(self, params): + if not isinstance(params, tuple): + params = (params,) + return Annotated(self.type_, *params, **self.metadata[1]) + + css = Annotated[str, "css"] django_html = Annotated[str, "django_html"] js = Annotated[str, "js"]