Module: StimulusPlumbers::Themes::Schema::Icon

Defined in:
lib/stimulus_plumbers/themes/schema/icon.rb

Constant Summary collapse

DEFAULTS =
{
  fill:            "none",
  view_box:        "0 0 24 24",
  width:           "24",
  height:          "24",
  stroke:          "currentColor",
  stroke_width:    1.5,
  stroke_linecap:  :round,
  stroke_linejoin: :round
}.freeze
ATTRS =
([:d] + DEFAULTS.keys).freeze

Class Method Summary collapse

Class Method Details

.resolve(icon_data) ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'lib/stimulus_plumbers/themes/schema/icon.rb', line 20

def self.resolve(icon_data)
  return unless icon_data.is_a?(Hash)

  merged = DEFAULTS.merge(icon_data.slice(*ATTRS)).transform_values(&:to_s)
  return merged if merged[:d].present?

  StimulusPlumbers::Logger.warn("Icon missing required :d attribute")
  nil
end