/* * Copyright (c) 2026, Callum Law * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace Web::CSS { // https://drafts.csswg.org/css-mixins-1/#cssfunctiondeclarations class CSSFunctionDeclarations final : public CSSRule { WEB_PLATFORM_OBJECT(CSSFunctionDeclarations, CSSRule); GC_DECLARE_ALLOCATOR(CSSFunctionDeclarations); public: [[nodiscard]] static GC::Ref create(JS::Realm&, Parser::Parser&, Vector const&); virtual ~CSSFunctionDeclarations() override = default; GC::Ref style() { return m_style; } private: CSSFunctionDeclarations(JS::Realm&, GC::Ref); virtual void initialize(JS::Realm&) override; virtual void visit_edges(Cell::Visitor&) override; virtual String serialized() const override; virtual void dump(StringBuilder&, int indent_levels) const override; GC::Ref m_style; }; template<> inline bool CSSRule::fast_is() const { return type() == CSSRule::Type::FunctionDeclarations; } }