Class: BetterUi::Forms::SelectComponent
- Inherits:
-
BaseComponent
- Object
- ViewComponent::Base
- ApplicationComponent
- BaseComponent
- BetterUi::Forms::SelectComponent
- Defined in:
- app/components/better_ui/forms/select_component.rb
Overview
A custom dropdown select component for choosing a single option from a collection.
This component extends BaseComponent to provide a custom select dropdown with keyboard navigation, type-ahead search, and full ARIA support. It uses a hidden input for form submission and a Stimulus controller for interactivity.
Constant Summary
Constants inherited from BaseComponent
Constants inherited from ApplicationComponent
ApplicationComponent::SHADOWS, ApplicationComponent::VARIANTS, ApplicationComponent::VARIANT_BODY_DIVIDE, ApplicationComponent::VARIANT_DIVIDE, ApplicationComponent::VARIANT_HEADER_BG, ApplicationComponent::VARIANT_HEADER_TEXT, ApplicationComponent::VARIANT_HIGHLIGHTED, ApplicationComponent::VARIANT_HOVERABLE, ApplicationComponent::VARIANT_RING, ApplicationComponent::VARIANT_SORT_ICON, ApplicationComponent::VARIANT_STRIPED
Instance Method Summary collapse
-
#initialize(name:, collection: [], clearable: false, dropdown_classes: nil, value: nil, label: nil, hint: nil, placeholder: nil, size: :md, disabled: false, readonly: false, required: false, errors: nil, shadow: :sm, container_classes: nil, label_classes: nil, input_classes: nil, hint_classes: nil, error_classes: nil, **options) ⇒ SelectComponent
constructor
A new instance of SelectComponent.
Methods inherited from BaseComponent
Constructor Details
#initialize(name:, collection: [], clearable: false, dropdown_classes: nil, value: nil, label: nil, hint: nil, placeholder: nil, size: :md, disabled: false, readonly: false, required: false, errors: nil, shadow: :sm, container_classes: nil, label_classes: nil, input_classes: nil, hint_classes: nil, error_classes: nil, **options) ⇒ SelectComponent
Returns a new instance of SelectComponent.
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'app/components/better_ui/forms/select_component.rb', line 47 def initialize( name:, collection: [], clearable: false, dropdown_classes: nil, value: nil, label: nil, hint: nil, placeholder: nil, size: :md, disabled: false, readonly: false, required: false, errors: nil, shadow: :sm, container_classes: nil, label_classes: nil, input_classes: nil, hint_classes: nil, error_classes: nil, ** ) @collection = collection @clearable = clearable @dropdown_classes = dropdown_classes super( name: name, value: value, label: label, hint: hint, placeholder: placeholder, size: size, disabled: disabled, readonly: readonly, required: required, errors: errors, shadow: shadow, container_classes: container_classes, label_classes: label_classes, input_classes: input_classes, hint_classes: hint_classes, error_classes: error_classes, ** ) end |