SusContextMenu

Right-click (or programmatic) popup menu anchored to an activator.
Package
SusKit · Molecules (commercial)
SusKit · Molecules
Props
| Name | Type | Default | |
|---|---|---|---|
Model | Prop<bool> | false | v-model |
Disabled | Prop<bool> | false | v-model |
Slots
| Name |
|---|
activator |
(default) |
Events
| Name | Field | Payload |
|---|---|---|
Select | OnSelect | string |
Open | OnOpen | — |
Close | OnClose | — |
Style hooks
USS class contract — override appearance without touching C#. States toggle via these classes:
sus-context-menusus-context-menu__activatorsus-context-menu__dividersus-context-menu__iconsus-context-menu__itemsus-context-menu__item--disabledsus-context-menu__labelsus-context-menu__listsus-context-menu__popupsus-context-menu--opensus-slot
Usage
Items are set in code (List<ContextMenuItem>). Wire content into the activator slot; RMB opens the popup.
csharp
var menu = new SusContextMenu();
menu.Items.Value = new List<SusContextMenu.ContextMenuItem>
{
new() { Label = "Inspect", Value = "inspect", Icon = "search" },
new() { Label = "Trade", Value = "trade", Icon = "shop" },
new() { Divider = true },
new() { Label = "Report", Value = "report", Disabled = true },
};
menu.OnSelect += value => { /* … */ };
menu.Slot("activator")?.Add(new Label("Right-click me"));
menu.Open(); // or menu.Model.Value = true;xml
<template>
<sus:SusContextMenu :Model="Open.Value"
@select="OnSelect"
@open="OnOpen"
@close="OnClose">
<template #activator>
<ui:Label text="Right-click me" />
</template>
</sus:SusContextMenu>
</template>
<script>
public Prop<bool> Open = new(false);
void OnSelect(string value) { /* … */ }
void OnOpen() { }
void OnClose() { }
// Populate Items in code.
</script>| Prop | Role |
|---|---|
Items | List<ContextMenuItem> — rows / dividers |
Model | Open (true) / closed |
Disabled | Block open |
Notes
- Item fields:
Label,Value,Icon,Disabled,Divider. Open()/Close()mirrorModel.