diff --git a/README.md b/README.md index 26cfd64..e36ffd7 100644 --- a/README.md +++ b/README.md @@ -80,6 +80,7 @@ icon "check", stroke_width: 2 - [Flags](https://github.com/lipis/flag-icons) (540+ icons) - [Heroicons](https://github.com/tailwindlabs/heroicons) (300+ icons) - [SidekickIcons](https://github.com/ndri/sidekickicons) (49 icons, complementing Heroicons) +- [Linear](https://github.com/cjpatoilo/linearicons) (170+ icons) - [Lucide](https://github.com/lucide-icons/lucide) (1500+ icons) - [Phosphor](https://github.com/phosphor-icons/core) (9000+ icons) - [Radix](https://github.com/radix-ui/icons/) (300+ icons) diff --git a/lib/rails_icons/configuration/linear.rb b/lib/rails_icons/configuration/linear.rb new file mode 100644 index 0000000..ce4a220 --- /dev/null +++ b/lib/rails_icons/configuration/linear.rb @@ -0,0 +1,48 @@ +# frozen_string_literal: true + +module RailsIcons + class Configuration + module Linear + extend self + + def config + ActiveSupport::OrderedOptions.new.tap do |options| + options.default_variant = nil + options.exclude_variants = [] + + options.default = default_options + end + end + + def initializer_config + <<~RB.indent(2) + # Override Linear defaults + # config.libraries.linear.exclude_variants = [] + + # config.libraries.linear.default.css = "size-6" + # config.libraries.linear.default.stroke_width = "2" + # config.libraries.linear.default.data = {} + RB + end + + def source + { + url: "https://github.com/cjpatoilo/linearicons.git", + variants: { + ".": "dist/svg" # Linear has no variants, store in the top directory + } + } + end + + private + + def default_options + ActiveSupport::OrderedOptions.new.tap do |options| + options.stroke_width = "2" + options.css = "size-6" + options.data = {} + end + end + end + end +end diff --git a/lib/rails_icons/libraries.rb b/lib/rails_icons/libraries.rb index da6b870..2713df6 100644 --- a/lib/rails_icons/libraries.rb +++ b/lib/rails_icons/libraries.rb @@ -3,10 +3,11 @@ require_relative "configuration/feather" require_relative "configuration/flags" require_relative "configuration/heroicons" -require_relative "configuration/sidekickicons" +require_relative "configuration/linear" require_relative "configuration/lucide" require_relative "configuration/phosphor" require_relative "configuration/radix" +require_relative "configuration/sidekickicons" require_relative "configuration/tabler" require_relative "configuration/weather" @@ -19,11 +20,12 @@ def libraries feather: RailsIcons::Configuration::Feather, flags: RailsIcons::Configuration::Flags, heroicons: RailsIcons::Configuration::Heroicons, - sidekickicons: RailsIcons::Configuration::Sidekickicons, + linear: RailsIcons::Configuration::Linear, lucide: RailsIcons::Configuration::Lucide, phosphor: RailsIcons::Configuration::Phosphor, radix: RailsIcons::Configuration::Radix, - tabler: RailsIcons::Configuration::Tabler, + sidekickicons: RailsIcons::Configuration::Sidekickicons, + tabler: RailsIcons::Configuration::Tabler weather: RailsIcons::Configuration::Weather } end diff --git a/test/dummy/app/assets/svg/icons/linear/alarm.svg b/test/dummy/app/assets/svg/icons/linear/alarm.svg new file mode 100644 index 0000000..94c3105 --- /dev/null +++ b/test/dummy/app/assets/svg/icons/linear/alarm.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/test/icon_test.rb b/test/icon_test.rb index c15efb4..7fbef52 100644 --- a/test/icon_test.rb +++ b/test/icon_test.rb @@ -92,7 +92,13 @@ class IconTest < ActiveSupport::TestCase end end - test "eather" do + test "linear" do + assert_nothing_raised do + icon("alarm", library: "linear") + end + end + + test "weather" do assert_nothing_raised do icon("alien", library: "weather") end @@ -104,7 +110,6 @@ class IconTest < ActiveSupport::TestCase end end - test "it raises RailsIcons::NotFound error" do assert_raises(RailsIcons::NotFound) do icon("non-existing-icon")