DocsAPI referenceHeadlesscontext-menu

context-menu headless API

The core connector and vanilla mount are always visible. Use the framework choice to inspect native composition, props, outputs, context and hooks for the selected adapter.

@grassroot/ui-headless-core/context-menu

Core connector and vanilla API

27 exports
View source packages/ui-headless/core/src/context-menu/index.ts
DeclarationView source
activateContextMenuLayerts
declare function activateContextMenuLayer(service: ContextMenuService, scope: PartScope, doc: Document): () => void;
Name
Kind
Type
Requirement
service
parameter
ContextMenuService
required
scope
parameter
PartScope
required
doc
parameter
Document
required
return
return value
() => void
n/a
Name
service
Kind
parameter
Type
ContextMenuService
Requirement
required
Name
scope
Kind
parameter
Type
PartScope
Requirement
required
Name
doc
Kind
parameter
Type
Document
Requirement
required
Name
return
Kind
return value
Type
() => void
Requirement
n/a
DeclarationView source
connectContextMenuts
declare function connectContextMenu(service: ContextMenuService, scope: PartScope, _options?: ContextMenuConnectOptions): ContextMenuApi;
Name
Kind
Type
Requirement
service
parameter
ContextMenuService
required
scope
parameter
PartScope
required
_options
parameter
ContextMenuConnectOptions
optional
return
return value
ContextMenuApi
n/a
Name
service
Kind
parameter
Type
ContextMenuService
Requirement
required
Name
scope
Kind
parameter
Type
PartScope
Requirement
required
Name
_options
Kind
parameter
Type
ContextMenuConnectOptions
Requirement
optional
Name
return
Kind
return value
Type
ContextMenuApi
Requirement
n/a
DeclarationView source
ContextMenuActionablets
interface ContextMenuActionable {
readonly id: string;
readonly disabled?: boolean;
readonly textValue?: string;
}
Name
Kind
Type
Requirement
disabled
property
boolean
optional
id
property
string
required
textValue
property
string
optional
Name
disabled
Kind
property
Type
boolean
Requirement
optional
Name
id
Kind
property
Type
string
Requirement
required
Name
textValue
Kind
property
Type
string
Requirement
optional
DeclarationView source
contextMenuAnatomyts
export declare const contextMenuAnatomy: {
readonly scope: "context-menu";
readonly parts: readonly ["trigger", "positioner", "content", "item", "separator", "group-label", "sub-trigger", "sub-content"];
};
Name
Kind
Type
Requirement
parts
property
readonly ["trigger", "positioner", "content", "item", "separator", "group-label", "sub-trigger", "sub-content"]
required
scope
property
"context-menu"
required
Name
parts
Kind
property
Type
readonly ["trigger", "positioner", "content", "item", "separator", "group-label", "sub-trigger", "sub-content"]
Requirement
required
Name
scope
Kind
property
Type
"context-menu"
Requirement
required

ContextMenuApi

interface
DeclarationView source
ContextMenuApits
interface ContextMenuApi {
triggerProps(): PartProps;
positionerProps(): PartProps;
contentProps(): PartProps;
itemProps(item: ContextMenuActionable): PartProps;
separatorProps(): PartProps;
groupLabelProps(): PartProps;
subTriggerProps(key?: string): PartProps;
subContentProps(key?: string): PartProps;
readonly open: boolean;
}
Name
Kind
Type
Requirement
contentProps
method
() => PartProps
required
groupLabelProps
method
() => PartProps
required
itemProps
method
(item: ContextMenuActionable) => PartProps
required
open
property
boolean
required
positionerProps
method
() => PartProps
required
separatorProps
method
() => PartProps
required
subContentProps
method
(key?: string) => PartProps
required
subTriggerProps
method
(key?: string) => PartProps
required
triggerProps
method
() => PartProps
required
Name
contentProps
Kind
method
Type
() => PartProps
Requirement
required
Name
groupLabelProps
Kind
method
Type
() => PartProps
Requirement
required
Name
itemProps
Kind
method
Type
(item: ContextMenuActionable) => PartProps
Requirement
required
Name
open
Kind
property
Type
boolean
Requirement
required
Name
positionerProps
Kind
method
Type
() => PartProps
Requirement
required
Name
separatorProps
Kind
method
Type
() => PartProps
Requirement
required
Name
subContentProps
Kind
method
Type
(key?: string) => PartProps
Requirement
required
Name
subTriggerProps
Kind
method
Type
(key?: string) => PartProps
Requirement
required
Name
triggerProps
Kind
method
Type
() => PartProps
Requirement
required
DeclarationView source
ContextMenuChangeReasonts
type ContextMenuChangeReason = ContextMenuOpenReason | ContextMenuCloseReason;
DeclarationView source
ContextMenuCloseReasonts
type ContextMenuCloseReason = "escape" | "outside-click" | "select" | "programmatic";
DeclarationView source
ContextMenuCommandts
type ContextMenuCommand = (CommandObject & {
readonly type: "OPEN_CHANGE_REQUEST";
readonly open: boolean;
readonly reason: ContextMenuChangeReason;
}) | (CommandObject & {
readonly type: "SELECT_ITEM";
readonly id: string;
}) | ScheduleCommand<ContextMenuEvent> | CancelCommand;
DeclarationView source
ContextMenuConnectOptionsts
interface ContextMenuConnectOptions {
readonly onOpenChange?: (detail: {
open: boolean;
reason: ContextMenuChangeReason;
}) => void;
readonly onSelect?: (id: string) => void;
}
Name
Kind
Type
Requirement
onOpenChange
property
(detail: { open: boolean; reason: ContextMenuChangeReason; }) => void
optional
onSelect
property
(id: string) => void
optional
Name
onOpenChange
Kind
property
Type
(detail: { open: boolean; reason: ContextMenuChangeReason; }) => void
Requirement
optional
Name
onSelect
Kind
property
Type
(id: string) => void
Requirement
optional
DeclarationView source
ContextMenuContextts
type ContextMenuContext = {
readonly mode: "controlled" | "uncontrolled";
readonly position: ContextMenuPosition | null;
/** Original item index. Divider gaps are retained. */
readonly highlightedIndex: number;
readonly typeaheadBuffer: string;
};
Name
Kind
Type
Requirement
Description
highlightedIndex
property
number
required
Original item index. Divider gaps are retained.
mode
property
"controlled" | "uncontrolled"
required
position
property
ContextMenuPosition | null
required
typeaheadBuffer
property
string
required
Name
highlightedIndex
Kind
property
Type
number
Requirement
required
Description
Original item index. Divider gaps are retained.
Name
mode
Kind
property
Type
"controlled" | "uncontrolled"
Requirement
required
Description
Name
position
Kind
property
Type
ContextMenuPosition | null
Requirement
required
Description
Name
typeaheadBuffer
Kind
property
Type
string
Requirement
required
Description

ContextMenuDivider

interface
DeclarationView source
ContextMenuDividerts
interface ContextMenuDivider {
readonly divider: true;
}
Name
Kind
Type
Requirement
divider
property
true
required
Name
divider
Kind
property
Type
true
Requirement
required
DeclarationView source
ContextMenuEventts
type ContextMenuEvent = {
readonly type: "OPEN_AT";
readonly position: ContextMenuPosition;
readonly reason: ContextMenuOpenReason;
} | {
readonly type: "OPEN";
readonly reason: "programmatic";
} | {
readonly type: "CLOSE";
readonly reason: ContextMenuCloseReason;
} | {
readonly type: "MOVE";
readonly direction: -1 | 1;
} | {
readonly type: "HIGHLIGHT";
readonly index: number;
} | {
readonly type: "SELECT";
} | {
readonly type: "TYPEAHEAD";
readonly char: string;
};
DeclarationView source
ContextMenuInputts
type ContextMenuInput = {
/** Controlled open state. Defining it fixes controlled mode at first start. */
readonly open?: boolean;
/** Uncontrolled initial open state. */
readonly defaultOpen?: boolean;
/** Position used by defaultOpen or programmatic OPEN when no pointer exists. */
readonly defaultPosition?: ContextMenuPosition;
/** The original entry list, including divider rows. */
readonly items: readonly ContextMenuItem[];
readonly typeaheadTimeoutMs?: number;
};
Name
Kind
Type
Requirement
Description
defaultOpen
property
boolean
optional
Uncontrolled initial open state.
defaultPosition
property
ContextMenuPosition
optional
Position used by defaultOpen or programmatic OPEN when no pointer exists.
items
property
readonly ContextMenuItem[]
required
The original entry list, including divider rows.
open
property
boolean
optional
Controlled open state. Defining it fixes controlled mode at first start.
typeaheadTimeoutMs
property
number
optional
Name
defaultOpen
Kind
property
Type
boolean
Requirement
optional
Description
Uncontrolled initial open state.
Name
defaultPosition
Kind
property
Type
ContextMenuPosition
Requirement
optional
Description
Position used by defaultOpen or programmatic OPEN when no pointer exists.
Name
items
Kind
property
Type
readonly ContextMenuItem[]
Requirement
required
Description
The original entry list, including divider rows.
Name
open
Kind
property
Type
boolean
Requirement
optional
Description
Controlled open state. Defining it fixes controlled mode at first start.
Name
typeaheadTimeoutMs
Kind
property
Type
number
Requirement
optional
Description
DeclarationView source
ContextMenuItemts
type ContextMenuItem = ContextMenuActionable | ContextMenuDivider;
DeclarationView source
contextMenuMachinets
export declare const contextMenuMachine: ContextMenuMachine;

ContextMenuMount

