Spaces:
Running
Running
| @use '../../styles/mixins' as *; | |
| @use '../../styles/variables' as *; | |
| .wrap { | |
| position: relative; | |
| display: inline-flex; | |
| align-items: center; | |
| } | |
| .wrapFullWidth { | |
| width: 100%; | |
| } | |
| .trigger { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 8px; | |
| width: 100%; | |
| height: 40px; | |
| padding: 0 12px; | |
| border: 1px solid var(--border-color); | |
| border-radius: $radius-md; | |
| background-color: var(--bg-primary); | |
| box-shadow: var(--shadow); | |
| color: var(--text-primary); | |
| font-size: 13px; | |
| font-weight: 500; | |
| cursor: pointer; | |
| appearance: none; | |
| text-align: left; | |
| box-sizing: border-box; | |
| &:hover { | |
| border-color: var(--border-hover); | |
| } | |
| &:focus { | |
| outline: none; | |
| box-shadow: var(--shadow), 0 0 0 3px rgba($primary-color, 0.18); | |
| } | |
| &[aria-expanded='true'] { | |
| border-color: var(--primary-color); | |
| box-shadow: var(--shadow), 0 0 0 3px rgba($primary-color, 0.18); | |
| } | |
| } | |
| .triggerText { | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| .placeholder { | |
| color: var(--text-tertiary); | |
| } | |
| .triggerIcon { | |
| display: inline-flex; | |
| color: var(--text-secondary); | |
| flex-shrink: 0; | |
| transition: transform 0.2s ease; | |
| [aria-expanded='true'] > & { | |
| transform: rotate(180deg); | |
| } | |
| } | |
| .dropdown { | |
| position: fixed; | |
| background: var(--bg-primary); | |
| border: 1px solid var(--border-color); | |
| border-radius: $radius-lg; | |
| padding: 6px; | |
| box-shadow: var(--shadow-lg); | |
| display: flex; | |
| flex-direction: column; | |
| gap: 4px; | |
| max-height: 240px; | |
| overflow-y: auto; | |
| overscroll-behavior: contain; | |
| scrollbar-gutter: stable; | |
| } | |
| .option { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 8px; | |
| padding: 8px 12px; | |
| border-radius: $radius-md; | |
| border: 1px solid transparent; | |
| background: transparent; | |
| color: var(--text-primary); | |
| cursor: pointer; | |
| text-align: left; | |
| font-size: 13px; | |
| font-weight: 500; | |
| transition: background-color 0.15s ease, border-color 0.15s ease; | |
| flex-shrink: 0; | |
| &:hover { | |
| background: var(--bg-secondary); | |
| } | |
| } | |
| .optionLabel { | |
| min-width: 0; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| .optionSuffix { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 16px; | |
| height: 16px; | |
| border-radius: 999px; | |
| background: rgba($success-color, 0.12); | |
| color: var(--success-color); | |
| flex: 0 0 auto; | |
| } | |
| .optionActive { | |
| border-color: rgba($primary-color, 0.5); | |
| background: rgba($primary-color, 0.1); | |
| font-weight: 600; | |
| } | |
| .optionHighlighted { | |
| background: var(--bg-secondary); | |
| } | |