phlex-icons-radix 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: 1d320ea9a31386015a1ec1b1a299ac1fb0155851f26eaed6029ea50005219a5e
4
- data.tar.gz: 24160eebfdce297b7396cb0a693feeed676cb6334b21f2b5d71e237437e70f0a
3
+ metadata.gz: 5a7b1a71c8f60a8d35f4491b5e89271620dd5fb5b7a91d3ab003b9ad175d8e5a
4
+ data.tar.gz: c0307aff5cede4ebc4cca4a313be80d76372a01cdd61ad1de935b5b9c0965b36
5
5
  SHA512:
6
- metadata.gz: 8d11f22a98a734a045f0196588487c9a2f95ac920671b46c53b467803da940522f0c69d8cc40902fb48e57ac8bdfe03bf9ba80d822306bf8b7b40582ca33242b
7
- data.tar.gz: bda2a4745ee41f12474e7cd9595f13d3333aef75343d809011c1e31302bd5431db965c46f848de556b1215fd54cde34bd6cbda95b01f8d5cc1eafa6aea1b93fa
6
+ metadata.gz: e781779c414a04f986344e4601ad4b8cff0aa23488f27043d265f9def7276512f83f1c2c159b37f083141ab4543b95cddd301775fff712f5f3304bcd39ead84c
7
+ data.tar.gz: 0a1309156caf0c5775371d427c877eac86a4f5e0b2ab922085cb8311d81ee1bf4fa67ffce0b0b867591504109ba1fb35827ed5d3627ea31428cd44d056f805f5
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,14 +2,332 @@
2
2
 
3
3
  module Phlex
4
4
  module Icons
5
- module Radix
6
- require_relative 'radix/base'
5
+ module Radix # rubocop:disable Metrics/ModuleLength
6
+ extend Phlex::Icons::Helper
7
+ extend Phlex::Kit
7
8
 
8
- Dir[File.join(__dir__, 'radix', '*.rb')].each do |file|
9
- next if ['base.rb'].include?(::File.basename(file))
9
+ require_relative 'radix/base'
10
10
 
11
- require_relative file
12
- end
11
+ # auto-generated autoload: start
12
+ autoload :Accessibility, 'phlex/icons/radix/accessibility'
13
+ autoload :ActivityLog, 'phlex/icons/radix/activity_log'
14
+ autoload :AlignBaseline, 'phlex/icons/radix/align_baseline'
15
+ autoload :AlignBottom, 'phlex/icons/radix/align_bottom'
16
+ autoload :AlignCenterHorizontally, 'phlex/icons/radix/align_center_horizontally'
17
+ autoload :AlignCenterVertically, 'phlex/icons/radix/align_center_vertically'
18
+ autoload :AlignLeft, 'phlex/icons/radix/align_left'
19
+ autoload :AlignRight, 'phlex/icons/radix/align_right'
20
+ autoload :AlignTop, 'phlex/icons/radix/align_top'
21
+ autoload :AllSides, 'phlex/icons/radix/all_sides'
22
+ autoload :Angle, 'phlex/icons/radix/angle'
23
+ autoload :Archive, 'phlex/icons/radix/archive'
24
+ autoload :ArrowBottomLeft, 'phlex/icons/radix/arrow_bottom_left'
25
+ autoload :ArrowBottomRight, 'phlex/icons/radix/arrow_bottom_right'
26
+ autoload :ArrowDown, 'phlex/icons/radix/arrow_down'
27
+ autoload :ArrowLeft, 'phlex/icons/radix/arrow_left'
28
+ autoload :ArrowRight, 'phlex/icons/radix/arrow_right'
29
+ autoload :ArrowTopLeft, 'phlex/icons/radix/arrow_top_left'
30
+ autoload :ArrowTopRight, 'phlex/icons/radix/arrow_top_right'
31
+ autoload :ArrowUp, 'phlex/icons/radix/arrow_up'
32
+ autoload :AspectRatio, 'phlex/icons/radix/aspect_ratio'
33
+ autoload :Avatar, 'phlex/icons/radix/avatar'
34
+ autoload :Backpack, 'phlex/icons/radix/backpack'
35
+ autoload :Badge, 'phlex/icons/radix/badge'
36
+ autoload :BarChart, 'phlex/icons/radix/bar_chart'
37
+ autoload :Bell, 'phlex/icons/radix/bell'
38
+ autoload :BlendingMode, 'phlex/icons/radix/blending_mode'
39
+ autoload :Bookmark, 'phlex/icons/radix/bookmark'
40
+ autoload :BookmarkFilled, 'phlex/icons/radix/bookmark_filled'
41
+ autoload :BorderAll, 'phlex/icons/radix/border_all'
42
+ autoload :BorderBottom, 'phlex/icons/radix/border_bottom'
43
+ autoload :BorderDashed, 'phlex/icons/radix/border_dashed'
44
+ autoload :BorderDotted, 'phlex/icons/radix/border_dotted'
45
+ autoload :BorderLeft, 'phlex/icons/radix/border_left'
46
+ autoload :BorderNone, 'phlex/icons/radix/border_none'
47
+ autoload :BorderRight, 'phlex/icons/radix/border_right'
48
+ autoload :BorderSolid, 'phlex/icons/radix/border_solid'
49
+ autoload :BorderSplit, 'phlex/icons/radix/border_split'
50
+ autoload :BorderStyle, 'phlex/icons/radix/border_style'
51
+ autoload :BorderTop, 'phlex/icons/radix/border_top'
52
+ autoload :BorderWidth, 'phlex/icons/radix/border_width'
53
+ autoload :Box, 'phlex/icons/radix/box'
54
+ autoload :BoxModel, 'phlex/icons/radix/box_model'
55
+ autoload :Button, 'phlex/icons/radix/button'
56
+ autoload :Calendar, 'phlex/icons/radix/calendar'
57
+ autoload :Camera, 'phlex/icons/radix/camera'
58
+ autoload :CardStack, 'phlex/icons/radix/card_stack'
59
+ autoload :CardStackMinus, 'phlex/icons/radix/card_stack_minus'
60
+ autoload :CardStackPlus, 'phlex/icons/radix/card_stack_plus'
61
+ autoload :CaretDown, 'phlex/icons/radix/caret_down'
62
+ autoload :CaretLeft, 'phlex/icons/radix/caret_left'
63
+ autoload :CaretRight, 'phlex/icons/radix/caret_right'
64
+ autoload :CaretSort, 'phlex/icons/radix/caret_sort'
65
+ autoload :CaretUp, 'phlex/icons/radix/caret_up'
66
+ autoload :ChatBubble, 'phlex/icons/radix/chat_bubble'
67
+ autoload :Check, 'phlex/icons/radix/check'
68
+ autoload :CheckCircled, 'phlex/icons/radix/check_circled'
69
+ autoload :Checkbox, 'phlex/icons/radix/checkbox'
70
+ autoload :ChevronDown, 'phlex/icons/radix/chevron_down'
71
+ autoload :ChevronLeft, 'phlex/icons/radix/chevron_left'
72
+ autoload :ChevronRight, 'phlex/icons/radix/chevron_right'
73
+ autoload :ChevronUp, 'phlex/icons/radix/chevron_up'
74
+ autoload :Circle, 'phlex/icons/radix/circle'
75
+ autoload :CircleBackslash, 'phlex/icons/radix/circle_backslash'
76
+ autoload :Clipboard, 'phlex/icons/radix/clipboard'
77
+ autoload :ClipboardCopy, 'phlex/icons/radix/clipboard_copy'
78
+ autoload :Clock, 'phlex/icons/radix/clock'
79
+ autoload :Code, 'phlex/icons/radix/code'
80
+ autoload :CodesandboxLogo, 'phlex/icons/radix/codesandbox_logo'
81
+ autoload :ColorWheel, 'phlex/icons/radix/color_wheel'
82
+ autoload :ColumnSpacing, 'phlex/icons/radix/column_spacing'
83
+ autoload :Columns, 'phlex/icons/radix/columns'
84
+ autoload :Commit, 'phlex/icons/radix/commit'
85
+ autoload :Component1, 'phlex/icons/radix/component_1'
86
+ autoload :Component2, 'phlex/icons/radix/component_2'
87
+ autoload :ComponentBoolean, 'phlex/icons/radix/component_boolean'
88
+ autoload :ComponentInstance, 'phlex/icons/radix/component_instance'
89
+ autoload :ComponentNone, 'phlex/icons/radix/component_none'
90
+ autoload :ComponentPlaceholder, 'phlex/icons/radix/component_placeholder'
91
+ autoload :Container, 'phlex/icons/radix/container'
92
+ autoload :Cookie, 'phlex/icons/radix/cookie'
93
+ autoload :Copy, 'phlex/icons/radix/copy'
94
+ autoload :CornerBottomLeft, 'phlex/icons/radix/corner_bottom_left'
95
+ autoload :CornerBottomRight, 'phlex/icons/radix/corner_bottom_right'
96
+ autoload :CornerTopLeft, 'phlex/icons/radix/corner_top_left'
97
+ autoload :CornerTopRight, 'phlex/icons/radix/corner_top_right'
98
+ autoload :Corners, 'phlex/icons/radix/corners'
99
+ autoload :CountdownTimer, 'phlex/icons/radix/countdown_timer'
100
+ autoload :CounterClockwiseClock, 'phlex/icons/radix/counter_clockwise_clock'
101
+ autoload :Crop, 'phlex/icons/radix/crop'
102
+ autoload :Cross1, 'phlex/icons/radix/cross_1'
103
+ autoload :Cross2, 'phlex/icons/radix/cross_2'
104
+ autoload :CrossCircled, 'phlex/icons/radix/cross_circled'
105
+ autoload :Crosshair1, 'phlex/icons/radix/crosshair_1'
106
+ autoload :Crosshair2, 'phlex/icons/radix/crosshair_2'
107
+ autoload :CrumpledPaper, 'phlex/icons/radix/crumpled_paper'
108
+ autoload :Cube, 'phlex/icons/radix/cube'
109
+ autoload :CursorArrow, 'phlex/icons/radix/cursor_arrow'
110
+ autoload :CursorText, 'phlex/icons/radix/cursor_text'
111
+ autoload :Dash, 'phlex/icons/radix/dash'
112
+ autoload :Dashboard, 'phlex/icons/radix/dashboard'
113
+ autoload :Desktop, 'phlex/icons/radix/desktop'
114
+ autoload :Dimensions, 'phlex/icons/radix/dimensions'
115
+ autoload :Disc, 'phlex/icons/radix/disc'
116
+ autoload :DiscordLogo, 'phlex/icons/radix/discord_logo'
117
+ autoload :DividerHorizontal, 'phlex/icons/radix/divider_horizontal'
118
+ autoload :DividerVertical, 'phlex/icons/radix/divider_vertical'
119
+ autoload :Dot, 'phlex/icons/radix/dot'
120
+ autoload :DotFilled, 'phlex/icons/radix/dot_filled'
121
+ autoload :DotsHorizontal, 'phlex/icons/radix/dots_horizontal'
122
+ autoload :DotsVertical, 'phlex/icons/radix/dots_vertical'
123
+ autoload :DoubleArrowDown, 'phlex/icons/radix/double_arrow_down'
124
+ autoload :DoubleArrowLeft, 'phlex/icons/radix/double_arrow_left'
125
+ autoload :DoubleArrowRight, 'phlex/icons/radix/double_arrow_right'
126
+ autoload :DoubleArrowUp, 'phlex/icons/radix/double_arrow_up'
127
+ autoload :Download, 'phlex/icons/radix/download'
128
+ autoload :DragHandleDots1, 'phlex/icons/radix/drag_handle_dots_1'
129
+ autoload :DragHandleDots2, 'phlex/icons/radix/drag_handle_dots_2'
130
+ autoload :DragHandleHorizontal, 'phlex/icons/radix/drag_handle_horizontal'
131
+ autoload :DragHandleVertical, 'phlex/icons/radix/drag_handle_vertical'
132
+ autoload :DrawingPin, 'phlex/icons/radix/drawing_pin'
133
+ autoload :DrawingPinFilled, 'phlex/icons/radix/drawing_pin_filled'
134
+ autoload :DropdownMenu, 'phlex/icons/radix/dropdown_menu'
135
+ autoload :Enter, 'phlex/icons/radix/enter'
136
+ autoload :EnterFullScreen, 'phlex/icons/radix/enter_full_screen'
137
+ autoload :EnvelopeClosed, 'phlex/icons/radix/envelope_closed'
138
+ autoload :EnvelopeOpen, 'phlex/icons/radix/envelope_open'
139
+ autoload :Eraser, 'phlex/icons/radix/eraser'
140
+ autoload :ExclamationTriangle, 'phlex/icons/radix/exclamation_triangle'
141
+ autoload :Exit, 'phlex/icons/radix/exit'
142
+ autoload :ExitFullScreen, 'phlex/icons/radix/exit_full_screen'
143
+ autoload :ExternalLink, 'phlex/icons/radix/external_link'
144
+ autoload :EyeClosed, 'phlex/icons/radix/eye_closed'
145
+ autoload :EyeNone, 'phlex/icons/radix/eye_none'
146
+ autoload :EyeOpen, 'phlex/icons/radix/eye_open'
147
+ autoload :Face, 'phlex/icons/radix/face'
148
+ autoload :FigmaLogo, 'phlex/icons/radix/figma_logo'
149
+ autoload :File, 'phlex/icons/radix/file'
150
+ autoload :FileMinus, 'phlex/icons/radix/file_minus'
151
+ autoload :FilePlus, 'phlex/icons/radix/file_plus'
152
+ autoload :FileText, 'phlex/icons/radix/file_text'
153
+ autoload :FontBold, 'phlex/icons/radix/font_bold'
154
+ autoload :FontFamily, 'phlex/icons/radix/font_family'
155
+ autoload :FontItalic, 'phlex/icons/radix/font_italic'
156
+ autoload :FontRoman, 'phlex/icons/radix/font_roman'
157
+ autoload :FontSize, 'phlex/icons/radix/font_size'
158
+ autoload :FontStyle, 'phlex/icons/radix/font_style'
159
+ autoload :Frame, 'phlex/icons/radix/frame'
160
+ autoload :FramerLogo, 'phlex/icons/radix/framer_logo'
161
+ autoload :Gear, 'phlex/icons/radix/gear'
162
+ autoload :GithubLogo, 'phlex/icons/radix/github_logo'
163
+ autoload :Globe, 'phlex/icons/radix/globe'
164
+ autoload :Grid, 'phlex/icons/radix/grid'
165
+ autoload :Group, 'phlex/icons/radix/group'
166
+ autoload :Half1, 'phlex/icons/radix/half_1'
167
+ autoload :Half2, 'phlex/icons/radix/half_2'
168
+ autoload :HamburgerMenu, 'phlex/icons/radix/hamburger_menu'
169
+ autoload :Hand, 'phlex/icons/radix/hand'
170
+ autoload :Heading, 'phlex/icons/radix/heading'
171
+ autoload :Heart, 'phlex/icons/radix/heart'
172
+ autoload :HeartFilled, 'phlex/icons/radix/heart_filled'
173
+ autoload :Height, 'phlex/icons/radix/height'
174
+ autoload :HobbyKnife, 'phlex/icons/radix/hobby_knife'
175
+ autoload :Home, 'phlex/icons/radix/home'
176
+ autoload :IconjarLogo, 'phlex/icons/radix/iconjar_logo'
177
+ autoload :IdCard, 'phlex/icons/radix/id_card'
178
+ autoload :Image, 'phlex/icons/radix/image'
179
+ autoload :InfoCircled, 'phlex/icons/radix/info_circled'
180
+ autoload :Input, 'phlex/icons/radix/input'
181
+ autoload :InstagramLogo, 'phlex/icons/radix/instagram_logo'
182
+ autoload :Keyboard, 'phlex/icons/radix/keyboard'
183
+ autoload :LapTimer, 'phlex/icons/radix/lap_timer'
184
+ autoload :Laptop, 'phlex/icons/radix/laptop'
185
+ autoload :Layers, 'phlex/icons/radix/layers'
186
+ autoload :Layout, 'phlex/icons/radix/layout'
187
+ autoload :LetterCaseCapitalize, 'phlex/icons/radix/letter_case_capitalize'
188
+ autoload :LetterCaseLowercase, 'phlex/icons/radix/letter_case_lowercase'
189
+ autoload :LetterCaseToggle, 'phlex/icons/radix/letter_case_toggle'
190
+ autoload :LetterCaseUppercase, 'phlex/icons/radix/letter_case_uppercase'
191
+ autoload :LetterSpacing, 'phlex/icons/radix/letter_spacing'
192
+ autoload :LightningBolt, 'phlex/icons/radix/lightning_bolt'
193
+ autoload :LineHeight, 'phlex/icons/radix/line_height'
194
+ autoload :Link1, 'phlex/icons/radix/link_1'
195
+ autoload :Link2, 'phlex/icons/radix/link_2'
196
+ autoload :LinkBreak1, 'phlex/icons/radix/link_break_1'
197
+ autoload :LinkBreak2, 'phlex/icons/radix/link_break_2'
198
+ autoload :LinkNone1, 'phlex/icons/radix/link_none_1'
199
+ autoload :LinkNone2, 'phlex/icons/radix/link_none_2'
200
+ autoload :LinkedinLogo, 'phlex/icons/radix/linkedin_logo'
201
+ autoload :ListBullet, 'phlex/icons/radix/list_bullet'
202
+ autoload :LockClosed, 'phlex/icons/radix/lock_closed'
203
+ autoload :LockOpen1, 'phlex/icons/radix/lock_open_1'
204
+ autoload :LockOpen2, 'phlex/icons/radix/lock_open_2'
205
+ autoload :Loop, 'phlex/icons/radix/loop'
206
+ autoload :MagicWand, 'phlex/icons/radix/magic_wand'
207
+ autoload :MagnifyingGlass, 'phlex/icons/radix/magnifying_glass'
208
+ autoload :Margin, 'phlex/icons/radix/margin'
209
+ autoload :MaskOff, 'phlex/icons/radix/mask_off'
210
+ autoload :MaskOn, 'phlex/icons/radix/mask_on'
211
+ autoload :Minus, 'phlex/icons/radix/minus'
212
+ autoload :MinusCircled, 'phlex/icons/radix/minus_circled'
213
+ autoload :Mix, 'phlex/icons/radix/mix'
214
+ autoload :MixerHorizontal, 'phlex/icons/radix/mixer_horizontal'
215
+ autoload :MixerVertical, 'phlex/icons/radix/mixer_vertical'
216
+ autoload :Mobile, 'phlex/icons/radix/mobile'
217
+ autoload :ModulzLogo, 'phlex/icons/radix/modulz_logo'
218
+ autoload :Moon, 'phlex/icons/radix/moon'
219
+ autoload :Move, 'phlex/icons/radix/move'
220
+ autoload :NotionLogo, 'phlex/icons/radix/notion_logo'
221
+ autoload :Opacity, 'phlex/icons/radix/opacity'
222
+ autoload :OpenInNewWindow, 'phlex/icons/radix/open_in_new_window'
223
+ autoload :Overline, 'phlex/icons/radix/overline'
224
+ autoload :Padding, 'phlex/icons/radix/padding'
225
+ autoload :PaperPlane, 'phlex/icons/radix/paper_plane'
226
+ autoload :Pause, 'phlex/icons/radix/pause'
227
+ autoload :Pencil1, 'phlex/icons/radix/pencil_1'
228
+ autoload :Pencil2, 'phlex/icons/radix/pencil_2'
229
+ autoload :Person, 'phlex/icons/radix/person'
230
+ autoload :PieChart, 'phlex/icons/radix/pie_chart'
231
+ autoload :Pilcrow, 'phlex/icons/radix/pilcrow'
232
+ autoload :PinBottom, 'phlex/icons/radix/pin_bottom'
233
+ autoload :PinLeft, 'phlex/icons/radix/pin_left'
234
+ autoload :PinRight, 'phlex/icons/radix/pin_right'
235
+ autoload :PinTop, 'phlex/icons/radix/pin_top'
236
+ autoload :Play, 'phlex/icons/radix/play'
237
+ autoload :Plus, 'phlex/icons/radix/plus'
238
+ autoload :PlusCircled, 'phlex/icons/radix/plus_circled'
239
+ autoload :QuestionMark, 'phlex/icons/radix/question_mark'
240
+ autoload :QuestionMarkCircled, 'phlex/icons/radix/question_mark_circled'
241
+ autoload :Quote, 'phlex/icons/radix/quote'
242
+ autoload :Radiobutton, 'phlex/icons/radix/radiobutton'
243
+ autoload :Reader, 'phlex/icons/radix/reader'
244
+ autoload :Reload, 'phlex/icons/radix/reload'
245
+ autoload :Reset, 'phlex/icons/radix/reset'
246
+ autoload :Resume, 'phlex/icons/radix/resume'
247
+ autoload :Rocket, 'phlex/icons/radix/rocket'
248
+ autoload :RotateCounterClockwise, 'phlex/icons/radix/rotate_counter_clockwise'
249
+ autoload :RowSpacing, 'phlex/icons/radix/row_spacing'
250
+ autoload :Rows, 'phlex/icons/radix/rows'
251
+ autoload :RulerHorizontal, 'phlex/icons/radix/ruler_horizontal'
252
+ autoload :RulerSquare, 'phlex/icons/radix/ruler_square'
253
+ autoload :Scissors, 'phlex/icons/radix/scissors'
254
+ autoload :Section, 'phlex/icons/radix/section'
255
+ autoload :SewingPin, 'phlex/icons/radix/sewing_pin'
256
+ autoload :SewingPinFilled, 'phlex/icons/radix/sewing_pin_filled'
257
+ autoload :Shadow, 'phlex/icons/radix/shadow'
258
+ autoload :ShadowInner, 'phlex/icons/radix/shadow_inner'
259
+ autoload :ShadowNone, 'phlex/icons/radix/shadow_none'
260
+ autoload :ShadowOuter, 'phlex/icons/radix/shadow_outer'
261
+ autoload :Share1, 'phlex/icons/radix/share_1'
262
+ autoload :Share2, 'phlex/icons/radix/share_2'
263
+ autoload :Shuffle, 'phlex/icons/radix/shuffle'
264
+ autoload :Size, 'phlex/icons/radix/size'
265
+ autoload :SketchLogo, 'phlex/icons/radix/sketch_logo'
266
+ autoload :Slash, 'phlex/icons/radix/slash'
267
+ autoload :Slider, 'phlex/icons/radix/slider'
268
+ autoload :SpaceBetweenHorizontally, 'phlex/icons/radix/space_between_horizontally'
269
+ autoload :SpaceBetweenVertically, 'phlex/icons/radix/space_between_vertically'
270
+ autoload :SpaceEvenlyHorizontally, 'phlex/icons/radix/space_evenly_horizontally'
271
+ autoload :SpaceEvenlyVertically, 'phlex/icons/radix/space_evenly_vertically'
272
+ autoload :SpeakerLoud, 'phlex/icons/radix/speaker_loud'
273
+ autoload :SpeakerModerate, 'phlex/icons/radix/speaker_moderate'
274
+ autoload :SpeakerOff, 'phlex/icons/radix/speaker_off'
275
+ autoload :SpeakerQuiet, 'phlex/icons/radix/speaker_quiet'
276
+ autoload :Square, 'phlex/icons/radix/square'
277
+ autoload :Stack, 'phlex/icons/radix/stack'
278
+ autoload :Star, 'phlex/icons/radix/star'
279
+ autoload :StarFilled, 'phlex/icons/radix/star_filled'
280
+ autoload :StitchesLogo, 'phlex/icons/radix/stitches_logo'
281
+ autoload :Stop, 'phlex/icons/radix/stop'
282
+ autoload :Stopwatch, 'phlex/icons/radix/stopwatch'
283
+ autoload :StretchHorizontally, 'phlex/icons/radix/stretch_horizontally'
284
+ autoload :StretchVertically, 'phlex/icons/radix/stretch_vertically'
285
+ autoload :Strikethrough, 'phlex/icons/radix/strikethrough'
286
+ autoload :Sun, 'phlex/icons/radix/sun'
287
+ autoload :Switch, 'phlex/icons/radix/switch'
288
+ autoload :Symbol, 'phlex/icons/radix/symbol'
289
+ autoload :Table, 'phlex/icons/radix/table'
290
+ autoload :Target, 'phlex/icons/radix/target'
291
+ autoload :Text, 'phlex/icons/radix/text'
292
+ autoload :TextAlignBottom, 'phlex/icons/radix/text_align_bottom'
293
+ autoload :TextAlignCenter, 'phlex/icons/radix/text_align_center'
294
+ autoload :TextAlignJustify, 'phlex/icons/radix/text_align_justify'
295
+ autoload :TextAlignLeft, 'phlex/icons/radix/text_align_left'
296
+ autoload :TextAlignMiddle, 'phlex/icons/radix/text_align_middle'
297
+ autoload :TextAlignRight, 'phlex/icons/radix/text_align_right'
298
+ autoload :TextAlignTop, 'phlex/icons/radix/text_align_top'
299
+ autoload :TextNone, 'phlex/icons/radix/text_none'
300
+ autoload :ThickArrowDown, 'phlex/icons/radix/thick_arrow_down'
301
+ autoload :ThickArrowLeft, 'phlex/icons/radix/thick_arrow_left'
302
+ autoload :ThickArrowRight, 'phlex/icons/radix/thick_arrow_right'
303
+ autoload :ThickArrowUp, 'phlex/icons/radix/thick_arrow_up'
304
+ autoload :Timer, 'phlex/icons/radix/timer'
305
+ autoload :Tokens, 'phlex/icons/radix/tokens'
306
+ autoload :TrackNext, 'phlex/icons/radix/track_next'
307
+ autoload :TrackPrevious, 'phlex/icons/radix/track_previous'
308
+ autoload :Transform, 'phlex/icons/radix/transform'
309
+ autoload :TransparencyGrid, 'phlex/icons/radix/transparency_grid'
310
+ autoload :Trash, 'phlex/icons/radix/trash'
311
+ autoload :TriangleDown, 'phlex/icons/radix/triangle_down'
312
+ autoload :TriangleLeft, 'phlex/icons/radix/triangle_left'
313
+ autoload :TriangleRight, 'phlex/icons/radix/triangle_right'
314
+ autoload :TriangleUp, 'phlex/icons/radix/triangle_up'
315
+ autoload :TwitterLogo, 'phlex/icons/radix/twitter_logo'
316
+ autoload :Underline, 'phlex/icons/radix/underline'
317
+ autoload :Update, 'phlex/icons/radix/update'
318
+ autoload :Upload, 'phlex/icons/radix/upload'
319
+ autoload :Value, 'phlex/icons/radix/value'
320
+ autoload :ValueNone, 'phlex/icons/radix/value_none'
321
+ autoload :VercelLogo, 'phlex/icons/radix/vercel_logo'
322
+ autoload :Video, 'phlex/icons/radix/video'
323
+ autoload :ViewGrid, 'phlex/icons/radix/view_grid'
324
+ autoload :ViewHorizontal, 'phlex/icons/radix/view_horizontal'
325
+ autoload :ViewNone, 'phlex/icons/radix/view_none'
326
+ autoload :ViewVertical, 'phlex/icons/radix/view_vertical'
327
+ autoload :Width, 'phlex/icons/radix/width'
328
+ autoload :ZoomIn, 'phlex/icons/radix/zoom_in'
329
+ autoload :ZoomOut, 'phlex/icons/radix/zoom_out'
330
+ # auto-generated autoload: end
13
331
  end
14
332
  end
15
333
  end
@@ -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/radix'
7
+ require_relative 'phlex/icons/helper'
8
8
  require_relative 'phlex/icons/version'
9
9
 
10
+ require_relative 'phlex/icons/radix'
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-radix
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/radix.rb
54
56
  - lib/phlex/icons/radix/accessibility.rb
55
57
  - lib/phlex/icons/radix/activity_log.rb