import '@oicl/openbridge-webcomponents/dist/components/context-menu-input/context-menu-input.js';
import type { ContextMenuOption, ContextMenuType, ColumnGroup } from '@oicl/openbridge-webcomponents/dist/components/context-menu-input/context-menu-input.js';
import type { Snippet } from 'svelte';
export interface Props {
class?: string;
style?: string;
/** The variant type of context menu to display.
- `'regular'`: Single-select navigation menu.
- `'checkboxes'`: Multi-select with checkboxes.
- `'nested-checkboxes'`: Multi-select with nested/hierarchical checkboxes.
- `'flyout'`: Menu with expandable/cascading groups.
- `'multi'`: Multi-column menu.
- `'multi-with-subtitles'`: Multi-column menu with group subtitles.
Defaults to `'regular'`. */
type?: ContextMenuType;
/** Array of menu options to display.
Each option should have a unique `value`, a `label`, and can optionally include:
- `icon`: TemplateResult for a leading icon (e.g., ``)
- `level`: For nested checkboxes, indicates nesting depth.
- `children`: For flyout/nested menus, an array of child options. */
options?: ContextMenuOption[];
/** Array of currently selected option values.
For multi-select variants, can contain multiple values. For single-select, contains at most one value. */
selectedValues?: string[];
/** Whether to show a title bar with close button at the top of the menu.
If true, displays the `title` property and a close icon button. */
hasTitleBar?: boolean;
/** Title text displayed in the title bar (if `hasTitleBar` is true). */
title?: string;
/** Array of column groups for the `multi-with-subtitles` layout.
Each group defines a `title`, `columns` (number of columns in the group), and `options` (array of options for that group). */
columnGroups?: ColumnGroup[];
/** Number of items per column in multi-column layouts.
Used in `multi` and `multi-with-subtitles` variants to control column splitting. */
itemsPerColumn?: number;
/** Whether multiple selections are allowed.
If not set, defaults to true for checkbox/multi variants, false for regular/flyout. */
multiSelect?: boolean | undefined;
/** If true, restricts selection to one option per group or column (used in flyout and multi-column).
When enabled, only one option can be selected in each group or column. */
selectPerGroup?: boolean | undefined;
}
export interface Events {
onChange?: (event: CustomEvent<{
selectedValues: string[];
selectedOptions: ContextMenuOption[];
}>) => void;
onItemClick?: (event: CustomEvent<{
value: string;
option: ContextMenuOption;
}>) => void;
onClose?: (event: CustomEvent) => void;
}
export interface Slots {
children?: Snippet;
}
type $$ComponentProps = Props & Events & Slots;
declare const ObcContextMenuInput: import("svelte").Component<$$ComponentProps, {
ContextMenuOption: typeof ContextMenuOption;
ContextMenuType: typeof ContextMenuType;
ColumnGroup: typeof ColumnGroup;
}, "">;
type ObcContextMenuInput = ReturnType;
export default ObcContextMenuInput;