Sha256: c7e5233d02c51e248bf306bdd28d7811782f999b78fd4a26f600d4cbc1b86468

Contents?: true

Size: 1.7 KB

Versions: 90

Compression:

Stored size: 1.7 KB

Contents

# frozen_string_literal: true

module Playbook
  module PbBody
    class Body < Playbook::KitBase
      prop :color, type: Playbook::Props::Enum,
                   values: %w[default light lighter link success error],
                   default: "default"
      prop :status, type: Playbook::Props::Enum,
                    values: %w[neutral positive negative],
                    default: "neutral",
                    deprecated: true
      prop :tag, type: Playbook::Props::Enum,
                 values: %w[h1 h2 h3 h4 h5 h6 p span div],
                 default: "div"
      prop :text
      prop :highlighting, type: Playbook::Props::Boolean,
                          default: false
      prop :highlighted_text, type: Playbook::Props::Array,
                              default: []
      prop :truncate, type: Playbook::Props::Enum,
                      values: [nil, "1", "2", "3", "4", "5"],
                      default: nil

      def classname
        generate_classname("pb_body_kit", color_class, status_class, is_truncated)
      end

      def content
        body_text = super.presence || text
        highlighting ? apply_highlight(body_text) : body_text
      end

      def is_truncated
        truncate ? "truncate_#{truncate}" : nil
      end

    private

      def apply_highlight(text)
        pb_highlight_output = pb_rails("highlight") { "|" }
        highlight_tags = pb_highlight_output.split("|")
        highlight(text, highlighted_text, highlighter: "#{highlight_tags.first.html_safe} \\1 #{highlight_tags.last.html_safe}")
      end

      def color_class
        color == "default" ? nil : color
      end

      def status_class
        status == "neutral" ? nil : status
      end
    end
  end
end

Version data entries

90 entries across 90 versions & 1 rubygems

Version Path
playbook_ui-13.9.0.pre.alpha.play845allkitsbytypes1264 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-13.9.0.pre.alpha.play845allkitsbytypes1263 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-13.9.0.pre.alpha.play845allkitsbytypes1262 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-13.9.0.pre.alpha.PLAY962SingleSelect1261 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-13.9.0.pre.alpha.play845allkitsbytypes1260 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-13.9.0 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-13.8.0.pre.alpha.play845allkitsbytypes1258 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-13.8.0.pre.alpha.play845allkitsbytypes1257 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-13.8.0.pre.alpha.PLAY962SingleSelect1256 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-13.8.0.pre.alpha.play845allkitsbytypes1255 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-13.8.0.pre.alpha.play845allkitsbytypes1254 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-13.8.0.pre.alpha.PLAY962SingleSelect1246 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-13.8.0.pre.alpha.PLAY1016reactionbuttonemojibug1245 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-13.8.0 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-13.7.0.pre.alpha.play845allkitsbytypes1234 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-13.7.0.pre.alpha.play845allkitsbytypes1232 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-13.7.0.pre.alpha.play845allkitsbytypes1231 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-13.7.0.pre.alpha.play978makehighchartsadevdependencypoc1223 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-13.6.0.pre.alpha.play845allkitsbytypes1219 app/pb_kits/playbook/pb_body/body.rb
playbook_ui-13.7.0 app/pb_kits/playbook/pb_body/body.rb