lib/ccs/components/govuk/panel.rb in ccs-frontend_helpers-0.1.0.rc.2 vs lib/ccs/components/govuk/panel.rb in ccs-frontend_helpers-0.1.0.rc.3
- old
+ new
@@ -1,60 +1,62 @@
require_relative '../base'
-module CCS::Components
- module GovUK
- # = GOV.UK Panel
- #
- # This is used to generate the panel component from the
- # {https://design-system.service.gov.uk/components/panel GDS - Components - Panel}
- #
- # @!attribute [r] title_text
- # @return [String] Text for the panel title
- # @!attribute [r] panel_text
- # @return [String] Text that will be used for the panel content
+module CCS
+ module Components
+ module GovUK
+ # = GOV.UK Panel
+ #
+ # This is used to generate the panel component from the
+ # {https://design-system.service.gov.uk/components/panel GDS - Components - Panel}
+ #
+ # @!attribute [r] title_text
+ # @return [String] Text for the panel title
+ # @!attribute [r] panel_text
+ # @return [String] Text that will be used for the panel content
- class Panel < Base
- private
+ class Panel < Base
+ private
- attr_reader :title_text, :panel_text
+ attr_reader :title_text, :panel_text
- public
+ public
- # @param title_text [String] title text for the panel which will be contained in haeding tags
- # @param panel_text [String] text to use within the panel component.
- # If nil, then a block will be rendered
- # @param options [Hash] options that will be used in customising the HTML
- #
- # @option options [String] :classes additional CSS classes for the panel HTML
- # @option options [Integer,String] :heading_level (default: 1) heading level for the panel title text
- # @option options [Hash] :attributes ({}) any additional attributes that will added as part of the HTML
+ # @param title_text [String] title text for the panel which will be contained in haeding tags
+ # @param panel_text [String] text to use within the panel component.
+ # If nil, then a block will be rendered
+ # @param options [Hash] options that will be used in customising the HTML
+ #
+ # @option options [String] :classes additional CSS classes for the panel HTML
+ # @option options [Integer,String] :heading_level (default: 1) heading level for the panel title text
+ # @option options [Hash] :attributes ({}) any additional attributes that will added as part of the HTML
- def initialize(title_text:, panel_text: nil, **options)
- super(**options)
+ def initialize(title_text:, panel_text: nil, **options)
+ super(**options)
- @title_text = title_text
- @panel_text = panel_text
- end
+ @title_text = title_text
+ @panel_text = panel_text
+ end
- # Generates the HTML for the GOV.UK Panel component
- #
- # @yield HTML that will be contained within the panel body. Ignored if panel text is given
- #
- # @return [ActiveSupport::SafeBuffer]
+ # Generates the HTML for the GOV.UK Panel component
+ #
+ # @yield HTML that will be contained within the panel body. Ignored if panel text is given
+ #
+ # @return [ActiveSupport::SafeBuffer]
- def render
- tag.div(**options[:attributes]) do
- concat(tag.send(:"h#{options[:heading_level] || 1}", title_text, class: 'govuk-panel__title'))
- if panel_text || block_given?
- concat(tag.div(class: 'govuk-panel__body') do
- panel_text || yield
- end)
+ def render
+ tag.div(**options[:attributes]) do
+ concat(tag.send(:"h#{options[:heading_level] || 1}", title_text, class: 'govuk-panel__title'))
+ if panel_text || block_given?
+ concat(tag.div(class: 'govuk-panel__body') do
+ panel_text || yield
+ end)
+ end
end
end
- end
- # The default attributes for the panel
+ # The default attributes for the panel
- DEFAULT_ATTRIBUTES = { class: 'govuk-panel govuk-panel--confirmation' }.freeze
+ DEFAULT_ATTRIBUTES = { class: 'govuk-panel govuk-panel--confirmation' }.freeze
+ end
end
end
end