module Coco module App module Elements class Notice < Coco::Component include Concerns::AcceptsOptions include Concerns::WrapsComponent accepts_option :dismissable, from: [true, false], default: true wraps_component :alert do |args| Coco::App::Elements::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}".to_sym, *args, **kwargs, &block) end end end end end end