module Maglev::Editor::SettingRegistry

def self.default_components

rubocop:disable Metrics/MethodLength
def self.default_components
  {
    text: proc { |definition| instance.text_field_klass(definition) },
    image: Maglev::Editor::Settings::Image::ImageComponent,
    select: Maglev::Editor::Settings::Select::SelectComponent,
    link: Maglev::Editor::Settings::Link::LinkComponent,
    color: Maglev::Editor::Settings::Color::ColorComponent,
    checkbox: Maglev::Editor::Settings::Checkbox::CheckboxComponent,
    collection_item: Maglev::Editor::Settings::CollectionItem::CollectionItemComponent,
    icon: Maglev::Editor::Settings::Icon::IconComponent,
    divider: Maglev::Editor::Settings::Divider::DividerComponent,
    hint: Maglev::Editor::Settings::Hint::HintComponent
  }
end

def self.instance

def self.instance
  @instance ||= Instance.new(components: default_components)
end