Class: Daisy::DataInput::RadioButtonComponent
- Inherits:
-
LocoMotion::BaseComponent
- Object
- ViewComponent::Base
- LocoMotion::BaseComponent
- Daisy::DataInput::RadioButtonComponent
- Defined in:
- app/components/daisy/data_input/radio_button_component.rb
Overview
The Radio Button component renders a DaisyUI styled radio button input. It can be used standalone or with a form builder, and is ideal for creating option groups where users must select exactly one choice.
Direct Known Subclasses
FilterComponent::FilterOptionComponent, FilterComponent::FilterResetComponent
Constant Summary
Constants inherited from LocoMotion::BaseComponent
LocoMotion::BaseComponent::EMPTY_PART_IGNORED_TAGS, LocoMotion::BaseComponent::SELF_CLOSING_TAGS
Instance Attribute Summary collapse
-
#checked ⇒ Object
readonly
Returns the value of attribute checked.
-
#disabled ⇒ Object
readonly
Returns the value of attribute disabled.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#required ⇒ Object
readonly
Returns the value of attribute required.
-
#value ⇒ Object
readonly
Returns the value of attribute value.
Attributes inherited from LocoMotion::BaseComponent
Instance Method Summary collapse
-
#before_render ⇒ Object
Calls the #setup_component method before rendering the component.
-
#initialize(**kws) ⇒ RadioButtonComponent
constructor
Instantiate a new Radio Button component.
-
#setup_component ⇒ Object
Sets up the component by configuring the tag name, CSS classes, and HTML attributes.
- #setup_labels ⇒ Object
Methods included from LocoMotion::Concerns::LabelableComponent
#has_any_label?, #has_floating_label?, #has_leading_label?, #has_trailing_label?
Methods inherited from LocoMotion::BaseComponent
build, #component_ref, #config_option, #cssify, define_modifier, define_modifiers, define_part, define_parts, define_size, define_sizes, #empty_part_content, #inspect, #part, register_component_initializer, register_component_setup, #rendered_css, #rendered_data, #rendered_html, #rendered_stimulus_controllers, #rendered_tag_name, renders_many, renders_one, set_component_name, #set_loco_parent, #strip_spaces
Methods included from LocoMotion::Concerns::InspectableComponent
Constructor Details
#initialize(**kws) ⇒ RadioButtonComponent
Instantiate a new Radio Button component.
79 80 81 82 83 84 85 86 87 88 |
# File 'app/components/daisy/data_input/radio_button_component.rb', line 79 def initialize(**kws) super @name = config_option(:name) @id = config_option(:id) @value = config_option(:value) @checked = config_option(:checked, false) @disabled = config_option(:disabled, false) @required = config_option(:required, false) end |
Instance Attribute Details
#checked ⇒ Object (readonly)
Returns the value of attribute checked.
51 52 53 |
# File 'app/components/daisy/data_input/radio_button_component.rb', line 51 def checked @checked end |
#disabled ⇒ Object (readonly)
Returns the value of attribute disabled.
51 52 53 |
# File 'app/components/daisy/data_input/radio_button_component.rb', line 51 def disabled @disabled end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
51 52 53 |
# File 'app/components/daisy/data_input/radio_button_component.rb', line 51 def id @id end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
51 52 53 |
# File 'app/components/daisy/data_input/radio_button_component.rb', line 51 def name @name end |
#required ⇒ Object (readonly)
Returns the value of attribute required.
51 52 53 |
# File 'app/components/daisy/data_input/radio_button_component.rb', line 51 def required @required end |
#value ⇒ Object (readonly)
Returns the value of attribute value.
51 52 53 |
# File 'app/components/daisy/data_input/radio_button_component.rb', line 51 def value @value end |
Instance Method Details
#before_render ⇒ Object
Calls the #setup_component method before rendering the component.
93 94 95 96 97 98 |
# File 'app/components/daisy/data_input/radio_button_component.rb', line 93 def before_render super setup_labels setup_component end |
#setup_component ⇒ Object
Sets up the component by configuring the tag name, CSS classes, and HTML attributes. Sets the tag to input with type 'radio' and adds the 'radio' CSS class.
This configures the name, id, value, disabled state, required state, and checked state of the radio button.
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'app/components/daisy/data_input/radio_button_component.rb', line 111 def setup_component set_tag_name(:component, :input) add_css(:component, "radio") unless @skip_styling add_html(:component, { type: "radio", name: @name, id: @id, value: @value, checked: @checked, disabled: @disabled, required: @required }) end |
#setup_labels ⇒ Object
100 101 102 |
# File 'app/components/daisy/data_input/radio_button_component.rb', line 100 def setup_labels add_css(:label_wrapper, "label") if has_any_label? end |