UNPKG

@pmndrs/uikit

Version:

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

29 lines (28 loc) 1.53 kB
import { ReadonlySignal, Signal } from '@preact/signals-core'; import { Matrix4, Vector2Tuple } from 'three'; import { ClippingRect } from './clipping.js'; import { OrderInfo } from './order.js'; import { PanelProperties } from './panel/instanced-panel.js'; import { ColorRepresentation } from './utils.js'; import { PanelGroupManager, PanelGroupProperties } from './panel/index.js'; import { MergedProperties } from './properties/index.js'; export type CaretTransformation = { position: Vector2Tuple; height: number; }; export type CaretWidthProperties = { caretWidth?: number; }; export type CaretBorderSizeProperties = { caretBorderRightWidth?: number; caretBorderTopWidth?: number; caretBorderLeftWidth?: number; caretBorderBottomWidth?: number; }; export type CaretProperties = { caretOpacity?: number; caretColor?: ColorRepresentation; } & CaretWidthProperties & CaretBorderSizeProperties & { [Key in Exclude<keyof PanelProperties, 'backgroundColor' | 'backgroundOpacity'> as `caret${Capitalize<Key>}`]: PanelProperties[Key]; }; export declare function createCaret(propertiesSignal: Signal<MergedProperties>, matrix: Signal<Matrix4 | undefined>, caretTransformation: Signal<CaretTransformation | undefined>, isVisible: Signal<boolean>, parentOrderInfo: Signal<OrderInfo | undefined>, parentGroupDeps: ReadonlySignal<Required<PanelGroupProperties>>, parentClippingRect: Signal<ClippingRect | undefined> | undefined, panelGroupManager: PanelGroupManager, abortSignal: AbortSignal): void;