app/pb_kits/playbook/pb_tooltip/tooltip.rb
# frozen_string_literal: true module Playbook module PbTooltip class Tooltip < Playbook::KitBase prop :dark, type: Playbook::Props::Boolean, default: false prop :delay_open prop :delay_close prop :height prop :interaction, type: Playbook::Props::Boolean, default: false prop :max_height prop :max_width prop :min_height prop :min_width prop :position prop :tooltip_id prop :trigger_element_selector prop :trigger_element_id, deprecated: true prop :trigger_method, type: Playbook::Props::Enum, values: %w[hover click], default: "hover" prop :width def classname generate_classname("pb_tooltip_kit", dark_class) end def remove_height_properties(combined_html_options_style) return nil if combined_html_options_style.nil? combined_html_options_style.gsub(/\s*(height|min-height|max-height)\s*:[^;]*;?\s*/, "") .strip .presence end def height_and_width_helper out = "" out += "width: #{width};" if width.present? out += "height: #{height};" if height.present? out += "max-height: #{max_height};" if max_height.present? out += "max-width: #{max_width};" if max_width.present? out += "min-height: #{min_height};" if min_height.present? out += "min-width: #{min_width};" if min_width.present? out end def data data = Hash(values[:data]).merge( pb_tooltip_kit: true, pb_tooltip_position: position, pb_tooltip_trigger_element_selector: trigger_element_selector, pb_tooltip_trigger_element_id: trigger_element_id, pb_tooltip_tooltip_id: tooltip_id, pb_tooltip_show_tooltip: true, pb_tooltip_trigger_method: trigger_method, pb_tooltip_interaction: interaction ) data = data.merge(pb_tooltip_delay_open: delay_open) if delay_open data = data.merge(pb_tooltip_delay_close: delay_close) if delay_close data end private def dark_class dark ? "dark" : nil end end end end