UNPKG

@pmndrs/uikit

Version:

Build performant 3D user interfaces with Three.js and yoga.

40 lines (39 loc) 1.93 kB
import { Signal } from '@preact/signals-core'; import { EventHandlers } from '../events.js'; import { Object3D, Object3DEventMap } from 'three'; import { ParentContext } from '../context.js'; import { FontFamilies } from '../text/index.js'; export declare function createParentContextSignal(): Signal<Signal<(Readonly<{ node: Signal<import("../internals.js").FlexNode | undefined>; anyAncestorScrollable: Signal<readonly [boolean, boolean]>; ancestorsHaveListeners: Signal<boolean>; clippingRect: Signal<import("../clipping.js").ClippingRect | undefined>; childrenMatrix: Signal<import("three").Matrix4 | undefined>; orderInfo: Signal<import("../order.js").OrderInfo | undefined>; root: import("../context.js").RootContext; }> & { fontFamiliesSignal: Signal<FontFamilies | undefined>; }) | undefined> | undefined>; export declare function setupParentContextSignal(parentContextSignal: ReturnType<typeof createParentContextSignal>, container: Object3D): void; export declare class Component<T = {}> extends Object3D<EventMap & { childadded: {}; childremoved: {}; } & T> { } export declare class Parent<T = {}> extends Component<T> { readonly contextSignal: Signal<(ParentContext & { fontFamiliesSignal: Signal<FontFamilies | undefined>; }) | undefined>; protected readonly childrenContainer: Object3D<{ childadded: {}; childremoved: {}; } & Object3DEventMap>; constructor(); add(...objects: Array<Object3D>): this; addAt(object: Component, index: number): this; remove(...objects: Array<Object3D>): this; } export declare function bindHandlers(handlers: Signal<EventHandlers>, container: Object3D<EventMap>, abortSignal: AbortSignal): void; export type EventMap = Object3DEventMap & { [Key in keyof EventHandlers as Lowercase<Key extends `on${infer K}` ? K : never>]-?: Parameters<Exclude<EventHandlers[Key], undefined>>[0]; };