Sha256: aeb604ecaff436771c0840c8643870e7ef4c7290d5a173c86af2c221446310a8

Contents?: true

Size: 1.4 KB

Versions: 15

Compression:

Stored size: 1.4 KB

Contents

# frozen_string_literal: true

module PandaCms
  module Admin
    class HeadingComponent < ViewComponent::Base
      renders_many :buttons, PandaCms::Admin::ButtonComponent

      attr_reader :text, :level, :icon, :additional_styles

      def initialize(text:, level: 2, icon: "", additional_styles: "")
        @text = text
        @level = level
        @icon = icon
        @additional_styles = additional_styles
        @additional_styles = @additional_styles.split(" ") if @additional_styles.is_a?(String)
      end

      def call
        output = ""
        output += content_tag(:div, @text, class: "grow")

        if buttons?
          output += content_tag(:span, class: "actions flex gap-x-2 -mt-1") do
            safe_join(buttons, "")
          end
        end

        output = output.html_safe
        base_heading_styles = "flex pt-1 text-black mb-5 -mt-1"

        if level == 1
          content_tag(:h1, output, class: [base_heading_styles, "text-2xl font-medium", @additional_styles])
        elsif level == 2
          content_tag(:h2, output, class: [base_heading_styles, "text-xl font-medium", @additional_styles])
        elsif level == 3
          content_tag(:h3, output, class: [base_heading_styles, "text-xl", "font-light", @additional_styles])
        elsif level == :panel
          content_tag(:h3, output, class: ["text-base font-medium p-4 text-white"])
        end
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
panda_cms-0.6.3 app/components/panda_cms/admin/heading_component.rb
panda_cms-0.6.2 app/components/panda_cms/admin/heading_component.rb
panda_cms-0.6.1 app/components/panda_cms/admin/heading_component.rb
panda_cms-0.6.0 app/components/panda_cms/admin/heading_component.rb
panda_cms-0.5.10 app/components/panda_cms/admin/heading_component.rb
panda_cms-0.5.9 app/components/panda_cms/admin/heading_component.rb
panda_cms-0.5.8 app/components/panda_cms/admin/heading_component.rb
panda_cms-0.5.7 app/components/panda_cms/admin/heading_component.rb
panda_cms-0.5.6 app/components/panda_cms/admin/heading_component.rb
panda_cms-0.5.5 app/components/panda_cms/admin/heading_component.rb
panda_cms-0.5.4 app/components/panda_cms/admin/heading_component.rb
panda_cms-0.5.3 app/components/panda_cms/admin/heading_component.rb
panda_cms-0.5.2 app/components/panda_cms/admin/heading_component.rb
panda_cms-0.5.1 app/components/panda_cms/admin/heading_component.rb
panda_cms-0.5.0 app/components/panda_cms/admin/heading_component.rb