phlex-icons-hero 0.11.0 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7f1759905caa165d03d34e33a2322a998aacf8a682e1e2e846292b6343525df6
4
- data.tar.gz: e960c533325aa9da9d13dc6ab106baae4e2a0d172fa278b7487a22315d8d7e4c
3
+ metadata.gz: 1b2eafb200152d72d6f2e526a3def827fc5be88c7312718220b0d1c474593bb1
4
+ data.tar.gz: 79ba8b4f49405877342748bf193e65b6d59cd64173f28b227982430486854ff7
5
5
  SHA512:
6
- metadata.gz: 7aa1692c8d5228561b204ea1bb6d80fb7045946c6f5c41f56aa0ccbc6092e5050a74a20b3b962b18235a385f78799bcadde3f0af229f26b8e76f521f9f4b6b97
7
- data.tar.gz: 31f93841766e14ac584f95f84df14474bea624762513bc6b15db9b2d1f7b48b22c9a88a1f19b0ed5564527db5faa0ccf8d238ba842de97a13f2fdfa805bd3bd9
6
+ metadata.gz: 3a8484e19e573f78d48b399b6edbc4453451bd11a14abed0c87c5331df2495af26b3617481a990926edc51bdfb9bb874fb67b56945b5661369f409f80c662295
7
+ data.tar.gz: 5ffc9906239bfa2ea80cd1f7d28a997318f9bc5ffc2c791b2073e79708750408152103697b325786f0221e99b3535954b8ff874a6421638872023b4b71120a6b
data/README.md CHANGED
@@ -10,13 +10,14 @@
10
10
 
11
11
  # Phlex::Icons
12
12
 
