/* * Copyright (c) 2024, Sam Atkins * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include namespace Web::CSS { // https://drafts.csswg.org/css-cascade-5/#the-csslayerblockrule-interface class CSSLayerBlockRule final : public CSSGroupingRule { WEB_PLATFORM_OBJECT(CSSLayerBlockRule, CSSGroupingRule); GC_DECLARE_ALLOCATOR(CSSLayerBlockRule); public: [[nodiscard]] static GC::Ref create(JS::Realm&, FlyString name, CSSRuleList&); static FlyString next_unique_anonymous_layer_name(); virtual ~CSSLayerBlockRule() = default; FlyString const& name() const { return m_name; } FlyString const& internal_name() const { return m_name_internal; } FlyString internal_qualified_name(Badge) const; private: CSSLayerBlockRule(JS::Realm&, FlyString name, CSSRuleList&); virtual void initialize(JS::Realm&) override; virtual String serialized() const override; FlyString m_name; FlyString m_name_internal; }; }