app/pb_kits/playbook/pb_card/card.rb
# frozen_string_literal: true module Playbook module PbCard class Card < Playbook::KitBase prop :selected, type: Playbook::Props::Boolean, default: false prop :highlight, type: Playbook::Props::Hash, default: {} prop :tag, type: Playbook::Props::Enum, values: %w[div section footer header article aside main nav], default: "div" prop :border_none, type: Playbook::Props::Boolean, default: false prop :border_radius, type: Playbook::Props::Enum, values: %w[xs sm md lg xl none rounded], default: "md" prop :background, type: Playbook::Props::Enum, values: %w[white light dark windows siding doors solar roofing gutters insulation none], default: "none" def classname generate_classname("pb_card_kit", selected_class, border_class, border_radius_class, background_class, highlight_position_class, highlight_color_class) end def body_padding if padding.present? "" else "p_md" end end def body_flex_direction if flex_direction.present? "flex_direction_#{flex_direction}" else "" end end def body_flex_wrap if flex_wrap.present? "flex_wrap_#{flex_wrap}" else "" end end def body_justify_content if justify_content.present? "justify_content_#{justify_content}" else "" end end def body_justify_self if justify_self.present? "justify_self_#{justify_self}" else "" end end def body_align_items if align_items.present? "align_items_#{align_items}" else "" end end def body_align_content if align_content.present? "align_content_#{align_content}" else "" end end def body_align_self if align_self.present? "align_self_#{align_self}" else "" end end def body_flex if flex.present? "flex_#{flex}" else "" end end def body_flex_grow if flex_grow.present? "flex_grow_#{flex_grow}" else "" end end def body_flex_shrink if flex_shrink.present? "flex_shrink_#{flex_shrink}" else "" end end def body_order if order.present? "order_#{order}" else "" end end private def selected_class selected ? "selected" : "deselected" end def highlight_position_class highlight[:position].present? ? "highlight_#{highlight[:position]}" : nil end def highlight_color_class highlight[:color].present? ? "highlight_#{highlight[:color]}" : nil end def background_class background == "none" ? nil : "background_#{background}" end def border_class border_none == true ? "border_none" : nil end def border_radius_class border_radius != "md" ? "border_radius_#{border_radius}" : nil end end end end