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