interface
DeclarationView source
ContextMenuMountts
interface ContextMenuMount {
readonly service: ContextMenuService;
readonly connector: ContextMenuApi;
readonly root: HTMLElement;
readonly trigger: HTMLElement;
destroy(): void;
}
Name
Kind
Type
Requirement
connector
property
ContextMenuApi
required
destroy
method
() => void
required
root
property
HTMLElement
required
service
property
ContextMenuService
required
trigger
property
HTMLElement
required
Name
connector
Kind
property
Type
ContextMenuApi
Requirement
required
Name
destroy
Kind
method
Type
() => void
Requirement
required
Name
root
Kind
property
Type
HTMLElement
Requirement
required
Name
service
Kind
property
Type
ContextMenuService
Requirement
required
Name
trigger
Kind
property
Type
HTMLElement
Requirement
required
DeclarationView source
ContextMenuOpenChangeDetailts
interface ContextMenuOpenChangeDetail {
readonly open: boolean;
readonly reason: ContextMenuChangeReason;
}
Name
Kind
Type
Requirement
open
property
boolean
required
reason
property
ContextMenuChangeReason
required
Name
open
Kind
property
Type
boolean
Requirement
required
Name
reason
Kind
property
Type
ContextMenuChangeReason
Requirement
required
DeclarationView source
ContextMenuOpenReasonts
type ContextMenuOpenReason = "pointer" | "programmatic";
DeclarationView source
ContextMenuPartts
type ContextMenuPart = (typeof parts)[number];
DeclarationView source
ContextMenuPositionts
type ContextMenuPosition = {
readonly x: number;
readonly y: number;
};
Name
Kind
Type
Requirement
x
property
number
required
y
property
number
required
Name
x
Kind
property
Type
number
Requirement
required
Name
y
Kind
property
Type
number
Requirement
required
DeclarationView source
contextMenuSelectorsts
export declare const contextMenuSelectors: {
open: (snapshot: ContextMenuSnapshot) => boolean;
position: (snapshot: ContextMenuSnapshot) => ContextMenuPosition | null;
highlightedIndex: (snapshot: ContextMenuSnapshot) => number;
typeaheadBuffer: (snapshot: ContextMenuSnapshot) => string;
};
Name
Kind
Type
Requirement
highlightedIndex
property
(snapshot: ContextMenuSnapshot) => number
required
open
property
(snapshot: ContextMenuSnapshot) => boolean
required
position
property
(snapshot: ContextMenuSnapshot) => ContextMenuPosition | null
required
typeaheadBuffer
property
(snapshot: ContextMenuSnapshot) => string
required
Name
highlightedIndex
Kind
property
Type
(snapshot: ContextMenuSnapshot) => number
Requirement
required
Name
open
Kind
property
Type
(snapshot: ContextMenuSnapshot) => boolean
Requirement
required
Name
position
Kind
property
Type
(snapshot: ContextMenuSnapshot) => ContextMenuPosition | null
Requirement
required
Name
typeaheadBuffer
Kind
property
Type
(snapshot: ContextMenuSnapshot) => string
Requirement
required
DeclarationView source
ContextMenuServicets
type ContextMenuService = Service<ContextMenuInput, ContextMenuStateValue, ContextMenuContext, ContextMenuEvent, ContextMenuCommand>;
DeclarationView source
ContextMenuSnapshotts
type ContextMenuSnapshot = Snapshot<ContextMenuStateValue, ContextMenuContext>;
DeclarationView source
ContextMenuStateValuets
type ContextMenuStateValue = "open" | "closed";

mountContextMenu

function
DeclarationView source
mountContextMenuts
declare function mountContextMenu(container: HTMLElement, options: MountContextMenuOptions): ContextMenuMount;
Name
Kind
Type
Requirement
container
parameter
HTMLElement
required
options
parameter
MountContextMenuOptions
required
return
return value
ContextMenuMount
n/a
Name
container
Kind
parameter
Type
HTMLElement
Requirement
required
Name
options
Kind
parameter
Type
MountContextMenuOptions
Requirement
required
Name
return
Kind
return value
Type
ContextMenuMount
Requirement
n/a
DeclarationView source
MountContextMenuOptionsts
interface MountContextMenuOptions extends ContextMenuInput {
readonly groupLabel?: string;
readonly onOpenChange?: (detail: ContextMenuOpenChangeDetail) => void;
readonly onSelect?: (id: string) => void;
readonly scheduler?: Scheduler;
readonly renderTrigger?: (element: HTMLElement) => void;
readonly renderItem?: (element: HTMLElement, item: ContextMenuActionable) => void;
}
Name
Kind
Type
Requirement
groupLabel
property
string
optional
onOpenChange
property
(detail: ContextMenuOpenChangeDetail) => void
optional
onSelect
property
(id: string) => void
optional
renderItem
property
(element: HTMLElement, item: ContextMenuActionable) => void
optional
renderTrigger
property
(element: HTMLElement) => void
optional
scheduler
property
Scheduler
optional
Name
groupLabel
Kind
property
Type
string
Requirement
optional
Name
onOpenChange
Kind
property
Type
(detail: ContextMenuOpenChangeDetail) => void
Requirement
optional
Name
onSelect
Kind
property
Type
(id: string) => void
Requirement
optional
Name
renderItem
Kind
property
Type
(element: HTMLElement, item: ContextMenuActionable) => void
Requirement
optional
Name
renderTrigger
Kind
property
Type
(element: HTMLElement) => void
Requirement
optional
Name
scheduler
Kind
property
Type
Scheduler
Requirement
optional
DeclarationView source
runContextMenuCommandts
declare function runContextMenuCommand(command: ContextMenuCommand, _scope: PartScope, options?: ContextMenuConnectOptions): void;
Name
Kind
Type
Requirement
command
parameter
ContextMenuCommand
required
_scope
parameter
PartScope
required
options
parameter
ContextMenuConnectOptions
optional
return
return value
void
n/a
Name
command
Kind
parameter
Type
ContextMenuCommand
Requirement
required
Name
_scope
Kind
parameter
Type
PartScope
Requirement
required
Name
options
Kind
parameter
Type
ContextMenuConnectOptions
Requirement
optional
Name
return
Kind
return value
Type
void
Requirement
n/a

Framework adapters

Each panel keeps its adapter's public vocabulary. React compound exports, Vue composables, standalone Angular declarations, Svelte components, and Solid hooks stay native to their framework.

React example follows below.

React imports

@grassroot/ui-headless-react/context-menuts
import { Content, ContextMenu, GroupLabel, Item, Positioner, Root, Separator, SubContent } from "@grassroot/ui-headless-react/context-menu"; // +2 more exports

Vue imports

@grassroot/ui-headless-vue/context-menuts
<script setup lang="ts">
import { ContextMenu, ContextMenuContent, ContextMenuGroupLabel, ContextMenuItem, ContextMenuPositioner, ContextMenuRoot, ContextMenuSeparator, ContextMenuSubContent } from "@grassroot/ui-headless-vue/context-menu"; // +2 more exports
</script>

Angular imports

@grassroot/ui-headless-angular/context-menuts
import { Component } from "@angular/core";
import { GR_CONTEXT_MENU_DECLARATIONS } from "@grassroot/ui-headless-angular/context-menu";
@Component({ standalone: true, imports: [GR_CONTEXT_MENU_DECLARATIONS], template: `<!-- compose the context-menu parts here -->` })
export class Example {}

Svelte imports

@grassroot/ui-headless-svelte/context-menuts
<script lang="ts">
import { ContextMenuPart, ContextMenuRoot } from "@grassroot/ui-headless-svelte/context-menu";
</script>

Solid imports

@grassroot/ui-headless-solid/context-menuts
import { ContextMenuContent, ContextMenuGroupLabel, ContextMenuItem, ContextMenuPositioner, ContextMenuRoot, ContextMenuSeparator, ContextMenuSubContent, ContextMenuSubTrigger } from "@grassroot/ui-headless-solid/context-menu"; // +1 more exports

@grassroot/ui-headless-react/context-menu

React adapter

27 exports
View source packages/ui-headless/react/src/context-menu/index.ts

Content

value
DeclarationView source
Contentts
export declare const Content: import("react").ForwardRefExoticComponent<ContextMenuContentProps & import("react").RefAttributes<HTMLDivElement>>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a

ContextMenu

