CLI previewInstall commands shown on this site are not released yet.

DocsComponentsNavigation

ContextMenu

React example follows below.
ts
import { ContextMenu, type ContextMenuItem } from "@grassroot/ui-react";
const items: ContextMenuItem[] = [
{ label: "View logs", shortcut: "⌘L" },
{ divider: true },
{ label: "Tear down", shortcut: "⌘⌫", danger: true },
];
<ContextMenu items={items} header="ledger-api">
<div>Right-click anywhere here</div>
</ContextMenu>
ts
<script setup lang="ts">
import { ContextMenu } from "@grassroot/ui-vue";
const items: ContextMenuItem[] = [
{ label: "View logs", shortcut: "⌘L" },
{ divider: true },
{ label: "Tear down", shortcut: "⌘⌫", danger: true },
];
</script>
<template>
<ContextMenu
:items="items"
header="ledger-api"
>
<div>Right-click anywhere here</div>
</ContextMenu>
</template>
ts
import { Component } from "@angular/core";
import { GrassrootContextMenu } from "@grassroot/ui-angular";
@Component({
selector: "app-example",
standalone: true,
imports: [GrassrootContextMenu],
template: `
<grassroot-context-menu
[items]="items"
header="ledger-api"
>
<div>Right-click anywhere here</div>
</grassroot-context-menu>
`,
})
export class ExampleComponent {
readonly items: ContextMenuItem[] = [
{ label: "View logs", shortcut: "⌘L" },
{ divider: true },
{ label: "Tear down", shortcut: "⌘⌫", danger: true },
];
}
ts
<script lang="ts">
import { ContextMenu } from "@grassroot/ui-svelte";
const items: ContextMenuItem[] = [
{ label: "View logs", shortcut: "⌘L" },
{ divider: true },
{ label: "Tear down", shortcut: "⌘⌫", danger: true },
];
</script>
<ContextMenu
items={items}
header="ledger-api"
>
<div>Right-click anywhere here</div>
</ContextMenu>
ts
import { ContextMenu } from "@grassroot/ui-solid";
const items: ContextMenuItem[] = [
{ label: "View logs", shortcut: "⌘L" },
{ divider: true },
{ label: "Tear down", shortcut: "⌘⌫", danger: true },
];
export function Example() {
return (
<>
<ContextMenu
items={items}
header="ledger-api"
>
<div>Right-click anywhere here</div>
</ContextMenu>
</>
);
}

Installation

bash
pnpm dlx grassroot add ui/context-menu
bash
npx grassroot@latest add ui/context-menu
bash
yarn dlx grassroot add ui/context-menu
bash
bunx grassroot add ui/context-menu

API Reference

ContextMenuProps
PropTypeDefault
childrenrequiredRegion that opens the menu on right-click.React.ReactNode
itemsrequiredMenuItem[]
headerMono uppercase section header atop the menu.string | undefined
defaultOpenOpen at a fixed point for layout/stories (skips the right-click).boolean | undefined
defaultPosAnchor point used when `defaultOpen`.{ x: number; y: number; } | undefined{x:24,y:24}
classNamestring | undefined