import type { Ref } from 'vue'; import type { UseDropdown } from '../Dropdown'; export type MinibrowserOption = { id?: string; label?: string; subtitle?: string; as?: string; value?: string | number; items?: MinibrowserOption[]; group?: boolean; isParent?: boolean; }; export type MinibrowserSearchPayload = { value: string; }; export type MinibrowserSelectItemPayload = { id: MinibrowserOption['id']; label: MinibrowserOption['label']; subtitle: MinibrowserOption['subtitle']; isParent: MinibrowserOption['isParent']; value: MinibrowserOption['value']; }; export type MinibrowserLoadMorePayload = { visible: boolean; current: number; total: number; loading: boolean; }; export type MinibrowserContext = () => { activatedMenuItemId: string; browserListId: string; isLoading: boolean; shouldFocusOnInput: Ref; loadMore: MinibrowserLoadMorePayload; clearNavigation: () => void; navigateTo: (index: number) => void; selectItem: (item: MinibrowserSelectItemPayload) => void; focusOnFirstItem: UseDropdown['focusOnFirstItem']; focusOnLastItem: UseDropdown['focusOnLastItem']; handleKeydownOnList: UseDropdown['handleKeydownOnList']; updateTabIndex: UseDropdown['updateTabIndex']; loadMoreItems: () => void; };