phlex-icons-remix 2.40.0 → 2.42.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/.devcontainer/devcontainer.json +13 -13
- data/.ruby-version +1 -1
- data/.vscode/extensions.json +9 -0
- data/.vscode/settings.json +22 -0
- data/README.md +65 -38
- data/generators/huge.rb +101 -0
- data/lib/phlex-icons/railtie.rb +9 -1
- data/lib/phlex-icons/remix/ai.rb +23 -0
- data/lib/phlex-icons/remix/ai_agent_fill.rb +23 -0
- data/lib/phlex-icons/remix/ai_agent_line.rb +23 -0
- data/lib/phlex-icons/remix/ai_generate_2_fill.rb +23 -0
- data/lib/phlex-icons/remix/ai_generate_2_line.rb +23 -0
- data/lib/phlex-icons/remix/ai_generate_3d_fill.rb +23 -0
- data/lib/phlex-icons/remix/ai_generate_3d_line.rb +23 -0
- data/lib/phlex-icons/remix/apps_ai_fill.rb +23 -0
- data/lib/phlex-icons/remix/apps_ai_line.rb +23 -0
- data/lib/phlex-icons/remix/atom_fill.rb +23 -0
- data/lib/phlex-icons/remix/atom_line.rb +23 -0
- data/lib/phlex-icons/remix/book_ai_fill.rb +23 -0
- data/lib/phlex-icons/remix/book_ai_line.rb +23 -0
- data/lib/phlex-icons/remix/brain_3_fill.rb +23 -0
- data/lib/phlex-icons/remix/brain_3_line.rb +23 -0
- data/lib/phlex-icons/remix/brain_ai_3_fill.rb +23 -0
- data/lib/phlex-icons/remix/brain_ai_3_line.rb +23 -0
- data/lib/phlex-icons/remix/brush_ai_3_fill.rb +23 -0
- data/lib/phlex-icons/remix/brush_ai_3_line.rb +23 -0
- data/lib/phlex-icons/remix/camera_4_fill.rb +23 -0
- data/lib/phlex-icons/remix/camera_4_line.rb +23 -0
- data/lib/phlex-icons/remix/camera_ai_2_fill.rb +23 -0
- data/lib/phlex-icons/remix/camera_ai_2_line.rb +23 -0
- data/lib/phlex-icons/remix/chat_ai_2_fill.rb +23 -0
- data/lib/phlex-icons/remix/chat_ai_2_line.rb +23 -0
- data/lib/phlex-icons/remix/chat_ai_3_fill.rb +23 -0
- data/lib/phlex-icons/remix/chat_ai_3_line.rb +23 -0
- data/lib/phlex-icons/remix/chat_ai_4_fill.rb +23 -0
- data/lib/phlex-icons/remix/chat_ai_4_line.rb +23 -0
- data/lib/phlex-icons/remix/chat_smile_ai_3_fill.rb +23 -0
- data/lib/phlex-icons/remix/chat_smile_ai_3_line.rb +23 -0
- data/lib/phlex-icons/remix/code_view.rb +1 -1
- data/lib/phlex-icons/remix/deepseek_fill.rb +23 -0
- data/lib/phlex-icons/remix/deepseek_line.rb +23 -0
- data/lib/phlex-icons/remix/file_ai_2_fill.rb +23 -0
- data/lib/phlex-icons/remix/file_ai_2_line.rb +23 -0
- data/lib/phlex-icons/remix/file_ai_fill.rb +23 -0
- data/lib/phlex-icons/remix/file_ai_line.rb +23 -0
- data/lib/phlex-icons/remix/function_ai_fill.rb +23 -0
- data/lib/phlex-icons/remix/function_ai_line.rb +23 -0
- data/lib/phlex-icons/remix/game_2_fill.rb +23 -0
- data/lib/phlex-icons/remix/game_2_line.rb +23 -0
- data/lib/phlex-icons/remix/goblet_broken_fill.rb +23 -0
- data/lib/phlex-icons/remix/goblet_broken_line.rb +23 -0
- data/lib/phlex-icons/remix/lightbulb_ai_fill.rb +23 -0
- data/lib/phlex-icons/remix/lightbulb_ai_line.rb +23 -0
- data/lib/phlex-icons/remix/loop_left_ai_fill.rb +23 -0
- data/lib/phlex-icons/remix/loop_left_ai_line.rb +23 -0
- data/lib/phlex-icons/remix/loop_right_ai_fill.rb +23 -0
- data/lib/phlex-icons/remix/loop_right_ai_line.rb +23 -0
- data/lib/phlex-icons/remix/mark_pen_fill.rb +1 -1
- data/lib/phlex-icons/remix/mark_pen_line.rb +1 -1
- data/lib/phlex-icons/remix/markup_fill.rb +1 -1
- data/lib/phlex-icons/remix/markup_line.rb +1 -1
- data/lib/phlex-icons/remix/message_ai_3_fill.rb +23 -0
- data/lib/phlex-icons/remix/message_ai_3_line.rb +23 -0
- data/lib/phlex-icons/remix/painting_ai_fill.rb +23 -0
- data/lib/phlex-icons/remix/painting_ai_line.rb +23 -0
- data/lib/phlex-icons/remix/painting_fill.rb +23 -0
- data/lib/phlex-icons/remix/painting_line.rb +23 -0
- data/lib/phlex-icons/remix/pencil_ai_2_fill.rb +23 -0
- data/lib/phlex-icons/remix/pencil_ai_2_line.rb +23 -0
- data/lib/phlex-icons/remix/pencil_ai_fill.rb +23 -0
- data/lib/phlex-icons/remix/pencil_ai_line.rb +23 -0
- data/lib/phlex-icons/remix/remix_fill.rb +23 -0
- data/lib/phlex-icons/remix/remix_line.rb +23 -0
- data/lib/phlex-icons/remix/search_ai_2_fill.rb +23 -0
- data/lib/phlex-icons/remix/search_ai_2_line.rb +23 -0
- data/lib/phlex-icons/remix/search_ai_3_fill.rb +23 -0
- data/lib/phlex-icons/remix/search_ai_3_line.rb +23 -0
- data/lib/phlex-icons/remix/search_ai_4_fill.rb +23 -0
- data/lib/phlex-icons/remix/search_ai_4_line.rb +23 -0
- data/lib/phlex-icons/remix/search_ai_fill.rb +23 -0
- data/lib/phlex-icons/remix/search_ai_line.rb +23 -0
- data/lib/phlex-icons/remix/speech_to_text_fill.rb +23 -0
- data/lib/phlex-icons/remix/speech_to_text_line.rb +23 -0
- data/lib/phlex-icons/remix/target_fill.rb +23 -0
- data/lib/phlex-icons/remix/target_line.rb +23 -0
- data/lib/phlex-icons/remix/text_to_speech_fill.rb +23 -0
- data/lib/phlex-icons/remix/text_to_speech_line.rb +23 -0
- data/lib/phlex-icons/remix/wrench_fill.rb +23 -0
- data/lib/phlex-icons/remix/wrench_line.rb +23 -0
- data/lib/phlex-icons/remix.rb +78 -1
- data/lib/phlex-icons/version.rb +1 -1
- data/mise.toml +2 -0
- metadata +84 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 025106b80b8f7608a8c723b6ae6356208175bdab993c3314ffaeee7dcb9cf5ed
|
|
4
|
+
data.tar.gz: f5a32e0842334319d9e4f84d994c19742021818e6cb4cb0e7d8775b6f4fa8e29
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7318d775f28a6805336ceae63a374810384dab6df6d8e521f0bf9767f0fadd2de4d0701a6a6ed5c7ff72257aea031033ddf791260ad4dbcd3c1882071980d4a1
|
|
7
|
+
data.tar.gz: 85ff7eb729b94dbf63266c97cfb9796c4a35b782ad2e65623c1f60c652bc17f9211fbd7d19ddcdac5f1434d70c73f9149bf7c711cf34655ef7b434e3eca09a70
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
|
|
2
2
|
// README at: https://github.com/devcontainers/templates/tree/main/src/ruby
|
|
3
3
|
{
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
"name": "phlex-icons",
|
|
5
|
+
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
|
|
6
|
+
"image": "ghcr.io/rails/devcontainer/images/ruby:3.4.7",
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
// Features to add to the dev container. More info: https://containers.dev/features.
|
|
9
|
+
"features": {
|
|
10
10
|
"ghcr.io/jungaretti/features/vim": {}
|
|
11
11
|
},
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
|
14
|
+
// "forwardPorts": [],
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
// Use 'postCreateCommand' to run commands after the container is created.
|
|
17
|
+
"postCreateCommand": ".devcontainer/setup.sh",
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
// Configure tool-specific properties.
|
|
20
|
+
"customizations": {
|
|
21
21
|
"vscode": {
|
|
22
22
|
"settings": {
|
|
23
23
|
"workbench": {
|
|
@@ -48,6 +48,6 @@
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
|
|
52
|
+
// "remoteUser": "root"
|
|
53
53
|
}
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
3.
|
|
1
|
+
3.4.7
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"workbench.iconTheme": "vscode-icons",
|
|
3
|
+
"editor.formatOnSave": true,
|
|
4
|
+
"editor.quickSuggestions": {
|
|
5
|
+
"strings": "on"
|
|
6
|
+
},
|
|
7
|
+
"[ruby]": {
|
|
8
|
+
"editor.defaultFormatter": "Shopify.ruby-lsp",
|
|
9
|
+
"editor.formatOnSave": true,
|
|
10
|
+
"editor.tabSize": 2,
|
|
11
|
+
"editor.insertSpaces": true,
|
|
12
|
+
"editor.semanticHighlighting.enabled": true,
|
|
13
|
+
"editor.formatOnType": true
|
|
14
|
+
},
|
|
15
|
+
"rubyLsp.rubyVersionManager": {
|
|
16
|
+
"identifier": "mise"
|
|
17
|
+
},
|
|
18
|
+
"rubyLsp.formatter": "rubocop_internal",
|
|
19
|
+
"mise.configureExtensionsAutomaticallyIgnoreList": [
|
|
20
|
+
"ms-vscode.js-debug"
|
|
21
|
+
]
|
|
22
|
+
}
|
data/README.md
CHANGED
|
@@ -10,23 +10,25 @@
|
|
|
10
10
|
|
|
11
11
|
# PhlexIcons
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
- [Bootstrap Icons](https://icons.getbootstrap.com) (2,
|
|
13
|
+
PhlexIcons brings 19,250+ SVG icons to [Phlex](https://phlex.fun) through a single, consistent API:
|
|
14
|
+
- [Bootstrap Icons](https://icons.getbootstrap.com) (2,050+)
|
|
15
15
|
- [Flag Icons](https://flagicons.lipis.dev) (250+)
|
|
16
16
|
- [Heroicons](https://heroicons.com) (300+)
|
|
17
|
-
- [
|
|
17
|
+
- [Hugeicons](https://hugeicons.com) (4,450+)
|
|
18
|
+
- [Lucide Icons](https://lucide.dev/icons) (1,600+)
|
|
18
19
|
- [Material Design Icons](https://fonts.google.com/icons?icon.style=Filled&icon.set=Material+Icons) (2,100+)
|
|
19
20
|
- [RadixUI Icons](https://radix-ui.com/icons) (300+)
|
|
20
|
-
- [Remix Icons](https://remixicon.com) (3,
|
|
21
|
-
- [Tabler Icons](https://tabler.io/icons) (4,
|
|
21
|
+
- [Remix Icons](https://remixicon.com) (3,050+)
|
|
22
|
+
- [Tabler Icons](https://tabler.io/icons) (4,950+)
|
|
22
23
|
|
|
23
|
-
|
|
24
|
+
More packs can be added over time.
|
|
24
25
|
|
|
25
|
-
|
|
26
|
+
Prefer not to include every pack? Install only the packs you need with these gems:
|
|
26
27
|
|
|
27
28
|
- [phlex-icons-bootstrap](https://rubygems.org/gems/phlex-icons-bootstrap)
|
|
28
29
|
- [phlex-icons-flag](https://rubygems.org/gems/phlex-icons-flag)
|
|
29
30
|
- [phlex-icons-hero](https://rubygems.org/gems/phlex-icons-hero)
|
|
31
|
+
- [phlex-icons-huge](https://rubygems.org/gems/phlex-icons-huge)
|
|
30
32
|
- [phlex-icons-lucide](https://rubygems.org/gems/phlex-icons-lucide)
|
|
31
33
|
- [phlex-icons-material](https://rubygems.org/gems/phlex-icons-material)
|
|
32
34
|
- [phlex-icons-radix](https://rubygems.org/gems/phlex-icons-radix)
|
|
@@ -39,6 +41,16 @@ Other Phlex icon gems:
|
|
|
39
41
|
- [phlex-remixicon](https://github.com/danieldocki/phlex-remixicon)
|
|
40
42
|
- [phlex-lucide](https://github.com/akodkod/phlex-lucide)
|
|
41
43
|
|
|
44
|
+
## Features
|
|
45
|
+
|
|
46
|
+
- **Unified API**: One way to render icons across all supported packs.
|
|
47
|
+
- **Use everything or just a pack**: Depend on the main gem or install per-pack gems.
|
|
48
|
+
- **Configurable defaults**: Global defaults and per-pack variants.
|
|
49
|
+
- **Works anywhere Phlex works**: With `Phlex::Kit` or plain Phlex components.
|
|
50
|
+
- **Rails helper**: Simple `phlex_icon` helper (name is configurable).
|
|
51
|
+
- **Custom icons**: Add your own icons alongside built-in packs.
|
|
52
|
+
- **Kept up-to-date**: Auto-generated packs and weekly updates.
|
|
53
|
+
|
|
42
54
|
## Installation
|
|
43
55
|
|
|
44
56
|
Install the gem and add it to the application's Gemfile by executing:
|
|
@@ -53,9 +65,26 @@ If bundler is not being used to manage dependencies, install the gem by executin
|
|
|
53
65
|
gem install phlex-icons
|
|
54
66
|
```
|
|
55
67
|
|
|
68
|
+
## Quick start
|
|
69
|
+
|
|
70
|
+
```ruby
|
|
71
|
+
require 'phlex-icons' # Not needed in Rails apps; Bundler will require it.
|
|
72
|
+
|
|
73
|
+
class IconsDemo < Phlex::HTML
|
|
74
|
+
include PhlexIcons
|
|
75
|
+
|
|
76
|
+
def view_template
|
|
77
|
+
div do
|
|
78
|
+
Hero::Home(variant: :solid, class: 'w-6 h-6')
|
|
79
|
+
Icon('bootstrap/house', class: 'w-6 h-6') # string form
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
```
|
|
84
|
+
|
|
56
85
|
## Configuration
|
|
57
86
|
|
|
58
|
-
The gem provides global configuration options
|
|
87
|
+
The gem provides global configuration options and per-pack options.
|
|
59
88
|
|
|
60
89
|
### Global configuration
|
|
61
90
|
|
|
@@ -101,6 +130,10 @@ end
|
|
|
101
130
|
PhlexIcons::Hero.configuration.default_variant = :solid # or :outline
|
|
102
131
|
```
|
|
103
132
|
|
|
133
|
+
### Hugeicons configuration
|
|
134
|
+
|
|
135
|
+
Nothing to configure for Hugeicons, as we are providing only the free stroke variant.
|
|
136
|
+
|
|
104
137
|
### Lucide Icons configuration
|
|
105
138
|
|
|
106
139
|
Nothing to configure for Lucide Icons.
|
|
@@ -144,7 +177,7 @@ PhlexIcons::Tabler.configuration.default_variant = :outline # or :filled
|
|
|
144
177
|
```ruby
|
|
145
178
|
require 'phlex-icons' # No need to require the gem if you are using it in a Rails application.
|
|
146
179
|
|
|
147
|
-
class
|
|
180
|
+
class IconsDemo < Phlex::HTML
|
|
148
181
|
include PhlexIcons
|
|
149
182
|
|
|
150
183
|
def view_template
|
|
@@ -152,6 +185,7 @@ class PhlexIcons < Phlex::HTML
|
|
|
152
185
|
Bootstrap::House(class: 'size-4')
|
|
153
186
|
Flag::Sa(variant: :rectangle, class: 'size-4')
|
|
154
187
|
Hero::Home(variant: :solid, class: 'size-4')
|
|
188
|
+
Huge::Home08(variant: :stroke, class: 'size-4')
|
|
155
189
|
Lucide::House(class: 'size-4')
|
|
156
190
|
Material::House(variant: :filled, class: 'size-4')
|
|
157
191
|
Radix::Home(class: 'size-4')
|
|
@@ -170,12 +204,13 @@ end
|
|
|
170
204
|
```ruby
|
|
171
205
|
require 'phlex-icons' # No need to require the gem if you are using it in a Rails application.
|
|
172
206
|
|
|
173
|
-
class
|
|
207
|
+
class IconsDemo < Phlex::HTML
|
|
174
208
|
def view_template
|
|
175
209
|
div do
|
|
176
210
|
render PhlexIcons::Bootstrap::House.new(class: 'size-4')
|
|
177
211
|
render PhlexIcons::Flag::Sa.new(variant: :rectangle, class: 'size-4')
|
|
178
212
|
render PhlexIcons::Hero::Home.new(variant: :solid, class: 'size-4')
|
|
213
|
+
render PhlexIcons::Huge::Home08.new(variant: :stroke, class: 'size-4')
|
|
179
214
|
render PhlexIcons::Lucide::House.new(class: 'size-4')
|
|
180
215
|
render PhlexIcons::Material::House.new(variant: :filled, class: 'size-4')
|
|
181
216
|
render PhlexIcons::Radix::Home.new(class: 'size-4')
|
|
@@ -183,7 +218,7 @@ class PhlexIcons < Phlex::HTML
|
|
|
183
218
|
render PhlexIcons::Tabler::Home.new(variant: :filled, class: 'size-4')
|
|
184
219
|
|
|
185
220
|
# or with a string
|
|
186
|
-
render PhlexIcons::Icon('bootstrap/house', class: 'size-4')
|
|
221
|
+
render PhlexIcons::Icon.new('bootstrap/house', class: 'size-4')
|
|
187
222
|
end
|
|
188
223
|
end
|
|
189
224
|
end
|
|
@@ -191,9 +226,11 @@ end
|
|
|
191
226
|
|
|
192
227
|
### Rails View Helper
|
|
193
228
|
|
|
194
|
-
|
|
229
|
+
PhlexIcons provides a convenient helper method to render icons directly in your ERB or Phlex views.
|
|
230
|
+
|
|
231
|
+
By default, the helper method is named `phlex_icon`, but it is configurable. You can change it by configuring `PhlexIcons.configuration.helper_method_name`.
|
|
195
232
|
|
|
196
|
-
|
|
233
|
+
To use the helper method inside Phlex views/components, you need to register it in your base component (Or any other component) using `register_output_helper`.
|
|
197
234
|
|
|
198
235
|
```erb
|
|
199
236
|
<%# Render a Bootstrap house icon with default size %>
|
|
@@ -217,15 +254,15 @@ By default, the helper method is named `phlex_icon`, but is configurable.
|
|
|
217
254
|
|
|
218
255
|
The first argument is the icon identifier. Such as: `'pack/icon_name:variant'`.
|
|
219
256
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
257
|
+
- If `default_pack` is configured, you can omit the pack name (e.g., `'icon_name:variant'` instead of `'pack/icon_name:variant'`).
|
|
258
|
+
- The `:variant` part is optional.
|
|
259
|
+
- Examples: `'hero/house:solid'`, `'house:solid'`, `'house'`
|
|
223
260
|
|
|
224
261
|
Subsequent arguments are passed as options to the icon component, such as `variant`, `class`, etc.
|
|
225
262
|
|
|
226
|
-
###
|
|
263
|
+
### Use only specific packs
|
|
227
264
|
|
|
228
|
-
|
|
265
|
+
For example, to use only Heroicons and Flag Icons, add:
|
|
229
266
|
- [phlex-icons-flag](https://rubygems.org/gems/phlex-icons-flag)
|
|
230
267
|
- [phlex-icons-hero](https://rubygems.org/gems/phlex-icons-hero)
|
|
231
268
|
|
|
@@ -252,12 +289,12 @@ class PhlexIcons < Phlex::HTML
|
|
|
252
289
|
end
|
|
253
290
|
```
|
|
254
291
|
|
|
255
|
-
### Add custom icons
|
|
292
|
+
### Add custom icons (Rails)
|
|
256
293
|
|
|
257
|
-
|
|
294
|
+
To add your own icons in a Rails app, create a `phlex_icons/custom` directory under `app/components`, then create one component per icon. For example:
|
|
258
295
|
|
|
259
296
|
```ruby
|
|
260
|
-
# app/
|
|
297
|
+
# app/components/phlex_icons/custom/icon_class_name.rb
|
|
261
298
|
|
|
262
299
|
module PhlexIcons
|
|
263
300
|
module Custom
|
|
@@ -270,33 +307,23 @@ module PhlexIcons
|
|
|
270
307
|
end
|
|
271
308
|
```
|
|
272
309
|
|
|
273
|
-
Finally, you will need to create a `PhlexIcons::Custom` module in `phlex-icons/custom.rb` file to include your custom icons and make them a `Phlex::Kit`:
|
|
274
|
-
|
|
275
|
-
```ruby
|
|
276
|
-
# app/views/components/phlex-icons/custom.rb
|
|
277
|
-
|
|
278
|
-
module PhlexIcons
|
|
279
|
-
module Custom
|
|
280
|
-
extend Phlex::Kit
|
|
281
|
-
end
|
|
282
|
-
end
|
|
283
|
-
```
|
|
284
|
-
|
|
285
310
|
Now, you can use your custom icons like any other icon pack as described above.
|
|
286
311
|
|
|
287
312
|
## Update icon packs
|
|
288
313
|
|
|
289
|
-
All
|
|
314
|
+
All packs are generated from the scripts under [`generators`](/generators). Clone the repo and run the relevant generator to update a pack. A GitHub Action also regenerates all packs weekly and ships updates.
|
|
290
315
|
|
|
291
|
-
##
|
|
316
|
+
## Icon pack versions
|
|
292
317
|
|
|
293
|
-
Each
|
|
318
|
+
Each pack exposes a `VERSION` constant indicating the source version used by the gem. For example: `PhlexIcons::Bootstrap::VERSION`.
|
|
294
319
|
|
|
295
320
|
## Development
|
|
296
321
|
|
|
297
|
-
After checking out the repo, open it in
|
|
322
|
+
After checking out the repo, open it in VS Code and choose `Reopen in Container` to start a development container. Then run `rake spec` to execute tests. Use `bin/console` to experiment interactively.
|
|
323
|
+
|
|
324
|
+
If you prefer not to use the dev container, install Mise and run `mise trust && mise install` to set up dependencies.
|
|
298
325
|
|
|
299
|
-
To install this gem
|
|
326
|
+
To install this gem locally, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, then run `bundle exec rake release` to tag, push, and publish the gem to [rubygems.org](https://rubygems.org).
|
|
300
327
|
|
|
301
328
|
## Contributing
|
|
302
329
|
|
data/generators/huge.rb
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'helper'
|
|
4
|
+
|
|
5
|
+
REPO_URL = 'https://github.com/hugeicons/hugeicons-static.git'
|
|
6
|
+
REPO_NAME = 'hugeicons-static'
|
|
7
|
+
ICONS_PACK_MODULE_PATH = 'lib/phlex-icons/huge.rb'
|
|
8
|
+
ICONS_PACK_PATH = 'lib/phlex-icons/huge'
|
|
9
|
+
VARIANTS = %i[stroke].freeze
|
|
10
|
+
|
|
11
|
+
TEMPLATE = ERB.new <<~TEMPLATE
|
|
12
|
+
# frozen_string_literal: true
|
|
13
|
+
|
|
14
|
+
# rubocop:disable #{ROBOCOP_DISABLE_WARNINGS}
|
|
15
|
+
module PhlexIcons
|
|
16
|
+
module Huge
|
|
17
|
+
class <%= icon_name %> < Base
|
|
18
|
+
def stroke
|
|
19
|
+
<%= stroke_icon %>
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
# rubocop:enable #{ROBOCOP_DISABLE_WARNINGS}
|
|
25
|
+
TEMPLATE
|
|
26
|
+
|
|
27
|
+
VARIANT_TEMPLATE = ERB.new <<~VARIANT_TEMPLATE
|
|
28
|
+
# frozen_string_literal: true
|
|
29
|
+
|
|
30
|
+
# rubocop:disable #{ROBOCOP_DISABLE_WARNINGS}
|
|
31
|
+
module PhlexIcons
|
|
32
|
+
module Huge
|
|
33
|
+
class <%= icon_name %><%= variant.to_s.capitalize %> < Base
|
|
34
|
+
def view_template
|
|
35
|
+
render <%= icon_name %>.new(variant: :<%= variant %>, **attrs)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
# rubocop:enable #{ROBOCOP_DISABLE_WARNINGS}
|
|
41
|
+
VARIANT_TEMPLATE
|
|
42
|
+
|
|
43
|
+
REPLACEMENTS = {
|
|
44
|
+
'1st-' => 'first-',
|
|
45
|
+
'2nd-' => 'second-',
|
|
46
|
+
'3rd-' => 'third-',
|
|
47
|
+
'3-d-' => 'three-d-',
|
|
48
|
+
'3d-' => 'three-d-',
|
|
49
|
+
'4k' => 'four-k',
|
|
50
|
+
'7z-' => 'seven-z-',
|
|
51
|
+
'comment ' => 'comment-',
|
|
52
|
+
'image-flip ' => 'image-flip'
|
|
53
|
+
}.freeze
|
|
54
|
+
|
|
55
|
+
def main
|
|
56
|
+
run_generator do
|
|
57
|
+
new_version = JSON.parse(File.read("generators/#{REPO_NAME}/package.json"))['version']
|
|
58
|
+
update_icon_path_version(new_version)
|
|
59
|
+
|
|
60
|
+
icon_file_names.tqdm.each { create_icon_component(_1) }
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def icon_file_names
|
|
65
|
+
Dir.glob("generators/#{REPO_NAME}/icons/*").map { |file| File.basename(file) }
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def create_icon_component(icon_file_name)
|
|
69
|
+
File.write(
|
|
70
|
+
File.join(ICONS_PACK_PATH, component_file_name(icon_file_name, REPLACEMENTS)),
|
|
71
|
+
TEMPLATE.result_with_hash(
|
|
72
|
+
icon_name: component_class_name(icon_file_name, REPLACEMENTS),
|
|
73
|
+
stroke_icon: read_and_convert_icon(stroke_icon_file_path(icon_file_name))
|
|
74
|
+
)
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
VARIANTS.each do |variant|
|
|
78
|
+
File.write(
|
|
79
|
+
File.join(ICONS_PACK_PATH, variant_component_file_name(icon_file_name, variant, REPLACEMENTS)),
|
|
80
|
+
VARIANT_TEMPLATE.result_with_hash(
|
|
81
|
+
icon_name: component_class_name(icon_file_name, REPLACEMENTS),
|
|
82
|
+
variant: variant
|
|
83
|
+
)
|
|
84
|
+
)
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def read_and_convert_icon(icon_file_path)
|
|
89
|
+
icon_file_content = File.read(icon_file_path)
|
|
90
|
+
.sub('width="24"', '')
|
|
91
|
+
.sub('height="24"', '')
|
|
92
|
+
.gsub(/stroke="#[0-9A-Fa-f]{6}"/, 'stroke="currentColor"')
|
|
93
|
+
|
|
94
|
+
Phlexing::Converter.convert(icon_file_content).sub('svg(', "svg(\n**attrs,")
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def stroke_icon_file_path(icon_file_name)
|
|
98
|
+
"generators/#{REPO_NAME}/icons/#{icon_file_name}"
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
main if __FILE__ == $PROGRAM_NAME
|
data/lib/phlex-icons/railtie.rb
CHANGED
|
@@ -9,7 +9,15 @@ module PhlexIcons
|
|
|
9
9
|
helper_method_name = PhlexIcons.configuration.helper_method_name
|
|
10
10
|
|
|
11
11
|
define_method helper_method_name do |name, **options|
|
|
12
|
-
|
|
12
|
+
component, fiber_id = Thread.current[:__phlex_component__]
|
|
13
|
+
|
|
14
|
+
if component && fiber_id == Fiber.current.object_id
|
|
15
|
+
component.instance_exec { render PhlexIcons::Icon.new(name, **options) }
|
|
16
|
+
|
|
17
|
+
nil
|
|
18
|
+
else
|
|
19
|
+
PhlexIcons::Icon.call(name, **options)&.html_safe
|
|
20
|
+
end
|
|
13
21
|
end
|
|
14
22
|
end
|
|
15
23
|
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# rubocop:disable Layout/LineLength
|
|
4
|
+
module PhlexIcons
|
|
5
|
+
module Remix
|
|
6
|
+
class Ai < Base
|
|
7
|
+
def view_template
|
|
8
|
+
svg(
|
|
9
|
+
**attrs,
|
|
10
|
+
viewbox: '0 0 24 24',
|
|
11
|
+
fill: 'currentColor',
|
|
12
|
+
xmlns: 'http://www.w3.org/2000/svg'
|
|
13
|
+
) do |s|
|
|
14
|
+
s.path(
|
|
15
|
+
d:
|
|
16
|
+
'M16.4004 21H14.2461L12.2461 16H5.75391L3.75391 21H1.59961L8 4.99996H10L16.4004 21ZM21 12V21H19V12H21ZM6.55371 14H11.4463L9 7.88473L6.55371 14ZM19.5293 2.3193C19.7058 1.89351 20.2942 1.8935 20.4707 2.3193L20.7236 2.93063C21.1555 3.97343 21.9615 4.80613 22.9746 5.2568L23.6914 5.57613C24.1022 5.75881 24.1022 6.35634 23.6914 6.53902L22.9326 6.87691C21.945 7.31619 21.1534 8.11942 20.7139 9.12789L20.4668 9.69332C20.2863 10.1075 19.7136 10.1075 19.5332 9.69332L19.2861 9.12789C18.8466 8.11941 18.0551 7.31619 17.0674 6.87691L16.3076 6.53902C15.8974 6.35617 15.8974 5.75894 16.3076 5.57613L17.0254 5.2568C18.0384 4.80613 18.8445 3.97343 19.2764 2.93063L19.5293 2.3193Z'
|
|
17
|
+
)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
# rubocop:enable Layout/LineLength
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# rubocop:disable Layout/LineLength
|
|
4
|
+
module PhlexIcons
|
|
5
|
+
module Remix
|
|
6
|
+
class AiAgentFill < Base
|
|
7
|
+
def view_template
|
|
8
|
+
svg(
|
|
9
|
+
**attrs,
|
|
10
|
+
viewbox: '0 0 24 24',
|
|
11
|
+
fill: 'currentColor',
|
|
12
|
+
xmlns: 'http://www.w3.org/2000/svg'
|
|
13
|
+
) do |s|
|
|
14
|
+
s.path(
|
|
15
|
+
d:
|
|
16
|
+
'M12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2ZM12 15C9.71266 15 7.65042 15.961 6.19238 17.5C7.65042 19.039 9.71266 20 12 20C14.2871 20 16.3486 19.0387 17.8066 17.5C16.3486 15.9613 14.2871 15 12 15ZM12.4707 5.31934C12.2943 4.89337 11.7058 4.89339 11.5293 5.31934L11.2764 5.93066C10.8445 6.97341 10.0384 7.80621 9.02539 8.25684L8.30762 8.57617C7.89751 8.75905 7.89744 9.35625 8.30762 9.53906L9.06738 9.87695C10.0551 10.3163 10.8476 11.1193 11.2871 12.1279L11.5332 12.6934C11.7138 13.1073 12.2863 13.1073 12.4668 12.6934L12.7139 12.1279C13.1534 11.1194 13.9449 10.3163 14.9326 9.87695L15.6924 9.53906C16.1026 9.35624 16.1025 8.75907 15.6924 8.57617L14.9746 8.25684C13.9616 7.8062 13.1556 6.9734 12.7236 5.93066L12.4707 5.31934Z'
|
|
17
|
+
)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
# rubocop:enable Layout/LineLength
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# rubocop:disable Layout/LineLength
|
|
4
|
+
module PhlexIcons
|
|
5
|
+
module Remix
|
|
6
|
+
class AiAgentLine < Base
|
|
7
|
+
def view_template
|
|
8
|
+
svg(
|
|
9
|
+
**attrs,
|
|
10
|
+
viewbox: '0 0 24 24',
|
|
11
|
+
fill: 'currentColor',
|
|
12
|
+
xmlns: 'http://www.w3.org/2000/svg'
|
|
13
|
+
) do |s|
|
|
14
|
+
s.path(
|
|
15
|
+
d:
|
|
16
|
+
'M12 2C17.5228 2 22 6.47715 22 12C22 14.7096 20.9205 17.1697 19.1709 18.9697C17.3551 20.8376 14.8124 22 12 22C9.18756 22 6.64488 20.8376 4.8291 18.9697C3.07949 17.1697 2 14.7096 2 12C2 6.47715 6.47715 2 12 2ZM12 16C10.0022 16 8.20124 16.8375 6.9248 18.1816C8.30642 19.3175 10.0724 20 12 20C13.9274 20 15.6927 19.3173 17.0742 18.1816C15.7978 16.8377 13.9975 16 12 16ZM12 4C7.58172 4 4 7.58172 4 12C4 13.7701 4.57462 15.4044 5.54785 16.7295C7.1822 15.0483 9.46797 14 12 14C14.5318 14 16.8169 15.0485 18.4512 16.7295C19.4246 15.4043 20 13.7703 20 12C20 7.58172 16.4183 4 12 4ZM11.5293 5.31934C11.7058 4.89329 12.2943 4.89329 12.4707 5.31934L12.7236 5.93066C13.1556 6.97343 13.9615 7.80622 14.9746 8.25684L15.6924 8.5752C16.1029 8.75796 16.1028 9.35627 15.6924 9.53906L14.9326 9.87695C13.9448 10.3163 13.1534 11.1193 12.7139 12.1279L12.4668 12.6934C12.2864 13.1074 11.7137 13.1074 11.5332 12.6934L11.2871 12.1279C10.8476 11.1193 10.0552 10.3163 9.06738 9.87695L8.30762 9.53906C7.89719 9.35628 7.89717 8.75795 8.30762 8.5752L9.02539 8.25684C10.0385 7.80623 10.8445 6.97345 11.2764 5.93066L11.5293 5.31934Z'
|
|
17
|
+
)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
# rubocop:enable Layout/LineLength
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# rubocop:disable Layout/LineLength
|
|
4
|
+
module PhlexIcons
|
|
5
|
+
module Remix
|
|
6
|
+
class AiGenerate2Fill < Base
|
|
7
|
+
def view_template
|
|
8
|
+
svg(
|
|
9
|
+
**attrs,
|
|
10
|
+
viewbox: '0 0 24 24',
|
|
11
|
+
fill: 'currentColor',
|
|
12
|
+
xmlns: 'http://www.w3.org/2000/svg'
|
|
13
|
+
) do |s|
|
|
14
|
+
s.path(
|
|
15
|
+
d:
|
|
16
|
+
'M18 3C20.2091 3 22 4.79086 22 7V17C22 19.2091 20.2091 21 18 21H6C3.79086 21 2 19.2091 2 17V7C2 4.79086 3.79086 3 6 3H18ZM12.5879 7.39941C12.3673 6.86706 11.6327 6.86708 11.4121 7.39941L11.0947 8.16309C10.5548 9.46657 9.54772 10.5081 8.28125 11.0713L7.38477 11.4697C6.87165 11.6982 6.87153 12.4455 7.38477 12.6738L8.33496 13.0957C9.56954 13.6448 10.5591 14.6486 11.1084 15.9092L11.416 16.6162C11.6416 17.1338 12.3584 17.1338 12.584 16.6162L12.8916 15.9092C13.4409 14.6486 14.4305 13.6448 15.665 13.0957L16.6152 12.6738C17.1285 12.4455 17.1284 11.6982 16.6152 11.4697L15.7188 11.0713C14.4522 10.5081 13.4442 9.46657 12.9043 8.16309L12.5879 7.39941Z'
|
|
17
|
+
)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
# rubocop:enable Layout/LineLength
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# rubocop:disable Layout/LineLength
|
|
4
|
+
module PhlexIcons
|
|
5
|
+
module Remix
|
|
6
|
+
class AiGenerate2Line < Base
|
|
7
|
+
def view_template
|
|
8
|
+
svg(
|
|
9
|
+
**attrs,
|
|
10
|
+
viewbox: '0 0 24 24',
|
|
11
|
+
fill: 'currentColor',
|
|
12
|
+
xmlns: 'http://www.w3.org/2000/svg'
|
|
13
|
+
) do |s|
|
|
14
|
+
s.path(
|
|
15
|
+
d:
|
|
16
|
+
'M18 3C20.2091 3 22 4.79086 22 7V17C22 19.2091 20.2091 21 18 21H6C3.79086 21 2 19.2091 2 17V7C2 4.79086 3.79086 3 6 3H18ZM6 5C4.89543 5 4 5.89543 4 7V17C4 18.1046 4.89543 19 6 19H18C19.1046 19 20 18.1046 20 17V7C20 5.89543 19.1046 5 18 5H6ZM11.4121 7.39941C11.6327 6.86708 12.3673 6.86706 12.5879 7.39941L12.9043 8.16309C13.4442 9.46657 14.4522 10.5081 15.7188 11.0713L16.6152 11.4697C17.1284 11.6982 17.1285 12.4455 16.6152 12.6738L15.665 13.0957C14.4305 13.6448 13.4409 14.6486 12.8916 15.9092L12.584 16.6162C12.3584 17.1338 11.6416 17.1338 11.416 16.6162L11.1084 15.9092C10.5591 14.6486 9.56954 13.6448 8.33496 13.0957L7.38477 12.6738C6.87153 12.4455 6.87165 11.6982 7.38477 11.4697L8.28125 11.0713C9.54772 10.5081 10.5548 9.46657 11.0947 8.16309L11.4121 7.39941Z'
|
|
17
|
+
)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
# rubocop:enable Layout/LineLength
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# rubocop:disable Layout/LineLength
|
|
4
|
+
module PhlexIcons
|
|
5
|
+
module Remix
|
|
6
|
+
class AiGenerate3dFill < Base
|
|
7
|
+
def view_template
|
|
8
|
+
svg(
|
|
9
|
+
**attrs,
|
|
10
|
+
viewbox: '0 0 24 24',
|
|
11
|
+
fill: 'currentColor',
|
|
12
|
+
xmlns: 'http://www.w3.org/2000/svg'
|
|
13
|
+
) do |s|
|
|
14
|
+
s.path(
|
|
15
|
+
d:
|
|
16
|
+
'M14.2676 2.3125C13.4737 3.32993 13 4.60947 13 6C13 9.31371 15.6863 12 19 12C19.8925 12 20.7388 11.8036 21.5 11.4541V17.5L12 23L2.5 17.5V6.5L12 1L14.2676 2.3125ZM4.5 16.3467L12 20.6895V12L4.5 7.65723V16.3467ZM18.5293 2.31934C18.7059 1.8935 19.2943 1.89349 19.4707 2.31934L19.7236 2.93066C20.1556 3.97346 20.9615 4.80618 21.9746 5.25684L22.6924 5.57617C23.1026 5.75901 23.1026 6.3562 22.6924 6.53906L21.9326 6.87695C20.9449 7.31624 20.1534 8.11944 19.7139 9.12793L19.4668 9.69336C19.2864 10.1075 18.7137 10.1075 18.5332 9.69336L18.2871 9.12793C17.8476 8.11929 17.0552 7.31628 16.0674 6.87695L15.3076 6.53906C14.8974 6.35622 14.8974 5.75899 15.3076 5.57617L16.0254 5.25684C17.0385 4.80618 17.8445 3.97348 18.2764 2.93066L18.5293 2.31934Z'
|
|
17
|
+
)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
# rubocop:enable Layout/LineLength
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# rubocop:disable Layout/LineLength
|
|
4
|
+
module PhlexIcons
|
|
5
|
+
module Remix
|
|
6
|
+
class AiGenerate3dLine < Base
|
|
7
|
+
def view_template
|
|
8
|
+
svg(
|
|
9
|
+
**attrs,
|
|
10
|
+
viewbox: '0 0 24 24',
|
|
11
|
+
fill: 'currentColor',
|
|
12
|
+
xmlns: 'http://www.w3.org/2000/svg'
|
|
13
|
+
) do |s|
|
|
14
|
+
s.path(
|
|
15
|
+
d:
|
|
16
|
+
'M15.1416 2.81836L13.1016 3.94824L12 3.31055L4.5 7.65234V7.6582L12 12V20.6895L19.5 16.3467V11.5L21.5 10.3291V17.5L12 23L2.5 17.5V6.5L12 1L15.1416 2.81836ZM18.5293 2.31934C18.7059 1.8935 19.2943 1.89349 19.4707 2.31934L19.7236 2.93066C20.1556 3.97346 20.9615 4.80618 21.9746 5.25684L22.6924 5.57617C23.1026 5.75901 23.1026 6.3562 22.6924 6.53906L21.9326 6.87695C20.9449 7.31624 20.1534 8.11944 19.7139 9.12793L19.4668 9.69336C19.2864 10.1075 18.7137 10.1075 18.5332 9.69336L18.2871 9.12793C17.8476 8.11929 17.0552 7.31628 16.0674 6.87695L15.3076 6.53906C14.8974 6.35622 14.8974 5.75899 15.3076 5.57617L16.0254 5.25684C17.0385 4.80618 17.8445 3.97348 18.2764 2.93066L18.5293 2.31934Z'
|
|
17
|
+
)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
# rubocop:enable Layout/LineLength
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# rubocop:disable Layout/LineLength
|
|
4
|
+
module PhlexIcons
|
|
5
|
+
module Remix
|
|
6
|
+
class AppsAiFill < Base
|
|
7
|
+
def view_template
|
|
8
|
+
svg(
|
|
9
|
+
**attrs,
|
|
10
|
+
viewbox: '0 0 24 24',
|
|
11
|
+
fill: 'currentColor',
|
|
12
|
+
xmlns: 'http://www.w3.org/2000/svg'
|
|
13
|
+
) do |s|
|
|
14
|
+
s.path(
|
|
15
|
+
d:
|
|
16
|
+
'M6.75 2.5C9.09721 2.5 11 4.40279 11 6.75V11H6.75C4.40279 11 2.5 9.09721 2.5 6.75 2.5 4.40279 4.40279 2.5 6.75 2.5ZM6.75 13H11V17.25C11 19.5972 9.09721 21.5 6.75 21.5 4.40279 21.5 2.5 19.5972 2.5 17.25 2.5 14.9028 4.40279 13 6.75 13ZM13 13H17.25C19.5972 13 21.5 14.9028 21.5 17.25 21.5 19.5972 19.5972 21.5 17.25 21.5 14.9028 21.5 13 19.5972 13 17.25V13ZM18.008 10.0695 17.746 10.6702C17.5543 11.1099 16.9457 11.1099 16.7539 10.6702L16.492 10.0695C16.0251 8.99837 15.184 8.14559 14.1345 7.67906L13.3273 7.32028C12.8909 7.12628 12.8909 6.49155 13.3273 6.29754L14.0893 5.95881C15.1658 5.48028 16.022 4.59594 16.4809 3.48847L16.7499 2.83932C16.9374 2.38689 17.5626 2.38689 17.75 2.83932L18.019 3.48847C18.478 4.59594 19.3342 5.48028 20.4107 5.95881L21.1726 6.29754C21.6091 6.49155 21.6091 7.12628 21.1726 7.32028L20.3656 7.67906C19.316 8.14559 18.475 8.99837 18.008 10.0695Z'
|
|
17
|
+
)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
# rubocop:enable Layout/LineLength
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# rubocop:disable Layout/LineLength
|
|
4
|
+
module PhlexIcons
|
|
5
|
+
module Remix
|
|
6
|
+
class AppsAiLine < Base
|
|
7
|
+
def view_template
|
|
8
|
+
svg(
|
|
9
|
+
**attrs,
|
|
10
|
+
viewbox: '0 0 24 24',
|
|
11
|
+
fill: 'currentColor',
|
|
12
|
+
xmlns: 'http://www.w3.org/2000/svg'
|
|
13
|
+
) do |s|
|
|
14
|
+
s.path(
|
|
15
|
+
d:
|
|
16
|
+
'M11 17.2498C11 19.597 9.09721 21.4998 6.75 21.4998C4.40279 21.4998 2.5 19.597 2.5 17.2498C2.50011 14.9027 4.40286 12.9998 6.75 12.9998H11V17.2498ZM17.25 12.9998C19.5971 12.9998 21.4999 14.9027 21.5 17.2498C21.5 19.597 19.5972 21.4998 17.25 21.4998C14.9028 21.4998 13 19.597 13 17.2498V12.9998H17.25ZM6.75 14.9998C5.50743 14.9998 4.50011 16.0073 4.5 17.2498C4.5 18.4925 5.50736 19.4998 6.75 19.4998C7.99264 19.4998 9 18.4925 9 17.2498V14.9998H6.75ZM15 17.2498C15 18.4925 16.0074 19.4998 17.25 19.4998C18.4926 19.4998 19.5 18.4925 19.5 17.2498C19.4999 16.0073 18.4926 14.9998 17.25 14.9998H15V17.2498ZM6.75 2.4998C9.09714 2.4998 10.9999 4.40269 11 6.74981V10.9998H6.75C4.40279 10.9998 2.5 9.09703 2.5 6.74981C2.50011 4.40269 4.40286 2.4998 6.75 2.4998ZM16.75 2.83965C16.9375 2.38722 17.5626 2.38722 17.75 2.83965L18.0195 3.48809C18.4785 4.59556 19.3346 5.48026 20.4111 5.95879L21.1729 6.29766C21.609 6.49178 21.6091 7.12607 21.1729 7.32013L20.3652 7.67852C19.3158 8.14506 18.4748 8.99814 18.0078 10.0692L17.7461 10.6697C17.5544 11.1095 16.9457 11.1095 16.7539 10.6697L16.4922 10.0692C16.0252 8.99814 15.1842 8.14506 14.1348 7.67852L13.3271 7.32013C12.891 7.1261 12.891 6.49175 13.3271 6.29766L14.0889 5.95879C15.1654 5.48026 16.0216 4.59556 16.4805 3.48809L16.75 2.83965ZM6.75 4.49981C5.50743 4.49981 4.50011 5.50726 4.5 6.74981C4.5 7.99245 5.50736 8.99982 6.75 8.99982H9V6.74981C8.99989 5.50726 7.99257 4.49981 6.75 4.49981Z'
|
|
17
|
+
)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
# rubocop:enable Layout/LineLength
|