Select
Dropdown trigger styled to match the orders-table filters (Date Range, Status, Carrier,
Port) and Settings' organization-defaults fields. Renders a native <select> for full
keyboard/a11y behavior, with a custom chevron and optional leading icon layered on top.
Selector: tip-select
API
| Name | Type | Default | Description |
|---|---|---|---|
value (input) |
string |
'' |
Controlled selected value. |
options (input) |
SelectOption[] = string | {value, label} |
[] |
Plain strings (value === label) or explicit {value, label} pairs. |
placeholder (input) |
string |
'Select' |
Rendered as a disabled-looking first <option value=""> when no filter value chosen. |
icon (input) |
string | undefined |
undefined |
Leading tip-icon name (e.g. "calendar"). |
size (input) |
'sm' | 'md' |
'md' |
Height/font-size preset. |
disabled (input) |
boolean |
false |
Disables the native select. |
loading (input) |
boolean |
false |
Renders a tip-skeleton in place of the field. |
valueChange (output) |
string |
— | Emitted on native change. |
Usage
<tip-select
placeholder="Status" [options]="statusOptions"
[value]="orders.status()" (valueChange)="orders.status.set($event)"
/>
Notes
- Options may be a mixed array of plain strings and
{value, label}objects —optionValue()/optionLabel()normalize either shape. - The placeholder option only shows when
!value(), matching a "no filter applied" toolbar state; it is not itself selectable as a persistent "none" choice once a real option is picked. appearance: noneon the native<select>plus a decorative▾chevron span — the native dropdown/keyboard behavior (arrow keys, typeahead) is preserved.