radix-vue
Version:
Vue port for Radix UI Primitives.
150 lines (149 loc) • 7.46 kB
TypeScript
import type { Ref } from 'vue';
import type { Direction } from '../shared/types';
import type { PrimitiveProps } from '../Primitive';
export type AcceptableValue = string | number | boolean | object;
type ArrayOrWrapped<T> = T extends any[] ? T : Array<T>;
type ComboboxRootContext<T> = {
modelValue: Ref<T | Array<T>>;
onValueChange: (val: T) => void;
searchTerm: Ref<string>;
multiple: Ref<boolean>;
disabled: Ref<boolean>;
open: Ref<boolean>;
onOpenChange: (value: boolean) => void;
isUserInputted: Ref<boolean>;
filteredOptions: Ref<Array<T>>;
contentId: string;
contentElement: Ref<HTMLElement | undefined>;
onContentElementChange: (el: HTMLElement) => void;
inputElement: Ref<HTMLInputElement | undefined>;
onInputElementChange: (el: HTMLInputElement) => void;
onInputNavigation: (dir: 'up' | 'down' | 'home' | 'end') => void;
onInputEnter: () => void;
selectedValue: Ref<T | undefined>;
onSelectedValueChange: (val: T) => void;
parentElement: Ref<HTMLElement | undefined>;
};
export declare const injectComboboxRootContext: <T extends ComboboxRootContext<AcceptableValue> | null | undefined = ComboboxRootContext<AcceptableValue>>(fallback?: T | undefined) => T extends null ? ComboboxRootContext<AcceptableValue> | null : ComboboxRootContext<AcceptableValue>, provideComboboxRootContext: (contextValue: ComboboxRootContext<AcceptableValue>) => ComboboxRootContext<AcceptableValue>;
export type ComboboxRootEmits<T = AcceptableValue> = {
'update:modelValue': [value: T];
'update:open': [value: boolean];
'update:searchTerm': [value: string];
};
export interface ComboboxRootProps<T = AcceptableValue> extends PrimitiveProps {
modelValue?: T;
defaultValue?: T;
open?: boolean;
defaultOpen?: boolean;
searchTerm?: string;
multiple?: boolean;
disabled?: boolean;
name?: string;
dir?: Direction;
filterFunction?: (val: ArrayOrWrapped<T>, term: string) => ArrayOrWrapped<T>;
displayValue?: (val: T) => string;
}
declare const _default: <T extends AcceptableValue = AcceptableValue>(__VLS_props: {
dir?: Direction | undefined;
disabled?: boolean | undefined;
multiple?: boolean | undefined;
name?: string | undefined;
asChild?: boolean | undefined;
as?: import('../Primitive').AsTag | import("vue").Component | undefined;
defaultOpen?: boolean | undefined;
open?: boolean | undefined;
"onUpdate:open"?: ((value: boolean) => any) | undefined;
defaultValue?: T | undefined;
modelValue?: T | undefined;
"onUpdate:modelValue"?: ((value: T) => any) | undefined;
searchTerm?: string | undefined;
filterFunction?: ((val: ArrayOrWrapped<T>, term: string) => ArrayOrWrapped<T>) | undefined;
displayValue?: ((val: T) => string) | undefined;
"onUpdate:searchTerm"?: ((value: string) => any) | undefined;
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, __VLS_ctx?: {
slots: {
default?(_: {
activeIndex: number;
open: boolean;
value: (([{
type: import("vue").PropType<__VLS_NonUndefinedable<T>>;
}] extends [import("vue").Prop<infer V, infer D>] ? unknown extends V ? import('../../node_modules/@vue/shared').IfAny<V, V, D> : V : {
type: import("vue").PropType<__VLS_NonUndefinedable<T>>;
}) | undefined) & T;
}): any;
};
attrs: any;
emit: ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", value: T) => void) & ((evt: "update:searchTerm", value: string) => void);
} | undefined, __VLS_expose?: ((exposed: import('vue').ShallowUnwrapRef<{}>) => void) | undefined, __VLS_setup?: Promise<{
props: {
dir?: Direction | undefined;
disabled?: boolean | undefined;
multiple?: boolean | undefined;
name?: string | undefined;
asChild?: boolean | undefined;
as?: import('../Primitive').AsTag | import("vue").Component | undefined;
defaultOpen?: boolean | undefined;
open?: boolean | undefined;
"onUpdate:open"?: ((value: boolean) => any) | undefined;
defaultValue?: T | undefined;
modelValue?: T | undefined;
"onUpdate:modelValue"?: ((value: T) => any) | undefined;
searchTerm?: string | undefined;
filterFunction?: ((val: ArrayOrWrapped<T>, term: string) => ArrayOrWrapped<T>) | undefined;
displayValue?: ((val: T) => string) | undefined;
"onUpdate:searchTerm"?: ((value: string) => any) | undefined;
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
attrs: any;
slots: {
default?(_: {
activeIndex: number;
open: boolean;
value: (([{
type: import("vue").PropType<__VLS_NonUndefinedable<T>>;
}] extends [import("vue").Prop<infer V, infer D>] ? unknown extends V ? import('../../node_modules/@vue/shared').IfAny<V, V, D> : V : {
type: import("vue").PropType<__VLS_NonUndefinedable<T>>;
}) | undefined) & T;
}): any;
};
emit: ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", value: T) => void) & ((evt: "update:searchTerm", value: string) => void);
}>) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}> & {
__ctx?: {
props: {
dir?: Direction | undefined;
disabled?: boolean | undefined;
multiple?: boolean | undefined;
name?: string | undefined;
asChild?: boolean | undefined;
as?: import('../Primitive').AsTag | import("vue").Component | undefined;
defaultOpen?: boolean | undefined;
open?: boolean | undefined;
"onUpdate:open"?: ((value: boolean) => any) | undefined;
defaultValue?: T | undefined;
modelValue?: T | undefined;
"onUpdate:modelValue"?: ((value: T) => any) | undefined;
searchTerm?: string | undefined;
filterFunction?: ((val: ArrayOrWrapped<T>, term: string) => ArrayOrWrapped<T>) | undefined;
displayValue?: ((val: T) => string) | undefined;
"onUpdate:searchTerm"?: ((value: string) => any) | undefined;
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
attrs: any;
slots: {
default?(_: {
activeIndex: number;
open: boolean;
value: (([{
type: import("vue").PropType<__VLS_NonUndefinedable<T>>;
}] extends [import("vue").Prop<infer V, infer D>] ? unknown extends V ? import('../../node_modules/@vue/shared').IfAny<V, V, D> : V : {
type: import("vue").PropType<__VLS_NonUndefinedable<T>>;
}) | undefined) & T;
}): any;
};
emit: ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", value: T) => void) & ((evt: "update:searchTerm", value: string) => void);
} | undefined;
};
export default _default;
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;