Module: UI::TabsBehavior
- Included in:
- Tabs, TabsComponent
- Defined in:
- app/behaviors/ui/tabs_behavior.rb
Overview
UI::TabsBehavior
Instance Method Summary collapse
-
#merged_data_attributes ⇒ Object
Merge user-provided data attributes with tabs controller data.
-
#tabs_data_attributes ⇒ Object
Generate Stimulus controller data attributes.
-
#tabs_html_attributes ⇒ Object
Build complete HTML attributes hash for tabs container.
Instance Method Details
#merged_data_attributes ⇒ Object
Merge user-provided data attributes with tabs controller data
42 43 44 45 |
# File 'app/behaviors/ui/tabs_behavior.rb', line 42 def merged_data_attributes user_data = @attributes&.fetch(:data, {}) || {} user_data.merge(tabs_data_attributes) end |
#tabs_data_attributes ⇒ Object
Generate Stimulus controller data attributes
32 33 34 35 36 37 38 39 |
# File 'app/behaviors/ui/tabs_behavior.rb', line 32 def tabs_data_attributes { controller: "ui--tabs", ui__tabs_default_value_value: @default_value || "", ui__tabs_orientation_value: @orientation || "horizontal", ui__tabs_activation_mode_value: @activation_mode || "automatic" } end |
#tabs_html_attributes ⇒ Object
Build complete HTML attributes hash for tabs container
48 49 50 51 52 53 54 55 56 |
# File 'app/behaviors/ui/tabs_behavior.rb', line 48 def tabs_html_attributes base_attrs = @attributes&.except(:data) || {} base_attrs.merge( class: "flex flex-col gap-2 #{@classes}".strip, "data-orientation": @orientation || "horizontal", "data-slot": "tabs", data: merged_data_attributes ) end |