Sha256: 440ac06a23ef0314129fd844ece8a964e60bb84c5dc129694f3b86f6a4decf2b
Contents?: true
Size: 1.1 KB
Versions: 2
Compression:
Stored size: 1.1 KB
Contents
# frozen_string_literal: true class FoxTail::BadgeComponent < FoxTail::BaseComponent renders_one :icon, lambda { |icon, options = {}| options[:variant] ||= :mini options[:"aria-hidden"] = true options[:class] = icon_classes options[:class] FoxTail::IconBaseComponent.new icon, options } has_option :url has_option :size, default: :base has_option :color, default: :default has_option :pill, default: false, type: :boolean has_option :icon_only, default: false, type: :boolean has_option :border, default: false, type: :boolean def call content_tag (url? ? :a : :span), html_attributes.merge(href: url, class: root_classes) do concat icon if icon? concat content_tag(:span, content, class: content_classes) if content? end end private def root_classes classnames theme.apply(:root, self), html_class end def content_classes classnames icon_only? && theme.classname("content.hidden") end def icon_classes(classes) classnames theme.classname("icon.base"), theme.classname(["icon", "size", size]), classes end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
fox_tail-0.1.1 | app/components/fox_tail/badge_component.rb |
fox_tail-0.1.0 | app/components/fox_tail/badge_component.rb |