rails_icons 1.0.0 → 1.2.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/Gemfile.lock +6 -5
- data/README.md +27 -13
- data/lib/generators/rails_icons/initializer_generator.rb +24 -65
- data/lib/generators/rails_icons/install_generator.rb +8 -4
- data/lib/generators/rails_icons/sync_generator.rb +12 -43
- data/lib/rails_icons/base_generator.rb +20 -0
- data/lib/rails_icons/configuration/animated.rb +3 -1
- data/lib/rails_icons/configuration/boxicons.rb +77 -0
- data/lib/rails_icons/configuration/feather.rb +24 -1
- data/lib/rails_icons/configuration/flags.rb +68 -0
- data/lib/rails_icons/configuration/heroicons.rb +39 -4
- data/lib/rails_icons/configuration/linear.rb +48 -0
- data/lib/rails_icons/configuration/lucide.rb +24 -1
- data/lib/rails_icons/configuration/phosphor.rb +144 -0
- data/lib/rails_icons/configuration/radix.rb +46 -0
- data/lib/rails_icons/configuration/sidekickicons.rb +104 -0
- data/lib/rails_icons/configuration/tabler.rb +29 -1
- data/lib/rails_icons/configuration/weather.rb +54 -0
- data/lib/rails_icons/configuration.rb +4 -11
- data/lib/rails_icons/errors.rb +15 -1
- data/lib/rails_icons/icon/attributes.rb +7 -1
- data/lib/rails_icons/icon/file_path.rb +57 -0
- data/lib/rails_icons/icon.rb +4 -18
- data/lib/rails_icons/libraries.rb +28 -41
- data/lib/rails_icons/sync/engine.rb +75 -0
- data/lib/rails_icons/sync/process_variants.rb +74 -0
- data/lib/rails_icons/sync/transformations.rb +27 -0
- data/lib/rails_icons/version.rb +1 -1
- data/lib/rails_icons.rb +1 -1
- metadata +15 -4
- data/lib/generators/rails_icons/sync/engine.rb +0 -87
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6413197bc61eb646096a2c6abbf25696fd6eb8c986d85cc08519509066f83e85
|
4
|
+
data.tar.gz: e1a1f952e9f499a39adba3958be58fc7f7aafbd779397ce5b7d62c4e1d16cb9c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37de7ecd41860ff20570285ba3910192c5e52273a0991ae06f51a6d823078031bb0304fce7fae49a8866d5b71c2caf3a99f6123b1cfa9209b61b35acf86e1018
|
7
|
+
data.tar.gz: 4590aceead66f68e8b890a53823eb9fe8c959c58678631f854bedf49c763c81deda9de0175763b26fb2ad135be3d561e8ab3dd5a2c19b921cd06fad710330884
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rails_icons (1.
|
4
|
+
rails_icons (1.2.0)
|
5
5
|
nokogiri (~> 1.16, >= 1.16.4)
|
6
6
|
rails (> 6.1)
|
7
7
|
|
@@ -104,7 +104,7 @@ GEM
|
|
104
104
|
marcel (1.0.4)
|
105
105
|
method_source (1.0.0)
|
106
106
|
mini_mime (1.1.5)
|
107
|
-
mini_portile2 (2.8.
|
107
|
+
mini_portile2 (2.8.8)
|
108
108
|
minitest (5.22.3)
|
109
109
|
net-imap (0.4.10)
|
110
110
|
date
|
@@ -116,10 +116,10 @@ GEM
|
|
116
116
|
net-smtp (0.5.0)
|
117
117
|
net-protocol
|
118
118
|
nio4r (2.7.1)
|
119
|
-
nokogiri (1.
|
119
|
+
nokogiri (1.18.3)
|
120
120
|
mini_portile2 (~> 2.8.2)
|
121
121
|
racc (~> 1.4)
|
122
|
-
nokogiri (1.
|
122
|
+
nokogiri (1.18.3-arm64-darwin)
|
123
123
|
racc (~> 1.4)
|
124
124
|
parallel (1.24.0)
|
125
125
|
parser (3.3.0.5)
|
@@ -132,7 +132,7 @@ GEM
|
|
132
132
|
railties (>= 7.0.0)
|
133
133
|
psych (5.1.2)
|
134
134
|
stringio
|
135
|
-
racc (1.
|
135
|
+
racc (1.8.1)
|
136
136
|
rack (2.2.9)
|
137
137
|
rack-test (2.1.0)
|
138
138
|
rack (>= 1.3)
|
@@ -215,6 +215,7 @@ GEM
|
|
215
215
|
PLATFORMS
|
216
216
|
arm64-darwin-22
|
217
217
|
ruby
|
218
|
+
x86_64-linux
|
218
219
|
|
219
220
|
DEPENDENCIES
|
220
221
|
debug (~> 1.9, >= 1.9.2)
|
data/README.md
CHANGED
@@ -16,7 +16,11 @@ The icons are sourced directly from their respective GitHub repositories, ensuri
|
|
16
16
|
**Sponsored By [Rails Designer](https://railsdesigner.com/)**
|
17
17
|
|
18
18
|
<a href="https://railsdesigner.com/" target="_blank">
|
19
|
-
<
|
19
|
+
<picture>
|
20
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/Rails-Designer/rails_icons/HEAD/.github/logo-dark.svg">
|
21
|
+
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/Rails-Designer/rails_icons/HEAD/.github/logo-light.svg">
|
22
|
+
<img alt="Rails Designer" src="https://raw.githubusercontent.com/Rails-Designer/rails_icons/HEAD/.github/logo-light.svg" width="240" style="max-width: 100%;">
|
23
|
+
</picture>
|
20
24
|
</a>
|
21
25
|
|
22
26
|
|
@@ -36,7 +40,7 @@ rails generate rails_icons:install --libraries=LIBRARY_NAME
|
|
36
40
|
```bash
|
37
41
|
rails generate rails_icons:install --libraries=heroicons
|
38
42
|
|
39
|
-
Or multiple at once
|
43
|
+
# Or multiple at once
|
40
44
|
rails generate rails_icons:install --libraries=heroicons lucide
|
41
45
|
```
|
42
46
|
|
@@ -50,12 +54,17 @@ icon "check"
|
|
50
54
|
# Use another variant
|
51
55
|
icon "check", variant: "solid"
|
52
56
|
|
53
|
-
# Set library
|
57
|
+
# Set library explicitly
|
54
58
|
icon "check", library: "heroicons"
|
55
59
|
|
56
60
|
# Add CSS
|
57
61
|
icon "check", class: "text-green-500"
|
58
62
|
|
63
|
+
# Add CSS with class_names
|
64
|
+
icon "check", class: ["size-4", "bg-red-500": !verified?, "bg-green-500": verified?]
|
65
|
+
# ↳ Article: https://railsdesigner.com/conditional-css-classes-in-rails/
|
66
|
+
# ↳ Documentation: https://edgeapi.rubyonrails.org/classes/ActionView/Helpers/TagHelper.html#method-i-token_list
|
67
|
+
|
59
68
|
# Add data attributes
|
60
69
|
icon "check", data: { controller: "swap" }
|
61
70
|
|
@@ -66,10 +75,17 @@ icon "check", stroke_width: 2
|
|
66
75
|
|
67
76
|
## First-party libraries
|
68
77
|
|
69
|
-
- [
|
70
|
-
- [
|
71
|
-
- [
|
72
|
-
- [
|
78
|
+
- [Boxicons](https://railsdesigner.com/rails-icons/boxicons/) (1600+ icons)
|
79
|
+
- [Feather](https://railsdesigner.com/rails-icons/feather/) (280+ icons)
|
80
|
+
- [Flags](https://railsdesigner.com/rails-icons/flags/) (540+ icons)
|
81
|
+
- [Heroicons](https://railsdesigner.com/rails-icons/heroicons/) (300+ icons)
|
82
|
+
- [Linear](https://railsdesigner.com/rails-icons/linear/) (170+ icons)
|
83
|
+
- [Lucide](https://railsdesigner.com/rails-icons/lucide/) (1500+ icons)
|
84
|
+
- [Phosphor](https://railsdesigner.com/rails-icons/phosphor/) (9000+ icons)
|
85
|
+
- [Radix](https://railsdesigner.com/rails-icons/radix/) (300+ icons)
|
86
|
+
- [SidekickIcons](https://railsdesigner.com/rails-icons/sidekickicons/) (49 icons, complementing [Heroicons](https://railsdesigner.com/rails-icons/heroicons/))
|
87
|
+
- [Tabler](https://railsdesigner.com/rails-icons/tabler/) (5700+ icons)
|
88
|
+
- [Weather](https://railsdesigner.com/rails-icons/weather/) (215+ icons)
|
73
89
|
|
74
90
|
|
75
91
|
## Animated icons
|
@@ -81,7 +97,7 @@ Rails Icons also includes a few animated icons. Great for loading states and so
|
|
81
97
|
- `fading-dots`
|
82
98
|
- `bouncing-dots`
|
83
99
|
|
84
|
-
Use like this: `icon "faded-spinner", library: "animated"`. The same attributes as
|
100
|
+
Use like this: `icon "faded-spinner", library: "animated"`. The same attributes as the others libraries are available.
|
85
101
|
|
86
102
|
|
87
103
|
## Custom icon library
|
@@ -92,7 +108,6 @@ Need to use an icon from another library?
|
|
92
108
|
2. add the (SVG) icons to the created directory **app/assets/svg/icons/simple_icons**;
|
93
109
|
|
94
110
|
Every custom icon can now be used with the same interface as first-party icon libraries.
|
95
|
-
|
96
111
|
```ruby
|
97
112
|
icon "apple", library: "simple_icons", class: "text-black"
|
98
113
|
```
|
@@ -100,13 +115,12 @@ icon "apple", library: "simple_icons", class: "text-black"
|
|
100
115
|
|
101
116
|
## Sync icons
|
102
117
|
|
103
|
-
|
104
|
-
|
118
|
+
To sync all libraries, run
|
105
119
|
```bash
|
106
|
-
rails generate rails_icons:sync
|
120
|
+
rails generate rails_icons:sync
|
107
121
|
```
|
108
122
|
|
109
|
-
|
123
|
+
To sync only a specific library, run
|
110
124
|
```bash
|
111
125
|
rails generate rails_icons:sync --libraries=heroicons
|
112
126
|
|
@@ -1,11 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "rails_icons/base_generator"
|
4
|
+
|
3
5
|
module RailsIcons
|
4
|
-
class InitializerGenerator <
|
6
|
+
class InitializerGenerator < RailsIcons::BaseGenerator
|
5
7
|
source_root File.expand_path("templates", __dir__)
|
6
8
|
|
7
|
-
|
8
|
-
|
9
|
+
desc "Create the Rails Icons initializer."
|
10
|
+
|
11
|
+
class_option :libraries, type: :array, default: [], desc: "Choose libraries (#{RailsIcons.libraries.keys.join("/")})"
|
12
|
+
class_option :destination, type: :string, default: RailsIcons.configuration.destination_path, desc: "Specify destination folder for icons"
|
9
13
|
class_option :custom, type: :string, desc: "Name of the custom library"
|
10
14
|
|
11
15
|
def copy_initializer
|
@@ -18,16 +22,26 @@ module RailsIcons
|
|
18
22
|
return unless File.exist?(INITIALIZER)
|
19
23
|
return if default_configuration_exists?
|
20
24
|
|
21
|
-
if
|
25
|
+
if libraries.present?
|
22
26
|
default_configuration = <<~RB.indent(2)
|
23
|
-
config.default_library = "#{
|
24
|
-
# config.default_variant = "" # Set a default variant
|
27
|
+
config.default_library = "#{libraries.first}"
|
28
|
+
# config.default_variant = "" # Set a default variant for all libraries
|
25
29
|
RB
|
26
30
|
|
27
31
|
insert_into_file INITIALIZER, default_configuration, after: "RailsIcons.configure do |config|\n"
|
28
32
|
end
|
29
33
|
end
|
30
34
|
|
35
|
+
def insert_custom_destination_path
|
36
|
+
return if options[:destination] && options[:destination] == RailsIcons.configuration.destination_path
|
37
|
+
|
38
|
+
insert_into_file INITIALIZER, <<~RB.indent(2), after: "RailsIcons.configure do |config|\n"
|
39
|
+
# Default destination path
|
40
|
+
config.destination_path = "#{options[:destination]}"
|
41
|
+
|
42
|
+
RB
|
43
|
+
end
|
44
|
+
|
31
45
|
def insert_libraries_configuration
|
32
46
|
insert_into_file INITIALIZER, "\n#{library_configuration}", before: "end"
|
33
47
|
end
|
@@ -61,67 +75,10 @@ module RailsIcons
|
|
61
75
|
insert_into_file INITIALIZER, "\n#{custom_configuration}", after: "custom: {"
|
62
76
|
end
|
63
77
|
|
64
|
-
def create_custom_directory
|
65
|
-
FileUtils.mkdir_p(File.join(options[:destination], options[:custom]))
|
66
|
-
end
|
78
|
+
def create_custom_directory = FileUtils.mkdir_p(File.join(options[:destination], options[:custom]))
|
67
79
|
|
68
80
|
def library_configuration
|
69
|
-
|
70
|
-
feather: feather_config,
|
71
|
-
heroicons: heroicons_config,
|
72
|
-
lucide: lucide_config,
|
73
|
-
tabler: tabler_config
|
74
|
-
}
|
75
|
-
|
76
|
-
options[:libraries].map { configs[_1.to_sym] }.join("\n")
|
77
|
-
end
|
78
|
-
|
79
|
-
def feather_config
|
80
|
-
<<~RB.indent(2)
|
81
|
-
# Override Feather defaults
|
82
|
-
# config.libraries.feather.default.css = "size-6"
|
83
|
-
# config.libraries.feather.default.stroke_width = "2"
|
84
|
-
# config.libraries.feather.default.data = {}
|
85
|
-
RB
|
86
|
-
end
|
87
|
-
|
88
|
-
def heroicons_config
|
89
|
-
<<~RB.indent(2)
|
90
|
-
# Override Heroicon defaults
|
91
|
-
# config.libraries.heroicons.outline.default.css = "size-6"
|
92
|
-
# config.libraries.heroicons.outline.default.stroke_width = "1.5"
|
93
|
-
# config.libraries.heroicons.outline.default.data = {}
|
94
|
-
|
95
|
-
# config.libraries.heroicons.solid.default.css = "size-6"
|
96
|
-
# config.libraries.heroicons.solid.default.data = {}
|
97
|
-
|
98
|
-
# config.libraries.heroicons.mini.default.css = "size-5"
|
99
|
-
# config.libraries.heroicons.mini.default.data = {}
|
100
|
-
|
101
|
-
# config.libraries.heroicons.micro.default.css = "size-4"
|
102
|
-
# config.libraries.heroicons.micro.default.data = {}
|
103
|
-
RB
|
104
|
-
end
|
105
|
-
|
106
|
-
def lucide_config
|
107
|
-
<<~RB.indent(2)
|
108
|
-
# Override Lucide defaults
|
109
|
-
# config.libraries.lucide.outline.default.css = "size-6"
|
110
|
-
# config.libraries.lucide.outline.default.stroke_width = "1.5"
|
111
|
-
# config.libraries.lucide.outline.default.data = {}
|
112
|
-
RB
|
113
|
-
end
|
114
|
-
|
115
|
-
def tabler_config
|
116
|
-
<<~RB.indent(2)
|
117
|
-
# Override Tabler defaults
|
118
|
-
# config.libraries.tabler.solid.default.css = "size-6"
|
119
|
-
# config.libraries.tabler.solid.default.data = {}
|
120
|
-
|
121
|
-
# config.libraries.tabler.outline.default.css = "size-6"
|
122
|
-
# config.libraries.tabler.outline.default.stroke_width = "2"
|
123
|
-
# config.libraries.tabler.outline.default.data = {}
|
124
|
-
RB
|
81
|
+
libraries.map { RailsIcons.libraries[_1.to_sym].initializer_config }.join("\n")
|
125
82
|
end
|
126
83
|
|
127
84
|
def custom_configuration
|
@@ -140,5 +97,7 @@ module RailsIcons
|
|
140
97
|
|
141
98
|
File.readlines(INITIALIZER).any? { _1.match?(line) }
|
142
99
|
end
|
100
|
+
|
101
|
+
def libraries = options[:libraries].map(&:downcase)
|
143
102
|
end
|
144
103
|
end
|
@@ -1,11 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "rails_icons/base_generator"
|
4
|
+
|
3
5
|
module RailsIcons
|
4
|
-
class InstallGenerator <
|
6
|
+
class InstallGenerator < RailsIcons::BaseGenerator
|
5
7
|
source_root File.expand_path("templates", __dir__)
|
6
8
|
|
7
|
-
|
8
|
-
|
9
|
+
desc "Install Rails Icons with the chosen libraries. This creates the configuration initializer and will sync the icons."
|
10
|
+
|
11
|
+
class_option :libraries, type: :array, default: [], desc: "Choose libraries (#{RailsIcons.libraries.keys.join("/")})"
|
12
|
+
class_option :destination, type: :string, default: RailsIcons.configuration.destination_path, desc: "Specify destination folder for icons"
|
9
13
|
class_option :skip_sync, type: :boolean, default: false
|
10
14
|
|
11
15
|
def initializer_generator
|
@@ -20,6 +24,6 @@ module RailsIcons
|
|
20
24
|
|
21
25
|
private
|
22
26
|
|
23
|
-
def attributes = ["--libraries=#{options[:libraries].join(" ")}", "--destination=#{options[:destination]}"].join(" ")
|
27
|
+
def attributes = ["--libraries=#{options[:libraries].map(&:downcase).join(" ")}", "--destination=#{options[:destination]}"].join(" ")
|
24
28
|
end
|
25
29
|
end
|
@@ -1,59 +1,28 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "
|
4
|
-
|
3
|
+
require "rails_icons/base_generator"
|
4
|
+
require "rails_icons/sync/engine"
|
5
5
|
|
6
6
|
module RailsIcons
|
7
|
-
class SyncGenerator <
|
8
|
-
class_option :libraries, type: :array, default: [], desc: "Choose libraries (#{RailsIcons::Libraries.all.keys.join("/")})"
|
9
|
-
class_option :destination, type: :string, default: "app/assets/svg/icons/", desc: "Specify destination folder for icons"
|
10
|
-
|
11
|
-
desc "Sync an icon library(s) from their respective git repos."
|
7
|
+
class SyncGenerator < RailsIcons::BaseGenerator
|
12
8
|
source_root File.expand_path("templates", __dir__)
|
13
9
|
|
14
|
-
|
15
|
-
raise "[Rails Icons] Not a valid library" if options[:libraries].empty?
|
16
|
-
|
17
|
-
clean_temp_directory
|
10
|
+
desc "Sync the chosen icon libraries from their respective git repos."
|
18
11
|
|
19
|
-
|
12
|
+
class_option :libraries, type: :array, default: [], desc: "Choose libraries (#{RailsIcons.libraries.keys.join("/")})"
|
20
13
|
|
21
|
-
|
22
|
-
end
|
14
|
+
def sync_icons = libraries.each { Sync::Engine.new(_1).sync }
|
23
15
|
|
24
16
|
private
|
25
17
|
|
26
|
-
def
|
27
|
-
|
28
|
-
end
|
29
|
-
|
30
|
-
def sync(name)
|
31
|
-
library = RailsIcons::Libraries.all.fetch(name.to_sym)
|
32
|
-
library_path = File.join(temp_directory, library[:name])
|
33
|
-
|
34
|
-
Sync::Engine.new(temp_directory, library).sync
|
35
|
-
|
36
|
-
raise_library_not_found(name) unless Dir.exist?(library_path)
|
37
|
-
copy_library(library[:name], library_path)
|
38
|
-
end
|
39
|
-
|
40
|
-
def temp_directory
|
41
|
-
Rails.root.join("tmp/icons")
|
42
|
-
end
|
43
|
-
|
44
|
-
def copy_library(library, source)
|
45
|
-
destination = File.join(options[:destination], library)
|
46
|
-
|
47
|
-
FileUtils.mkdir_p(destination)
|
48
|
-
|
49
|
-
FileUtils.cp_r(Dir.glob("#{source}/*"), destination)
|
50
|
-
|
51
|
-
say "[Rails Icons] Synced '#{library}' library successfully #{%w[😃 🎉 ✨].sample}", :green
|
18
|
+
def libraries
|
19
|
+
options[:libraries].map(&:downcase).presence || synced_libraries
|
52
20
|
end
|
53
21
|
|
54
|
-
def
|
55
|
-
|
56
|
-
|
22
|
+
def synced_libraries
|
23
|
+
RailsIcons.libraries.keys.map(&:to_s).select do |library|
|
24
|
+
Dir.exist?(File.join(RailsIcons.configuration.destination_path, library.to_s))
|
25
|
+
end
|
57
26
|
end
|
58
27
|
end
|
59
28
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RailsIcons
|
4
|
+
class BaseGenerator < Rails::Generators::Base
|
5
|
+
def initialize(*arguments)
|
6
|
+
super(*arguments)
|
7
|
+
|
8
|
+
validate!
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def validate!
|
14
|
+
raise RailsIcons::LibraryNotFound.new("") if options.libraries.empty?
|
15
|
+
raise RailsIcons::LibraryNotFound.new(invalid_libraries.join(", ")) if invalid_libraries.any?
|
16
|
+
end
|
17
|
+
|
18
|
+
def invalid_libraries = options.libraries.map(&:to_sym).map(&:downcase).reject { RailsIcons.libraries.key?(_1) }
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RailsIcons
|
4
|
+
class Configuration
|
5
|
+
module Boxicons
|
6
|
+
extend self
|
7
|
+
|
8
|
+
def config
|
9
|
+
ActiveSupport::OrderedOptions.new.tap do |options|
|
10
|
+
options.default_variant = :regular
|
11
|
+
options.exclude_variants = []
|
12
|
+
|
13
|
+
setup_regular_config(options)
|
14
|
+
setup_solid_config(options)
|
15
|
+
setup_logos_config(options)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def initializer_config
|
20
|
+
<<~RB.indent(2)
|
21
|
+
# Override Boxicons defaults
|
22
|
+
# config.libraries.boxicons.exclude_variants = [] # Exclude specific variants
|
23
|
+
|
24
|
+
# config.libraries.boxicons.solid.css = "size-6"
|
25
|
+
# config.libraries.boxicons.solid.data = {}
|
26
|
+
|
27
|
+
# config.libraries.boxicons.regular.css = "size-6"
|
28
|
+
# config.libraries.boxicons.regular.data = {}
|
29
|
+
|
30
|
+
# config.libraries.boxicons.logos.css = "size-6"
|
31
|
+
# config.libraries.boxicons.logos.data = {}
|
32
|
+
RB
|
33
|
+
end
|
34
|
+
|
35
|
+
def source
|
36
|
+
{
|
37
|
+
url: "https://github.com/atisawd/boxicons.git",
|
38
|
+
variants: {
|
39
|
+
logos: "svg/logos",
|
40
|
+
regular: "svg/regular",
|
41
|
+
solid: "svg/solid"
|
42
|
+
}
|
43
|
+
}
|
44
|
+
end
|
45
|
+
|
46
|
+
def transformations
|
47
|
+
{
|
48
|
+
filenames: {
|
49
|
+
delete_prefix: ["bxl-", "bx-", "bxs-"]
|
50
|
+
}
|
51
|
+
}
|
52
|
+
end
|
53
|
+
|
54
|
+
def setup_regular_config(options)
|
55
|
+
options.regular = ActiveSupport::OrderedOptions.new
|
56
|
+
options.regular.default = default_options
|
57
|
+
end
|
58
|
+
|
59
|
+
def setup_solid_config(options)
|
60
|
+
options.solid = ActiveSupport::OrderedOptions.new
|
61
|
+
options.solid.default = default_options
|
62
|
+
end
|
63
|
+
|
64
|
+
def setup_logos_config(options)
|
65
|
+
options.logos = ActiveSupport::OrderedOptions.new
|
66
|
+
options.logos.default = default_options
|
67
|
+
end
|
68
|
+
|
69
|
+
def default_options
|
70
|
+
ActiveSupport::OrderedOptions.new.tap do |options|
|
71
|
+
options.css = "size-6"
|
72
|
+
options.data = {}
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -2,15 +2,38 @@
|
|
2
2
|
|
3
3
|
module RailsIcons
|
4
4
|
class Configuration
|
5
|
-
|
5
|
+
module Feather
|
6
|
+
extend self
|
7
|
+
|
6
8
|
def config
|
7
9
|
ActiveSupport::OrderedOptions.new.tap do |options|
|
8
10
|
options.default_variant = nil
|
11
|
+
options.exclude_variants = []
|
9
12
|
|
10
13
|
options.default = default_options
|
11
14
|
end
|
12
15
|
end
|
13
16
|
|
17
|
+
def initializer_config
|
18
|
+
<<~RB.indent(2)
|
19
|
+
# Override Feather defaults
|
20
|
+
# config.libraries.feather.exclude_variants = [] # Feather has no variants, this is provided for backwards compatibility
|
21
|
+
|
22
|
+
# config.libraries.feather.default.css = "size-6"
|
23
|
+
# config.libraries.feather.default.stroke_width = "2"
|
24
|
+
# config.libraries.feather.default.data = {}
|
25
|
+
RB
|
26
|
+
end
|
27
|
+
|
28
|
+
def source
|
29
|
+
{
|
30
|
+
url: "https://github.com/feathericons/feather.git",
|
31
|
+
variants: {
|
32
|
+
".": "icons" # Feather has no variants, store in the top directory
|
33
|
+
}
|
34
|
+
}
|
35
|
+
end
|
36
|
+
|
14
37
|
private
|
15
38
|
|
16
39
|
def default_options
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RailsIcons
|
4
|
+
class Configuration
|
5
|
+
module Flags
|
6
|
+
extend self
|
7
|
+
|
8
|
+
def config
|
9
|
+
ActiveSupport::OrderedOptions.new.tap do |options|
|
10
|
+
options.default_variant = "landscape"
|
11
|
+
options.exclude_variants = []
|
12
|
+
|
13
|
+
setup_square_config(options)
|
14
|
+
setup_landscape_config(options)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def initializer_config
|
19
|
+
<<~RB.indent(2)
|
20
|
+
# Override Flags defaults
|
21
|
+
# config.libraries.flags.exclude_variants = [:square, :landscape]
|
22
|
+
|
23
|
+
# config.libraries.flags.square.default.css = "size-6"
|
24
|
+
# config.libraries.flags.square.default.data = {}
|
25
|
+
|
26
|
+
# config.libraries.flags.landscape.default.css = "size-6"
|
27
|
+
# config.libraries.flags.landscape.default.data = {}
|
28
|
+
RB
|
29
|
+
end
|
30
|
+
|
31
|
+
def source
|
32
|
+
{
|
33
|
+
url: "https://github.com/lipis/flag-icons.git",
|
34
|
+
variants: {
|
35
|
+
square: "flags/1x1",
|
36
|
+
landscape: "flags/4x3"
|
37
|
+
}
|
38
|
+
}
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def setup_square_config(options)
|
44
|
+
options.square = ActiveSupport::OrderedOptions.new
|
45
|
+
options.square.default = default_square_options
|
46
|
+
end
|
47
|
+
|
48
|
+
def setup_landscape_config(options)
|
49
|
+
options.landscape = ActiveSupport::OrderedOptions.new
|
50
|
+
options.landscape.default = default_landscape_options
|
51
|
+
end
|
52
|
+
|
53
|
+
def default_square_options
|
54
|
+
ActiveSupport::OrderedOptions.new.tap do |options|
|
55
|
+
options.css = "size-6"
|
56
|
+
options.data = {}
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def default_landscape_options
|
61
|
+
ActiveSupport::OrderedOptions.new.tap do |options|
|
62
|
+
options.css = "size-6"
|
63
|
+
options.data = {}
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -2,10 +2,13 @@
|
|
2
2
|
|
3
3
|
module RailsIcons
|
4
4
|
class Configuration
|
5
|
-
|
5
|
+
module Heroicons
|
6
|
+
extend self
|
7
|
+
|
6
8
|
def config
|
7
9
|
ActiveSupport::OrderedOptions.new.tap do |options|
|
8
10
|
options.default_variant = :outline
|
11
|
+
options.exclude_variants = []
|
9
12
|
|
10
13
|
setup_outline_config(options)
|
11
14
|
setup_solid_config(options)
|
@@ -14,6 +17,38 @@ module RailsIcons
|
|
14
17
|
end
|
15
18
|
end
|
16
19
|
|
20
|
+
def initializer_config
|
21
|
+
<<~RB.indent(2)
|
22
|
+
# Override Heroicon defaults
|
23
|
+
# config.libraries.heroicons.exclude_variants = [:mini, :micro] # Exclude specific variants
|
24
|
+
|
25
|
+
# config.libraries.heroicons.outline.default.css = "size-6"
|
26
|
+
# config.libraries.heroicons.outline.default.stroke_width = "1.5"
|
27
|
+
# config.libraries.heroicons.outline.default.data = {}
|
28
|
+
|
29
|
+
# config.libraries.heroicons.solid.default.css = "size-6"
|
30
|
+
# config.libraries.heroicons.solid.default.data = {}
|
31
|
+
|
32
|
+
# config.libraries.heroicons.mini.default.css = "size-5"
|
33
|
+
# config.libraries.heroicons.mini.default.data = {}
|
34
|
+
|
35
|
+
# config.libraries.heroicons.micro.default.css = "size-4"
|
36
|
+
# config.libraries.heroicons.micro.default.data = {}
|
37
|
+
RB
|
38
|
+
end
|
39
|
+
|
40
|
+
def source
|
41
|
+
{
|
42
|
+
url: "https://github.com/tailwindlabs/heroicons.git",
|
43
|
+
variants: {
|
44
|
+
outline: "optimized/24/outline",
|
45
|
+
solid: "optimized/24/solid",
|
46
|
+
mini: "optimized/20/solid",
|
47
|
+
micro: "optimized/16/solid"
|
48
|
+
}
|
49
|
+
}
|
50
|
+
end
|
51
|
+
|
17
52
|
private
|
18
53
|
|
19
54
|
def setup_outline_config(options)
|
@@ -36,16 +71,16 @@ module RailsIcons
|
|
36
71
|
options.micro.default = default_micro_options
|
37
72
|
end
|
38
73
|
|
39
|
-
def
|
74
|
+
def default_outline_options
|
40
75
|
ActiveSupport::OrderedOptions.new.tap do |options|
|
76
|
+
options.stroke_width = 1.5
|
41
77
|
options.css = "size-6"
|
42
78
|
options.data = {}
|
43
79
|
end
|
44
80
|
end
|
45
81
|
|
46
|
-
def
|
82
|
+
def default_solid_options
|
47
83
|
ActiveSupport::OrderedOptions.new.tap do |options|
|
48
|
-
options.stroke_width = 1.5
|
49
84
|
options.css = "size-6"
|
50
85
|
options.data = {}
|
51
86
|
end
|