radix-vue
Version:
Vue port for Radix UI Primitives.
31 lines (30 loc) • 1.9 kB
TypeScript
import { type Ref } from 'vue';
interface CollectionContext<ItemData = {}> {
collectionRef: Ref<HTMLElement | undefined>;
itemMap: Ref<Map<HTMLElement, {
ref: HTMLElement;
} & ItemData>>;
attrName: string;
}
export declare const injectCollectionContext: <T extends CollectionContext<{}> | null | undefined = CollectionContext<{}>>(fallback?: T | undefined) => T extends null ? CollectionContext<{}> | null : CollectionContext<{}>, provideCollectionContext: (contextValue: CollectionContext<{}>) => CollectionContext<{}>;
export declare function createCollection<ItemData = {}>(attrName?: string): {
getItems: () => ({
ref: HTMLElement;
} & ItemData)[];
reactiveItems: import("vue").ComputedRef<({
ref: HTMLElement;
} & ItemData)[]>;
itemMapSize: import("vue").ComputedRef<number>;
};
export declare const CollectionSlot: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
export declare const CollectionItem: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
export declare function useCollection<ItemData = {}>(fallback?: CollectionContext<ItemData>): {
getItems: () => ({
ref: HTMLElement;
} & ItemData)[];
};
export {};