Sha256: 1580f0fb1ea6bff23fb2a21cc85761b063526b291c70a8286dadfb1e2f30322a

Contents?: true

Size: 1.6 KB

Versions: 8

Compression:

Stored size: 1.6 KB

Contents

# frozen_string_literal: true

module Primer
  class BorderBoxComponent < Primer::Component
    include ViewComponent::Slotable

    with_slot :header, class_name: "Header"
    with_slot :body, class_name: "Body"
    with_slot :footer, class_name: "Footer"
    with_slot :row, collection: true, class_name: "Row"

    def initialize(**kwargs)
      @kwargs = kwargs
      @kwargs[:tag] = :div
      @kwargs[:classes] = class_names(
        "Box",
        kwargs[:classes]
      )
    end

    def render?
      rows.any? || header.present? || body.present? || footer.present?
    end

    class Header < Primer::Slot

      attr_reader :kwargs
      def initialize(**kwargs)
        @kwargs = kwargs
        @kwargs[:tag] = :div
        @kwargs[:classes] = class_names(
          "Box-header",
          kwargs[:classes]
        )
      end
    end

    class Body < Primer::Slot

      attr_reader :kwargs
      def initialize(**kwargs)
        @kwargs = kwargs
        @kwargs[:tag] = :div
        @kwargs[:classes] = class_names(
          "Box-body",
          kwargs[:classes]
        )
      end
    end

    class Footer < Primer::Slot

      attr_reader :kwargs
      def initialize(**kwargs)
        @kwargs = kwargs
        @kwargs[:tag] = :div
        @kwargs[:classes] = class_names(
          "Box-footer",
          kwargs[:classes]
        )
      end
    end

    class Row < Primer::Slot

      attr_reader :kwargs
      def initialize(**kwargs)
        @kwargs = kwargs
        @kwargs[:tag] = :li
        @kwargs[:classes] = class_names(
          "Box-row",
          kwargs[:classes]
        )
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
primer_view_components-0.0.10 app/components/primer/border_box_component.rb
primer_view_components-0.0.9 app/components/primer/border_box_component.rb
primer_view_components-0.0.8 app/components/primer/border_box_component.rb
primer_view_components-0.0.7 app/components/primer/border_box_component.rb
primer_view_components-0.0.6 app/components/primer/border_box_component.rb
primer_view_components-0.0.5 app/components/primer/border_box_component.rb
primer_view_components-0.0.4 app/components/primer/border_box_component.rb
primer_view_components-0.0.3 app/components/primer/border_box_component.rb