(this page was created automatically. In case of formatting issues, please visit the official Wiki Page)
Single Select
Overview
- The Single Select component is a dropdown form control.
- It allows users to select a single option from a list.
- Options can come from a static list or a dynamic API endpoint.
- It is useful for forms where one choice must be made, such as categories, statuses, or roles.

Specs
Tokens
| Token |
Description |
| placeholderTranslations |
Placeholder text with localization |
| initValue |
Initial selected value on first render |
| disabled |
Disables user interaction |
| showClearIcon |
Shows icon to clear selection |
| hidden |
Keeps in structure but hides visually |
| saveInLocalStorage |
Persists selection in local storage |
| defaultValue |
Value used on form reset |
| readonly |
Shows value but blocks changes |
| dataField |
Field name used on submit |
| useStaticData |
Toggle static vs. dynamic options |
| staticData |
Predefined options list when static |
| dataSourcePath |
Path to options in API response |
| dataSourceId |
API endpoint ID for options |
| getEntityCollectionHttpRequestParametersMap |
HTTP params map for fetch requests |
| modelValue |
Field holding option value |
| modelDisplayValue |
Field holding option label |
| emitObject |
Emit full object instead of value |
| controlsRequestType |
Placement of value in request |
| pageSize |
Page size for options pagination |
| loadAll |
Auto-fetch all pages of options |
| validation |
Validation rules container |
| required |
Enforces a selection is made |
| authorizationDisable |
Policy that disables component |
| events |
Configurable event handlers |
| ON_VALUE_CHANGE (Events) |
Fires when selection changes |
| ON_INIT_BASED_ON_USER_VIEW (Events) |
Fires on init in user view mode |
| ON_INIT (Events) |
Fires when component initializes |
| ON_DESTROY (Events) |
Fires when component is removed |
Structure
(Configured in Visual Properties)
- saveInLocalStorage - Determines whether the component's selected value is preserved in local storage between sessions.
Load Data
(Configured in Visual Properties)
- initValue - Defines an initial value that will be selected when the component is first rendered.
- defaultValue - Sets the value that will be used when the form is reset.
(Configured in Non-Visual Properties)
- useStaticData - Determines whether the dropdown options come from a static list or a dynamic data source.
- staticData - Specifies the predefined list of options when useStaticData is true.
- dataSourcePath - Specifies the path in the response data where the list of options can be found.

(Configured in Datasource Properties)
- dataSourceId - Specifies the API endpoint ID for retrieving dropdown options when useStaticData is false.
- getEntityCollectionHttpRequestParametersMap - Configures HTTP parameters for data fetching requests.
- loadAll - Determines whether all options should be loaded at once regardless of pagination settings.
- pageSize - Sets the number of options to load per page when pagination is enabled.
Submit Data
(Configured in Non-Visual Properties)
- dataField - Defines the field name that will be used when submitting form data.
- controlsRequestType - Specifies how the field data is sent in HTTP requests: 'BODY', 'HEADER', or 'PATH'.
- emitObject - Determines whether the entire object or just the value is submitted when an option is selected.
(Configured in Datasource Properties)
- modelValue - Identifies which field in the API response contains the value to be submitted when an option is selected.
- modelDisplayValue - Identifies which field in the API response contains the text to display for each option.
Styling
(Configured in Visual Properties)
- placeholderTranslations - Sets the placeholder text displayed when no option is selected, with support for multiple languages.
- showClearIcon - Determines whether to display an icon that allows users to clear the current selection.
Actions & Variants
Actions
(Configured in Event Actions)
- events - Configures the events that the component can trigger and respond to.
- ON_VALUE_CHANGE - Triggered when the user selects a different option.
- ON_INIT_BASED_ON_USER_VIEW - Triggered specifically when the component initializes in user view mode rather than edit mode.
- ON_INIT - Triggered when the dropdown component is initialized.
- ON_DESTROY - Triggered when the component is removed from the DOM.
Variants
(Configured in Visual Properties)
- hidden - Controls whether the component is visible in the form.
- disabled - Controls whether the dropdown can be interacted with by users.
- readonly - Controls whether the selection can be changed by users.

