Class: PhlexKit::Spinner
- Inherits:
-
BaseComponent
- Object
- Phlex::HTML
- BaseComponent
- PhlexKit::Spinner
- Defined in:
- app/components/phlex_kit/spinner/spinner.rb
Overview
Loading spinner, ported from shadcn/ui's Spinner (a spinning loader icon;
not in ruby_ui). Sizes via SIZES.fetch. .pk-spinner (spinner.css).
Constant Summary collapse
- SIZES =
{ sm: "sm", md: nil, lg: "lg" }.freeze
Instance Method Summary collapse
-
#initialize(size: :md, **attrs) ⇒ Spinner
constructor
A new instance of Spinner.
- #view_template ⇒ Object
Methods inherited from BaseComponent
Constructor Details
#initialize(size: :md, **attrs) ⇒ Spinner
Returns a new instance of Spinner.
7 8 9 10 |
# File 'app/components/phlex_kit/spinner/spinner.rb', line 7 def initialize(size: :md, **attrs) @size = size.to_sym @attrs = attrs end |
Instance Method Details
#view_template ⇒ Object
12 13 14 15 16 17 18 19 20 |
# File 'app/components/phlex_kit/spinner/spinner.rb', line 12 def view_template # A visible loader, not decoration: role=status + label, aria-hidden off. render Icon.new(:loader, size: nil, **mix({ class: [ "pk-spinner", fetch_option(SIZES, @size, :size) ].compact.join(" "), role: "status", aria: { label: "Loading" }, "aria-hidden": false }, @attrs)) end |