/* * Copyright (c) 2024, Nathan van der Kamp * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace Web::HTML { class PopoverInvokerElement { public: PopoverInvokerElement() { } GC::Ptr popover_target_element() { return m_popover_target_element; } void set_popover_target_element(GC::Ptr value) { m_popover_target_element = value; } static void popover_target_activation_behaviour(GC::Ref node, GC::Ref event_target); protected: void visit_edges(JS::Cell::Visitor&); void associated_attribute_changed(FlyString const& name, Optional const& value, Optional const& namespace_); private: GC::Ptr m_popover_target_element; static GC::Ptr get_the_popover_target_element(GC::Ref node); }; }