puppygirl-py/puppygirl/elements/domme.py
2025-10-06 18:03:06 -04:00

31 lines
754 B
Python

from dataclasses import dataclass
from typing import TYPE_CHECKING
from .constants import TemplateAttr
from .shadow_root import ShadowRootMode
from ..renderer import Renderable
if TYPE_CHECKING:
from .. import Puppygirl
from .shadow_root import Node
from ..puppytype import RenderableElement, Templates
@dataclass
class PuppygirlDomme(Renderable):
puppygirl: "Puppygirl"
@property
def name(self):
return "puppygirl-domme"
def render(self, node: "Node", templates: "Templates") -> "RenderableElement":
if not node.has_attr(TemplateAttr):
return node
template = templates[node[TemplateAttr]]
shadow_root = node.attach_shadow(ShadowRootMode.Open)
shadow_root.append_child(template.clone())
return node