Skip to content

SusRadioGroup

SusRadioGroup

Exclusive radio set — children SusRadio register with the group; Model holds the selected value.

Package

SusKit · Molecules (commercial)

Open in Playground

SusKit · Molecules

Props

NameTypeDefault
ModelProp<string>""v-model
LabelProp<string>""v-model
DisabledProp<bool>falsev-model
ReadonlyProp<bool>falsev-model
MandatoryProp<bool>falsev-model
ErrorProp<string>""v-model

Slots

Name
(default)

Events

NameFieldPayload
ChangeOnChangestring

Style hooks

USS class contract — override appearance without touching C#. States toggle via these classes:

  • sus-radio-group
  • sus-radio-group__details
  • sus-radio-group__label
  • sus-radio-group--disabled
  • sus-radio-group--error
  • sus-radio-group--mandatory
  • sus-radio-group--readonly

Usage

xml
<template>
  <sus:SusRadioGroup Label="Role"
                     :Model="Role.Value"
                     :Disabled="Disabled.Value"
                     :Mandatory="Mandatory.Value"
                     @change="OnRole">
    <sus:SusRadio Label="Admin" Value="admin" Color="primary" />
    <sus:SusRadio Label="User" Value="user" Color="primary" />
    <sus:SusRadio Label="Guest" Value="guest" Color="primary" />
  </sus:SusRadioGroup>
</template>

<script>
public Prop<string> Role = new("user");
public Prop<bool> Disabled = new(false);
public Prop<bool> Mandatory = new(false);
void OnRole(string value) { Role.Value = value; }
</script>
csharp
var group = new SusRadioGroup();
group.Label.Value = "Role";
group.Model.Value = "user";
group.Add(new SusRadio { Value = { Value = "admin" }, Label = { Value = "Admin" } });
group.Add(new SusRadio { Value = { Value = "user" }, Label = { Value = "User" } });
group.Add(new SusRadio { Value = { Value = "guest" }, Label = { Value = "Guest" } });
group.OnChange += value => { /* … */ };
PropRole
ModelSelected radio Value
LabelGroup caption above the radios
MandatoryRequire a selection (Validate)
Disabled / ReadonlyBlock interaction
ErrorMessage under the group

Notes

  • Child radios call Register / Select on the parent — keep them under the group (default slot / Add).
  • Rules (List<Func<string, string>>) runs on change; Validate() / ResetValidation() for forms.
  • Atom docs: SusRadio.