value
DeclarationView source
ContextMenuts
export declare const ContextMenu: {
Root: typeof Root;
Trigger: import("react").ForwardRefExoticComponent<ContextMenuTriggerProps & import("react").RefAttributes<HTMLDivElement>>;
Positioner: import("react").ForwardRefExoticComponent<ContextMenuPositionerProps & import("react").RefAttributes<HTMLDivElement>>;
Content: import("react").ForwardRefExoticComponent<ContextMenuContentProps & import("react").RefAttributes<HTMLDivElement>>;
Item: import("react").ForwardRefExoticComponent<ContextMenuItemProps & import("react").RefAttributes<HTMLDivElement>>;
Separator: import("react").ForwardRefExoticComponent<ContextMenuSeparatorProps & import("react").RefAttributes<HTMLHRElement>>;
GroupLabel: import("react").ForwardRefExoticComponent<ContextMenuGroupLabelProps & import("react").RefAttributes<HTMLDivElement>>;
SubTrigger: import("react").ForwardRefExoticComponent<ContextMenuSubTriggerProps & import("react").RefAttributes<HTMLDivElement>>;
SubContent: import("react").ForwardRefExoticComponent<ContextMenuSubContentProps & import("react").RefAttributes<HTMLDivElement>>;
};
Name
Kind
Type
Requirement
Content
property
import("react").ForwardRefExoticComponent<ContextMenuContentProps & import("react").RefAttributes<HTMLDivElement>>
required
GroupLabel
property
import("react").ForwardRefExoticComponent<ContextMenuGroupLabelProps & import("react").RefAttributes<HTMLDivElement>>
required
Item
property
import("react").ForwardRefExoticComponent<ContextMenuItemProps & import("react").RefAttributes<HTMLDivElement>>
required
Positioner
property
import("react").ForwardRefExoticComponent<ContextMenuPositionerProps & import("react").RefAttributes<HTMLDivElement>>
required
Root
property
typeof Root
required
Separator
property
import("react").ForwardRefExoticComponent<ContextMenuSeparatorProps & import("react").RefAttributes<HTMLHRElement>>
required
SubContent
property
import("react").ForwardRefExoticComponent<ContextMenuSubContentProps & import("react").RefAttributes<HTMLDivElement>>
required
SubTrigger
property
import("react").ForwardRefExoticComponent<ContextMenuSubTriggerProps & import("react").RefAttributes<HTMLDivElement>>
required
Trigger
property
import("react").ForwardRefExoticComponent<ContextMenuTriggerProps & import("react").RefAttributes<HTMLDivElement>>
required
Name
Content
Kind
property
Type
import("react").ForwardRefExoticComponent<ContextMenuContentProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required
Name
GroupLabel
Kind
property
Type
import("react").ForwardRefExoticComponent<ContextMenuGroupLabelProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required
Name
Item
Kind
property
Type
import("react").ForwardRefExoticComponent<ContextMenuItemProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required
Name
Positioner
Kind
property
Type
import("react").ForwardRefExoticComponent<ContextMenuPositionerProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required
Name
Root
Kind
property
Type
typeof Root
Requirement
required
Name
Separator
Kind
property
Type
import("react").ForwardRefExoticComponent<ContextMenuSeparatorProps & import("react").RefAttributes<HTMLHRElement>>
Requirement
required
Name
SubContent
Kind
property
Type
import("react").ForwardRefExoticComponent<ContextMenuSubContentProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required
Name
SubTrigger
Kind
property
Type
import("react").ForwardRefExoticComponent<ContextMenuSubTriggerProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required
Name
Trigger
Kind
property
Type
import("react").ForwardRefExoticComponent<ContextMenuTriggerProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required
DeclarationView source
ContextMenuContentPropsts
interface ContextMenuContentProps extends ComponentPropsWithoutRef<"div"> {
readonly asChild?: boolean;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional
DeclarationView source
ContextMenuContextts
export declare const ContextMenuContext: import("react").Context<ContextMenuContextValue | null>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a
DeclarationView source
ContextMenuContextValuets
interface ContextMenuContextValue {
readonly service: ContextMenuService;
readonly connector: ContextMenuApi;
readonly scope: PartScope;
}
Name
Kind
Type
Requirement
connector
property
ContextMenuApi
required
scope
property
PartScope
required
service
property
ContextMenuService
required
Name
connector
Kind
property
Type
ContextMenuApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
ContextMenuService
Requirement
required
DeclarationView source
ContextMenuGroupLabelPropsts
interface ContextMenuGroupLabelProps extends ComponentPropsWithoutRef<"div"> {
readonly asChild?: boolean;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional
DeclarationView source
ContextMenuItemPropsts
interface ContextMenuItemProps extends ComponentPropsWithoutRef<"div"> {
readonly asChild?: boolean;
readonly item: ContextMenuActionable;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
item
property
ContextMenuActionable
required
Name
asChild
Kind
property
Type
boolean
Requirement
optional
Name
item
Kind
property
Type
ContextMenuActionable
Requirement
required
DeclarationView source
ContextMenuOpenChangeDetailts
interface ContextMenuOpenChangeDetail {
readonly open: boolean;
readonly reason: ContextMenuChangeReason;
}
Name
Kind
Type
Requirement
open
property
boolean
required
reason
property
ContextMenuChangeReason
required
Name
open
Kind
property
Type
boolean
Requirement
required
Name
reason
Kind
property
Type
ContextMenuChangeReason
Requirement
required
DeclarationView source
ContextMenuPositionerPropsts
interface ContextMenuPositionerProps extends ComponentPropsWithoutRef<"div"> {
readonly asChild?: boolean;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional
DeclarationView source
ContextMenuRootPropsts
interface ContextMenuRootProps {
readonly open?: ContextMenuInput["open"];
readonly defaultOpen?: ContextMenuInput["defaultOpen"];
readonly defaultPosition?: ContextMenuInput["defaultPosition"];
readonly items: ContextMenuInput["items"];
readonly typeaheadTimeoutMs?: ContextMenuInput["typeaheadTimeoutMs"];
readonly onOpenChange?: (detail: ContextMenuOpenChangeDetail) => void;
readonly onSelect?: (id: string) => void;
readonly scheduler?: UseContextMenuOptions["scheduler"];
readonly children?: ReactNode;
}
Name
Kind
Type
Requirement
children
property
ReactNode
optional
defaultOpen
property
ContextMenuInput["defaultOpen"]
optional
defaultPosition
property
ContextMenuInput["defaultPosition"]
optional
items
property
ContextMenuInput["items"]
required
onOpenChange
property
(detail: ContextMenuOpenChangeDetail) => void
optional
onSelect
property
(id: string) => void
optional
open
property
ContextMenuInput["open"]
optional
scheduler
property
UseContextMenuOptions["scheduler"]
optional
typeaheadTimeoutMs
property
ContextMenuInput["typeaheadTimeoutMs"]
optional
Name
children
Kind
property
Type
ReactNode
Requirement
optional
Name
defaultOpen
Kind
property
Type
ContextMenuInput["defaultOpen"]
Requirement
optional
Name
defaultPosition
Kind
property
Type
ContextMenuInput["defaultPosition"]
Requirement
optional
Name
items
Kind
property
Type
ContextMenuInput["items"]
Requirement
required
Name
onOpenChange
Kind
property
Type
(detail: ContextMenuOpenChangeDetail) => void
Requirement
optional
Name
onSelect
Kind
property
Type
(id: string) => void
Requirement
optional
Name
open
Kind
property
Type
ContextMenuInput["open"]
Requirement
optional
Name
scheduler
Kind
property
Type
UseContextMenuOptions["scheduler"]
Requirement
optional
Name
typeaheadTimeoutMs
Kind
property
Type
ContextMenuInput["typeaheadTimeoutMs"]
Requirement
optional
DeclarationView source
ContextMenuSeparatorPropsts
interface ContextMenuSeparatorProps extends ComponentPropsWithoutRef<"hr"> {
readonly asChild?: boolean;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional
DeclarationView source
ContextMenuSubContentPropsts
interface ContextMenuSubContentProps extends ComponentPropsWithoutRef<"div"> {
readonly asChild?: boolean;
readonly name?: string;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
name
property
string
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional
Name
name
Kind
property
Type
string
Requirement
optional
DeclarationView source
ContextMenuSubTriggerPropsts
interface ContextMenuSubTriggerProps extends ComponentPropsWithoutRef<"div"> {
readonly asChild?: boolean;
readonly name?: string;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
name
property
string
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional
Name
name
Kind
property
Type
string
Requirement
optional
DeclarationView source
ContextMenuTriggerPropsts
interface ContextMenuTriggerProps extends ComponentPropsWithoutRef<"div"> {
readonly asChild?: boolean;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional

GroupLabel

value
DeclarationView source
GroupLabelts
export declare const GroupLabel: import("react").ForwardRefExoticComponent<ContextMenuGroupLabelProps & import("react").RefAttributes<HTMLDivElement>>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a

Item

value
DeclarationView source
Itemts
export declare const Item: import("react").ForwardRefExoticComponent<ContextMenuItemProps & import("react").RefAttributes<HTMLDivElement>>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a

Positioner

value
DeclarationView source
Positionerts
export declare const Positioner: import("react").ForwardRefExoticComponent<ContextMenuPositionerProps & import("react").RefAttributes<HTMLDivElement>>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a

Root

function
DeclarationView source
Rootts
declare function Root(props: ContextMenuRootProps): import("react").JSX.Element;
Name
Kind
Type
Requirement
props
parameter
ContextMenuRootProps
required
return
return value
import("react").JSX.Element
n/a
Name
props
Kind
parameter
Type
ContextMenuRootProps
Requirement
required
Name
return
Kind
return value
Type
import("react").JSX.Element
Requirement
n/a

Separator

value
DeclarationView source
Separatorts
export declare const Separator: import("react").ForwardRefExoticComponent<ContextMenuSeparatorProps & import("react").RefAttributes<HTMLHRElement>>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a

SubContent

value
DeclarationView source
SubContentts
export declare const SubContent: import("react").ForwardRefExoticComponent<ContextMenuSubContentProps & import("react").RefAttributes<HTMLDivElement>>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a

SubTrigger

value
DeclarationView source
SubTriggerts
export declare const SubTrigger: import("react").ForwardRefExoticComponent<ContextMenuSubTriggerProps & import("react").RefAttributes<HTMLDivElement>>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a

Trigger

value
DeclarationView source
Triggerts
export declare const Trigger: import("react").ForwardRefExoticComponent<ContextMenuTriggerProps & import("react").RefAttributes<HTMLDivElement>>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a

useContextMenu

function
DeclarationView source
useContextMenuts
declare function useContextMenu(input: ContextMenuInput$1, options?: UseContextMenuOptions): UseContextMenuResult;
Name
Kind
Type
Requirement
input
parameter
ContextMenuInput$1
required
options
parameter
UseContextMenuOptions
optional
return
return value
UseContextMenuResult
n/a
Name
input
Kind
parameter
Type
ContextMenuInput$1
Requirement
required
Name
options
Kind
parameter
Type
UseContextMenuOptions
Requirement
optional
Name
return
Kind
return value
Type
UseContextMenuResult
Requirement
n/a
DeclarationView source
useContextMenuContextts
declare function useContextMenuContext(partName: string): ContextMenuContextValue;
Name
Kind
Type
Requirement
partName
parameter
string
required
return
return value
ContextMenuContextValue
n/a
Name
partName
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
ContextMenuContextValue
Requirement
n/a
DeclarationView source
UseContextMenuOptionsts
interface UseContextMenuOptions {
readonly onOpenChange?: (detail: ContextMenuOpenChangeDetail) => void;
readonly onSelect?: (id: string) => void;
/** Native scheduler by default; injectable for deterministic adapter tests. */
readonly scheduler?: Scheduler;
}
Name
Kind
Type
Requirement
Description
onOpenChange
property
(detail: ContextMenuOpenChangeDetail) => void
optional
onSelect
property
(id: string) => void
optional
scheduler
property
Scheduler
optional
Native scheduler by default; injectable for deterministic adapter tests.
Name
onOpenChange
Kind
property
Type
(detail: ContextMenuOpenChangeDetail) => void
Requirement
optional
Description
Name
onSelect
Kind
property
Type
(id: string) => void
Requirement
optional
Description
Name
scheduler
Kind
property
Type
Scheduler
Requirement
optional
Description
Native scheduler by default; injectable for deterministic adapter tests.
DeclarationView source
UseContextMenuResultts
interface UseContextMenuResult {
readonly service: ContextMenuService;
readonly connector: ContextMenuApi;
readonly scope: PartScope;
readonly snapshot: ContextMenuSnapshot;
}
Name
Kind
Type
Requirement
connector
property
ContextMenuApi
required
scope
property
PartScope
required
service
property
ContextMenuService
required
snapshot
property
ContextMenuSnapshot
required
Name
connector
Kind
property
Type
ContextMenuApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
ContextMenuService
Requirement
required
Name
snapshot
Kind
property
Type
ContextMenuSnapshot
Requirement
required

Subscribes a component to a service's committed-snapshot version.

DeclarationView source
useServiceVersionts
declare function useServiceVersion<S extends Service<any, any, any, any, any, any>>(service: S): ReturnType<S["getSnapshot"]>;
Name
Kind
Type
Requirement
service
parameter
S
required
return
return value
ReturnType<S["getSnapshot"]>
n/a
Name
service
Kind
parameter
Type
S
Requirement
required
Name
return
Kind
return value
Type
ReturnType<S["getSnapshot"]>
Requirement
n/a

@grassroot/ui-headless-vue/context-menu

Vue adapter

17 exports
View source packages/ui-headless/vue/src/context-menu/index.ts

ContextMenu

value
DeclarationView source
ContextMenuts
export declare const ContextMenu: {
Root: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
open: {
type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["open"]>;
default: undefined;
};
defaultOpen: {
type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["defaultOpen"]>;
default: undefined;
};
defaultPosition: {
type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["defaultPosition"]>;
default: undefined;
};
items: {
type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["items"]>;
required: true;
};
typeaheadTimeoutMs: {
type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["typeaheadTimeoutMs"]>;
default: undefined;
};
scheduler: {
type: import("vue").PropType<UseContextMenuOptions["scheduler"]>;
default: undefined;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
openChange: (_detail: ContextMenuOpenChangeDetail) => true;
select: (_id: string) => true;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
open: {
type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["open"]>;
default: undefined;
};
defaultOpen: {
type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["defaultOpen"]>;
default: undefined;
};
defaultPosition: {
type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["defaultPosition"]>;
default: undefined;
};
items: {
type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["items"]>;
required: true;
};
typeaheadTimeoutMs: {
type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["typeaheadTimeoutMs"]>;
default: undefined;
};
scheduler: {
type: import("vue").PropType<UseContextMenuOptions["scheduler"]>;
default: undefined;
};
}>> & Readonly<{
onOpenChange?: ((_detail: ContextMenuOpenChangeDetail) => any) | undefined;
onSelect?: ((_id: string) => any) | undefined;
}>, {
open: boolean | undefined;
defaultOpen: boolean | undefined;
defaultPosition: import("@grassroot/ui-machines/context-menu").ContextMenuPosition | undefined;
typeaheadTimeoutMs: number | undefined;
scheduler: import("@grassroot/statechart/scheduler").Scheduler | undefined;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
Trigger: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>> & Readonly<{}>, {
asChild: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
Positioner: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>> & Readonly<{}>, {
asChild: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
Content: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>> & Readonly<{}>, {
asChild: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
Item: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
item: {
type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuActionable>;
required: true;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
item: {
type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuActionable>;
required: true;
};
}>> & Readonly<{}>, {
asChild: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
Separator: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>> & Readonly<{}>, {
asChild: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
GroupLabel: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>> & Readonly<{}>, {
asChild: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
SubTrigger: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
itemKey: {
type: StringConstructor;
default: string;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
itemKey: {
type: StringConstructor;
default: string;
};
}>> & Readonly<{}>, {
asChild: boolean;
itemKey: string;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
SubContent: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
itemKey: {
type: StringConstructor;
default: string;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
itemKey: {
type: StringConstructor;
default: string;
};
}>> & Readonly<{}>, {
asChild: boolean;
itemKey: string;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
};
Name
Kind
Type
Requirement
Content
property
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; }>> & Readonly<{}>, { asChild: boolean; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
required
GroupLabel
property
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; }>> & Readonly<{}>, { asChild: boolean; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
required
Item
property
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; item: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuActionable>; required: true; }; }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; item: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuActionable>; required: true; }; }>> & Readonly<{}>, { asChild: boolean; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
required
Positioner
property
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; }>> & Readonly<{}>, { asChild: boolean; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
required
Root
property
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ open: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["open"]>; default: undefined; }; defaultOpen: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["defaultOpen"]>; default: undefined; }; defaultPosition: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["defaultPosition"]>; default: undefined; }; items: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["items"]>; required: true; }; typeaheadTimeoutMs: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["typeaheadTimeoutMs"]>; default: undefined; }; scheduler: { type: import("vue").PropType<UseContextMenuOptions["scheduler"]>; default: undefined; }; }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { openChange: (_detail: ContextMenuOpenChangeDetail) => true; select: (_id: string) => true; }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ open: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["open"]>; default: undefined; }; defaultOpen: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["defaultOpen"]>; default: undefined; }; defaultPosition: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["defaultPosition"]>; default: undefined; }; items: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["items"]>; required: true; }; typeaheadTimeoutMs: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["typeaheadTimeoutMs"]>; default: undefined; }; scheduler: { type: import("vue").PropType<UseContextMenuOptions["scheduler"]>; default: undefined; }; }>> & Readonly<{ onOpenChange?: ((_detail: ContextMenuOpenChangeDetail) => any) | undefined; onSelect?: ((_id: string) => any) | undefined; }>, { open: boolean | undefined; defaultOpen: boolean | undefined; defaultPosition: import("@grassroot/ui-machines/context-menu").ContextMenuPosition | undefined; typeaheadTimeoutMs: number | undefined; scheduler: import("@grassroot/statechart/scheduler").Scheduler | undefined; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
required
Separator
property
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; }>> & Readonly<{}>, { asChild: boolean; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
required
SubContent
property
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; itemKey: { type: StringConstructor; default: string; }; }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; itemKey: { type: StringConstructor; default: string; }; }>> & Readonly<{}>, { asChild: boolean; itemKey: string; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
required
SubTrigger
property
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; itemKey: { type: StringConstructor; default: string; }; }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; itemKey: { type: StringConstructor; default: string; }; }>> & Readonly<{}>, { asChild: boolean; itemKey: string; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
required
Trigger
property
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; }>> & Readonly<{}>, { asChild: boolean; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
required
Name
Content
Kind
property
Type
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; }>> & Readonly<{}>, { asChild: boolean; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
Requirement
required
Name
GroupLabel
Kind
property
Type
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; }>> & Readonly<{}>, { asChild: boolean; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
Requirement
required
Name
Item
Kind
property
Type
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; item: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuActionable>; required: true; }; }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; item: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuActionable>; required: true; }; }>> & Readonly<{}>, { asChild: boolean; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
Requirement
required
Name
Positioner
Kind
property
Type
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; }>> & Readonly<{}>, { asChild: boolean; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
Requirement
required
Name
Root
Kind
property
Type
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ open: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["open"]>; default: undefined; }; defaultOpen: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["defaultOpen"]>; default: undefined; }; defaultPosition: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["defaultPosition"]>; default: undefined; }; items: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["items"]>; required: true; }; typeaheadTimeoutMs: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["typeaheadTimeoutMs"]>; default: undefined; }; scheduler: { type: import("vue").PropType<UseContextMenuOptions["scheduler"]>; default: undefined; }; }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { openChange: (_detail: ContextMenuOpenChangeDetail) => true; select: (_id: string) => true; }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ open: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["open"]>; default: undefined; }; defaultOpen: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["defaultOpen"]>; default: undefined; }; defaultPosition: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["defaultPosition"]>; default: undefined; }; items: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["items"]>; required: true; }; typeaheadTimeoutMs: { type: import("vue").PropType<import("@grassroot/ui-machines/context-menu").ContextMenuInput["typeaheadTimeoutMs"]>; default: undefined; }; scheduler: { type: import("vue").PropType<UseContextMenuOptions["scheduler"]>; default: undefined; }; }>> & Readonly<{ onOpenChange?: ((_detail: ContextMenuOpenChangeDetail) => any) | undefined; onSelect?: ((_id: string) => any) | undefined; }>, { open: boolean | undefined; defaultOpen: boolean | undefined; defaultPosition: import("@grassroot/ui-machines/context-menu").ContextMenuPosition | undefined; typeaheadTimeoutMs: number | undefined; scheduler: import("@grassroot/statechart/scheduler").Scheduler | undefined; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
Requirement
required
Name
Separator
Kind
property
Type
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; }>> & Readonly<{}>, { asChild: boolean; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
Requirement
required
Name
SubContent
Kind
property
Type
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; itemKey: { type: StringConstructor; default: string; }; }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; itemKey: { type: StringConstructor; default: string; }; }>> & Readonly<{}>, { asChild: boolean; itemKey: string; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
Requirement
required
Name
SubTrigger
Kind
property
Type
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; itemKey: { type: StringConstructor; default: string; }; }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; itemKey: { type: StringConstructor; default: string; }; }>> & Readonly<{}>, { asChild: boolean; itemKey: string; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
Requirement
required
Name
Trigger
Kind
property
Type
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; }>> & Readonly<{}>, { asChild: boolean; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
Requirement
required
DeclarationView source
ContextMenuContentts
export declare const ContextMenuContent: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>> & Readonly<{}>, {
asChild: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
ContextMenuContextKeyts
export declare const ContextMenuContextKey: InjectionKey<ContextMenuContextValue>;
DeclarationView source
ContextMenuContextValuets
interface ContextMenuContextValue {
readonly service: ContextMenuService;
readonly connector: ContextMenuApi;
readonly scope: PartScope;
readonly snapshot: ShallowRef<ContextMenuSnapshot>;
}
Name
Kind
Type
Requirement
connector
property
ContextMenuApi
required
scope
property
PartScope
required
service
property
ContextMenuService
required
snapshot
property
ShallowRef<ContextMenuSnapshot>
required
Name
connector
Kind
property
Type
ContextMenuApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
ContextMenuService
Requirement
required
Name
snapshot
Kind
property
Type
ShallowRef<ContextMenuSnapshot>
Requirement
required
DeclarationView source
ContextMenuGroupLabelts
export declare const ContextMenuGroupLabel: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>> & Readonly<{}>, {
asChild: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
ContextMenuItemts
export declare const ContextMenuItem: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
item: {
type: PropType<ContextMenuActionable>;
required: true;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
item: {
type: PropType<ContextMenuActionable>;
required: true;
};
}>> & Readonly<{}>, {
asChild: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
ContextMenuOpenChangeDetailts
interface ContextMenuOpenChangeDetail {
readonly open: boolean;
readonly reason: ContextMenuChangeReason;
}
Name
Kind
Type
Requirement
open
property
boolean
required
reason
property
ContextMenuChangeReason
required
Name
open
Kind
property
Type
boolean
Requirement
required
Name
reason
Kind
property
Type
ContextMenuChangeReason
Requirement
required
DeclarationView source
ContextMenuPositionerts
export declare const ContextMenuPositioner: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>> & Readonly<{}>, {
asChild: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
ContextMenuRootts
export declare const ContextMenuRoot: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
open: {
type: PropType<ContextMenuInput["open"]>;
default: undefined;
};
defaultOpen: {
type: PropType<ContextMenuInput["defaultOpen"]>;
default: undefined;
};
defaultPosition: {
type: PropType<ContextMenuInput["defaultPosition"]>;
default: undefined;
};
items: {
type: PropType<ContextMenuInput["items"]>;
required: true;
};
typeaheadTimeoutMs: {
type: PropType<ContextMenuInput["typeaheadTimeoutMs"]>;
default: undefined;
};
scheduler: {
type: PropType<UseContextMenuOptions["scheduler"]>;
default: undefined;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
openChange: (_detail: ContextMenuOpenChangeDetail) => true;
select: (_id: string) => true;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
open: {
type: PropType<ContextMenuInput["open"]>;
default: undefined;
};
defaultOpen: {
type: PropType<ContextMenuInput["defaultOpen"]>;
default: undefined;
};
defaultPosition: {
type: PropType<ContextMenuInput["defaultPosition"]>;
default: undefined;
};
items: {
type: PropType<ContextMenuInput["items"]>;
required: true;
};
typeaheadTimeoutMs: {
type: PropType<ContextMenuInput["typeaheadTimeoutMs"]>;
default: undefined;
};
scheduler: {
type: PropType<UseContextMenuOptions["scheduler"]>;
default: undefined;
};
}>> & Readonly<{
onOpenChange?: ((_detail: ContextMenuOpenChangeDetail) => any) | undefined;
onSelect?: ((_id: string) => any) | undefined;
}>, {
open: boolean | undefined;
defaultOpen: boolean | undefined;
defaultPosition: import("@grassroot/ui-machines/context-menu").ContextMenuPosition | undefined;
typeaheadTimeoutMs: number | undefined;
scheduler: import("@grassroot/statechart/scheduler").Scheduler | undefined;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
ContextMenuSeparatorts
export declare const ContextMenuSeparator: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>> & Readonly<{}>, {
asChild: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
ContextMenuSubContentts
export declare const ContextMenuSubContent: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
itemKey: {
type: StringConstructor;
default: string;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
itemKey: {
type: StringConstructor;
default: string;
};
}>> & Readonly<{}>, {
asChild: boolean;
itemKey: string;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
ContextMenuSubTriggerts
export declare const ContextMenuSubTrigger: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
itemKey: {
type: StringConstructor;
default: string;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
itemKey: {
type: StringConstructor;
default: string;
};
}>> & Readonly<{}>, {
asChild: boolean;
itemKey: string;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
ContextMenuTriggerts
export declare const ContextMenuTrigger: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>> & Readonly<{}>, {
asChild: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;

useContextMenu

function
DeclarationView source
useContextMenuts
declare function useContextMenu(input: ContextMenuInput | (() => ContextMenuInput), options?: UseContextMenuOptions): UseContextMenuResult;
Name
Kind
Type
Requirement
input
parameter
ContextMenuInput | (() => ContextMenuInput)
required
options
parameter
UseContextMenuOptions
optional
return
return value
UseContextMenuResult
n/a
Name
input
Kind
parameter
Type
ContextMenuInput | (() => ContextMenuInput)
Requirement
required
Name
options
Kind
parameter
Type
UseContextMenuOptions
Requirement
optional
Name
return
Kind
return value
Type
UseContextMenuResult
Requirement
n/a
DeclarationView source
useContextMenuContextts
declare function useContextMenuContext(partName: string): ContextMenuContextValue;
Name
Kind
Type
Requirement
partName
parameter
string
required
return
return value
ContextMenuContextValue
n/a
Name
partName
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
ContextMenuContextValue
Requirement
n/a
DeclarationView source
UseContextMenuOptionsts
interface UseContextMenuOptions {
readonly onOpenChange?: (detail: ContextMenuOpenChangeDetail) => void;
readonly onSelect?: (id: string) => void;
readonly scheduler?: Scheduler;
}
Name
Kind
Type
Requirement
onOpenChange
property
(detail: ContextMenuOpenChangeDetail) => void
optional
onSelect
property
(id: string) => void
optional
scheduler
property
Scheduler
optional
Name
onOpenChange
Kind
property
Type
(detail: ContextMenuOpenChangeDetail) => void
Requirement
optional
Name
onSelect
Kind
property
Type
(id: string) => void
Requirement
optional
Name
scheduler
Kind
property
Type
Scheduler
Requirement
optional
DeclarationView source
UseContextMenuResultts
interface UseContextMenuResult {
readonly service: ContextMenuService;
readonly connector: ContextMenuApi;
readonly scope: PartScope;
readonly snapshot: ShallowRef<ContextMenuSnapshot>;
}
Name
Kind
Type
Requirement
connector
property
ContextMenuApi
required
scope
property
PartScope
required
service
property
ContextMenuService
required
snapshot
property
ShallowRef<ContextMenuSnapshot>
required
Name
connector
Kind
property
Type
ContextMenuApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
ContextMenuService
Requirement
required
Name
snapshot
Kind
property
Type
ShallowRef<ContextMenuSnapshot>
Requirement
required

@grassroot/ui-headless-angular/context-menu

Angular adapter

16 exports
View source packages/ui-headless/angular/src/context-menu/index.ts
DeclarationView source
CONTEXT_MENU_STOREts
export declare const CONTEXT_MENU_STORE: InjectionToken<ContextMenuStore>;
DeclarationView source
ContextMenuOpenChangeDetailts
export interface ContextMenuOpenChangeDetail {
readonly open: boolean;
readonly reason: ContextMenuChangeReason;
}
Name
Kind
Type
Requirement
open
property
boolean
required
reason
property
ContextMenuChangeReason
required
Name
open
Kind
property
Type
boolean
Requirement
required
Name
reason
Kind
property
Type
ContextMenuChangeReason
Requirement
required

ContextMenuStore

interface
DeclarationView source
ContextMenuStorets
export interface ContextMenuStore {
readonly service: ContextMenuService;
readonly connector: ContextMenuApi;
readonly scope: PartScope;
readonly version: WritableSignal<number>;
start(): void;
stop(): void;
sync(input: ContextMenuInput): void;
}
Name
Kind
Type
Requirement
connector
property
ContextMenuApi
required
scope
property
PartScope
required
service
property
ContextMenuService
required
start
method
() => void
required
stop
method
() => void
required
sync
method
(input: ContextMenuInput) => void
required
version
property
WritableSignal<number>
required
Name
connector
Kind
property
Type
ContextMenuApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
ContextMenuService
Requirement
required
Name
start
Kind
method
Type
() => void
Requirement
required
Name
stop
Kind
method
Type
() => void
Requirement
required
Name
sync
Kind
method
Type
(input: ContextMenuInput) => void
Requirement
required
Name
version
Kind
property
Type
WritableSignal<number>
Requirement
required
DeclarationView source
createContextMenuStorets
export declare function createContextMenuStore(initialInput: ContextMenuInput, options?: CreateContextMenuStoreOptions): ContextMenuStore;
Name
Kind
Type
Requirement
initialInput
parameter
ContextMenuInput
required
options
parameter
CreateContextMenuStoreOptions
optional
return
return value
ContextMenuStore
n/a
Name
initialInput
Kind
parameter
Type
ContextMenuInput
Requirement
required
Name
options
Kind
parameter
Type
CreateContextMenuStoreOptions
Requirement
optional
Name
return
Kind
return value
Type
ContextMenuStore
Requirement
n/a
DeclarationView source
CreateContextMenuStoreOptionsts
export interface CreateContextMenuStoreOptions {
readonly onOpenChange?: (detail: ContextMenuOpenChangeDetail) => void;
readonly onSelect?: (id: string) => void;
readonly onCommit?: () => void;
readonly scheduler?: Scheduler;
}
Name
Kind
Type
Requirement
onCommit
property
() => void
optional
onOpenChange
property
(detail: ContextMenuOpenChangeDetail) => void
optional
onSelect
property
(id: string) => void
optional
scheduler
property
Scheduler
optional
Name
onCommit
Kind
property
Type
() => void
Requirement
optional
Name
onOpenChange
Kind
property
Type
(detail: ContextMenuOpenChangeDetail) => void
Requirement
optional
Name
onSelect
Kind
property
Type
(id: string) => void
Requirement
optional
Name
scheduler
Kind
property
Type
Scheduler
Requirement
optional
DeclarationView source
GR_CONTEXT_MENU_DECLARATIONSts
export declare const GR_CONTEXT_MENU_DECLARATIONS: readonly [typeof GrContextMenuRoot, typeof GrContextMenuTrigger, typeof GrContextMenuOpen, typeof GrContextMenuPositioner, typeof GrContextMenuContent, typeof GrContextMenuItem, typeof GrContextMenuSeparator, typeof GrContextMenuGroupLabel, typeof GrContextMenuSubTrigger, typeof GrContextMenuSubContent];
DeclarationView source
GrContextMenuContentts
export declare class GrContextMenuContent implements OnDestroy {
private readonly store;
private readonly elementRef;
private readonly listeners;
private readonly consumerProps;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrContextMenuContent, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrContextMenuContent, "[grContextMenuContent]", never, {}, {}, never, never, true, never>;
}
Name
Kind
Type
Requirement
consumerProps
property
any
required
elementRef
property
any
required
listeners
property
any
required
ngOnDestroy
method
() => void
required
ɵdir
property
i0.ɵɵDirectiveDeclaration<GrContextMenuContent, "[grContextMenuContent]", never, {}, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrContextMenuContent, never>
required
store
property
any
required
Name
consumerProps
Kind
property
Type
any
Requirement
required
Name
elementRef
Kind
property
Type
any
Requirement
required
Name
listeners
Kind
property
Type
any
Requirement
required
Name
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Name
ɵdir
Kind
property
Type
i0.ɵɵDirectiveDeclaration<GrContextMenuContent, "[grContextMenuContent]", never, {}, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrContextMenuContent, never>
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
DeclarationView source
GrContextMenuGroupLabelts
export declare class GrContextMenuGroupLabel implements OnDestroy {
private readonly store;
private readonly elementRef;
private readonly listeners;
private readonly consumerProps;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrContextMenuGroupLabel, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrContextMenuGroupLabel, "[grContextMenuGroupLabel]", never, {}, {}, never, never, true, never>;
}
Name
Kind
Type
Requirement
consumerProps
property
any
required
elementRef
property
any
required
listeners
property
any
required
ngOnDestroy
method
() => void
required
ɵdir
property
i0.ɵɵDirectiveDeclaration<GrContextMenuGroupLabel, "[grContextMenuGroupLabel]", never, {}, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrContextMenuGroupLabel, never>
required
store
property
any
required
Name
consumerProps
Kind
property
Type
any
Requirement
required
Name
elementRef
Kind
property
Type
any
Requirement
required
Name
listeners
Kind
property
Type
any
Requirement
required
Name
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Name
ɵdir
Kind
property
Type
i0.ɵɵDirectiveDeclaration<GrContextMenuGroupLabel, "[grContextMenuGroupLabel]", never, {}, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrContextMenuGroupLabel, never>
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
DeclarationView source
GrContextMenuItemts
export declare class GrContextMenuItem implements OnDestroy {
readonly item: import("@angular/core").InputSignal<ContextMenuActionable>;
private readonly store;
private readonly elementRef;
private readonly listeners;
private readonly consumerProps;
private registeredId;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrContextMenuItem, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrContextMenuItem, "[grContextMenuItem]", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
}
Name
Kind
Type
Requirement
consumerProps
property
any
required
elementRef
property
any
required
item
property
import("@angular/core").InputSignal<ContextMenuActionable>
required
listeners
property
any
required
ngOnDestroy
method
() => void
required
ɵdir
property
i0.ɵɵDirectiveDeclaration<GrContextMenuItem, "[grContextMenuItem]", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrContextMenuItem, never>
required
registeredId
property
any
required
store
property
any
required
Name
consumerProps
Kind
property
Type
any
Requirement
required
Name
elementRef
Kind
property
Type
any
Requirement
required
Name
item
Kind
property
Type
import("@angular/core").InputSignal<ContextMenuActionable>
Requirement
required
Name
listeners
Kind
property
Type
any
Requirement
required
Name
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Name
ɵdir
Kind
property
Type
i0.ɵɵDirectiveDeclaration<GrContextMenuItem, "[grContextMenuItem]", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrContextMenuItem, never>
Requirement
required
Name
registeredId
Kind
property
Type
any
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
DeclarationView source
GrContextMenuOpents
export declare class GrContextMenuOpen implements OnDestroy {
private readonly store;
private readonly templateRef;
private readonly viewContainerRef;
private hasView;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrContextMenuOpen, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrContextMenuOpen, "[grContextMenuOpen]", never, {}, {}, never, never, true, never>;
}
Name
Kind
Type
Requirement
hasView
property
any
required
ngOnDestroy
method
() => void
required
ɵdir
property
i0.ɵɵDirectiveDeclaration<GrContextMenuOpen, "[grContextMenuOpen]", never, {}, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrContextMenuOpen, never>
required
store
property
any
required
templateRef
property
any
required
viewContainerRef
property
any
required
Name
hasView
Kind
property
Type
any
Requirement
required
Name
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Name
ɵdir
Kind
property
Type
i0.ɵɵDirectiveDeclaration<GrContextMenuOpen, "[grContextMenuOpen]", never, {}, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrContextMenuOpen, never>
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
Name
templateRef
Kind
property
Type
any
Requirement
required
Name
viewContainerRef
Kind
property
Type
any
Requirement
required
DeclarationView source
GrContextMenuPositionerts
export declare class GrContextMenuPositioner implements OnDestroy {
private readonly store;
private readonly elementRef;
private readonly listeners;
private readonly consumerProps;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrContextMenuPositioner, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrContextMenuPositioner, "[grContextMenuPositioner]", never, {}, {}, never, never, true, never>;
}
Name
Kind
Type
Requirement
consumerProps
property
any
required
elementRef
property
any
required
listeners
property
any
required
ngOnDestroy
method
() => void
required
ɵdir
property
i0.ɵɵDirectiveDeclaration<GrContextMenuPositioner, "[grContextMenuPositioner]", never, {}, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrContextMenuPositioner, never>
required
store
property
any
required
Name
consumerProps
Kind
property
Type
any
Requirement
required
Name
elementRef
Kind
property
Type
any
Requirement
required
Name
listeners
Kind
property
Type
any
Requirement
required
Name
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Name
ɵdir
Kind
property
Type
i0.ɵɵDirectiveDeclaration<GrContextMenuPositioner, "[grContextMenuPositioner]", never, {}, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrContextMenuPositioner, never>
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
DeclarationView source
GrContextMenuRootts
export declare class GrContextMenuRoot implements OnDestroy {
readonly open: import("@angular/core").InputSignal<boolean | undefined>;
readonly defaultOpen: import("@angular/core").InputSignal<boolean | undefined>;
readonly defaultPosition: import("@angular/core").InputSignal<import("@grassroot/ui-machines/context-menu").ContextMenuPosition | undefined>;
readonly items: import("@angular/core").InputSignal<readonly import("@grassroot/ui-machines/context-menu").ContextMenuItem[]>;
readonly typeaheadTimeoutMs: import("@angular/core").InputSignal<number | undefined>;
readonly openChange: import("@angular/core").OutputEmitterRef<ContextMenuOpenChangeDetail>;
readonly select: import("@angular/core").OutputEmitterRef<string>;
private readonly injector;
private lastSynced;
private releaseLayer;
private wasOpen;
readonly store: ContextMenuStore;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrContextMenuRoot, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrContextMenuRoot, "[grContextMenuRoot]", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "defaultPosition": { "alias": "defaultPosition"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "typeaheadTimeoutMs": { "alias": "typeaheadTimeoutMs"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; "select": "select"; }, never, never, true, never>;
}
Name
Kind
Type
Requirement
defaultOpen
property
import("@angular/core").InputSignal<boolean | undefined>
required
defaultPosition
property
import("@angular/core").InputSignal<import("@grassroot/ui-machines/context-menu").ContextMenuPosition | undefined>
required
injector
property
any
required
items
property
import("@angular/core").InputSignal<readonly import("@grassroot/ui-machines/context-menu").ContextMenuItem[]>
required
lastSynced
property
any
required
ngOnDestroy
method
() => void
required
open
property
import("@angular/core").InputSignal<boolean | undefined>
required
openChange
property
import("@angular/core").OutputEmitterRef<ContextMenuOpenChangeDetail>
required
ɵdir
property
i0.ɵɵDirectiveDeclaration<GrContextMenuRoot, "[grContextMenuRoot]", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "defaultPosition": { "alias": "defaultPosition"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "typeaheadTimeoutMs": { "alias": "typeaheadTimeoutMs"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; "select": "select"; }, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrContextMenuRoot, never>
required
releaseLayer
property
any
required
select
property
import("@angular/core").OutputEmitterRef<string>
required
store
property
ContextMenuStore
required
typeaheadTimeoutMs
property
import("@angular/core").InputSignal<number | undefined>
required
Name
defaultOpen
Kind
property
Type
import("@angular/core").InputSignal<boolean | undefined>
Requirement
required
Name
defaultPosition
Kind
property
Type
import("@angular/core").InputSignal<import("@grassroot/ui-machines/context-menu").ContextMenuPosition | undefined>
Requirement
required
Name
injector
Kind
property
Type
any
Requirement
required
Name
items
Kind
property
Type
import("@angular/core").InputSignal<readonly import("@grassroot/ui-machines/context-menu").ContextMenuItem[]>
Requirement
required
Name
lastSynced
Kind
property
Type
any
Requirement
required
Name
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Name
open
Kind
property
Type
import("@angular/core").InputSignal<boolean | undefined>
Requirement
required
Name
openChange
Kind
property
Type
import("@angular/core").OutputEmitterRef<ContextMenuOpenChangeDetail>
Requirement
required
Name
ɵdir
Kind
property
Type
i0.ɵɵDirectiveDeclaration<GrContextMenuRoot, "[grContextMenuRoot]", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "defaultPosition": { "alias": "defaultPosition"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "typeaheadTimeoutMs": { "alias": "typeaheadTimeoutMs"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; "select": "select"; }, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrContextMenuRoot, never>
Requirement
required
Name
releaseLayer
Kind
property
Type
any
Requirement
required
Name
select
Kind
property
Type
import("@angular/core").OutputEmitterRef<string>
Requirement
required
Name
store
Kind
property
Type
ContextMenuStore
Requirement
required
Name
typeaheadTimeoutMs
Kind
property
Type
import("@angular/core").InputSignal<number | undefined>
Requirement
required
Name
wasOpen
Kind
property
Type
any
Requirement
required
DeclarationView source
GrContextMenuSeparatorts
export declare class GrContextMenuSeparator implements OnDestroy {
private readonly store;
private readonly elementRef;
private readonly listeners;
private readonly consumerProps;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrContextMenuSeparator, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrContextMenuSeparator, "[grContextMenuSeparator]", never, {}, {}, never, never, true, never>;
}
Name
Kind
Type
Requirement
consumerProps
property
any
required
elementRef
property
any
required
listeners
property
any
required
ngOnDestroy
method
() => void
required
ɵdir
property
i0.ɵɵDirectiveDeclaration<GrContextMenuSeparator, "[grContextMenuSeparator]", never, {}, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrContextMenuSeparator, never>
required
store
property
any
required
Name
consumerProps
Kind
property
Type
any
Requirement
required
Name
elementRef
Kind
property
Type
any
Requirement
required
Name
listeners
Kind
property
Type
any
Requirement
required
Name
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Name
ɵdir
Kind
property
Type
i0.ɵɵDirectiveDeclaration<GrContextMenuSeparator, "[grContextMenuSeparator]", never, {}, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrContextMenuSeparator, never>
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
DeclarationView source
GrContextMenuSubContentts
export declare class GrContextMenuSubContent implements OnDestroy {
readonly menuKey: import("@angular/core").InputSignal<string>;
private readonly store;
private readonly elementRef;
private readonly listeners;
private readonly consumerProps;
private registeredKey;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrContextMenuSubContent, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrContextMenuSubContent, "[grContextMenuSubContent]", never, { "menuKey": { "alias": "menuKey"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
Name
Kind
Type
Requirement
consumerProps
property
any
required
elementRef
property
any
required
listeners
property
any
required
menuKey
property
import("@angular/core").InputSignal<string>
required
ngOnDestroy
method
() => void
required
ɵdir
property
i0.ɵɵDirectiveDeclaration<GrContextMenuSubContent, "[grContextMenuSubContent]", never, { "menuKey": { "alias": "menuKey"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrContextMenuSubContent, never>
required
registeredKey
property
any
required
store
property
any
required
Name
consumerProps
Kind
property
Type
any
Requirement
required
Name
elementRef
Kind
property
Type
any
Requirement
required
Name
listeners
Kind
property
Type
any
Requirement
required
Name
menuKey
Kind
property
Type
import("@angular/core").InputSignal<string>
Requirement
required
Name
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Name
ɵdir
Kind
property
Type
i0.ɵɵDirectiveDeclaration<GrContextMenuSubContent, "[grContextMenuSubContent]", never, { "menuKey": { "alias": "menuKey"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrContextMenuSubContent, never>
Requirement
required
Name
registeredKey
Kind
property
Type
any
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
DeclarationView source
GrContextMenuSubTriggerts
export declare class GrContextMenuSubTrigger implements OnDestroy {
readonly menuKey: import("@angular/core").InputSignal<string>;
private readonly store;
private readonly elementRef;
private readonly listeners;
private readonly consumerProps;
private registeredKey;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrContextMenuSubTrigger, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrContextMenuSubTrigger, "[grContextMenuSubTrigger]", never, { "menuKey": { "alias": "menuKey"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
Name
Kind
Type
Requirement
consumerProps
property
any
required
elementRef
property
any
required
listeners
property
any
required
menuKey
property
import("@angular/core").InputSignal<string>
required
ngOnDestroy
method
() => void
required
ɵdir
property
i0.ɵɵDirectiveDeclaration<GrContextMenuSubTrigger, "[grContextMenuSubTrigger]", never, { "menuKey": { "alias": "menuKey"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrContextMenuSubTrigger, never>
required
registeredKey
property
any
required
store
property
any
required
Name
consumerProps
Kind
property
Type
any
Requirement
required
Name
elementRef
Kind
property
Type
any
Requirement
required
Name
listeners
Kind
property
Type
any
Requirement
required
Name
menuKey
Kind
property
Type
import("@angular/core").InputSignal<string>
Requirement
required
Name
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Name
ɵdir
Kind
property
Type
i0.ɵɵDirectiveDeclaration<GrContextMenuSubTrigger, "[grContextMenuSubTrigger]", never, { "menuKey": { "alias": "menuKey"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrContextMenuSubTrigger, never>
Requirement
required
Name
registeredKey
Kind
property
Type
any
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
DeclarationView source
GrContextMenuTriggerts
export declare class GrContextMenuTrigger implements OnDestroy {
private readonly store;
private readonly elementRef;
private readonly listeners;
private readonly consumerProps;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrContextMenuTrigger, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrContextMenuTrigger, "[grContextMenuTrigger]", never, {}, {}, never, never, true, never>;
}
Name
Kind
Type
Requirement
consumerProps
property
any
required
elementRef
property
any
required
listeners
property
any
required
ngOnDestroy
method
() => void
required
ɵdir
property
i0.ɵɵDirectiveDeclaration<GrContextMenuTrigger, "[grContextMenuTrigger]", never, {}, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrContextMenuTrigger, never>
required
store
property
any
required
Name
consumerProps
Kind
property
Type
any
Requirement
required
Name
elementRef
Kind
property
Type
any
Requirement
required
Name
listeners
Kind
property
Type
any
Requirement
required
Name
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Name
ɵdir
Kind
property
Type
i0.ɵɵDirectiveDeclaration<GrContextMenuTrigger, "[grContextMenuTrigger]", never, {}, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrContextMenuTrigger, never>
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required

@grassroot/ui-headless-svelte/context-menu

Svelte adapter

23 exports
View source packages/ui-headless/svelte/src/context-menu/index.ts
DeclarationView source
ContextMenuActionablets
interface ContextMenuActionable {
readonly id: string;
readonly disabled?: boolean;
readonly textValue?: string;
}
Name
Kind
Type
Requirement
disabled
property
boolean
optional
id
property
string
required
textValue
property
string
optional
Name
disabled
Kind
property
Type
boolean
Requirement
optional
Name
id
Kind
property
Type
string
Requirement
required
Name
textValue
Kind
property
Type
string
Requirement
optional
DeclarationView source
ContextMenuChangeReasonts
type ContextMenuChangeReason = ContextMenuOpenReason | ContextMenuCloseReason;
DeclarationView source
ContextMenuCloseReasonts
type ContextMenuCloseReason = "escape" | "outside-click" | "select" | "programmatic";
DeclarationView source
ContextMenuCommandts
type ContextMenuCommand = (CommandObject & {
readonly type: "OPEN_CHANGE_REQUEST";
readonly open: boolean;
readonly reason: ContextMenuChangeReason;
}) | (CommandObject & {
readonly type: "SELECT_ITEM";
readonly id: string;
}) | ScheduleCommand<ContextMenuEvent> | CancelCommand;
DeclarationView source
ContextMenuContextts
type ContextMenuContext = {
readonly mode: "controlled" | "uncontrolled";
readonly position: ContextMenuPosition | null;
/** Original item index. Divider gaps are retained. */
readonly highlightedIndex: number;
readonly typeaheadBuffer: string;
};
Name
Kind
Type
Requirement
Description
highlightedIndex
property
number
required
Original item index. Divider gaps are retained.
mode
property
"controlled" | "uncontrolled"
required
position
property
ContextMenuPosition | null
required
typeaheadBuffer
property
string
required
Name
highlightedIndex
Kind
property
Type
number
Requirement
required
Description
Original item index. Divider gaps are retained.
Name
mode
Kind
property
Type
"controlled" | "uncontrolled"
Requirement
required
Description
Name
position
Kind
property
Type
ContextMenuPosition | null
Requirement
required
Description
Name
typeaheadBuffer
Kind
property
Type
string
Requirement
required
Description
DeclarationView source
ContextMenuContextValuets
export interface ContextMenuContextValue {
readonly service: ContextMenuService;
readonly connector: ContextMenuApi;
readonly scope: PartScope;
/** Subscribe inside a derived value so every committed machine snapshot rerenders the parts. */
readonly version: Readable<number>;
}
Name
Kind
Type
Requirement
Description
connector
property
ContextMenuApi
required
scope
property
PartScope
required
service
property
ContextMenuService
required
version
property
Readable<number>
required
Subscribe inside a derived value so every committed machine snapshot rerenders the parts.
Name
connector
Kind
property
Type
ContextMenuApi
Requirement
required
Description
Name
scope
Kind
property
Type
PartScope
Requirement
required
Description
Name
service
Kind
property
Type
ContextMenuService
Requirement
required
Description
Name
version
Kind
property
Type
Readable<number>
Requirement
required
Description
Subscribe inside a derived value so every committed machine snapshot rerenders the parts.

ContextMenuDivider

interface
DeclarationView source
ContextMenuDividerts
interface ContextMenuDivider {
readonly divider: true;
}
Name
Kind
Type
Requirement
divider
property
true
required
Name
divider
Kind
property
Type
true
Requirement
required
DeclarationView source
ContextMenuEventts
type ContextMenuEvent = {
readonly type: "OPEN_AT";
readonly position: ContextMenuPosition;
readonly reason: ContextMenuOpenReason;
} | {
readonly type: "OPEN";
readonly reason: "programmatic";
} | {
readonly type: "CLOSE";
readonly reason: ContextMenuCloseReason;
} | {
readonly type: "MOVE";
readonly direction: -1 | 1;
} | {
readonly type: "HIGHLIGHT";
readonly index: number;
} | {
readonly type: "SELECT";
} | {
readonly type: "TYPEAHEAD";
readonly char: string;
};
DeclarationView source
ContextMenuInputts
type ContextMenuInput = {
/** Controlled open state. Defining it fixes controlled mode at first start. */
readonly open?: boolean;
/** Uncontrolled initial open state. */
readonly defaultOpen?: boolean;
/** Position used by defaultOpen or programmatic OPEN when no pointer exists. */
readonly defaultPosition?: ContextMenuPosition;
/** The original entry list, including divider rows. */
readonly items: readonly ContextMenuItem[];
readonly typeaheadTimeoutMs?: number;
};
Name
Kind
Type
Requirement
Description
defaultOpen
property
boolean
optional
Uncontrolled initial open state.
defaultPosition
property
ContextMenuPosition
optional
Position used by defaultOpen or programmatic OPEN when no pointer exists.
items
property
readonly ContextMenuItem[]
required
The original entry list, including divider rows.
open
property
boolean
optional
Controlled open state. Defining it fixes controlled mode at first start.
typeaheadTimeoutMs
property
number
optional
Name
defaultOpen
Kind
property
Type
boolean
Requirement
optional
Description
Uncontrolled initial open state.
Name
defaultPosition
Kind
property
Type
ContextMenuPosition
Requirement
optional
Description
Position used by defaultOpen or programmatic OPEN when no pointer exists.
Name
items
Kind
property
Type
readonly ContextMenuItem[]
Requirement
required
Description
The original entry list, including divider rows.
Name
open
Kind
property
Type
boolean
Requirement
optional
Description
Controlled open state. Defining it fixes controlled mode at first start.
Name
typeaheadTimeoutMs
Kind
property
Type
number
Requirement
optional
Description
DeclarationView source
ContextMenuItemts
type ContextMenuItem = ContextMenuActionable | ContextMenuDivider;
DeclarationView source
ContextMenuOpenChangeDetailts
export interface ContextMenuOpenChangeDetail {
readonly open: boolean;
readonly reason: ContextMenuChangeReason;
}
Name
Kind
Type
Requirement
open
property
boolean
required
reason
property
ContextMenuChangeReason
required
Name
open
Kind
property
Type
boolean
Requirement
required
Name
reason
Kind
property
Type
ContextMenuChangeReason
Requirement
required
DeclarationView source
ContextMenuOpenReasonts
type ContextMenuOpenReason = "pointer" | "programmatic";
DeclarationView source
ContextMenuPartts
export declare const ContextMenuPart: LegacyComponentType;
Name
Kind
Type
Requirement
args
parameter
Parameters<Component<Record<string, any>>>
optional
return
return value
ReturnType<Component<Record<string, any>, Record<string, any>>>
n/a
Name
args
Kind
parameter
Type
Parameters<Component<Record<string, any>>>
Requirement
optional
Name
return
Kind
return value
Type
ReturnType<Component<Record<string, any>, Record<string, any>>>
Requirement
n/a
DeclarationView source
ContextMenuPartNamets
export type ContextMenuPartName = "trigger" | "positioner" | "content" | "item" | "separator" | "group-label" | "sub-trigger" | "sub-content";
DeclarationView source
ContextMenuPositionts
type ContextMenuPosition = {
readonly x: number;
readonly y: number;
};
Name
Kind
Type
Requirement
x
property
number
required
y
property
number
required
Name
x
Kind
property
Type
number
Requirement
required
Name
y
Kind
property
Type
number
Requirement
required
DeclarationView source
ContextMenuRootts
export declare const ContextMenuRoot: LegacyComponentType;
Name
Kind
Type
Requirement
args
parameter
Parameters<Component<Record<string, any>>>
optional
return
return value
ReturnType<Component<Record<string, any>, Record<string, any>>>
n/a
Name
args
Kind
parameter
Type
Parameters<Component<Record<string, any>>>
Requirement
optional
Name
return
Kind
return value
Type
ReturnType<Component<Record<string, any>, Record<string, any>>>
Requirement
n/a
DeclarationView source
ContextMenuSnapshotts
type ContextMenuSnapshot = Snapshot<ContextMenuStateValue, ContextMenuContext>;
DeclarationView source
ContextMenuStateValuets
type ContextMenuStateValue = "open" | "closed";
DeclarationView source
createContextMenuts
export declare function createContextMenu(inputGetter: () => ContextMenuInput, options?: UseContextMenuOptions): UseContextMenuResult;
Name
Kind
Type
Requirement
inputGetter
parameter
() => ContextMenuInput
required
options
parameter
UseContextMenuOptions
optional
return
return value
UseContextMenuResult
n/a
Name
inputGetter
Kind
parameter
Type
() => ContextMenuInput
Requirement
required
Name
options
Kind
parameter
Type
UseContextMenuOptions
Requirement
optional
Name
return
Kind
return value
Type
UseContextMenuResult
Requirement
n/a
DeclarationView source
provideContextMenuContextts
export declare function provideContextMenuContext(value: ContextMenuContextValue): void;
Name
Kind
Type
Requirement
value
parameter
ContextMenuContextValue
required
return
return value
void
n/a
Name
value
Kind
parameter
Type
ContextMenuContextValue
Requirement
required
Name
return
Kind
return value
Type
void
Requirement
n/a
DeclarationView source
useContextMenuContextts
export declare function useContextMenuContext(partName: string): ContextMenuContextValue;
Name
Kind
Type
Requirement
partName
parameter
string
required
return
return value
ContextMenuContextValue
n/a
Name
partName
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
ContextMenuContextValue
Requirement
n/a
DeclarationView source
UseContextMenuOptionsts
export interface UseContextMenuOptions {
readonly onOpenChange?: (detail: ContextMenuOpenChangeDetail) => void;
readonly onSelect?: (id: string) => void;
readonly scheduler?: Scheduler;
}
Name
Kind
Type
Requirement
onOpenChange
property
(detail: ContextMenuOpenChangeDetail) => void
optional
onSelect
property
(id: string) => void
optional
scheduler
property
Scheduler
optional
Name
onOpenChange
Kind
property
Type
(detail: ContextMenuOpenChangeDetail) => void
Requirement
optional
Name
onSelect
Kind
property
Type
(id: string) => void
Requirement
optional
Name
scheduler
Kind
property
Type
Scheduler
Requirement
optional
DeclarationView source
UseContextMenuResultts
export interface UseContextMenuResult {
readonly service: ContextMenuService;
readonly connector: ContextMenuApi;
readonly scope: PartScope;
readonly version: Readable<number>;
readonly syncInput: (input: ContextMenuInput) => void;
readonly refresh: () => void;
}
Name
Kind
Type
Requirement
connector
property
ContextMenuApi
required
refresh
property
() => void
required
scope
property
PartScope
required
service
property
ContextMenuService
required
syncInput
property
(input: ContextMenuInput) => void
required
version
property
Readable<number>
required
Name
connector
Kind
property
Type
ContextMenuApi
Requirement
required
Name
refresh
Kind
property
Type
() => void
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
ContextMenuService
Requirement
required
Name
syncInput
Kind
property
Type
(input: ContextMenuInput) => void
Requirement
required
Name
version
Kind
property
Type
Readable<number>
Requirement
required

@grassroot/ui-headless-solid/context-menu

Solid adapter

25 exports
View source packages/ui-headless/solid/src/context-menu/index.ts
DeclarationView source
ContextMenuContentts
export declare function ContextMenuContent(props: ContextMenuContentProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
ContextMenuContentProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
ContextMenuContentProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
ContextMenuContentPropsts
export interface ContextMenuContentProps extends JSX.HTMLAttributes<HTMLDivElement> {
readonly as?: AsProp;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
Name
as
Kind
property
Type
AsProp
Requirement
optional
DeclarationView source
ContextMenuContextts
export declare const ContextMenuContext: import("solid-js").Context<ContextMenuContextValue | undefined>;
DeclarationView source
ContextMenuContextValuets
export interface ContextMenuContextValue {
readonly service: ContextMenuService;
readonly connector: ContextMenuApi;
readonly scope: PartScope;
readonly snapshot: Accessor<ContextMenuSnapshot>;
}
Name
Kind
Type
Requirement
connector
property
ContextMenuApi
required
scope
property
PartScope
required
service
property
ContextMenuService
required
snapshot
property
Accessor<ContextMenuSnapshot>
required
Name
connector
Kind
property
Type
ContextMenuApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
ContextMenuService
Requirement
required
Name
snapshot
Kind
property
Type
Accessor<ContextMenuSnapshot>
Requirement
required
DeclarationView source
ContextMenuGroupLabelts
export declare function ContextMenuGroupLabel(props: ContextMenuGroupLabelProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
ContextMenuGroupLabelProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
ContextMenuGroupLabelProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
ContextMenuGroupLabelPropsts
export interface ContextMenuGroupLabelProps extends JSX.HTMLAttributes<HTMLDivElement> {
readonly as?: AsProp;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
Name
as
Kind
property
Type
AsProp
Requirement
optional

ContextMenuItem

function
DeclarationView source
ContextMenuItemts
export declare function ContextMenuItem(props: ContextMenuItemProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
ContextMenuItemProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
ContextMenuItemProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
ContextMenuItemPropsts
export interface ContextMenuItemProps extends JSX.HTMLAttributes<HTMLDivElement> {
readonly as?: AsProp;
readonly item: ContextMenuActionable;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
item
property
ContextMenuActionable
required
Name
as
Kind
property
Type
AsProp
Requirement
optional
Name
item
Kind
property
Type
ContextMenuActionable
Requirement
required
DeclarationView source
ContextMenuOpenChangeDetailts
export interface ContextMenuOpenChangeDetail {
readonly open: boolean;
readonly reason: ContextMenuChangeReason;
}
Name
Kind
Type
Requirement
open
property
boolean
required
reason
property
ContextMenuChangeReason
required
Name
open
Kind
property
Type
boolean
Requirement
required
Name
reason
Kind
property
Type
ContextMenuChangeReason
Requirement
required
DeclarationView source
ContextMenuPositionerts
export declare function ContextMenuPositioner(props: ContextMenuPositionerProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
ContextMenuPositionerProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
ContextMenuPositionerProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
ContextMenuPositionerPropsts
export interface ContextMenuPositionerProps extends JSX.HTMLAttributes<HTMLDivElement> {
readonly as?: AsProp;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
Name
as
Kind
property
Type
AsProp
Requirement
optional

ContextMenuRoot

function
DeclarationView source
ContextMenuRootts
export declare function ContextMenuRoot(props: ContextMenuRootProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
ContextMenuRootProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
ContextMenuRootProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
ContextMenuRootPropsts
export interface ContextMenuRootProps {
readonly open?: ContextMenuInput["open"];
readonly defaultOpen?: ContextMenuInput["defaultOpen"];
readonly defaultPosition?: ContextMenuInput["defaultPosition"];
readonly items: ContextMenuInput["items"];
readonly typeaheadTimeoutMs?: ContextMenuInput["typeaheadTimeoutMs"];
readonly onOpenChange?: (detail: ContextMenuOpenChangeDetail) => void;
readonly onSelect?: (id: string) => void;
readonly scheduler?: UseContextMenuOptions["scheduler"];
readonly children?: JSX.Element;
}
Name
Kind
Type
Requirement
children
property
JSX.Element
optional
defaultOpen
property
ContextMenuInput["defaultOpen"]
optional
defaultPosition
property
ContextMenuInput["defaultPosition"]
optional
items
property
ContextMenuInput["items"]
required
onOpenChange
property
(detail: ContextMenuOpenChangeDetail) => void
optional
onSelect
property
(id: string) => void
optional
open
property
ContextMenuInput["open"]
optional
scheduler
property
UseContextMenuOptions["scheduler"]
optional
typeaheadTimeoutMs
property
ContextMenuInput["typeaheadTimeoutMs"]
optional
Name
children
Kind
property
Type
JSX.Element
Requirement
optional
Name
defaultOpen
Kind
property
Type
ContextMenuInput["defaultOpen"]
Requirement
optional
Name
defaultPosition
Kind
property
Type
ContextMenuInput["defaultPosition"]
Requirement
optional
Name
items
Kind
property
Type
ContextMenuInput["items"]
Requirement
required
Name
onOpenChange
Kind
property
Type
(detail: ContextMenuOpenChangeDetail) => void
Requirement
optional
Name
onSelect
Kind
property
Type
(id: string) => void
Requirement
optional
Name
open
Kind
property
Type
ContextMenuInput["open"]
Requirement
optional
Name
scheduler
Kind
property
Type
UseContextMenuOptions["scheduler"]
Requirement
optional
Name
typeaheadTimeoutMs
Kind
property
Type
ContextMenuInput["typeaheadTimeoutMs"]
Requirement
optional
DeclarationView source
ContextMenuSeparatorts
export declare function ContextMenuSeparator(props: ContextMenuSeparatorProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
ContextMenuSeparatorProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
ContextMenuSeparatorProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
ContextMenuSeparatorPropsts
export interface ContextMenuSeparatorProps extends JSX.HTMLAttributes<HTMLHRElement> {
readonly as?: AsProp;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
Name
as
Kind
property
Type
AsProp
Requirement
optional
DeclarationView source
ContextMenuSubContentts
export declare function ContextMenuSubContent(props: ContextMenuSubContentProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
ContextMenuSubContentProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
ContextMenuSubContentProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
ContextMenuSubContentPropsts
export interface ContextMenuSubContentProps extends JSX.HTMLAttributes<HTMLDivElement> {
readonly as?: AsProp;
readonly itemKey?: string;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
itemKey
property
string
optional
Name
as
Kind
property
Type
AsProp
Requirement
optional
Name
itemKey
Kind
property
Type
string
Requirement
optional
DeclarationView source
ContextMenuSubTriggerts
export declare function ContextMenuSubTrigger(props: ContextMenuSubTriggerProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
ContextMenuSubTriggerProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
ContextMenuSubTriggerProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
ContextMenuSubTriggerPropsts
export interface ContextMenuSubTriggerProps extends JSX.HTMLAttributes<HTMLDivElement> {
readonly as?: AsProp;
readonly itemKey?: string;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
itemKey
property
string
optional
Name
as
Kind
property
Type
AsProp
Requirement
optional
Name
itemKey
Kind
property
Type
string
Requirement
optional
DeclarationView source
ContextMenuTriggerts
export declare function ContextMenuTrigger(props: ContextMenuTriggerProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
ContextMenuTriggerProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
ContextMenuTriggerProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
ContextMenuTriggerPropsts
export interface ContextMenuTriggerProps extends JSX.HTMLAttributes<HTMLDivElement> {
readonly as?: AsProp;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
Name
as
Kind
property
Type
AsProp
Requirement
optional

useContextMenu

function
DeclarationView source
useContextMenuts
export declare function useContextMenu(input: Accessor<ContextMenuInput>, options?: UseContextMenuOptions): UseContextMenuResult;
Name
Kind
Type
Requirement
input
parameter
Accessor<ContextMenuInput>
required
options
parameter
UseContextMenuOptions
optional
return
return value
UseContextMenuResult
n/a
Name
input
Kind
parameter
Type
Accessor<ContextMenuInput>
Requirement
required
Name
options
Kind
parameter
Type
UseContextMenuOptions
Requirement
optional
Name
return
Kind
return value
Type
UseContextMenuResult
Requirement
n/a
DeclarationView source
useContextMenuContextts
export declare function useContextMenuContext(partName: string): ContextMenuContextValue;
Name
Kind
Type
Requirement
partName
parameter
string
required
return
return value
ContextMenuContextValue
n/a
Name
partName
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
ContextMenuContextValue
Requirement
n/a
DeclarationView source
UseContextMenuOptionsts
export interface UseContextMenuOptions {
readonly onOpenChange?: (detail: ContextMenuOpenChangeDetail) => void;
readonly onSelect?: (id: string) => void;
readonly scheduler?: Scheduler;
}
Name
Kind
Type
Requirement
onOpenChange
property
(detail: ContextMenuOpenChangeDetail) => void
optional
onSelect
property
(id: string) => void
optional
scheduler
property
Scheduler
optional
Name
onOpenChange
Kind
property
Type
(detail: ContextMenuOpenChangeDetail) => void
Requirement
optional
Name
onSelect
Kind
property
Type
(id: string) => void
Requirement
optional
Name
scheduler
Kind
property
Type
Scheduler
Requirement
optional
DeclarationView source
UseContextMenuResultts
export interface UseContextMenuResult {
readonly service: ContextMenuService;
readonly connector: ContextMenuApi;
readonly scope: PartScope;
readonly snapshot: Accessor<ContextMenuSnapshot>;
}
Name
Kind
Type
Requirement
connector
property
ContextMenuApi
required
scope
property
PartScope
required
service
property
ContextMenuService
required
snapshot
property
Accessor<ContextMenuSnapshot>
required
Name
connector
Kind
property
Type
ContextMenuApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
ContextMenuService
Requirement
required
Name
snapshot
Kind
property
Type
Accessor<ContextMenuSnapshot>
Requirement
required