phlex-icons-hero 0.11.0 → 0.13.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: ddf72567c889ac9e9f0a7db504a530d63ade96bc3246c935c74090a0838d5bce
4
+ data.tar.gz: bd4e603f720ccd42bbcb0fdab582b5ca925d9d02f236ef666a9e32dd3330b08c
5
5
  SHA512:
6
- metadata.gz: 7aa1692c8d5228561b204ea1bb6d80fb7045946c6f5c41f56aa0ccbc6092e5050a74a20b3b962b18235a385f78799bcadde3f0af229f26b8e76f521f9f4b6b97
7
- data.tar.gz: 31f93841766e14ac584f95f84df14474bea624762513bc6b15db9b2d1f7b48b22c9a88a1f19b0ed5564527db5faa0ccf8d238ba842de97a13f2fdfa805bd3bd9
6
+ metadata.gz: 0c49ddc3d87f2b409bf7059dfc85c537d72b15729c756c2de3c10d3c43aa19bd06ab7918a57616d386de6d841d28ba168eda8eceebb7f0a55e3ede5058983753
7
+ data.tar.gz: fcc981c4fb9e40eb9ace07fd6fd67dbaafece11942eb6e06c4b960a0aa2bab46a31b198509bb22f08b8be032421328b5b2498e30f9da101266e28010eefec656
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
 
@@ -40,6 +41,16 @@ If bundler is not being used to manage dependencies, install the gem by executin
40
41
  gem install phlex-icons
41
42
  ```
42
43
 
44
+ If you don't want to add all icon packs to your application, you can add a specific icon pack by using one (or multiple) of the following gems:
45
+
46
+ - [phlex-icons-bootstrap](https://rubygems.org/gems/phlex-icons-bootstrap)
47
+ - [phlex-icons-flag](https://rubygems.org/gems/phlex-icons-flag)
48
+ - [phlex-icons-hero](https://rubygems.org/gems/phlex-icons-hero)
49
+ - [phlex-icons-lucide](https://rubygems.org/gems/phlex-icons-lucide)
50
+ - [phlex-icons-radix](https://rubygems.org/gems/phlex-icons-radix)
51
+ - [phlex-icons-remix](https://rubygems.org/gems/phlex-icons-remix)
52
+ - [phlex-icons-tabler](https://rubygems.org/gems/phlex-icons-tabler)
53
+
43
54
  ## Configuration
44
55
 
45
56
  The gem provides global configuration options, and per icons pack configuration options.
@@ -96,8 +107,44 @@ Nothing to configure for RadixUI Icons.
96
107
 
97
108
  Nothing to configure for Remix Icons.
98
109
 
110
+ ### Tabler Icons configuration
111
+
112
+ ```ruby
113
+ Phlex::Icons::Tabler.configure do |config|
114
+ config.default_variant = :outline # or :filled
115
+ end
116
+
117
+ # OR
118
+
119
+ Phlex::Icons::Tabler.configuration.default_variant = :outline # or :filled
120
+ ```
121
+
99
122
  ## Usage
100
123
 
124
+ ### With `Phlex::Kit`
125
+
126
+ ```ruby
127
+ require 'phlex_icons'
128
+
129
+ class PhlexIcons < Phlex::HTML
130
+ include Phlex::Icons
131
+
132
+ def view_template
133
+ div do
134
+ Bootstrap::House(classes: 'size-4')
135
+ Flag::Sa(variant: :rectangle, classes: 'size-4')
136
+ Hero::Home(variant: :solid, classes: 'size-4')
137
+ Lucide::House(classes: 'size-4')
138
+ Radix::Home(classes: 'size-4')
139
+ Remix::HomeLine(classes: 'size-4')
140
+ Tabler::Home(variant: :filled, classes: 'size-4')
141
+ end
142
+ end
143
+ end
144
+ ```
145
+
146
+ ### Without `Phlex::Kit`
147
+
101
148
  ```ruby
102
149
  require 'phlex_icons'
103
150
 
@@ -110,6 +157,7 @@ class PhlexIcons < Phlex::HTML
110
157
  render Phlex::Icons::Lucide::House.new(classes: 'size-4')
111
158
  render Phlex::Icons::Radix::Home.new(classes: 'size-4')
112
159
  render Phlex::Icons::Remix::HomeLine.new(classes: 'size-4')
