Radio
A single circular radio control, mirroring tip-checkbox but single-select. Unlike a
native radio group, tip-radio has no built-in grouping — the consumer owns the
selected-value signal.
Selector: tip-radio
API
| Name | Type | Default | Description |
|---|---|---|---|
checked (input) |
boolean |
false |
Whether this option is the selected one. |
disabled (input) |
boolean |
false |
Disables click/keyboard activation. |
value (input) |
string | undefined |
undefined |
Optional value identifier (not read internally — for the caller's own bookkeeping/tracking). |
select (output) |
void |
— | Emitted when this radio is activated (click, Space, or Enter) and it wasn't already checked. |
| default slot | content | — | Option label, rendered inside the clickable <label>. |
Usage
@for (option of options; track option) {
<tip-radio [checked]="value() === option" (select)="value.set(option)">{{ option }}</tip-radio>
}
Notes
- The consumer renders one
tip-radioper option and wires[checked]+(select)to a shared signal — there is notip-radio-groupwrapper component. role="radio"witharia-checked;selectonly fires when the item transitions from unchecked → checked (clicking an already-checked radio is a no-op), matching native radio semantics.- Focus ring uses
--ring-focuson the whole label, with--radius-smcorners.