.button { height: var(--field-size); padding: 0 var(--field-padding); border: var(--border-style); border-radius: var(--radius-field); background-color: var(--color-bg); outline: none; display: flex; align-items: center; justify-content: space-between; gap: var(--s-1-5); width: 100%; cursor: pointer; text-align: start; &[data-focus-visible], &[aria-expanded="true"] { outline: var(--focus-ring); outline-offset: 1px; } &[data-disabled] { pointer-events: none; cursor: not-allowed; opacity: 0.5; outline: none; } } .icon { min-width: 18px; max-width: 18px; color: var(--color-text-high); } .popover { padding: var(--s-1); /* set by React Aria's Popover at runtime, matching the trigger's width */ width: var(--trigger-width); border: var(--border-style); border-radius: var(--radius-box); background-color: var(--color-bg); outline: none; display: flex; flex-direction: column; /* virtualized lists size from their container, so the popover cannot size from content */ min-width: var(--trigger-width); } .listBox { overflow: auto; flex: 1; } .item { cursor: pointer; outline: none; } .itemFocused { background-color: var(--color-bg-high); color: var(--color-text); } .itemSelected { color: var(--color-text-accent); font-weight: var(--weight-bold); } .searchField { position: relative; display: flex; gap: var(--s-2); border-bottom: 1px solid var(--color-border); border-radius: 0; accent-color: var(--color-accent); color: var(--color-text); outline: none; padding: var(--s-1-5) var(--s-1-5) calc(var(--s-0-5) + var(--s-2)) var(--s-1-5); margin-block-end: var(--s-1-5); } .searchInput { all: unset; font-size: var(--font-xs); font-weight: var(--weight-semi); letter-spacing: 0.5px; flex: 1; min-width: 0; padding-inline-end: calc(18px + var(--s-2)); &::-webkit-search-cancel-button { display: none; } &::placeholder { color: var(--color-text-high); } } .searchClearButton { position: absolute; right: var(--s-2); top: 50%; transform: translateY(-50%); background-color: transparent; border: none; padding: 0; cursor: pointer; } [data-empty] .searchClearButton { visibility: hidden; } .select { width: 100%; position: relative; display: flex; flex-direction: column; gap: var(--s-1-5); }