160
+ render Phlex::Icons::Tabler::Home.new(variant: :filled, classes: 'size-4')
113
161
  end
114
162
  end
115
163
  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
@@ -2,15 +2,338 @@
2
2
 
3
3
  module Phlex
4
4
  module Icons
5
- module Hero
5
+ module Hero # rubocop:disable Metrics/ModuleLength
6
+ extend Phlex::Kit
7
+
6
8
  require_relative 'hero/base'
7
9
  require_relative 'hero/configuration'
8
10
 
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
11
+ # auto-generated autoload: start
12
+ autoload :AcademicCap, 'phlex/icons/hero/academic_cap'
13
+ autoload :AdjustmentsHorizontal, 'phlex/icons/hero/adjustments_horizontal'
14
+ autoload :AdjustmentsVertical, 'phlex/icons/hero/adjustments_vertical'
15
+ autoload :ArchiveBox, 'phlex/icons/hero/archive_box'
16
+ autoload :ArchiveBoxArrowDown, 'phlex/icons/hero/archive_box_arrow_down'
17
+ autoload :ArchiveBoxXMark, 'phlex/icons/hero/archive_box_x_mark'
18
+ autoload :ArrowDown, 'phlex/icons/hero/arrow_down'
19
+ autoload :ArrowDownCircle, 'phlex/icons/hero/arrow_down_circle'
20
+ autoload :ArrowDownLeft, 'phlex/icons/hero/arrow_down_left'
21
+ autoload :ArrowDownOnSquare, 'phlex/icons/hero/arrow_down_on_square'
22
+ autoload :ArrowDownOnSquareStack, 'phlex/icons/hero/arrow_down_on_square_stack'
23
+ autoload :ArrowDownRight, 'phlex/icons/hero/arrow_down_right'
24
+ autoload :ArrowDownTray, 'phlex/icons/hero/arrow_down_tray'
25
+ autoload :ArrowLeft, 'phlex/icons/hero/arrow_left'
26
+ autoload :ArrowLeftCircle, 'phlex/icons/hero/arrow_left_circle'
27
+ autoload :ArrowLeftEndOnRectangle, 'phlex/icons/hero/arrow_left_end_on_rectangle'
28
+ autoload :ArrowLeftOnRectangle, 'phlex/icons/hero/arrow_left_on_rectangle'
29
+ autoload :ArrowLeftStartOnRectangle, 'phlex/icons/hero/arrow_left_start_on_rectangle'
30
+ autoload :ArrowLongDown, 'phlex/icons/hero/arrow_long_down'
31
+ autoload :ArrowLongLeft, 'phlex/icons/hero/arrow_long_left'
32
+ autoload :ArrowLongRight, 'phlex/icons/hero/arrow_long_right'
33
+ autoload :ArrowLongUp, 'phlex/icons/hero/arrow_long_up'
34
+ autoload :ArrowPath, 'phlex/icons/hero/arrow_path'
35
+ autoload :ArrowPathRoundedSquare, 'phlex/icons/hero/arrow_path_rounded_square'
36
+ autoload :ArrowRight, 'phlex/icons/hero/arrow_right'
37
+ autoload :ArrowRightCircle, 'phlex/icons/hero/arrow_right_circle'
38
+ autoload :ArrowRightEndOnRectangle, 'phlex/icons/hero/arrow_right_end_on_rectangle'
39
+ autoload :ArrowRightOnRectangle, 'phlex/icons/hero/arrow_right_on_rectangle'
40
+ autoload :ArrowRightStartOnRectangle, 'phlex/icons/hero/arrow_right_start_on_rectangle'
41
+ autoload :ArrowSmallDown, 'phlex/icons/hero/arrow_small_down'
42
+ autoload :ArrowSmallLeft, 'phlex/icons/hero/arrow_small_left'
43
+ autoload :ArrowSmallRight, 'phlex/icons/hero/arrow_small_right'
44
+ autoload :ArrowSmallUp, 'phlex/icons/hero/arrow_small_up'
45
+ autoload :ArrowTopRightOnSquare, 'phlex/icons/hero/arrow_top_right_on_square'
46
+ autoload :ArrowTrendingDown, 'phlex/icons/hero/arrow_trending_down'
47
+ autoload :ArrowTrendingUp, 'phlex/icons/hero/arrow_trending_up'
48
+ autoload :ArrowTurnDownLeft, 'phlex/icons/hero/arrow_turn_down_left'
49
+ autoload :ArrowTurnDownRight, 'phlex/icons/hero/arrow_turn_down_right'
50
+ autoload :ArrowTurnLeftDown, 'phlex/icons/hero/arrow_turn_left_down'
51
+ autoload :ArrowTurnLeftUp, 'phlex/icons/hero/arrow_turn_left_up'
52
+ autoload :ArrowTurnRightDown, 'phlex/icons/hero/arrow_turn_right_down'
53
+ autoload :ArrowTurnRightUp, 'phlex/icons/hero/arrow_turn_right_up'
54
+ autoload :ArrowTurnUpLeft, 'phlex/icons/hero/arrow_turn_up_left'
55
+ autoload :ArrowTurnUpRight, 'phlex/icons/hero/arrow_turn_up_right'
56
+ autoload :ArrowUp, 'phlex/icons/hero/arrow_up'
57
+ autoload :ArrowUpCircle, 'phlex/icons/hero/arrow_up_circle'
58
+ autoload :ArrowUpLeft, 'phlex/icons/hero/arrow_up_left'
59
+ autoload :ArrowUpOnSquare, 'phlex/icons/hero/arrow_up_on_square'
60
+ autoload :ArrowUpOnSquareStack, 'phlex/icons/hero/arrow_up_on_square_stack'
61
+ autoload :ArrowUpRight, 'phlex/icons/hero/arrow_up_right'
62
+ autoload :ArrowUpTray, 'phlex/icons/hero/arrow_up_tray'
63
+ autoload :ArrowUturnDown, 'phlex/icons/hero/arrow_uturn_down'
64
+ autoload :ArrowUturnLeft, 'phlex/icons/hero/arrow_uturn_left'
65
+ autoload :ArrowUturnRight, 'phlex/icons/hero/arrow_uturn_right'
66
+ autoload :ArrowUturnUp, 'phlex/icons/hero/arrow_uturn_up'
67
+ autoload :ArrowsPointingIn, 'phlex/icons/hero/arrows_pointing_in'
68
+ autoload :ArrowsPointingOut, 'phlex/icons/hero/arrows_pointing_out'
69
+ autoload :ArrowsRightLeft, 'phlex/icons/hero/arrows_right_left'
70
+ autoload :ArrowsUpDown, 'phlex/icons/hero/arrows_up_down'
71
+ autoload :AtSymbol, 'phlex/icons/hero/at_symbol'
72
+ autoload :Backspace, 'phlex/icons/hero/backspace'
73
+ autoload :Backward, 'phlex/icons/hero/backward'
74
+ autoload :Banknotes, 'phlex/icons/hero/banknotes'
75
+ autoload :Bars2, 'phlex/icons/hero/bars_2'
76
+ autoload :Bars3, 'phlex/icons/hero/bars_3'
77
+ autoload :Bars3BottomLeft, 'phlex/icons/hero/bars_3_bottom_left'
78
+ autoload :Bars3BottomRight, 'phlex/icons/hero/bars_3_bottom_right'
79
+ autoload :Bars3CenterLeft, 'phlex/icons/hero/bars_3_center_left'
80
+ autoload :Bars4, 'phlex/icons/hero/bars_4'
81
+ autoload :BarsArrowDown, 'phlex/icons/hero/bars_arrow_down'
82
+ autoload :BarsArrowUp, 'phlex/icons/hero/bars_arrow_up'
83
+ autoload :Battery0, 'phlex/icons/hero/battery_0'
84
+ autoload :Battery100, 'phlex/icons/hero/battery_100'
85
+ autoload :Battery50, 'phlex/icons/hero/battery_50'
86
+ autoload :Beaker, 'phlex/icons/hero/beaker'
87
+ autoload :Bell, 'phlex/icons/hero/bell'
88
+ autoload :BellAlert, 'phlex/icons/hero/bell_alert'
89
+ autoload :BellSlash, 'phlex/icons/hero/bell_slash'
90
+ autoload :BellSnooze, 'phlex/icons/hero/bell_snooze'
91
+ autoload :Bold, 'phlex/icons/hero/bold'
92
+ autoload :Bolt, 'phlex/icons/hero/bolt'
93
+ autoload :BoltSlash, 'phlex/icons/hero/bolt_slash'
94
+ autoload :BookOpen, 'phlex/icons/hero/book_open'
95
+ autoload :Bookmark, 'phlex/icons/hero/bookmark'
96
+ autoload :BookmarkSlash, 'phlex/icons/hero/bookmark_slash'
97
+ autoload :BookmarkSquare, 'phlex/icons/hero/bookmark_square'
98
+ autoload :Briefcase, 'phlex/icons/hero/briefcase'
99
+ autoload :BugAnt, 'phlex/icons/hero/bug_ant'
100
+ autoload :BuildingLibrary, 'phlex/icons/hero/building_library'
101
+ autoload :BuildingOffice, 'phlex/icons/hero/building_office'
102
+ autoload :BuildingOffice2, 'phlex/icons/hero/building_office_2'
103
+ autoload :BuildingStorefront, 'phlex/icons/hero/building_storefront'
104
+ autoload :Cake, 'phlex/icons/hero/cake'
105
+ autoload :Calculator, 'phlex/icons/hero/calculator'
106
+ autoload :Calendar, 'phlex/icons/hero/calendar'
107
+ autoload :CalendarDateRange, 'phlex/icons/hero/calendar_date_range'
108
+ autoload :CalendarDays, 'phlex/icons/hero/calendar_days'
109
+ autoload :Camera, 'phlex/icons/hero/camera'
110
+ autoload :ChartBar, 'phlex/icons/hero/chart_bar'
111
+ autoload :ChartBarSquare, 'phlex/icons/hero/chart_bar_square'
112
+ autoload :ChartPie, 'phlex/icons/hero/chart_pie'
113
+ autoload :ChatBubbleBottomCenter, 'phlex/icons/hero/chat_bubble_bottom_center'
114
+ autoload :ChatBubbleBottomCenterText, 'phlex/icons/hero/chat_bubble_bottom_center_text'
115
+ autoload :ChatBubbleLeft, 'phlex/icons/hero/chat_bubble_left'
116
+ autoload :ChatBubbleLeftEllipsis, 'phlex/icons/hero/chat_bubble_left_ellipsis'
117
+ autoload :ChatBubbleLeftRight, 'phlex/icons/hero/chat_bubble_left_right'
118
+ autoload :ChatBubbleOvalLeft, 'phlex/icons/hero/chat_bubble_oval_left'
119
+ autoload :ChatBubbleOvalLeftEllipsis, 'phlex/icons/hero/chat_bubble_oval_left_ellipsis'
120
+ autoload :Check, 'phlex/icons/hero/check'
121
+ autoload :CheckBadge, 'phlex/icons/hero/check_badge'
122
+ autoload :CheckCircle, 'phlex/icons/hero/check_circle'
123
+ autoload :ChevronDoubleDown, 'phlex/icons/hero/chevron_double_down'
124
+ autoload :ChevronDoubleLeft, 'phlex/icons/hero/chevron_double_left'
125
+ autoload :ChevronDoubleRight, 'phlex/icons/hero/chevron_double_right'
126
+ autoload :ChevronDoubleUp, 'phlex/icons/hero/chevron_double_up'
127
+ autoload :ChevronDown, 'phlex/icons/hero/chevron_down'
128
+ autoload :ChevronLeft, 'phlex/icons/hero/chevron_left'
129
+ autoload :ChevronRight, 'phlex/icons/hero/chevron_right'
130
+ autoload :ChevronUp, 'phlex/icons/hero/chevron_up'
131
+ autoload :ChevronUpDown, 'phlex/icons/hero/chevron_up_down'
132
+ autoload :CircleStack, 'phlex/icons/hero/circle_stack'
133
+ autoload :Clipboard, 'phlex/icons/hero/clipboard'
134
+ autoload :ClipboardDocument, 'phlex/icons/hero/clipboard_document'
135
+ autoload :ClipboardDocumentCheck, 'phlex/icons/hero/clipboard_document_check'
136
+ autoload :ClipboardDocumentList, 'phlex/icons/hero/clipboard_document_list'
137
+ autoload :Clock, 'phlex/icons/hero/clock'
138
+ autoload :Cloud, 'phlex/icons/hero/cloud'
139
+ autoload :CloudArrowDown, 'phlex/icons/hero/cloud_arrow_down'
140
+ autoload :CloudArrowUp, 'phlex/icons/hero/cloud_arrow_up'
141
+ autoload :CodeBracket, 'phlex/icons/hero/code_bracket'
142
+ autoload :CodeBracketSquare, 'phlex/icons/hero/code_bracket_square'
143
+ autoload :Cog, 'phlex/icons/hero/cog'
144
+ autoload :Cog6Tooth, 'phlex/icons/hero/cog_6_tooth'
145
+ autoload :Cog8Tooth, 'phlex/icons/hero/cog_8_tooth'
146
+ autoload :CommandLine, 'phlex/icons/hero/command_line'
147
+ autoload :ComputerDesktop, 'phlex/icons/hero/computer_desktop'
148
+ autoload :CpuChip, 'phlex/icons/hero/cpu_chip'
149
+ autoload :CreditCard, 'phlex/icons/hero/credit_card'
150
+ autoload :Cube, 'phlex/icons/hero/cube'
151
+ autoload :CubeTransparent, 'phlex/icons/hero/cube_transparent'
152
+ autoload :CurrencyBangladeshi, 'phlex/icons/hero/currency_bangladeshi'
153
+ autoload :CurrencyDollar, 'phlex/icons/hero/currency_dollar'
154
+ autoload :CurrencyEuro, 'phlex/icons/hero/currency_euro'
155
+ autoload :CurrencyPound, 'phlex/icons/hero/currency_pound'
156
+ autoload :CurrencyRupee, 'phlex/icons/hero/currency_rupee'
157
+ autoload :CurrencyYen, 'phlex/icons/hero/currency_yen'
158
+ autoload :CursorArrowRays, 'phlex/icons/hero/cursor_arrow_rays'
159
+ autoload :CursorArrowRipple, 'phlex/icons/hero/cursor_arrow_ripple'
160
+ autoload :DevicePhoneMobile, 'phlex/icons/hero/device_phone_mobile'
161
+ autoload :DeviceTablet, 'phlex/icons/hero/device_tablet'
162
+ autoload :Divide, 'phlex/icons/hero/divide'
163
+ autoload :Document, 'phlex/icons/hero/document'
164
+ autoload :DocumentArrowDown, 'phlex/icons/hero/document_arrow_down'
165
+ autoload :DocumentArrowUp, 'phlex/icons/hero/document_arrow_up'
166
+ autoload :DocumentChartBar, 'phlex/icons/hero/document_chart_bar'
167
+ autoload :DocumentCheck, 'phlex/icons/hero/document_check'
168
+ autoload :DocumentCurrencyBangladeshi, 'phlex/icons/hero/document_currency_bangladeshi'
169
+ autoload :DocumentCurrencyDollar, 'phlex/icons/hero/document_currency_dollar'
170
+ autoload :DocumentCurrencyEuro, 'phlex/icons/hero/document_currency_euro'
171
+ autoload :DocumentCurrencyPound, 'phlex/icons/hero/document_currency_pound'
172
+ autoload :DocumentCurrencyRupee, 'phlex/icons/hero/document_currency_rupee'
173
+ autoload :DocumentCurrencyYen, 'phlex/icons/hero/document_currency_yen'
174
+ autoload :DocumentDuplicate, 'phlex/icons/hero/document_duplicate'
175
+ autoload :DocumentMagnifyingGlass, 'phlex/icons/hero/document_magnifying_glass'
176
+ autoload :DocumentMinus, 'phlex/icons/hero/document_minus'
177
+ autoload :DocumentPlus, 'phlex/icons/hero/document_plus'
178
+ autoload :DocumentText, 'phlex/icons/hero/document_text'
179
+ autoload :EllipsisHorizontal, 'phlex/icons/hero/ellipsis_horizontal'
180
+ autoload :EllipsisHorizontalCircle, 'phlex/icons/hero/ellipsis_horizontal_circle'
181
+ autoload :EllipsisVertical, 'phlex/icons/hero/ellipsis_vertical'
182
+ autoload :Envelope, 'phlex/icons/hero/envelope'
183
+ autoload :EnvelopeOpen, 'phlex/icons/hero/envelope_open'
184
+ autoload :Equals, 'phlex/icons/hero/equals'
185
+ autoload :ExclamationCircle, 'phlex/icons/hero/exclamation_circle'
186
+ autoload :ExclamationTriangle, 'phlex/icons/hero/exclamation_triangle'
187
+ autoload :Eye, 'phlex/icons/hero/eye'
188
+ autoload :EyeDropper, 'phlex/icons/hero/eye_dropper'
189
+ autoload :EyeSlash, 'phlex/icons/hero/eye_slash'
190
+ autoload :FaceFrown, 'phlex/icons/hero/face_frown'
191
+ autoload :FaceSmile, 'phlex/icons/hero/face_smile'
192
+ autoload :Film, 'phlex/icons/hero/film'
193
+ autoload :FingerPrint, 'phlex/icons/hero/finger_print'
194
+ autoload :Fire, 'phlex/icons/hero/fire'
195
+ autoload :Flag, 'phlex/icons/hero/flag'
196
+ autoload :Folder, 'phlex/icons/hero/folder'
197
+ autoload :FolderArrowDown, 'phlex/icons/hero/folder_arrow_down'
198
+ autoload :FolderMinus, 'phlex/icons/hero/folder_minus'
199
+ autoload :FolderOpen, 'phlex/icons/hero/folder_open'
200
+ autoload :FolderPlus, 'phlex/icons/hero/folder_plus'
201
+ autoload :Forward, 'phlex/icons/hero/forward'
202
+ autoload :Funnel, 'phlex/icons/hero/funnel'
203
+ autoload :Gif, 'phlex/icons/hero/gif'
204
+ autoload :Gift, 'phlex/icons/hero/gift'
205
+ autoload :GiftTop, 'phlex/icons/hero/gift_top'
206
+ autoload :GlobeAlt, 'phlex/icons/hero/globe_alt'
207
+ autoload :GlobeAmericas, 'phlex/icons/hero/globe_americas'
208
+ autoload :GlobeAsiaAustralia, 'phlex/icons/hero/globe_asia_australia'
209
+ autoload :GlobeEuropeAfrica, 'phlex/icons/hero/globe_europe_africa'
210
+ autoload :H1, 'phlex/icons/hero/h1'
211
+ autoload :H2, 'phlex/icons/hero/h2'
212
+ autoload :H3, 'phlex/icons/hero/h3'
213
+ autoload :HandRaised, 'phlex/icons/hero/hand_raised'
214
+ autoload :HandThumbDown, 'phlex/icons/hero/hand_thumb_down'
215
+ autoload :HandThumbUp, 'phlex/icons/hero/hand_thumb_up'
216
+ autoload :Hashtag, 'phlex/icons/hero/hashtag'
217
+ autoload :Heart, 'phlex/icons/hero/heart'
218
+ autoload :Home, 'phlex/icons/hero/home'
219
+ autoload :HomeModern, 'phlex/icons/hero/home_modern'
220
+ autoload :Identification, 'phlex/icons/hero/identification'
221
+ autoload :Inbox, 'phlex/icons/hero/inbox'
222
+ autoload :InboxArrowDown, 'phlex/icons/hero/inbox_arrow_down'
223
+ autoload :InboxStack, 'phlex/icons/hero/inbox_stack'
224
+ autoload :InformationCircle, 'phlex/icons/hero/information_circle'
225
+ autoload :Italic, 'phlex/icons/hero/italic'
226
+ autoload :Key, 'phlex/icons/hero/key'
227
+ autoload :Language, 'phlex/icons/hero/language'
228
+ autoload :Lifebuoy, 'phlex/icons/hero/lifebuoy'
229
+ autoload :LightBulb, 'phlex/icons/hero/light_bulb'
230
+ autoload :Link, 'phlex/icons/hero/link'
231
+ autoload :LinkSlash, 'phlex/icons/hero/link_slash'
232
+ autoload :ListBullet, 'phlex/icons/hero/list_bullet'
233
+ autoload :LockClosed, 'phlex/icons/hero/lock_closed'
234
+ autoload :LockOpen, 'phlex/icons/hero/lock_open'
235
+ autoload :MagnifyingGlass, 'phlex/icons/hero/magnifying_glass'
236
+ autoload :MagnifyingGlassCircle, 'phlex/icons/hero/magnifying_glass_circle'
237
+ autoload :MagnifyingGlassMinus, 'phlex/icons/hero/magnifying_glass_minus'
238
+ autoload :MagnifyingGlassPlus, 'phlex/icons/hero/magnifying_glass_plus'
239
+ autoload :Map, 'phlex/icons/hero/map'
240
+ autoload :MapPin, 'phlex/icons/hero/map_pin'
241
+ autoload :Megaphone, 'phlex/icons/hero/megaphone'
242
+ autoload :Microphone, 'phlex/icons/hero/microphone'
243
+ autoload :Minus, 'phlex/icons/hero/minus'
244
+ autoload :MinusCircle, 'phlex/icons/hero/minus_circle'
245
+ autoload :MinusSmall, 'phlex/icons/hero/minus_small'
246
+ autoload :Moon, 'phlex/icons/hero/moon'
247
+ autoload :MusicalNote, 'phlex/icons/hero/musical_note'
248
+ autoload :Newspaper, 'phlex/icons/hero/newspaper'
249
+ autoload :NoSymbol, 'phlex/icons/hero/no_symbol'
250
+ autoload :NumberedList, 'phlex/icons/hero/numbered_list'
251
+ autoload :PaintBrush, 'phlex/icons/hero/paint_brush'
252
+ autoload :PaperAirplane, 'phlex/icons/hero/paper_airplane'
253
+ autoload :PaperClip, 'phlex/icons/hero/paper_clip'
254
+ autoload :Pause, 'phlex/icons/hero/pause'
255
+ autoload :PauseCircle, 'phlex/icons/hero/pause_circle'
256
+ autoload :Pencil, 'phlex/icons/hero/pencil'
257
+ autoload :PencilSquare, 'phlex/icons/hero/pencil_square'
258
+ autoload :PercentBadge, 'phlex/icons/hero/percent_badge'
259
+ autoload :Phone, 'phlex/icons/hero/phone'
260
+ autoload :PhoneArrowDownLeft, 'phlex/icons/hero/phone_arrow_down_left'
261
+ autoload :PhoneArrowUpRight, 'phlex/icons/hero/phone_arrow_up_right'
262
+ autoload :PhoneXMark, 'phlex/icons/hero/phone_x_mark'
263
+ autoload :Photo, 'phlex/icons/hero/photo'
264
+ autoload :Play, 'phlex/icons/hero/play'
265
+ autoload :PlayCircle, 'phlex/icons/hero/play_circle'
266
+ autoload :PlayPause, 'phlex/icons/hero/play_pause'
267
+ autoload :Plus, 'phlex/icons/hero/plus'
268
+ autoload :PlusCircle, 'phlex/icons/hero/plus_circle'
269
+ autoload :PlusSmall, 'phlex/icons/hero/plus_small'
270
+ autoload :Power, 'phlex/icons/hero/power'
271
+ autoload :PresentationChartBar, 'phlex/icons/hero/presentation_chart_bar'
272
+ autoload :PresentationChartLine, 'phlex/icons/hero/presentation_chart_line'
273
+ autoload :Printer, 'phlex/icons/hero/printer'
274
+ autoload :PuzzlePiece, 'phlex/icons/hero/puzzle_piece'
275
+ autoload :QrCode, 'phlex/icons/hero/qr_code'
276
+ autoload :QuestionMarkCircle, 'phlex/icons/hero/question_mark_circle'
277
+ autoload :QueueList, 'phlex/icons/hero/queue_list'
278
+ autoload :Radio, 'phlex/icons/hero/radio'
279
+ autoload :ReceiptPercent, 'phlex/icons/hero/receipt_percent'
280
+ autoload :ReceiptRefund, 'phlex/icons/hero/receipt_refund'
281
+ autoload :RectangleGroup, 'phlex/icons/hero/rectangle_group'
282
+ autoload :RectangleStack, 'phlex/icons/hero/rectangle_stack'
283
+ autoload :RocketLaunch, 'phlex/icons/hero/rocket_launch'
284
+ autoload :Rss, 'phlex/icons/hero/rss'
285
+ autoload :Scale, 'phlex/icons/hero/scale'
286
+ autoload :Scissors, 'phlex/icons/hero/scissors'
287
+ autoload :Server, 'phlex/icons/hero/server'
288
+ autoload :ServerStack, 'phlex/icons/hero/server_stack'
289
+ autoload :Share, 'phlex/icons/hero/share'
290
+ autoload :ShieldCheck, 'phlex/icons/hero/shield_check'
291
+ autoload :ShieldExclamation, 'phlex/icons/hero/shield_exclamation'
292
+ autoload :ShoppingBag, 'phlex/icons/hero/shopping_bag'
293
+ autoload :ShoppingCart, 'phlex/icons/hero/shopping_cart'
294
+ autoload :Signal, 'phlex/icons/hero/signal'
295
+ autoload :SignalSlash, 'phlex/icons/hero/signal_slash'
296
+ autoload :Slash, 'phlex/icons/hero/slash'
297
+ autoload :Sparkles, 'phlex/icons/hero/sparkles'
298
+ autoload :SpeakerWave, 'phlex/icons/hero/speaker_wave'
299
+ autoload :SpeakerXMark, 'phlex/icons/hero/speaker_x_mark'
300
+ autoload :Square2Stack, 'phlex/icons/hero/square_2_stack'
301
+ autoload :Square3Stack3d, 'phlex/icons/hero/square_3_stack_3d'
302
+ autoload :Squares2x2, 'phlex/icons/hero/squares_2x2'
303
+ autoload :SquaresPlus, 'phlex/icons/hero/squares_plus'
304
+ autoload :Star, 'phlex/icons/hero/star'
305
+ autoload :Stop, 'phlex/icons/hero/stop'
306
+ autoload :StopCircle, 'phlex/icons/hero/stop_circle'
307
+ autoload :Strikethrough, 'phlex/icons/hero/strikethrough'
308
+ autoload :Sun, 'phlex/icons/hero/sun'
309
+ autoload :Swatch, 'phlex/icons/hero/swatch'
310
+ autoload :TableCells, 'phlex/icons/hero/table_cells'
311
+ autoload :Tag, 'phlex/icons/hero/tag'
312
+ autoload :Ticket, 'phlex/icons/hero/ticket'
313
+ autoload :Trash, 'phlex/icons/hero/trash'
314
+ autoload :Trophy, 'phlex/icons/hero/trophy'
315
+ autoload :Truck, 'phlex/icons/hero/truck'
316
+ autoload :Tv, 'phlex/icons/hero/tv'
317
+ autoload :Underline, 'phlex/icons/hero/underline'
318
+ autoload :User, 'phlex/icons/hero/user'
319
+ autoload :UserCircle, 'phlex/icons/hero/user_circle'
320
+ autoload :UserGroup, 'phlex/icons/hero/user_group'
321
+ autoload :UserMinus, 'phlex/icons/hero/user_minus'
322
+ autoload :UserPlus, 'phlex/icons/hero/user_plus'
323
+ autoload :Users, 'phlex/icons/hero/users'
324
+ autoload :Variable, 'phlex/icons/hero/variable'
325
+ autoload :VideoCamera, 'phlex/icons/hero/video_camera'
326
+ autoload :VideoCameraSlash, 'phlex/icons/hero/video_camera_slash'
327
+ autoload :ViewColumns, 'phlex/icons/hero/view_columns'
328
+ autoload :ViewfinderCircle, 'phlex/icons/hero/viewfinder_circle'
329
+ autoload :Wallet, 'phlex/icons/hero/wallet'
330
+ autoload :Wifi, 'phlex/icons/hero/wifi'
331
+ autoload :Window, 'phlex/icons/hero/window'
332
+ autoload :Wrench, 'phlex/icons/hero/wrench'
333
+ autoload :WrenchScrewdriver, 'phlex/icons/hero/wrench_screwdriver'
334
+ autoload :XCircle, 'phlex/icons/hero/x_circle'
335
+ autoload :XMark, 'phlex/icons/hero/x_mark'
336
+ # auto-generated autoload: end
14
337
 
15
338
  class << self
16
339
  def configuration
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Phlex
4
4
  module Icons
5
- VERSION = '0.11.0'
5
+ VERSION = '0.13.0'
6
6
  end
7
7
  end
@@ -4,9 +4,10 @@ require 'phlex'
4
4
 
5
5
  require_relative 'phlex/icons/base'
6
6
  require_relative 'phlex/icons/configuration'
7
- require_relative 'phlex/icons/hero'
8
7
  require_relative 'phlex/icons/version'
9
8
 
9
+ require_relative 'phlex/icons/hero'
10
+
10
11
  module Phlex
11
12
  module Icons
12
13
  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.13.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,6 +48,7 @@ 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
53
54
  - lib/phlex/icons/hero.rb