UNPKG

@pmndrs/uikit

Version:

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

59 lines (58 loc) 4.86 kB
import { ReadonlySignal, Signal } from '@preact/signals-core'; import { Matrix4, Object3D } from 'three'; import { WithActive } from '../active.js'; import { WithPreferredColorScheme } from '../dark.js'; import { WithHover } from '../hover.js'; import { WithResponsive } from '../responsive.js'; import { FlexNode, FlexNodeState } from '../flex/index.js'; import { ParentContext, RootContext } from '../context.js'; import { EventHandlers } from '../events.js'; import { AllOptionalProperties, MergedProperties, Properties, PropertyTransformers } from '../properties/index.js'; import { AllowedPointerEventsType } from '../internals.js'; export declare function disposeGroup(object: Object3D | undefined): void; export declare function computedGlobalMatrix(parentMatrix: Signal<Matrix4 | undefined>, localMatrix: Signal<Matrix4 | undefined>): Signal<Matrix4 | undefined>; export type VisibilityProperties = { visibility?: 'visible' | 'hidden'; }; export declare function computedIsVisible(flexState: FlexNodeState, isClipped: Signal<boolean> | undefined, mergedProperties: Signal<MergedProperties>): ReadonlySignal<boolean>; export type WithConditionals<T> = WithHover<T> & WithResponsive<T> & WithPreferredColorScheme<T> & WithActive<T>; export declare function loadResourceWithParams<P, R, A extends Array<unknown>>(target: Signal<R | undefined>, fn: (param: P, ...additional: A) => Promise<R>, cleanup: ((value: R) => void) | undefined, abortSignal: AbortSignal, param: Signal<P> | P, ...additionals: A): void; export declare function setupNode(state: FlexNodeState & { root: RootContext; node: Signal<FlexNode | undefined>; mergedProperties: Signal<MergedProperties>; }, parentContext: ParentContext | undefined, object: Object3D, objectVisibleDefault: boolean, abortSignal: AbortSignal): FlexNode; export declare const keepAspectRatioPropertyTransformer: PropertyTransformers; export declare function computedHandlers(style: Signal<Properties | undefined>, propertiesSignal: Signal<Properties | undefined>, defaultProperties: Signal<AllOptionalProperties | undefined>, hoveredSignal: Signal<Array<number>>, activeSignal: Signal<Array<number>>, dynamicHandlers?: Signal<EventHandlers | undefined>, defaultCursor?: string): ReadonlySignal<EventHandlers>; export declare function computedAncestorsHaveListeners(parentContext: ParentContext | undefined, handlers: ReadonlySignal<EventHandlers>): ReadonlySignal<boolean>; export declare function addHandlers(target: EventHandlers, handlers: EventHandlers | undefined): void; export declare function addHandler<T extends { [Key in string]?: (e: any) => void; }, K extends keyof T>(key: K, target: T, handler: T[K]): void; export declare function computedMergedProperties(style: Signal<Properties | undefined>, properties: Signal<Properties | undefined>, defaultProperties: Signal<AllOptionalProperties | undefined>, postTransformers: PropertyTransformers, preTransformers?: PropertyTransformers, onInit?: (merged: MergedProperties) => void): ReadonlySignal<MergedProperties>; /** * @requires that each mesh inside the group has its default color stored inside object.userData.color */ export declare function applyAppearancePropertiesToGroup(propertiesSignal: Signal<MergedProperties>, group: Signal<Object3D | undefined> | Object3D, abortSignal: AbortSignal): void; export declare function computeMatrixWorld(target: Matrix4, localMatrix: Matrix4 | undefined, rootObjectMatrixWorld: Matrix4, globalMatrixSignal: Signal<Matrix4 | undefined>): boolean; export type UpdateMatrixWorldProperties = { updateMatrixWorld?: boolean; }; export declare function setupMatrixWorldUpdate(updateMatrixWorld: Signal<boolean> | true, updateChildrenMatrixWorld: boolean, object: Object3D, rootContext: RootContext, globalMatrixSignal: Signal<Matrix4 | undefined>, useOwnMatrix: boolean, abortSignal: AbortSignal): void; export declare function computeDefaultProperties(propertiesSignal: Signal<MergedProperties>): { pointerEvents: Signal<"auto" | "none" | "listener" | undefined>; pointerEventsOrder: Signal<number | undefined>; pointerEventsType: Signal<AllowedPointerEventsType | undefined>; renderOrder: Signal<number>; depthTest: Signal<boolean>; depthWrite: Signal<boolean>; }; export type OutgoingDefaultProperties = { renderOrder: ReadonlySignal<number>; depthTest: ReadonlySignal<boolean>; depthWrite: ReadonlySignal<boolean>; pointerEvents: ReadonlySignal<'none' | 'auto' | 'listener'>; pointerEventsType: ReadonlySignal<AllowedPointerEventsType>; pointerEventsOrder: ReadonlySignal<number>; }; export declare function setupPointerEvents(propertiesSignal: Signal<MergedProperties>, ancestorsHaveListeners: ReadonlySignal<boolean>, rootContext: RootContext, target: Object3D, canHaveNonUikitChildren: boolean, abortSignal: AbortSignal): void;