# frozen_string_literal: true

module Cosensee
  class TailwindRenderer
    DecorateBracket = Data.define(:content) do
      def render
        classes = []
        classes << font_sizes[content.font_size] if content.font_size
        classes << 'font-semibold' if content.font_size && content.font_size > 0
        classes << 'underline' if content.underlined
        classes << 'italic' if content.slanted
        classes << 'line-through' if content.deleted
        class_attr = classes.join(' ')

        %(<span class="#{class_attr}">#{content.text}</span>)
      end

      private

      def font_sizes
        %w[text-base text-lg text-xl text-2xl text-3xl text-4xl text-5xl text-6xl text-7xl text-8xl text-9xl].freeze
      end
    end
  end
end