/* * Copyright (c) 2025, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include namespace Web::CSS { class FitContentStyleValue final : public StyleValue { public: static ValueComparingNonnullRefPtr create(); static ValueComparingNonnullRefPtr create(NonnullRefPtr length_percentage); virtual ~FitContentStyleValue() override = default; virtual ValueComparingNonnullRefPtr absolutized(ComputationContext const& computation_context) const override; virtual void serialize(StringBuilder& builder, SerializationMode mode) const override; bool equals(StyleValue const& other) const override; virtual bool is_computationally_independent() const override { return !m_length_percentage || m_length_percentage->is_computationally_independent(); } [[nodiscard]] Optional length_percentage() const; RefPtr length_percentage_style_value() const { return m_length_percentage; } private: FitContentStyleValue(ValueComparingRefPtr length_percentage = {}) : StyleValue(Type::FitContent) , m_length_percentage(move(length_percentage)) { } ValueComparingRefPtr m_length_percentage; }; }