heroicon-rails 0.2.4 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8820c098919ed4af32d5ecc5ea1a9cbd95e7a74df97ec39bfb6715780c98aabf
4
- data.tar.gz: 31a5b0e1341816ba51febdcb30e1566eb356c76e83b72323af26f877d778d25d
3
+ metadata.gz: 90142cd4905946fbffc96887824e183e024ef876b8d6fa2d39399d69bc8af39f
4
+ data.tar.gz: 5596b5cb9a0b0dade3f28782010c4138a0c385764341cd7dc65b2271d0ec3c58
5
5
  SHA512:
6
- metadata.gz: 000b02270077ea813bb8597d765f1d006bcade49eb6466871f86fce48dbf7dbf870481afaa5260f043d00b096f1c63a6baa073eba4b37eed8bacf288c64c1956
7
- data.tar.gz: f7b3573e6df57e4385365960f51dd94de4759a0e3bcb58ab1401837b40332e6b0ef6960faf97b869377bd3551f40a923481c494b4f220b8aac5ddff5a15cf473
6
+ metadata.gz: 204fb049648dc6aed2da6adc4cea80196f26492dc8c20b5d91f8eaf1ad907bec2ea6a8e084b44e357fcfc04b5c3ad1f9546f4e7c9db748c9a102a5cdf82595c7
7
+ data.tar.gz: ad41cb2c48a677e369a5c991942164005b3073b91613f123d7169ffb04347aed033c9bcecd78bc79e3319f3eb26df6f16b0a578acafd5cc0580dda9341774928
@@ -1,4 +1,4 @@
1
- require 'active_support/core_ext/string/output_safety'
1
+ require "active_support/core_ext/string/output_safety"
2
2
 
3
3
  module HeroiconHelper
4
4
  HEROICONS_PATH = File.expand_path("assets/heroicons", __dir__)
@@ -9,28 +9,38 @@ module HeroiconHelper
9
9
  # @param options [Hash] additional options including custom CSS classes
10
10
  # @return [String] HTML safe string with the SVG content or error message
11
11
  def heroicon(name, type: "solid", **options)
12
+ # Allow strings or symbols for name and type arguments
13
+ name = name.to_s
14
+ type = type.to_s
15
+
16
+ # Handle class attribute
12
17
  custom_class = options.delete(:class) || ""
13
18
 
14
- # Remove and separately handle data- attributes to avoid unintended deletions
15
- data_attributes = options.select { |key, _| key.to_s.start_with?('data-') }
19
+ # Handle style attribute
20
+ style_attribute = options.delete(:style)
21
+
22
+ # Handle data- attributes, filtering out anything that doesn"t start with "data-"
23
+ data_attributes = options.select { |key, _| key.to_s.start_with?("data-") }
16
24
  options.except!(*data_attributes.keys)
17
25
 
26
+ # Load the SVG icon
18
27
  gem_root = Gem::Specification.find_by_name("heroicon-rails").gem_dir
19
28
  icon_path = File.join(gem_root, "lib", "heroicon", "rails", "assets", "heroicons", type, "#{name}.svg")
20
29
  icon_content = File.read(icon_path)
21
30
  icon_doc = Nokogiri::HTML::DocumentFragment.parse(icon_content)
22
31
  svg = icon_doc.at_css("svg")
23
32
 
24
- # Identify custom width and height classes
33
+ # Apply custom css classes
25
34
  custom_width_class = custom_class[/\bw-\d+/]
26
35
  custom_height_class = custom_class[/\bh-\d+/]
27
-
28
- # Define default classes, replace with custom if present
29
- default_width = custom_width_class ? '' : (type == "mini" ? "w-5" : "w-6")
30
- default_height = custom_height_class ? '' : (type == "mini" ? "h-5" : "h-6")
36
+ default_width = custom_width_class ? "" : (type == "mini" ? "w-5" : "w-6")
37
+ default_height = custom_height_class ? "" : (type == "mini" ? "h-5" : "h-6")
31
38
  css_classes = "#{default_width} #{default_height} #{custom_class}".strip
32
39
  svg[:class] = css_classes unless css_classes.empty?
33
40
 
41
+ # Apply style attribute if present
42
+ svg[:style] = style_attribute if style_attribute
43
+
34
44
  # Enhance accessibility
35
45
  svg[:role] = "img"
36
46
  svg["aria-labelledby"] = "#{name}-icon"
@@ -45,7 +55,7 @@ module HeroiconHelper
45
55
  end
46
56
 
47
57
  icon_doc.to_html.html_safe
48
- rescue StandardError => e
49
- "Icon '#{name}' not found. Error: #{e.message}"
58
+ rescue StandardError
59
+ "Icon #{name} not found. Error: #{e.message}"
50
60
  end
51
61
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Heroicon
4
4
  module Rails
5
- VERSION = "0.2.4"
5
+ VERSION = "0.2.8"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: heroicon-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carl Weis
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-02-20 00:00:00.000000000 Z
11
+ date: 2024-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport