phlex-icons-lucide 2.18.0 → 2.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +5 -1
- data/README.md +44 -0
- data/generators/flag.rb +1 -1
- data/generators/hero.rb +1 -1
- data/generators/tabler.rb +1 -1
- data/lib/phlex-icons/configuration.rb +24 -1
- data/lib/phlex-icons/icon.rb +31 -0
- data/lib/phlex-icons/lucide/air_vent.rb +2 -2
- data/lib/phlex-icons/lucide/baby.rb +3 -3
- data/lib/phlex-icons/lucide/bell_electric.rb +4 -4
- data/lib/phlex-icons/lucide/book_key.rb +2 -2
- data/lib/phlex-icons/lucide/bow_arrow.rb +33 -0
- data/lib/phlex-icons/lucide/brain_cog.rb +19 -17
- data/lib/phlex-icons/lucide/brick_wall_fire.rb +33 -0
- data/lib/phlex-icons/lucide/brush.rb +3 -5
- data/lib/phlex-icons/lucide/brush_cleaning.rb +30 -0
- data/lib/phlex-icons/lucide/bubbles.rb +25 -0
- data/lib/phlex-icons/lucide/calendar_cog.rb +9 -9
- data/lib/phlex-icons/lucide/calendar_plus.rb +4 -4
- data/lib/phlex-icons/lucide/clipboard_paste.rb +5 -8
- data/lib/phlex-icons/lucide/clock_plus.rb +25 -0
- data/lib/phlex-icons/lucide/cloud_cog.rb +12 -10
- data/lib/phlex-icons/lucide/columns_3_cog.rb +35 -0
- data/lib/phlex-icons/lucide/cpu.rb +14 -10
- data/lib/phlex-icons/lucide/decimals_arrow_left.rb +25 -0
- data/lib/phlex-icons/lucide/decimals_arrow_right.rb +26 -0
- data/lib/phlex-icons/lucide/door_closed.rb +1 -1
- data/lib/phlex-icons/lucide/door_closed_locked.rb +26 -0
- data/lib/phlex-icons/lucide/door_open.rb +5 -5
- data/lib/phlex-icons/lucide/dumbbell.rb +5 -5
- data/lib/phlex-icons/lucide/expand.rb +4 -4
- data/lib/phlex-icons/lucide/file_badge_2.rb +7 -3
- data/lib/phlex-icons/lucide/file_cog.rb +8 -8
- data/lib/phlex-icons/lucide/folder_cog.rb +10 -10
- data/lib/phlex-icons/lucide/guitar.rb +1 -2
- data/lib/phlex-icons/lucide/hamburger.rb +28 -0
- data/lib/phlex-icons/lucide/heart_minus.rb +28 -0
- data/lib/phlex-icons/lucide/heart_plus.rb +29 -0
- data/lib/phlex-icons/lucide/lamp.rb +7 -2
- data/lib/phlex-icons/lucide/lamp_ceiling.rb +5 -2
- data/lib/phlex-icons/lucide/lamp_desk.rb +11 -4
- data/lib/phlex-icons/lucide/lamp_floor.rb +5 -2
- data/lib/phlex-icons/lucide/lamp_wall_down.rb +8 -3
- data/lib/phlex-icons/lucide/lamp_wall_up.rb +8 -3
- data/lib/phlex-icons/lucide/laptop.rb +2 -1
- data/lib/phlex-icons/lucide/layers_2.rb +2 -2
- data/lib/phlex-icons/lucide/locate_off.rb +7 -13
- data/lib/phlex-icons/lucide/location_edit.rb +29 -0
- data/lib/phlex-icons/lucide/mail.rb +2 -2
- data/lib/phlex-icons/lucide/menu.rb +3 -3
- data/lib/phlex-icons/lucide/monitor_cog.rb +8 -8
- data/lib/phlex-icons/lucide/non_binary.rb +2 -2
- data/lib/phlex-icons/lucide/orbit.rb +2 -2
- data/lib/phlex-icons/lucide/package_2.rb +7 -2
- data/lib/phlex-icons/lucide/palette.rb +5 -5
- data/lib/phlex-icons/lucide/panda.rb +32 -0
- data/lib/phlex-icons/lucide/phone.rb +1 -1
- data/lib/phlex-icons/lucide/phone_call.rb +3 -3
- data/lib/phlex-icons/lucide/phone_forwarded.rb +3 -3
- data/lib/phlex-icons/lucide/phone_incoming.rb +3 -3
- data/lib/phlex-icons/lucide/phone_missed.rb +3 -3
- data/lib/phlex-icons/lucide/phone_off.rb +6 -2
- data/lib/phlex-icons/lucide/phone_outgoing.rb +3 -3
- data/lib/phlex-icons/lucide/piggy_bank.rb +3 -3
- data/lib/phlex-icons/lucide/pipette.rb +8 -3
- data/lib/phlex-icons/lucide/rectangle_goggles.rb +27 -0
- data/lib/phlex-icons/lucide/rotate_ccw_key.rb +26 -0
- data/lib/phlex-icons/lucide/ruler_dimension_line.rb +28 -0
- data/lib/phlex-icons/lucide/search.rb +1 -1
- data/lib/phlex-icons/lucide/server_cog.rb +9 -10
- data/lib/phlex-icons/lucide/shredder.rb +28 -0
- data/lib/phlex-icons/lucide/soap_dispenser_droplet.rb +33 -0
- data/lib/phlex-icons/lucide/squares_exclude.rb +29 -0
- data/lib/phlex-icons/lucide/squares_intersect.rb +36 -0
- data/lib/phlex-icons/lucide/squares_subtract.rb +30 -0
- data/lib/phlex-icons/lucide/squares_unite.rb +27 -0
- data/lib/phlex-icons/lucide/text_cursor_input.rb +4 -4
- data/lib/phlex-icons/lucide/touchpad_off.rb +4 -4
- data/lib/phlex-icons/lucide/traffic_cone.rb +4 -7
- data/lib/phlex-icons/lucide/truck_electric.rb +33 -0
- data/lib/phlex-icons/lucide/user_cog.rb +9 -9
- data/lib/phlex-icons/lucide/user_lock.rb +25 -0
- data/lib/phlex-icons/lucide/user_round_cog.rb +8 -8
- data/lib/phlex-icons/lucide/users.rb +2 -2
- data/lib/phlex-icons/lucide/wifi_pen.rb +30 -0
- data/lib/phlex-icons/lucide.rb +27 -1
- data/lib/phlex-icons/name_parser.rb +117 -0
- data/lib/phlex-icons/railtie.rb +17 -0
- data/lib/phlex-icons/version.rb +1 -1
- data/lib/phlex-icons-lucide.rb +3 -0
- metadata +31 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 745a3cf238ca7b0e9f22877cf586a111b21856a3e362edbe197dc6a2ad7190b5
|
4
|
+
data.tar.gz: dcd6e30eff28cb8d76bba88a7fca537b4b8d4a58478c74aa36491b1843433bca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dd16db97aab859b4e0cc3ebd92332a3eb38b065fb76acdce25da89990cc3d6fac2a7e1f80d02fc8c0a26e3444896992c9f277d5114b5d36e5b9ad43a97970500
|
7
|
+
data.tar.gz: 99ee2bece76cb47f50c4109eaf78ad7c60407d0a2bba718c0e36ddfbbaf5fa01f162dbed5770017e6f0925423b488b6f20ca2059a304d685cfa0ea1f6cbaf11c
|
data/.rubocop.yml
CHANGED
data/README.md
CHANGED
@@ -62,11 +62,15 @@ The gem provides global configuration options, and per icons pack configuration
|
|
62
62
|
```ruby
|
63
63
|
PhlexIcons.configure do |config|
|
64
64
|
config.default_classes = 'size-6'
|
65
|
+
config.helper_method_name = :phlex_icon # Default: :phlex_icon
|
66
|
+
config.default_pack = :hero # Default: nil. Accepts :symbol, "string", or Class (e.g., PhlexIcons::Hero)
|
65
67
|
end
|
66
68
|
|
67
69
|
# OR
|
68
70
|
|
69
71
|
PhlexIcons.configuration.default_classes = 'size-6'
|
72
|
+
PhlexIcons.configuration.helper_method_name = :phlex_icon
|
73
|
+
PhlexIcons.configuration.default_pack = :hero
|
70
74
|
```
|
71
75
|
|
72
76
|
### Bootstrap Icons configuration
|
@@ -153,6 +157,9 @@ class PhlexIcons < Phlex::HTML
|
|
153
157
|
Radix::Home(class: 'size-4')
|
154
158
|
Remix::HomeLine(class: 'size-4')
|
155
159
|
Tabler::Home(variant: :filled, class: 'size-4')
|
160
|
+
|
161
|
+
# or with a string
|
162
|
+
Icon('bootstrap/house', class: 'size-4')
|
156
163
|
end
|
157
164
|
end
|
158
165
|
end
|
@@ -174,11 +181,48 @@ class PhlexIcons < Phlex::HTML
|
|
174
181
|
render PhlexIcons::Radix::Home.new(class: 'size-4')
|
175
182
|
render PhlexIcons::Remix::HomeLine.new(class: 'size-4')
|
176
183
|
render PhlexIcons::Tabler::Home.new(variant: :filled, class: 'size-4')
|
184
|
+
|
185
|
+
# or with a string
|
186
|
+
render PhlexIcons::Icon('bootstrap/house', class: 'size-4')
|
177
187
|
end
|
178
188
|
end
|
179
189
|
end
|
180
190
|
```
|
181
191
|
|
192
|
+
### Rails View Helper
|
193
|
+
|
194
|
+
`phlex-icons` provides a convenient helper method to render icons directly in your ERB or Phlex views.
|
195
|
+
|
196
|
+
By default, the helper method is named `phlex_icon`, but is configurable.
|
197
|
+
|
198
|
+
```erb
|
199
|
+
<%# Render a Bootstrap house icon with default size %>
|
200
|
+
<%= phlex_icon 'bootstrap/house' %>
|
201
|
+
|
202
|
+
<%# Render a Heroicons solid home icon with a specific class %>
|
203
|
+
<%= phlex_icon 'hero/home', variant: :solid, class: 'w-5 h-5 text-blue-500' %>
|
204
|
+
|
205
|
+
<%# Render a Tabler home icon, filled variant %>
|
206
|
+
<%= phlex_icon 'tabler/home:filled' %>
|
207
|
+
|
208
|
+
<%# If default_pack = :hero, render a Heroicons home icon %>
|
209
|
+
<%= phlex_icon 'home', class: 'w-6 h-6' %>
|
210
|
+
|
211
|
+
<%# Render a Flag icon (rectangle variant is default for flags if not configured otherwise) %>
|
212
|
+
<%= phlex_icon 'flag/sa' %>
|
213
|
+
|
214
|
+
<%# Render a custom icon %>
|
215
|
+
<%= phlex_icon 'custom/my_awesome_icon:variant_name' %>
|
216
|
+
```
|
217
|
+
|
218
|
+
The first argument is the icon identifier. Such as: `'pack/icon_name:variant'`.
|
219
|
+
|
220
|
+
* If `default_pack` is configured, you can omit the pack name (e.g., `'icon_name:variant'` instead of `'pack/icon_name:variant'`).
|
221
|
+
* The `:variant` part is optional.
|
222
|
+
* Examples: `'hero/house:solid'`, `'house:solid'`, `'house'`
|
223
|
+
|
224
|
+
Subsequent arguments are passed as options to the icon component, such as `variant`, `class`, etc.
|
225
|
+
|
182
226
|
### Specific icon pack(s)
|
183
227
|
|
184
228
|
Let's say you want to use only Heroicons and Flag Icons, you can use the following gems:
|
data/generators/flag.rb
CHANGED
@@ -36,7 +36,7 @@ VARIANT_TEMPLATE = ERB.new <<~VARIANT_TEMPLATE
|
|
36
36
|
module Flag
|
37
37
|
class <%= icon_name %><%= variant.to_s.capitalize %> < Base
|
38
38
|
def view_template
|
39
|
-
render <%= icon_name %>.new(variant: :<%= variant
|
39
|
+
render <%= icon_name %>.new(variant: :<%= variant %>, **attrs)
|
40
40
|
end
|
41
41
|
end
|
42
42
|
end
|
data/generators/hero.rb
CHANGED
@@ -36,7 +36,7 @@ VARIANT_TEMPLATE = ERB.new <<~VARIANT_TEMPLATE
|
|
36
36
|
module Hero
|
37
37
|
class <%= icon_name %><%= variant.to_s.capitalize %> < Base
|
38
38
|
def view_template
|
39
|
-
render <%= icon_name %>.new(variant: :<%= variant
|
39
|
+
render <%= icon_name %>.new(variant: :<%= variant %>, **attrs)
|
40
40
|
end
|
41
41
|
end
|
42
42
|
end
|
data/generators/tabler.rb
CHANGED
@@ -36,7 +36,7 @@ VARIANT_TEMPLATE = ERB.new <<~VARIANT_TEMPLATE
|
|
36
36
|
module Tabler
|
37
37
|
class <%= icon_name %><%= variant.to_s.capitalize %> < Base
|
38
38
|
def view_template
|
39
|
-
render <%= icon_name %>.new(variant: :<%= variant
|
39
|
+
render <%= icon_name %>.new(variant: :<%= variant %>, **attrs)
|
40
40
|
end
|
41
41
|
end
|
42
42
|
end
|
@@ -2,10 +2,33 @@
|
|
2
2
|
|
3
3
|
module PhlexIcons
|
4
4
|
class Configuration
|
5
|
-
attr_accessor :default_variant, :default_classes
|
5
|
+
attr_accessor :default_variant, :default_classes, :helper_method_name
|
6
|
+
attr_reader :default_pack
|
6
7
|
|
7
8
|
def initialize(default_classes: 'size-6')
|
8
9
|
@default_classes = default_classes
|
10
|
+
@helper_method_name = :phlex_icon
|
11
|
+
@default_pack = nil
|
12
|
+
end
|
13
|
+
|
14
|
+
# Custom setter for default_pack
|
15
|
+
# Accepts Class (PhlexIcons::Hero), String ('hero'), or Symbol (:hero)
|
16
|
+
#
|
17
|
+
# @param value [Class, String, Symbol, nil] The value to set the default pack to.
|
18
|
+
# @raise [ArgumentError] If the value is not a Class, String, Symbol, or nil.
|
19
|
+
def default_pack=(value)
|
20
|
+
@default_pack = case value
|
21
|
+
when Class
|
22
|
+
# Extract 'Hero' from PhlexIcons::Hero, lowercase, symbolize
|
23
|
+
value.name.split('::').last&.downcase&.to_sym
|
24
|
+
when String, Symbol
|
25
|
+
value.to_sym
|
26
|
+
when nil
|
27
|
+
nil
|
28
|
+
else
|
29
|
+
raise ArgumentError,
|
30
|
+
"Invalid type for default_pack: #{value.class}. Expected Class, String, Symbol, or nil."
|
31
|
+
end
|
9
32
|
end
|
10
33
|
end
|
11
34
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'name_parser'
|
4
|
+
|
5
|
+
module PhlexIcons
|
6
|
+
extend Phlex::Kit
|
7
|
+
|
8
|
+
class Icon < Phlex::SVG
|
9
|
+
# Factory method to create an icon component instance.
|
10
|
+
# Parses the name string, finds the corresponding class, and initializes it with options.
|
11
|
+
# @param name [String] Icon identifier (e.g., "hero/house:solid", "lucide/arrow-right").
|
12
|
+
# @param options [Hash] HTML attributes and options for the icon component.
|
13
|
+
# @return [Phlex::SVG] An instance of the resolved icon component.
|
14
|
+
# @raise [ArgumentError] If the name format is invalid or default pack is missing.
|
15
|
+
# @raise [NameError] If the corresponding icon class cannot be found.
|
16
|
+
def initialize(name, **options)
|
17
|
+
@name = name
|
18
|
+
@options = options&.transform_keys(&:to_sym) || {}
|
19
|
+
super()
|
20
|
+
end
|
21
|
+
|
22
|
+
def view_template
|
23
|
+
parser = PhlexIcons::NameParser.new(@name)
|
24
|
+
|
25
|
+
# Prioritize variant from the name string over options hash
|
26
|
+
@options[:variant] = parser.variant_name if parser.variant_name
|
27
|
+
|
28
|
+
render parser.klass.new(**@options)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -14,13 +14,13 @@ module PhlexIcons
|
|
14
14
|
stroke_linecap: 'round',
|
15
15
|
stroke_linejoin: 'round'
|
16
16
|
) do |s|
|
17
|
+
s.path(d: 'M18 17.5a2.5 2.5 0 1 1-4 2.03V12')
|
17
18
|
s.path(
|
18
19
|
d:
|
19
20
|
'M6 12H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2'
|
20
21
|
)
|
21
22
|
s.path(d: 'M6 8h12')
|
22
|
-
s.path(d: '
|
23
|
-
s.path(d: 'M6.6 15.6A2 2 0 1 0 10 17v-5')
|
23
|
+
s.path(d: 'M6.6 15.572A2 2 0 1 0 10 17v-5')
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
@@ -15,13 +15,13 @@ module PhlexIcons
|
|
15
15
|
stroke_linecap: 'round',
|
16
16
|
stroke_linejoin: 'round'
|
17
17
|
) do |s|
|
18
|
-
s.path(d: 'M9 12h.01')
|
19
|
-
s.path(d: 'M15 12h.01')
|
20
18
|
s.path(d: 'M10 16c.5.3 1.2.5 2 .5s1.5-.2 2-.5')
|
19
|
+
s.path(d: 'M15 12h.01')
|
21
20
|
s.path(
|
22
21
|
d:
|
23
|
-
'M19 6.
|
22
|
+
'M19.38 6.813A9 9 0 0 1 20.8 10.2a2 2 0 0 1 0 3.6 9 9 0 0 1-17.6 0 2 2 0 0 1 0-3.6A9 9 0 0 1 12 3c2 0 3.5 1.1 3.5 2.5s-.9 2.5-2 2.5c-.8 0-1.5-.4-1.5-1'
|
24
23
|
)
|
24
|
+
s.path(d: 'M9 12h.01')
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
@@ -14,12 +14,12 @@ module PhlexIcons
|
|
14
14
|
stroke_linecap: 'round',
|
15
15
|
stroke_linejoin: 'round'
|
16
16
|
) do |s|
|
17
|
-
s.path(d: 'M18.
|
17
|
+
s.path(d: 'M18.518 17.347A7 7 0 0 1 14 19')
|
18
|
+
s.path(d: 'M18.8 4A11 11 0 0 1 20 9')
|
18
19
|
s.path(d: 'M9 9h.01')
|
19
|
-
s.circle(cx: '9', cy: '9', r: '7')
|
20
|
-
s.rect(width: '10', height: '6', x: '4', y: '16', rx: '2')
|
21
|
-
s.path(d: 'M14 19c3 0 4.6-1.6 4.6-1.6')
|
22
20
|
s.circle(cx: '20', cy: '16', r: '2')
|
21
|
+
s.circle(cx: '9', cy: '9', r: '7')
|
22
|
+
s.rect(x: '4', y: '16', width: '10', height: '6', rx: '2')
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|
@@ -16,8 +16,8 @@ module PhlexIcons
|
|
16
16
|
) do |s|
|
17
17
|
s.path(d: 'm19 3 1 1')
|
18
18
|
s.path(d: 'm20 2-4.5 4.5')
|
19
|
-
s.path(d: 'M20
|
20
|
-
s.path(d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5
|
19
|
+
s.path(d: 'M20 7.898V21a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20')
|
20
|
+
s.path(d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2h7.844')
|
21
21
|
s.circle(cx: '14', cy: '8', r: '2')
|
22
22
|
end
|
23
23
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# rubocop:disable Layout/LineLength
|
4
|
+
module PhlexIcons
|
5
|
+
module Lucide
|
6
|
+
class BowArrow < Base
|
7
|
+
def view_template
|
8
|
+
svg(
|
9
|
+
**attrs,
|
10
|
+
xmlns: 'http://www.w3.org/2000/svg',
|
11
|
+
viewbox: '0 0 24 24',
|
12
|
+
fill: 'none',
|
13
|
+
stroke: 'currentColor',
|
14
|
+
stroke_width: '2',
|
15
|
+
stroke_linecap: 'round',
|
16
|
+
stroke_linejoin: 'round'
|
17
|
+
) do |s|
|
18
|
+
s.path(d: 'M17 3h4v4')
|
19
|
+
s.path(
|
20
|
+
d: 'M18.575 11.082a13 13 0 0 1 1.048 9.027 1.17 1.17 0 0 1-1.914.597L14 17'
|
21
|
+
)
|
22
|
+
s.path(d: 'M7 10 3.29 6.29a1.17 1.17 0 0 1 .6-1.91 13 13 0 0 1 9.03 1.05')
|
23
|
+
s.path(
|
24
|
+
d:
|
25
|
+
'M7 14a1.7 1.7 0 0 0-1.207.5l-2.646 2.646A.5.5 0 0 0 3.5 18H5a1 1 0 0 1 1 1v1.5a.5.5 0 0 0 .854.354L9.5 18.207A1.7 1.7 0 0 0 10 17v-2a1 1 0 0 0-1-1z'
|
26
|
+
)
|
27
|
+
s.path(d: 'M9.707 14.293 21 3')
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
# rubocop:enable Layout/LineLength
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# rubocop:disable
|
3
|
+
# rubocop:disable Metrics/AbcSize,Metrics/MethodLength
|
4
4
|
module PhlexIcons
|
5
5
|
module Lucide
|
6
6
|
class BrainCog < Base
|
@@ -15,28 +15,30 @@ module PhlexIcons
|
|
15
15
|
stroke_linecap: 'round',
|
16
16
|
stroke_linejoin: 'round'
|
17
17
|
) do |s|
|
18
|
+
s.path(d: 'm10.852 14.772-.383.923')
|
19
|
+
s.path(d: 'm10.852 9.228-.383-.923')
|
20
|
+
s.path(d: 'm13.148 14.772.382.924')
|
21
|
+
s.path(d: 'm13.531 8.305-.383.923')
|
22
|
+
s.path(d: 'm14.772 10.852.923-.383')
|
23
|
+
s.path(d: 'm14.772 13.148.923.383')
|
18
24
|
s.path(
|
19
25
|
d:
|
20
|
-
'
|
26
|
+
'M17.598 6.5A3 3 0 1 0 12 5a3 3 0 0 0-5.63-1.446 3 3 0 0 0-.368 1.571 4 4 0 0 0-2.525 5.771'
|
21
27
|
)
|
22
|
-
s.path(d: 'M17.
|
23
|
-
s.path(d: '
|
24
|
-
s.path(
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
+
s.path(d: 'M17.998 5.125a4 4 0 0 1 2.525 5.771')
|
29
|
+
s.path(d: 'M19.505 10.294a4 4 0 0 1-1.5 7.706')
|
30
|
+
s.path(
|
31
|
+
d:
|
32
|
+
'M4.032 17.483A4 4 0 0 0 11.464 20c.18-.311.892-.311 1.072 0a4 4 0 0 0 7.432-2.516'
|
33
|
+
)
|
34
|
+
s.path(d: 'M4.5 10.291A4 4 0 0 0 6 18')
|
35
|
+
s.path(d: 'M6.002 5.125a3 3 0 0 0 .4 1.375')
|
36
|
+
s.path(d: 'm9.228 10.852-.923-.383')
|
37
|
+
s.path(d: 'm9.228 13.148-.923.383')
|
28
38
|
s.circle(cx: '12', cy: '12', r: '3')
|
29
|
-
s.path(d: 'm15.7 10.4-.9.4')
|
30
|
-
s.path(d: 'm9.2 13.2-.9.4')
|
31
|
-
s.path(d: 'm13.6 15.7-.4-.9')
|
32
|
-
s.path(d: 'm10.8 9.2-.4-.9')
|
33
|
-
s.path(d: 'm15.7 13.5-.9-.4')
|
34
|
-
s.path(d: 'm9.2 10.9-.9-.4')
|
35
|
-
s.path(d: 'm10.5 15.7.4-.9')
|
36
|
-
s.path(d: 'm13.1 9.2.4-.9')
|
37
39
|
end
|
38
40
|
end
|
39
41
|
end
|
40
42
|
end
|
41
43
|
end
|
42
|
-
# rubocop:enable
|
44
|
+
# rubocop:enable Metrics/AbcSize,Metrics/MethodLength
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# rubocop:disable Layout/LineLength
|
4
|
+
module PhlexIcons
|
5
|
+
module Lucide
|
6
|
+
class BrickWallFire < Base
|
7
|
+
def view_template
|
8
|
+
svg(
|
9
|
+
**attrs,
|
10
|
+
xmlns: 'http://www.w3.org/2000/svg',
|
11
|
+
viewbox: '0 0 24 24',
|
12
|
+
fill: 'none',
|
13
|
+
stroke: 'currentColor',
|
14
|
+
stroke_width: '2',
|
15
|
+
stroke_linecap: 'round',
|
16
|
+
stroke_linejoin: 'round'
|
17
|
+
) do |s|
|
18
|
+
s.path(d: 'M16 3v2.107')
|
19
|
+
s.path(
|
20
|
+
d:
|
21
|
+
'M17 9c1 3 2.5 3.5 3.5 4.5A5 5 0 0 1 22 17a5 5 0 0 1-10 0c0-.3 0-.6.1-.9a2 2 0 1 0 3.3-2C13 11.5 16 9 17 9'
|
22
|
+
)
|
23
|
+
s.path(d: 'M21 8.274V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.938')
|
24
|
+
s.path(d: 'M3 15h5.253')
|
25
|
+
s.path(d: 'M3 9h8.228')
|
26
|
+
s.path(d: 'M8 15v6')
|
27
|
+
s.path(d: 'M8 3v6')
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
# rubocop:enable Layout/LineLength
|
@@ -1,6 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# rubocop:disable Layout/LineLength
|
4
3
|
module PhlexIcons
|
5
4
|
module Lucide
|
6
5
|
class Brush < Base
|
@@ -15,14 +14,13 @@ module PhlexIcons
|
|
15
14
|
stroke_linecap: 'round',
|
16
15
|
stroke_linejoin: 'round'
|
17
16
|
) do |s|
|
18
|
-
s.path(d: '
|
17
|
+
s.path(d: 'm11 10 3 3')
|
19
18
|
s.path(
|
20
|
-
d:
|
21
|
-
'M7.07 14.94c-1.66 0-3 1.35-3 3.02 0 1.33-2.5 1.52-2 2.02 1.08 1.1 2.49 2.02 4 2.02 2.2 0 4-1.8 4-4.04a3.01 3.01 0 0 0-3-3.02z'
|
19
|
+
d: 'M6.5 21A3.5 3.5 0 1 0 3 17.5a2.62 2.62 0 0 1-.708 1.792A1 1 0 0 0 3 21z'
|
22
20
|
)
|
21
|
+
s.path(d: 'M9.969 17.031 21.378 5.624a1 1 0 0 0-3.002-3.002L6.967 14.031')
|
23
22
|
end
|
24
23
|
end
|
25
24
|
end
|
26
25
|
end
|
27
26
|
end
|
28
|
-
# rubocop:enable Layout/LineLength
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# rubocop:disable Layout/LineLength
|
4
|
+
module PhlexIcons
|
5
|
+
module Lucide
|
6
|
+
class BrushCleaning < Base
|
7
|
+
def view_template
|
8
|
+
svg(
|
9
|
+
**attrs,
|
10
|
+
xmlns: 'http://www.w3.org/2000/svg',
|
11
|
+
viewbox: '0 0 24 24',
|
12
|
+
fill: 'none',
|
13
|
+
stroke: 'currentColor',
|
14
|
+
stroke_width: '2',
|
15
|
+
stroke_linecap: 'round',
|
16
|
+
stroke_linejoin: 'round'
|
17
|
+
) do |s|
|
18
|
+
s.path(d: 'm16 22-1-4')
|
19
|
+
s.path(
|
20
|
+
d:
|
21
|
+
'M19 13.99a1 1 0 0 0 1-1V12a2 2 0 0 0-2-2h-3a1 1 0 0 1-1-1V4a2 2 0 0 0-4 0v5a1 1 0 0 1-1 1H6a2 2 0 0 0-2 2v.99a1 1 0 0 0 1 1'
|
22
|
+
)
|
23
|
+
s.path(d: 'M5 14h14l1.973 6.767A1 1 0 0 1 20 22H4a1 1 0 0 1-.973-1.233z')
|
24
|
+
s.path(d: 'm8 22 1-4')
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
# rubocop:enable Layout/LineLength
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PhlexIcons
|
4
|
+
module Lucide
|
5
|
+
class Bubbles < Base
|
6
|
+
def view_template
|
7
|
+
svg(
|
8
|
+
**attrs,
|
9
|
+
xmlns: 'http://www.w3.org/2000/svg',
|
10
|
+
viewbox: '0 0 24 24',
|
11
|
+
fill: 'none',
|
12
|
+
stroke: 'currentColor',
|
13
|
+
stroke_width: '2',
|
14
|
+
stroke_linecap: 'round',
|
15
|
+
stroke_linejoin: 'round'
|
16
|
+
) do |s|
|
17
|
+
s.path(d: 'M7.2 14.8a2 2 0 0 1 2 2')
|
18
|
+
s.circle(cx: '18.5', cy: '8.5', r: '3.5')
|
19
|
+
s.circle(cx: '7.5', cy: '16.5', r: '5.5')
|
20
|
+
s.circle(cx: '7.5', cy: '4.5', r: '2.5')
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -15,16 +15,16 @@ module PhlexIcons
|
|
15
15
|
stroke_linecap: 'round',
|
16
16
|
stroke_linejoin: 'round'
|
17
17
|
) do |s|
|
18
|
-
s.path(d: 'm15.
|
19
|
-
s.path(d: 'm15.
|
18
|
+
s.path(d: 'm15.228 16.852-.923-.383')
|
19
|
+
s.path(d: 'm15.228 19.148-.923.383')
|
20
20
|
s.path(d: 'M16 2v4')
|
21
|
-
s.path(d: 'm16.
|
22
|
-
s.path(d: 'm16.
|
23
|
-
s.path(d: 'm19.
|
24
|
-
s.path(d: 'm19.
|
25
|
-
s.path(d: '
|
26
|
-
s.path(d: '
|
27
|
-
s.path(d: '
|
21
|
+
s.path(d: 'm16.47 14.305.382.923')
|
22
|
+
s.path(d: 'm16.852 20.772-.383.924')
|
23
|
+
s.path(d: 'm19.148 15.228.383-.923')
|
24
|
+
s.path(d: 'm19.53 21.696-.382-.924')
|
25
|
+
s.path(d: 'm20.772 16.852.924-.383')
|
26
|
+
s.path(d: 'm20.772 19.148.924.383')
|
27
|
+
s.path(d: 'M21 11V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6')
|
28
28
|
s.path(d: 'M3 10h18')
|
29
29
|
s.path(d: 'M8 2v4')
|
30
30
|
s.circle(cx: '18', cy: '18', r: '3')
|
@@ -14,12 +14,12 @@ module PhlexIcons
|
|
14
14
|
stroke_linecap: 'round',
|
15
15
|
stroke_linejoin: 'round'
|
16
16
|
) do |s|
|
17
|
-
s.path(d: 'M8 2v4')
|
18
|
-
s.path(d: 'M16 2v4')
|
19
|
-
s.path(d: 'M21 13V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8')
|
20
|
-
s.path(d: 'M3 10h18')
|
21
17
|
s.path(d: 'M16 19h6')
|
18
|
+
s.path(d: 'M16 2v4')
|
22
19
|
s.path(d: 'M19 16v6')
|
20
|
+
s.path(d: 'M21 12.598V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8.5')
|
21
|
+
s.path(d: 'M3 10h18')
|
22
|
+
s.path(d: 'M8 2v4')
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|
@@ -14,14 +14,11 @@ module PhlexIcons
|
|
14
14
|
stroke_linecap: 'round',
|
15
15
|
stroke_linejoin: 'round'
|
16
16
|
) do |s|
|
17
|
-
s.path(
|
18
|
-
|
19
|
-
)
|
20
|
-
s.path(
|
21
|
-
|
22
|
-
'M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2M16 4h2a2 2 0 0 1 2 2v2M11 14h10'
|
23
|
-
)
|
24
|
-
s.path(d: 'm17 10 4 4-4 4')
|
17
|
+
s.path(d: 'M11 14h10')
|
18
|
+
s.path(d: 'M16 4h2a2 2 0 0 1 2 2v1.344')
|
19
|
+
s.path(d: 'm17 18 4-4-4-4')
|
20
|
+
s.path(d: 'M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113')
|
21
|
+
s.rect(x: '8', y: '2', width: '8', height: '4', rx: '1')
|
25
22
|
end
|
26
23
|
end
|
27
24
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PhlexIcons
|
4
|
+
module Lucide
|
5
|
+
class ClockPlus < Base
|
6
|
+
def view_template
|
7
|
+
svg(
|
8
|
+
**attrs,
|
9
|
+
xmlns: 'http://www.w3.org/2000/svg',
|
10
|
+
viewbox: '0 0 24 24',
|
11
|
+
fill: 'none',
|
12
|
+
stroke: 'currentColor',
|
13
|
+
stroke_width: '2',
|
14
|
+
stroke_linecap: 'round',
|
15
|
+
stroke_linejoin: 'round'
|
16
|
+
) do |s|
|
17
|
+
s.path(d: 'M12 6v6l3.644 1.822')
|
18
|
+
s.path(d: 'M16 19h6')
|
19
|
+
s.path(d: 'M19 16v6')
|
20
|
+
s.path(d: 'M21.92 13.267a10 10 0 1 0-8.653 8.653')
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -15,16 +15,18 @@ module PhlexIcons
|
|
15
15
|
stroke_linecap: 'round',
|
16
16
|
stroke_linejoin: 'round'
|
17
17
|
) do |s|
|
18
|
-
s.
|
19
|
-
s.path(d: '
|
20
|
-
s.path(d: '
|
21
|
-
s.path(d: '
|
22
|
-
s.path(d: '
|
23
|
-
s.path(d: '
|
24
|
-
s.path(
|
25
|
-
|
26
|
-
|
27
|
-
|
18
|
+
s.path(d: 'm10.852 19.772-.383.924')
|
19
|
+
s.path(d: 'm13.148 14.228.383-.923')
|
20
|
+
s.path(d: 'M13.148 19.772a3 3 0 1 0-2.296-5.544l-.383-.923')
|
21
|
+
s.path(d: 'm13.53 20.696-.382-.924a3 3 0 1 1-2.296-5.544')
|
22
|
+
s.path(d: 'm14.772 15.852.923-.383')
|
23
|
+
s.path(d: 'm14.772 18.148.923.383')
|
24
|
+
s.path(
|
25
|
+
d:
|
26
|
+
'M4.2 15.1a7 7 0 1 1 9.93-9.858A7 7 0 0 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.2'
|
27
|
+
)
|
28
|
+
s.path(d: 'm9.228 15.852-.923-.383')
|
29
|
+
s.path(d: 'm9.228 18.148-.923.383')
|
28
30
|
end
|
29
31
|
end
|
30
32
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# rubocop:disable Metrics/MethodLength
|
4
|
+
module PhlexIcons
|
5
|
+
module Lucide
|
6
|
+
class Columns3Cog < Base
|
7
|
+
def view_template
|
8
|
+
svg(
|
9
|
+
**attrs,
|
10
|
+
xmlns: 'http://www.w3.org/2000/svg',
|
11
|
+
viewbox: '0 0 24 24',
|
12
|
+
fill: 'none',
|
13
|
+
stroke: 'currentColor',
|
14
|
+
stroke_width: '2',
|
15
|
+
stroke_linecap: 'round',
|
16
|
+
stroke_linejoin: 'round'
|
17
|
+
) do |s|
|
18
|
+
s.path(d: 'M10.5 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v5.5')
|
19
|
+
s.path(d: 'm14.3 19.6 1-.4')
|
20
|
+
s.path(d: 'M15 3v7.5')
|
21
|
+
s.path(d: 'm15.2 16.9-.9-.3')
|
22
|
+
s.path(d: 'm16.6 21.7.3-.9')
|
23
|
+
s.path(d: 'm16.8 15.3-.4-1')
|
24
|
+
s.path(d: 'm19.1 15.2.3-.9')
|
25
|
+
s.path(d: 'm19.6 21.7-.4-1')
|
26
|
+
s.path(d: 'm20.7 16.8 1-.4')
|
27
|
+
s.path(d: 'm21.7 19.4-.9-.3')
|
28
|
+
s.path(d: 'M9 3v18')
|
29
|
+
s.circle(cx: '18', cy: '18', r: '3')
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
# rubocop:enable Metrics/MethodLength
|