module Coco class Notice < Coco::Component include Concerns::AcceptsOptions include Concerns::WrapsComponent accepts_option :dismissable, from: [true, false], default: true wraps_component :alert do |args| Coco::Alert.new(**args, dismissable: get_option_value(:dismissable)) end %i[title action secondary_action link].each do |slot_name| renders_one slot_name, ->(*args, **kwargs, &block) do alert.send(:"with_#{slot_name}", *args, **kwargs, &block) end end before_render do with_title { @title } unless title? end def initialize(title: nil, **kwargs) @title = title end end end