Class: ShadcnPhlexcomponents::TooltipContent

Inherits:
Base
  • Object
show all
Defined in:
lib/shadcn_phlexcomponents/components/tooltip.rb

Constant Summary

Constants inherited from Base

Base::SANITIZER_ALLOWED_ATTRIBUTES, Base::SANITIZER_ALLOWED_TAGS, Base::TAILWIND_MERGER

Instance Method Summary collapse

Methods inherited from Base

#before_template, #convert_collection_hash_to_struct, #find_as_child, #icon, #item_disabled?, #merge_default_attributes, #merged_as_child_attributes, #nokogiri_attributes_to_hash, #overlay, #sanitize_as_child

Constructor Details

#initialize(side: :top, align: :center, aria_id: nil, **attributes) ⇒ TooltipContent

Returns a new instance of TooltipContent.



99
100
101
102
103
104
# File 'lib/shadcn_phlexcomponents/components/tooltip.rb', line 99

def initialize(side: :top, align: :center, aria_id: nil, **attributes)
  @side = side
  @align = align
  @aria_id = aria_id
  super(**attributes)
end

Instance Method Details

#default_attributesObject



127
128
129
130
131
132
133
134
135
136
# File 'lib/shadcn_phlexcomponents/components/tooltip.rb', line 127

def default_attributes
  {
    data: {
      side: @side,
      align: @align,
      tooltip_target: "content",
      action: "mouseover->tooltip#open mouseout->tooltip#close",
    },
  }
end

#view_templateObject



106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# File 'lib/shadcn_phlexcomponents/components/tooltip.rb', line 106

def view_template(&)
  div(
    style: { display: "none" },
    class: "fixed top-0 left-0 w-max z-50",
    data: { tooltip_target: "contentContainer" },
  ) do
    div(**@attributes) do
      yield

      TooltipArrow()

      span(
        id: "#{@aria_id}-content",
        role: "tooltip",
        class: "sr-only",
        &
      )
    end
  end
end