Link to Figma: https://www.figma.com/design/yck1tcUXgdQ5aYX6iUAwrO/GE---Astronaut-Design-System?node-id=11528-200611&t=ftfrOGkPzlG2GaTo-1

| 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 | Fires when selection changes |
| ON_INIT_BASED_ON_USER_VIEW | Fires on init in user view mode |
| ON_INIT | Fires when component initializes |
| ON_DESTROY | Fires when component is removed |
(Configured in Visual Properties)
(Configured in Visual Properties)
(Configured in Non-Visual Properties)

(Configured in Datasource Properties)
(Configured in Non-Visual Properties)
(Configured in Datasource Properties)
(Configured in Visual Properties)
(Configured in Event Actions)
(Configured in Visual Properties)

(Configured in Validation Properties)
(Configured in Authorization Properties)
required: true.placeholderTranslations (e.g., “Select status”).initValue for first render and defaultValue for form resets.saveInLocalStorage when appropriate.disabled.readonly.showClearIcon.pageSize; fetch all at once only when appropriate using loadAll.emitObject (scalar value vs. full option object).authorizationDisable.hidden.placeholderTranslations; keep phrasing short and action-oriented.modelDisplayValue correctly.| 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 |
| Include only needed fetch params. | Hardcode server-specific params elsewhere. | getEntityCollectionHttpRequestParametersMap |
| 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 |
| Initialize and clean up intentionally. | Leave listeners or timers after unmount. | events.ON_INIT, events.ON_DESTROY |
placeholderTranslations.disabled when interaction isn’t allowed; use readonly when the value must remain visible but fixed.validation with required where a choice is mandatory.showClearIcon.authorizationDisable instead of hiding essential information.modelDisplayValue to the correct label field.initValue and defaultValue.pageSize and reserving loadAll for short lists.