Class: Primer::OpenProject::InputGroup

Inherits:
Component
  • Object
show all
Defined in:
app/components/primer/open_project/input_group.rb

Overview

‘InputGroup` is composed of a text field input with a trailing action

Constant Summary collapse

DEFAULT_INPUT_WIDTH =
:auto
INPUT_WIDTH_MAPPINGS =
{
  DEFAULT_INPUT_WIDTH => "InputGroup-input-width--auto",
  :small => "InputGroup-input-width--small",
  :medium => "InputGroup-input-width--medium",
  :large => "InputGroup-input-width--large",
  :xlarge => "InputGroup-input-width--xlarge",
  :xxlarge => "InputGroup-input-width--xxlarge"
}.freeze
INPUT_WIDTH_OPTIONS =
INPUT_WIDTH_MAPPINGS.keys

Constants inherited from Component

Component::INVALID_ARIA_LABEL_TAGS

Constants included from Status::Dsl

Status::Dsl::STATUSES

Constants included from ViewHelper

ViewHelper::HELPERS

Constants included from TestSelectorHelper

TestSelectorHelper::TEST_SELECTOR_TAG

Constants included from FetchOrFallbackHelper

FetchOrFallbackHelper::InvalidValueError

Constants included from AttributesHelper

AttributesHelper::PLURAL_ARIA_ATTRIBUTES, AttributesHelper::PLURAL_DATA_ATTRIBUTES

Instance Method Summary collapse

Methods inherited from Component

deprecated?, generate_id

Methods included from JoinStyleArgumentsHelper

#join_style_arguments

Methods included from TestSelectorHelper

#add_test_selector

Methods included from FetchOrFallbackHelper

#fetch_or_fallback, #fetch_or_fallback_boolean, #silence_deprecations?

Methods included from ClassNameHelper

#class_names

Methods included from AttributesHelper

#aria, #data, #extract_data, #merge_aria, #merge_data, #merge_prefixed_attribute_hashes

Methods included from ExperimentalSlotHelpers

included

Methods included from ExperimentalRenderHelpers

included

Constructor Details

#initialize(**system_arguments) ⇒ InputGroup

Returns a new instance of InputGroup.

Parameters:

  • system_arguments (Hash)

    <%= link_to_system_arguments_docs %>



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'app/components/primer/open_project/input_group.rb', line 79

def initialize(**system_arguments)
  @system_arguments = system_arguments
  @system_arguments[:tag] = :div

  @system_arguments[:input_width] = fetch_or_fallback(
    Primer::OpenProject::InputGroup::INPUT_WIDTH_OPTIONS,
    @system_arguments[:input_width] || Primer::OpenProject::InputGroup::DEFAULT_INPUT_WIDTH,
    Primer::OpenProject::InputGroup::DEFAULT_INPUT_WIDTH
  )

  system_arguments[:classes] = class_names(
    system_arguments[:classes],
    "InputGroup",
    INPUT_WIDTH_MAPPINGS[@system_arguments[:input_width]]
  )
end

Instance Method Details

#render?Boolean

Returns:

  • (Boolean)


96
97
98
# File 'app/components/primer/open_project/input_group.rb', line 96

def render?
  text_input? && trailing_action?
end