Validation
(Configured in Validation Properties)
- validation - Configures validation rules for the single select dropdown.
- required - When set to true, an option must be selected before the form can be submitted.
Authorization
(Configured in Authorization Properties)
- authorizationDisable - Specifies a policy set that determines when the component should be disabled based on user permissions.
Links
- Figma: https://www.figma.com/design/yck1tcUXgdQ5aYX6iUAwrO/GE---Astronaut-Design-System?node-id=11528-200611&t=ftfrOGkPzlG2GaTo-1
- Live sytle guide: https://e1-dev.k8s.myapp.de/live-style-guide/id3/3-dropdown/single-dropdown
Guidelines
Usage
- Use when exactly one value must be selected; enforce completion with
required: true.
- Provide a meaningful, localized prompt by setting
placeholderTranslations (e.g., “Select status”).
- Establish predictable state: set
initValue for first render and defaultValue for form resets.
- Persist a user’s last choice across sessions with
saveInLocalStorage when appropriate.
States & Feedback
- Prevent interaction when unavailable with
disabled.
- Show a fixed, visible value that cannot be changed using
readonly.
- Only show a clear action when an empty state is valid using
showClearIcon.
Data-Driven / Conditional Behavior
- Control loading strategy for large datasets with
pageSize; fetch all at once only when appropriate using loadAll.
- Decide emitted payload shape with
emitObject (scalar value vs. full option object).
Visibility & Authorization
- Keep the control visible but non-interactive per policy using
authorizationDisable.
- Remove the control’s visual footprint (while retaining structure) with
hidden.
Content & Localization
- Localize placeholder text via
placeholderTranslations; keep phrasing short and action-oriented.
- Ensure option text is human-readable by mapping
modelDisplayValue correctly.
Dos & Don’ts
| Do |
Don’t |
Article setting(s) |
| Localize a concise prompt like “Select status”. |
Leave a generic or English-only placeholder. |
placeholderTranslations |
| Preselect a safe default on first render. |
Start with an undefined state that confuses submit rules. |
initValue |
| Restore the expected value on form reset. |
Hack resets outside the component. |
defaultValue |
| Disable while options are loading or not allowed. |
Let users open an empty or nonfunctional dropdown. |
disabled |
| Use read-only to show a fixed, non-editable value. |
Fake read-only by disabling when the value must remain visible. |
readonly |
| Show a clear icon only if clearing is valid. |
Offer “clear” on fields that must never be empty. |
showClearIcon, required |
| Use static data for small, stable lists. |
Call an API for options that never change. |
useStaticData, staticData |
| Map value/label fields to your API correctly. |
Display IDs to users or submit labels instead of IDs. |
modelValue, modelDisplayValue, dataSourcePath |
| Page large lists for responsiveness. |
Fetch every option by default when lists are huge. |
pageSize, loadAll: false |
| Emit the full object when downstream logic needs it. |
Parse labels later to recover metadata. |
emitObject |
| Persist last selection only where it’s helpful. |
Persist sensitive/temporary selections unnecessarily. |
saveInLocalStorage |
| Wire reactions to selection changes. |
Poll externally for selection state. |
events.ON_VALUE_CHANGE |
Accessibility
- Announce meaningful guidance by localizing the placeholder with
placeholderTranslations.
- Communicate availability accurately: use
disabled when interaction isn’t allowed; use readonly when the value must remain visible but fixed.
- Prevent accidental blank submissions by configuring
validation with required where a choice is mandatory.
- Expose an explicit clear affordance only when an empty state is valid using
showClearIcon.
- Respect permission states by disabling the control via
authorizationDisable instead of hiding essential information.
- Display human-readable text by mapping
modelDisplayValue to the correct label field.
- Provide predictable behavior for assistive tech by defining
initValue and defaultValue.
- Reduce cognitive load in long lists by paginating with
pageSize and reserving loadAll for short lists.