Module: QuicksilverUI

Defined in:
lib/quicksilver_ui.rb,
lib/quicksilver_ui/engine.rb,
lib/quicksilver_ui/version.rb,
lib/quicksilver_ui/dependencies.rb,
lib/generators/quicksilver_ui/form/all_generator.rb,
lib/generators/quicksilver_ui/form/form_generator.rb,
lib/generators/quicksilver_ui/component/all_generator.rb,
lib/generators/quicksilver_ui/install/install_generator.rb,
lib/generators/quicksilver_ui/component/component_generator.rb,
lib/generators/quicksilver_ui/affordance/affordance_generator.rb

Defined Under Namespace

Modules: Generators Classes: Engine

Constant Summary collapse

VERSION =
"0.1.0"
DEPENDENCIES =
{
  "accordion" => {
    components: %w[icon],
    stylesheets: [],
    controllers: [],
    mixins: [],
    gems: []
  },
  "alert" => {
    components: %w[icon],
    stylesheets: %w[alert],
    controllers: %w[dismissable],
    mixins: [],
    gems: []
  },
  "avatar" => {
    components: [],
    stylesheets: [],
    controllers: [],
    mixins: [],
    gems: []
  },
  "badge" => {
    components: %w[icon],
    stylesheets: %w[badge],
    controllers: [],
    mixins: [],
    gems: []
  },
  "dropdown" => {
    components: %w[icon],
    stylesheets: [],
    controllers: %w[dropdown],
    mixins: %w[use_floating_ui],
    gems: []
  },
  "icon" => {
    components: [],
    stylesheets: [],
    controllers: [],
    mixins: [],
    gems: %w[rails_icons]
  },
  "modal" => {
    components: %w[icon],
    stylesheets: %w[modal],
    controllers: %w[modal],
    mixins: [],
    gems: []
  },
  "toast" => {
    components: %w[icon],
    stylesheets: [],
    controllers: %w[dismissable],
    mixins: [],
    gems: []
  }
}.freeze
FORM_DEPENDENCIES =
{
  "text_field" => {
    form_components: %w[input],
    stylesheets: %w[form],
    gems: []
  },
  "input" => {
    form_components: %w[base_tag],
    stylesheets: %w[form],
    gems: []
  },
  "label" => {
    form_components: %w[base_tag],
    stylesheets: %w[form],
    gems: []
  },
  "error" => {
    form_components: %w[base_tag],
    stylesheets: %w[form],
    gems: []
  },
  "hint" => {
    form_components: %w[base_tag],
    stylesheets: %w[form],
    gems: []
  },
  "group" => {
    form_components: %w[text_field label error hint],
    stylesheets: %w[form],
    gems: []
  },
  "base_tag" => {
    form_components: [],
    stylesheets: %w[form],
    gems: []
  },
  "checkbox" => {
    form_components: %w[base_tag],
    stylesheets: %w[form],
    gems: []
  },
  "date_field" => {
    form_components: %w[input],
    stylesheets: %w[form],
    gems: []
  },
  "email_field" => {
    form_components: %w[input],
    stylesheets: %w[form],
    gems: []
  },
  "file_field" => {
    form_components: %w[input],
    stylesheets: %w[form],
    gems: []
  },
  "password_field" => {
    form_components: %w[input],
    stylesheets: %w[form],
    gems: []
  },
  "phone_field" => {
    form_components: %w[input],
    stylesheets: %w[form],
    gems: []
  },
  "radio_button" => {
    form_components: %w[base_tag],
    stylesheets: %w[form],
    gems: []
  },
  "search_field" => {
    form_components: %w[input],
    stylesheets: %w[form],
    gems: []
  },
  "select" => {
    form_components: %w[base_tag],
    stylesheets: %w[form],
    gems: []
  },
  "textarea" => {
    form_components: %w[input],
    stylesheets: %w[form],
    controllers: %w[autogrow],
    gems: []
  },
  "toggle" => {
    form_components: %w[checkbox],
    stylesheets: %w[form],
    components: %w[icon],
    gems: []
  }
}.freeze

Class Method Summary collapse

Class Method Details

.form_pathObject



17
18
19
# File 'lib/quicksilver_ui.rb', line 17

def form_path
  root.join("app", "views", "form")
end

.helpers_pathObject



21
22
23
# File 'lib/quicksilver_ui.rb', line 21

def helpers_path
  root.join("app", "helpers")
end

.javascript_controllers_pathObject



29
30
31
# File 'lib/quicksilver_ui.rb', line 29

def javascript_controllers_path
  root.join("app", "javascript", "controllers")
end

.javascript_mixins_pathObject



33
34
35
# File 'lib/quicksilver_ui.rb', line 33

def javascript_mixins_path
  root.join("app", "javascript", "mixins")
end

.resolve_dependencies(component_name) ⇒ Object



158
159
160
161
162
# File 'lib/quicksilver_ui/dependencies.rb', line 158

def self.resolve_dependencies(component_name)
  resolved = Set.new
  resolve(component_name, resolved)
  resolved.to_a
end

.resolve_form_dependencies(form_component_name) ⇒ Object



164
165
166
167
168
# File 'lib/quicksilver_ui/dependencies.rb', line 164

def self.resolve_form_dependencies(form_component_name)
  resolved = Set.new
  resolve_form(form_component_name, resolved)
  resolved.to_a
end

.rootObject



9
10
11
# File 'lib/quicksilver_ui.rb', line 9

def root
  Pathname.new(File.expand_path("..", __dir__))
end

.stylesheets_pathObject



25
26
27
# File 'lib/quicksilver_ui.rb', line 25

def stylesheets_path
  root.join("app", "assets", "tailwind")
end

.ui_pathObject



13
14
15
# File 'lib/quicksilver_ui.rb', line 13

def ui_path
  root.join("app", "views", "ui")
end