Class: Practical::Views::IconSet
- Inherits:
-
Object
- Object
- Practical::Views::IconSet
- Defined in:
- app/lib/practical/views/icon_set.rb
Constant Summary collapse
- IconDefinition =
Data.define(:method_name, :icon_name, :preset)
- SpritesheetIconDefinition =
Data.define(:method_name, :icon_name, :library)
- Preset =
Data.define(:family, :variant)
- PRESETS =
{ brand: Preset.new(family: :brands, variant: nil), duotone: Preset.new(family: :duotone, variant: :solid), regular: Preset.new(family: :classic, variant: :regular), solid: Preset.new(family: :solid, variant: nil) }.freeze
Class Method Summary collapse
- .checkbox_indeterminate_icon ⇒ Object
- .define_icons(icon_definitions:) ⇒ Object
- .define_spritesheet_icons(spritesheet_icon_definitions:) ⇒ Object
- .emergency_passkey_registration_icon ⇒ Object
- .icon(**options) ⇒ Object
- .presets ⇒ Object
- .profile_icon ⇒ Object
- .signin_icon ⇒ Object
- .signout_icon ⇒ Object
- .spritesheet_icon(library:, **options) ⇒ Object
Class Method Details
.checkbox_indeterminate_icon ⇒ Object
141 142 143 |
# File 'app/lib/practical/views/icon_set.rb', line 141 def self.checkbox_indeterminate_icon solid_icon(name: :minus, options: {class: "indeterminate-icon"}) end |
.define_icons(icon_definitions:) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'app/lib/practical/views/icon_set.rb', line 38 def self.define_icons(icon_definitions:) icon_definitions.each do |icon_definition| define_singleton_method(icon_definition.method_name) do preset = presets.fetch(icon_definition.preset.to_sym) return icon( family: preset.family, variant: preset.variant, name: icon_definition.icon_name ) end end end |
.define_spritesheet_icons(spritesheet_icon_definitions:) ⇒ Object
51 52 53 54 55 56 57 58 59 60 |
# File 'app/lib/practical/views/icon_set.rb', line 51 def self.define_spritesheet_icons(spritesheet_icon_definitions:) spritesheet_icon_definitions.each do |icon_definition| define_singleton_method(icon_definition.method_name) do return spritesheet_icon( library: icon_definition.library, name: icon_definition.icon_name ) end end end |
.emergency_passkey_registration_icon ⇒ Object
145 146 147 |
# File 'app/lib/practical/views/icon_set.rb', line 145 def self.emergency_passkey_registration_icon duotone_icon(name: :"light-emergency-on", options: {style: "--secondary-color: var(--wa-color-danger-fill-loud); --secondary-opacity: 0.7;"}) end |
.icon(**options) ⇒ Object
20 21 22 |
# File 'app/lib/practical/views/icon_set.rb', line 20 def self.icon(**) Practical::Views::IconComponent.new(**) end |
.presets ⇒ Object
16 17 18 |
# File 'app/lib/practical/views/icon_set.rb', line 16 def self.presets PRESETS end |
.profile_icon ⇒ Object
139 |
# File 'app/lib/practical/views/icon_set.rb', line 139 def self.profile_icon = badge_icon |
.signin_icon ⇒ Object
149 150 151 |
# File 'app/lib/practical/views/icon_set.rb', line 149 def self.signin_icon duotone_icon(name: :"person-to-portal", options: {style: "--secondary-color: var(--wa-color-brand-fill-normal); --secondary-opacity: 0.9;"}) end |
.signout_icon ⇒ Object
153 154 155 |
# File 'app/lib/practical/views/icon_set.rb', line 153 def self.signout_icon duotone_icon(name: :"person-from-portal", options: {style: "--secondary-color: var(--wa-color-brand-fill-normal); --secondary-opacity: 0.9;"}) end |
.spritesheet_icon(library:, **options) ⇒ Object
24 25 26 27 28 29 |
# File 'app/lib/practical/views/icon_set.rb', line 24 def self.spritesheet_icon(library:, **) Practical::Views::IconComponent.new(**.with_defaults( family: :default, options: {library: library} )) end |