Module: UI::TabsBehavior

Included in:
Tabs, TabsComponent
Defined in:
app/behaviors/ui/tabs_behavior.rb

Overview

UI::TabsBehavior

Instance Method Summary collapse

Instance Method Details

#merged_data_attributesObject

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_attributesObject

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_attributesObject

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