Skip to content

SusListGroup

SusListGroup

Selectable list of rows — title / subtitle densify via Items + display keys.

Package

SusKit · Molecules (commercial)

Open in Playground

SusKit · Molecules

Props

NameTypeDefault
SelectedProp<object>nullv-model
ItemTitleProp<string>""v-model
ItemValueProp<string>""v-model
ItemSubtitleProp<string>""v-model
DensityProp<string>"default"v-model
LinesProp<string>"one"v-model
NavProp<bool>falsev-model
DisabledProp<bool>falsev-model
RowChromeProp<bool>falsev-model

Slots

Name
(default)

Events

NameFieldPayload
SelectedOnSelectedobject

Style hooks

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

  • keyboard-focus
  • sus-list-group
  • sus-list-group__item
  • sus-list-group__item--disabled
  • sus-list-group__item--selected
  • sus-list-group__item-append
  • sus-list-group__item-append-text
  • sus-list-group__item-icon
  • sus-list-group__item-subtitle
  • sus-list-group__item-subtitle--ellipsis
  • sus-list-group__item-text
  • sus-list-group__item-title
  • sus-list-group__lines--multi
  • sus-list-group__lines--one
  • sus-list-group--comfortable
  • sus-list-group--dense
  • sus-list-group--disabled
  • sus-list-group--nav
  • sus-list-group--row-chrome

Usage

Items is a List<object> (dictionaries or POCOs). Use ItemTitle / ItemSubtitle / ItemValue for property names.

csharp
var list = new SusListGroup();
list.ItemTitle.Value = "Title";
list.ItemSubtitle.Value = "Subtitle";
list.Lines.Value = "two";
list.Items.Value = new List<object>
{
    new Dictionary<string, object> { ["Title"] = "Squad Alpha", ["Subtitle"] = "12 units" },
    new Dictionary<string, object> { ["Title"] = "Squad Beta", ["Subtitle"] = "8 units" },
    new Dictionary<string, object> { ["Title"] = "Squad Gamma", ["Subtitle"] = "15 units" },
};
list.OnSelected += item => { /* … */ };
xml
<template>
  <sus:SusListGroup ItemTitle="Title"
                    ItemSubtitle="Subtitle"
                    Lines="two"
                    :Selected="Selected.Value"
                    :Nav="Nav.Value"
                    :Disabled="Disabled.Value"
                    @selected="OnSelected" />
</template>

<script>
public Prop<object> Selected = new(null);
public Prop<bool> Nav = new(false);
public Prop<bool> Disabled = new(false);
void OnSelected(object item) { Selected.Value = item; }
// Populate Items in code.
</script>
PropRole
ItemsRows (List<object>)
ItemTitle / ItemValue / ItemSubtitleProperty names on each item
SelectedCurrent selection
Linesone · two · three
Densitydefault · compact · comfortable
NavNavigation styling

Notes

  • Optional item keys: Icon / PrependIcon, AppendIcon, AppendText.
  • Manual mode: skip Items and place custom children in the default slot.