app/pb_kits/playbook/pb_flex/flex.rb
# frozen_string_literal: true module Playbook module PbFlex class Flex include Playbook::Props partial "pb_flex/flex" prop :horizontal, type: Playbook::Props::Enum, values: %w[left center right stretch], default: "left" prop :inline, type: Playbook::Props::Boolean, default: false prop :orientation, type: Playbook::Props::Enum, values: %w[row column], default: "row" prop :spacing, type: Playbook::Props::Enum, values: %w[around between evenly none], default: "none" prop :reverse, type: Playbook::Props::Boolean, default: false prop :vertical, type: Playbook::Props::Enum, values: %w[top center bottom stretch], default: "top" prop :wrap, type: Playbook::Props::Boolean, default: false def classname generate_classname("pb_flex_kit", orientation_class, horizontal_class, vertical_class, inline_class, wrap_class, spacing_class) end private def orientation_class "orientation_#{orientation}#{reverse_class}" end def horizontal_class if orientation == "row" "justify_content_#{horizontal}#{reverse_class}" else "align_items_#{horizontal}" end end def inline_class inline ? "inline" : nil end def spacing_class "spacing_#{spacing}" end def reverse_class reverse ? "_reverse" : nil end def vertical_class if orientation == "row" "align_items_#{vertical}" else "justify_content_#{vertical}_#{reverse_class}" end end def wrap_class wrap ? "wrap" : nil end end end end