13
- General icons extension for [Phlex](https://phlex.fun). Includes more than 🎨 7,300 icons from:
13
+ General icons extension for [Phlex](https://phlex.fun). Includes more than 🎨 12,000 icons from:
14
14
  - [Bootstrap Icons](https://icons.getbootstrap.com) (2,000+)
15
15
  - [Flag Icons](https://flagicons.lipis.dev) (250+)
16
16
  - [Heroicons](https://heroicons.com) (300+)
17
17
  - [Lucide Icons](https://lucide.dev/icons) (1,500+)
18
18
  - [RadixUI Icons](https://radix-ui.com/icons) (300+)
19
19
  - [Remix Icons](https://remixicon.com) (2,800+)
20
+ - [Tabler Icons](https://tabler.io/icons) (4,800+)
20
21
 
21
22
  And happy to extend to other icon packs!
22
23
 
@@ -96,6 +97,18 @@ Nothing to configure for RadixUI Icons.
96
97
 
97
98
  Nothing to configure for Remix Icons.
98
99
 
100
+ ### Tabler Icons configuration
101
+
102
+ ```ruby
103
+ Phlex::Icons::Tabler.configure do |config|
104
+ config.default_variant = :outline # or :filled
105
+ end
106
+
107
+ # OR
108
+
109
+ Phlex::Icons::Tabler.configuration.default_variant = :outline # or :filled
110
+ ```
111
+
99
112
  ## Usage
100
113
 
101
114
  ```ruby
@@ -110,6 +123,7 @@ class PhlexIcons < Phlex::HTML
110
123
  render Phlex::Icons::Lucide::House.new(classes: 'size-4')
111
124
  render Phlex::Icons::Radix::Home.new(classes: 'size-4')
112
125
  render Phlex::Icons::Remix::HomeLine.new(classes: 'size-4')
126
+ render Phlex::Icons::Tabler::Home.new(variant: :filled, classes: 'size-4')
113
127
  end
114
128
  end
115
129
  end
data/generators/helper.rb CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'erb'
4
4
  require 'fileutils'
5
+ require 'zeitwerk' # Needed by Phlexing
5
6
  require 'phlexing'
6
7
  require 'tqdm'
7
8
 
@@ -19,8 +20,9 @@ def run_generator(&block)
19
20
 
20
21
  print '⌛ Creating icon components...'
21
22
  yield block
22
- puts "\r🎉 Icon components created successfully!"
23
+ puts "\e[2K\r🎉 Icon components created successfully!"
23
24
 
25
+ make_components_lazy_loadable(ICONS_PACK_PATH)
24
26
  run_rubocop(ICONS_PACK_PATH)
25
27
  delete_repo(REPO_NAME)
26
28
  end
@@ -29,14 +31,14 @@ def clone_repo(repo_url, repo_name)
29
31
  print "⌛ Cloning '#{repo_name}' repo..."
30
32
 
31
33
  if Dir.exist?("generators/#{repo_name}")
32
- puts "\r✅ '#{repo_name}' repo already exists"
34
+ puts "\e[2K\r✅ '#{repo_name}' repo already exists"
33
35
 
34
36
  return
35
37
  end
36
38
 
37
39
  system!("git clone #{repo_url} generators/#{repo_name}")
38
40
 
39
- puts "\r🎉 '#{repo_name}' repo cloned successfully!"
41
+ puts "\e[2K\r🎉 '#{repo_name}' repo cloned successfully!"
40
42
  end
41
43
 
42
44
  def prepare_phlex_icons_pack_directory(icons_pack_path)
@@ -50,13 +52,13 @@ def prepare_phlex_icons_pack_directory(icons_pack_path)
50
52
  File.delete(file)
51
53
  end
52
54
 
53
- puts "\r🎉 '#{icons_pack_path}' directory prepared successfully!"
55
+ puts "\e[2K\r🎉 '#{icons_pack_path}' directory prepared successfully!"
54
56
  end
55
57
 
56
58
  def component_file_name(icon_file_name, replacements = nil)
57
59
  replacements ||= {}
58
60
 
59
- icon_name = File.basename(icon_file_name, '.svg')
61
+ icon_name = File.basename(icon_file_name, File.extname(icon_file_name))
60
62
 
61
63
  replacements.each do |key, value|
62
64
  icon_name = icon_name.gsub(key, value) if icon_name.start_with?(key)
@@ -68,13 +70,32 @@ end
68
70
  def component_class_name(icon_file_name, replacements = nil)
69
71
  replacements ||= {}
70
72
 
71
- icon_name = File.basename(icon_file_name, '.svg')
73
+ icon_name = File.basename(icon_file_name, File.extname(icon_file_name))
72
74
 
73
75
  replacements.each do |key, value|
74
76
  icon_name = icon_name.gsub(key, value) if icon_name.start_with?(key)
75
77
  end
76
78
 
77
- icon_name.gsub('-', ' ').split.map(&:capitalize).join
79
+ icon_name.gsub(/[-_]/, ' ').split.map(&:capitalize).join
80
+ end
81
+
82
+ def make_components_lazy_loadable(path)
83
+ print '⌛ Making components lazy-loadable...'
84
+
85
+ autoload_lines = Dir.glob("#{path}/*.rb").map do |file|
86
+ next if ['base.rb', 'configuration.rb'].include?(File.basename(file))
87
+
88
+ " autoload :#{component_class_name(file)}, '#{file.split('/', 2).last.chomp(File.extname(file))}'"
89
+ end.compact.join("\n")
90
+
91
+ new_content = File.read("#{path}.rb").gsub(
92
+ /# auto-generated autoload: start.*# auto-generated autoload: end/m,
93
+ "# auto-generated autoload: start\n#{autoload_lines}\n # auto-generated autoload: end"
94
+ )
95
+
96
+ File.write("#{path}.rb", new_content)
97
+
98
+ puts "\e[2K\r🎉 Components are lazy-loadable!"
78
99
  end
79
100
 
80
101
  def run_rubocop(path)
@@ -86,7 +107,7 @@ def run_rubocop(path)
86
107
  File.write(file, File.read(file).gsub('rubocop:enable ,', 'rubocop:enable '))
87
108
  end
88
109
 
89
- puts "\r🎉 RuboCop ran successfully!"
110
+ puts "\e[2K\r🎉 RuboCop ran successfully!"
90
111
  end
91
112
 
92
113
  def delete_repo(repo_name)
@@ -94,7 +115,7 @@ def delete_repo(repo_name)
94
115
 
95
116
  FileUtils.rm_rf("generators/#{repo_name}")
96
117
 
97
- puts "\r🎉 '#{repo_name}' repo deleted successfully!"
118
+ puts "\e[2K\r🎉 '#{repo_name}' repo deleted successfully!"
98
119
  end
99
120
 
100
121
  def system!(command)
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'helper'
4
+
5
+ REPO_URL = 'https://github.com/tabler/tabler-icons.git'
6
+ REPO_NAME = 'tabler-tabler-icons'
7
+ ICONS_PACK_PATH = 'lib/phlex/icons/tabler'
8
+
9
+ TEMPLATE = ERB.new <<~TEMPLATE
10
+ # frozen_string_literal: true
11
+
12
+ # rubocop:disable #{ROBOCOP_DISABLE_WARNINGS}
13
+ module Phlex
14
+ module Icons
15
+ module Tabler
16
+ class <%= icon_name %> < Base
17
+ def filled
18
+ <%= filled_icon %>
19
+ end
20
+
21
+ def outline
22
+ <%= outline_icon %>
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ # rubocop:enable #{ROBOCOP_DISABLE_WARNINGS}
29
+ TEMPLATE
30
+
31
+ def main
32
+ run_generator { icon_file_names.tqdm.each { create_icon_component(_1) } }
33
+ end
34
+
35
+ def icon_file_names
36
+ Dir.glob("generators/#{REPO_NAME}/icons/outline/*").map { |file| File.basename(file) }
37
+ end
38
+
39
+ def create_icon_component(icon_file_name)
40
+ File.write(
41
+ File.join(ICONS_PACK_PATH, component_file_name(icon_file_name)),
42
+ TEMPLATE.result_with_hash(
43
+ icon_name: component_class_name(icon_file_name),
44
+ filled_icon: read_and_convert_icon(filled_icon_file_path(icon_file_name)),
45
+ outline_icon: read_and_convert_icon(outline_icon_file_path(icon_file_name))
46
+ )
47
+ )
48
+ end
49
+
50
+ def read_and_convert_icon(icon_file_path)
51
+ return 'raise NotImplementedError' unless File.exist?(icon_file_path)
52
+
53
+ icon_file_content = File.read(icon_file_path)
54
+ .gsub!(/<!--.*?-->/m, '')
55
+ .sub('width="24"', '')
56
+ .sub('height="24"', '')
57
+
58
+ Phlexing::Converter.convert(icon_file_content).sub('svg(', "svg(\nclass: classes,")
59
+ end
60
+
61
+ def filled_icon_file_path(icon_file_name)
62
+ "generators/#{REPO_NAME}/icons/filled/#{icon_file_name}"
63
+ end
64
+
65
+ def outline_icon_file_path(icon_file_name)
66
+ "generators/#{REPO_NAME}/icons/outline/#{icon_file_name}"
67
+ end
68
+
69
+ main if __FILE__ == $PROGRAM_NAME
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Phlex
4
+ module Icons
5
+ module Helper
6
+ def class_name_from_file_path(file_path)
7
+ ::File.basename(file_path, '.rb').split('_').collect(&:capitalize).join
8
+ end
9
+ end
10
+ end
11
+ end
@@ -2,15 +2,339 @@
2
2
 
3
3
  module Phlex
4
4
  module Icons
5
- module Hero
5
+ module Hero # rubocop:disable Metrics/ModuleLength
6
+ extend Phlex::Icons::Helper
7
+ extend Phlex::Kit
8
+
6
9
  require_relative 'hero/base'
7
10
  require_relative 'hero/configuration'
8
11
 
9
- Dir[File.join(__dir__, 'hero', '*.rb')].each do |file|
10
- next if ['base.rb', 'configuration.rb'].include?(File.basename(file))
11
-
12
- require_relative file
13
- end
12
+ # auto-generated autoload: start
13
+ autoload :AcademicCap, 'phlex/icons/hero/academic_cap'
14
+ autoload :AdjustmentsHorizontal, 'phlex/icons/hero/adjustments_horizontal'
15
+ autoload :AdjustmentsVertical, 'phlex/icons/hero/adjustments_vertical'
16
+ autoload :ArchiveBox, 'phlex/icons/hero/archive_box'
17
+ autoload :ArchiveBoxArrowDown, 'phlex/icons/hero/archive_box_arrow_down'
18
+ autoload :ArchiveBoxXMark, 'phlex/icons/hero/archive_box_x_mark'
19
+ autoload :ArrowDown, 'phlex/icons/hero/arrow_down'
20
+ autoload :ArrowDownCircle, 'phlex/icons/hero/arrow_down_circle'
21
+ autoload :ArrowDownLeft, 'phlex/icons/hero/arrow_down_left'
22
+ autoload :ArrowDownOnSquare, 'phlex/icons/hero/arrow_down_on_square'
23
+ autoload :ArrowDownOnSquareStack, 'phlex/icons/hero/arrow_down_on_square_stack'
24
+ autoload :ArrowDownRight, 'phlex/icons/hero/arrow_down_right'
25
+ autoload :ArrowDownTray, 'phlex/icons/hero/arrow_down_tray'
26
+ autoload :ArrowLeft, 'phlex/icons/hero/arrow_left'
27
+ autoload :ArrowLeftCircle, 'phlex/icons/hero/arrow_left_circle'
28
+ autoload :ArrowLeftEndOnRectangle, 'phlex/icons/hero/arrow_left_end_on_rectangle'
29
+ autoload :ArrowLeftOnRectangle, 'phlex/icons/hero/arrow_left_on_rectangle'
30
+ autoload :ArrowLeftStartOnRectangle, 'phlex/icons/hero/arrow_left_start_on_rectangle'
31
+ autoload :ArrowLongDown, 'phlex/icons/hero/arrow_long_down'
32
+ autoload :ArrowLongLeft, 'phlex/icons/hero/arrow_long_left'
33
+ autoload :ArrowLongRight, 'phlex/icons/hero/arrow_long_right'
34
+ autoload :ArrowLongUp, 'phlex/icons/hero/arrow_long_up'
35
+ autoload :ArrowPath, 'phlex/icons/hero/arrow_path'
36
+ autoload :ArrowPathRoundedSquare, 'phlex/icons/hero/arrow_path_rounded_square'
37
+ autoload :ArrowRight, 'phlex/icons/hero/arrow_right'
38
+ autoload :ArrowRightCircle, 'phlex/icons/hero/arrow_right_circle'
39
+ autoload :ArrowRightEndOnRectangle, 'phlex/icons/hero/arrow_right_end_on_rectangle'
40
+ autoload :ArrowRightOnRectangle, 'phlex/icons/hero/arrow_right_on_rectangle'
41
+ autoload :ArrowRightStartOnRectangle, 'phlex/icons/hero/arrow_right_start_on_rectangle'
42
+ autoload :ArrowSmallDown, 'phlex/icons/hero/arrow_small_down'
43
+ autoload :ArrowSmallLeft, 'phlex/icons/hero/arrow_small_left'
44
+ autoload :ArrowSmallRight, 'phlex/icons/hero/arrow_small_right'
45
+ autoload :ArrowSmallUp, 'phlex/icons/hero/arrow_small_up'
46
+ autoload :ArrowTopRightOnSquare, 'phlex/icons/hero/arrow_top_right_on_square'
47
+ autoload :ArrowTrendingDown, 'phlex/icons/hero/arrow_trending_down'
48
+ autoload :ArrowTrendingUp, 'phlex/icons/hero/arrow_trending_up'
49
+ autoload :ArrowTurnDownLeft, 'phlex/icons/hero/arrow_turn_down_left'
50
+ autoload :ArrowTurnDownRight, 'phlex/icons/hero/arrow_turn_down_right'
51
+ autoload :ArrowTurnLeftDown, 'phlex/icons/hero/arrow_turn_left_down'
52
+ autoload :ArrowTurnLeftUp, 'phlex/icons/hero/arrow_turn_left_up'
53
+ autoload :ArrowTurnRightDown, 'phlex/icons/hero/arrow_turn_right_down'
54
+ autoload :ArrowTurnRightUp, 'phlex/icons/hero/arrow_turn_right_up'
55
+ autoload :ArrowTurnUpLeft, 'phlex/icons/hero/arrow_turn_up_left'
56
+ autoload :ArrowTurnUpRight, 'phlex/icons/hero/arrow_turn_up_right'
57
+ autoload :ArrowUp, 'phlex/icons/hero/arrow_up'
58
+ autoload :ArrowUpCircle, 'phlex/icons/hero/arrow_up_circle'
59
+ autoload :ArrowUpLeft, 'phlex/icons/hero/arrow_up_left'
60
+ autoload :ArrowUpOnSquare, 'phlex/icons/hero/arrow_up_on_square'
61
+ autoload :ArrowUpOnSquareStack, 'phlex/icons/hero/arrow_up_on_square_stack'
62
+ autoload :ArrowUpRight, 'phlex/icons/hero/arrow_up_right'
63
+ autoload :ArrowUpTray, 'phlex/icons/hero/arrow_up_tray'
64
+ autoload :ArrowUturnDown, 'phlex/icons/hero/arrow_uturn_down'
65
+ autoload :ArrowUturnLeft, 'phlex/icons/hero/arrow_uturn_left'
66
+ autoload :ArrowUturnRight, 'phlex/icons/hero/arrow_uturn_right'
67
+ autoload :ArrowUturnUp, 'phlex/icons/hero/arrow_uturn_up'
68
+ autoload :ArrowsPointingIn, 'phlex/icons/hero/arrows_pointing_in'
69
+ autoload :ArrowsPointingOut, 'phlex/icons/hero/arrows_pointing_out'
70
+ autoload :ArrowsRightLeft, 'phlex/icons/hero/arrows_right_left'
71
+ autoload :ArrowsUpDown, 'phlex/icons/hero/arrows_up_down'
72
+ autoload :AtSymbol, 'phlex/icons/hero/at_symbol'
73
+ autoload :Backspace, 'phlex/icons/hero/backspace'
74
+ autoload :Backward, 'phlex/icons/hero/backward'
75
+ autoload :Banknotes, 'phlex/icons/hero/banknotes'
76
+ autoload :Bars2, 'phlex/icons/hero/bars_2'
77
+ autoload :Bars3, 'phlex/icons/hero/bars_3'
78
+ autoload :Bars3BottomLeft, 'phlex/icons/hero/bars_3_bottom_left'
79
+ autoload :Bars3BottomRight, 'phlex/icons/hero/bars_3_bottom_right'
80
+ autoload :Bars3CenterLeft, 'phlex/icons/hero/bars_3_center_left'
81
+ autoload :Bars4, 'phlex/icons/hero/bars_4'
82
+ autoload :BarsArrowDown, 'phlex/icons/hero/bars_arrow_down'
83
+ autoload :BarsArrowUp, 'phlex/icons/hero/bars_arrow_up'
84
+ autoload :Battery0, 'phlex/icons/hero/battery_0'
85
+ autoload :Battery100, 'phlex/icons/hero/battery_100'
86
+ autoload :Battery50, 'phlex/icons/hero/battery_50'
87
+ autoload :Beaker, 'phlex/icons/hero/beaker'
88
+ autoload :Bell, 'phlex/icons/hero/bell'
89
+ autoload :BellAlert, 'phlex/icons/hero/bell_alert'
90
+ autoload :BellSlash, 'phlex/icons/hero/bell_slash'
91
+ autoload :BellSnooze, 'phlex/icons/hero/bell_snooze'
92
+ autoload :Bold, 'phlex/icons/hero/bold'
93
+ autoload :Bolt, 'phlex/icons/hero/bolt'
94
+ autoload :BoltSlash, 'phlex/icons/hero/bolt_slash'
95
+ autoload :BookOpen, 'phlex/icons/hero/book_open'
96
+ autoload :Bookmark, 'phlex/icons/hero/bookmark'
97
+ autoload :BookmarkSlash, 'phlex/icons/hero/bookmark_slash'
98
+ autoload :BookmarkSquare, 'phlex/icons/hero/bookmark_square'
99
+ autoload :Briefcase, 'phlex/icons/hero/briefcase'
100
+ autoload :BugAnt, 'phlex/icons/hero/bug_ant'
101
+ autoload :BuildingLibrary, 'phlex/icons/hero/building_library'
102
+ autoload :BuildingOffice, 'phlex/icons/hero/building_office'
103
+ autoload :BuildingOffice2, 'phlex/icons/hero/building_office_2'
104
+ autoload :BuildingStorefront, 'phlex/icons/hero/building_storefront'
105
+ autoload :Cake, 'phlex/icons/hero/cake'
106
+ autoload :Calculator, 'phlex/icons/hero/calculator'
107
+ autoload :Calendar, 'phlex/icons/hero/calendar'
108
+ autoload :CalendarDateRange, 'phlex/icons/hero/calendar_date_range'
109
+ autoload :CalendarDays, 'phlex/icons/hero/calendar_days'
110
+ autoload :Camera, 'phlex/icons/hero/camera'
111
+ autoload :ChartBar, 'phlex/icons/hero/chart_bar'
112
+ autoload :ChartBarSquare, 'phlex/icons/hero/chart_bar_square'
113
+ autoload :ChartPie, 'phlex/icons/hero/chart_pie'
114
+ autoload :ChatBubbleBottomCenter, 'phlex/icons/hero/chat_bubble_bottom_center'
115
+ autoload :ChatBubbleBottomCenterText, 'phlex/icons/hero/chat_bubble_bottom_center_text'
116
+ autoload :ChatBubbleLeft, 'phlex/icons/hero/chat_bubble_left'
117
+ autoload :ChatBubbleLeftEllipsis, 'phlex/icons/hero/chat_bubble_left_ellipsis'
118
+ autoload :ChatBubbleLeftRight, 'phlex/icons/hero/chat_bubble_left_right'
119
+ autoload :ChatBubbleOvalLeft, 'phlex/icons/hero/chat_bubble_oval_left'
120
+ autoload :ChatBubbleOvalLeftEllipsis, 'phlex/icons/hero/chat_bubble_oval_left_ellipsis'
121
+ autoload :Check, 'phlex/icons/hero/check'
122
+ autoload :CheckBadge, 'phlex/icons/hero/check_badge'
123
+ autoload :CheckCircle, 'phlex/icons/hero/check_circle'
124
+ autoload :ChevronDoubleDown, 'phlex/icons/hero/chevron_double_down'
125
+ autoload :ChevronDoubleLeft, 'phlex/icons/hero/chevron_double_left'
126
+ autoload :ChevronDoubleRight, 'phlex/icons/hero/chevron_double_right'
127
+ autoload :ChevronDoubleUp, 'phlex/icons/hero/chevron_double_up'
128
+ autoload :ChevronDown, 'phlex/icons/hero/chevron_down'
129
+ autoload :ChevronLeft, 'phlex/icons/hero/chevron_left'
130
+ autoload :ChevronRight, 'phlex/icons/hero/chevron_right'
131
+ autoload :ChevronUp, 'phlex/icons/hero/chevron_up'
132
+ autoload :ChevronUpDown, 'phlex/icons/hero/chevron_up_down'
133
+ autoload :CircleStack, 'phlex/icons/hero/circle_stack'
134
+ autoload :Clipboard, 'phlex/icons/hero/clipboard'
135
+ autoload :ClipboardDocument, 'phlex/icons/hero/clipboard_document'
136
+ autoload :ClipboardDocumentCheck, 'phlex/icons/hero/clipboard_document_check'
137
+ autoload :ClipboardDocumentList, 'phlex/icons/hero/clipboard_document_list'
138
+ autoload :Clock, 'phlex/icons/hero/clock'
139
+ autoload :Cloud, 'phlex/icons/hero/cloud'
140
+ autoload :CloudArrowDown, 'phlex/icons/hero/cloud_arrow_down'
141
+ autoload :CloudArrowUp, 'phlex/icons/hero/cloud_arrow_up'
142
+ autoload :CodeBracket, 'phlex/icons/hero/code_bracket'
143
+ autoload :CodeBracketSquare, 'phlex/icons/hero/code_bracket_square'
144
+ autoload :Cog, 'phlex/icons/hero/cog'
145
+ autoload :Cog6Tooth, 'phlex/icons/hero/cog_6_tooth'
146
+ autoload :Cog8Tooth, 'phlex/icons/hero/cog_8_tooth'
147
+ autoload :CommandLine, 'phlex/icons/hero/command_line'
148
+ autoload :ComputerDesktop, 'phlex/icons/hero/computer_desktop'
149
+ autoload :CpuChip, 'phlex/icons/hero/cpu_chip'
150
+ autoload :CreditCard, 'phlex/icons/hero/credit_card'
151
+ autoload :Cube, 'phlex/icons/hero/cube'
152
+ autoload :CubeTransparent, 'phlex/icons/hero/cube_transparent'
153
+ autoload :CurrencyBangladeshi, 'phlex/icons/hero/currency_bangladeshi'
154
+ autoload :CurrencyDollar, 'phlex/icons/hero/currency_dollar'
155
+ autoload :CurrencyEuro, 'phlex/icons/hero/currency_euro'
156
+ autoload :CurrencyPound, 'phlex/icons/hero/currency_pound'
157
+ autoload :CurrencyRupee, 'phlex/icons/hero/currency_rupee'
158
+ autoload :CurrencyYen, 'phlex/icons/hero/currency_yen'
159
+ autoload :CursorArrowRays, 'phlex/icons/hero/cursor_arrow_rays'
160
+ autoload :CursorArrowRipple, 'phlex/icons/hero/cursor_arrow_ripple'
161
+ autoload :DevicePhoneMobile, 'phlex/icons/hero/device_phone_mobile'
162
+ autoload :DeviceTablet, 'phlex/icons/hero/device_tablet'
163
+ autoload :Divide, 'phlex/icons/hero/divide'
164
+ autoload :Document, 'phlex/icons/hero/document'
165
+ autoload :DocumentArrowDown, 'phlex/icons/hero/document_arrow_down'
166
+ autoload :DocumentArrowUp, 'phlex/icons/hero/document_arrow_up'
167
+ autoload :DocumentChartBar, 'phlex/icons/hero/document_chart_bar'
168
+ autoload :DocumentCheck, 'phlex/icons/hero/document_check'
169
+ autoload :DocumentCurrencyBangladeshi, 'phlex/icons/hero/document_currency_bangladeshi'
170
+ autoload :DocumentCurrencyDollar, 'phlex/icons/hero/document_currency_dollar'
171
+ autoload :DocumentCurrencyEuro, 'phlex/icons/hero/document_currency_euro'
172
+ autoload :DocumentCurrencyPound, 'phlex/icons/hero/document_currency_pound'
173
+ autoload :DocumentCurrencyRupee, 'phlex/icons/hero/document_currency_rupee'
174
+ autoload :DocumentCurrencyYen, 'phlex/icons/hero/document_currency_yen'
175
+ autoload :DocumentDuplicate, 'phlex/icons/hero/document_duplicate'
176
+ autoload :DocumentMagnifyingGlass, 'phlex/icons/hero/document_magnifying_glass'
177
+ autoload :DocumentMinus, 'phlex/icons/hero/document_minus'
178
+ autoload :DocumentPlus, 'phlex/icons/hero/document_plus'
179
+ autoload :DocumentText, 'phlex/icons/hero/document_text'
180
+ autoload :EllipsisHorizontal, 'phlex/icons/hero/ellipsis_horizontal'
181
+ autoload :EllipsisHorizontalCircle, 'phlex/icons/hero/ellipsis_horizontal_circle'
182
+ autoload :EllipsisVertical, 'phlex/icons/hero/ellipsis_vertical'
183
+ autoload :Envelope, 'phlex/icons/hero/envelope'
184
+ autoload :EnvelopeOpen, 'phlex/icons/hero/envelope_open'
185
+ autoload :Equals, 'phlex/icons/hero/equals'
186
+ autoload :ExclamationCircle, 'phlex/icons/hero/exclamation_circle'
187
+ autoload :ExclamationTriangle, 'phlex/icons/hero/exclamation_triangle'
188
+ autoload :Eye, 'phlex/icons/hero/eye'
189
+ autoload :EyeDropper, 'phlex/icons/hero/eye_dropper'
190
+ autoload :EyeSlash, 'phlex/icons/hero/eye_slash'
191
+ autoload :FaceFrown, 'phlex/icons/hero/face_frown'
192
+ autoload :FaceSmile, 'phlex/icons/hero/face_smile'
193
+ autoload :Film, 'phlex/icons/hero/film'
194
+ autoload :FingerPrint, 'phlex/icons/hero/finger_print'
195
+ autoload :Fire, 'phlex/icons/hero/fire'
196
+ autoload :Flag, 'phlex/icons/hero/flag'
197
+ autoload :Folder, 'phlex/icons/hero/folder'
198
+ autoload :FolderArrowDown, 'phlex/icons/hero/folder_arrow_down'
199
+ autoload :FolderMinus, 'phlex/icons/hero/folder_minus'
200
+ autoload :FolderOpen, 'phlex/icons/hero/folder_open'
201
+ autoload :FolderPlus, 'phlex/icons/hero/folder_plus'
202
+ autoload :Forward, 'phlex/icons/hero/forward'
203
+ autoload :Funnel, 'phlex/icons/hero/funnel'
204
+ autoload :Gif, 'phlex/icons/hero/gif'
205
+ autoload :Gift, 'phlex/icons/hero/gift'
206
+ autoload :GiftTop, 'phlex/icons/hero/gift_top'
207
+ autoload :GlobeAlt, 'phlex/icons/hero/globe_alt'
208
+ autoload :GlobeAmericas, 'phlex/icons/hero/globe_americas'
209
+ autoload :GlobeAsiaAustralia, 'phlex/icons/hero/globe_asia_australia'
210
+ autoload :GlobeEuropeAfrica, 'phlex/icons/hero/globe_europe_africa'
211
+ autoload :H1, 'phlex/icons/hero/h1'
212
+ autoload :H2, 'phlex/icons/hero/h2'
213
+ autoload :H3, 'phlex/icons/hero/h3'
214
+ autoload :HandRaised, 'phlex/icons/hero/hand_raised'
215
+ autoload :HandThumbDown, 'phlex/icons/hero/hand_thumb_down'
216
+ autoload :HandThumbUp, 'phlex/icons/hero/hand_thumb_up'
217
+ autoload :Hashtag, 'phlex/icons/hero/hashtag'
218
+ autoload :Heart, 'phlex/icons/hero/heart'
219
+ autoload :Home, 'phlex/icons/hero/home'
220
+ autoload :HomeModern, 'phlex/icons/hero/home_modern'
221
+ autoload :Identification, 'phlex/icons/hero/identification'
222
+ autoload :Inbox, 'phlex/icons/hero/inbox'
223
+ autoload :InboxArrowDown, 'phlex/icons/hero/inbox_arrow_down'
224
+ autoload :InboxStack, 'phlex/icons/hero/inbox_stack'
225
+ autoload :InformationCircle, 'phlex/icons/hero/information_circle'
226
+ autoload :Italic, 'phlex/icons/hero/italic'
227
+ autoload :Key, 'phlex/icons/hero/key'
228
+ autoload :Language, 'phlex/icons/hero/language'
229
+ autoload :Lifebuoy, 'phlex/icons/hero/lifebuoy'
230
+ autoload :LightBulb, 'phlex/icons/hero/light_bulb'
231
+ autoload :Link, 'phlex/icons/hero/link'
232
+ autoload :LinkSlash, 'phlex/icons/hero/link_slash'
233
+ autoload :ListBullet, 'phlex/icons/hero/list_bullet'
234
+ autoload :LockClosed, 'phlex/icons/hero/lock_closed'
235
+ autoload :LockOpen, 'phlex/icons/hero/lock_open'
236
+ autoload :MagnifyingGlass, 'phlex/icons/hero/magnifying_glass'
237
+ autoload :MagnifyingGlassCircle, 'phlex/icons/hero/magnifying_glass_circle'
238
+ autoload :MagnifyingGlassMinus, 'phlex/icons/hero/magnifying_glass_minus'
239
+ autoload :MagnifyingGlassPlus, 'phlex/icons/hero/magnifying_glass_plus'
240
+ autoload :Map, 'phlex/icons/hero/map'
241
+ autoload :MapPin, 'phlex/icons/hero/map_pin'
242
+ autoload :Megaphone, 'phlex/icons/hero/megaphone'
243
+ autoload :Microphone, 'phlex/icons/hero/microphone'
244
+ autoload :Minus, 'phlex/icons/hero/minus'
245
+ autoload :MinusCircle, 'phlex/icons/hero/minus_circle'
246
+ autoload :MinusSmall, 'phlex/icons/hero/minus_small'
247
+ autoload :Moon, 'phlex/icons/hero/moon'
248
+ autoload :MusicalNote, 'phlex/icons/hero/musical_note'
249
+ autoload :Newspaper, 'phlex/icons/hero/newspaper'
250
+ autoload :NoSymbol, 'phlex/icons/hero/no_symbol'
251
+ autoload :NumberedList, 'phlex/icons/hero/numbered_list'
252
+ autoload :PaintBrush, 'phlex/icons/hero/paint_brush'
253
+ autoload :PaperAirplane, 'phlex/icons/hero/paper_airplane'
254
+ autoload :PaperClip, 'phlex/icons/hero/paper_clip'
255
+ autoload :Pause, 'phlex/icons/hero/pause'
256
+ autoload :PauseCircle, 'phlex/icons/hero/pause_circle'
257
+ autoload :Pencil, 'phlex/icons/hero/pencil'
258
+ autoload :PencilSquare, 'phlex/icons/hero/pencil_square'
259
+ autoload :PercentBadge, 'phlex/icons/hero/percent_badge'
260
+ autoload :Phone, 'phlex/icons/hero/phone'
261
+ autoload :PhoneArrowDownLeft, 'phlex/icons/hero/phone_arrow_down_left'
262
+ autoload :PhoneArrowUpRight, 'phlex/icons/hero/phone_arrow_up_right'
263
+ autoload :PhoneXMark, 'phlex/icons/hero/phone_x_mark'
264
+ autoload :Photo, 'phlex/icons/hero/photo'
265
+ autoload :Play, 'phlex/icons/hero/play'
266
+ autoload :PlayCircle, 'phlex/icons/hero/play_circle'
267
+ autoload :PlayPause, 'phlex/icons/hero/play_pause'
268
+ autoload :Plus, 'phlex/icons/hero/plus'
269
+ autoload :PlusCircle, 'phlex/icons/hero/plus_circle'
270
+ autoload :PlusSmall, 'phlex/icons/hero/plus_small'
271
+ autoload :Power, 'phlex/icons/hero/power'
272
+ autoload :PresentationChartBar, 'phlex/icons/hero/presentation_chart_bar'
273
+ autoload :PresentationChartLine, 'phlex/icons/hero/presentation_chart_line'
274
+ autoload :Printer, 'phlex/icons/hero/printer'
275
+ autoload :PuzzlePiece, 'phlex/icons/hero/puzzle_piece'
276
+ autoload :QrCode, 'phlex/icons/hero/qr_code'
277
+ autoload :QuestionMarkCircle, 'phlex/icons/hero/question_mark_circle'
278
+ autoload :QueueList, 'phlex/icons/hero/queue_list'
279
+ autoload :Radio, 'phlex/icons/hero/radio'
280
+ autoload :ReceiptPercent, 'phlex/icons/hero/receipt_percent'
281
+ autoload :ReceiptRefund, 'phlex/icons/hero/receipt_refund'
282
+ autoload :RectangleGroup, 'phlex/icons/hero/rectangle_group'
283
+ autoload :RectangleStack, 'phlex/icons/hero/rectangle_stack'
284
+ autoload :RocketLaunch, 'phlex/icons/hero/rocket_launch'
285
+ autoload :Rss, 'phlex/icons/hero/rss'
286
+ autoload :Scale, 'phlex/icons/hero/scale'
287
+ autoload :Scissors, 'phlex/icons/hero/scissors'
288
+ autoload :Server, 'phlex/icons/hero/server'
289
+ autoload :ServerStack, 'phlex/icons/hero/server_stack'
290
+ autoload :Share, 'phlex/icons/hero/share'
291
+ autoload :ShieldCheck, 'phlex/icons/hero/shield_check'
292
+ autoload :ShieldExclamation, 'phlex/icons/hero/shield_exclamation'
293
+ autoload :ShoppingBag, 'phlex/icons/hero/shopping_bag'
294
+ autoload :ShoppingCart, 'phlex/icons/hero/shopping_cart'
295
+ autoload :Signal, 'phlex/icons/hero/signal'
296
+ autoload :SignalSlash, 'phlex/icons/hero/signal_slash'
297
+ autoload :Slash, 'phlex/icons/hero/slash'
298
+ autoload :Sparkles, 'phlex/icons/hero/sparkles'
299
+ autoload :SpeakerWave, 'phlex/icons/hero/speaker_wave'
300
+ autoload :SpeakerXMark, 'phlex/icons/hero/speaker_x_mark'
301
+ autoload :Square2Stack, 'phlex/icons/hero/square_2_stack'
302
+ autoload :Square3Stack3d, 'phlex/icons/hero/square_3_stack_3d'
303
+ autoload :Squares2x2, 'phlex/icons/hero/squares_2x2'
304
+ autoload :SquaresPlus, 'phlex/icons/hero/squares_plus'
305
+ autoload :Star, 'phlex/icons/hero/star'
306
+ autoload :Stop, 'phlex/icons/hero/stop'
307
+ autoload :StopCircle, 'phlex/icons/hero/stop_circle'
308
+ autoload :Strikethrough, 'phlex/icons/hero/strikethrough'
309
+ autoload :Sun, 'phlex/icons/hero/sun'
310
+ autoload :Swatch, 'phlex/icons/hero/swatch'
311
+ autoload :TableCells, 'phlex/icons/hero/table_cells'
312
+ autoload :Tag, 'phlex/icons/hero/tag'
313
+ autoload :Ticket, 'phlex/icons/hero/ticket'
314
+ autoload :Trash, 'phlex/icons/hero/trash'
315
+ autoload :Trophy, 'phlex/icons/hero/trophy'
316
+ autoload :Truck, 'phlex/icons/hero/truck'
317
+ autoload :Tv, 'phlex/icons/hero/tv'
318
+ autoload :Underline, 'phlex/icons/hero/underline'
319
+ autoload :User, 'phlex/icons/hero/user'
320
+ autoload :UserCircle, 'phlex/icons/hero/user_circle'
321
+ autoload :UserGroup, 'phlex/icons/hero/user_group'
322
+ autoload :UserMinus, 'phlex/icons/hero/user_minus'
323
+ autoload :UserPlus, 'phlex/icons/hero/user_plus'
324
+ autoload :Users, 'phlex/icons/hero/users'
325
+ autoload :Variable, 'phlex/icons/hero/variable'
326
+ autoload :VideoCamera, 'phlex/icons/hero/video_camera'
327
+ autoload :VideoCameraSlash, 'phlex/icons/hero/video_camera_slash'
328
+ autoload :ViewColumns, 'phlex/icons/hero/view_columns'
329
+ autoload :ViewfinderCircle, 'phlex/icons/hero/viewfinder_circle'
330
+ autoload :Wallet, 'phlex/icons/hero/wallet'
331
+ autoload :Wifi, 'phlex/icons/hero/wifi'
332
+ autoload :Window, 'phlex/icons/hero/window'
333
+ autoload :Wrench, 'phlex/icons/hero/wrench'
334
+ autoload :WrenchScrewdriver, 'phlex/icons/hero/wrench_screwdriver'
335
+ autoload :XCircle, 'phlex/icons/hero/x_circle'
336
+ autoload :XMark, 'phlex/icons/hero/x_mark'
337
+ # auto-generated autoload: end
14
338
 
15
339
  class << self
16
340
  def configuration
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Phlex
4
4
  module Icons
5
- VERSION = '0.11.0'
5
+ VERSION = '0.12.0'
6
6
  end
7
7
  end
@@ -4,9 +4,11 @@ require 'phlex'
4
4
 
5
5
  require_relative 'phlex/icons/base'
6
6
  require_relative 'phlex/icons/configuration'
7
- require_relative 'phlex/icons/hero'
7
+ require_relative 'phlex/icons/helper'
8
8
  require_relative 'phlex/icons/version'
9
9
 
10
+ require_relative 'phlex/icons/hero'
11
+
10
12
  module Phlex
11
13
  module Icons
12
14
  class << self
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phlex-icons-hero
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ali Hamdi Ali Fadel
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-09-01 00:00:00.000000000 Z
11
+ date: 2024-09-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: phlex
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.10'
19
+ version: '1.11'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.10'
26
+ version: '1.11'
27
27
  description:
28
28
  email:
29
29
  - aliosm1997@gmail.com
@@ -48,8 +48,10 @@ files:
48
48
  - generators/lucide.rb
49
49
  - generators/radix.rb
50
50
  - generators/remix.rb
51
+ - generators/tabler.rb
51
52
  - lib/phlex/icons/base.rb
52
53
  - lib/phlex/icons/configuration.rb
54
+ - lib/phlex/icons/helper.rb
53
55
  - lib/phlex/icons/hero.rb
54
56
  - lib/phlex/icons/hero/academic_cap.rb
55
57
  - lib/phlex/icons/hero/adjustments_horizontal.rb