Sha256: 4c7b1f8f405e27a7c81e3c741dbf46edc5a87e00fd7b5b43883c8df4b3042800
Contents?: true
Size: 1.41 KB
Versions: 10
Compression:
Stored size: 1.41 KB
Contents
# frozen_string_literal: true module Bulmacomp # Make an html structure for a bulma breadcrumb # # @example Empty modal: # = render Bulmacomp::PanelComponent.new() # # <div class="modal"> # <div class="modal-background"></div> # <div class="modal-content"></div> # <button class="modal-close is-large" aria-label="close"></button> # </div> # # @example Modal with content: # = render Bulmacomp::PanelComponent.new() do # %p some content # # <div class="modal"> # <div class="modal-background"></div> # <div class="modal-content"><p>Some content</p></div> # <button class="modal-close is-large" aria-label="close"></button> # </div> class ModalComponent < ViewComponent::Base # @param [Hash] opts options to generate content # @option opts [String] :* each key going as tag option, default is class: 'modal' # @yield [optional] modal content def initialize(**opts) super @opts = { class: 'modal' }.merge opts end # return [String] html_safe generated bulma modal def call content_tag :div, safe_join([ tag.div(class: 'modal-background'), tag.div(content, class: 'modal-content'), tag.button(class: 'modal-close is-large', aria_label: 'close') ]), **@opts end end end
Version data entries
10 entries across 10 versions & 1 rubygems