Module: UI::ScrollAreaViewportBehavior

Included in:
ScrollAreaViewport, ScrollAreaViewportComponent
Defined in:
app/helpers/ui/scroll_area_viewport_behavior.rb,
app/behaviors/ui/scroll_area_viewport_behavior.rb

Overview

UI::ScrollAreaViewportBehavior

Shared behavior for ScrollArea viewport across ERB, ViewComponent, and Phlex implementations. This module provides consistent HTML attribute generation and styling.

Instance Method Summary collapse

Instance Method Details

#scroll_area_viewport_classesObject

Returns combined CSS classes



22
23
24
25
26
27
28
# File 'app/helpers/ui/scroll_area_viewport_behavior.rb', line 22

def scroll_area_viewport_classes
  classes_value = respond_to?(:classes, true) ? classes : @classes
  TailwindMerge::Merger.new.merge([
    scroll_area_viewport_base_classes,
    classes_value
  ].compact.join(" "))
end

#scroll_area_viewport_html_attributesObject

Returns HTML attributes for the viewport element



9
10
11
12
13
14
15
16
17
18
19
# File 'app/helpers/ui/scroll_area_viewport_behavior.rb', line 9

def scroll_area_viewport_html_attributes
  attributes_value = respond_to?(:attributes, true) ? attributes : @attributes
  {
    class: scroll_area_viewport_classes,
    tabindex: 0,
    data: {
      slot: "scroll-area-viewport",
      ui_scroll_area_viewport: true
    }
  }.merge(attributes_value || {})
end