Class: UiComponents::DaisyUi::BaseComponent

Inherits:
ViewComponent::Base
  • Object
show all
Defined in:
app/components/ui_components/daisy_ui/base_component.rb

Direct Known Subclasses

Action::ButtonComponent, Action::Dropdown::AnchorComponent, Action::Dropdown::Card::ItemComponent, Action::Dropdown::CardComponent, Action::Dropdown::Menu::ItemComponent, Action::Dropdown::MenuComponent, Action::DropdownComponent, Action::Modal::AnchorComponent, Action::Modal::Dialog::Box::Action::ItemComponent, Action::Modal::Dialog::Box::ActionComponent, Action::Modal::Dialog::Box::BodyComponent, Action::Modal::Dialog::Box::CloseComponent, Action::Modal::Dialog::Box::TitleComponent, Action::Modal::Dialog::BoxComponent, Action::Modal::DialogComponent, Action::ModalComponent, Action::Swap::OffComponent, Action::Swap::OnComponent, Action::SwapComponent, DataDisplay::Accordion::Item::AnchorComponent, DataDisplay::Accordion::Item::BodyComponent, DataDisplay::Accordion::ItemComponent, DataDisplay::AccordionComponent, DataDisplay::Avatar::Item::BoxComponent, DataDisplay::Avatar::ItemComponent, DataDisplay::AvatarComponent, DataDisplay::BadgeComponent, DataDisplay::Card::Body::ActionComponent, DataDisplay::Card::Body::ContextComponent, DataDisplay::Card::Body::TitleComponent, DataDisplay::Card::BodyComponent, DataDisplay::Card::FigureComponent, DataDisplay::CardComponent, DataDisplay::Carousel::IndicatorComponent, DataDisplay::Carousel::Item::PasserComponent, DataDisplay::Carousel::ItemComponent, DataDisplay::CarouselComponent, DataDisplay::Chat::BubbleComponent, DataDisplay::Chat::FooterComponent, DataDisplay::Chat::HeaderComponent, DataDisplay::ChatComponent, DataDisplay::Countdown::ItemComponent, DataDisplay::CountdownComponent, DataDisplay::Diff::Item1Component, DataDisplay::Diff::Item2Component, DataDisplay::Diff::ResizerComponent, DataDisplay::DiffComponent, DataDisplay::KbdComponent, DataDisplay::List::ItemComponent, DataDisplay::ListComponent, DataDisplay::Stat::Item::ActionComponent, DataDisplay::Stat::Item::DescriptionComponent, DataDisplay::Stat::Item::FigureComponent, DataDisplay::Stat::Item::TitleComponent, DataDisplay::Stat::Item::ValueComponent, DataDisplay::Stat::ItemComponent, DataDisplay::StatComponent, DataDisplay::StatusComponent, DataDisplay::Table::Item::BodyComponent, DataDisplay::Table::Item::FootComponent, DataDisplay::Table::Item::HeadComponent, DataDisplay::Table::Item::Row::DataComponent, DataDisplay::Table::Item::Row::HeaderComponent, DataDisplay::Table::Item::RowComponent, DataDisplay::Table::ItemComponent, DataDisplay::TableComponent, DataDisplay::Timeline::Item::ItemEndComponent, DataDisplay::Timeline::Item::ItemMiddleComponent, DataDisplay::Timeline::Item::ItemStartComponent, DataDisplay::Timeline::Item::LineComponent, DataDisplay::Timeline::ItemComponent, DataDisplay::TimelineComponent

Constant Summary collapse

SIZES =
%w[xs sm lg xl].freeze
KINDS =
%w[soft outline dash active disabled ghost link].freeze
COLORS =
%w[neutral primary secondary accent info success warning error].freeze
ALIGNS =
%w[start center end].freeze
AXES =
%w[top right bottom left].freeze
CSS_CLASSES_DEFAULT =
%w[].freeze
CSS_CLASSES_VARIANTS =
%w[].freeze
CSS_CLASSES =
(CSS_CLASSES_DEFAULT + CSS_CLASSES_VARIANTS).freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(css_class: nil, css_style: nil, options: {}) ⇒ BaseComponent

Returns a new instance of BaseComponent.



20
21
22
23
24
25
26
27
28
29
30
# File 'app/components/ui_components/daisy_ui/base_component.rb', line 20

def initialize(
    css_class: nil,
    css_style: nil,
    options: {}
  )
  @css_class = css_class.to_s
  @css_style = css_style.to_s
  @options = options

  @slot_order = []
end

Instance Attribute Details

#slot_orderObject

Returns the value of attribute slot_order.



18
19
20
# File 'app/components/ui_components/daisy_ui/base_component.rb', line 18

def slot_order
  @slot_order
end

Class Method Details

.tracks_slot_order(slots) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
# File 'app/components/ui_components/daisy_ui/base_component.rb', line 32

def self.tracks_slot_order(slots)
  slots.each do |slot|
    singularized = slot.to_s.singularize
    alias_method "original_with_#{singularized}", "with_#{singularized}"

    define_method "with_#{singularized}" do |*args, **kwargs, &block|
      @slot_order << slot unless @slot_order.include?(slot)

      send("original_with_#{singularized}", *args, **kwargs, &block)
    end
  end
end