Class: Daisy::DataInput::CheckboxComponent
- Inherits:
-
LocoMotion::BaseComponent
- Object
- ViewComponent::Base
- LocoMotion::BaseComponent
- Daisy::DataInput::CheckboxComponent
- Includes:
- LocoMotion::Concerns::LabelableComponent
- Defined in:
- app/components/daisy/data_input/checkbox_component.rb
Overview
The Checkbox component renders a DaisyUI styled checkbox input. It can be used standalone or with a form builder, and supports various styling options including toggle mode for switch-like appearance.
Direct Known Subclasses
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.
-
#toggle ⇒ Object
readonly
Returns the value of attribute toggle.
-
#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) ⇒ CheckboxComponent
constructor
Instantiate a new Checkbox 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_end_label?, #has_floating_label?, #has_start_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
Constructor Details
#initialize(**kws) ⇒ CheckboxComponent
Instantiate a new Checkbox component.
61 62 63 64 65 66 67 68 69 70 71 |
# File 'app/components/daisy/data_input/checkbox_component.rb', line 61 def initialize(**kws) super @name = config_option(:name) @id = config_option(:id) @value = config_option(:value, "1") @checked = config_option(:checked, false) @toggle = config_option(:toggle, false) @disabled = config_option(:disabled, false) @required = config_option(:required, false) end |
Instance Attribute Details
#checked ⇒ Object (readonly)
Returns the value of attribute checked.
35 36 37 |
# File 'app/components/daisy/data_input/checkbox_component.rb', line 35 def checked @checked end |
#disabled ⇒ Object (readonly)
Returns the value of attribute disabled.
35 36 37 |
# File 'app/components/daisy/data_input/checkbox_component.rb', line 35 def disabled @disabled end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
35 36 37 |
# File 'app/components/daisy/data_input/checkbox_component.rb', line 35 def id @id end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
35 36 37 |
# File 'app/components/daisy/data_input/checkbox_component.rb', line 35 def name @name end |
#required ⇒ Object (readonly)
Returns the value of attribute required.
35 36 37 |
# File 'app/components/daisy/data_input/checkbox_component.rb', line 35 def required @required end |
#toggle ⇒ Object (readonly)
Returns the value of attribute toggle.
35 36 37 |
# File 'app/components/daisy/data_input/checkbox_component.rb', line 35 def toggle @toggle end |
#value ⇒ Object (readonly)
Returns the value of attribute value.
35 36 37 |
# File 'app/components/daisy/data_input/checkbox_component.rb', line 35 def value @value end |
Instance Method Details
#before_render ⇒ Object
Calls the #setup_component method before rendering the component.
76 77 78 79 80 81 |
# File 'app/components/daisy/data_input/checkbox_component.rb', line 76 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.
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'app/components/daisy/data_input/checkbox_component.rb', line 91 def setup_component set_tag_name(:component, :input) add_css(:component, @toggle ? "toggle" : "checkbox") add_html(:component, { type: "checkbox", name: @name, id: @id, value: @value, checked: @checked, disabled: @disabled, required: @required }) end |
#setup_labels ⇒ Object
83 84 85 |
# File 'app/components/daisy/data_input/checkbox_component.rb', line 83 def setup_labels add_css(:label_wrapper, "label") if has_any_label? end |