Class: Playbook::PbNav::Item
- Defined in:
- app/pb_kits/playbook/pb_nav/item.rb
Instance Attribute Summary
Attributes included from Playbook::Props
Instance Method Summary collapse
- #classname ⇒ Object
- #collapsible_icons ⇒ Object
- #collapsible_nav_classname ⇒ Object
- #margin_classes ⇒ Object
- #spacing_props ⇒ Object
- #tag ⇒ Object
Methods inherited from KitBase
Methods included from Truncate
included, #truncate_options, #truncate_props, #truncate_values
Methods included from Overflow
included, #overflow_options, #overflow_props, #overflow_values
Methods included from TextAlign
included, #text_align_options, #text_align_props, #text_align_values
Methods included from BorderRadius
#border_radius_options, #border_radius_props, #border_radius_values, included
Methods included from Hover
#hover_attributes, #hover_background_values, #hover_color_values, #hover_options, #hover_props, #hover_scale_values, #hover_shadow_values, #hover_values, included
Methods included from Playbook::Position
included, #position_options, #position_values
Methods included from Order
included, #order_options, #order_props, #order_values
Methods included from FlexShrink
#flex_shrink_options, #flex_shrink_props, #flex_shrink_values, included
Methods included from FlexGrow
#flex_grow_options, #flex_grow_props, #flex_grow_values, included
Methods included from Flex
#flex_options, #flex_props, #flex_values, included
Methods included from AlignSelf
#align_self_options, #align_self_props, #align_self_values, included
Methods included from AlignContent
#align_content_options, #align_content_props, #align_content_values, included
Methods included from AlignItems
#align_items_options, #align_items_props, #align_items_values, included
Methods included from JustifySelf
included, #justify_self_options, #justify_self_props, #justify_self_values
Methods included from JustifyContent
included, #justify_content_options, #justify_content_props, #justify_content_values
Methods included from FlexWrap
#flex_wrap_options, #flex_wrap_props, #flex_wrap_values, included
Methods included from FlexDirection
#flex_direction_options, #flex_direction_props, #flex_direction_values, included
Methods included from Cursor
#cursor_options, #cursor_props, #cursor_values, included
Methods included from Display
#display_options, #display_props, #display_size_values, #display_values, included
Methods included from LineHeight
included, #line_height_options, #line_height_props, #line_height_values
Methods included from Shadow
included, #shadow_options, #shadow_props, #shadow_values
Methods included from NumberSpacing
included, #number_spacing_options, #number_spacing_values
Methods included from ZIndex
included, #screen_size_values, #z_index_options, #z_index_props, #z_index_values
Methods included from Spacing
#break_method_values, included, #max_width_options, #max_width_props, #max_width_values, #screen_size_values, #spacing_options, #spacing_values
Methods included from Classnames
#generate_classname, #generate_classname_without_spacing, included
Methods included from Playbook::Props
Methods included from Playbook::PbKitHelper
Methods included from Playbook::PbFormsHelper
Instance Method Details
#classname ⇒ Object
24 25 26 27 28 29 30 |
# File 'app/pb_kits/playbook/pb_nav/item.rb', line 24 def classname if collapsible "#{generate_classname('pb_nav_list_kit_item', active_class, highlighted_border_class)} #{generate_classname('pb_collapsible_nav_item', active_class, collapsible_trail_class)} #{font_size_class} #{font_weight_class} pb_nav_list_item_link_collapsible" else "#{generate_classname('pb_nav_list_kit_item', active_class, highlighted_border_class)} #{font_size_class} #{font_weight_class} pb_nav_list_item_link" end end |
#collapsible_icons ⇒ Object
86 87 88 |
# File 'app/pb_kits/playbook/pb_nav/item.rb', line 86 def collapsible_icons icon_right.present? && icon_right end |
#collapsible_nav_classname ⇒ Object
90 91 92 |
# File 'app/pb_kits/playbook/pb_nav/item.rb', line 90 def collapsible_nav_classname generate_classname("collapsible_nav_wrapper", active_class, collapsible_trail_class) end |
#margin_classes ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'app/pb_kits/playbook/pb_nav/item.rb', line 61 def margin_classes margin_attributes = { margin: "m", margin_x: "mx", margin_y: "my", margin_bottom: "mb", margin_top: "mt", margin_right: "mr", margin_left: "ml", } # rubocop:disable Style/RedundantAssignment margin_classes = margin_attributes.map do |attr, class_prefix| # rubocop:enable Style/RedundantAssignment value = object.public_send(attr) " #{class_prefix}_#{value}" if value end.compact.join margin_classes end |
#spacing_props ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'app/pb_kits/playbook/pb_nav/item.rb', line 32 def spacing_props if collapsible if object.margin || object.margin_x || object.margin_y || object.margin_bottom || object.margin_top || object.margin_right || object.margin_left # Call the original method original_result = super # Remove p_value, px_value, py_value, etc. based on the object's properties margin_classes_to_remove = [] margin_classes_to_remove << "m_#{object.margin}" if object.margin margin_classes_to_remove << "mx_#{object.margin_x}" if object.margin_x margin_classes_to_remove << "my_#{object.margin_y}" if object.margin_y margin_classes_to_remove << "mb_#{object.margin_bottom}" if object.margin_bottom margin_classes_to_remove << "mt_#{object.margin_top}" if object.margin_top margin_classes_to_remove << "mr_#{object.margin_right}" if object.margin_right margin_classes_to_remove << "ml_#{object.margin_left}" if object.margin_left margin_classes_to_remove.each do |class_to_remove| original_result.gsub!(class_to_remove, "") end original_result.strip else super end else super end end |
#tag ⇒ Object
82 83 84 |
# File 'app/pb_kits/playbook/pb_nav/item.rb', line 82 def tag link ? "a" : "div" end |