module Coco class ButtonGroup < Coco::Component include Concerns::ActsAsButtonGroup include Concerns::AcceptsOptions accepts_option :size, default: :default, private: true accepts_option :theme, default: :primary, private: true accepts_option :reversed, from: [true, false], default: false accepts_option :segmented, from: [true, false], default: false accepts_option :floating, from: [true, false], default: false accepts_option :collapsible, from: [true, false, nil] before_initialize do |kwargs| if kwargs[:floating] == true kwargs[:segmented] = true kwargs[:theme] = :toolbar_floating end kwargs end def button_kwargs(kwargs, type = nil) args = { theme: get_option_value(:theme), size: get_option_value(:size), **kwargs } if component_args.key?(:resize) args[:resize] = component_args[:resize] end if get_option_value(:collapsible) == false args[:collapsible] = false elsif get_option_value(:collapsible) == true args[:static] = false end args end end end