Module: UI::AvatarFallbackBehavior

Included in:
AvatarFallback, AvatarFallbackComponent
Defined in:
app/behaviors/ui/avatar_fallback_behavior.rb

Overview

AvatarFallbackBehavior

Shared behavior for AvatarFallback component across ERB, ViewComponent, and Phlex implementations. This module provides consistent styling and HTML attribute generation for avatar fallbacks.

Based on shadcn/ui Avatar: https://ui.shadcn.com/docs/components/avatar Based on Radix UI Avatar: https://www.radix-ui.com/primitives/docs/components/avatar

Instance Method Summary collapse

Instance Method Details

#avatar_fallback_classes ⇒ Object

Returns combined CSS classes for the avatar fallback



20
21
22
23
24
25
26
# File 'app/behaviors/ui/avatar_fallback_behavior.rb', line 20

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

#avatar_fallback_data_attributes ⇒ Object

Returns data attributes for Stimulus target



29
30
31
32
33
34
# File 'app/behaviors/ui/avatar_fallback_behavior.rb', line 29

def avatar_fallback_data_attributes
  {
    "ui--avatar_target": "fallback",
    slot: "avatar-fallback"
  }
end

#avatar_fallback_html_attributes ⇒ Object

Returns HTML attributes for the avatar fallback element



12
13
14
15
16
17
# File 'app/behaviors/ui/avatar_fallback_behavior.rb', line 12

def avatar_fallback_html_attributes
  {
    class: avatar_fallback_classes,
    data: avatar_fallback_data_attributes
  }
end